home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2009 June / maximum-cd-2009-06.iso / DiscContents / digsby_setup.exe / lib / gui / app / eventStack.pyo (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2009-02-26  |  3.5 KB  |  126 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.5)
  3.  
  4. import wx
  5.  
  6. class AppEventManager:
  7.     ui_events = [
  8.         wx.ID_NEW,
  9.         wx.ID_OPEN,
  10.         wx.ID_CLOSE_ALL,
  11.         wx.ID_CLOSE,
  12.         wx.ID_REVERT,
  13.         wx.ID_SAVE,
  14.         wx.ID_SAVEAS,
  15.         wx.ID_UNDO,
  16.         wx.ID_REDO,
  17.         wx.ID_PRINT,
  18.         wx.ID_PRINT_SETUP,
  19.         wx.ID_PREVIEW,
  20.         wx.ID_EXIT]
  21.     
  22.     def __init__(self):
  23.         pass
  24.  
  25.     
  26.     def RegisterEvents(self):
  27.         app = wx.GetApp()
  28.         for eventID in self.ui_events:
  29.             app.AddHandlerForID(eventID, self.ProcessEvent)
  30.             app.AddUIHandlerForID(eventID, self.ProcessUpdateUIEvent)
  31.         
  32.  
  33.  
  34.  
  35. class AppEventHandlerMixin:
  36.     
  37.     def __init__(self):
  38.         self.handlers = { }
  39.         self.uihandlers = { }
  40.         self.pushed_handlers = { }
  41.         self.pushed_uihandlers = { }
  42.  
  43.     
  44.     def AddHandlerForIDs(self, eventID_list, handlerFunc):
  45.         for eventID in eventID_list:
  46.             self.AddHandlerForID(eventID, handlerFunc)
  47.         
  48.  
  49.     
  50.     def AddHandlerForID(self, eventID, handlerFunc):
  51.         self.Bind(wx.EVT_MENU, self.HandleEvent, id = eventID)
  52.         if eventID in self.handlers:
  53.             self.pushed_handlers[eventID] = self.handlers[eventID]
  54.         
  55.         self.handlers[eventID] = handlerFunc
  56.  
  57.     
  58.     def AddUIHandlerForID(self, eventID, handlerFunc):
  59.         self.Bind(wx.EVT_UPDATE_UI, self.HandleUpdateUIEvent, id = eventID)
  60.         if eventID in self.uihandlers:
  61.             self.pushed_uihandlers[eventID] = self.uihandlers[eventID]
  62.         
  63.         self.uihandlers[eventID] = handlerFunc
  64.  
  65.     
  66.     def RemoveHandlerForIDs(self, eventID_list):
  67.         for eventID in eventID_list:
  68.             self.RemoveHandlerForID(eventID)
  69.         
  70.  
  71.     
  72.     def RemoveHandlerForID(self, eventID):
  73.         self.Unbind(wx.EVT_MENU, id = eventID)
  74.         self.handlers[eventID] = None
  75.         if eventID in self.pushed_handlers:
  76.             self.handlers[eventID] = self.pushed_handlers[eventID]
  77.         
  78.  
  79.     
  80.     def RemoveUIHandlerForID(self, eventID):
  81.         self.Unbind(wx.EVT_UPDATE_UI, id = eventID)
  82.         self.uihandlers[eventID] = None
  83.         if eventID in self.pushed_uihandlers:
  84.             self.uihandlers[eventID] = self.pushed_uihandlers[eventID]
  85.         
  86.  
  87.     
  88.     def HandleEvent(self, event):
  89.         e_id = event.GetId()
  90.         if e_id in self.handlers:
  91.             handler = self.handlers[e_id]
  92.             
  93.             try:
  94.                 if handler:
  95.                     return handler(event)
  96.             except wx.PyDeadObjectError:
  97.                 self.RemoveHandlerForID(e_id)
  98.             except:
  99.                 None<EXCEPTION MATCH>wx.PyDeadObjectError
  100.             
  101.  
  102.         None<EXCEPTION MATCH>wx.PyDeadObjectError
  103.         event.Skip()
  104.         return False
  105.  
  106.     
  107.     def HandleUpdateUIEvent(self, event):
  108.         e_id = event.GetId()
  109.         if e_id in self.uihandlers:
  110.             handler = self.uihandlers[e_id]
  111.             
  112.             try:
  113.                 if handler:
  114.                     return handler(event)
  115.             except wx.PyDeadObjectError:
  116.                 self.RemoveUIHandlerForID(e_id)
  117.             except:
  118.                 None<EXCEPTION MATCH>wx.PyDeadObjectError
  119.             
  120.  
  121.         None<EXCEPTION MATCH>wx.PyDeadObjectError
  122.         event.Skip()
  123.         return False
  124.  
  125.  
  126.