Beremiz.py
changeset 875 a8952b79caec
parent 843 7e6fb43804a8
child 881 68ac754a5a72
equal deleted inserted replaced
874:8b24e9312f18 875:a8952b79caec
   209                 self.LastRefreshTimer.cancel()
   209                 self.LastRefreshTimer.cancel()
   210                 self.LastRefreshTimer=None
   210                 self.LastRefreshTimer=None
   211             if current_time - self.LastRefreshTime > REFRESH_PERIOD and self.RefreshLock.acquire(False):
   211             if current_time - self.LastRefreshTime > REFRESH_PERIOD and self.RefreshLock.acquire(False):
   212                 self._should_write()
   212                 self._should_write()
   213             else:
   213             else:
   214                 self.LastRefreshTimer = Timer(REFRESH_PERIOD, self._should_write)
   214                 self.LastRefreshTimer = Timer(REFRESH_PERIOD, self._timer_expired)
   215                 self.LastRefreshTimer.start()
   215                 self.LastRefreshTimer.start()
       
   216 
       
   217     def _timer_expired(self):
       
   218         if self.RefreshLock.acquire(False):
       
   219             self._should_write()
       
   220         else:
       
   221             self.LastRefreshTimer = Timer(REFRESH_PERIOD, self._timer_expired)
       
   222             self.LastRefreshTimer.start()
   216 
   223 
   217     def _should_write(self):
   224     def _should_write(self):
   218         wx.CallAfter(self._write)
   225         wx.CallAfter(self._write)
   219         if MainThread == currentThread().ident:
   226         if MainThread == currentThread().ident:
   220             app = wx.GetApp()
   227             app = wx.GetApp()
   223                     app.Yield()
   230                     app.Yield()
   224                     self.YieldLock.release()
   231                     self.YieldLock.release()
   225 
   232 
   226     def _write(self):
   233     def _write(self):
   227         if self.output :
   234         if self.output :
   228             self.output.Freeze(); 
   235             self.output.Freeze()
   229             self.lock.acquire()
   236             self.lock.acquire()
   230             for s, style in self.stack:
   237             for s, style in self.stack:
   231                 if style is None : style=self.black_white
   238                 if style is None : style=self.black_white
   232                 if self.default_style != style: 
   239                 if self.default_style != style: 
   233                     self.output.SetDefaultStyle(style)
   240                     self.output.SetDefaultStyle(style)
   245                 pass
   252                 pass
   246             newtime = time.time()
   253             newtime = time.time()
   247             if newtime - self.rising_timer > 1:
   254             if newtime - self.rising_timer > 1:
   248                 self.risecall()
   255                 self.risecall()
   249             self.rising_timer = newtime
   256             self.rising_timer = newtime
   250 
   257         
   251     def write_warning(self, s):
   258     def write_warning(self, s):
   252         self.write(s,self.red_white)
   259         self.write(s,self.red_white)
   253 
   260 
   254     def write_error(self, s):
   261     def write_error(self, s):
   255         self.write(s,self.red_yellow)
   262         self.write(s,self.red_yellow)