ReactOS
0.4.16-dev-136-g52192f1
nativefont.c
Go to the documentation of this file.
1
/*
2
* Native Font control
3
*
4
* Copyright 1998, 1999 Eric Kohl
5
*
6
* This library is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU Lesser General Public
8
* License as published by the Free Software Foundation; either
9
* version 2.1 of the License, or (at your option) any later version.
10
*
11
* This library is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
* Lesser General Public License for more details.
15
*
16
* You should have received a copy of the GNU Lesser General Public
17
* License along with this library; if not, write to the Free Software
18
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19
*
20
* NOTES
21
* This is just a dummy control. An author is needed! Any volunteers?
22
* I will only improve this control once in a while.
23
* Eric <ekohl@abo.rhein-zeitung.de>
24
*
25
* TODO:
26
* - All messages.
27
* - All notifications.
28
*/
29
30
#include <stdarg.h>
31
32
#include "
windef.h
"
33
#include "
winbase.h
"
34
#include "
wingdi.h
"
35
#include "
winuser.h
"
36
#include "commctrl.h"
37
#include "
comctl32.h
"
38
#include "
wine/debug.h
"
39
40
WINE_DEFAULT_DEBUG_CHANNEL
(nativefont);
41
42
typedef
struct
43
{
44
HWND
hwndSelf
;
/* my own handle */
45
}
NATIVEFONT_INFO
;
46
47
#define NATIVEFONT_GetInfoPtr(hwnd) ((NATIVEFONT_INFO *)GetWindowLongPtrW (hwnd, 0))
48
49
static
LRESULT
50
NATIVEFONT_Create
(
HWND
hwnd
)
51
{
52
NATIVEFONT_INFO
*infoPtr;
53
54
/* allocate memory for info structure */
55
infoPtr =
Alloc
(
sizeof
(
NATIVEFONT_INFO
));
56
SetWindowLongPtrW
(
hwnd
, 0, (
DWORD_PTR
)infoPtr);
57
58
/* initialize info structure */
59
infoPtr->
hwndSelf
=
hwnd
;
60
61
return
0;
62
}
63
64
static
LRESULT
65
NATIVEFONT_Destroy
(
NATIVEFONT_INFO
*infoPtr)
66
{
67
/* free control info data */
68
SetWindowLongPtrW
( infoPtr->
hwndSelf
, 0, 0 );
69
Free
(infoPtr);
70
71
return
0;
72
}
73
74
static
LRESULT
WINAPI
75
NATIVEFONT_WindowProc
(
HWND
hwnd
,
UINT
uMsg,
WPARAM
wParam
,
LPARAM
lParam
)
76
{
77
NATIVEFONT_INFO
*infoPtr =
NATIVEFONT_GetInfoPtr
(
hwnd
);
78
79
TRACE
(
"hwnd=%p msg=%04x wparam=%08lx lparam=%08lx\n"
,
80
hwnd
, uMsg,
wParam
,
lParam
);
81
82
if
(!infoPtr && (uMsg !=
WM_CREATE
))
83
return
DefWindowProcW
(
hwnd
, uMsg,
wParam
,
lParam
);
84
85
switch
(uMsg)
86
{
87
case
WM_CREATE
:
88
return
NATIVEFONT_Create
(
hwnd
);
89
90
case
WM_DESTROY
:
91
return
NATIVEFONT_Destroy
(infoPtr);
92
93
case
WM_MOVE
:
94
case
WM_SIZE
:
95
case
WM_SHOWWINDOW
:
96
case
WM_WINDOWPOSCHANGING
:
97
case
WM_WINDOWPOSCHANGED
:
98
case
WM_SETFONT
:
99
case
WM_GETDLGCODE
:
100
/* FIXME("message %04x seen but stubbed\n", uMsg); */
101
return
DefWindowProcW
(
hwnd
, uMsg,
wParam
,
lParam
);
102
103
default
:
104
if
((uMsg >=
WM_USER
) && (uMsg <
WM_APP
) && !
COMCTL32_IsReflectedMessage
(uMsg))
105
ERR
(
"unknown msg %04x wp=%08lx lp=%08lx\n"
,
106
uMsg,
wParam
,
lParam
);
107
return
DefWindowProcW
(
hwnd
, uMsg,
wParam
,
lParam
);
108
}
109
}
110
111
112
VOID
113
NATIVEFONT_Register
(
void
)
114
{
115
WNDCLASSW
wndClass;
116
117
ZeroMemory
(&wndClass,
sizeof
(
WNDCLASSW
));
118
wndClass.
style
=
CS_GLOBALCLASS
;
119
wndClass.
lpfnWndProc
=
NATIVEFONT_WindowProc
;
120
wndClass.
cbClsExtra
= 0;
121
wndClass.
cbWndExtra
=
sizeof
(
NATIVEFONT_INFO
*);
122
wndClass.
hCursor
=
LoadCursorW
(0, (
LPWSTR
)
IDC_ARROW
);
123
wndClass.
hbrBackground
= (HBRUSH)(
COLOR_BTNFACE
+ 1);
124
wndClass.
lpszClassName
=
WC_NATIVEFONTCTLW
;
125
126
RegisterClassW
(&wndClass);
127
}
128
129
130
VOID
131
NATIVEFONT_Unregister
(
void
)
132
{
133
UnregisterClassW
(
WC_NATIVEFONTCTLW
,
NULL
);
134
}
WINE_DEFAULT_DEBUG_CHANNEL
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
Definition:
precomp.h:23
ERR
#define ERR(fmt,...)
Definition:
precomp.h:57
Alloc
PVOID Alloc(IN DWORD dwFlags, IN SIZE_T dwBytes)
Definition:
main.c:63
wParam
WPARAM wParam
Definition:
combotst.c:138
lParam
LPARAM lParam
Definition:
combotst.c:139
comctl32.h
COMCTL32_IsReflectedMessage
BOOL COMCTL32_IsReflectedMessage(UINT uMsg) DECLSPEC_HIDDEN
Definition:
commctrl.c:1755
NULL
#define NULL
Definition:
types.h:112
WM_APP
#define WM_APP
Definition:
eventvwr.h:73
void
Definition:
nsiface.idl:2307
NATIVEFONT_Unregister
VOID NATIVEFONT_Unregister(void)
Definition:
nativefont.c:131
NATIVEFONT_WindowProc
static LRESULT WINAPI NATIVEFONT_WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition:
nativefont.c:75
NATIVEFONT_Create
static LRESULT NATIVEFONT_Create(HWND hwnd)
Definition:
nativefont.c:50
NATIVEFONT_Register
VOID NATIVEFONT_Register(void)
Definition:
nativefont.c:113
NATIVEFONT_Destroy
static LRESULT NATIVEFONT_Destroy(NATIVEFONT_INFO *infoPtr)
Definition:
nativefont.c:65
NATIVEFONT_GetInfoPtr
#define NATIVEFONT_GetInfoPtr(hwnd)
Definition:
nativefont.c:47
UINT
unsigned int UINT
Definition:
ndis.h:50
WC_NATIVEFONTCTLW
#define WC_NATIVEFONTCTLW
Definition:
commctrl.h:4611
debug.h
TRACE
#define TRACE(s)
Definition:
solgame.cpp:4
NATIVEFONT_INFO
Definition:
nativefont.c:43
NATIVEFONT_INFO::hwndSelf
HWND hwndSelf
Definition:
nativefont.c:44
_WNDCLASSW
Definition:
winuser.h:3178
_WNDCLASSW::lpszClassName
LPCWSTR lpszClassName
Definition:
winuser.h:3188
_WNDCLASSW::hbrBackground
HBRUSH hbrBackground
Definition:
winuser.h:3186
_WNDCLASSW::cbClsExtra
int cbClsExtra
Definition:
winuser.h:3181
_WNDCLASSW::style
UINT style
Definition:
winuser.h:3179
_WNDCLASSW::lpfnWndProc
WNDPROC lpfnWndProc
Definition:
winuser.h:3180
_WNDCLASSW::cbWndExtra
int cbWndExtra
Definition:
winuser.h:3182
_WNDCLASSW::hCursor
HCURSOR hCursor
Definition:
winuser.h:3185
DWORD_PTR
uint32_t DWORD_PTR
Definition:
typedefs.h:65
winbase.h
ZeroMemory
#define ZeroMemory
Definition:
winbase.h:1712
hwnd
_In_ LONG _In_ HWND hwnd
Definition:
winddi.h:4023
windef.h
LPARAM
LONG_PTR LPARAM
Definition:
windef.h:208
LRESULT
LONG_PTR LRESULT
Definition:
windef.h:209
WPARAM
UINT_PTR WPARAM
Definition:
windef.h:207
WINAPI
#define WINAPI
Definition:
msvc.h:6
wingdi.h
winuser.h
DefWindowProcW
LRESULT WINAPI DefWindowProcW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
WM_WINDOWPOSCHANGING
#define WM_WINDOWPOSCHANGING
Definition:
winuser.h:1664
WM_CREATE
#define WM_CREATE
Definition:
winuser.h:1611
WM_SIZE
#define WM_SIZE
Definition:
winuser.h:1614
RegisterClassW
ATOM WINAPI RegisterClassW(_In_ CONST WNDCLASSW *)
IDC_ARROW
#define IDC_ARROW
Definition:
winuser.h:687
LoadCursorW
HCURSOR WINAPI LoadCursorW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
Definition:
cursoricon.c:2157
WM_SHOWWINDOW
#define WM_SHOWWINDOW
Definition:
winuser.h:1631
WM_SETFONT
#define WM_SETFONT
Definition:
winuser.h:1653
CS_GLOBALCLASS
#define CS_GLOBALCLASS
Definition:
winuser.h:652
WM_MOVE
#define WM_MOVE
Definition:
winuser.h:1613
WM_USER
#define WM_USER
Definition:
winuser.h:1898
WM_DESTROY
#define WM_DESTROY
Definition:
winuser.h:1612
UnregisterClassW
BOOL WINAPI UnregisterClassW(_In_ LPCWSTR, HINSTANCE)
SetWindowLongPtrW
#define SetWindowLongPtrW
Definition:
winuser.h:5358
WM_WINDOWPOSCHANGED
#define WM_WINDOWPOSCHANGED
Definition:
winuser.h:1665
WM_GETDLGCODE
#define WM_GETDLGCODE
Definition:
winuser.h:1692
COLOR_BTNFACE
#define COLOR_BTNFACE
Definition:
winuser.h:931
Free
_In_opt_ PALLOCATE_FUNCTION _In_opt_ PFREE_FUNCTION Free
Definition:
exfuncs.h:815
LPWSTR
WCHAR * LPWSTR
Definition:
xmlstorage.h:184
dll
win32
comctl32
nativefont.c
Generated on Tue Oct 15 2024 06:03:36 for ReactOS by
1.9.6