def maketoolbar(win, alist, toollist): setattr(win.__class__, 'OnExecuteMenuCommand', _OnExecuteMenuCommand) win.toolbar = toolbar = win.CreateToolBar(wx.TB_HORIZONTAL | wx.NO_BORDER | wx.TB_FLAT | wx.TB_TEXT) #judge image size by the first item of the toolbar item list for order, obj_id in toollist: obj = alist.get(obj_id, None) if not obj: raise EasyUtils.EasyException, 'You should define action[%s] first!' % obj_id if obj_id == '-': continue image = EasyUtils.getimage(obj.image) size = wx.Size(image.GetWidth(), image.GetHeight()) toolbar.SetToolBitmapSize(size) break toollist.sort() for order, obj_id in toollist: obj = alist.get(obj_id, None) if not obj: raise EasyUtils.EasyException, 'You should define action[%s] first!' % obj_id if obj_id == '-': toolbar.AddSeparator() else: _type = _item_type.get(obj.type, wx.ITEM_NORMAL) image = EasyUtils.getimage(obj.image) tool_id = makeid(win, obj_id) if not obj.shorttip: obj.shorttip = '' if not obj.longtip: obj.longtip = '' if _type == wx.ITEM_NORMAL: toolbar.AddSimpleTool(tool_id, image, obj.shorttip, obj.longtip) elif _type == wx.ITEM_CHECK: toolbar.AddCheckTool(tool_id, image, obj.shorttip, obj.longtip) wx.EVT_TOOL(win, tool_id, win.OnExecuteMenuCommand) toolbar.Realize()
def maketoolbar(win, alist, toollist): setattr(win.__class__, 'OnExecuteMenuCommand', _OnExecuteMenuCommand) win.toolbar = toolbar = win.CreateToolBar(wx.TB_HORIZONTAL | wx.NO_BORDER | wx.TB_FLAT | wx.TB_TEXT) #judge image size by the first item of the toolbar item list for order, obj_id in toollist: obj = alist.get(obj_id, None) if not obj: raise EasyUtils.EasyException, 'You should define action[%s] first!' % obj_id if obj_id == '-': continue image = EasyUtils.getimage(obj.image) size = wx.Size(image.GetWidth(), image.GetHeight()) toolbar.SetToolBitmapSize(size) break toollist.sort() for order, obj_id in toollist: obj = alist.get(obj_id, None) if not obj: raise EasyUtils.EasyException, 'You should define action[%s] first!' % obj_id if obj_id == '-': toolbar.AddSeparator() else: _type = _item_type.get(obj.type, wx.ITEM_NORMAL) image = EasyUtils.getimage(obj.image) tool_id = makeid(win, obj_id) if not obj.shorttip: obj.shorttip = '' if not obj.longtip: obj.longtip = '' if _type == wx.ITEM_NORMAL: toolbar.AddSimpleTool(tool_id, image, obj.shorttip, obj.longtip) elif _type == wx.ITEM_CHECK: toolbar.AddCheckTool(tool_id, image, obj.shorttip, obj.longtip) wx.EVT_TOOL(win, tool_id, win.OnExecuteMenuCommand) toolbar.Realize()
def makesubmenu(win, alist, mlist, pid): menu = wx.Menu() if not mlist.has_key(pid): return menu for i in mlist[pid]: order, obj_id = i obj = alist.get(obj_id, None) if not obj: raise EasyUtils.EasyException, 'You should define action[%s] first!' % obj_id if mlist.has_key(obj_id): menu_id = makeid(win, obj_id) submenu = makesubmenu(mlist, win, obj_id, pid) menu.AppendMenu(menu_id, obj.caption, submenu) win._menuitems[obj_id] = submenu else: _type = _item_type.get(obj.type, wx.ITEM_NORMAL) if obj_id == '-': menu.AppendSeparator() else: menu_id = makeid(win, obj_id) if not obj.longtip: obj.longtip = '' mitem = wx.MenuItem(menu, menu_id, obj.caption, obj.longtip, _type) if obj.image: image = EasyUtils.getimage(obj.image) if _type == wx.ITEM_CHECK: mitem.SetBitmaps(image) else: mitem.SetBitmap(image) menu.AppendItem(mitem) win._menuitems[obj_id] = mitem if _type in (wx.ITEM_NORMAL, wx.ITEM_CHECK, wx.ITEM_RADIO): wx.EVT_MENU(win, menu_id, win.OnExecuteMenuCommand) return menu
def makesubmenu(win, alist, mlist, pid): menu = wx.Menu() if not mlist.has_key(pid): return menu for i in mlist[pid]: order, obj_id = i obj = alist.get(obj_id, None) if not obj: raise EasyUtils.EasyException, 'You should define action[%s] first!' % obj_id if mlist.has_key(obj_id): menu_id = makeid(win, obj_id) submenu = makesubmenu(mlist, win, obj_id, pid) menu.AppendMenu(menu_id, obj.caption, submenu) win._menuitems[obj_id] = submenu else: _type = _item_type.get(obj.type, wx.ITEM_NORMAL) if obj_id == '-': menu.AppendSeparator() else: menu_id = makeid(win, obj_id) if not obj.longtip: obj.longtip = '' mitem = wx.MenuItem(menu, menu_id, obj.caption, obj.longtip, _type) if obj.image: image = EasyUtils.getimage(obj.image) if _type == wx.ITEM_CHECK: mitem.SetBitmaps(image) else: mitem.SetBitmap(image) menu.AppendItem(mitem) win._menuitems[obj_id] = mitem if _type in (wx.ITEM_NORMAL, wx.ITEM_CHECK, wx.ITEM_RADIO): wx.EVT_MENU(win, menu_id, win.OnExecuteMenuCommand) return menu