All pastes #471125 Raw Edit

Something

public python v1 · immutable
·published 2007-05-04 19:01 UTC
rendered paste body
#!/usr/bin/pythonimport pyatspi, gtk, atk, os, gnomegnome.program_init('test_pyatspi', '0.1.2')root_atk = atk.get_root()root_atk.set_description(str(os.getpid()))desktop = pyatspi.Registry.getDesktop(0)class TreeV(gtk.TreeView):  def __init__(self):    gtk.TreeView.__init__(self)    model = gtk.ListStore(str)    self.set_model(model)    crt = gtk.CellRendererText()    tvc = gtk.TreeViewColumn()    tvc.pack_start(crt, True)    tvc.set_attributes(crt, text=0)    self.append_column(tvc)class Main:  def __init__(self):    w = gtk.Window()    b = gtk.Button('Click me')    b.connect('clicked', self._onClicked)    tv = TreeV()    sw = gtk.ScrolledWindow()    sw.add(tv)    self.model = tv.get_model()    vbox = gtk.VBox()    vbox.add(b)    vbox.add(sw)    w.add(vbox)    w.show_all()    pyatspi.Registry.registerEventListener(self.Foo,                                             'object:children-changed')    pyatspi.Registry.start()    pyatspi.Registry.stop()      def isMyApp(self, acc):    if not acc:      return False    try:      app = acc.getApplication()    except Exception, e:      return False    print getattr(app, 'name', 'no app'), acc    if not app or not hasattr(app, 'id'):      return False    if hasattr(self,'my_app_id'):      if self.my_app_id == app.id:        return True    else:      if app.description == str(os.getpid()):        self.my_app_id = app.id        return True    return False  def Foo(self, event):    print event    if self.isMyApp(event.source):      print 'mine'    else:      print 'no mine'  def _onClicked(self, button):    self.model.append(['Test'])Main()