Main Page | Data Structures | Directories | File List | Data Fields | Globals

e_mod_menu.c File Reference

#include "dEvian.h"

Go to the source code of this file.

Functions

static void _devian_main_menu_cb_add_devian (void *data, E_Menu *m, E_Menu_Item *mi)
static void _devian_main_menu_cb_theme_change (void *data, E_Menu *m, E_Menu_Item *mi)
static void _devian_main_menu_cb_configure (void *data, E_Menu *m, E_Menu_Item *mi)
static void _devian_main_menu_cb_delete_all_devians (void *data, E_Menu *m, E_Menu_Item *mi)
static E_Menu * _menu_theme_generate (void)
static void _devian_menu_cb_source_infos (void *data, E_Menu *m, E_Menu_Item *mi)
static void _devian_menu_cb_source_viewer (void *data, E_Menu *m, E_Menu_Item *mi)
static void _devian_menu_cb_devian_delete (void *data, E_Menu *m, E_Menu_Item *mi)
static void _devian_menu_cb_configure (void *data, E_Menu *m, E_Menu_Item *mi)
static void _devian_menu_cb_set_container_box (void *data, E_Menu *m, E_Menu_Item *mi)
static void _devian_menu_cb_set_source_picture (void *data, E_Menu *m, E_Menu_Item *mi)
static void _devian_menu_cb_edit_mode (void *data, E_Menu *m, E_Menu_Item *mi)
E_Menu * devian_menu_main_menu_init (void)
void devian_menu_main_menu_shutdown (void)
void devian_menu_main_menu_refresh (void)
E_Menu * devian_menu_init (dEvian *devian)
void devian_menu_shutdown (dEvian *devian)


Function Documentation

static void _devian_main_menu_cb_add_devian void *  data,
E_Menu *  m,
E_Menu_Item *  mi
[static]
 

Definition at line 19 of file e_mod_menu.c.

References devian_devian_add().

Referenced by devian_menu_main_menu_init().

00020 {
00021   devian_devian_add(NULL);
00022 }

static void _devian_main_menu_cb_configure void *  data,
E_Menu *  m,
E_Menu_Item *  mi
[static]
 

Definition at line 32 of file e_mod_menu.c.

References devian_config_dialog_main(), and dEvianM.

Referenced by devian_menu_main_menu_init().

00033 {
00034   dEvianM->dialog_conf = devian_config_dialog_main(dEvianM->container);
00035   e_object_ref(E_OBJECT(dEvianM->dialog_conf));
00036 }

static void _devian_main_menu_cb_delete_all_devians void *  data,
E_Menu *  m,
E_Menu_Item *  mi
[static]
 

Definition at line 38 of file e_mod_menu.c.

References devian_devian_del_all().

Referenced by devian_menu_main_menu_init().

00039 {
00040   devian_devian_del_all();
00041 }

static void _devian_main_menu_cb_theme_change void *  data,
E_Menu *  m,
E_Menu_Item *  mi
[static]
 

Definition at line 24 of file e_mod_menu.c.

References devian_container_theme_set().

Referenced by _menu_theme_generate().

00025 {
00026   if (!mi->label)
00027     return;
00028 
00029   devian_container_theme_set(mi->label);
00030 }

static void _devian_menu_cb_configure void *  data,
E_Menu *  m,
E_Menu_Item *  mi
[static]
 

Definition at line 212 of file e_mod_menu.c.

References devian_config_dialog_devian(), and dEvianM.

Referenced by devian_menu_init().

00213 {
00214   dEvian *devian;
00215 
00216   devian = data;
00217   devian->dialog_conf = devian_config_dialog_devian(dEvianM->container, devian);
00218   e_object_ref(E_OBJECT(devian->dialog_conf));
00219 }

static void _devian_menu_cb_devian_delete void *  data,
E_Menu *  m,
E_Menu_Item *  mi
[static]
 

Definition at line 187 of file e_mod_menu.c.

References devian_devian_del().

Referenced by devian_menu_init().

00188 {
00189   dEvian *devian;
00190 
00191   devian = data;
00192 
00193   /* CHECK: if the devian was destroyed but the menu stays (key space) */
00194   if (!devian)
00195     return;
00196   if ((!devian->source) || (!devian->conf) || (!devian->menu))
00197     return;
00198 
00199   devian_devian_del(devian, 0);
00200 }

static void _devian_menu_cb_edit_mode void *  data,
E_Menu *  m,
E_Menu_Item *  mi
[static]
 

Definition at line 221 of file e_mod_menu.c.

References dEvianM.

Referenced by devian_menu_init().

00222 {
00223   e_gadman_mode_set(dEvianM->container->gadman, E_GADMAN_MODE_EDIT);
00224 }

static void _devian_menu_cb_set_container_box void *  data,
E_Menu *  m,
E_Menu_Item *  mi
[static]
 

Definition at line 202 of file e_mod_menu.c.

Referenced by devian_menu_init().

00203 {
00204   
00205 }

static void _devian_menu_cb_set_source_picture void *  data,
E_Menu *  m,
E_Menu_Item *  mi
[static]
 

Definition at line 207 of file e_mod_menu.c.

Referenced by devian_menu_init().

00208 {
00209 
00210 }

static void _devian_menu_cb_source_infos void *  data,
E_Menu *  m,
E_Menu_Item *  mi
[static]
 

Definition at line 171 of file e_mod_menu.c.

References devian_source_dialog_infos().

Referenced by devian_menu_init().

00172 {
00173   dEvian *devian;
00174   devian = data;
00175 
00176   devian_source_dialog_infos(devian);
00177 }

static void _devian_menu_cb_source_viewer void *  data,
E_Menu *  m,
E_Menu_Item *  mi
[static]
 

Definition at line 179 of file e_mod_menu.c.

References devian_source_viewer().

Referenced by devian_menu_init().

00180 {
00181   dEvian *devian;
00182   devian = data;
00183 
00184   devian_source_viewer(devian);
00185 }

static E_Menu * _menu_theme_generate void   )  [static]
 

Definition at line 43 of file e_mod_menu.c.

References _devian_main_menu_cb_theme_change(), DEVIAN_MAX_PATH, and dEvianM.

Referenced by devian_menu_main_menu_init().

00044 {
00045   char *file, *ext;
00046   char name[DEVIAN_MAX_PATH];
00047   char themes_path[DEVIAN_MAX_PATH];
00048   int name_l;
00049   E_Menu *mn;
00050   E_Menu_Item *mi;
00051   Ecore_List *list = NULL;
00052 
00053   if (dEvianM->themes_menu)
00054     {
00055       e_menu_deactivate(dEvianM->themes_menu);
00056       e_object_del(E_OBJECT(dEvianM->themes_menu));
00057     }
00058   mn = e_menu_new();
00059   dEvianM->themes_menu = mn;
00060 
00061   snprintf(themes_path, DEVIAN_MAX_PATH, "%s%s", e_module_dir_get(dEvianM->module), "/themes");
00062 
00063   if (!ecore_file_is_dir(themes_path))
00064     return NULL;
00065 
00066   list = ecore_file_ls(themes_path);
00067   if (ecore_list_is_empty(list) || !list)
00068     {
00069       char buf[4096];
00070       snprintf(buf, sizeof(buf),
00071                _(
00072                  "<hilight>Directory %s is empty or doesnt exists.</hilight><br><br>"
00073      "No themes found !!!"
00074      ),
00075                themes_path
00076                );
00077       e_module_dialog_show(_("dEvian Module Error"), buf);
00078       return NULL;
00079     }
00080   
00081   while ((file = (char*)ecore_list_next(list)))
00082     {
00083       ext = strrchr(file, '.');
00084       if (!ext)
00085   continue;
00086       name_l = strlen(file) - strlen(ext);
00087       if (name_l<=0)
00088   continue;
00089       name[name_l] = '\0';
00090       strncpy(name, file, name_l);
00091 
00092       mi = e_menu_item_new(mn);
00093       e_menu_item_label_set(mi, name);
00094       e_menu_item_radio_set(mi, 1);
00095       e_menu_item_radio_group_set(mi, 1);
00096       if ( !strcmp(dEvianM->conf->theme, name) )
00097   e_menu_item_toggle_set(mi, 1);
00098       e_menu_item_callback_set(mi, _devian_main_menu_cb_theme_change, NULL);
00099     }
00100 
00101   return mn;
00102 }

E_Menu* devian_menu_init dEvian *  devian  ) 
 

Definition at line 226 of file e_mod_menu.c.

References _devian_menu_cb_configure(), _devian_menu_cb_devian_delete(), _devian_menu_cb_edit_mode(), _devian_menu_cb_set_container_box(), _devian_menu_cb_set_source_picture(), _devian_menu_cb_source_infos(), _devian_menu_cb_source_viewer(), CONTAINER_BOX, dEvianM, DMAIN, and SOURCE_PICTURE.

Referenced by devian_devian_add().

00227 {
00228   E_Menu *mn;
00229   E_Menu_Item *mi;
00230 
00231   DMAIN(("dEvian : menu"));
00232 
00233   mn = e_menu_new();
00234 
00235   mi = e_menu_item_new(mn);
00236   e_menu_item_label_set(mi, _("Source Infos"));
00237   e_menu_item_callback_set(mi, _devian_menu_cb_source_infos, devian);
00238   mi = e_menu_item_new(mn);
00239   e_menu_item_label_set(mi, _("Source Viewer"));
00240   e_menu_item_callback_set(mi, _devian_menu_cb_source_viewer, devian);
00241 
00242   mi = e_menu_item_new(mn);
00243   e_menu_item_label_set(mi, _("delete dEvian"));
00244   e_menu_item_callback_set(mi, _devian_menu_cb_devian_delete, devian);
00245 
00246   mi = e_menu_item_new(mn);
00247   e_menu_item_separator_set(mi, 1);
00248   
00249 
00250   mi = e_menu_item_new(mn);
00251   e_menu_item_label_set(mi, _("Container Box"));
00252   e_menu_item_radio_set(mi, 1);
00253   e_menu_item_radio_group_set(mi, 1);
00254   if ( devian->conf->container_type == CONTAINER_BOX )
00255       e_menu_item_toggle_set(mi, 1);
00256   e_menu_item_callback_set(mi, _devian_menu_cb_set_container_box, devian);
00257   /*
00258   mi = e_menu_item_new(mn);
00259   e_menu_item_label_set(mi, _("Bar"));
00260   e_menu_item_radio_set(mi, 1);
00261   e_menu_item_radio_group_set(mi, 1);
00262   if ( devian->conf->container_type == CONTAINER_BAR )
00263       e_menu_item_toggle_set(mi, 1);
00264   e_menu_item_callback_set(mi, _devian_menu_cb_set_container_bar, devian);
00265   */
00266 
00267   mi = e_menu_item_new(mn);
00268   e_menu_item_separator_set(mi, 1);
00269 
00270   mi = e_menu_item_new(mn);
00271   e_menu_item_label_set(mi, _("Source Picture"));
00272   e_menu_item_radio_set(mi, 1);
00273   e_menu_item_radio_group_set(mi, 2);
00274   if ( devian->conf->source_type == SOURCE_PICTURE )
00275       e_menu_item_toggle_set(mi, 1);
00276   e_menu_item_callback_set(mi, _devian_menu_cb_set_source_picture, devian);
00277   /*
00278   mi = e_menu_item_new(mn);
00279   e_menu_item_label_set(mi, _("Text"));
00280   e_menu_item_radio_set(mi, 1);
00281   e_menu_item_radio_group_set(mi, 2);
00282   if ( devian->conf->container_type == SOURCE_TEXT )
00283       e_menu_item_toggle_set(mi, 1);
00284   e_menu_item_callback_set(mi, _devian_menu_cb_set_source_text, devian);
00285   */
00286 
00287   mi = e_menu_item_new(mn);
00288   e_menu_item_separator_set(mi, 1);
00289 
00290   mi = e_menu_item_new(mn);
00291   e_menu_item_label_set(mi, _("Configure"));
00292   e_menu_item_callback_set(mi, _devian_menu_cb_configure, devian);
00293 
00294   mi = e_menu_item_new(mn);
00295   e_menu_item_label_set(mi, _("General"));
00296   e_menu_item_submenu_set(mi, dEvianM->main_menu);
00297 
00298   mi = e_menu_item_new(mn);
00299   e_menu_item_label_set(mi, _("Edit Mode"));
00300   e_menu_item_callback_set(mi, _devian_menu_cb_edit_mode, devian);
00301 
00302   DMAIN(("dEvian : menu fin"));
00303 
00304   return mn;
00305 }

E_Menu* devian_menu_main_menu_init void   ) 
 

Definition at line 104 of file e_mod_menu.c.

References _devian_main_menu_cb_add_devian(), _devian_main_menu_cb_configure(), _devian_main_menu_cb_delete_all_devians(), _menu_theme_generate(), dEvianM, and DMAIN.

Referenced by devian_devian_main_init(), and devian_menu_main_menu_refresh().

00105 {
00106   E_Menu_Item *mi;
00107   E_Menu *mn;
00108 
00109   DMAIN(("dEvian : main menu"));
00110   
00111   mn = e_menu_new();
00112 
00113   mi = e_menu_item_new(mn);
00114   e_menu_item_label_set(mi, _("Add dEvian"));
00115   e_menu_item_callback_set(mi, _devian_main_menu_cb_add_devian, NULL);
00116 
00117   mi = e_menu_item_new(mn);
00118   e_menu_item_separator_set(mi, 1);
00119 
00120   if ( !(dEvianM->themes_menu = _menu_theme_generate()) )
00121     return NULL;
00122 
00123   mi = e_menu_item_new(mn);
00124   e_menu_item_label_set(mi, _("Theme"));
00125   e_menu_item_submenu_set(mi, dEvianM->themes_menu);
00126 
00127   mi = e_menu_item_new(mn);
00128   e_menu_item_separator_set(mi, 1);
00129   
00130   mi = e_menu_item_new(mn);
00131   e_menu_item_label_set(mi, _("Configure Main"));
00132   e_menu_item_callback_set(mi, _devian_main_menu_cb_configure, NULL);
00133 
00134   mi = e_menu_item_new(mn);
00135   e_menu_item_label_set(mi, _("Delete all dEvians"));
00136   e_menu_item_callback_set(mi, _devian_main_menu_cb_delete_all_devians, NULL);
00137 
00138   dEvianM->main_menu = mn;
00139 
00140   DMAIN(("dEvian : main menu fin"));
00141 
00142   return mn;
00143 }

void devian_menu_main_menu_refresh void   ) 
 

Definition at line 155 of file e_mod_menu.c.

References devian_menu_main_menu_init(), and devian_menu_main_menu_shutdown().

Referenced by devian_container_theme_set(), devian_devian_del(), and devian_devian_set_name().

00156 {
00157   devian_menu_main_menu_shutdown();
00158   if ( !(devian_menu_main_menu_init()) )
00159     {
00160       fprintf(stderr, "dEvian: Bad, main menu could be regenerated ... going to crash ...\n");
00161     }
00162   //... Fix it
00163 }

void devian_menu_main_menu_shutdown void   ) 
 

Definition at line 145 of file e_mod_menu.c.

References dEvianM.

Referenced by devian_devian_main_shutdown(), and devian_menu_main_menu_refresh().

00146 {
00147   if (dEvianM->main_menu)
00148     {
00149       e_menu_deactivate(dEvianM->main_menu);
00150       e_object_del(E_OBJECT(dEvianM->main_menu));
00151       dEvianM->main_menu = NULL;
00152     }
00153 }

void devian_menu_shutdown dEvian *  devian  ) 
 

Definition at line 307 of file e_mod_menu.c.

Referenced by devian_devian_del().

00308 {
00309   if (devian->menu)
00310     {
00311       e_menu_deactivate(devian->menu);
00312       e_object_del(E_OBJECT(devian->menu));
00313       devian->menu = NULL;
00314     }
00315 }


Generated on Fri Jan 6 02:26:26 2006 for dEvian by  doxygen 1.4.4