def flatten_option(o): if o.attrs.get('selected', False): o.attrs['selected'] = 'selected' else: try: del o.attrs['selected'] except KeyError: pass return flatten_tag(o)
def flatten_checkbox(o): if o.attrs.get('checked', False): o.attrs['checked'] = 'checked' else: try: del o.attrs['checked'] except KeyError: pass return flatten_tag(o)
def flatten_menutag(val): msg = flatten_tag(val) label = val.children[0] mf = menuengine.frame enable = val.attrs.get("enable", True) try: if enable == "False": enable = False except: pass prebind = val.attrs.get("prebind", False) try: if prebind == "True": prebind = True except: pass help = val.attrs.get("help", "") user = val.attrs.get("user", "") group = val.attrs.get("group", "") if user and menuengine.user not in [x.strip() for x in user.split(",")]: return msg if group: found = False for g in menuengine.groups: if g in [gr.strip() for gr in group.split(",")]: found = True break if not found: return msg try: mf.mb except: mf.CreateStatusBar() mf.mb = wx.MenuBar() mf.am = wx.Menu() if val.name == "menubar": mf.SetMenuBar(mf.mb) if val.name == "menu": mf.mb.Append(menuengine.frame.am, label) mf.am = wx.Menu() if val.name == "menusep": mf.am.AppendSeparator() if val.name == "menuitem": id = wx.NewId() mi = wx.MenuItem(parentMenu=mf.am, id=id, text=label, help=help, kind=wx.ITEM_NORMAL, subMenu=None) m = mf.am.AppendItem(mi) mi.Enable(enable) if val.attrs.get("bind", ""): if prebind: menuengine._d_prebinds[id] = val.attrs.get("bind") mf.Bind(wx.EVT_MENU, prebind_wrapper, id=id) else: mf.Bind(wx.EVT_MENU, getattr(mf, val.attrs.get("bind")), m) if val.name == "menucheck": mf.am.AppendCheckItem(-1, label) if val.name == "menuradio": mf.am.AppendRadioItem(-1, label) return msg
def flatten_menutag(val): msg = flatten_tag( val ) label = val.children[0] mf = menuengine.frame enable = val.attrs.get("enable", True ) try: if enable == "False": enable = False except: pass prebind = val.attrs.get("prebind", False ) try: if prebind == "True": prebind = True except: pass help = val.attrs.get("help", "") user = val.attrs.get("user", "") group = val.attrs.get("group", "") if user and menuengine.user not in [ x.strip() for x in user.split(",")]: return msg if group: found = False for g in menuengine.groups: if g in [gr.strip() for gr in group.split(",")]: found = True break if not found: return msg try: mf.mb except: mf.CreateStatusBar() mf.mb = wx.MenuBar() mf.am = wx.Menu() if val.name == "menubar": mf.SetMenuBar( mf.mb ) if val.name == "menu": mf.mb.Append( menuengine.frame.am, label ) mf.am = wx.Menu() if val.name == "menusep": mf.am.AppendSeparator() if val.name == "menuitem": id = wx.NewId() mi = wx.MenuItem( parentMenu = mf.am, id = id , text = label, help = help , kind = wx.ITEM_NORMAL, subMenu = None) m = mf.am.AppendItem( mi ) mi.Enable( enable ) if val.attrs.get("bind", ""): if prebind: menuengine._d_prebinds[ id ] = val.attrs.get("bind") mf.Bind( wx.EVT_MENU, prebind_wrapper, id = id ) else: mf.Bind( wx.EVT_MENU, getattr( mf, val.attrs.get("bind")), m ) if val.name == "menucheck": mf.am.AppendCheckItem( -1 , label) if val.name == "menuradio": mf.am.AppendRadioItem( -1 , label ) return msg