In the code I uploaded previously I made a mistake. This is the right
one:
------------------------------------------------------------------------
def __init__ (self, applet):
self.applet = applet
# Unrelated stuff
self.applet.setup_menu_from_file (os.path.join (config.DATA_DIR, \
"detras-applet"), \
"DetrasApplet.xml", \
None, \
[("about", self.about_cb), \
("preferences", self.prefs_cb), \
("upload_data", self.upload_data_cb), \
("start_tf", self.toggle_tf_cb)
("stop_tf", self.toggle_tf_cb)])
self.update_menu ("start_tf", 0)
def update_menu (self, menu_verb, value):
popup = self.applet.get_popup_component()
val = {False: "0", True: "1"}[value]
popup.set_prop("/commands/"+menu_verb, "hidden", val)
------------------------------------------------------------------------
Sorry.
--
Edmundo Álvarez Jiménez <[email protected]>
On Mon, 2010-04-19 at 18:27 +0200, Edmundo Álvarez Jiménez wrote:
> Hello,
>
> I'm writing a Gnome applet using PyGTK, and I have a problem changing
> applet's contextual menu dynamically.
>
> The problem is that I'm trying to hide or show a menu's entry using
> "set_prop()" method as you can see bellow, but it doesn't change the
> menu. I have tried to change "sensitive" property instead of "hidden"
> with the same luck.
>
> Thank you in advance.
>
> Regards,
>
> [1] Applet's menu XML:
> ------------------------------------------------------------------------
> <Root>
> <popups>
> <popup name="button3">
> <menuitem name="start_tf" verb="start_tf" _label="_Start
> tracking" />
> <menuitem name="stop_tf" verb="stop_tf" _label="_Stop
> tracking" />
> <menuitem name="upload_data" verb="upload_data"
> _label="_Upload data now" />
> <separator/>
> <menuitem name="preferences" verb="preferences"
> _label="_Preferences" pixtype="stock" pixname="gtk-preferences" />
> <menuitem name="about" verb="about" _label="_About"
> pixtype="stock" pixname="gtk-about" />
> </popup>
> </popups>
> </Root>
> ------------------------------------------------------------------------
>
>
> [2] Code I'm trying to use to change menu:
> ------------------------------------------------------------------------
> def __init__ (self, applet):
> self.applet = applet
>
> # Unrelated stuff
>
> self.applet.setup_menu_from_file (os.path.join (config.DATA_DIR, \
> "detras-applet"), \
> "DetrasApplet.xml", \
> None, \
> [("about", self.about_cb), \
> ("preferences", self.prefs_cb), \
> ("upload_data", self.upload_data_cb), \
> ("toggle_tf", self.toggle_tf_cb)])
>
> self.update_menu ("start_tf", 0)
>
> def update_menu (self, menu_verb, value):
> popup = self.applet.get_popup_component()
> val = {False: "0", True: "1"}[value]
>
> popup.set_prop("/commands/"+menu_verb, "hidden", val)
> ------------------------------------------------------------------------
>
>
_______________________________________________
pygtk mailing list [email protected]
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://faq.pygtk.org/