\section{Palette.mui}

Palette class generates a (big) group of objects, alltogether
making up a powerful palette requester. Due to the new color
selection schemes of Kickstart 3.x, you won't get a ''traditional''
palette requester with 2\^n fields to fill in. These things
really stop making sense on nice 256 or true color screens.

Instead, MUI's palette class allows defining a list of colors
that the user should be able to adjust. Within a public screen
manager, this would e.g. be the DrawInfo pens for a specific
screen, within a terminal program maybe the eight ANSI colors.

Palette class uses a listview to let the user choose the
desired color, a coloradjust object to adjust this color
and a colorfield object that always shows the current color.

The user will also be able to concatenate several colors
in the list, defining a single color for several entries.

\subsection[MUIA\_Palette\_Entries]{MUIA\_Palette\_Entries -- (V6) [I.G], struct MUI\_Palette\_Entry $\ast$}

\subsubsection*{FUNCTION}
Specify the colors that the user should be able to adjust
with this palette object.

You supply an array of MUI\_Palette\_Structures here, each
entry defining one color:

\begin{verbatim}
struct MUI_Palette_Entry
{
   LONG  mpe_ID;
   ULONG mpe_Red;
   ULONG mpe_Green;
   ULONG mpe_Blue;
   LONG  mpe_Group;
};
\end{verbatim}

\begin{description}
\item[mpe\_ID]  This entry is not used by palette class, you can
put in whatever you want, except the value
MUIV\_Palette\_Entry\_End (==-1),
which terminates the array.

\item[mpe\_Red]  32-bit red component of the current color. This
field will be changed by palette class whenever
the user edits the color.

\item[mpe\_Green]  32-bit green component of the current color. This
field will be changed by palette class whenever
the user edits the color.

\item[mpe\_Blue]  32-bit blue component of the current color. This
field will be changed by palette class whenever
the user edits the color.

\item[mpe\_Group]  Entries with the same mpe\_Group value are
concatenated. Whenever a new color in the
listview is selected, all other colors with
the same mpe\_Group get selected as well and
get adjusted all at once.
Entry concatenation can be changed by the user,
as long as you don't disable this feature with
the MUIA\_Palette\_Groupable attribute.
\end{description}

\subsubsection*{EXAMPLE}
\small
\begin{verbatim}

static struct MUI_Palette_Entry SystemDefaultPalette[] =
{
   { TEXTPEN         ,0x00000000,0x00000000,0x00000000,0 },
   { SHINEPEN        ,0xffffffff,0xffffffff,0xffffffff,1 },
   { SHADOWPEN       ,0x00000000,0x00000000,0x00000000,0 },
   { FILLPEN         ,0x66666666,0x88888888,0xbbbbbbbb,2 },
   { FILLTEXTPEN     ,0xffffffff,0xffffffff,0xffffffff,1 },
   { BACKGROUNDPEN   ,0xaaaaaaaa,0xaaaaaaaa,0xaaaaaaaa,3 },
   { HIGHLIGHTTEXTPEN,0xffffffff,0xffffffff,0xffffffff,1 },
   { BARDETAILPEN    ,0x00000000,0x00000000,0x00000000,0 },
   { BARBLOCKPEN     ,0xffffffff,0xffffffff,0xffffffff,1 },
   { BARTRIMPEN      ,0x00000000,0x00000000,0x00000000,0 },
   { MUIV_Palette_Entry_End,0,0,0,0 },
};

\end{verbatim}
\normalsize
\subsubsection*{SEE ALSO}
MUIA\_Palette\_Names

\subsection[MUIA\_Palette\_Groupable]{MUIA\_Palette\_Groupable -- (V6) [ISG], BOOL}

\subsubsection*{FUNCTION}
Enables/disables palette color grouping.
Defaults to TRUE.

\subsubsection*{SEE ALSO}
MUIA\_Palette\_Entries

\subsection[MUIA\_Palette\_Names]{MUIA\_Palette\_Names -- (V6) [ISG], char $\ast$$\ast$}

\subsubsection*{FUNCTION}
Specify the names of a palette objects color entries.
Without names, the color listview just displays
''Color \flq n\frq '' for each entry. If you supply an array
of names here, they are displayed instead. The
names array must have as many entries as the
array of MUIA\_Palette\_Entry structures (without
its terminator).

\subsubsection*{EXAMPLE}
\small
\begin{verbatim}

static struct MUI_Palette_Entry ColorEntries[] =
{
   { TEXTPEN         ,0x00000000,0x00000000,0x00000000,2 },
   { SHINEPEN        ,0xffffffff,0xffffffff,0xffffffff,4 },
   { SHADOWPEN       ,0x00000000,0x00000000,0x00000000,5 },
   { FILLPEN         ,0x66666666,0x88888888,0xbbbbbbbb,3 },
   { FILLTEXTPEN     ,0xffffffff,0xffffffff,0xffffffff,6 },
   { BACKGROUNDPEN   ,0x00000000,0x00000000,0x00000000,7 },
   { HIGHLIGHTTEXTPEN,0xffffffff,0xffffffff,0xffffffff,8 },
   { BARDETAILPEN    ,0x00000000,0x00000000,0x00000000,9 },
   { BARBLOCKPEN     ,0xffffffff,0xffffffff,0xffffffff,1 },
   { BARTRIMPEN      ,0x00000000,0x00000000,0x00000000,0 },
   { MUIV_Palette_Entry_End,0,0,0,0 },
};

static const char *ColorNames[] =
{
   "Text"                ,
   "Bright Edges"        ,
   "Dark Edges"          ,
   "Active Window Bars"  ,
   "Active Window Titles",
   "Background"          ,
   "Important Text"      ,
   "Menu Text"           ,
   "Menu Background"     ,
   "Menu Line"
};

po = PaletteObject,
   MUIA_Palette_Entries, ColorEntries,
   MUIA_Palette_Names  , ColorNames,
   End;

\end{verbatim}
\normalsize
\subsubsection*{SEE ALSO}
MUIA\_Palette\_Entries



