| Panel Applet Writer's Reference Manual | |||
|---|---|---|---|
| <<< Previous Page | Home | Up | Next Page >>> | 
Most applets also place extra menu items into it context menu. It might be a good idea to port this next. In GNOME 1.x this was done using the applet_widget_register_stock_callback API call. In GNOME 2.x 3 things must be done
An xml desription of the popup menu must be written.
A description of the verbs must be prepared. This is basically a list of callbacks to be call when a certain menu item is clicked in the popup.
The menu is registered using a call to panel_applet_setup_menu.
The xml description should look something like this :
| static const char fish_menu_xml [] =
        "<popup name=\"button3\">\n"
        "   <menuitem name=\"Properties Item\" verb=\"BlahProperties\" _label=\"Properties ...\"\n"
        "             pixtype=\"stock\" pixname=\"gtk-properties\"/>\n"
        "   <menuitem name=\"Help Item\" verb=\"BlahHelp\" _label=\"Help\"\n"
        "             pixtype=\"stock\" pixname=\"gtk-help\"/>\n"
        "   <menuitem name=\"About Item\" verb=\"BlahAbout\" _label=\"About ...\"\n"
        "             pixtype=\"stock\" pixname=\"gnome-stock-about\"/>\n"
        "</popup>\n";
	 | 
This could also be in a seperate .xml file and loaded with panel_applet_setup_menu_from_file. The description of the verbs should look something like :
| static const BonoboUIVerb fish_menu_verbs [] = {
        BONOBO_UI_VERB ("BlahProperties", display_properties_dialog),
        BONOBO_UI_VERB ("BlahHelp",       display_help_dialog),
        BONOBO_UI_VERB ("BlahAbout",      display_about_dialog),
        BONOBO_UI_VERB_END
};
	 | 
This is just a list of callbacks invoked when the menu items are clicked. There are other macros you may use other than BONOBO_UI_VERB - see bonobo-ui-component.h.
To actually register the menu you just do something like :
| 	panel_applet_setup_menu (PANEL_APPLET (blah->applet),
                                 blah_menu_xml,
                                 blah_menu_verbs,
                                 blah);
	 | 
The last argument is the user_data argument based back to the callbacks.
| <<< Previous Page | Home | Up | Next Page >>> | 
| Porting Applets from the GNOME 1.x interfaces | The Panel Applet Library | ||