.. wxPython Phoenix documentation This file was generated by Phoenix's sphinx generator and associated tools, do not edit by hand. Copyright: (c) 2011-2020 by Total Control Software License: wxWindows License .. include:: headings.inc .. module:: wx.lib.agw.flatmenu .. currentmodule:: wx.lib.agw.flatmenu .. highlight:: python .. _wx.lib.agw.flatmenu: ========================================================================================================================================== |phoenix_title| **wx.lib.agw.flatmenu** ========================================================================================================================================== :class:`~wx.lib.agw.flatmenu.FlatMenu` is a generic menu implementation. Description =========== :class:`FlatMenu`, like the name implies, it is a generic menu implementation. I tried to provide a full functionality for menus, menubar and toolbar. :class:`FlatMenu` supports the following features: - Fires all the events (UI & Cmd); - Check items; - Separators; - Enabled / Disabled menu items; - Images on items; - Toolbar support, with images and separators; - Controls in toolbar (work in progress); - Toolbar tools tooltips (done: thanks to Peter Kort); - Accelerators for menus; - Accelerators for menubar; - Radio items in menus; - Integration with AUI; - Scrolling when menu is too big to fit the screen; - Menu navigation with keyboard; - Drop down arrow button to the right of the menu, it always contains the "Customize" option, which will popup an options dialog. The dialog has the following abilities: (a) Ability to add/remove menus; (b) Select different colour schemes for the menu bar / toolbar; (c) Control various options, such as: colour for highlight menu item, draw border around menus (classic look only); (d) Toolbar floating appearance. - Allows user to specify grey bitmap for disabled menus/toolbar tools; - If no grey bitmap is provided, it generates one from the existing bitmap; - Hidden toolbar items / menu bar items - will appear in a small popmenu to the right if they are hidden; - 4 different colour schemes for the menu bar (more can easily added); - Scrolling is available if the menu height is greater than the screen height; - Context menus for menu items; - Show/hide the drop down arrow which allows the customization of :class:`FlatMenu`; - Multiple columns menu window; - Tooltips for menus and toolbar items on a :class:`StatusBar` (if present); - Transparency (alpha channel) for menu windows (for platforms supporting it); - FileHistory support through a pure-Python :class:`FileHistory` implementation; - Possibility to set a background bitmap for a :class:`FlatMenu`; - First attempt in adding controls to FlatToolbar; - Added a MiniBar (thanks to Vladiuz); - Added :class:`ToolBar` methods AddCheckTool/AddRadioTool (thanks to Vladiuz). Usage ===== Usage example:: import wx import wx.lib.agw.flatmenu as FM class MyFrame(wx.Frame): def __init__(self, parent): wx.Frame.__init__(self, parent, -1, "FlatMenu Demo") self.CreateMenu() panel = wx.Panel(self, -1) btn = wx.Button(panel, -1, "Hello", (15, 12), (100, 120)) main_sizer = wx.BoxSizer(wx.VERTICAL) main_sizer.Add(self.menubar, 0, wx.EXPAND) main_sizer.Add(panel, 1, wx.EXPAND) self.SetSizer(main_sizer) main_sizer.Layout() def CreateMenu(self): self.menubar = FM.FlatMenuBar(self, -1) f_menu = FM.FlatMenu() e_menu = FM.FlatMenu() v_menu = FM.FlatMenu() t_menu = FM.FlatMenu() w_menu = FM.FlatMenu() # Append the menu items to the menus f_menu.Append(-1, "Simple Ctrl+N", "Text", None) e_menu.Append(-1, "FlatMenu", "Text", None) v_menu.Append(-1, "Example", "Text", None) t_menu.Append(-1, "Hello", "Text", None) w_menu.Append(-1, "World", "Text", None) # Append menus to the menubar self.menubar.Append(f_menu, "&File") self.menubar.Append(e_menu, "&Edit") self.menubar.Append(v_menu, "&View") self.menubar.Append(t_menu, "&Options") self.menubar.Append(w_menu, "&Help") # our normal wxApp-derived class, as usual app = wx.App(0) frame = MyFrame(None) app.SetTopWindow(frame) frame.Show() app.MainLoop() Supported Platforms =================== :class:`FlatMenu` has been tested on the following platforms: * Windows (Windows XP, Vista); * Linux Ubuntu (Dapper 6.06) Window Styles ============= This class supports the following window styles: ========================= =========== ================================================== Window Styles Hex Value Description ========================= =========== ================================================== ``FM_OPT_IS_LCD`` 0x1 Use this style if your computer uses a LCD screen. ``FM_OPT_MINIBAR`` 0x2 Use this if you plan to use the toolbar only. ``FM_OPT_SHOW_CUSTOMIZE`` 0x4 Show "customize link" in the `More` menu, you will need to write your own handler. See demo. ``FM_OPT_SHOW_TOOLBAR`` 0x8 Set this option is you are planning to use the toolbar. ========================= =========== ================================================== Events Processing ================= This class processes the following events: ================================= ================================================== Event Name Description ================================= ================================================== ``EVT_FLAT_MENU_DISMISSED`` Used internally. ``EVT_FLAT_MENU_ITEM_MOUSE_OUT`` Fires an event when the mouse leaves a :class:`FlatMenuItem`. ``EVT_FLAT_MENU_ITEM_MOUSE_OVER`` Fires an event when the mouse enters a :class:`FlatMenuItem`. ``EVT_FLAT_MENU_SELECTED`` Fires the :class:`EVT_MENU` event for :class:`FlatMenu`. ================================= ================================================== License And Version =================== :class:`FlatMenu` is distributed under the wxPython license. Latest Revision: Andrea Gavana @ 27 Dec 2012, 21.00 GMT Version 1.0 |function_summary| Functions Summary ==================================== ================================================================================ ================================================================================ :func:`~wx.lib.agw.flatmenu.ConvertToMonochrome` Converts a bitmap to monochrome colour. :func:`~wx.lib.agw.flatmenu.GetAccelIndex` Returns the mnemonic index of the label and the label stripped of the ampersand mnemonic :func:`~wx.lib.agw.flatmenu.GetMRUEntryLabel` Returns the string used for the MRU list items in the menu. ================================================================================ ================================================================================ | |class_summary| Classes Summary =============================== ================================================================================ ================================================================================ `~wx.lib.agw.flatmenu.FileHistory` The :class:`FileHistory` encapsulates a user interface convenience, the list of most `~wx.lib.agw.flatmenu.FlatMenu` A Flat popup menu generic implementation. `~wx.lib.agw.flatmenu.FlatMenuBar` Implements the generic owner-drawn menu bar for :class:`FlatMenu`. `~wx.lib.agw.flatmenu.FlatMenuBase` Base class for generic flat menu derived from :class:`PopupWindow`. `~wx.lib.agw.flatmenu.FlatMenuButton` A nice small class that functions like :class:`wx.BitmapButton`, the reason I did `~wx.lib.agw.flatmenu.FlatMenuEvent` Event class that supports the :class:`FlatMenu`-compatible event called `~wx.lib.agw.flatmenu.FlatMenuItem` A class that represents an item in a menu. `~wx.lib.agw.flatmenu.FlatMenuItemGroup` A class that manages a group of radio menu items. `~wx.lib.agw.flatmenu.FlatToolbarItem` This class represents a toolbar item. `~wx.lib.agw.flatmenu.FMRenderer` Base class for the :class:`FlatMenu` renderers. This class implements the common `~wx.lib.agw.flatmenu.FMRendererMgr` This class represents a manager that handles all the renderers defined. `~wx.lib.agw.flatmenu.FMRendererMSOffice2007` Windows Office 2007 style. `~wx.lib.agw.flatmenu.FMRendererVista` Windows Vista-like style. `~wx.lib.agw.flatmenu.FMRendererXP` Xp-Style renderer. `~wx.lib.agw.flatmenu.FocusHandler` A focus event handler. `~wx.lib.agw.flatmenu.mcPopupWindow` Since Max OS does not support :class:`PopupWindow`, this is an alternative. `~wx.lib.agw.flatmenu.MenuEntryInfo` Internal class which holds information about a menu. `~wx.lib.agw.flatmenu.MenuKbdRedirector` A keyboard event handler. `~wx.lib.agw.flatmenu.ShadowPopupWindow` Base class for generic :class:`FlatMenu` derived from :class:`PopupWindow`. `~wx.lib.agw.flatmenu.StatusBarTimer` Timer used for deleting :class:`StatusBar` long help after ``_DELAY`` seconds. `~wx.lib.agw.flatmenu.ToolBarItem` A simple class that holds information about a toolbar item. ================================================================================ ================================================================================ | .. toctree:: :maxdepth: 1 :hidden: wx.lib.agw.flatmenu.FileHistory wx.lib.agw.flatmenu.FlatMenu wx.lib.agw.flatmenu.FlatMenuBar wx.lib.agw.flatmenu.FlatMenuBase wx.lib.agw.flatmenu.FlatMenuButton wx.lib.agw.flatmenu.FlatMenuEvent wx.lib.agw.flatmenu.FlatMenuItem wx.lib.agw.flatmenu.FlatMenuItemGroup wx.lib.agw.flatmenu.FlatToolbarItem wx.lib.agw.flatmenu.FMRenderer wx.lib.agw.flatmenu.FMRendererMgr wx.lib.agw.flatmenu.FMRendererMSOffice2007 wx.lib.agw.flatmenu.FMRendererVista wx.lib.agw.flatmenu.FMRendererXP wx.lib.agw.flatmenu.FocusHandler wx.lib.agw.flatmenu.mcPopupWindow wx.lib.agw.flatmenu.MenuEntryInfo wx.lib.agw.flatmenu.MenuKbdRedirector wx.lib.agw.flatmenu.ShadowPopupWindow wx.lib.agw.flatmenu.StatusBarTimer wx.lib.agw.flatmenu.ToolBarItem Functions ------------ .. function:: ConvertToMonochrome(bmp) Converts a bitmap to monochrome colour. :param `bmp`: a valid :class:`wx.Bitmap` object. .. function:: GetAccelIndex(label) Returns the mnemonic index of the label and the label stripped of the ampersand mnemonic (e.g. 'lab&el' ==> will result in 3 and labelOnly = label). :param string `label`: a string possibly containing an ampersand. .. function:: GetMRUEntryLabel(n, path) Returns the string used for the MRU list items in the menu. :param integer `n`: the index of the file name in the MRU list; :param string `path`: the full path of the file name. .. note:: The index `n` is 0-based, as usual, but the strings start from 1.