Changeset 84

Show
Ignore:
Timestamp:
12/12/07 15:14:43
Author:
slee
Message:

blinker changes

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • action_groups/trunk/ActionBrowser.py

    r83 r84  
    5555    self._buildUI() 
    5656    self.is_scanning = False 
     57    self.bl = None 
    5758 
    5859  def _buildUI(self): 
     
    144145        return 
    145146      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() 
    147156 
    148157  def _onSwitchDown(self, widget, device, switch): 
     
    154163class Blinker(object): 
    155164  max_blinks = -1 
    156   blink_on_time = 8
    157   blink_off_time = 12
     165  blink_on_time = 20
     166  blink_off_time = 45
    158167  def __init__(self, extents): 
    159168    self.extents = extents 
    160169    display = gtk.gdk.display_get_default() 
    161     screen = display.get_default_screen() 
    162     self.root = screen.get_root_window() 
     170    self.screen = display.get_default_screen() 
     171    self.root = self.screen.get_root_window() 
    163172    self.gc = self.root.new_gc() 
    164173    self.gc.set_subwindow(gtk.gdk.INCLUDE_INFERIORS) 
     
    166175    self.gc.set_line_attributes(3, gtk.gdk.LINE_DOUBLE_DASH, gtk.gdk.CAP_BUTT,  
    167176                                gtk.gdk.JOIN_MITER) 
    168     self.inv = gtk.Invisible() 
    169     self.inv.set_screen(screen) 
    170177  
    171     #self._drawRectangle() 
    172178    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): 
    183192    self.root.draw_rectangle(self.gc, False,  
    184193                             self.extents.x, 
     
    186195                             self.extents.width, 
    187196                             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() 
    188215    self.blinks += 1 
    189216    if self.max_blinks <> -1 and self.blinks >= self.max_blinks: 
    190       #self.inv.grab_remove() 
     217      self.inv.grab_remove() 
    191218      self.inv.destroy() 
    192219      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) 
    194221    gobject.timeout_add(blink_time, self._drawRectangle) 
    195     return Tru
     222    return Fals