go-tg-screenshot-bot
238 строк · 6.5 Кб
1// Copyright 2010 The win Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// +build windows
6
7package win
8
9// ToolBar messages
10const (
11TB_THUMBPOSITION = 4
12TB_THUMBTRACK = 5
13TB_ENDTRACK = 8
14TB_ENABLEBUTTON = WM_USER + 1
15TB_CHECKBUTTON = WM_USER + 2
16TB_PRESSBUTTON = WM_USER + 3
17TB_HIDEBUTTON = WM_USER + 4
18TB_INDETERMINATE = WM_USER + 5
19TB_MARKBUTTON = WM_USER + 6
20TB_ISBUTTONENABLED = WM_USER + 9
21TB_ISBUTTONCHECKED = WM_USER + 10
22TB_ISBUTTONPRESSED = WM_USER + 11
23TB_ISBUTTONHIDDEN = WM_USER + 12
24TB_ISBUTTONINDETERMINATE = WM_USER + 13
25TB_ISBUTTONHIGHLIGHTED = WM_USER + 14
26TB_SETSTATE = WM_USER + 17
27TB_GETSTATE = WM_USER + 18
28TB_ADDBITMAP = WM_USER + 19
29TB_DELETEBUTTON = WM_USER + 22
30TB_GETBUTTON = WM_USER + 23
31TB_BUTTONCOUNT = WM_USER + 24
32TB_COMMANDTOINDEX = WM_USER + 25
33TB_SAVERESTORE = WM_USER + 76
34TB_CUSTOMIZE = WM_USER + 27
35TB_ADDSTRING = WM_USER + 77
36TB_GETITEMRECT = WM_USER + 29
37TB_BUTTONSTRUCTSIZE = WM_USER + 30
38TB_SETBUTTONSIZE = WM_USER + 31
39TB_SETBITMAPSIZE = WM_USER + 32
40TB_AUTOSIZE = WM_USER + 33
41TB_GETTOOLTIPS = WM_USER + 35
42TB_SETTOOLTIPS = WM_USER + 36
43TB_SETPARENT = WM_USER + 37
44TB_SETROWS = WM_USER + 39
45TB_GETROWS = WM_USER + 40
46TB_GETBITMAPFLAGS = WM_USER + 41
47TB_SETCMDID = WM_USER + 42
48TB_CHANGEBITMAP = WM_USER + 43
49TB_GETBITMAP = WM_USER + 44
50TB_GETBUTTONTEXT = WM_USER + 75
51TB_REPLACEBITMAP = WM_USER + 46
52TB_GETBUTTONSIZE = WM_USER + 58
53TB_SETBUTTONWIDTH = WM_USER + 59
54TB_SETINDENT = WM_USER + 47
55TB_SETIMAGELIST = WM_USER + 48
56TB_GETIMAGELIST = WM_USER + 49
57TB_LOADIMAGES = WM_USER + 50
58TB_GETRECT = WM_USER + 51
59TB_SETHOTIMAGELIST = WM_USER + 52
60TB_GETHOTIMAGELIST = WM_USER + 53
61TB_SETDISABLEDIMAGELIST = WM_USER + 54
62TB_GETDISABLEDIMAGELIST = WM_USER + 55
63TB_SETSTYLE = WM_USER + 56
64TB_GETSTYLE = WM_USER + 57
65TB_SETMAXTEXTROWS = WM_USER + 60
66TB_GETTEXTROWS = WM_USER + 61
67TB_GETOBJECT = WM_USER + 62
68TB_GETBUTTONINFO = WM_USER + 63
69TB_SETBUTTONINFO = WM_USER + 64
70TB_INSERTBUTTON = WM_USER + 67
71TB_ADDBUTTONS = WM_USER + 68
72TB_HITTEST = WM_USER + 69
73TB_SETDRAWTEXTFLAGS = WM_USER + 70
74TB_GETHOTITEM = WM_USER + 71
75TB_SETHOTITEM = WM_USER + 72
76TB_SETANCHORHIGHLIGHT = WM_USER + 73
77TB_GETANCHORHIGHLIGHT = WM_USER + 74
78TB_GETINSERTMARK = WM_USER + 79
79TB_SETINSERTMARK = WM_USER + 80
80TB_INSERTMARKHITTEST = WM_USER + 81
81TB_MOVEBUTTON = WM_USER + 82
82TB_GETMAXSIZE = WM_USER + 83
83TB_SETEXTENDEDSTYLE = WM_USER + 84
84TB_GETEXTENDEDSTYLE = WM_USER + 85
85TB_GETPADDING = WM_USER + 86
86TB_SETPADDING = WM_USER + 87
87TB_SETINSERTMARKCOLOR = WM_USER + 88
88TB_GETINSERTMARKCOLOR = WM_USER + 89
89TB_MAPACCELERATOR = WM_USER + 90
90TB_GETSTRING = WM_USER + 91
91TB_GETIDEALSIZE = WM_USER + 99
92TB_GETMETRICS = WM_USER + 101
93TB_SETCOLORSCHEME = CCM_SETCOLORSCHEME
94TB_GETCOLORSCHEME = CCM_GETCOLORSCHEME
95TB_SETUNICODEFORMAT = CCM_SETUNICODEFORMAT
96TB_GETUNICODEFORMAT = CCM_GETUNICODEFORMAT
97)
98
99// ToolBar notifications
100const (
101TBN_FIRST = -700
102TBN_DROPDOWN = TBN_FIRST - 10
103)
104
105// TBN_DROPDOWN return codes
106const (
107TBDDRET_DEFAULT = 0
108TBDDRET_NODEFAULT = 1
109TBDDRET_TREATPRESSED = 2
110)
111
112// ToolBar state constants
113const (
114TBSTATE_CHECKED = 1
115TBSTATE_PRESSED = 2
116TBSTATE_ENABLED = 4
117TBSTATE_HIDDEN = 8
118TBSTATE_INDETERMINATE = 16
119TBSTATE_WRAP = 32
120TBSTATE_ELLIPSES = 0x40
121TBSTATE_MARKED = 0x0080
122)
123
124// ToolBar style constants
125const (
126TBSTYLE_BUTTON = 0
127TBSTYLE_SEP = 1
128TBSTYLE_CHECK = 2
129TBSTYLE_GROUP = 4
130TBSTYLE_CHECKGROUP = TBSTYLE_GROUP | TBSTYLE_CHECK
131TBSTYLE_DROPDOWN = 8
132TBSTYLE_AUTOSIZE = 16
133TBSTYLE_NOPREFIX = 32
134TBSTYLE_TOOLTIPS = 256
135TBSTYLE_WRAPABLE = 512
136TBSTYLE_ALTDRAG = 1024
137TBSTYLE_FLAT = 2048
138TBSTYLE_LIST = 4096
139TBSTYLE_CUSTOMERASE = 8192
140TBSTYLE_REGISTERDROP = 0x4000
141TBSTYLE_TRANSPARENT = 0x8000
142)
143
144// ToolBar extended style constants
145const (
146TBSTYLE_EX_DRAWDDARROWS = 0x00000001
147TBSTYLE_EX_MIXEDBUTTONS = 8
148TBSTYLE_EX_HIDECLIPPEDBUTTONS = 16
149TBSTYLE_EX_DOUBLEBUFFER = 0x80
150)
151
152// ToolBar button style constants
153const (
154BTNS_BUTTON = TBSTYLE_BUTTON
155BTNS_SEP = TBSTYLE_SEP
156BTNS_CHECK = TBSTYLE_CHECK
157BTNS_GROUP = TBSTYLE_GROUP
158BTNS_CHECKGROUP = TBSTYLE_CHECKGROUP
159BTNS_DROPDOWN = TBSTYLE_DROPDOWN
160BTNS_AUTOSIZE = TBSTYLE_AUTOSIZE
161BTNS_NOPREFIX = TBSTYLE_NOPREFIX
162BTNS_WHOLEDROPDOWN = 0x0080
163BTNS_SHOWTEXT = 0x0040
164)
165
166// TBBUTTONINFO mask flags
167const (
168TBIF_IMAGE = 0x00000001
169TBIF_TEXT = 0x00000002
170TBIF_STATE = 0x00000004
171TBIF_STYLE = 0x00000008
172TBIF_LPARAM = 0x00000010
173TBIF_COMMAND = 0x00000020
174TBIF_SIZE = 0x00000040
175TBIF_BYINDEX = 0x80000000
176)
177
178// TBMETRICS mask flags
179const (
180TBMF_PAD = 0x00000001
181TBMF_BARPAD = 0x00000002
182TBMF_BUTTONSPACING = 0x00000004
183)
184
185type NMMOUSE struct {
186Hdr NMHDR
187DwItemSpec uintptr
188DwItemData uintptr
189Pt POINT
190DwHitInfo uintptr
191}
192
193type NMTOOLBAR struct {
194Hdr NMHDR
195IItem int32
196TbButton TBBUTTON
197CchText int32
198PszText *uint16
199RcButton RECT
200}
201
202type TBBUTTON struct {
203IBitmap int32
204IdCommand int32
205FsState byte
206FsStyle byte
207//#ifdef _WIN64
208// BYTE bReserved[6] // padding for alignment
209//#elif defined(_WIN32)
210BReserved [2]byte // padding for alignment
211//#endif
212DwData uintptr
213IString uintptr
214}
215
216type TBBUTTONINFO struct {
217CbSize uint32
218DwMask uint32
219IdCommand int32
220IImage int32
221FsState byte
222FsStyle byte
223Cx uint16
224LParam uintptr
225PszText uintptr
226CchText int32
227}
228
229type TBMETRICS struct {
230CbSize uint32
231DwMask uint32
232CxPad int32
233CyPad int32
234CxBarPad int32
235CyBarPad int32
236CxButtonSpacing int32
237CyButtonSpacing int32
238}
239