github.com/secoba/wails/v2@v2.6.4/pkg/menu/menuroles.go (about)

     1  // Package menu provides all the functions and structs related to menus in a Wails application.
     2  // Heavily inspired by Electron (c) 2013-2020 Github Inc.
     3  // Electron License: https://github.com/electron/electron/blob/master/LICENSE
     4  package menu
     5  
     6  // Role is a type to identify menu roles
     7  type Role int
     8  
     9  // These constants need to be kept in sync with `v2/internal/frontend/desktop/darwin/Role.h`
    10  const (
    11  	AppMenuRole    Role = 1
    12  	EditMenuRole        = 2
    13  	WindowMenuRole      = 3
    14  	// AboutRole              Role = "about"
    15  	// UndoRole               Role = "undo"
    16  	// RedoRole               Role = "redo"
    17  	// CutRole                Role = "cut"
    18  	// CopyRole               Role = "copy"
    19  	// PasteRole              Role = "paste"
    20  	// PasteAndMatchStyleRole Role = "pasteAndMatchStyle"
    21  	// SelectAllRole          Role = "selectAll"
    22  	// DeleteRole             Role = "delete"
    23  	// MinimizeRole           Role = "minimize"
    24  	// QuitRole               Role = "quit"
    25  	// TogglefullscreenRole   Role = "togglefullscreen"
    26  	// FileMenuRole           Role = "fileMenu"
    27  	// ViewMenuRole           Role = "viewMenu"
    28  	// WindowMenuRole         Role = "windowMenu"
    29  	// HideRole               Role = "hide"
    30  	// HideOthersRole         Role = "hideOthers"
    31  	// UnhideRole             Role = "unhide"
    32  	// FrontRole              Role = "front"
    33  	// ZoomRole               Role = "zoom"
    34  	// WindowSubMenuRole      Role = "windowSubMenu"
    35  	// HelpSubMenuRole        Role = "helpSubMenu"
    36  	// SeparatorItemRole      Role = "separatorItem"
    37  )
    38  
    39  /*
    40  // About provides a MenuItem with the About role
    41  func About() *MenuItem {
    42  	return &MenuItem{
    43  		Role: AboutRole,
    44  	}
    45  }
    46  
    47  // Undo provides a MenuItem with the Undo role
    48  func Undo() *MenuItem {
    49  	return &MenuItem{
    50  		Role: UndoRole,
    51  	}
    52  }
    53  
    54  // Redo provides a MenuItem with the Redo role
    55  func Redo() *MenuItem {
    56  	return &MenuItem{
    57  		Role: RedoRole,
    58  	}
    59  }
    60  
    61  // Cut provides a MenuItem with the Cut role
    62  func Cut() *MenuItem {
    63  	return &MenuItem{
    64  		Role: CutRole,
    65  	}
    66  }
    67  
    68  // Copy provides a MenuItem with the Copy role
    69  func Copy() *MenuItem {
    70  	return &MenuItem{
    71  		Role: CopyRole,
    72  	}
    73  }
    74  
    75  // Paste provides a MenuItem with the Paste role
    76  func Paste() *MenuItem {
    77  	return &MenuItem{
    78  		Role: PasteRole,
    79  	}
    80  }
    81  
    82  // PasteAndMatchStyle provides a MenuItem with the PasteAndMatchStyle role
    83  func PasteAndMatchStyle() *MenuItem {
    84  	return &MenuItem{
    85  		Role: PasteAndMatchStyleRole,
    86  	}
    87  }
    88  
    89  // SelectAll provides a MenuItem with the SelectAll role
    90  func SelectAll() *MenuItem {
    91  	return &MenuItem{
    92  		Role: SelectAllRole,
    93  	}
    94  }
    95  
    96  // Delete provides a MenuItem with the Delete role
    97  func Delete() *MenuItem {
    98  	return &MenuItem{
    99  		Role: DeleteRole,
   100  	}
   101  }
   102  
   103  // Minimize provides a MenuItem with the Minimize role
   104  func Minimize() *MenuItem {
   105  	return &MenuItem{
   106  		Role: MinimizeRole,
   107  	}
   108  }
   109  
   110  // Quit provides a MenuItem with the Quit role
   111  func Quit() *MenuItem {
   112  	return &MenuItem{
   113  		Role: QuitRole,
   114  	}
   115  }
   116  
   117  // ToggleFullscreen provides a MenuItem with the ToggleFullscreen role
   118  func ToggleFullscreen() *MenuItem {
   119  	return &MenuItem{
   120  		Role: TogglefullscreenRole,
   121  	}
   122  }
   123  
   124  // FileMenu provides a MenuItem with the whole default "File" menu (Close / Quit)
   125  func FileMenu() *MenuItem {
   126  	return &MenuItem{
   127  		Role: FileMenuRole,
   128  	}
   129  }
   130  */
   131  
   132  // EditMenu provides a MenuItem with the whole default "Edit" menu (Undo, Copy, etc.).
   133  func EditMenu() *MenuItem {
   134  	return &MenuItem{
   135  		Role: EditMenuRole,
   136  	}
   137  }
   138  
   139  /*
   140  // ViewMenu provides a MenuItem with the whole default "View" menu (Reload, Toggle Developer Tools, etc.)
   141  func ViewMenu() *MenuItem {
   142  	return &MenuItem{
   143  		Role: ViewMenuRole,
   144  	}
   145  }
   146  */
   147  
   148  // WindowMenu provides a MenuItem with the whole default "Window" menu (Minimize, Zoom, etc.).
   149  // On MacOS currently all options in there won't work if the window is frameless.
   150  func WindowMenu() *MenuItem {
   151  	return &MenuItem{
   152  		Role: WindowMenuRole,
   153  	}
   154  }
   155  
   156  // These roles are Mac only
   157  
   158  // AppMenu provides a MenuItem with the whole default "App" menu (About, Services, etc.)
   159  func AppMenu() *MenuItem {
   160  	return &MenuItem{
   161  		Role: AppMenuRole,
   162  	}
   163  }
   164  
   165  /*
   166  // Hide provides a MenuItem that maps to the hide action.
   167  func Hide() *MenuItem {
   168  	return &MenuItem{
   169  		Role: HideRole,
   170  	}
   171  }
   172  
   173  // HideOthers provides a MenuItem that maps to the hideOtherApplications action.
   174  func HideOthers() *MenuItem {
   175  	return &MenuItem{
   176  		Role: HideOthersRole,
   177  	}
   178  }
   179  
   180  // UnHide provides a MenuItem that maps to the unHideAllApplications action.
   181  func UnHide() *MenuItem {
   182  	return &MenuItem{
   183  		Role: UnhideRole,
   184  	}
   185  }
   186  
   187  // Front provides a MenuItem that maps to the arrangeInFront action.
   188  func Front() *MenuItem {
   189  	return &MenuItem{
   190  		Role: FrontRole,
   191  	}
   192  }
   193  
   194  // Zoom provides a MenuItem that maps to the performZoom action.
   195  func Zoom() *MenuItem {
   196  	return &MenuItem{
   197  		Role: ZoomRole,
   198  	}
   199  }
   200  
   201  // WindowSubMenu provides a MenuItem with the "Window" submenu.
   202  func WindowSubMenu() *MenuItem {
   203  	return &MenuItem{
   204  		Role: WindowSubMenuRole,
   205  	}
   206  }
   207  
   208  // HelpSubMenu provides a MenuItem with the "Help" submenu.
   209  func HelpSubMenu() *MenuItem {
   210  	return &MenuItem{
   211  		Role: HelpSubMenuRole,
   212  	}
   213  }
   214  */