[USER32] Add support for navigating a group of radio buttons using a keyboard.
[reactos.git] / win32ss / user / user32 / include / controls.h
1 #pragma once
2
3 #ifndef HBMMENU_CALLBACK
4 #define HBMMENU_CALLBACK ((HBITMAP) -1)
5 #endif
6 #ifndef HBMMENU_SYSTEM
7 #define HBMMENU_SYSTEM ((HBITMAP) 1)
8 #endif
9 #ifndef HBMMENU_MBAR_RESTORE
10 #define HBMMENU_MBAR_RESTORE ((HBITMAP) 2)
11 #endif
12 #ifndef HBMMENU_MBAR_MINIMIZE
13 #define HBMMENU_MBAR_MINIMIZE ((HBITMAP) 3)
14 #endif
15 #ifndef HBMMENU_MBAR_CLOSE
16 #define HBMMENU_MBAR_CLOSE ((HBITMAP) 5)
17 #endif
18 #ifndef HBMMENU_MBAR_CLOSE_D
19 #define HBMMENU_MBAR_CLOSE_D ((HBITMAP) 6)
20 #endif
21 #ifndef HBMMENU_MBAR_MINIMIZE_D
22 #define HBMMENU_MBAR_MINIMIZE_D ((HBITMAP) 7)
23 #endif
24 #ifndef HBMMENU_POPUP_CLOSE
25 #define HBMMENU_POPUP_CLOSE ((HBITMAP) 8)
26 #endif
27 #ifndef HBMMENU_POPUP_RESTORE
28 #define HBMMENU_POPUP_RESTORE ((HBITMAP) 9)
29 #endif
30 #ifndef HBMMENU_POPUP_MAXIMIZE
31 #define HBMMENU_POPUP_MAXIMIZE ((HBITMAP) 10)
32 #endif
33 #ifndef HBMMENU_POPUP_MINIMIZE
34 #define HBMMENU_POPUP_MINIMIZE ((HBITMAP) 11)
35 #endif
36
37 /* combo box */
38 #define ID_CB_LISTBOX 1000
39 #define ID_CB_EDIT 1001
40
41 /* Combo box message return values */
42 #define CB_OKAY 0
43
44 /* internal flags */
45 #define CBF_DROPPED 0x0001
46 #define CBF_BUTTONDOWN 0x0002
47 #define CBF_NOROLLUP 0x0004
48 #define CBF_MEASUREITEM 0x0008
49 #define CBF_FOCUSED 0x0010
50 #define CBF_CAPTURE 0x0020
51 #define CBF_EDIT 0x0040
52 #define CBF_NORESIZE 0x0080
53 #define CBF_NOTIFY 0x0100
54 #define CBF_NOREDRAW 0x0200
55 #define CBF_SELCHANGE 0x0400
56 #define CBF_NOEDITNOTIFY 0x1000
57 #define CBF_NOLBSELECT 0x2000 /* do not change current selection */
58 #define CBF_BEENFOCUSED 0x4000 /* has it ever had focus */
59 #define CBF_EUI 0x8000
60
61 /* combo state struct */
62 typedef struct
63 {
64 HWND self;
65 HWND owner;
66 UINT dwStyle;
67 HWND hWndEdit;
68 HWND hWndLBox;
69 UINT wState;
70 HFONT hFont;
71 RECT textRect;
72 RECT buttonRect;
73 RECT droppedRect;
74 INT droppedIndex;
75 INT fixedOwnerDrawHeight;
76 INT droppedWidth; /* last two are not used unless set */
77 INT editHeight; /* explicitly */
78 LONG UIState;
79 } HEADCOMBO,*LPHEADCOMBO;
80
81 /* Note, that CBS_DROPDOWNLIST style is actually (CBS_SIMPLE | CBS_DROPDOWN) */
82 #define CB_GETTYPE( lphc ) ((lphc)->dwStyle & (CBS_DROPDOWNLIST))
83
84 extern BOOL COMBO_FlipListbox( LPHEADCOMBO, BOOL, BOOL );
85
86 #define LB_INSERTSTRING_UPPER 0x1AA
87 #define LB_INSERTSTRING_LOWER 0x1AB
88 #define LB_ADDSTRING_UPPER 0x1AC
89 #define LB_ADDSTRING_LOWER 0x1AD
90
91 HRGN set_control_clipping( HDC hdc, const RECT *rect );
92
93 LRESULT WINAPI DesktopWndProcA( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam );
94 LRESULT WINAPI DesktopWndProcW( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam );
95 LRESULT WINAPI User32DefWindowProc(HWND,UINT,WPARAM,LPARAM,BOOL);
96 BOOL WINAPI RegisterClientPFN(VOID);
97 LRESULT WINAPI IconTitleWndProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam );
98 LRESULT WINAPI ButtonWndProcA( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam );
99 LRESULT WINAPI ButtonWndProcW( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam );
100 LRESULT WINAPI ButtonWndProc_common(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL unicode);
101 LRESULT WINAPI ComboWndProcA( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam );
102 LRESULT WINAPI ComboWndProcW( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam );
103 LRESULT WINAPI ComboWndProc_common( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam, BOOL unicode);
104 LRESULT WINAPI EditWndProcA(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
105 LRESULT WINAPI EditWndProcW(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
106 LRESULT WINAPI EditWndProc_common( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam, BOOL unicode);
107 LRESULT WINAPI GhostWndProcA( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam );
108 LRESULT WINAPI GhostWndProcW( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam );
109 LRESULT WINAPI GhostWndProc_common( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL unicode);
110 LRESULT WINAPI ListBoxWndProcA( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam );
111 LRESULT WINAPI ListBoxWndProcW( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam );
112 LRESULT WINAPI ListBoxWndProc_common( HWND hwnd, UINT msg,WPARAM wParam, LPARAM lParam, BOOL unicode);
113 LRESULT WINAPI MDIClientWndProcA( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam );
114 LRESULT WINAPI MDIClientWndProcW( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam );
115 LRESULT WINAPI MDIClientWndProc_common( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam, BOOL unicode);
116 LRESULT WINAPI PopupMenuWndProcA(HWND hWnd, UINT Message, WPARAM wParam, LPARAM lParam);
117 LRESULT WINAPI PopupMenuWndProcW(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam);
118 LRESULT WINAPI ScrollBarWndProcW( HWND hwnd, UINT uMsg, WPARAM wParam,LPARAM lParam );
119 LRESULT WINAPI ScrollBarWndProcA( HWND hwnd, UINT uMsg, WPARAM wParam,LPARAM lParam );
120 LRESULT WINAPI StaticWndProcA( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam );
121 LRESULT WINAPI StaticWndProcW( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam );
122 LRESULT WINAPI StaticWndProc_common( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL unicode);
123 LRESULT WINAPI SwitchWndProcA( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam );
124 LRESULT WINAPI SwitchWndProcW( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam );