2 * PROJECT: PAINT for ReactOS
4 * FILE: base/applications/mspaint/palettemodel.cpp
5 * PURPOSE: Keep track of palette data, notify listeners
6 * PROGRAMMERS: Benedikt Freisen
9 /* INCLUDES *********************************************************/
13 /* FUNCTIONS ********************************************************/
15 PaletteModel::PaletteModel()
17 m_fgColor
= 0x00000000;
18 m_bgColor
= 0x00ffffff;
22 int PaletteModel::SelectedPalette()
24 return m_nSelectedPalette
;
27 void PaletteModel::SelectPalette(int nPalette
)
29 int modernColors
[28] = {
30 0x000000, 0x464646, 0x787878, 0x300099, 0x241ced, 0x0078ff, 0x0ec2ff,
31 0x00f2ff, 0x1de6a8, 0x4cb122, 0xefb700, 0xf36d4d, 0x99362f, 0x98316f,
32 0xffffff, 0xdcdcdc, 0xb4b4b4, 0x3c5a9c, 0xb1a3ff, 0x7aaae5, 0x9ce4f5,
33 0xbdf9ff, 0xbcf9d3, 0x61bb9d, 0xead999, 0xd19a70, 0x8e6d54, 0xd5a5b5
36 0x000000, 0x808080, 0x000080, 0x008080, 0x008000, 0x808000, 0x800000,
37 0x800080, 0x408080, 0x404000, 0xff8000, 0x804000, 0xff0040, 0x004080,
38 0xffffff, 0xc0c0c0, 0x0000ff, 0x00ffff, 0x00ff00, 0xffff00, 0xff0000,
39 0xff00ff, 0x80ffff, 0x80ff00, 0xffff80, 0xff8080, 0x8000ff, 0x4080ff
42 CopyMemory(m_colors
, modernColors
, sizeof(m_colors
));
43 else if (nPalette
== 2)
44 CopyMemory(m_colors
, oldColors
, sizeof(m_colors
));
47 m_nSelectedPalette
= nPalette
;
48 NotifyPaletteChanged();
51 int PaletteModel::GetColor(int nIndex
)
54 return m_colors
[nIndex
];
59 void PaletteModel::SetColor(int nIndex
, int newColor
)
63 m_colors
[nIndex
] = newColor
;
64 NotifyPaletteChanged();
68 int PaletteModel::GetFgColor()
73 void PaletteModel::SetFgColor(int newColor
)
79 int PaletteModel::GetBgColor()
84 void PaletteModel::SetBgColor(int newColor
)
90 void PaletteModel::NotifyColorChanged()
92 paletteWindow
.SendMessage(WM_PALETTEMODELCOLORCHANGED
);
93 selectionWindow
.SendMessage(WM_PALETTEMODELCOLORCHANGED
);
96 void PaletteModel::NotifyPaletteChanged()
98 paletteWindow
.SendMessage(WM_PALETTEMODELPALETTECHANGED
);