wa4557
wa4557

Reputation: 1045

check if menuitem was selected; pygtk

maybe a trivial question, but I'm having some severe problems with PyGTK... I'm trying to programm an application indicator for unity with gtk, and I'm trying to set some of my menuitems insensitive (via set_sensitive(False)) after I clicked on them...

Here's a code snippet:

class CheckNAS: 
    def __init__(self): 
      self.ind = appindicator.Indicator("debian-doc-menu", "indicator-   messages",appindicator.CATEGORY_APPLICATION_STATUS)
      self.ind.set_status (appindicator.STATUS_ACTIVE)
      self.ind.set_attention_icon("icon1")
      self.ind.set_icon("icon2")

    def menu_setup(self):
      self.quit_item = gtk.MenuItem("QUIT") 
      self.quit_item.connect("activate",self.quit)

      if condition_function()==True:
        self.quit.set_sensitive(False)
      self.quit_item.show()
      self.menu.append(self.quit_item)

and then I do repeatedly menu_setup via an add_timeout(1000,self.condition_function). This works fine in principle, but I'd prefer that the menuitem turns insensitive immiediately after I clicked it... Sorry for the Noob-question:)

Upvotes: 0

Views: 302

Answers (1)

jkd
jkd

Reputation: 1654

is that what you want?

class CheckNAS: 
    def __init__(self): 
      self.ind = appindicator.Indicator("debian-doc-menu", 
        "indicator-messages",appindicator.CATEGORY_APPLICATION_STATUS)
      self.ind.set_status (appindicator.STATUS_ACTIVE)
      self.ind.set_attention_icon("icon1")
      self.ind.set_icon("icon2")

    def menu_setup(self):
      self.quit_item = gtk.MenuItem("QUIT") 
      self.quit_item.connect("activate",self.sensitive)
      self.quit_item.show()
      self.menu.append(self.quit_item)

    def sensitive(self,widget):
      if widget.get_sensitive():
        widget.set_sensitive(False)
      else:
        widget.set_sensitive(True)

Upvotes: 2

Related Questions