Changeset 111
- Timestamp:
- 01/05/08 16:11:39
- Files:
-
- inapp/trunk/src/jambu/ActionBrowser.py (modified) (1 diff)
- inapp/trunk/src/jambu/ActionModel.py (modified) (2 diffs)
- inapp/trunk/src/jambu/ActionTree.py (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
inapp/trunk/src/jambu/ActionBrowser.py
r110 r111 65 65 self._buildUI() 66 66 self.bl = None 67 if getattr(self, '_show_tree_view', True): 68 self.show_all() 67 self.show_all() 68 if not getattr(self, '_show_tree_view', True): 69 self.iconify() 69 70 self.is_scanning = False 70 71 if getattr(self, '_scan', True): inapp/trunk/src/jambu/ActionModel.py
r109 r111 37 37 if child.is_interactive or child.is_group: 38 38 items.append(AccFactory(child)) 39 print '%s %s%s ' % (child._acc, ('i' if child.is_interactive else ''),40 ('g' if child.is_group else ''))39 # print '%s %s%s ' % (child._acc, ('i' if child.is_interactive else ''), 40 # ('g' if child.is_group else '')) 41 41 elif child.hasStates(pyatspi.STATE_SHOWING): 42 42 self._findInterestingChildren(child, items) … … 146 146 def popToPath(self, path): 147 147 for i in xrange(1, len(path)): 148 if not self[path[:i]][self.COL_FILLED]: 149 self.popLevel(self.get_iter(path[:i])) 150 148 try: 149 if not self[path[:i]][self.COL_FILLED]: 150 self.popLevel(self.get_iter(path[:i])) 151 except IndexError: 152 return 153 151 154 def makeExpandable(self, iter): 152 155 # add dummy child is expandable inapp/trunk/src/jambu/ActionTree.py
r109 r111 142 142 def _onChildAddTimeout(self): 143 143 self.adding_children = False 144 self._onChildChanged() 144 145 return False 145 146 … … 160 161 class WindowActivateMessage(MyMessage): 161 162 handler = self._onWindowActivate 162 class ChildChangedMessage(MyMessage):163 handler = self._onChildChanged164 163 165 164 s = formatEvent(event) … … 167 166 168 167 if event.type == 'focus:' and \ 169 not (source_acc.hasRoleIn(pyatspi.ROLE_MENU, pyatspi.ROLE_MENU_ITEM, 170 pyatspi.ROLE_RADIO_MENU_ITEM, pyatspi.ROLE_CHECK_MENU_ITEM)): 168 not (AccDecorator(source_acc.parent).hasRoleIn(pyatspi.ROLE_MENU, pyatspi.ROLE_MENU_ITEM)): 169 # not (source_acc.hasRoleIn(pyatspi.ROLE_MENU, pyatspi.ROLE_MENU_ITEM, 170 # pyatspi.ROLE_RADIO_MENU_ITEM, pyatspi.ROLE_CHECK_MENU_ITEM)): 171 171 PrintMessage(s).send() 172 172 HideMenuMessage(True).send() … … 200 200 # ShowMenuMessage(event).send() 201 201 202 elif event.type == 'object:children-changed:remove': 203 PrintMessage(s).send() 204 model = self.get_model() 205 path = model.getAccPath(source_acc) 206 if path is not None: 207 ChildChangedMessage(path).send() 208 elif event.type == 'object:children-changed:add': 202 elif event.type in ('object:children-changed:remove', 203 'object:children-changed:add', 204 'object:children-changed:remove:system', 205 'object:children-changed:add:system', 206 ): 209 207 if not self.adding_children: 210 # hack to ignore bunch of adds211 208 self.adding_children = True 212 209 PrintMessage(s).send() 213 ChildChangedMessage(None).send()214 210 self.id = gobject.timeout_add(500, self._onChildAddTimeout) 211 return 215 212 216 213 elif event.type in ('object:visible-data-changed'): … … 222 219 223 220 elif event.source.getRole() == pyatspi.ROLE_MENU: 224 if event.type in ('object:state-changed:selected', 'object:state-changed:focused'): 221 if event.type in ('object:state-changed:selected', 222 'object:state-changed:focused', 223 'object:state-changed:visible'): 225 224 PrintMessage(s).send() 226 225 selected = bool(event.detail1) 227 if selected: 226 if selected \ 227 and (event.type <> 'object:state-changed:visible' \ 228 or (event.detail1 == 1 \ 229 and (event.source.parent.getRole() == pyatspi.ROLE_COMBO_BOX or \ 230 event.source.parent.getRole() == pyatspi.ROLE_PUSH_BUTTON or \ 231 event.source.parent.getRole() == pyatspi.ROLE_FRAME))): 228 232 ShowMenuMessage(event).send() 229 233 else: 230 234 HideMenuMessage().send() 231 elif event.type == 'object:state-changed:visible' \232 and event.detail1 == 1 \233 and (event.source.parent.getRole() == pyatspi.ROLE_COMBO_BOX or \234 event.source.parent.getRole() == pyatspi.ROLE_PUSH_BUTTON):235 PrintMessage(s).send()236 ShowMenuMessage(event).send()237 elif event.type == 'object:state-changed:visible' \238 and event.detail1 == 0:239 PrintMessage(s).send()240 HideMenuMessage().send()241 235 242 236 elif event.source.getRole() == pyatspi.ROLE_WINDOW: … … 255 249 self.next() 256 250 257 def _onChildChanged(self , path):251 def _onChildChanged(self): 258 252 #a child of a acc in the model has changed 259 253 print 'ChildChange' … … 271 265 if acc.hasRoleIn(pyatspi.ROLE_PUSH_BUTTON, pyatspi.ROLE_MENU, pyatspi.ROLE_COMBO_BOX): 272 266 model.makeExpandable(iter) 273 if acc.hasRoleIn(pyatspi.ROLE_PUSH_BUTTON ):274 #and acc.hasAttribute('haspopup', 'true'): 267 if acc.hasRoleIn(pyatspi.ROLE_PUSH_BUTTON, pyatspi.ROLE_IMAGE): 268 #and acc.hasAttribute('haspopup', 'true'): parent == AUTCOMPLETE? 275 269 model.popLevel(iter, event.source) 276 270 else: … … 292 286 pyatspi.ROLE_MENU, 293 287 pyatspi.ROLE_COMBO_BOX, 294 pyatspi.ROLE_PUSH_BUTTON) 288 pyatspi.ROLE_PUSH_BUTTON, 289 pyatspi.ROLE_IMAGE) 295 290 if next_menu_iter is None: 296 291 break
