# HG changeset patch # User Laurent Bessard # Date 1364254552 -3600 # Node ID d19af9341d281483cf070efc6fcfea8db639327b # Parent cbab4c1635bd94df48898ab0ad0c1d5ff3435ca5 Added support for StatusBar diff -r cbab4c1635bd -r d19af9341d28 Beremiz.py --- a/Beremiz.py Tue Mar 26 00:03:57 2013 +0100 +++ b/Beremiz.py Tue Mar 26 00:35:52 2013 +0100 @@ -364,6 +364,15 @@ kind=wx.ITEM_NORMAL, text=_(u'About')) self.Bind(wx.EVT_MENU, self.OnAboutMenu, id=wx.ID_ABOUT) + def _init_coll_ConnectionStatusBar_Fields(self, parent): + parent.SetFieldsCount(3) + + parent.SetStatusText(number=0, text='') + parent.SetStatusText(number=1, text='') + parent.SetStatusText(number=2, text='') + + parent.SetStatusWidths([-1, 300, 200]) + def _init_ctrls(self, prnt): IDEFrame._init_ctrls(self, prnt) @@ -429,6 +438,10 @@ self.AUIManager.Update() + self.ConnectionStatusBar = wx.StatusBar(self, style=wx.ST_SIZEGRIP) + self._init_coll_ConnectionStatusBar_Fields(self.ConnectionStatusBar) + self.SetStatusBar(self.ConnectionStatusBar) + def __init__(self, parent, projectOpen=None, buildpath=None, ctr=None, debug=True): IDEFrame.__init__(self, parent, debug) self.Log = LogPseudoFile(self.LogConsole,self.SelectTab) @@ -801,6 +814,10 @@ def GetConfigEntry(self, entry_name, default): return cPickle.loads(str(self.Config.Read(entry_name, cPickle.dumps(default)))) + def ResetConnectionStatusBar(self): + for field in xrange(self.ConnectionStatusBar.GetFieldsCount()): + self.ConnectionStatusBar.SetStatusText('', field) + def ResetView(self): IDEFrame.ResetView(self) self.ConfNodeInfos = {} @@ -810,6 +827,7 @@ self.Log.flush() if self.EnableDebug: self.DebugVariablePanel.SetDataProducer(None) + self.ResetConnectionStatusBar() def RefreshConfigRecentProjects(self, projectpath): try: diff -r cbab4c1635bd -r d19af9341d28 ProjectController.py --- a/ProjectController.py Tue Mar 26 00:03:57 2013 +0100 +++ b/ProjectController.py Tue Mar 26 00:35:52 2013 +0100 @@ -313,7 +313,9 @@ if os.path.isfile(self._getIECrawcodepath()): self.ShowMethod("_showIECcode", True) - + + self.UpdateMethodsFromPLCStatus() + return None def RecursiveConfNodeInfos(self, confnode): @@ -1109,13 +1111,17 @@ ("_Disconnect", False)], }.get(status,[]): self.ShowMethod(*args) - {"Broken": self.logger.write_error, - None: lambda x: None}.get( - status, self.logger.write)(_("PLC state is \"%s\"\n")%_(status)) self.previous_plcstate = status if self.AppFrame is not None: self.AppFrame.RefreshStatusToolBar() - + if status == "Disconnected": + self.AppFrame.ConnectionStatusBar.SetStatusText(_(status), 1) + self.AppFrame.ConnectionStatusBar.SetStatusText('', 2) + else: + self.AppFrame.ConnectionStatusBar.SetStatusText( + _("Connected to URI: %s") % self.BeremizRoot.getURI_location().strip(), 1) + self.AppFrame.ConnectionStatusBar.SetStatusText(status, 2) + def PullPLCStatusProc(self, event): self.UpdateMethodsFromPLCStatus()