Beremiz.py
changeset 127 36bb6be88a3b
parent 126 034979cb02b0
child 129 ec54cd416528
equal deleted inserted replaced
126:034979cb02b0 127:36bb6be88a3b
   186 
   186 
   187 [ID_BEREMIZ, ID_BEREMIZMAINSPLITTER, 
   187 [ID_BEREMIZ, ID_BEREMIZMAINSPLITTER, 
   188  ID_BEREMIZPLCCONFIG, ID_BEREMIZLOGCONSOLE, 
   188  ID_BEREMIZPLCCONFIG, ID_BEREMIZLOGCONSOLE, 
   189  ID_BEREMIZINSPECTOR] = [wx.NewId() for _init_ctrls in range(5)]
   189  ID_BEREMIZINSPECTOR] = [wx.NewId() for _init_ctrls in range(5)]
   190 
   190 
   191 [ID_BEREMIZFILEMENUITEMS0, ID_BEREMIZFILEMENUITEMS1, 
   191 [ID_BEREMIZRUNMENUBUILD, ID_BEREMIZRUNMENUSIMULATE, 
   192  ID_BEREMIZFILEMENUITEMS2, ID_BEREMIZFILEMENUITEMS3, 
   192  ID_BEREMIZRUNMENURUN, ID_BEREMIZRUNMENUSAVELOG, 
   193  ID_BEREMIZFILEMENUITEMS5, ID_BEREMIZFILEMENUITEMS7, 
       
   194 ] = [wx.NewId() for _init_coll_FileMenu_Items in range(6)]
       
   195 
       
   196 [ID_BEREMIZEDITMENUITEMS0, ID_BEREMIZEDITMENUITEMS2, 
       
   197  ID_BEREMIZEDITMENUITEMS3, 
       
   198 ] = [wx.NewId() for _init_coll_EditMenu_Items in range(3)]
       
   199 
       
   200 [ID_BEREMIZRUNMENUITEMS0, ID_BEREMIZRUNMENUITEMS2, 
       
   201  ID_BEREMIZRUNMENUITEMS3, ID_BEREMIZRUNMENUITEMS5, 
       
   202 ] = [wx.NewId() for _init_coll_EditMenu_Items in range(4)]
   193 ] = [wx.NewId() for _init_coll_EditMenu_Items in range(4)]
   203 
       
   204 [ID_BEREMIZHELPMENUITEMS0, ID_BEREMIZHELPMENUITEMS1, 
       
   205 ] = [wx.NewId() for _init_coll_HelpMenu_Items in range(2)]
       
   206 
   194 
   207 class Beremiz(wx.Frame):
   195 class Beremiz(wx.Frame):
   208 	
   196 	
   209     def _init_coll_FileMenu_Items(self, parent):
   197     def _init_coll_FileMenu_Items(self, parent):
   210         parent.Append(help='', id=ID_BEREMIZFILEMENUITEMS0,
   198         parent.Append(help='', id=wx.ID_NEW,
   211               kind=wx.ITEM_NORMAL, text=u'New\tCTRL+N')
   199               kind=wx.ITEM_NORMAL, text=u'New\tCTRL+N')
   212         parent.Append(help='', id=ID_BEREMIZFILEMENUITEMS1,
   200         parent.Append(help='', id=wx.ID_OPEN,
   213               kind=wx.ITEM_NORMAL, text=u'Open\tCTRL+O')
   201               kind=wx.ITEM_NORMAL, text=u'Open\tCTRL+O')
   214         parent.Append(help='', id=ID_BEREMIZFILEMENUITEMS2,
   202         parent.Append(help='', id=wx.ID_SAVE,
   215               kind=wx.ITEM_NORMAL, text=u'Save\tCTRL+S')
   203               kind=wx.ITEM_NORMAL, text=u'Save\tCTRL+S')
   216         parent.Append(help='', id=ID_BEREMIZFILEMENUITEMS3,
   204         parent.Append(help='', id=wx.ID_CLOSE,
   217               kind=wx.ITEM_NORMAL, text=u'Close Project')
   205               kind=wx.ITEM_NORMAL, text=u'Close Project')
   218         parent.AppendSeparator()
   206         parent.AppendSeparator()
   219         parent.Append(help='', id=ID_BEREMIZFILEMENUITEMS5,
   207         parent.Append(help='', id=wx.ID_PROPERTIES,
   220               kind=wx.ITEM_NORMAL, text=u'Properties')
   208               kind=wx.ITEM_NORMAL, text=u'Properties')
   221         parent.AppendSeparator()
   209         parent.AppendSeparator()
   222         parent.Append(help='', id=ID_BEREMIZFILEMENUITEMS7,
   210         parent.Append(help='', id=wx.ID_EXIT,
   223               kind=wx.ITEM_NORMAL, text=u'Quit\tCTRL+Q')
   211               kind=wx.ITEM_NORMAL, text=u'Quit\tCTRL+Q')
   224         self.Bind(wx.EVT_MENU, self.OnNewProjectMenu,
   212         self.Bind(wx.EVT_MENU, self.OnNewProjectMenu, id=wx.ID_NEW)
   225               id=ID_BEREMIZFILEMENUITEMS0)
   213         self.Bind(wx.EVT_MENU, self.OnOpenProjectMenu, id=wx.ID_OPEN)
   226         self.Bind(wx.EVT_MENU, self.OnOpenProjectMenu,
   214         self.Bind(wx.EVT_MENU, self.OnSaveProjectMenu, id=wx.ID_SAVE)
   227               id=ID_BEREMIZFILEMENUITEMS1)
   215         self.Bind(wx.EVT_MENU, self.OnCloseProjectMenu, id=wx.ID_CLOSE)
   228         self.Bind(wx.EVT_MENU, self.OnSaveProjectMenu,
   216         self.Bind(wx.EVT_MENU, self.OnPropertiesMenu, id=wx.ID_PROPERTIES)
   229               id=ID_BEREMIZFILEMENUITEMS2)
   217         self.Bind(wx.EVT_MENU, self.OnQuitMenu, id=wx.ID_EXIT)
   230         self.Bind(wx.EVT_MENU, self.OnCloseProjectMenu,
       
   231               id=ID_BEREMIZFILEMENUITEMS3)
       
   232         self.Bind(wx.EVT_MENU, self.OnPropertiesMenu,
       
   233               id=ID_BEREMIZFILEMENUITEMS5)
       
   234         self.Bind(wx.EVT_MENU, self.OnQuitMenu,
       
   235               id=ID_BEREMIZFILEMENUITEMS7)
       
   236         
   218         
   237     def _init_coll_EditMenu_Items(self, parent):
   219     def _init_coll_EditMenu_Items(self, parent):
   238         parent.Append(help='', id=ID_BEREMIZEDITMENUITEMS0,
   220         parent.Append(help='', id=wx.ID_EDIT,
   239               kind=wx.ITEM_NORMAL, text=u'Edit PLC\tCTRL+R')
   221               kind=wx.ITEM_NORMAL, text=u'Edit PLC\tCTRL+R')
   240         parent.AppendSeparator()
   222         parent.AppendSeparator()
   241         parent.Append(help='', id=ID_BEREMIZEDITMENUITEMS2,
   223         parent.Append(help='', id=wx.ID_ADD,
   242               kind=wx.ITEM_NORMAL, text=u'Add Plugin')
   224               kind=wx.ITEM_NORMAL, text=u'Add Plugin')
   243         parent.Append(help='', id=ID_BEREMIZEDITMENUITEMS3,
   225         parent.Append(help='', id=wx.ID_DELETE,
   244               kind=wx.ITEM_NORMAL, text=u'Delete Plugin')
   226               kind=wx.ITEM_NORMAL, text=u'Delete Plugin')
   245         self.Bind(wx.EVT_MENU, self.OnEditPLCMenu,
   227         self.Bind(wx.EVT_MENU, self.OnEditPLCMenu, id=wx.ID_EDIT)
   246               id=ID_BEREMIZEDITMENUITEMS0)
   228         self.Bind(wx.EVT_MENU, self.OnAddMenu, id=wx.ID_ADD)
   247         self.Bind(wx.EVT_MENU, self.OnAddMenu,
   229         self.Bind(wx.EVT_MENU, self.OnDeleteMenu, id=wx.ID_DELETE)
   248               id=ID_BEREMIZEDITMENUITEMS2)
       
   249         self.Bind(wx.EVT_MENU, self.OnDeleteMenu,
       
   250               id=ID_BEREMIZEDITMENUITEMS3)
       
   251     
   230     
   252     def _init_coll_RunMenu_Items(self, parent):
   231     def _init_coll_RunMenu_Items(self, parent):
   253         parent.Append(help='', id=ID_BEREMIZRUNMENUITEMS0,
   232         parent.Append(help='', id=ID_BEREMIZRUNMENUBUILD,
   254               kind=wx.ITEM_NORMAL, text=u'Build\tCTRL+R')
   233               kind=wx.ITEM_NORMAL, text=u'Build\tCTRL+R')
   255         parent.AppendSeparator()
   234         parent.AppendSeparator()
   256         parent.Append(help='', id=ID_BEREMIZRUNMENUITEMS2,
   235         parent.Append(help='', id=ID_BEREMIZRUNMENUSIMULATE,
   257               kind=wx.ITEM_NORMAL, text=u'Simulate')
   236               kind=wx.ITEM_NORMAL, text=u'Simulate')
   258         parent.Append(help='', id=ID_BEREMIZRUNMENUITEMS3,
   237         parent.Append(help='', id=ID_BEREMIZRUNMENURUN,
   259               kind=wx.ITEM_NORMAL, text=u'Run')
   238               kind=wx.ITEM_NORMAL, text=u'Run')
   260         parent.AppendSeparator()
   239         parent.AppendSeparator()
   261         parent.Append(help='', id=ID_BEREMIZRUNMENUITEMS5,
   240         parent.Append(help='', id=ID_BEREMIZRUNMENUSAVELOG,
   262               kind=wx.ITEM_NORMAL, text=u'Save Log')
   241               kind=wx.ITEM_NORMAL, text=u'Save Log')
   263         self.Bind(wx.EVT_MENU, self.OnBuildMenu,
   242         self.Bind(wx.EVT_MENU, self.OnBuildMenu,
   264               id=ID_BEREMIZRUNMENUITEMS0)
   243               id=ID_BEREMIZRUNMENUBUILD)
   265         self.Bind(wx.EVT_MENU, self.OnSimulateMenu,
   244         self.Bind(wx.EVT_MENU, self.OnSimulateMenu,
   266               id=ID_BEREMIZRUNMENUITEMS2)
   245               id=ID_BEREMIZRUNMENUSIMULATE)
   267         self.Bind(wx.EVT_MENU, self.OnRunMenu,
   246         self.Bind(wx.EVT_MENU, self.OnRunMenu,
   268               id=ID_BEREMIZRUNMENUITEMS3)
   247               id=ID_BEREMIZRUNMENURUN)
   269         self.Bind(wx.EVT_MENU, self.OnSaveLogMenu,
   248         self.Bind(wx.EVT_MENU, self.OnSaveLogMenu,
   270               id=ID_BEREMIZRUNMENUITEMS5)
   249               id=ID_BEREMIZRUNMENUSAVELOG)
   271     
   250     
   272     def _init_coll_HelpMenu_Items(self, parent):
   251     def _init_coll_HelpMenu_Items(self, parent):
   273         parent.Append(help='', id=ID_BEREMIZHELPMENUITEMS0,
   252         parent.Append(help='', id=wx.ID_HELP,
   274               kind=wx.ITEM_NORMAL, text=u'Beremiz\tF1')
   253               kind=wx.ITEM_NORMAL, text=u'Beremiz\tF1')
   275         parent.Append(help='', id=ID_BEREMIZHELPMENUITEMS1,
   254         parent.Append(help='', id=wx.ID_ABOUT,
   276               kind=wx.ITEM_NORMAL, text=u'About')
   255               kind=wx.ITEM_NORMAL, text=u'About')
   277         self.Bind(wx.EVT_MENU, self.OnBeremizMenu,
   256         self.Bind(wx.EVT_MENU, self.OnBeremizMenu, id=wx.ID_HELP)
   278               id=ID_BEREMIZHELPMENUITEMS0)
   257         self.Bind(wx.EVT_MENU, self.OnAboutMenu, id=wx.ID_ABOUT)
   279         self.Bind(wx.EVT_MENU, self.OnAboutMenu,
   258     
   280               id=ID_BEREMIZHELPMENUITEMS1)
   259     def _init_coll_MenuBar_Menus(self, parent):
   281     
       
   282     def _init_coll_menuBar1_Menus(self, parent):
       
   283         parent.Append(menu=self.FileMenu, title=u'File')
   260         parent.Append(menu=self.FileMenu, title=u'File')
   284         #parent.Append(menu=self.EditMenu, title=u'Edit')
   261         #parent.Append(menu=self.EditMenu, title=u'Edit')
   285         #parent.Append(menu=self.RunMenu, title=u'Run')
   262         #parent.Append(menu=self.RunMenu, title=u'Run')
   286         parent.Append(menu=self.HelpMenu, title=u'Help')
   263         parent.Append(menu=self.HelpMenu, title=u'Help')
   287     
   264     
   288     def _init_utils(self):
   265     def _init_utils(self):
   289         self.menuBar1 = wx.MenuBar()
   266         self.MenuBar = wx.MenuBar()
   290         self.FileMenu = wx.Menu(title=u'')
   267         self.FileMenu = wx.Menu(title=u'')
   291         #self.EditMenu = wx.Menu(title=u'')
   268         #self.EditMenu = wx.Menu(title=u'')
   292         #self.RunMenu = wx.Menu(title=u'')
   269         #self.RunMenu = wx.Menu(title=u'')
   293         self.HelpMenu = wx.Menu(title=u'')
   270         self.HelpMenu = wx.Menu(title=u'')
   294         
   271         
   295         self._init_coll_menuBar1_Menus(self.menuBar1)
   272         self._init_coll_MenuBar_Menus(self.MenuBar)
   296         self._init_coll_FileMenu_Items(self.FileMenu)
   273         self._init_coll_FileMenu_Items(self.FileMenu)
   297         #self._init_coll_EditMenu_Items(self.EditMenu)
   274         #self._init_coll_EditMenu_Items(self.EditMenu)
   298         #self._init_coll_RunMenu_Items(self.RunMenu)
   275         #self._init_coll_RunMenu_Items(self.RunMenu)
   299         self._init_coll_HelpMenu_Items(self.HelpMenu)
   276         self._init_coll_HelpMenu_Items(self.HelpMenu)
   300     
   277     
   326         wx.Frame.__init__(self, id=ID_BEREMIZ, name=u'Beremiz',
   303         wx.Frame.__init__(self, id=ID_BEREMIZ, name=u'Beremiz',
   327               parent=prnt, pos=wx.Point(0, 0), size=wx.Size(1000, 600),
   304               parent=prnt, pos=wx.Point(0, 0), size=wx.Size(1000, 600),
   328               style=wx.DEFAULT_FRAME_STYLE|wx.CLIP_CHILDREN, title=u'Beremiz')
   305               style=wx.DEFAULT_FRAME_STYLE|wx.CLIP_CHILDREN, title=u'Beremiz')
   329         self._init_utils()
   306         self._init_utils()
   330         self.SetClientSize(wx.Size(1000, 600))
   307         self.SetClientSize(wx.Size(1000, 600))
   331         self.SetMenuBar(self.menuBar1)
   308         self.SetMenuBar(self.MenuBar)
   332         self.Bind(wx.EVT_ACTIVATE, self.OnFrameActivated)
   309         self.Bind(wx.EVT_ACTIVATE, self.OnFrameActivated)
   333         self.Bind(wx.EVT_CLOSE, self.OnCloseFrame)
   310         self.Bind(wx.EVT_CLOSE, self.OnCloseFrame)
   334 
   311 
   335         self.Bind(wx.EVT_MENU, self.OnOpenWidgetInspector, id=ID_BEREMIZINSPECTOR)
   312         self.Bind(wx.EVT_MENU, self.OnOpenWidgetInspector, id=ID_BEREMIZINSPECTOR)
   336         accel = wx.AcceleratorTable([wx.AcceleratorEntry(wx.ACCEL_CTRL, wx.WXK_F12, ID_BEREMIZINSPECTOR)])
   313         accel = wx.AcceleratorTable([wx.AcceleratorEntry(wx.ACCEL_CTRL, wx.WXK_F12, ID_BEREMIZINSPECTOR)])
   439     def OnFrameActivated(self, event):
   416     def OnFrameActivated(self, event):
   440         if not event.GetActive():
   417         if not event.GetActive():
   441             self.PluginRoot.RefreshPluginsBlockLists()
   418             self.PluginRoot.RefreshPluginsBlockLists()
   442     
   419     
   443     def RefreshMainMenu(self):
   420     def RefreshMainMenu(self):
   444         if self.menuBar1:
   421         if self.MenuBar:
   445             if self.PluginRoot.HasProjectOpened():
   422             if self.PluginRoot.HasProjectOpened():
   446 ##                self.menuBar1.EnableTop(1, True)
   423 ##                self.MenuBar.EnableTop(1, True)
   447 ##                self.menuBar1.EnableTop(2, True)
   424 ##                self.MenuBar.EnableTop(2, True)
   448                 self.FileMenu.Enable(ID_BEREMIZFILEMENUITEMS2, True)
   425                 self.FileMenu.Enable(wx.ID_SAVE, True)
   449                 self.FileMenu.Enable(ID_BEREMIZFILEMENUITEMS3, True)
   426                 self.FileMenu.Enable(wx.ID_CLOSE, True)
   450                 self.FileMenu.Enable(ID_BEREMIZFILEMENUITEMS5, True)
   427                 self.FileMenu.Enable(wx.ID_PROPERTIES, True)
   451             else:
   428             else:
   452 ##                self.menuBar1.EnableTop(1, False)
   429 ##                self.MenuBar.EnableTop(1, False)
   453 ##                self.menuBar1.EnableTop(2, False)
   430 ##                self.MenuBar.EnableTop(2, False)
   454                 self.FileMenu.Enable(ID_BEREMIZFILEMENUITEMS2, False)
   431                 self.FileMenu.Enable(wx.ID_SAVE, False)
   455                 self.FileMenu.Enable(ID_BEREMIZFILEMENUITEMS3, False)
   432                 self.FileMenu.Enable(wx.ID_CLOSE, False)
   456                 self.FileMenu.Enable(ID_BEREMIZFILEMENUITEMS5, False)
   433                 self.FileMenu.Enable(wx.ID_PROPERTIES, False)
   457 
   434 
   458     def RefreshScrollBars(self):
   435     def RefreshScrollBars(self):
   459         xstart, ystart = self.PLCConfig.GetViewStart()
   436         xstart, ystart = self.PLCConfig.GetViewStart()
   460         window_size = self.PLCConfig.GetClientSize()
   437         window_size = self.PLCConfig.GetClientSize()
   461         sizer = self.PLCConfig.GetSizer()
   438         sizer = self.PLCConfig.GetSizer()