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/

Reply via email to