home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2011 October / maximum-cd-2011-10.iso / DiscContents / digsby_setup.exe / lib / gui / model / menus.pyo (.txt) < prev   
Encoding:
Python Compiled Bytecode  |  2011-06-22  |  5.4 KB  |  170 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.6)
  3.  
  4. import wx
  5. import sys
  6. import gui.uberwidgets.umenu as gui
  7. item_types = [
  8.     'normal',
  9.     'checkbox',
  10.     'radio',
  11.     'separator']
  12.  
  13. def wxTypeForItemType(type):
  14.     if not type or type == 'normal':
  15.         return wx.ITEM_NORMAL
  16.     if type == 'checkbox':
  17.         return wx.ITEM_CHECK
  18.     if type == 'radio':
  19.         return wx.ITEM_RADIO
  20.     if type == 'separator':
  21.         return wx.ITEM_SEPARATOR
  22.  
  23.  
  24. def set_menubar(parent, menus, umenu = False):
  25.     if not umenu:
  26.         menubar = wx.MenuBar()
  27.     else:
  28.         menubar = gui.uberwidgets.umenu.UMenuBar(parent)
  29.     for menu in menus:
  30.         label = menu.label
  31.         if umenu:
  32.             menu = menu.asUMenu(parent)
  33.         else:
  34.             menu = menu.asWxMenu()
  35.         menubar.Append(menu, label)
  36.     
  37.     if not umenu:
  38.         parent.SetMenuBar(menubar)
  39.     
  40.     return menubar
  41.  
  42.  
  43. class Menu(object):
  44.     
  45.     def __init__(self, label = '', items = None):
  46.         self.label = label
  47.         if items:
  48.             self.items = items
  49.         else:
  50.             self.items = []
  51.  
  52.     
  53.     def __repr__(self):
  54.         return '<Menu "%s"\n%s>' % (self.label, '\n'.join((lambda .0: for item in .0:
  55. '    ' + repr(item))(self)))
  56.  
  57.     
  58.     def __iter__(self):
  59.         return iter(self.items)
  60.  
  61.     
  62.     def __len__(self):
  63.         return len(self.items)
  64.  
  65.     
  66.     def addItem(self, label, description = '', id = None, type = 'normal', defaultAccel = None, customAccel = None, subMenu = None, bitmap = None):
  67.         item = MenuItem(label, description, id, type, defaultAccel, customAccel, subMenu, bitmap)
  68.         self.items.append(item)
  69.         return item
  70.  
  71.     
  72.     def addSep(self):
  73.         item = MenuItem(label = '', type = 'separator')
  74.         self.items.append(item)
  75.         return item
  76.  
  77.     
  78.     def asWxMenu(self):
  79.         menu = wx.Menu()
  80.         for item in self.items:
  81.             menu.AppendItem(item.asWxMenuItem(menu))
  82.         
  83.         return menu
  84.  
  85.     
  86.     def asUMenu(self, parent, windowless = False):
  87.         menu = gui.uberwidgets.umenu.UMenu(parent, windowless = windowless)
  88.         for item in self.items:
  89.             item.asUMenuItem(menu)
  90.         
  91.         return menu
  92.  
  93.  
  94.  
  95. class MenuItem(object):
  96.     
  97.     def __init__(self, label, description = '', id = None, type = 'normal', defaultAccel = None, customAccel = None, subMenu = None, bitmap = None):
  98.         self.label = label
  99.         self.description = description
  100.         self.defaultAccel = defaultAccel
  101.         self.customAccel = customAccel
  102.         self.type = type
  103.         self.subMenu = subMenu
  104.         self.bitmap = bitmap
  105.         if type == 'separator':
  106.             id = wx.ID_SEPARATOR
  107.         elif id is None:
  108.             id = wx.NewId()
  109.         
  110.         self.id = id
  111.  
  112.     
  113.     def __repr__(self):
  114.         if self.type == 'separator':
  115.             return '<MenuItem (separator)>'
  116.         return '<MenuItem: id=%d, label=%r, desc=%s, defaultAccel=%s, customAccel=%s, type=%s>' % (self.id, self.label, self.description, self.defaultAccel, self.customAccel, self.type)
  117.  
  118.     
  119.     def asWxMenuItem(self, menu = None):
  120.         label = self.label
  121.         if self.customAccel:
  122.             label += '\t' + self.customAccel
  123.         elif self.defaultAccel:
  124.             label += '\t' + self.defaultAccel
  125.         
  126.         subMenu = None
  127.         if self.subMenu is not None:
  128.             subMenu = self.subMenu.asWxMenu()
  129.         
  130.         item = wx.MenuItem(menu, self.id, label, self.description, wxTypeForItemType(self.type), subMenu)
  131.         if self.bitmap:
  132.             item.SetBitmap(self.bitmap)
  133.         
  134.         return item
  135.  
  136.     
  137.     def asUMenuItem(self, umenu):
  138.         if self.subMenu is not None:
  139.             return umenu.AddSubMenu(self.subMenu.asUMenu(umenu.Window), self.label, self.bitmap)
  140.         if self.type == 'checkbox':
  141.             item = umenu.AddCheckItem(self.label)
  142.             item.Id = self.id
  143.             return item
  144.         if self.type == 'radio':
  145.             item = umenu.AddRadioItem(self.label)
  146.             item.Id = self.id
  147.             return item
  148.         return umenu.Append(self.id, self.label, self.bitmap)
  149.  
  150.  
  151. if __name__ == '__main__':
  152.     
  153.     def _(text):
  154.         return text
  155.  
  156.     from tests.testapp import testapp
  157.     app = testapp('../../..')
  158.     frame = wx.Frame(None, -1)
  159.     frame.Sizer = sizer = wx.BoxSizer(wx.VERTICAL)
  160.     use_umenu = False
  161.     menus = digsbyWxMenuBar(use_umenu, frame)
  162.     menubar = set_menubar(frame, menus, use_umenu)
  163.     app.SetTopWindow(frame)
  164.     if use_umenu:
  165.         sizer.Add(menubar.SizableWindow, 0, wx.EXPAND)
  166.     
  167.     frame.Show()
  168.     app.MainLoop()
  169.  
  170.