ReactOS  0.4.15-dev-1207-g698a8e6
draw.c File Reference
#include <win32k.h>
Include dependency graph for draw.c:

Go to the source code of this file.

Macros

#define RBInnerSoft   RBInnerNormal /* These are the same */
 
#define RBOuterSoft   RBOuterNormal
 

Functions

 DBG_DEFAULT_CHANNEL (UserDefwnd)
 
BOOL FASTCALL IntDrawDiagEdge (HDC hdc, LPRECT rc, UINT uType, UINT uFlags)
 
BOOL FASTCALL IntDrawRectEdge (HDC hdc, LPRECT rc, UINT uType, UINT uFlags)
 
int FASTCALL UITOOLS_MakeSquareRect (LPRECT src, LPRECT dst)
 
void FASTCALL UITOOLS_DrawCheckedRect (HDC dc, LPRECT rect)
 
BOOL FASTCALL UITOOLS95_DFC_ButtonPush (HDC dc, LPRECT r, UINT uFlags)
 
BOOL FASTCALL UITOOLS95_DFC_ButtonCheckRadio (HDC dc, LPRECT r, UINT uFlags, BOOL Radio)
 
BOOL FASTCALL UITOOLS95_DrawFrameButton (HDC hdc, LPRECT rc, UINT uState)
 
BOOL FASTCALL UITOOLS95_DrawFrameCaption (HDC dc, LPRECT r, UINT uFlags)
 
BOOL FASTCALL UITOOLS95_DrawFrameScroll (HDC dc, LPRECT r, UINT uFlags)
 
BOOL FASTCALL UITOOLS95_DrawFrameMenu (HDC dc, LPRECT r, UINT uFlags)
 
INT WINAPI FrameRect (HDC hDC, CONST RECT *lprc, HBRUSH hbr)
 
INT WINAPI FillRect (HDC hDC, CONST RECT *lprc, HBRUSH hbr)
 
BOOL WINAPI DrawEdge (HDC hDC, LPRECT rc, UINT edge, UINT flags)
 
BOOL WINAPI DrawFrameControl (HDC hDC, LPRECT rc, UINT uType, UINT uState)
 

Variables

static const signed char LTInnerNormal []
 
static const signed char LTOuterNormal []
 
static const signed char RBInnerNormal []
 
static const signed char RBOuterNormal []
 
static const signed char LTInnerSoft []
 
static const signed char LTOuterSoft []
 
static const signed char LTRBOuterMono []
 
static const signed char LTRBInnerMono []
 
static const signed char LTRBOuterFlat []
 
static const signed char LTRBInnerFlat []
 

Macro Definition Documentation

◆ RBInnerSoft

#define RBInnerSoft   RBInnerNormal /* These are the same */

Definition at line 63 of file draw.c.

◆ RBOuterSoft

#define RBOuterSoft   RBOuterNormal

Definition at line 64 of file draw.c.

Function Documentation

◆ DBG_DEFAULT_CHANNEL()

DBG_DEFAULT_CHANNEL ( UserDefwnd  )

◆ DrawEdge()

BOOL WINAPI DrawEdge ( HDC  hDC,
LPRECT  rc,
UINT  edge,
UINT  flags 
)

Definition at line 1080 of file draw.c.

1081 {
1082  if (flags & BF_DIAGONAL)
1083  return IntDrawDiagEdge(hDC, rc, edge, flags);
1084  else
1085  return IntDrawRectEdge(hDC, rc, edge, flags);
1086 }
BOOL FASTCALL IntDrawDiagEdge(HDC hdc, LPRECT rc, UINT uType, UINT uFlags)
Definition: draw.c:96
GLbitfield flags
Definition: glext.h:7161
static HDC hDC
Definition: 3dtext.c:33
#define BF_DIAGONAL
Definition: winuser.h:463
BOOL FASTCALL IntDrawRectEdge(HDC hdc, LPRECT rc, UINT uType, UINT uFlags)
Definition: draw.c:410

Referenced by MyDrawMenuBarTemp().

◆ DrawFrameControl()

BOOL WINAPI DrawFrameControl ( HDC  hDC,
LPRECT  rc,
UINT  uType,
UINT  uState 
)

Definition at line 1089 of file draw.c.

1090 {
1091  if (GreGetMapMode(hDC) != MM_TEXT)
1092  return FALSE;
1093 
1094  switch(uType)
1095  {
1096  case DFC_BUTTON:
1097  return UITOOLS95_DrawFrameButton(hDC, rc, uState);
1098  case DFC_CAPTION:
1099  return UITOOLS95_DrawFrameCaption(hDC, rc, uState);
1100  case DFC_MENU:
1101  return UITOOLS95_DrawFrameMenu(hDC, rc, uState);
1102 #if 0
1103  case DFC_POPUPMENU:
1104  UNIMPLEMENTED;
1105  break;
1106 #endif
1107  case DFC_SCROLL:
1108  return UITOOLS95_DrawFrameScroll(hDC, rc, uState);
1109  }
1110  return FALSE;
1111 }
#define DFC_BUTTON
Definition: winuser.h:476
BOOL FASTCALL UITOOLS95_DrawFrameScroll(HDC dc, LPRECT r, UINT uFlags)
Definition: draw.c:851
BOOL FASTCALL UITOOLS95_DrawFrameCaption(HDC dc, LPRECT r, UINT uFlags)
Definition: draw.c:783
#define FALSE
Definition: types.h:117
BOOL FASTCALL UITOOLS95_DrawFrameButton(HDC hdc, LPRECT rc, UINT uState)
Definition: draw.c:759
BOOL FASTCALL UITOOLS95_DrawFrameMenu(HDC dc, LPRECT r, UINT uFlags)
Definition: draw.c:954
#define DFC_CAPTION
Definition: winuser.h:473
static HDC hDC
Definition: 3dtext.c:33
int FASTCALL GreGetMapMode(HDC)
Definition: dcutil.c:65
#define DFC_SCROLL
Definition: winuser.h:475
#define MM_TEXT
Definition: wingdi.h:872
#define UNIMPLEMENTED
Definition: debug.h:115
#define DFC_MENU
Definition: winuser.h:474

◆ FillRect()

INT WINAPI FillRect ( HDC  hDC,
CONST RECT lprc,
HBRUSH  hbr 
)

Definition at line 1052 of file draw.c.

1053 {
1054  BOOL Ret;
1055  HBRUSH prevhbr = NULL;
1056 
1057  /* Select brush if specified */
1058  if (hbr)
1059  {
1060  /* Handle system colors */
1061  if (hbr <= (HBRUSH)(COLOR_MENUBAR + 1))
1062  hbr = IntGetSysColorBrush(PtrToUlong(hbr) - 1);
1063 
1064  prevhbr = NtGdiSelectBrush(hDC, hbr);
1065  if (prevhbr == NULL)
1066  return (INT)FALSE;
1067  }
1068 
1069  Ret = NtGdiPatBlt(hDC, lprc->left, lprc->top, lprc->right - lprc->left,
1070  lprc->bottom - lprc->top, PATCOPY);
1071 
1072  /* Select old brush */
1073  if (prevhbr)
1074  NtGdiSelectBrush(hDC, prevhbr);
1075 
1076  return (INT)Ret;
1077 }
_In_ int _Inout_ LPRECT lprc
Definition: winuser.h:4440
__kernel_entry W32KAPI BOOL APIENTRY NtGdiPatBlt(_In_ HDC hdcDest, _In_ INT x, _In_ INT y, _In_ INT cx, _In_ INT cy, _In_ DWORD dwRop)
Definition: bitblt.c:919
HGDIOBJ FASTCALL IntGetSysColorBrush(INT Object)
Definition: stockobj.c:317
LONG top
Definition: windef.h:307
LONG left
Definition: windef.h:306
LONG right
Definition: windef.h:308
int32_t INT
Definition: typedefs.h:58
__kernel_entry W32KAPI HBRUSH APIENTRY NtGdiSelectBrush(_In_ HDC hdc, _In_ HBRUSH hbrush)
#define FALSE
Definition: types.h:117
unsigned int BOOL
Definition: ntddk_ex.h:94
smooth NULL
Definition: ftsmooth.c:416
#define PtrToUlong(u)
Definition: config.h:107
#define PATCOPY
Definition: wingdi.h:334
static HDC hDC
Definition: 3dtext.c:33
LONG bottom
Definition: windef.h:309

Referenced by draw_rect_edge(), IntDrawRectEdge(), IntDrawState(), MyDrawCaptionTemp(), MyDrawMenuBarTemp(), MyDrawScrollbar(), MyIntDrawRectEdge(), UITOOLS95_DFC_ButtonCheckRadio(), UITOOLS95_DFC_ButtonPush(), UITOOLS_DrawCheckedRect(), UXTHEME_DrawBackgroundFill(), and UXTHEME_DrawThemePartToDib().

◆ FrameRect()

INT WINAPI FrameRect ( HDC  hDC,
CONST RECT lprc,
HBRUSH  hbr 
)

Definition at line 1033 of file draw.c.

1034 {
1035  HBRUSH oldbrush;
1036  RECT r = *lprc;
1037 
1038  if ((r.right <= r.left) || (r.bottom <= r.top)) return 0;
1039  if (!(oldbrush = NtGdiSelectBrush(hDC, hbr))) return 0;
1040 
1041  NtGdiPatBlt(hDC, r.left, r.top, 1, r.bottom - r.top, PATCOPY);
1042  NtGdiPatBlt(hDC, r.right - 1, r.top, 1, r.bottom - r.top, PATCOPY);
1043  NtGdiPatBlt(hDC, r.left, r.top, r.right - r.left, 1, PATCOPY);
1044  NtGdiPatBlt(hDC, r.left, r.bottom - 1, r.right - r.left, 1, PATCOPY);
1045 
1046  NtGdiSelectBrush(hDC, oldbrush);
1047  return TRUE;
1048 }
_In_ int _Inout_ LPRECT lprc
Definition: winuser.h:4440
__kernel_entry W32KAPI BOOL APIENTRY NtGdiPatBlt(_In_ HDC hdcDest, _In_ INT x, _In_ INT y, _In_ INT cx, _In_ INT cy, _In_ DWORD dwRop)
Definition: bitblt.c:919
#define TRUE
Definition: types.h:120
GLdouble GLdouble GLdouble r
Definition: gl.h:2055
__kernel_entry W32KAPI HBRUSH APIENTRY NtGdiSelectBrush(_In_ HDC hdc, _In_ HBRUSH hbrush)
#define PATCOPY
Definition: wingdi.h:334
static HDC hDC
Definition: 3dtext.c:33

Referenced by MyDrawMenuBarTemp().

◆ IntDrawDiagEdge()

BOOL FASTCALL IntDrawDiagEdge ( HDC  hdc,
LPRECT  rc,
UINT  uType,
UINT  uFlags 
)

Definition at line 96 of file draw.c.

97 {
98  POINT Points[4];
99  signed char InnerI, OuterI;
100  HPEN InnerPen, OuterPen;
101  POINT SavePoint;
102  HPEN SavePen;
103  int spx, spy;
104  int epx, epy;
105  int Width = rc->right - rc->left;
106  int Height= rc->bottom - rc->top;
107  int SmallDiam = Width > Height ? Height : Width;
108  BOOL retval = !( ((uType & BDR_INNER) == BDR_INNER
109  || (uType & BDR_OUTER) == BDR_OUTER)
110  && !(uFlags & (BF_FLAT|BF_MONO)) );
111  int add = (LTRBInnerMono[uType & (BDR_INNER|BDR_OUTER)] != -1 ? 1 : 0)
112  + (LTRBOuterMono[uType & (BDR_INNER|BDR_OUTER)] != -1 ? 1 : 0);
113 
114  /* Init some vars */
115  OuterPen = InnerPen = (HPEN)NtGdiGetStockObject(NULL_PEN);
116  SavePen = (HPEN)NtGdiSelectPen(hdc, InnerPen);
117  spx = spy = epx = epy = 0; /* Satisfy the compiler... */
118 
119  /* Determine the colors of the edges */
120  if(uFlags & BF_MONO)
121  {
122  InnerI = LTRBInnerMono[uType & (BDR_INNER|BDR_OUTER)];
123  OuterI = LTRBOuterMono[uType & (BDR_INNER|BDR_OUTER)];
124  }
125  else if(uFlags & BF_FLAT)
126  {
127  InnerI = LTRBInnerFlat[uType & (BDR_INNER|BDR_OUTER)];
128  OuterI = LTRBOuterFlat[uType & (BDR_INNER|BDR_OUTER)];
129  }
130  else if(uFlags & BF_SOFT)
131  {
132  if(uFlags & BF_BOTTOM)
133  {
134  InnerI = RBInnerSoft[uType & (BDR_INNER|BDR_OUTER)];
135  OuterI = RBOuterSoft[uType & (BDR_INNER|BDR_OUTER)];
136  }
137  else
138  {
139  InnerI = LTInnerSoft[uType & (BDR_INNER|BDR_OUTER)];
140  OuterI = LTOuterSoft[uType & (BDR_INNER|BDR_OUTER)];
141  }
142  }
143  else
144  {
145  if(uFlags & BF_BOTTOM)
146  {
147  InnerI = RBInnerNormal[uType & (BDR_INNER|BDR_OUTER)];
148  OuterI = RBOuterNormal[uType & (BDR_INNER|BDR_OUTER)];
149  }
150  else
151  {
152  InnerI = LTInnerNormal[uType & (BDR_INNER|BDR_OUTER)];
153  OuterI = LTOuterNormal[uType & (BDR_INNER|BDR_OUTER)];
154  }
155  }
156 
157  if(InnerI != -1)
158  InnerPen = NtGdiGetStockObject(DC_PEN);
159  if(OuterI != -1)
160  OuterPen = NtGdiGetStockObject(DC_PEN);
161 
162  GreMoveTo(hdc, 0, 0, &SavePoint);
163 
164  /* Don't ask me why, but this is what is visible... */
165  /* This must be possible to do much simpler, but I fail to */
166  /* see the logic in the MS implementation (sigh...). */
167  /* So, this might look a bit brute force here (and it is), but */
168  /* it gets the job done;) */
169 
170  switch(uFlags & BF_RECT)
171  {
172  case 0:
173  case BF_LEFT:
174  case BF_BOTTOM:
175  case BF_BOTTOMLEFT:
176  /* Left bottom endpoint */
177  epx = rc->left-1;
178  spx = epx + SmallDiam;
179  epy = rc->bottom;
180  spy = epy - SmallDiam;
181  break;
182 
183  case BF_TOPLEFT:
184  case BF_BOTTOMRIGHT:
185  /* Left top endpoint */
186  epx = rc->left-1;
187  spx = epx + SmallDiam;
188  epy = rc->top-1;
189  spy = epy + SmallDiam;
190  break;
191 
192  case BF_TOP:
193  case BF_RIGHT:
194  case BF_TOPRIGHT:
195  case BF_RIGHT|BF_LEFT:
196  case BF_RIGHT|BF_LEFT|BF_TOP:
197  case BF_BOTTOM|BF_TOP:
198  case BF_BOTTOM|BF_TOP|BF_LEFT:
199  case BF_BOTTOMRIGHT|BF_LEFT:
200  case BF_BOTTOMRIGHT|BF_TOP:
201  case BF_RECT:
202  /* Right top endpoint */
203  spx = rc->left;
204  epx = spx + SmallDiam;
205  spy = rc->bottom-1;
206  epy = spy - SmallDiam;
207  break;
208  }
209 
210  GreMoveTo(hdc, spx, spy, NULL);
211  NtGdiSelectPen(hdc, OuterPen);
213  NtGdiLineTo(hdc, epx, epy);
214 
215  NtGdiSelectPen(hdc, InnerPen);
217 
218  switch(uFlags & (BF_RECT|BF_DIAGONAL))
219  {
221  case (BF_DIAGONAL|BF_BOTTOM):
222  case BF_DIAGONAL:
223  case (BF_DIAGONAL|BF_LEFT):
224  GreMoveTo(hdc, spx-1, spy, NULL);
225  NtGdiLineTo(hdc, epx, epy-1);
226  Points[0].x = spx-add;
227  Points[0].y = spy;
228  Points[1].x = rc->left;
229  Points[1].y = rc->top;
230  Points[2].x = epx+1;
231  Points[2].y = epy-1-add;
232  Points[3] = Points[2];
233  break;
234 
236  GreMoveTo(hdc, spx-1, spy, NULL);
237  NtGdiLineTo(hdc, epx, epy+1);
238  Points[0].x = spx-add;
239  Points[0].y = spy;
240  Points[1].x = rc->left;
241  Points[1].y = rc->bottom-1;
242  Points[2].x = epx+1;
243  Points[2].y = epy+1+add;
244  Points[3] = Points[2];
245  break;
246 
251  GreMoveTo(hdc, spx+1, spy, NULL);
252  NtGdiLineTo(hdc, epx, epy+1);
253  Points[0].x = epx-1;
254  Points[0].y = epy+1+add;
255  Points[1].x = rc->right-1;
256  Points[1].y = rc->top+add;
257  Points[2].x = rc->right-1;
258  Points[2].y = rc->bottom-1;
259  Points[3].x = spx+add;
260  Points[3].y = spy;
261  break;
262 
264  GreMoveTo(hdc, spx, spy-1, NULL);
265  NtGdiLineTo(hdc, epx+1, epy);
266  Points[0].x = epx+1+add;
267  Points[0].y = epy+1;
268  Points[1].x = rc->right-1;
269  Points[1].y = rc->top;
270  Points[2].x = rc->right-1;
271  Points[2].y = rc->bottom-1-add;
272  Points[3].x = spx;
273  Points[3].y = spy-add;
274  break;
275 
276  case (BF_DIAGONAL|BF_TOP):
279  GreMoveTo(hdc, spx+1, spy-1, NULL);
280  NtGdiLineTo(hdc, epx, epy);
281  Points[0].x = epx-1;
282  Points[0].y = epy+1;
283  Points[1].x = rc->right-1;
284  Points[1].y = rc->top;
285  Points[2].x = rc->right-1;
286  Points[2].y = rc->bottom-1-add;
287  Points[3].x = spx+add;
288  Points[3].y = spy-add;
289  break;
290 
291  case (BF_DIAGONAL|BF_RIGHT):
294  GreMoveTo(hdc, spx, spy, NULL);
295  NtGdiLineTo(hdc, epx-1, epy+1);
296  Points[0].x = spx;
297  Points[0].y = spy;
298  Points[1].x = rc->left;
299  Points[1].y = rc->top+add;
300  Points[2].x = epx-1-add;
301  Points[2].y = epy+1+add;
302  Points[3] = Points[2];
303  break;
304  }
305 
306  /* Fill the interior if asked */
307  if((uFlags & BF_MIDDLE) && retval)
308  {
309  HBRUSH hbsave;
310  HPEN hpsave;
311  hbsave = (HBRUSH)NtGdiSelectBrush(hdc, NtGdiGetStockObject(DC_BRUSH));
312  hpsave = (HPEN)NtGdiSelectPen(hdc, NtGdiGetStockObject(DC_PEN));
315  IntPolygon(hdc, Points, 4);
316  NtGdiSelectBrush(hdc, hbsave);
317  NtGdiSelectPen(hdc, hpsave);
318  }
319 
320  /* Adjust rectangle if asked */
321  if(uFlags & BF_ADJUST)
322  {
323  if(uFlags & BF_LEFT)
324  rc->left += add;
325  if(uFlags & BF_RIGHT)
326  rc->right -= add;
327  if(uFlags & BF_TOP)
328  rc->top += add;
329  if(uFlags & BF_BOTTOM)
330  rc->bottom -= add;
331  }
332 
333  /* Cleanup */
334  NtGdiSelectPen(hdc, SavePen);
335  GreMoveTo(hdc, SavePoint.x, SavePoint.y, NULL);
336 
337  return retval;
338 }
#define BF_FLAT
Definition: winuser.h:471
int add
Definition: i386-dis.c:3122
#define BF_DIAGONAL_ENDTOPLEFT
Definition: winuser.h:465
#define BF_MIDDLE
Definition: winuser.h:468
long y
Definition: polytest.cpp:48
long x
Definition: polytest.cpp:48
#define BDR_INNER
Definition: winuser.h:447
#define BF_DIAGONAL_ENDTOPRIGHT
Definition: winuser.h:464
__kernel_entry W32KAPI HANDLE APIENTRY NtGdiGetStockObject(_In_ INT iObject)
static const signed char LTInnerNormal[]
Definition: draw.c:21
#define RBInnerSoft
Definition: draw.c:63
#define BF_BOTTOM
Definition: winuser.h:457
LONG top
Definition: windef.h:307
static const signed char LTRBInnerMono[]
Definition: draw.c:73
#define BF_BOTTOMLEFT
Definition: winuser.h:460
LONG left
Definition: windef.h:306
UINT uFlags
Definition: api.c:59
LONG right
Definition: windef.h:308
#define COLOR_WINDOW
Definition: winuser.h:908
#define BF_ADJUST
Definition: winuser.h:470
__kernel_entry W32KAPI HBRUSH APIENTRY NtGdiSelectBrush(_In_ HDC hdc, _In_ HBRUSH hbrush)
#define BF_TOPLEFT
Definition: winuser.h:458
#define BF_RECT
Definition: winuser.h:462
__kernel_entry W32KAPI BOOL APIENTRY NtGdiLineTo(_In_ HDC hdc, _In_ INT x, _In_ INT y)
__kernel_entry W32KAPI HPEN APIENTRY NtGdiSelectPen(_In_ HDC hdc, _In_ HPEN hpen)
unsigned int BOOL
Definition: ntddk_ex.h:94
#define BF_DIAGONAL_ENDBOTTOMLEFT
Definition: winuser.h:466
#define BF_MONO
Definition: winuser.h:472
static const signed char LTRBOuterMono[]
Definition: draw.c:66
#define NULL_PEN
Definition: wingdi.h:903
#define BF_BOTTOMRIGHT
Definition: winuser.h:461
smooth NULL
Definition: ftsmooth.c:416
static const signed char LTOuterSoft[]
Definition: draw.c:56
#define RBOuterSoft
Definition: draw.c:64
static const signed char LTOuterNormal[]
Definition: draw.c:28
#define BF_RIGHT
Definition: winuser.h:456
#define BF_DIAGONAL_ENDBOTTOMRIGHT
Definition: winuser.h:467
DWORD FASTCALL IntGetSysColor(INT nIndex)
Definition: stockobj.c:323
#define BF_TOPRIGHT
Definition: winuser.h:459
HDC hdc
Definition: main.c:9
#define COLOR_BTNFACE
Definition: winuser.h:918
COLORREF FASTCALL IntSetDCPenColor(HDC, COLORREF)
Definition: dcutil.c:259
BOOL FASTCALL IntPolygon(HDC hdc, POINT *Point, int Count)
Definition: fillshap.c:166
BOOL FASTCALL GreMoveTo(HDC hdc, INT x, INT y, LPPOINT pptOut)
Definition: line.c:108
#define BF_SOFT
Definition: winuser.h:469
#define BDR_OUTER
Definition: winuser.h:446
#define BF_DIAGONAL
Definition: winuser.h:463
#define BF_TOP
Definition: winuser.h:455
static const signed char LTRBInnerFlat[]
Definition: draw.c:87
static const signed char LTInnerSoft[]
Definition: draw.c:49
LONG bottom
Definition: windef.h:309
COLORREF FASTCALL IntSetDCBrushColor(HDC, COLORREF)
Definition: dcutil.c:206
static const signed char LTRBOuterFlat[]
Definition: draw.c:80
static const signed char RBInnerNormal[]
Definition: draw.c:35
#define BF_LEFT
Definition: winuser.h:454
static const signed char RBOuterNormal[]
Definition: draw.c:42

Referenced by DrawEdge().

◆ IntDrawRectEdge()

BOOL FASTCALL IntDrawRectEdge ( HDC  hdc,
LPRECT  rc,
UINT  uType,
UINT  uFlags 
)

Definition at line 410 of file draw.c.

411 {
412  signed char LTInnerI, LTOuterI;
413  signed char RBInnerI, RBOuterI;
414  HPEN LTInnerPen, LTOuterPen;
415  HPEN RBInnerPen, RBOuterPen;
416  RECT InnerRect = *rc;
417  POINT SavePoint;
418  HPEN SavePen;
419  int LBpenplus = 0;
420  int LTpenplus = 0;
421  int RTpenplus = 0;
422  int RBpenplus = 0;
423  BOOL retval = !( ((uType & BDR_INNER) == BDR_INNER
424  || (uType & BDR_OUTER) == BDR_OUTER)
425  && !(uFlags & (BF_FLAT|BF_MONO)) );
426  /* Init some vars */
427  LTInnerPen = LTOuterPen = RBInnerPen = RBOuterPen = (HPEN)NtGdiGetStockObject(NULL_PEN);
428  SavePen = (HPEN)NtGdiSelectPen(hdc, LTInnerPen);
429 
430  /* Determine the colors of the edges */
431  if(uFlags & BF_MONO)
432  {
433  LTInnerI = RBInnerI = LTRBInnerMono[uType & (BDR_INNER|BDR_OUTER)];
434  LTOuterI = RBOuterI = LTRBOuterMono[uType & (BDR_INNER|BDR_OUTER)];
435  }
436  else if(uFlags & BF_FLAT)
437  {
438  LTInnerI = RBInnerI = LTRBInnerFlat[uType & (BDR_INNER|BDR_OUTER)];
439  LTOuterI = RBOuterI = LTRBOuterFlat[uType & (BDR_INNER|BDR_OUTER)];
440 
441  /* Bertho Stultiens states above that this function exactly matches win95
442  * In win98 BF_FLAT rectangles have an inner border same color as the
443  * middle (COLOR_BTNFACE). I believe it's the same for win95 but since
444  * I don't know I go with Bertho and just sets it for win98 until proven
445  * otherwise.
446  * Dennis Bj√∂rklund, 10 June, 99
447  */
448  if( LTInnerI != -1 )
449  LTInnerI = RBInnerI = COLOR_BTNFACE;
450  }
451  else if(uFlags & BF_SOFT)
452  {
453  LTInnerI = LTInnerSoft[uType & (BDR_INNER|BDR_OUTER)];
454  LTOuterI = LTOuterSoft[uType & (BDR_INNER|BDR_OUTER)];
455  RBInnerI = RBInnerSoft[uType & (BDR_INNER|BDR_OUTER)];
456  RBOuterI = RBOuterSoft[uType & (BDR_INNER|BDR_OUTER)];
457  }
458  else
459  {
460  LTInnerI = LTInnerNormal[uType & (BDR_INNER|BDR_OUTER)];
461  LTOuterI = LTOuterNormal[uType & (BDR_INNER|BDR_OUTER)];
462  RBInnerI = RBInnerNormal[uType & (BDR_INNER|BDR_OUTER)];
463  RBOuterI = RBOuterNormal[uType & (BDR_INNER|BDR_OUTER)];
464  }
465 
467  LBpenplus = 1;
468  if((uFlags & BF_TOPRIGHT) == BF_TOPRIGHT)
469  RTpenplus = 1;
471  RBpenplus = 1;
472  if((uFlags & BF_TOPLEFT) == BF_TOPLEFT)
473  LTpenplus = 1;
474 
475  if(LTInnerI != -1)
476  LTInnerPen = NtGdiGetStockObject(DC_PEN);
477  if(LTOuterI != -1)
478  LTOuterPen = NtGdiGetStockObject(DC_PEN);
479  if(RBInnerI != -1)
480  RBInnerPen = NtGdiGetStockObject(DC_PEN);
481  if(RBOuterI != -1)
482  RBOuterPen = NtGdiGetStockObject(DC_PEN);
483  if((uFlags & BF_MIDDLE) && retval)
484  {
487  }
488  GreMoveTo(hdc, 0, 0, &SavePoint);
489 
490  /* Draw the outer edge */
491  NtGdiSelectPen(hdc, LTOuterPen);
492  IntSetDCPenColor(hdc, IntGetSysColor(LTOuterI));
493  if(uFlags & BF_TOP)
494  {
495  GreMoveTo(hdc, InnerRect.left, InnerRect.top, NULL);
496  NtGdiLineTo(hdc, InnerRect.right, InnerRect.top);
497  }
498  if(uFlags & BF_LEFT)
499  {
500  GreMoveTo(hdc, InnerRect.left, InnerRect.top, NULL);
501  NtGdiLineTo(hdc, InnerRect.left, InnerRect.bottom);
502  }
503  NtGdiSelectPen(hdc, RBOuterPen);
504  IntSetDCPenColor(hdc, IntGetSysColor(RBOuterI));
505  if(uFlags & BF_BOTTOM)
506  {
507  GreMoveTo(hdc, InnerRect.left, InnerRect.bottom-1, NULL);
508  NtGdiLineTo(hdc, InnerRect.right, InnerRect.bottom-1);
509  }
510  if(uFlags & BF_RIGHT)
511  {
512  GreMoveTo(hdc, InnerRect.right-1, InnerRect.top, NULL);
513  NtGdiLineTo(hdc, InnerRect.right-1, InnerRect.bottom);
514  }
515 
516  /* Draw the inner edge */
517  NtGdiSelectPen(hdc, LTInnerPen);
518  IntSetDCPenColor(hdc, IntGetSysColor(LTInnerI));
519  if(uFlags & BF_TOP)
520  {
521  GreMoveTo(hdc, InnerRect.left+LTpenplus, InnerRect.top+1, NULL);
522  NtGdiLineTo(hdc, InnerRect.right-RTpenplus, InnerRect.top+1);
523  }
524  if(uFlags & BF_LEFT)
525  {
526  GreMoveTo(hdc, InnerRect.left+1, InnerRect.top+LTpenplus, NULL);
527  NtGdiLineTo(hdc, InnerRect.left+1, InnerRect.bottom-LBpenplus);
528  }
529  NtGdiSelectPen(hdc, RBInnerPen);
530  IntSetDCPenColor(hdc, IntGetSysColor(RBInnerI));
531  if(uFlags & BF_BOTTOM)
532  {
533  GreMoveTo(hdc, InnerRect.left+LBpenplus, InnerRect.bottom-2, NULL);
534  NtGdiLineTo(hdc, InnerRect.right-RBpenplus, InnerRect.bottom-2);
535  }
536  if(uFlags & BF_RIGHT)
537  {
538  GreMoveTo(hdc, InnerRect.right-2, InnerRect.top+RTpenplus, NULL);
539  NtGdiLineTo(hdc, InnerRect.right-2, InnerRect.bottom-RBpenplus);
540  }
541 
542  if( ((uFlags & BF_MIDDLE) && retval) || (uFlags & BF_ADJUST) )
543  {
544  int add = (LTRBInnerMono[uType & (BDR_INNER|BDR_OUTER)] != -1 ? 1 : 0)
545  + (LTRBOuterMono[uType & (BDR_INNER|BDR_OUTER)] != -1 ? 1 : 0);
546 
547  if(uFlags & BF_LEFT)
548  InnerRect.left += add;
549  if(uFlags & BF_RIGHT)
550  InnerRect.right -= add;
551  if(uFlags & BF_TOP)
552  InnerRect.top += add;
553  if(uFlags & BF_BOTTOM)
554  InnerRect.bottom -= add;
555 
556  if(uFlags & BF_ADJUST)
557  *rc = InnerRect;
558  }
559 
560  /* Cleanup */
561  NtGdiSelectPen(hdc, SavePen);
562  GreMoveTo(hdc, SavePoint.x, SavePoint.y, NULL);
563  return retval;
564 }
#define BF_FLAT
Definition: winuser.h:471
int add
Definition: i386-dis.c:3122
#define BF_MIDDLE
Definition: winuser.h:468
long y
Definition: polytest.cpp:48
HGDIOBJ FASTCALL IntGetSysColorBrush(INT Object)
Definition: stockobj.c:317
long x
Definition: polytest.cpp:48
#define BDR_INNER
Definition: winuser.h:447
__kernel_entry W32KAPI HANDLE APIENTRY NtGdiGetStockObject(_In_ INT iObject)
static const signed char LTInnerNormal[]
Definition: draw.c:21
#define RBInnerSoft
Definition: draw.c:63
#define BF_BOTTOM
Definition: winuser.h:457
LONG top
Definition: windef.h:307
static const signed char LTRBInnerMono[]
Definition: draw.c:73
#define BF_BOTTOMLEFT
Definition: winuser.h:460
LONG left
Definition: windef.h:306
UINT uFlags
Definition: api.c:59
LONG right
Definition: windef.h:308
INT WINAPI FillRect(HDC hDC, CONST RECT *lprc, HBRUSH hbr)
Definition: draw.c:1052
#define COLOR_WINDOW
Definition: winuser.h:908
#define BF_ADJUST
Definition: winuser.h:470
#define BF_TOPLEFT
Definition: winuser.h:458
__kernel_entry W32KAPI BOOL APIENTRY NtGdiLineTo(_In_ HDC hdc, _In_ INT x, _In_ INT y)
__kernel_entry W32KAPI HPEN APIENTRY NtGdiSelectPen(_In_ HDC hdc, _In_ HPEN hpen)
unsigned int BOOL
Definition: ntddk_ex.h:94
#define BF_MONO
Definition: winuser.h:472
static const signed char LTRBOuterMono[]
Definition: draw.c:66
#define NULL_PEN
Definition: wingdi.h:903
#define BF_BOTTOMRIGHT
Definition: winuser.h:461
smooth NULL
Definition: ftsmooth.c:416
static const signed char LTOuterSoft[]
Definition: draw.c:56
#define RBOuterSoft
Definition: draw.c:64
static const signed char LTOuterNormal[]
Definition: draw.c:28
#define BF_RIGHT
Definition: winuser.h:456
DWORD FASTCALL IntGetSysColor(INT nIndex)
Definition: stockobj.c:323
#define BF_TOPRIGHT
Definition: winuser.h:459
HDC hdc
Definition: main.c:9
#define COLOR_BTNFACE
Definition: winuser.h:918
COLORREF FASTCALL IntSetDCPenColor(HDC, COLORREF)
Definition: dcutil.c:259
BOOL FASTCALL GreMoveTo(HDC hdc, INT x, INT y, LPPOINT pptOut)
Definition: line.c:108
#define BF_SOFT
Definition: winuser.h:469
#define BDR_OUTER
Definition: winuser.h:446
#define BF_TOP
Definition: winuser.h:455
static const signed char LTRBInnerFlat[]
Definition: draw.c:87
static const signed char LTInnerSoft[]
Definition: draw.c:49
LONG bottom
Definition: windef.h:309
static const signed char LTRBOuterFlat[]
Definition: draw.c:80
static const signed char RBInnerNormal[]
Definition: draw.c:35
#define BF_LEFT
Definition: winuser.h:454
static const signed char RBOuterNormal[]
Definition: draw.c:42

Referenced by DrawEdge(), UITOOLS95_DFC_ButtonPush(), UITOOLS95_DrawFrameCaption(), and UITOOLS95_DrawFrameScroll().

◆ UITOOLS95_DFC_ButtonCheckRadio()

BOOL FASTCALL UITOOLS95_DFC_ButtonCheckRadio ( HDC  dc,
LPRECT  r,
UINT  uFlags,
BOOL  Radio 
)

Definition at line 664 of file draw.c.

665 {
666  LOGFONTW lf;
667  HFONT hFont, hOldFont;
668  int i;
669  WCHAR OutRight, OutLeft, InRight, InLeft, Center;
670  RECT myr;
671  INT cxy, nBkMode;
672 
673  cxy = UITOOLS_MakeSquareRect(r, &myr);
674  if (Radio)
675  {
676  OutRight = 'j'; // Outer right
677  OutLeft = 'k'; // Outer left
678  InRight = 'l'; // inner left
679  InLeft = 'm'; // inner right
680  Center = 'n'; // center
681  } else
682  {
683  OutRight = 'c'; // Outer right
684  OutLeft = 'd'; // Outer left
685  InRight = 'e'; // inner left
686  InLeft = 'f'; // inner right
687  Center = 'g'; // center
688  }
689 
690  RtlZeroMemory(&lf, sizeof(LOGFONTW));
691  lf.lfHeight = cxy;
692  lf.lfWidth = 0;
693  lf.lfWeight = FW_NORMAL;
695  RtlCopyMemory(lf.lfFaceName, L"Marlett", sizeof(L"Marlett"));
697  hOldFont = NtGdiSelectFont(dc, hFont);
698 
699  nBkMode = GreGetBkMode(dc);
700 
701  if(Radio && ((uFlags & 0xff) == DFCS_BUTTONRADIOMASK))
702  {
705  GreTextOutW(dc, myr.left, myr.top, &Center, 1);
708  GreTextOutW(dc, myr.left, myr.top, &OutRight, 1);
710  GreTextOutW(dc, myr.left, myr.top, &OutLeft, 1);
711  }
712  else
713  {
715 
716  /* Center section, white for active, grey for inactive */
719  GreTextOutW(dc, myr.left, myr.top, &Center, 1);
720 
721  if(uFlags & (DFCS_FLAT | DFCS_MONO))
722  {
724  GreTextOutW(dc, myr.left, myr.top, &OutRight, 1);
725  GreTextOutW(dc, myr.left, myr.top, &OutLeft, 1);
726  GreTextOutW(dc, myr.left, myr.top, &InRight, 1);
727  GreTextOutW(dc, myr.left, myr.top, &InLeft, 1);
728  }
729  else
730  {
732  GreTextOutW(dc, myr.left, myr.top, &OutRight, 1);
734  GreTextOutW(dc, myr.left, myr.top, &OutLeft, 1);
736  GreTextOutW(dc, myr.left, myr.top, &InRight, 1);
738  GreTextOutW(dc, myr.left, myr.top, &InLeft, 1);
739  }
740  }
741 
742  if(uFlags & DFCS_CHECKED)
743  {
744  WCHAR Check = (Radio) ? 'i' : 'b';
745 
747  GreTextOutW(dc, myr.left, myr.top, &Check, 1);
748  }
749 
751  NtGdiSelectFont(dc, hOldFont);
753  IntGdiSetBkMode(dc, nBkMode);
754 
755  return TRUE;
756 }
#define DFCS_FLAT
Definition: winuser.h:510
BOOL NTAPI GreDeleteObject(HGDIOBJ hobj)
Definition: gdiobj.c:1155
NTSYSAPI VOID NTAPI RtlCopyMemory(VOID UNALIGNED *Destination, CONST VOID UNALIGNED *Source, ULONG Length)
#define COLOR_WINDOWFRAME
Definition: winuser.h:909
#define DFCS_CHECKED
Definition: winuser.h:504
#define TRUE
Definition: types.h:120
GLdouble GLdouble GLdouble r
Definition: gl.h:2055
int FASTCALL UITOOLS_MakeSquareRect(LPRECT src, LPRECT dst)
Definition: draw.c:566
LONG lfHeight
Definition: dimm.idl:59
BYTE lfCharSet
Definition: dimm.idl:67
#define DFCS_INACTIVE
Definition: winuser.h:502
LONG top
Definition: windef.h:307
INT FASTCALL IntGdiSetBkMode(HDC hDC, INT backgroundMode)
Definition: dcutil.c:124
#define COLOR_BTNHIGHLIGHT
Definition: winuser.h:925
LONG left
Definition: windef.h:306
UINT uFlags
Definition: api.c:59
#define DEFAULT_CHARSET
Definition: wingdi.h:383
#define COLOR_WINDOW
Definition: winuser.h:908
int32_t INT
Definition: typedefs.h:58
HFONT hFont
Definition: main.c:53
#define DFCS_PUSHED
Definition: winuser.h:503
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
int Check()
Definition: movefile.cpp:196
#define TRANSPARENT
Definition: wingdi.h:949
LONG lfWidth
Definition: dimm.idl:60
COLORREF FASTCALL IntGdiSetTextColor(HDC hDC, COLORREF color)
Definition: dcutil.c:172
BOOL FASTCALL GreTextOutW(HDC hdc, int nXStart, int nYStart, LPCWSTR lpString, int cchString)
Definition: text.c:61
HFONT FASTCALL GreCreateFontIndirectW(LOGFONTW *lplf)
Definition: font.c:23
__kernel_entry W32KAPI HFONT APIENTRY NtGdiSelectFont(_In_ HDC hdc, _In_ HFONT hf)
Definition: dcobjs.c:597
__wchar_t WCHAR
Definition: xmlstorage.h:180
#define COLOR_WINDOWTEXT
Definition: winuser.h:911
#define DFCS_MONO
Definition: winuser.h:511
DWORD FASTCALL IntGetSysColor(INT nIndex)
Definition: stockobj.c:323
int FASTCALL GreGetBkMode(HDC)
Definition: dcutil.c:35
#define OPAQUE
Definition: wingdi.h:948
static const WCHAR L[]
Definition: oid.c:1250
#define COLOR_BTNFACE
Definition: winuser.h:918
#define COLOR_3DLIGHT
Definition: winuser.h:930
#define COLOR_BTNSHADOW
Definition: winuser.h:920
#define FW_NORMAL
Definition: wingdi.h:372
static DWORD *static HFONT(WINAPI *pCreateFontIndirectExA)(const ENUMLOGFONTEXDVA *)
WCHAR lfFaceName[LF_FACESIZE]
Definition: dimm.idl:72
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262
static const WCHAR dc[]
#define COLOR_3DDKSHADOW
Definition: winuser.h:929
LONG lfWeight
Definition: dimm.idl:63
#define DFCS_BUTTONRADIOMASK
Definition: winuser.h:498

Referenced by UITOOLS95_DrawFrameButton().

◆ UITOOLS95_DFC_ButtonPush()

BOOL FASTCALL UITOOLS95_DFC_ButtonPush ( HDC  dc,
LPRECT  r,
UINT  uFlags 
)

Definition at line 620 of file draw.c.

621 {
622  UINT edge;
623  RECT myr = *r;
624 
626  edge = EDGE_SUNKEN;
627  else
628  edge = EDGE_RAISED;
629 
630  if(uFlags & DFCS_CHECKED)
631  {
632  if(uFlags & DFCS_MONO)
634  else
636 
637  UITOOLS_DrawCheckedRect( dc, &myr );
638  }
639  else
640  {
641  if(uFlags & DFCS_MONO)
642  {
645  }
646  else
647  {
649  }
650  }
651 
652  /* Adjust rectangle if asked */
653  if(uFlags & DFCS_ADJUSTRECT)
654  {
655  r->left += 2;
656  r->right -= 2;
657  r->top += 2;
658  r->bottom -= 2;
659  }
660 
661  return TRUE;
662 }
#define DFCS_FLAT
Definition: winuser.h:510
#define BF_MIDDLE
Definition: winuser.h:468
HGDIOBJ FASTCALL IntGetSysColorBrush(INT Object)
Definition: stockobj.c:317
#define DFCS_CHECKED
Definition: winuser.h:504
#define TRUE
Definition: types.h:120
GLdouble GLdouble GLdouble r
Definition: gl.h:2055
UINT uFlags
Definition: api.c:59
INT WINAPI FillRect(HDC hDC, CONST RECT *lprc, HBRUSH hbr)
Definition: draw.c:1052
#define BF_ADJUST
Definition: winuser.h:470
#define BF_RECT
Definition: winuser.h:462
#define DFCS_PUSHED
Definition: winuser.h:503
#define BF_MONO
Definition: winuser.h:472
void FASTCALL UITOOLS_DrawCheckedRect(HDC dc, LPRECT rect)
Definition: draw.c:590
#define DFCS_MONO
Definition: winuser.h:511
#define COLOR_BTNFACE
Definition: winuser.h:918
#define EDGE_RAISED
Definition: winuser.h:450
#define BF_SOFT
Definition: winuser.h:469
unsigned int UINT
Definition: ndis.h:50
static const WCHAR dc[]
#define EDGE_SUNKEN
Definition: winuser.h:451
BOOL FASTCALL IntDrawRectEdge(HDC hdc, LPRECT rc, UINT uType, UINT uFlags)
Definition: draw.c:410
#define DFCS_ADJUSTRECT
Definition: winuser.h:509

Referenced by UITOOLS95_DrawFrameButton().

◆ UITOOLS95_DrawFrameButton()

BOOL FASTCALL UITOOLS95_DrawFrameButton ( HDC  hdc,
LPRECT  rc,
UINT  uState 
)

Definition at line 759 of file draw.c.

760 {
761  switch(uState & 0x1f)
762  {
763  case DFCS_BUTTONPUSH:
764  return UITOOLS95_DFC_ButtonPush(hdc, rc, uState);
765 
766  case DFCS_BUTTONCHECK:
767  case DFCS_BUTTON3STATE:
768  return UITOOLS95_DFC_ButtonCheckRadio(hdc, rc, uState, FALSE);
769 
772  case DFCS_BUTTONRADIO:
773  return UITOOLS95_DFC_ButtonCheckRadio(hdc, rc, uState, TRUE);
774 
775 
776  default:
777  ERR("Invalid button state=0x%04x\n", uState);
778 
779  }
780  return FALSE;
781 }
BOOL FASTCALL UITOOLS95_DFC_ButtonPush(HDC dc, LPRECT r, UINT uFlags)
Definition: draw.c:620
#define TRUE
Definition: types.h:120
#define DFCS_BUTTON3STATE
Definition: winuser.h:500
BOOL FASTCALL UITOOLS95_DFC_ButtonCheckRadio(HDC dc, LPRECT r, UINT uFlags, BOOL Radio)
Definition: draw.c:664
#define DFCS_BUTTONRADIO
Definition: winuser.h:499
#define FALSE
Definition: types.h:117
HDC hdc
Definition: main.c:9
#define ERR(fmt,...)
Definition: debug.h:110
#define DFCS_BUTTONCHECK
Definition: winuser.h:496
#define DFCS_BUTTONPUSH
Definition: winuser.h:501
#define DFCS_BUTTONRADIOMASK
Definition: winuser.h:498
#define DFCS_BUTTONRADIOIMAGE
Definition: winuser.h:497

Referenced by DrawFrameControl(), and RealDrawFrameControl().

◆ UITOOLS95_DrawFrameCaption()

BOOL FASTCALL UITOOLS95_DrawFrameCaption ( HDC  dc,
LPRECT  r,
UINT  uFlags 
)

Definition at line 783 of file draw.c.

784 {
785  LOGFONTW lf;
786  HFONT hFont, hOldFont;
787  COLORREF clrsave;
788  RECT myr;
789  INT bkmode;
790  WCHAR Symbol;
791  switch(uFlags & 0xf)
792  {
793  case DFCS_CAPTIONCLOSE:
794  Symbol = 'r';
795  break;
796  case DFCS_CAPTIONHELP:
797  Symbol = 's';
798  break;
799  case DFCS_CAPTIONMIN:
800  Symbol = '0';
801  break;
802  case DFCS_CAPTIONMAX:
803  Symbol = '1';
804  break;
805  case DFCS_CAPTIONRESTORE:
806  Symbol = '2';
807  break;
808  default:
809  ERR("Invalid caption; flags=0x%04x\n", uFlags);
810  return FALSE;
811  }
813  RtlZeroMemory(&lf, sizeof(LOGFONTW));
814  UITOOLS_MakeSquareRect(r, &myr);
815  myr.left += 1;
816  myr.top += 1;
817  myr.right -= 1;
818  myr.bottom -= 1;
819  if(uFlags & DFCS_PUSHED)
820  RECTL_vOffsetRect(&myr,1,1);
821  lf.lfHeight = myr.bottom - myr.top;
822  lf.lfWidth = 0;
823  lf.lfWeight = FW_NORMAL;
826  RtlCopyMemory(lf.lfFaceName, L"Marlett", sizeof(L"Marlett"));
828  /* save font and text color */
829  hOldFont = NtGdiSelectFont(dc, hFont);
830  clrsave = GreGetTextColor(dc);
831  bkmode = GreGetBkMode(dc);
832  /* set color and drawing mode */
834  if(uFlags & DFCS_INACTIVE)
835  {
836  /* draw shadow */
838  GreTextOutW(dc, myr.left + 1, myr.top + 1, &Symbol, 1);
839  }
841  /* draw selected symbol */
842  GreTextOutW(dc, myr.left, myr.top, &Symbol, 1);
843  /* restore previous settings */
844  IntGdiSetTextColor(dc, clrsave);
845  NtGdiSelectFont(dc, hOldFont);
846  IntGdiSetBkMode(dc, bkmode);
848  return TRUE;
849 }
#define BF_MIDDLE
Definition: winuser.h:468
BOOL NTAPI GreDeleteObject(HGDIOBJ hobj)
Definition: gdiobj.c:1155
NTSYSAPI VOID NTAPI RtlCopyMemory(VOID UNALIGNED *Destination, CONST VOID UNALIGNED *Source, ULONG Length)
#define TRUE
Definition: types.h:120
GLdouble GLdouble GLdouble r
Definition: gl.h:2055
int FASTCALL UITOOLS_MakeSquareRect(LPRECT src, LPRECT dst)
Definition: draw.c:566
LONG lfHeight
Definition: dimm.idl:59
BYTE lfCharSet
Definition: dimm.idl:67
#define DFCS_INACTIVE
Definition: winuser.h:502
LONG top
Definition: windef.h:307
INT FASTCALL IntGdiSetBkMode(HDC hDC, INT backgroundMode)
Definition: dcutil.c:124
#define COLOR_BTNHIGHLIGHT
Definition: winuser.h:925
LONG left
Definition: windef.h:306
UINT uFlags
Definition: api.c:59
#define DEFAULT_CHARSET
Definition: wingdi.h:383
LONG right
Definition: windef.h:308
int32_t INT
Definition: typedefs.h:58
HFONT hFont
Definition: main.c:53
#define BF_RECT
Definition: winuser.h:462
#define DFCS_PUSHED
Definition: winuser.h:503
#define FALSE
Definition: types.h:117
#define TRANSPARENT
Definition: wingdi.h:949
LONG lfWidth
Definition: dimm.idl:60
#define NONANTIALIASED_QUALITY
Definition: wingdi.h:438
COLORREF FASTCALL IntGdiSetTextColor(HDC hDC, COLORREF color)
Definition: dcutil.c:172
BOOL FASTCALL GreTextOutW(HDC hdc, int nXStart, int nYStart, LPCWSTR lpString, int cchString)
Definition: text.c:61
HFONT FASTCALL GreCreateFontIndirectW(LOGFONTW *lplf)
Definition: font.c:23
#define DFCS_CAPTIONRESTORE
Definition: winuser.h:483
BOOLEAN Symbol(PVRET pvr)
Definition: symbols.c:2890
__kernel_entry W32KAPI HFONT APIENTRY NtGdiSelectFont(_In_ HDC hdc, _In_ HFONT hf)
Definition: dcobjs.c:597
__wchar_t WCHAR
Definition: xmlstorage.h:180
DWORD COLORREF
Definition: windef.h:300
#define DFCS_CAPTIONCLOSE
Definition: winuser.h:480
#define DFCS_CAPTIONHELP
Definition: winuser.h:484
DWORD FASTCALL IntGetSysColor(INT nIndex)
Definition: stockobj.c:323
int FASTCALL GreGetBkMode(HDC)
Definition: dcutil.c:35
BYTE lfQuality
Definition: dimm.idl:70
static const WCHAR L[]
Definition: oid.c:1250
#define EDGE_RAISED
Definition: winuser.h:450
#define ERR(fmt,...)
Definition: debug.h:110
FORCEINLINE VOID RECTL_vOffsetRect(_Inout_ RECTL *prcl, _In_ INT cx, _In_ INT cy)
Definition: rect.h:31
#define BF_SOFT
Definition: winuser.h:469
#define COLOR_BTNSHADOW
Definition: winuser.h:920
Definition: Symbol.h:8
#define DFCS_CAPTIONMAX
Definition: winuser.h:482
#define FW_NORMAL
Definition: wingdi.h:372
static DWORD *static HFONT(WINAPI *pCreateFontIndirectExA)(const ENUMLOGFONTEXDVA *)
COLORREF FASTCALL GreGetTextColor(HDC)
Definition: dcutil.c:80
WCHAR lfFaceName[LF_FACESIZE]
Definition: dimm.idl:72
LONG bottom
Definition: windef.h:309
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262
static const WCHAR dc[]
#define COLOR_BTNTEXT
Definition: winuser.h:923
#define EDGE_SUNKEN
Definition: winuser.h:451
LONG lfWeight
Definition: dimm.idl:63
BOOL FASTCALL IntDrawRectEdge(HDC hdc, LPRECT rc, UINT uType, UINT uFlags)
Definition: draw.c:410
#define DFCS_CAPTIONMIN
Definition: winuser.h:481

Referenced by DrawFrameControl(), and RealDrawFrameControl().

◆ UITOOLS95_DrawFrameMenu()

BOOL FASTCALL UITOOLS95_DrawFrameMenu ( HDC  dc,
LPRECT  r,
UINT  uFlags 
)

Definition at line 954 of file draw.c.

955 {
956  // TODO: DFCS_TRANSPARENT upon DFCS_MENUARROWUP or DFCS_MENUARROWDOWN
957  LOGFONTW lf;
958  HFONT hFont, hOldFont;
959  WCHAR Symbol;
960  RECT myr;
961  INT cxy;
962  cxy = UITOOLS_MakeSquareRect(r, &myr);
963  switch(uFlags & 0x1f)
964  {
965  case DFCS_MENUARROWUP:
966  Symbol = '5';
967  break;
968 
969  case DFCS_MENUARROWDOWN:
970  Symbol = '6';
971  break;
972 
973  case DFCS_MENUARROW:
974  Symbol = '8';
975  break;
976 
977  case DFCS_MENUARROWRIGHT:
978  Symbol = 'w'; // FIXME: needs to confirm
979  break;
980 
981  case DFCS_MENUBULLET:
982  Symbol = 'h';
983  break;
984 
985  case DFCS_MENUCHECK:
986  Symbol = 'a';
987  break;
988 
989  default:
990  ERR("Invalid menu; flags=0x%04x\n", uFlags);
991  return FALSE;
992  }
993  /* acquire ressources only if valid menu */
994  RtlZeroMemory(&lf, sizeof(LOGFONTW));
995  lf.lfHeight = cxy;
996  lf.lfWidth = 0;
997  lf.lfWeight = FW_NORMAL;
999  RtlCopyMemory(lf.lfFaceName, L"Marlett", sizeof(L"Marlett"));
1001  /* save font */
1002  hOldFont = NtGdiSelectFont(dc, hFont);
1003 
1004  if ((uFlags & 0x1f) == DFCS_MENUARROWUP ||
1005  (uFlags & 0x1f) == DFCS_MENUARROWDOWN )
1006  {
1007 #if 0
1008  if (uFlags & DFCS_INACTIVE)
1009  {
1010  /* draw shadow */
1012  GreTextOutW(dc, myr.left + 1, myr.top + 1, &Symbol, 1);
1013  }
1014 #endif
1016  }
1017  /* draw selected symbol */
1018  GreTextOutW(dc, myr.left, myr.top, &Symbol, 1);
1019  /* restore previous settings */
1020  NtGdiSelectFont(dc, hOldFont);
1022  return TRUE;
1023 }
BOOL NTAPI GreDeleteObject(HGDIOBJ hobj)
Definition: gdiobj.c:1155
NTSYSAPI VOID NTAPI RtlCopyMemory(VOID UNALIGNED *Destination, CONST VOID UNALIGNED *Source, ULONG Length)
#define DFCS_MENUBULLET
Definition: winuser.h:487
#define TRUE
Definition: types.h:120
GLdouble GLdouble GLdouble r
Definition: gl.h:2055
int FASTCALL UITOOLS_MakeSquareRect(LPRECT src, LPRECT dst)
Definition: draw.c:566
#define DFCS_MENUARROW
Definition: winuser.h:485
LONG lfHeight
Definition: dimm.idl:59
BYTE lfCharSet
Definition: dimm.idl:67
#define DFCS_INACTIVE
Definition: winuser.h:502
LONG top
Definition: windef.h:307
#define COLOR_BTNHIGHLIGHT
Definition: winuser.h:925
LONG left
Definition: windef.h:306
UINT uFlags
Definition: api.c:59
#define DEFAULT_CHARSET
Definition: wingdi.h:383
int32_t INT
Definition: typedefs.h:58
HFONT hFont
Definition: main.c:53
#define FALSE
Definition: types.h:117
#define DFCS_MENUCHECK
Definition: winuser.h:486
LONG lfWidth
Definition: dimm.idl:60
COLORREF FASTCALL IntGdiSetTextColor(HDC hDC, COLORREF color)
Definition: dcutil.c:172
BOOL FASTCALL GreTextOutW(HDC hdc, int nXStart, int nYStart, LPCWSTR lpString, int cchString)
Definition: text.c:61
HFONT FASTCALL GreCreateFontIndirectW(LOGFONTW *lplf)
Definition: font.c:23
#define DFCS_MENUARROWDOWN
Definition: undocuser.h:157
#define DFCS_MENUARROWUP
Definition: undocuser.h:156
BOOLEAN Symbol(PVRET pvr)
Definition: symbols.c:2890
__kernel_entry W32KAPI HFONT APIENTRY NtGdiSelectFont(_In_ HDC hdc, _In_ HFONT hf)
Definition: dcobjs.c:597
__wchar_t WCHAR
Definition: xmlstorage.h:180
DWORD FASTCALL IntGetSysColor(INT nIndex)
Definition: stockobj.c:323
static const WCHAR L[]
Definition: oid.c:1250
#define DFCS_MENUARROWRIGHT
Definition: winuser.h:488
#define ERR(fmt,...)
Definition: debug.h:110
#define COLOR_BTNSHADOW
Definition: winuser.h:920
Definition: Symbol.h:8
#define FW_NORMAL
Definition: wingdi.h:372
static DWORD *static HFONT(WINAPI *pCreateFontIndirectExA)(const ENUMLOGFONTEXDVA *)
WCHAR lfFaceName[LF_FACESIZE]
Definition: dimm.idl:72
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262
static const WCHAR dc[]
#define COLOR_BTNTEXT
Definition: winuser.h:923
LONG lfWeight
Definition: dimm.idl:63

Referenced by DrawFrameControl(), and RealDrawFrameControl().

◆ UITOOLS95_DrawFrameScroll()

BOOL FASTCALL UITOOLS95_DrawFrameScroll ( HDC  dc,
LPRECT  r,
UINT  uFlags 
)

Definition at line 851 of file draw.c.

852 {
853  LOGFONTW lf;
854  HFONT hFont, hOldFont;
855  COLORREF clrsave;
856  RECT myr;
857  INT bkmode;
858  WCHAR Symbol;
859  switch(uFlags & 0x1f)
860  {
861  case DFCS_SCROLLCOMBOBOX:
862  case DFCS_SCROLLDOWN:
863  Symbol = '6';
864  break;
865 
866  case DFCS_SCROLLUP:
867  Symbol = '5';
868  break;
869 
870  case DFCS_SCROLLLEFT:
871  Symbol = '3';
872  break;
873 
874  case DFCS_SCROLLRIGHT:
875  Symbol = '4';
876  break;
877 
878  case DFCS_SCROLLSIZEGRIP:
880  RtlZeroMemory(&lf, sizeof(LOGFONTW));
881  UITOOLS_MakeSquareRect(r, &myr);
882  lf.lfHeight = myr.bottom - myr.top;
883  lf.lfWidth = 0;
884  lf.lfWeight = FW_NORMAL;
886  RtlCopyMemory(lf.lfFaceName, L"Marlett", sizeof(L"Marlett"));
888  /* save font and text color */
889  hOldFont = NtGdiSelectFont(dc, hFont);
890  clrsave = GreGetTextColor(dc);
891  bkmode = GreGetBkMode(dc);
892  /* set color and drawing mode */
894  if (!(uFlags & (DFCS_MONO | DFCS_FLAT)))
895  {
897  /* draw selected symbol */
898  Symbol = ((uFlags & 0xff) == DFCS_SCROLLSIZEGRIP) ? 'o' : 'x';
899  GreTextOutW(dc, myr.left, myr.top, &Symbol, 1);
901  } else
903  /* draw selected symbol */
904  Symbol = ((uFlags & 0xff) == DFCS_SCROLLSIZEGRIP) ? 'p' : 'y';
905  GreTextOutW(dc, myr.left, myr.top, &Symbol, 1);
906  /* restore previous settings */
907  IntGdiSetTextColor(dc, clrsave);
908  NtGdiSelectFont(dc, hOldFont);
909  IntGdiSetBkMode(dc, bkmode);
911  return TRUE;
912  default:
913  ERR("Invalid scroll; flags=0x%04x\n", uFlags);
914  return FALSE;
915  }
917  RtlZeroMemory(&lf, sizeof(LOGFONTW));
918  UITOOLS_MakeSquareRect(r, &myr);
919  myr.left += 1;
920  myr.top += 1;
921  myr.right -= 1;
922  myr.bottom -= 1;
923  if(uFlags & DFCS_PUSHED)
924  RECTL_vOffsetRect(&myr,1,1);
925  lf.lfHeight = myr.bottom - myr.top;
926  lf.lfWidth = 0;
927  lf.lfWeight = FW_NORMAL;
929  RtlCopyMemory(lf.lfFaceName, L"Marlett", sizeof(L"Marlett"));
931  /* save font and text color */
932  hOldFont = NtGdiSelectFont(dc, hFont);
933  clrsave = GreGetTextColor(dc);
934  bkmode = GreGetBkMode(dc);
935  /* set color and drawing mode */
937  if(uFlags & DFCS_INACTIVE)
938  {
939  /* draw shadow */
941  GreTextOutW(dc, myr.left + 1, myr.top + 1, &Symbol, 1);
942  }
944  /* draw selected symbol */
945  GreTextOutW(dc, myr.left, myr.top, &Symbol, 1);
946  /* restore previous settings */
947  IntGdiSetTextColor(dc, clrsave);
948  NtGdiSelectFont(dc, hOldFont);
949  IntGdiSetBkMode(dc, bkmode);
951  return TRUE;
952 }
#define DFCS_FLAT
Definition: winuser.h:510
#define BF_MIDDLE
Definition: winuser.h:468
BOOL NTAPI GreDeleteObject(HGDIOBJ hobj)
Definition: gdiobj.c:1155
NTSYSAPI VOID NTAPI RtlCopyMemory(VOID UNALIGNED *Destination, CONST VOID UNALIGNED *Source, ULONG Length)
#define COLOR_WINDOWFRAME
Definition: winuser.h:909
#define TRUE
Definition: types.h:120
GLdouble GLdouble GLdouble r
Definition: gl.h:2055
int FASTCALL UITOOLS_MakeSquareRect(LPRECT src, LPRECT dst)
Definition: draw.c:566
LONG lfHeight
Definition: dimm.idl:59
BYTE lfCharSet
Definition: dimm.idl:67
#define DFCS_INACTIVE
Definition: winuser.h:502
LONG top
Definition: windef.h:307
INT FASTCALL IntGdiSetBkMode(HDC hDC, INT backgroundMode)
Definition: dcutil.c:124
#define COLOR_BTNHIGHLIGHT
Definition: winuser.h:925
LONG left
Definition: windef.h:306
UINT uFlags
Definition: api.c:59
#define DEFAULT_CHARSET
Definition: wingdi.h:383
LONG right
Definition: windef.h:308
int32_t INT
Definition: typedefs.h:58
HFONT hFont
Definition: main.c:53
#define BF_RECT
Definition: winuser.h:462
#define DFCS_PUSHED
Definition: winuser.h:503
#define FALSE
Definition: types.h:117
#define TRANSPARENT
Definition: wingdi.h:949
LONG lfWidth
Definition: dimm.idl:60
COLORREF FASTCALL IntGdiSetTextColor(HDC hDC, COLORREF color)
Definition: dcutil.c:172
BOOL FASTCALL GreTextOutW(HDC hdc, int nXStart, int nYStart, LPCWSTR lpString, int cchString)
Definition: text.c:61
HFONT FASTCALL GreCreateFontIndirectW(LOGFONTW *lplf)
Definition: font.c:23
#define DFCS_SCROLLDOWN
Definition: winuser.h:490
BOOLEAN Symbol(PVRET pvr)
Definition: symbols.c:2890
__kernel_entry W32KAPI HFONT APIENTRY NtGdiSelectFont(_In_ HDC hdc, _In_ HFONT hf)
Definition: dcobjs.c:597
__wchar_t WCHAR
Definition: xmlstorage.h:180
DWORD COLORREF
Definition: windef.h:300
#define DFCS_SCROLLSIZEGRIP
Definition: winuser.h:494
#define DFCS_MONO
Definition: winuser.h:511
DWORD FASTCALL IntGetSysColor(INT nIndex)
Definition: stockobj.c:323
#define DFCS_SCROLLRIGHT
Definition: winuser.h:492
#define DFCS_SCROLLUP
Definition: winuser.h:489
int FASTCALL GreGetBkMode(HDC)
Definition: dcutil.c:35
#define DFCS_SCROLLSIZEGRIPRIGHT
Definition: winuser.h:495
static const WCHAR L[]
Definition: oid.c:1250
#define EDGE_RAISED
Definition: winuser.h:450
#define ERR(fmt,...)
Definition: debug.h:110
FORCEINLINE VOID RECTL_vOffsetRect(_Inout_ RECTL *prcl, _In_ INT cx, _In_ INT cy)
Definition: rect.h:31
#define COLOR_BTNSHADOW
Definition: winuser.h:920
Definition: Symbol.h:8
#define DFCS_SCROLLCOMBOBOX
Definition: winuser.h:493
#define FW_NORMAL
Definition: wingdi.h:372
static DWORD *static HFONT(WINAPI *pCreateFontIndirectExA)(const ENUMLOGFONTEXDVA *)
COLORREF FASTCALL GreGetTextColor(HDC)
Definition: dcutil.c:80
WCHAR lfFaceName[LF_FACESIZE]
Definition: dimm.idl:72
LONG bottom
Definition: windef.h:309
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262
static const WCHAR dc[]
#define COLOR_BTNTEXT
Definition: winuser.h:923
#define EDGE_SUNKEN
Definition: winuser.h:451
LONG lfWeight
Definition: dimm.idl:63
#define DFCS_SCROLLLEFT
Definition: winuser.h:491
BOOL FASTCALL IntDrawRectEdge(HDC hdc, LPRECT rc, UINT uType, UINT uFlags)
Definition: draw.c:410

Referenced by DrawFrameControl(), and RealDrawFrameControl().

◆ UITOOLS_DrawCheckedRect()

void FASTCALL UITOOLS_DrawCheckedRect ( HDC  dc,
LPRECT  rect 
)

Definition at line 590 of file draw.c.

591 {
592  if(IntGetSysColor(COLOR_BTNHIGHLIGHT) == RGB(255, 255, 255))
593  {
594  HBRUSH hbsave;
595  COLORREF bg;
596 
598  bg = IntGdiSetBkColor(dc, RGB(255, 255, 255));
599  hbsave = NtGdiSelectBrush(dc, gpsi->hbrGray);
600  NtGdiPatBlt(dc, rect->left, rect->top, rect->right-rect->left, rect->bottom-rect->top, 0x00FA0089);
601  NtGdiSelectBrush(dc, hbsave);
602  IntGdiSetBkColor(dc, bg);
603  }
604  else
605  {
607  }
608 }
__kernel_entry W32KAPI BOOL APIENTRY NtGdiPatBlt(_In_ HDC hdcDest, _In_ INT x, _In_ INT y, _In_ INT cx, _In_ INT cy, _In_ DWORD dwRop)
Definition: bitblt.c:919
HGDIOBJ FASTCALL IntGetSysColorBrush(INT Object)
Definition: stockobj.c:317
#define RGB(r, g, b)
Definition: precomp.h:62
COLORREF FASTCALL IntGdiSetBkColor(_In_ HDC hDC, _In_ COLORREF Color)
#define COLOR_BTNHIGHLIGHT
Definition: winuser.h:925
INT WINAPI FillRect(HDC hDC, CONST RECT *lprc, HBRUSH hbr)
Definition: draw.c:1052
PSERVERINFO gpsi
Definition: main.c:27
& rect
Definition: startmenu.cpp:1413
__kernel_entry W32KAPI HBRUSH APIENTRY NtGdiSelectBrush(_In_ HDC hdc, _In_ HBRUSH hbrush)
DWORD COLORREF
Definition: windef.h:300
DWORD FASTCALL IntGetSysColor(INT nIndex)
Definition: stockobj.c:323
#define COLOR_BTNFACE
Definition: winuser.h:918
static const WCHAR dc[]

Referenced by UITOOLS95_DFC_ButtonPush().

◆ UITOOLS_MakeSquareRect()

int FASTCALL UITOOLS_MakeSquareRect ( LPRECT  src,
LPRECT  dst 
)

Definition at line 566 of file draw.c.

567 {
568  int Width = src->right - src->left;
569  int Height = src->bottom - src->top;
570  int SmallDiam = Width > Height ? Height : Width;
571 
572  *dst = *src;
573 
574  /* Make it a square box */
575  if(Width < Height) /* SmallDiam == Width */
576  {
577  dst->top += (Height-Width)/2;
578  dst->bottom = dst->top + SmallDiam;
579  }
580  else if(Width > Height) /* SmallDiam == Height */
581  {
582  dst->left += (Width-Height)/2;
583  dst->right = dst->left + SmallDiam;
584  }
585 
586  return SmallDiam;
587 }
GLenum src
Definition: glext.h:6340
GLenum GLenum dst
Definition: glext.h:6340

Referenced by UITOOLS95_DFC_ButtonCheckRadio(), UITOOLS95_DrawFrameCaption(), UITOOLS95_DrawFrameMenu(), and UITOOLS95_DrawFrameScroll().

Variable Documentation

◆ LTInnerNormal

const signed char LTInnerNormal[]
static
Initial value:
= {
-1, -1, -1, -1,
-1, -1, -1, -1
}
#define COLOR_BTNHIGHLIGHT
Definition: winuser.h:925
#define COLOR_3DDKSHADOW
Definition: winuser.h:929

Definition at line 21 of file draw.c.

Referenced by IntDrawDiagEdge(), and IntDrawRectEdge().

◆ LTInnerSoft

const signed char LTInnerSoft[]
static
Initial value:
= {
-1, -1, -1, -1,
-1, -1, -1, -1
}
#define COLOR_3DLIGHT
Definition: winuser.h:930
#define COLOR_BTNSHADOW
Definition: winuser.h:920

Definition at line 49 of file draw.c.

Referenced by IntDrawDiagEdge(), and IntDrawRectEdge().

◆ LTOuterNormal

const signed char LTOuterNormal[]
static
Initial value:
= {
}
#define COLOR_BTNHIGHLIGHT
Definition: winuser.h:925
#define COLOR_3DLIGHT
Definition: winuser.h:930
#define COLOR_BTNSHADOW
Definition: winuser.h:920
#define COLOR_3DDKSHADOW
Definition: winuser.h:929

Definition at line 28 of file draw.c.

Referenced by IntDrawDiagEdge(), and IntDrawRectEdge().

◆ LTOuterSoft

const signed char LTOuterSoft[]
static
Initial value:
= {
}
#define COLOR_BTNHIGHLIGHT
Definition: winuser.h:925
#define COLOR_3DLIGHT
Definition: winuser.h:930
#define COLOR_BTNSHADOW
Definition: winuser.h:920
#define COLOR_3DDKSHADOW
Definition: winuser.h:929

Definition at line 56 of file draw.c.

Referenced by IntDrawDiagEdge(), and IntDrawRectEdge().

◆ LTRBInnerFlat

const signed char LTRBInnerFlat[]
static
Initial value:

Definition at line 87 of file draw.c.

Referenced by IntDrawDiagEdge(), and IntDrawRectEdge().

◆ LTRBInnerMono

const signed char LTRBInnerMono[]
static
Initial value:

Definition at line 73 of file draw.c.

Referenced by IntDrawDiagEdge(), and IntDrawRectEdge().

◆ LTRBOuterFlat

◆ LTRBOuterMono

◆ RBInnerNormal

const signed char RBInnerNormal[]
static
Initial value:
= {
-1, -1, -1, -1,
-1, -1, -1, -1
}
#define COLOR_3DLIGHT
Definition: winuser.h:930
#define COLOR_BTNSHADOW
Definition: winuser.h:920

Definition at line 35 of file draw.c.

Referenced by IntDrawDiagEdge(), and IntDrawRectEdge().

◆ RBOuterNormal

const signed char RBOuterNormal[]
static
Initial value:
= {
}
#define COLOR_BTNHIGHLIGHT
Definition: winuser.h:925
#define COLOR_3DLIGHT
Definition: winuser.h:930
#define COLOR_BTNSHADOW
Definition: winuser.h:920
#define COLOR_3DDKSHADOW
Definition: winuser.h:929

Definition at line 42 of file draw.c.

Referenced by IntDrawDiagEdge(), and IntDrawRectEdge().