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  }