ReactOS 0.4.15-dev-7681-g776c3a3
cardwindow.cpp File Reference
#include "cardlib.h"
#include <tchar.h>
Include dependency graph for cardwindow.cpp:

Go to the source code of this file.

Functions

HPALETTE UseNicePalette (HDC hdc, HPALETTE hPalette)
 
void RestorePalette (HDC hdc, HPALETTE hOldPal)
 
HPALETTE MakePaletteFromCols (COLORREF cols[], int nNumColours)
 
void PaintRect (HDC hdc, RECT *rect, COLORREF colour)
 
HBITMAP CreateSinkBmp (HDC hdcCompat, HDC hdc, COLORREF col, int width, int height)
 
void GetSinkCols (COLORREF crBase, COLORREF *fg, COLORREF *bg, COLORREF *sh1, COLORREF *sh2)
 
void LoadCardBitmaps ()
 
void FreeCardBitmaps ()
 
void RegisterCardWindow ()
 

Variables

HPALETTE __holdplacepal
 
static TCHAR szCardName [] = _T("CardWnd32")
 
static bool fRegistered = false
 
static LONG uCardBitmapRef = 0
 

Function Documentation

◆ CreateSinkBmp()

HBITMAP CreateSinkBmp ( HDC  hdcCompat,
HDC  hdc,
COLORREF  col,
int  width,
int  height 
)

Definition at line 176 of file cardbitmaps.cpp.

177{
178 HANDLE hold, hpold;
180
181 HPEN hpfg, hpbg, hpsh, hpsh2;
182
183 RECT rect;
184 COLORREF fg, bg, shadow, shadow2;
185
186 GetSinkCols(col, &fg, &bg, &shadow, &shadow2);
187
188 hold = SelectObject(hdc, hbm);
189
190 //fill with a solid base colour
191 SetRect(&rect, 0,0,width,height);
193
194 //draw the outline
195 hpfg = CreatePen(PS_SOLID, 0, MAKE_PALETTERGB(fg));
196 hpbg = CreatePen(PS_SOLID, 0, MAKE_PALETTERGB(bg));
197 hpsh = CreatePen(PS_SOLID, 0, MAKE_PALETTERGB(shadow));
198 hpsh2= CreatePen(PS_SOLID, 0, MAKE_PALETTERGB(shadow2));
199
200 hpold = SelectObject(hdc, hpsh);
201 MoveToEx(hdc, 2, 0, NULL);
202 LineTo (hdc, width-3,0);
203 LineTo (hdc, width-1, 2);
204
205 SelectObject(hdc, hpold);
206 hpold = SelectObject(hdc, hpsh2);
207 LineTo (hdc, width-1, height-3); //vertical
208 LineTo (hdc, width-3, height-1);
209 LineTo (hdc, 2, height-1);
210 LineTo (hdc, 0, height-3);
211 SelectObject(hdc, hpold);
212 hpold = SelectObject(hdc, hpsh);
213
214 //MoveToEx( hdc, 0, height-3,0);
215 LineTo (hdc, 0, 2);
216 LineTo (hdc, 2, 0);
217
218 SelectObject(hdc, hpold);
219
220 //draw the highlight (vertical)
221 hpold = SelectObject(hdc, hpfg);
222 MoveToEx(hdc, width - 2, 3, NULL);
223 LineTo (hdc, width - 2, height - 2);
224
225 //(horz)
226 MoveToEx(hdc, width - 3, height-2, NULL);
227 LineTo (hdc, 3, height-2);
228 SelectObject(hdc, hpold);
229
230 //draw the background
231 InflateRect(&rect, -2, -2);
233
234 //overwrite the top-left background pixel
235 SetPixel(hdc, 2, 2, MAKE_PALETTERGB(bg));
236
237 DeleteObject(hpsh);
238 DeleteObject(hpsh2);
239 DeleteObject(hpfg);
240 DeleteObject(hpbg);
241
242
243 return hbm;
244}
FORCEINLINE VOID SetPixel(_In_ ULONG Left, _In_ ULONG Top, _In_ UCHAR Color)
Definition: arm.h:50
void PaintRect(HDC hdc, RECT *rect, COLORREF col)
Definition: cardlib.cpp:116
static void DrawCheckedRect(HDC hdc, RECT *rect, COLORREF fg, COLORREF bg)
void GetSinkCols(COLORREF crBase, COLORREF *fg, COLORREF *bg, COLORREF *sh1, COLORREF *sh2)
#define MAKE_PALETTERGB(colref)
Definition: cardcolor.h:17
#define NULL
Definition: types.h:112
pKey DeleteObject()
GLint GLint GLsizei GLsizei height
Definition: gl.h:1546
GLint GLint GLsizei width
Definition: gl.h:1546
HDC hdc
Definition: main.c:9
static HBITMAP
Definition: button.c:44
_In_ HBITMAP hbm
Definition: ntgdi.h:2776
& rect
Definition: startmenu.cpp:1413
DWORD COLORREF
Definition: windef.h:300
HGDIOBJ WINAPI SelectObject(_In_ HDC, _In_ HGDIOBJ)
Definition: dc.c:1539
BOOL WINAPI MoveToEx(_In_ HDC, _In_ int, _In_ int, _Out_opt_ LPPOINT)
HBITMAP WINAPI CreateCompatibleBitmap(_In_ HDC hdc, _In_ INT cx, _In_ INT cy)
HPEN WINAPI CreatePen(_In_ int, _In_ int, _In_ COLORREF)
BOOL WINAPI LineTo(_In_ HDC, _In_ int, _In_ int)
#define PS_SOLID
Definition: wingdi.h:586
BOOL WINAPI InflateRect(_Inout_ LPRECT, _In_ int, _In_ int)
BOOL WINAPI SetRect(_Out_ LPRECT, _In_ int, _In_ int, _In_ int, _In_ int)

Referenced by CardWindow::CardWindow(), and CardWindow::SetBackColor().

◆ FreeCardBitmaps()

void FreeCardBitmaps ( )

Definition at line 123 of file cardbitmaps.cpp.

124{
127}
HBITMAP __hbmCardBitmaps
Definition: cardlib.cpp:19
HDC __hdcCardBitmaps
Definition: cardlib.cpp:18
BOOL WINAPI DeleteDC(_In_ HDC)

Referenced by CardWindow::~CardWindow().

◆ GetSinkCols()

void GetSinkCols ( COLORREF  crBase,
COLORREF fg,
COLORREF bg,
COLORREF sh1,
COLORREF sh2 
)

Definition at line 168 of file cardbitmaps.cpp.

169{
170 if(bg) *bg = crBase;
171 if(fg) *fg = ColorScaleRGB(crBase, RGB(255,255,255), 0.2);//RGB(49, 99, 140);
172 if(sh1) *sh1 = ColorScaleRGB(crBase, RGB(0,0,0), 0.4);
173 if(sh2) *sh2 = ColorScaleRGB(crBase, RGB(0,0,0), 0.2);
174}
COLORREF ColorScaleRGB(const COLORREF Col1, const COLORREF Col2, const double Ratio)
Definition: cardcolor.cpp:154
#define RGB(r, g, b)
Definition: precomp.h:62

Referenced by CardWindow::CreateCardPalette(), and CreateSinkBmp().

◆ LoadCardBitmaps()

void LoadCardBitmaps ( )

Definition at line 82 of file cardbitmaps.cpp.

83{
84 HINSTANCE hCardDll;
85
86
87 //If Windows NT/2000/XP
88 if(GetVersion() < 0x80000000)
89 {
90 hCardDll = LoadLibrary(TEXT("cards.dll"));
91
92 if(hCardDll == 0)
93 {
94 MessageBox(0, TEXT("Error loading cards.dll (32bit)"), TEXT("Shed"), MB_OK | MB_ICONEXCLAMATION);
96 return;
97 }
98
100
101 FreeLibrary(hCardDll);
102 }
103#ifndef __REACTOS__
104 //Else, Win9X
105 else
106 {
107 hCardDll = LoadLibrary16("cards.dll");
108
109 if(hCardDll == 0)
110 {
111 MessageBox(0, "Error loading cards.dll (16bit)", "Shed", MB_OK | MB_ICONEXCLAMATION);
113 return;
114 }
115
117
118 FreeLibrary16(hCardDll);
119 }
120#endif
121}
void WINAPI FreeLibrary16(HINSTANCE)
void LoadCardBitmapsFromLibrary(HINSTANCE hCardDll, int *pwidth, int *pheight)
Definition: cardbitmaps.cpp:21
HINSTANCE WINAPI LoadLibrary16(PSTR)
int __cardwidth
Definition: cardlib.cpp:25
int __cardheight
Definition: cardlib.cpp:26
#define FreeLibrary(x)
Definition: compat.h:748
#define TEXT(s)
Definition: k32.h:26
DWORD WINAPI GetVersion()
Definition: redirtest.c:5
#define LoadLibrary
Definition: winbase.h:3797
__analysis_noreturn void WINAPI PostQuitMessage(_In_ int)
#define MB_ICONEXCLAMATION
Definition: winuser.h:784
#define MB_OK
Definition: winuser.h:789
#define MessageBox
Definition: winuser.h:5821

Referenced by CardWindow::CardWindow().

◆ MakePaletteFromCols()

HPALETTE MakePaletteFromCols ( COLORREF  cols[],
int  nNumColours 
)

Definition at line 256 of file cardbitmaps.cpp.

257{
258 LOGPALETTE *lp;
259 HPALETTE hPalette;
260
261 // Allocate memory for the logical palette
262 lp = (LOGPALETTE *)HeapAlloc(
263 GetProcessHeap(), 0, sizeof(LOGPALETTE) + sizeof(PALETTEENTRY) * nNumColours);
264
265 lp->palNumEntries = (WORD)nNumColours;
266 lp->palVersion = 0x300;
267
268 //copy the colours into the logical palette format
269 for(int i = 0; i < nNumColours; i++)
270 {
271 CopyColor(&lp->palPalEntry[i], cols[i]);
272 }
273
274 // create palette!
275 hPalette = CreatePalette(lp);
276
277 HeapFree(GetProcessHeap(), 0, lp);
278
279 return hPalette;
280}
void CopyColor(PALETTEENTRY *pe, COLORREF col)
#define GetProcessHeap()
Definition: compat.h:736
#define HeapAlloc
Definition: compat.h:733
#define HeapFree(x, y, z)
Definition: compat.h:735
unsigned short WORD
Definition: ntddk_ex.h:93
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
WORD palNumEntries
Definition: wingdi.h:1834
WORD palVersion
Definition: wingdi.h:1833
HPALETTE WINAPI CreatePalette(_In_reads_(_Inexpressible_(2 *sizeof(WORD)+plpal->palNumEntries *sizeof(PALETTEENTRY))) const LOGPALETTE *)
struct tagLOGPALETTE LOGPALETTE

Referenced by CardWindow::CreateCardPalette().

◆ PaintRect()

void PaintRect ( HDC  hdc,
RECT rect,
COLORREF  colour 
)

Definition at line 116 of file cardlib.cpp.

117{
118 COLORREF oldcr = SetBkColor(hdc, colour);
119 ExtTextOut(hdc, 0, 0, ETO_OPAQUE, rect, TEXT(""), 0, 0);
120 SetBkColor(hdc, oldcr);
121}
COLORREF WINAPI SetBkColor(_In_ HDC, _In_ COLORREF)
Definition: dc.c:999
#define ExtTextOut
Definition: wingdi.h:4454
#define ETO_OPAQUE
Definition: wingdi.h:647

◆ RegisterCardWindow()

void RegisterCardWindow ( )

Definition at line 42 of file cardwindow.cpp.

43{
44 WNDCLASSEX wc;
45
46 //Window class for the main application parent window
47 wc.cbSize = sizeof(wc);
50 wc.cbClsExtra = 0;
51 wc.cbWndExtra = sizeof(CardWindow *);
53 wc.hIcon = 0;
55 wc.hbrBackground = 0;
56 wc.lpszMenuName = 0;
58 wc.hIconSm = 0;
59
60 RegisterClassEx(&wc);
61}
static TCHAR szCardName[]
Definition: cardwindow.cpp:37
static LRESULT CALLBACK CardWndProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
Definition: cardwindow.cpp:270
int cbClsExtra
Definition: winuser.h:3203
HINSTANCE hInstance
Definition: winuser.h:3205
HCURSOR hCursor
Definition: winuser.h:3207
LPCSTR lpszMenuName
Definition: winuser.h:3209
HICON hIconSm
Definition: winuser.h:3211
UINT style
Definition: winuser.h:3201
int cbWndExtra
Definition: winuser.h:3204
UINT cbSize
Definition: winuser.h:3200
WNDPROC lpfnWndProc
Definition: winuser.h:3202
LPCSTR lpszClassName
Definition: winuser.h:3210
HICON hIcon
Definition: winuser.h:3206
HBRUSH hbrBackground
Definition: winuser.h:3208
#define GetModuleHandle
Definition: winbase.h:3762
#define CS_VREDRAW
Definition: winuser.h:658
#define CS_HREDRAW
Definition: winuser.h:653
#define IDC_ARROW
Definition: winuser.h:687
#define CS_DBLCLKS
Definition: winuser.h:651
#define RegisterClassEx
Definition: winuser.h:5836
#define LoadCursor
Definition: winuser.h:5811

◆ RestorePalette()

void RestorePalette ( HDC  hdc,
HPALETTE  hOldPal 
)

Definition at line 24 of file cardwindow.cpp.

25{
26 SelectPalette(hdc, hOldPal, TRUE);
27}
#define TRUE
Definition: types.h:120
HPALETTE WINAPI SelectPalette(_In_ HDC, _In_ HPALETTE, _In_ BOOL)

◆ UseNicePalette()

HPALETTE UseNicePalette ( HDC  hdc,
HPALETTE  hPalette 
)

Definition at line 14 of file cardwindow.cpp.

15{
16 HPALETTE hOld;
17
18 hOld = SelectPalette(hdc, hPalette, FALSE);
20
21 return hOld;
22}
#define FALSE
Definition: types.h:117
UINT WINAPI RealizePalette(_In_ HDC)
Definition: palette.c:138

Referenced by CardWindow::CardWindow(), CardWindow::Paint(), CardRegion::PrepareDragBitmaps(), CardRegion::PrepareDragBitmapsThreed(), CardButton::Redraw(), and CardWindow::SetBackColor().

Variable Documentation

◆ __holdplacepal

HPALETTE __holdplacepal
extern

◆ fRegistered

bool fRegistered = false
static

Definition at line 38 of file cardwindow.cpp.

Referenced by CardWindow::CardWindow().

◆ szCardName

TCHAR szCardName[] = _T("CardWnd32")
static

Definition at line 37 of file cardwindow.cpp.

Referenced by CardWindow::Create().

◆ uCardBitmapRef

LONG uCardBitmapRef = 0
static

Definition at line 39 of file cardwindow.cpp.

Referenced by CardWindow::CardWindow(), and CardWindow::~CardWindow().