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