Beremiz.py
changeset 65 e55d6faee9d1
parent 62 ddf0cdd71558
child 67 862da764c5b5
equal deleted inserted replaced
64:531e6a834d7e 65:e55d6faee9d1
    23 #Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    23 #Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    24 
    24 
    25 __version__ = "$Revision$"
    25 __version__ = "$Revision$"
    26 
    26 
    27 import wx
    27 import wx
       
    28 import wx.lib.buttons
    28 
    29 
    29 import types
    30 import types
    30 
    31 
    31 import time
    32 import time
    32 
    33 
   281         
   282         
   282         self.PluginChilds = wx.Choice(id=ID_BEREMIZPLUGINCHILDS,
   283         self.PluginChilds = wx.Choice(id=ID_BEREMIZPLUGINCHILDS,
   283               name='PluginChilds', parent=self.LeftPanel, pos=wx.Point(0, 0),
   284               name='PluginChilds', parent=self.LeftPanel, pos=wx.Point(0, 0),
   284               size=wx.Size(-1, -1), style=0)
   285               size=wx.Size(-1, -1), style=0)
   285         
   286         
   286         self.AddButton = wx.Button(id=ID_BEREMIZADDBUTTON, label='Add',
   287         self.AddButton = wx.lib.buttons.GenBitmapButton(ID=ID_BEREMIZADDBUTTON, bitmap=wx.Bitmap(os.path.join('images', 'Add.png')),
   287               name='AddBusButton', parent=self.LeftPanel, pos=wx.Point(0, 0),
   288               name='AddBusButton', parent=self.LeftPanel, pos=wx.Point(0, 0),
   288               size=wx.Size(48, 30), style=0)
   289               size=wx.Size(32, 32), style=wx.NO_BORDER)
       
   290         self.AddButton.SetToolTipString("Add a plugin of the type selected")
   289         self.AddButton.Bind(wx.EVT_BUTTON, self.OnAddButton,
   291         self.AddButton.Bind(wx.EVT_BUTTON, self.OnAddButton,
   290               id=ID_BEREMIZADDBUTTON)
   292               id=ID_BEREMIZADDBUTTON)
   291         
   293         
   292         self.DeleteButton = wx.Button(id=ID_BEREMIZDELETEBUTTON, label='Delete',
   294         self.DeleteButton = wx.lib.buttons.GenBitmapButton(ID=ID_BEREMIZDELETEBUTTON, bitmap=wx.Bitmap(os.path.join('images', 'Delete.png')),
   293               name='DeleteBusButton', parent=self.LeftPanel, pos=wx.Point(0, 0),
   295               name='DeleteBusButton', parent=self.LeftPanel, pos=wx.Point(0, 0),
   294               size=wx.Size(64, 30), style=0)
   296               size=wx.Size(32, 32), style=wx.NO_BORDER)
       
   297         self.DeleteButton.SetToolTipString("Delete the current selected plugin")
   295         self.DeleteButton.Bind(wx.EVT_BUTTON, self.OnDeleteButton,
   298         self.DeleteButton.Bind(wx.EVT_BUTTON, self.OnDeleteButton,
   296               id=ID_BEREMIZDELETEBUTTON)
   299               id=ID_BEREMIZDELETEBUTTON)
   297         
   300         
   298         self.SecondSplitter = wx.SplitterWindow(id=ID_BEREMIZSECONDSPLITTER,
   301         self.SecondSplitter = wx.SplitterWindow(id=ID_BEREMIZSECONDSPLITTER,
   299               name='SecondSplitter', parent=self.MainSplitter, point=wx.Point(0, 0),
   302               name='SecondSplitter', parent=self.MainSplitter, point=wx.Point(0, 0),
   477             else:
   480             else:
   478                 self.ClearSizer(self.ParamsPanelMainSizer)
   481                 self.ClearSizer(self.ParamsPanelMainSizer)
   479             if len(self.PluginRoot.PluginMethods) > 0:
   482             if len(self.PluginRoot.PluginMethods) > 0:
   480                 boxsizer = wx.BoxSizer(wx.HORIZONTAL)
   483                 boxsizer = wx.BoxSizer(wx.HORIZONTAL)
   481                 self.ParamsPanelMainSizer.AddSizer(boxsizer, 0, border=5, flag=wx.GROW|wx.ALL)
   484                 self.ParamsPanelMainSizer.AddSizer(boxsizer, 0, border=5, flag=wx.GROW|wx.ALL)
   482                 for name, method in self.PluginRoot.PluginMethods:
   485                 for plugin_infos in self.PluginRoot.PluginMethods:
   483                     if method:
   486                     if "method" in plugin_infos:
   484                         id = wx.NewId()
   487                         id = wx.NewId()
   485                         button = wx.Button(id=id, label=name, name=name, parent=self.ParamsPanel, 
   488                         if "bitmap" in plugin_infos:
   486                             pos=wx.Point(0, 0), style=wx.BU_EXACTFIT)
   489                             button = wx.lib.buttons.GenBitmapTextButton(ID=id, parent=self.ParamsPanel,
   487                         button.Bind(wx.EVT_BUTTON, self.GetButtonCallBackFunction(self.PluginRoot, method), id=id)
   490                                 bitmap=wx.Bitmap(plugin_infos["bitmap"]), label=plugin_infos["name"],
       
   491                                 name=plugin_infos["name"], pos=wx.Point(0, 0), style=wx.BU_EXACTFIT|wx.NO_BORDER)
       
   492                         else:
       
   493                             button = wx.Button(id=id, label=plugin_infos["name"], 
       
   494                                 name=plugin_infos["name"], parent=self.ParamsPanel, 
       
   495                                 pos=wx.Point(0, 0), style=wx.BU_EXACTFIT)
       
   496                         button.SetToolTipString(plugin_infos["tooltip"])
       
   497                         button.Bind(wx.EVT_BUTTON, self.GetButtonCallBackFunction(self.PluginRoot, plugin_infos["method"]), id=id)
   488                         boxsizer.AddWindow(button, 0, border=5, flag=wx.GROW|wx.RIGHT)
   498                         boxsizer.AddWindow(button, 0, border=5, flag=wx.GROW|wx.RIGHT)
   489             self.RefreshSizerElement(self.ParamsPanelMainSizer, infos, None, False)
   499             self.RefreshSizerElement(self.ParamsPanelMainSizer, infos, None, False)
   490             if plugin != self.PluginRoot and len(plugin.PluginMethods) > 0:
   500             if plugin != self.PluginRoot and len(plugin.PluginMethods) > 0:
   491                 boxsizer = wx.BoxSizer(wx.HORIZONTAL)
   501                 boxsizer = wx.BoxSizer(wx.HORIZONTAL)
   492                 self.ParamsPanelMainSizer.AddSizer(boxsizer, 0, border=5, flag=wx.GROW|wx.ALL)
   502                 self.ParamsPanelMainSizer.AddSizer(boxsizer, 0, border=5, flag=wx.GROW|wx.ALL)
   493                 for name, method in plugin.PluginMethods:
   503                 for plugin_infos in plugin.PluginMethods:
   494                     if method:
   504                     if "method" in plugin_infos:
   495                         id = wx.NewId()
   505                         id = wx.NewId()
   496                         button = wx.Button(id=id, label=name, name=name, parent=self.ParamsPanel, 
   506                         if "bitmap" in plugin_infos:
   497                             pos=wx.Point(0, 0), style=wx.BU_EXACTFIT)
   507                             button = wx.lib.buttons.GenBitmapTextButton(ID=id, parent=self.ParamsPanel, 
   498                         button.Bind(wx.EVT_BUTTON, self.GetButtonCallBackFunction(plugin, method), id=id)
   508                                 bitmap=wx.Bitmap(plugin_infos["bitmap"]), label=plugin_infos["name"], 
       
   509                                 name=plugin_infos["name"], pos=wx.Point(0, 0), style=wx.BU_EXACTFIT|wx.NO_BORDER)
       
   510                         else:
       
   511                             button = wx.Button(id=id, label=plugin_infos["name"], 
       
   512                                 name=plugin_infos["name"], parent=self.ParamsPanel, 
       
   513                                 pos=wx.Point(0, 0), style=wx.BU_EXACTFIT)
       
   514                         button.SetToolTipString(plugin_infos["tooltip"])
       
   515                         button.Bind(wx.EVT_BUTTON, self.GetButtonCallBackFunction(plugin, plugin_infos["method"]), id=id)
   499                         boxsizer.AddWindow(button, 0, border=5, flag=wx.GROW|wx.RIGHT)
   516                         boxsizer.AddWindow(button, 0, border=5, flag=wx.GROW|wx.RIGHT)
   500             self.ParamsPanelMainSizer.Layout()
   517             self.ParamsPanelMainSizer.Layout()
   501             self.ParamsPanel.SetClientSize(self.ParamsPanel.GetClientSize())
   518             self.ParamsPanel.SetClientSize(self.ParamsPanel.GetClientSize())
   502             
   519             
   503             # Refresh PluginChilds
   520             # Refresh PluginChilds
   592                 boxsizer = wx.BoxSizer(wx.HORIZONTAL)
   609                 boxsizer = wx.BoxSizer(wx.HORIZONTAL)
   593                 if first:
   610                 if first:
   594                     sizer.AddSizer(boxsizer, 0, border=5, flag=wx.GROW|wx.ALL)
   611                     sizer.AddSizer(boxsizer, 0, border=5, flag=wx.GROW|wx.ALL)
   595                 else:
   612                 else:
   596                     sizer.AddSizer(boxsizer, 0, border=5, flag=wx.GROW|wx.LEFT|wx.RIGHT|wx.BOTTOM)
   613                     sizer.AddSizer(boxsizer, 0, border=5, flag=wx.GROW|wx.LEFT|wx.RIGHT|wx.BOTTOM)
       
   614                 bitmappath = os.path.join("images", "%s.png"%element_infos["name"])
       
   615                 if os.path.isfile(bitmappath):
       
   616                     staticbitmap = wx.StaticBitmap(id=-1, bitmap=wx.Bitmap(bitmappath),
       
   617                         name="%s_bitmap"%element_infos["name"], parent=self.ParamsPanel,
       
   618                         pos=wx.Point(0, 0), size=wx.Size(24, 24), style=0)
       
   619                     boxsizer.AddWindow(staticbitmap, 0, border=5, flag=wx.RIGHT)
   597                 statictext = wx.StaticText(id=-1, label="%s:"%element_infos["name"], 
   620                 statictext = wx.StaticText(id=-1, label="%s:"%element_infos["name"], 
   598                     name="%s_label"%element_infos["name"], parent=self.ParamsPanel, 
   621                     name="%s_label"%element_infos["name"], parent=self.ParamsPanel, 
   599                     pos=wx.Point(0, 0), size=wx.Size(100, 17), style=0)
   622                     pos=wx.Point(0, 0), size=wx.Size(100, 17), style=0)
   600                 boxsizer.AddWindow(statictext, 0, border=0, flag=0)
   623                 boxsizer.AddWindow(statictext, 0, border=0, flag=0)
   601                 id = wx.NewId()
   624                 id = wx.NewId()
   624                 boxsizer = wx.BoxSizer(wx.HORIZONTAL)
   647                 boxsizer = wx.BoxSizer(wx.HORIZONTAL)
   625                 if first:
   648                 if first:
   626                     sizer.AddSizer(boxsizer, 0, border=5, flag=wx.GROW|wx.ALL)
   649                     sizer.AddSizer(boxsizer, 0, border=5, flag=wx.GROW|wx.ALL)
   627                 else:
   650                 else:
   628                     sizer.AddSizer(boxsizer, 0, border=5, flag=wx.GROW|wx.LEFT|wx.RIGHT|wx.BOTTOM)
   651                     sizer.AddSizer(boxsizer, 0, border=5, flag=wx.GROW|wx.LEFT|wx.RIGHT|wx.BOTTOM)
       
   652                 bitmappath = os.path.join("images", "%s.png"%element_infos["name"])
       
   653                 if os.path.isfile(bitmappath):
       
   654                     staticbitmap = wx.StaticBitmap(id=-1, bitmap=wx.Bitmap(bitmappath),
       
   655                         name="%s_bitmap"%element_infos["name"], parent=self.ParamsPanel,
       
   656                         pos=wx.Point(0, 0), size=wx.Size(24, 24), style=0)
       
   657                     boxsizer.AddWindow(staticbitmap, 0, border=5, flag=wx.RIGHT)
   629                 statictext = wx.StaticText(id=-1, label="%s:"%element_infos["name"], 
   658                 statictext = wx.StaticText(id=-1, label="%s:"%element_infos["name"], 
   630                     name="%s_label"%element_infos["name"], parent=self.ParamsPanel, 
   659                     name="%s_label"%element_infos["name"], parent=self.ParamsPanel, 
   631                     pos=wx.Point(0, 0), size=wx.Size(100, 17), style=0)
   660                     pos=wx.Point(0, 0), size=wx.Size(100, 17), style=0)
   632                 boxsizer.AddWindow(statictext, 0, border=0, flag=wx.TOP|wx.LEFT|wx.BOTTOM)
   661                 boxsizer.AddWindow(statictext, 0, border=0, flag=wx.TOP|wx.LEFT|wx.BOTTOM)
   633                 id = wx.NewId()
   662                 id = wx.NewId()
   657                 boxsizer = wx.BoxSizer(wx.HORIZONTAL)
   686                 boxsizer = wx.BoxSizer(wx.HORIZONTAL)
   658                 if first:
   687                 if first:
   659                     sizer.AddSizer(boxsizer, 0, border=5, flag=wx.GROW|wx.ALL)
   688                     sizer.AddSizer(boxsizer, 0, border=5, flag=wx.GROW|wx.ALL)
   660                 else:
   689                 else:
   661                     sizer.AddSizer(boxsizer, 0, border=5, flag=wx.GROW|wx.LEFT|wx.RIGHT|wx.BOTTOM)
   690                     sizer.AddSizer(boxsizer, 0, border=5, flag=wx.GROW|wx.LEFT|wx.RIGHT|wx.BOTTOM)
       
   691                 bitmappath = os.path.join("images", "%s.png"%element_infos["name"])
       
   692                 if os.path.isfile(bitmappath):
       
   693                     staticbitmap = wx.StaticBitmap(id=-1, bitmap=wx.Bitmap(bitmappath),
       
   694                         name="%s_bitmap"%element_infos["name"], parent=self.ParamsPanel,
       
   695                         pos=wx.Point(0, 0), size=wx.Size(24, 24), style=0)
       
   696                     boxsizer.AddWindow(staticbitmap, 0, border=5, flag=wx.RIGHT)
   662                 statictext = wx.StaticText(id=-1, label="%s:"%element_infos["name"], 
   697                 statictext = wx.StaticText(id=-1, label="%s:"%element_infos["name"], 
   663                     name="%s_label"%element_infos["name"], parent=self.ParamsPanel, 
   698                     name="%s_label"%element_infos["name"], parent=self.ParamsPanel, 
   664                     pos=wx.Point(0, 0), size=wx.Size(100, 17), style=0)
   699                     pos=wx.Point(0, 0), size=wx.Size(100, 17), style=0)
   665                 boxsizer.AddWindow(statictext, 0, border=0, flag=0)
   700                 boxsizer.AddWindow(statictext, 0, border=0, flag=0)
   666                 id = wx.NewId()
   701                 id = wx.NewId()