add Configuration item to face menu (if the module defines e_modapi_config)
authorrephorm <rephorm>
Thu, 26 Jan 2006 05:56:34 +0000 (05:56 +0000)
committerrephorm <rephorm@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Thu, 26 Jan 2006 05:56:34 +0000 (05:56 +0000)
SVN revision: 20038

src/bin/e_gadget.c

index 28e7a4f..f6eb5f2 100644 (file)
@@ -17,6 +17,7 @@
  */
 
 static E_Gadget_Face *_e_gadget_face_new(E_Gadget *gad, E_Container *con, E_Zone *zone);
+static void _e_gadget_cb_menu_configure(void *data, E_Menu *m, E_Menu_Item *mi);
 static void _e_gadget_cb_menu_edit(void *data, E_Menu *m, E_Menu_Item *mi);
 static void _e_gadget_free(E_Gadget *gad);
 static void _e_gadget_face_cb_gmc_change(void * data, E_Gadman_Client *gmc, E_Gadman_Change change);
@@ -197,8 +198,17 @@ _e_gadget_face_menu_init(E_Gadget_Face *face)
 {
    E_Menu_Item *mi;
 
+   if (!face) return;
+
    face->menu = e_menu_new();
 
+   if (face->gad && face->gad->module && face->gad->module->func.config) 
+     {
+       mi = e_menu_item_new(face->menu);
+       e_menu_item_label_set(mi, _("Configuration"));
+       e_menu_item_callback_set(mi, _e_gadget_cb_menu_configure, face->gad);
+     }
+
    mi = e_menu_item_new(face->menu);
    e_menu_item_label_set(mi, _("Edit Mode"));
    e_menu_item_callback_set(mi, _e_gadget_cb_menu_edit, face);
@@ -207,6 +217,20 @@ _e_gadget_face_menu_init(E_Gadget_Face *face)
 }
 
 static void
+_e_gadget_cb_menu_configure(void *data, E_Menu *m, E_Menu_Item *mi)
+{
+   E_Gadget *gad;
+   E_Module *module;
+
+   gad = data;
+   if (!gad) return;
+   module = gad->module;
+   if (!module) return;
+
+   if (module->func.config) (module->func.config)(module);
+}
+
+static void
 _e_gadget_cb_menu_edit(void *data, E_Menu *m, E_Menu_Item *mi)
 {
    E_Gadget_Face *face;