ReactOS  0.4.15-dev-5455-g015cd25
logonui.h File Reference
#include <windows.h>
#include "resource.h"
Include dependency graph for logonui.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  _INFO
 

Typedefs

typedef struct _INFO INFO
 
typedef struct _INFOPINFO
 

Functions

HDC NT5_DrawBaseBackground (HDC hdcDesktop)
 
VOID NT5_CreateLogoffScreen (LPWSTR lpText, HDC hdcMem)
 
VOID NT5_RefreshLogoffScreenText (LPWSTR lpText, HDC hdcMem)
 

Variables

PINFO g_pInfo
 

Typedef Documentation

◆ INFO

typedef struct _INFO INFO

◆ PINFO

typedef struct _INFO * PINFO

Function Documentation

◆ NT5_CreateLogoffScreen()

VOID NT5_CreateLogoffScreen ( LPWSTR  lpText,
HDC  hdcMem 
)

Definition at line 125 of file NT5design.c.

127 {
128  /* Draw the reactos logo */
130 
131  /* Draw the first text string */
133 }
static VOID NT5_DrawLogoffIcon(HDC hdcMem)
Definition: NT5design.c:69
static VOID NT5_DrawLogoffCaptionText(LPWSTR lpText, HDC hdcMem)
Definition: NT5design.c:21
HDC hdcMem
Definition: welcome.c:104

Referenced by DrawLogoffScreen().

◆ NT5_DrawBaseBackground()

HDC NT5_DrawBaseBackground ( HDC  hdcDesktop)

Definition at line 136 of file NT5design.c.

137 {
138  HBITMAP hBitmap = NULL;
139  HDC hdcMem = NULL;
140 
141  /* Create an an off screen DC to match the desktop DC */
142  hdcMem = CreateCompatibleDC(hdcDesktop);
143  if (hdcMem)
144  {
145  /* Create a bitmap to draw the logoff screen onto */
147  if (hBitmap)
148  {
149  /* Select it onto our off screen DC*/
151 
152  /* Draw the centre block */
153  {
154  HBITMAP hTempBitmap;
155  HBRUSH hBrush;
156  BITMAP bitmap;
157  HDC hTempDC;
158 
159  /* Paint the blue centre block */
160  hBrush = CreateSolidBrush(RGB(90, 126, 220));
161  SelectObject(hdcMem, hBrush);
162  PatBlt(hdcMem,
163  0,
165  g_pInfo->cx,
167  PATCOPY);
168  DeleteObject(hBrush);
169 
170  /* Load the shine effect */
171  hTempBitmap = (HBITMAP)LoadImageW(g_pInfo->hInstance,
173  IMAGE_BITMAP,
174  0,
175  0,
177  if (hTempBitmap)
178  {
179  /* Get the bitmap dimensions */
180  GetObjectW(hTempBitmap, sizeof(BITMAP), &bitmap);
181 
182  /* Create a temp DC for the bitmap */
183  hTempDC = CreateCompatibleDC(hdcDesktop);
184  if (hTempDC)
185  {
186  /* Select the bitmap onto the temp DC */
187  SelectObject(hTempDC, hTempBitmap);
188 
189  /* Paint it onto the top left of the centre block */
190  BitBlt(hdcMem,
191  0,
193  bitmap.bmWidth,
194  bitmap.bmHeight,
195  hTempDC,
196  0,
197  0,
198  SRCCOPY);
199 
200  /* Delete the DC */
201  DeleteDC(hTempDC);
202  }
203 
204  /* Delete the bitmap */
205  DeleteObject(hTempBitmap);
206  }
207  }
208 
209  /* Draw the top border */
210  {
211  HBITMAP hTempBitmap;
212  HBRUSH hBrush;
213  BITMAP bitmap;
214  HDC hTempDC;
215 
216  /* Create the blue brush and paint the top bar */
217  hBrush = CreateSolidBrush(RGB(0, 48, 156));
218  SelectObject(hdcMem, hBrush);
220  DeleteObject(hBrush);
221 
222  /* Load the top divider strip */
223  hTempBitmap = (HBITMAP)LoadImageW(g_pInfo->hInstance,
225  IMAGE_BITMAP,
226  0,
227  0,
229  if (hTempBitmap)
230  {
231  /* Get the bitmap dimensions */
232  GetObjectW(hTempBitmap, sizeof(BITMAP), &bitmap);
233 
234  /* Create a temp DC for the bitmap */
235  hTempDC = CreateCompatibleDC(hdcDesktop);
236  if (hTempDC)
237  {
238  /* Select the bitmap onto the temp DC */
239  SelectObject(hTempDC, hTempBitmap);
240 
241  /* Paint the bitmap */
243  0,
244  NT5_TOP_BORDER_HEIGHT - bitmap.bmHeight,
245  g_pInfo->cx,
247  hTempDC,
248  0,
249  0,
250  bitmap.bmWidth,
252  SRCCOPY);
253 
254  /* Delete the DC */
255  DeleteDC(hTempDC);
256  }
257 
258  /* Delete the bitmap */
259  DeleteObject(hTempBitmap);
260  }
261  }
262 
263  /* Draw the bottom border */
264  {
265  HBITMAP hTempBitmap;
266  TRIVERTEX vertex[2];
267  GRADIENT_RECT gRect;
268  BITMAP bitmap;
269  HDC hTempDC;
270 
271  /*
272  * We paint the divider strip first as it's 3
273  * pixels high but MS only show 2 of them.
274  */
275 
276  /* Load the bottom divider strip */
277  hTempBitmap = (HBITMAP)LoadImage(g_pInfo->hInstance,
279  IMAGE_BITMAP,
280  0,
281  0,
283  if (hTempBitmap)
284  {
285  /* Get the bitmap dimensions */
286  GetObjectW(hTempBitmap, sizeof(BITMAP), &bitmap);
287 
288  /* Create a temp DC for the bitmap */
289  hTempDC = CreateCompatibleDC(hdcDesktop);
290  if (hTempDC)
291  {
292  /* Select the bitmap onto the temp DC */
293  SelectObject(hTempDC, hTempBitmap);
294 
295  /* Paint the bitmap */
297  0,
299  g_pInfo->cx,
301  hTempDC,
302  0,
303  0,
304  bitmap.bmWidth,
306  SRCCOPY);
307 
308  /* Delete the DC */
309  DeleteDC(hTempDC);
310  }
311 
312  /* Delete the bitmap */
313  DeleteObject(hTempBitmap);
314  }
315 
316  /* Setup the left hand vertex */
317  vertex[0].x = 0;
318  vertex[0].y = g_pInfo->cy - NT5_BOTTOM_BORDER_HEIGHT + 2; // paint over 1 pixel of the bitmap
319  vertex[0].Red = 0x3900;
320  vertex[0].Green = 0x3400;
321  vertex[0].Blue = 0xAE00;
322  vertex[0].Alpha = 0x0000;
323 
324  /* Setup the right hand vertex */
325  vertex[1].x = g_pInfo->cx;
326  vertex[1].y = g_pInfo->cy;
327  vertex[1].Red = 0x0000;
328  vertex[1].Green = 0x3000;
329  vertex[1].Blue = 0x9600;
330  vertex[1].Alpha = 0x0000;
331 
332  /* Set the vertex structs */
333  gRect.UpperLeft = 0;
334  gRect.LowerRight = 1;
335 
336  /* Paint the gradient across the bottom */
337  GradientFill(hdcMem,
338  vertex,
339  2,
340  &gRect,
341  1,
342  GRADIENT_FILL_RECT_H);
343  }
344 
345  /* Delete the bitmap */
347  }
348  }
349 
350  return hdcMem;
351 }
#define MAKEINTRESOURCE
Definition: winuser.h:591
ULONG UpperLeft
Definition: wingdi.h:2805
ULONG LowerRight
Definition: wingdi.h:2806
Definition: mesh.c:4557
#define RGB(r, g, b)
Definition: precomp.h:62
HBITMAP WINAPI CreateCompatibleBitmap(_In_ HDC hdc, _In_ INT cx, _In_ INT cy)
static HDC
Definition: imagelist.c:92
HGDIOBJ WINAPI SelectObject(_In_ HDC, _In_ HGDIOBJ)
Definition: dc.c:1539
BOOL WINAPI DeleteObject(_In_ HGDIOBJ)
HDC WINAPI CreateCompatibleDC(_In_opt_ HDC hdc)
HINSTANCE hInstance
Definition: logonui.h:8
INT cx
Definition: logonui.h:9
BOOL WINAPI StretchBlt(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int, _In_opt_ HDC, _In_ int, _In_ int, _In_ int, _In_ int, _In_ DWORD)
BOOL WINAPI PatBlt(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int, _In_ DWORD)
HANDLE WINAPI LoadImageW(_In_opt_ HINSTANCE, _In_ LPCWSTR, _In_ UINT, _In_ int, _In_ int, _In_ UINT)
Definition: cursoricon.c:2172
INT cy
Definition: logonui.h:10
#define NT5_TOP_BORDER_HEIGHT
Definition: NT5design.c:14
float x
Definition: hlsl.c:29
Definition: uimain.c:88
#define IDB_BOTTOM_DIVIDER_STRIP
Definition: resource.h:6
#define IDB_MAIN_PANEL_SHINE
Definition: resource.h:3
#define NT5_BOTTOM_BORDER_HEIGHT
Definition: NT5design.c:15
#define PATCOPY
Definition: wingdi.h:335
int WINAPI GetObjectW(_In_ HANDLE h, _In_ int c, _Out_writes_bytes_opt_(c) LPVOID pv)
PINFO g_pInfo
Definition: logonui.c:17
BOOL WINAPI DeleteDC(_In_ HDC)
Definition: bl.h:1330
#define NULL
Definition: types.h:112
HBRUSH WINAPI CreateSolidBrush(_In_ COLORREF)
#define IMAGE_BITMAP
Definition: winuser.h:211
float y
Definition: hlsl.c:29
#define LoadImage
Definition: winuser.h:5805
static HBITMAP bitmap
Definition: clipboard.c:1344
static HBITMAP
Definition: button.c:44
#define MAKEINTRESOURCEW(i)
Definition: winuser.h:582
#define LR_DEFAULTCOLOR
Definition: winuser.h:1081
static HBITMAP hBitmap
Definition: timezone.c:26
#define SRCCOPY
Definition: wingdi.h:333
HDC hdcMem
Definition: welcome.c:104
static VOID NTAPI BitBlt(_In_ ULONG Left, _In_ ULONG Top, _In_ ULONG Width, _In_ ULONG Height, _In_reads_bytes_(Delta *Height) PUCHAR Buffer, _In_ ULONG BitsPerPixel, _In_ ULONG Delta)
Definition: common.c:49
#define IDB_TOP_DIVIDER_STRIP
Definition: resource.h:5

Referenced by DrawBaseBackground().

◆ NT5_RefreshLogoffScreenText()

VOID NT5_RefreshLogoffScreenText ( LPWSTR  lpText,
HDC  hdcMem 
)

Definition at line 115 of file NT5design.c.

117 {
118  /* FIXME: clear previous text */
119 
120  /* Draw the new text */
122 }
static VOID NT5_DrawLogoffCaptionText(LPWSTR lpText, HDC hdcMem)
Definition: NT5design.c:21
HDC hdcMem
Definition: welcome.c:104

Variable Documentation

◆ g_pInfo

PINFO g_pInfo