Module cToolbar_h.pkg
1// Generic NM Notifications...
2Define NM_FIRST for 0 // generic to all controls
3
4Define NM_OUTOFMEMORY for (NM_FIRST-1)
5Define NM_CLICK for (NM_FIRST-2) // uses NMCLICK struct
6Define NM_DBLCLK for (NM_FIRST-3)
7Define NM_RETURN for (NM_FIRST-4)
8Define NM_RCLICK for (NM_FIRST-5) // uses NMCLICK struct
9Define NM_RDBLCLK for (NM_FIRST-6)
10Define NM_SETFOCUS for (NM_FIRST-7)
11Define NM_KILLFOCUS for (NM_FIRST-8)
12Define NM_CUSTOMDRAW for (NM_FIRST-12)
13Define NM_HOVER for (NM_FIRST-13)
14Define NM_NCHITTEST for (NM_FIRST-14) // uses NMMOUSE struct
15Define NM_KEYDOWN for (NM_FIRST-15) // uses NMKEY struct
16Define NM_RELEASEDCAPTURE for (NM_FIRST-16)
17Define NM_SETCURSOR for (NM_FIRST-17) // uses NMMOUSE struct
18Define NM_CHAR for (NM_FIRST-18) // uses NMCHAR struct
19
20
21
22Define TBN_FIRST for |CI-700
23
24Define TBSTATE_CHECKED For |CI$01
25Define TBSTATE_PRESSED For |CI$02
26Define TBSTATE_ENABLED For |CI$04
27Define TBSTATE_HIDDEN For |CI$08
28Define TBSTATE_INDETERMINATE For |CI$10
29Define TBSTATE_WRAP For |CI$20
30Define TBSTATE_ELLIPSES For |CI$40
31Define TBSTATE_MARKED For |CI$80
32
33Define TBSTYLE_BUTTON For |CI$0000
34Define TBSTYLE_SEP For |CI$0001
35Define TBSTYLE_CHECK For |CI$0002
36Define TBSTYLE_GROUP For |CI$0004
37Define TBSTYLE_CHECKGROUP For (TBSTYLE_GROUP ior TBSTYLE_CHECK)
38Define TBSTYLE_DROPDOWN For |CI$0008
39Define TBSTYLE_AUTOSIZE For |CI$0010 // automatically calculate the cx of the button
40Define TBSTYLE_NOPREFIX For |CI$0020 // if this button should not have accel prefix
41
42Define TBSTYLE_TOOLTIPS For |CI$0100
43Define TBSTYLE_WRAPABLE For |CI$0200
44Define TBSTYLE_ALTDRAG For |CI$0400
45Define TBSTYLE_FLAT For |CI$0800
46Define TBSTYLE_LIST For |CI$1000
47Define TBSTYLE_CUSTOMERASE For |CI$2000
48Define TBSTYLE_REGISTERDROP For |CI$4000
49Define TBSTYLE_TRANSPARENT For |CI$8000
50Define TBSTYLE_EX_DRAWDDARROWS For |CI$00000001
51
52// Custom Draw Structure
53Type tNmCustomDraw
54// NMCUSTOMDRAW nmcd;
55// HBRUSH hbrMonoDither;
56// HBRUSH hbrLines; // For drawing lines on buttons
57// HPEN hpenLines; // For drawing lines on buttons
58
59// COLORREF clrText; // Color of text
60// COLORREF clrMark; // Color of text bk when marked. (only if TBSTATE_MARKED)
61// COLORREF clrTextHighlight; // Color of text when highlighted
62// COLORREF clrBtnFace; // Background of the button
63// COLORREF clrBtnHighlight; // 3D highlight
64// COLORREF clrHighlightHotTrack; // In conjunction with fHighlightHotTrack
65// // will cause button to highlight like a menu
66// RECT rcText; // Rect for text
67
68// int nStringBkMode;
69// int nHLStringBkMode;
70End_Type
71
72// Toolbar custom draw return flags
73Define TBCDRF_NOEDGES For |CI$00010000 // Don't draw button edges
74Define TBCDRF_HILITEHOTTRACK For |CI$00020000 // Use color of the button bk when hottracked
75Define TBCDRF_NOOFFSET For |CI$00040000 // Don't offset button if pressed
76Define TBCDRF_NOMARK For |CI$00080000 // Don't draw default highlight of image/text for TBSTATE_MARKED
77Define TBCDRF_NOETCHEDEFFECT For |CI$00100000 // Don't draw etched effect for disabled items
78
79
80Define TB_ENABLEBUTTON For (WM_USER + 1)
81Define TB_CHECKBUTTON For (WM_USER + 2)
82Define TB_PRESSBUTTON For (WM_USER + 3)
83Define TB_HIDEBUTTON For (WM_USER + 4)
84Define TB_INDETERMINATE For (WM_USER + 5)
85Define TB_MARKBUTTON For (WM_USER + 6)
86Define TB_ISBUTTONENABLED For (WM_USER + 9)
87Define TB_ISBUTTONCHECKED For (WM_USER + 10)
88Define TB_ISBUTTONPRESSED For (WM_USER + 11)
89Define TB_ISBUTTONHIDDEN For (WM_USER + 12)
90Define TB_ISBUTTONINDETERMINATE For (WM_USER + 13)
91Define TB_ISBUTTONHIGHLIGHTED For (WM_USER + 14)
92Define TB_SETSTATE For (WM_USER + 17)
93Define TB_GETSTATE For (WM_USER + 18)
94Define TB_ADDBITMAP For (WM_USER + 19)
95
96Define TB_ADDBUTTONS for (WM_USER + 20)
97Define TB_INSERTBUTTON for (WM_USER + 21)
98
99Define TB_DELETEBUTTON for (WM_USER + 22)
100Define TB_GETBUTTON for (WM_USER + 23)
101Define TB_BUTTONCOUNT for (WM_USER + 24)
102Define TB_COMMANDTOINDEX for (WM_USER + 25)
103
104Define TB_SAVERESTORE for (WM_USER + 26)
105Define TB_CUSTOMIZE for (WM_USER + 27)
106Define TB_ADDSTRING for (WM_USER + 28)
107Define TB_GETITEMRECT for (WM_USER + 29)
108Define TB_BUTTONSTRUCTSIZE for (WM_USER + 30)
109Define TB_SETBUTTONSIZE for (WM_USER + 31)
110Define TB_SETBITMAPSIZE for (WM_USER + 32)
111Define TB_AUTOSIZE for (WM_USER + 33)
112Define TB_GETTOOLTIPS for (WM_USER + 35)
113Define TB_SETTOOLTIPS for (WM_USER + 36)
114Define TB_SETPARENT for (WM_USER + 37)
115Define TB_SETROWS for (WM_USER + 39)
116Define TB_GETROWS for (WM_USER + 40)
117Define TB_SETCMDID for (WM_USER + 42)
118Define TB_CHANGEBITMAP for (WM_USER + 43)
119Define TB_GETBITMAP for (WM_USER + 44)
120Define TB_GETBUTTONTEXT for (WM_USER + 45)
121Define TB_REPLACEBITMAP for (WM_USER + 46)
122Define TB_SETINDENT for (WM_USER + 47)
123Define TB_SETIMAGELIST for (WM_USER + 48)
124Define TB_GETIMAGELIST for (WM_USER + 49)
125Define TB_LOADIMAGES for (WM_USER + 50)
126Define TB_GETRECT for (WM_USER + 51) // wParam is the Cmd instead of index
127Define TB_SETHOTIMAGELIST for (WM_USER + 52)
128Define TB_GETHOTIMAGELIST for (WM_USER + 53)
129Define TB_SETDISABLEDIMAGELIST for (WM_USER + 54)
130Define TB_GETDISABLEDIMAGELIST for (WM_USER + 55)
131Define TB_SETSTYLE for (WM_USER + 56)
132Define TB_GETSTYLE for (WM_USER + 57)
133Define TB_GETBUTTONSIZE for (WM_USER + 58)
134Define TB_SETBUTTONWIDTH for (WM_USER + 59)
135Define TB_SETMAXTEXTROWS for (WM_USER + 60)
136Define TB_GETTEXTROWS for (WM_USER + 61)
137
138Define TB_GETOBJECT for (WM_USER + 62) // wParam == IID, lParam void **ppv
139Define TB_GETHOTITEM for (WM_USER + 71)
140Define TB_SETHOTITEM for (WM_USER + 72) // wParam == iHotItem
141Define TB_SETANCHORHIGHLIGHT for (WM_USER + 73) // wParam == TRUE/FALSE
142Define TB_GETANCHORHIGHLIGHT for (WM_USER + 74)
143Define TB_MAPACCELERATOR for (WM_USER + 78) // wParam == ch, lParam int * pidBtn
144
145Define TBIMHT_AFTER for |CI$00000001 // TRUE = insert After iButton, otherwise before
146Define TBIMHT_BACKGROUND for |CI$00000002 // TRUE iff missed buttons completely
147
148Define TB_GETINSERTMARK for (WM_USER + 79) // lParam == LPTBINSERTMARK
149Define TB_SETINSERTMARK for (WM_USER + 80) // lParam == LPTBINSERTMARK
150Define TB_INSERTMARKHITTEST for (WM_USER + 81) // wParam == LPPOINT lParam == LPTBINSERTMARK
151Define TB_MOVEBUTTON for (WM_USER + 82)
152Define TB_GETMAXSIZE for (WM_USER + 83) // lParam == LPSIZE
153Define TB_SETEXTENDEDSTYLE for (WM_USER + 84) // For TBSTYLE_EX_*
154Define TB_GETEXTENDEDSTYLE for (WM_USER + 85) // For TBSTYLE_EX_*
155Define TB_GETPADDING for (WM_USER + 86)
156Define TB_SETPADDING for (WM_USER + 87)
157Define TB_SETINSERTMARKCOLOR for (WM_USER + 88)
158Define TB_GETINSERTMARKCOLOR for (WM_USER + 89)
159
160Define TB_SETCOLORSCHEME for CCM_SETCOLORSCHEME // lParam is color scheme
161Define TB_GETCOLORSCHEME for CCM_GETCOLORSCHEME // fills in COLORSCHEME pointed to by lParam
162
163Define TB_SETUNICODEFORMAT for CCM_SETUNICODEFORMAT
164Define TB_GETUNICODEFORMAT for CCM_GETUNICODEFORMAT
165
166Define TBBF_LARGE for |CI$0001
167
168Define TB_GETBITMAPFLAGS for (WM_USER + 41)
169
170Define TBIF_IMAGE for |CI$00000001
171Define TBIF_TEXT for |CI$00000002
172Define TBIF_STATE for |CI$00000004
173Define TBIF_STYLE for |CI$00000008
174Define TBIF_LPARAM for |CI$00000010
175Define TBIF_COMMAND for |CI$00000020
176Define TBIF_SIZE for |CI$00000040
177
178// BUTTONINFO APIs do NOT support the string pool.
179Define TB_GETBUTTONINFO for (WM_USER + 65)
180Define TB_SETBUTTONINFO for (WM_USER + 66)
181
182Define TB_HITTEST for (WM_USER + 69)
183
184Define TB_SETDRAWTEXTFLAGS for (WM_USER + 70) // wParam == mask lParam == bit values
185
186Define TBN_GETBUTTONINFO for (TBN_FIRST-0)
187Define TBN_BEGINDRAG for (TBN_FIRST-1)
188Define TBN_ENDDRAG for (TBN_FIRST-2)
189Define TBN_BEGINADJUST for (TBN_FIRST-3)
190Define TBN_ENDADJUST for (TBN_FIRST-4)
191Define TBN_RESET for (TBN_FIRST-5)
192Define TBN_QUERYINSERT for (TBN_FIRST-6)
193Define TBN_QUERYDELETE for (TBN_FIRST-7)
194Define TBN_TOOLBARCHANGE for (TBN_FIRST-8)
195Define TBN_CUSTHELP for (TBN_FIRST-9)
196Define TBN_DROPDOWN for (TBN_FIRST - 10)
197Define TBN_GETOBJECT for (TBN_FIRST - 12)
198
199// Hot item change flags
200Define HICF_OTHER for |CI$00000000
201Define HICF_MOUSE for |CI$00000001 // Triggered by mouse
202Define HICF_ARROWKEYS for |CI$00000002 // Triggered by arrow keys
203Define HICF_ACCELERATOR for |CI$00000004 // Triggered by accelerator
204Define HICF_DUPACCEL for |CI$00000008 // This accelerator is not unique
205Define HICF_ENTERING for |CI$00000010 // idOld is invalid
206Define HICF_LEAVING for |CI$00000020 // idNew is invalid
207Define HICF_RESELECT for |CI$00000040 // hot item reselected
208
209Define TBN_HOTITEMCHANGE for (TBN_FIRST - 13)
210Define TBN_DRAGOUT for (TBN_FIRST - 14) // this is sent when the user clicks down on a button then drags off the button
211Define TBN_DELETINGBUTTON for (TBN_FIRST - 15) // uses TBNOTIFY
212Define TBN_GETDISPINFO for (TBN_FIRST - 16) // This is sent when the toolbar needs some display information
213Define TBN_GETINFOTIP for (TBN_FIRST - 18)
214
215Define TBNF_IMAGE for |CI$00000001
216Define TBNF_TEXT for |CI$00000002
217Define TBNF_DI_SETITEM for |CI$10000000
218
219// Return codes for TBN_DROPDOWN
220Define TBDDRET_DEFAULT for |CI0
221Define TBDDRET_NODEFAULT for |CI1
222Define TBDDRET_TREATPRESSED for |CI2 // Treat as a standard press button
223
224Define HINST_COMMCTRL for -1
225Define IDB_STD_SMALL_COLOR for 0
226Define IDB_STD_LARGE_COLOR for 1
227Define IDB_VIEW_SMALL_COLOR for 4
228Define IDB_VIEW_LARGE_COLOR for 5
229Define IDB_HIST_SMALL_COLOR for 8
230Define IDB_HIST_LARGE_COLOR for 9
231
232
233Type tTbInsertMark
234 Field tTbInsertMark.iButton as DWord
235 Field tTbInsertMark.dwFlags as DWord
236End_Type
237
238Type tTbReplaceBitmap
239 Field tTbReplaceBitmap.hInstOld as Handle
240 Field tTbReplaceBitmap.nIdOld as DWord
241 Field tTbReplaceBitmap.hInstNew as Handle
242 Field tTbReplaceBitmap.nIdNew as DWord
243 Field tTbReplaceBitmap.nButtons as DWord
244 End_Type
245
246Type tTbButtonInfo
247 Field tTbButtonInfo.cbSize as DWord
248 Field tTbButtonInfo.dwMask as DWord
249 Field tTbButtonInfo.idCommand as DWord
250 Field tTbButtonInfo.iImage as DWord
251 Field tTbButtonInfo.fsState as Byte
252 Field tTbButtonInfo.fsStyle as Byte
253 Field tTbButtonInfo.cx as Word
254 Field tTbButtonInfo.lParam as DWord
255 Field tTbButtonInfo.pszText as Pointer
256 Field tTbButtonInfo.cchText as DWord
257End_Type
258
259// Structure for TBN_HOTITEMCHANGE notification
260Type tNmTbHotItem
261 Field tNmTbHotItem.hdr.hWndFrom as Handle
262 Field tNmTbHotItem.hdr.idFrom as DWord
263 Field tNmTbHotItem.hdr.code as DWord
264 Field tNmTbHotItem.idOld as DWord
265 Field tNmTbHotItem.idNew as DWord
266 Field tNmTbHotItem.dwFlags as DWord
267End_Type
268
269Type tNmTbGetInfoTip
270 Field tNmTbGetInfoTip.hdr.hWndFrom as Handle
271 Field tNmTbGetInfoTip.hdr.idFrom as DWord
272 Field tNmTbGetInfoTip.hdr.code as DWord
273 Field tNmTbGetInfoTip.pszText as Pointer
274 Field tNmTbGetInfoTip.cchTextMax as DWord
275 Field tNmTbGetInfoTip.iItem as DWord
276 Field tNmTbGetInfoTip.lParam as DWord
277End_Type
278
279Type tNmTbDispInfo
280 Field tNmTbDispInfo.hdr.hWndFrom as Handle
281 Field tNmTbDispInfo.hdr.idFrom as DWord
282 Field tNmTbDispInfo.hdr.code as DWord
283 Field tNmTbDispInfo.dwMask as DWord // [in] Specifies the values requested .[out] Client ask the data to be set for future use
284 Field tNmTbDispInfo.idCommand as DWord // [in] id of button we're requesting info for
285 Field tNmTbDispInfo.lParam as DWord // [in] lParam of button
286 Field tNmTbDispInfo.iImage as DWord // [out] image index
287 Field tNmTbDispInfo.pszText as Pointer // [out] new text for item
288 Field tNmTbDispInfo.cchText as DWord // [in] size of buffer pointed to by pszText
289End_Type
290
291Type tTbButton
292 Field tTbButton.iBitmap as DWord
293 Field tTbButton.idCommand as DWord
294 Field tTbButton.fsState as Byte
295 Field tTbButton.fsStyle as Byte
296 Field tTbButton.bReserved1 as Byte
297 Field tTbButton.bReserved2 as Byte
298 Field tTbButton.dwData as DWord
299 Field tTbButton.iString as DWord
300End_Type
301
302Type tNmToolbar
303 Field tNmToolbar.hdr.hWndFrom as Handle
304 Field tNmToolbar.hdr.idFrom as DWord
305 Field tNmToolbar.hdr.code as DWord
306 Field tNmToolbar.iItem as DWord
307 Field tNmToolbar.tbButton.iBitmap as DWord
308 Field tNmToolbar.tbButton.idCommand as DWord
309 Field tNmToolbar.tbButton.fsState as Byte
310 Field tNmToolbar.tbButton.fsStyle as Byte
311 Field tNmToolbar.tbButton.bReserved1 as Byte
312 Field tNmToolbar.tbButton.bReserved2 as Byte
313 Field tNmToolbar.tbButton.dwData as DWord
314 Field tNmToolbar.tbButton.iString as DWord
315 Field tNmToolbar.cchText as DWord
316 Field tNmToolbar.pszText as Pointer
317End_Type
318
319Enum_List // for peStyle
320 Define bsSeparator
321 Define bsButton
322 Define bsCheck
323 Define bsDropDown
324End_Enum_List
325