Changeset 84
- Timestamp:
- 12/12/07 15:14:43
- Files:
-
- action_groups/trunk/ActionBrowser.py (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
action_groups/trunk/ActionBrowser.py
r83 r84 55 55 self._buildUI() 56 56 self.is_scanning = False 57 self.bl = None 57 58 58 59 def _buildUI(self): … … 144 145 return 145 146 extents = ci.getExtents(pyatspi.DESKTOP_COORDS) 146 Blinker(extents) 147 self.blink(extents) 148 149 def blink(self, extents): 150 if self.bl: 151 self.bl.stop() 152 del self.bl 153 self.bl = None 154 self.bl = Blinker(extents) 155 self.bl.start() 147 156 148 157 def _onSwitchDown(self, widget, device, switch): … … 154 163 class Blinker(object): 155 164 max_blinks = -1 156 blink_on_time = 80157 blink_off_time = 120165 blink_on_time = 200 166 blink_off_time = 450 158 167 def __init__(self, extents): 159 168 self.extents = extents 160 169 display = gtk.gdk.display_get_default() 161 s creen = display.get_default_screen()162 self.root = s creen.get_root_window()170 self.screen = display.get_default_screen() 171 self.root = self.screen.get_root_window() 163 172 self.gc = self.root.new_gc() 164 173 self.gc.set_subwindow(gtk.gdk.INCLUDE_INFERIORS) … … 166 175 self.gc.set_line_attributes(3, gtk.gdk.LINE_DOUBLE_DASH, gtk.gdk.CAP_BUTT, 167 176 gtk.gdk.JOIN_MITER) 168 self.inv = gtk.Invisible()169 self.inv.set_screen(screen)170 177 171 #self._drawRectangle()172 178 self.blinks = 0 173 gobject.timeout_add(self.blink_time, self._drawRectangle) 174 175 def _drawRectangle(self): 176 ''' 177 Draw a rectangle on the screen using L{extents} for position and size. 178 ''' 179 # draw a blinking rectangle 180 if self.blinks == 0: 181 self.inv.show() 182 #self.inv.grab_add() 179 180 def start(self): 181 self.stopping = False 182 self.blinks = 0 183 self._drawRectangle() 184 185 def stop(self): 186 self.stopping = True 187 if self.blinks % 2 == 1: 188 self.draw() 189 self._drawRectangle() 190 191 def draw(self): 183 192 self.root.draw_rectangle(self.gc, False, 184 193 self.extents.x, … … 186 195 self.extents.width, 187 196 self.extents.height) 197 198 def _drawRectangle(self): 199 ''' 200 Draw a rectangle on the screen using L{extents} for position and size. 201 ''' 202 if self.stopping: 203 return False 204 205 # draw a blinking rectangle 206 if self.blinks % 2 == 0: 207 self.inv = gtk.Invisible() 208 self.inv.set_screen(self.screen) 209 self.inv.show() 210 #self.inv.grab_add() 211 self.draw() 212 if self.blinks % 2 == 1: 213 #self.inv.grab_remove() 214 self.inv.destroy() 188 215 self.blinks += 1 189 216 if self.max_blinks <> -1 and self.blinks >= self.max_blinks: 190 #self.inv.grab_remove()217 self.inv.grab_remove() 191 218 self.inv.destroy() 192 219 return False 193 blink_time = (self.blink_on_time if self.blinks % 2 else self.blink_off_time)220 blink_time = (self.blink_on_time if self.blinks % 2 == 1 else self.blink_off_time) 194 221 gobject.timeout_add(blink_time, self._drawRectangle) 195 return True222 return False
