示例#1
0
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()
示例#2
0
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()
示例#3
0
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
示例#4
0
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