Changeset 173
- Timestamp:
- 04/28/2005 03:12:37 AM (4 years ago)
- Files:
-
- 1 modified
-
trunk/examples/petliwm.py (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/examples/petliwm.py
r172 r173 72 72 73 73 def __client_init__(self): 74 self.traceim_unseen = None 75 self.traceim_message = None 76 self.traceim_is_unseen = 0 77 74 78 for enable, unseen, message in self.traceim_clients: 75 79 if enable(self): 80 wmanager.debug('traceim', 'Enabling IM tracing for %s' % self.get_title()) 76 81 self.traceim_unseen = unseen 77 82 self.traceim_message = message … … 79 84 self.dispatch.add_handler(wmevents.ClientIconified, self.traceim_handle_iconified) 80 85 self.dispatch.add_handler(wmevents.ClientDeiconified, self.traceim_handle_iconified) 86 self.traceim_update() 81 87 break 82 88 89 def __client_del__(self): 90 if self.traceim_is_unseen: 91 self.wm.traceim_remove_message(self) 83 92 84 93 def traceim_handle_property(self, evt): … … 91 100 def traceim_update(self): 92 101 if self.traceim_unseen(self): 93 self.wm.traceim_add_message(self.traceim_message) 102 if not self.traceim_is_unseen: 103 wmanager.debug('traceim', 'Unseen IM for %s' % self.get_title()) 104 self.traceim_is_unseen = 1 105 self.wm.traceim_add_message(self, self.traceim_message) 94 106 else: 95 self.wm.traceim_remove_message(self.traceim_message) 107 if self.traceim_is_unseen: 108 wmanager.debug('traceim', 'No longer unseen IM for %s' % self.get_title()) 109 self.traceim_is_unseen = 0 110 self.wm.traceim_remove_message(self) 96 111 97 112 … … 100 115 mw_traceim_justification = modewindow.LEFT 101 116 102 def __wm_ init__(self):103 self.mw_traceim_ messages = []117 def __wm_screen_init__(self): 118 self.mw_traceim_unseen_clients = {} 104 119 self.mw_traceim_message = modewindow.Message(self.mw_traceim_position, 105 120 self.mw_traceim_justification) 121 122 def __wm_init__(self): 106 123 for s in self.screens: 107 124 s.modewindow_add_message(self.mw_traceim_message) 108 125 109 def traceim_add_message(self, message): 110 if message not in self.mw_traceim_messages: 111 self.mw_traceim_messages.append(message) 112 self.mw_traceim_message.set_text(' '.join(self.mw_traceim_messages)) 113 114 def traceim_remove_message(self, message): 126 def traceim_add_message(self, client, message): 127 self.mw_traceim_unseen_clients[client] = message 128 self.mw_traceim_message.set_text(' '.join(self.mw_traceim_unseen_clients.values())) 129 130 def traceim_remove_message(self, client): 115 131 try: 116 self.mw_traceim_messages.remove(message)117 except ValueError:132 del self.mw_traceim_unseen_clients[client] 133 except KeyError: 118 134 return 119 135 120 self.mw_traceim_message.set_text(' '.join(self.mw_traceim_ messages))136 self.mw_traceim_message.set_text(' '.join(self.mw_traceim_unseen_clients.values())) 121 137 122 138 … … 141 157 142 158 traceim_clients = [ 143 ( And(name('Emacs'), re_title('KOM')), # only KOM clientEmacs159 (name('Emacs'), # KOM runs in Emacs 144 160 And(iconified, re_title('Olästa')), # only when iconified and unread 145 161 'Olästa')
