ReactOS 0.4.15-dev-8096-ga0eec98
palettemodel.cpp
Go to the documentation of this file.
1/*
2 * PROJECT: PAINT for ReactOS
3 * LICENSE: LGPL-2.0-or-later (https://spdx.org/licenses/LGPL-2.0-or-later)
4 * PURPOSE: Keep track of palette data, notify listeners
5 * COPYRIGHT: Copyright 2015 Benedikt Freisen <b.freisen@gmx.net>
6 * Copyright 2021 Katayama Hirofumi MZ <katayama.hirofumi.mz@gmail.com>
7 */
8
9#include "precomp.h"
10
12
13/* FUNCTIONS ********************************************************/
14
16{
17 m_fgColor = 0x00000000;
18 m_bgColor = 0x00ffffff;
20}
21
23{
24 return m_nSelectedPalette;
25}
26
28{
29 static const COLORREF modernColors[NUM_COLORS] =
30 {
31 0x000000, 0x464646, 0x787878, 0x300099, 0x241ced, 0x0078ff, 0x0ec2ff,
32 0x00f2ff, 0x1de6a8, 0x4cb122, 0xefb700, 0xf36d4d, 0x99362f, 0x98316f,
33 0xffffff, 0xdcdcdc, 0xb4b4b4, 0x3c5a9c, 0xb1a3ff, 0x7aaae5, 0x9ce4f5,
34 0xbdf9ff, 0xbcf9d3, 0x61bb9d, 0xead999, 0xd19a70, 0x8e6d54, 0xd5a5b5
35 };
36 static const COLORREF oldColors[NUM_COLORS] =
37 {
38 0x000000, 0x808080, 0x000080, 0x008080, 0x008000, 0x808000, 0x800000,
39 0x800080, 0x408080, 0x404000, 0xff8000, 0x804000, 0xff0040, 0x004080,
40 0xffffff, 0xc0c0c0, 0x0000ff, 0x00ffff, 0x00ff00, 0xffff00, 0xff0000,
41 0xff00ff, 0x80ffff, 0x80ff00, 0xffff80, 0xff8080, 0x8000ff, 0x4080ff
42 };
43 switch (nPalette)
44 {
45 case PAL_MODERN:
46 CopyMemory(m_colors, modernColors, sizeof(m_colors));
47 break;
48 case PAL_OLDTYPE:
49 CopyMemory(m_colors, oldColors, sizeof(m_colors));
50 break;
51 }
52 m_nSelectedPalette = nPalette;
54}
55
57{
58 if (nIndex < NUM_COLORS)
59 return m_colors[nIndex];
60 else
61 return 0;
62}
63
64void PaletteModel::SetColor(UINT nIndex, COLORREF newColor)
65{
66 if (nIndex < NUM_COLORS)
67 {
68 m_colors[nIndex] = newColor;
70 }
71}
72
74{
75 return m_fgColor;
76}
77
79{
80 m_fgColor = newColor;
82}
83
85{
86 return m_bgColor;
87}
88
90{
91 m_bgColor = newColor;
93}
94
96{
97 if (paletteWindow.IsWindow())
99 if (canvasWindow.IsWindow())
101 if (textEditWindow.IsWindow())
103}
104
106{
107 if (paletteWindow.IsWindow())
108 paletteWindow.Invalidate(FALSE);
109}
#define WM_PALETTEMODELCOLORCHANGED
Definition: precomp.h:52
CTextEditWindow textEditWindow
Definition: textedit.cpp:12
CCanvasWindow canvasWindow
Definition: canvas.cpp:10
PAL_TYPE SelectedPalette()
COLORREF GetBgColor() const
void SetFgColor(COLORREF newColor)
void SetBgColor(COLORREF newColor)
void SelectPalette(PAL_TYPE nPalette)
void NotifyPaletteChanged()
void SetColor(UINT nIndex, COLORREF newColor)
COLORREF GetFgColor() const
PAL_TYPE m_nSelectedPalette
Definition: palettemodel.h:24
COLORREF GetColor(UINT nIndex) const
COLORREF m_fgColor
Definition: palettemodel.h:25
COLORREF m_colors[NUM_COLORS]
Definition: palettemodel.h:23
COLORREF m_bgColor
Definition: palettemodel.h:26
void NotifyColorChanged()
#define FALSE
Definition: types.h:117
unsigned int UINT
Definition: ndis.h:50
CPaletteWindow paletteWindow
Definition: palette.cpp:19
PaletteModel paletteModel
PAL_TYPE
Definition: palettemodel.h:13
@ PAL_MODERN
Definition: palettemodel.h:14
@ PAL_OLDTYPE
Definition: palettemodel.h:15
#define NUM_COLORS
Definition: palettemodel.h:10
#define CopyMemory
Definition: winbase.h:1710
DWORD COLORREF
Definition: windef.h:300