Enlightenment CVS committal Author : chaos Project : e17 Module : proto
Dir : e17/proto/entropy/src/plugins Modified Files: layout_etk_simple.c Log Message: * Start of config-callback system =================================================================== RCS file: /cvs/e/e17/proto/entropy/src/plugins/layout_etk_simple.c,v retrieving revision 1.62 retrieving revision 1.63 diff -u -3 -r1.62 -r1.63 --- layout_etk_simple.c 2 Sep 2006 01:34:25 -0000 1.62 +++ layout_etk_simple.c 2 Sep 2006 09:27:46 -0000 1.63 @@ -67,7 +67,7 @@ char* entropy_plugin_toolkit_get(); entropy_gui_component_instance* entropy_plugin_layout_create (entropy_core * core); void entropy_etk_layout_trackback_cb(Etk_Object* obj, void* data); - +void entropy_etk_layout_trackback_show(entropy_layout_gui* gui, int visible); void entropy_layout_etk_simple_local_view_set(entropy_gui_component_instance* instance, entropy_gui_component_instance* local); @@ -167,7 +167,8 @@ return menu_item; } - +/*-----*/ +/*Location related functions*/ static void _etk_layout_location_delete_confirm_cb(Etk_Object * object, void *data) { entropy_gui_component_instance* instance = data; @@ -210,51 +211,81 @@ } -Entropy_Plugin* -entropy_plugin_init (entropy_core * core) +void layout_etk_simple_add_header(entropy_gui_component_instance* instance, Entropy_Config_Structure* structure_obj) { - Entropy_Plugin_Gui* plugin; - Entropy_Plugin* base; - - /*Init etk */ - etk_init (NULL, NULL); + void *(*structure_plugin_init) (entropy_core * core, + entropy_gui_component_instance *, + void* parent_visual, + void *data); - plugin = entropy_malloc(sizeof(Entropy_Plugin_Gui)); - base = ENTROPY_PLUGIN(plugin); + entropy_plugin *structure; + entropy_generic_file* file; + Etk_Tree_Row* row; + Etk_Tree_Col* col; + entropy_layout_gui* gui = instance->data; + char* icon_string = NULL; + Ecore_List* layouts; + _layout_etk_row_structure_plugin* struct_ref = NULL; + + col = etk_tree_nth_col_get(ETK_TREE(gui->tree), 0); + + /*Parse the file from the URI*/ + file = entropy_core_parse_uri (structure_obj->uri); + + printf("Object for %s/%s is %p....\n", file->path, file->filename, file); + + + /*This will be moved to a central function. TODO*/ + if (!strcmp(file->uri_base, "file")) + icon_string = PACKAGE_DATA_DIR "/icons/local-system.png"; + else if (!strcmp(file->uri_base, "smb")) + icon_string = PACKAGE_DATA_DIR "/icons/samba-system.png"; + else if (!strcmp(file->uri_base,"sftp")) + icon_string = PACKAGE_DATA_DIR "/icons/sftp-system.png"; + else if (!strcmp(file->uri_base,"vfolder")) + icon_string = PACKAGE_DATA_DIR "/icons/vfolder-system.png"; + + + etk_tree_freeze(ETK_TREE(gui->tree)); + row = etk_tree_append(ETK_TREE(gui->tree), col, + icon_string, structure_obj->name, NULL); + etk_tree_thaw(ETK_TREE(gui->tree)); - base->functions.entropy_plugin_init = &entropy_plugin_init; - plugin->gui_functions.layout_main = &entropy_plugin_layout_main; - plugin->gui_functions.layout_create = &entropy_plugin_layout_create; - plugin->gui_functions.toolkit_get= &entropy_plugin_toolkit_get; + + structure = entropy_plugins_type_get_first(ENTROPY_PLUGIN_GUI_COMPONENT,ENTROPY_PLUGIN_GUI_COMPONENT_STRUCTURE_VIEW); + structure_plugin_init = + dlsym (structure->dl_ref, "entropy_plugin_gui_instance_new"); - return base; -} + /*We shouldn't really assume it's a folder - but it bootstraps us for + * now- FIXME*/ + strcpy(file->mime_type, "file/folder"); + file->filetype = FILE_FOLDER; -char * -entropy_plugin_identify () -{ - return (char *) "etk"; -} + if (!strlen (file->mime_type)) { + entropy_mime_file_identify (file); + } + + instance = (*structure_plugin_init)(instance->core, instance, row,file); + instance->plugin = structure; -int -entropy_plugin_type_get () -{ - return ENTROPY_PLUGIN_GUI_LAYOUT; -} + /*Add to tracker*/ + ecore_hash_set(_etk_layout_row_reference, row, structure_obj); + + /*Add to layout/plugin tracker - this is to destroy if the user removes a location*/ + if (! (layouts = ecore_hash_get(_etk_layout_structure_plugin_reference, structure_obj))) { + layouts = ecore_list_new(); + ecore_hash_set(_etk_layout_structure_plugin_reference, structure_obj, layouts); + } -char* -entropy_plugin_toolkit_get() -{ - return ENTROPY_TOOLKIT_ETK; -} + struct_ref = entropy_malloc(sizeof(_layout_etk_row_structure_plugin)); + struct_ref->row = row; + struct_ref->structure_plugin = structure; -void -entropy_plugin_layout_main () -{ + ecore_list_append(layouts, struct_ref); - printf("Init ETK main...\n"); - etk_main (); } +/*----------*/ + void etk_layout_simple_exit_cb(Etk_Object* obj, void* data) { @@ -274,18 +305,30 @@ entropy_etk_options_dialog_show(); } +/*---*/ +/*Trackback plugin related functions*/ void entropy_etk_layout_trackback_cb(Etk_Object* obj, void* data) { entropy_gui_component_instance* instance = data; entropy_layout_gui* gui = instance->data; if (etk_container_is_child(ETK_CONTAINER(gui->trackback_shell), gui->trackback->gui_object) == ETK_FALSE) { + entropy_etk_layout_trackback_show(gui,1); + } else { + entropy_etk_layout_trackback_show(gui,0); + } +} + +void entropy_etk_layout_trackback_show(entropy_layout_gui* gui, int visible) +{ + if (visible) { etk_box_append(ETK_BOX(gui->trackback_shell), gui->trackback->gui_object, ETK_BOX_START, ETK_BOX_NONE,0); - etk_widget_show_all(ETK_WIDGET(gui->trackback->gui_object)); + etk_widget_show_all(ETK_WIDGET(gui->trackback->gui_object)); } else { etk_container_remove(ETK_CONTAINER(gui->trackback_shell), gui->trackback->gui_object); } } +/*--------*/ void entropy_etk_layout_tree_cb(Etk_Object* obj, void* data) { @@ -391,78 +434,72 @@ } -void layout_etk_simple_add_header(entropy_gui_component_instance* instance, Entropy_Config_Structure* structure_obj) +/*Config related functions*/ +void +_entropy_layout_etk_simple_config_cb(char* option, void* data) { - void *(*structure_plugin_init) (entropy_core * core, - entropy_gui_component_instance *, - void* parent_visual, - void *data); - - entropy_plugin *structure; - entropy_generic_file* file; - Etk_Tree_Row* row; - Etk_Tree_Col* col; - entropy_layout_gui* gui = instance->data; - char* icon_string = NULL; - Ecore_List* layouts; - _layout_etk_row_structure_plugin* struct_ref = NULL; + entropy_layout_gui* gui; - col = etk_tree_nth_col_get(ETK_TREE(gui->tree), 0); + gui = data; + + printf("Layout notified of change to '%s'\n", option); + if (!strcmp(option, "general.trackback")) { + if (entropy_config_misc_is_set("general.trackback")) + entropy_etk_layout_trackback_show(gui, 1); + else + entropy_etk_layout_trackback_show(gui, 0); + } +} +/*----*/ - /*Parse the file from the URI*/ - file = entropy_core_parse_uri (structure_obj->uri); - printf("Object for %s/%s is %p....\n", file->path, file->filename, file); - +/*----*/ +/*Interal functions*/ - /*This will be moved to a central function. TODO*/ - if (!strcmp(file->uri_base, "file")) - icon_string = PACKAGE_DATA_DIR "/icons/local-system.png"; - else if (!strcmp(file->uri_base, "smb")) - icon_string = PACKAGE_DATA_DIR "/icons/samba-system.png"; - else if (!strcmp(file->uri_base,"sftp")) - icon_string = PACKAGE_DATA_DIR "/icons/sftp-system.png"; - else if (!strcmp(file->uri_base,"vfolder")) - icon_string = PACKAGE_DATA_DIR "/icons/vfolder-system.png"; - +Entropy_Plugin* +entropy_plugin_init (entropy_core * core) +{ + Entropy_Plugin_Gui* plugin; + Entropy_Plugin* base; - etk_tree_freeze(ETK_TREE(gui->tree)); - row = etk_tree_append(ETK_TREE(gui->tree), col, - icon_string, structure_obj->name, NULL); - etk_tree_thaw(ETK_TREE(gui->tree)); - + /*Init etk */ + etk_init (NULL, NULL); + + plugin = entropy_malloc(sizeof(Entropy_Plugin_Gui)); + base = ENTROPY_PLUGIN(plugin); - structure = entropy_plugins_type_get_first(ENTROPY_PLUGIN_GUI_COMPONENT,ENTROPY_PLUGIN_GUI_COMPONENT_STRUCTURE_VIEW); - structure_plugin_init = - dlsym (structure->dl_ref, "entropy_plugin_gui_instance_new"); + base->functions.entropy_plugin_init = &entropy_plugin_init; + plugin->gui_functions.layout_main = &entropy_plugin_layout_main; + plugin->gui_functions.layout_create = &entropy_plugin_layout_create; + plugin->gui_functions.toolkit_get= &entropy_plugin_toolkit_get; - /*We shouldn't really assume it's a folder - but it bootstraps us for - * now- FIXME*/ - strcpy(file->mime_type, "file/folder"); - file->filetype = FILE_FOLDER; + return base; +} - if (!strlen (file->mime_type)) { - entropy_mime_file_identify (file); - } - - instance = (*structure_plugin_init)(instance->core, instance, row,file); - instance->plugin = structure; +char * +entropy_plugin_identify () +{ + return (char *) "etk"; +} - /*Add to tracker*/ - ecore_hash_set(_etk_layout_row_reference, row, structure_obj); - - /*Add to layout/plugin tracker - this is to destroy if the user removes a location*/ - if (! (layouts = ecore_hash_get(_etk_layout_structure_plugin_reference, structure_obj))) { - layouts = ecore_list_new(); - ecore_hash_set(_etk_layout_structure_plugin_reference, structure_obj, layouts); - } +int +entropy_plugin_type_get () +{ + return ENTROPY_PLUGIN_GUI_LAYOUT; +} - struct_ref = entropy_malloc(sizeof(_layout_etk_row_structure_plugin)); - struct_ref->row = row; - struct_ref->structure_plugin = structure; +char* +entropy_plugin_toolkit_get() +{ + return ENTROPY_TOOLKIT_ETK; +} - ecore_list_append(layouts, struct_ref); +void +entropy_plugin_layout_main () +{ + printf("Init ETK main...\n"); + etk_main (); } @@ -738,6 +775,7 @@ if (entropy_config_misc_is_set("general.trackback")) { etk_box_append(ETK_BOX(gui->trackback_shell), gui->trackback->gui_object, ETK_BOX_START, ETK_BOX_NONE, 0); } + entropy_config_misc_callback_register("general.trackback", _entropy_layout_etk_simple_config_cb, gui); } @@ -804,7 +842,7 @@ } - menu_item = _entropy_etk_radio_item_new(_("Icon View (Alt-i)"), menu_item, ETK_MENU_SHELL(menu)); + menu_item = _entropy_etk_radio_item_new(_("Icon View (Alt-i)"), ETK_MENU_ITEM_RADIO(menu_item), ETK_MENU_SHELL(menu)); etk_object_data_set(ETK_OBJECT(menu_item), "VISUAL", gui->iconbox_viewer); etk_signal_connect("activated", ETK_OBJECT(menu_item), ETK_CALLBACK(etk_local_viewer_cb), layout); if (entropy_config_misc_is_set("general.iconviewer")) { ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs