Enlightenment CVS committal Author : chaos Project : e17 Module : proto
Dir : e17/proto/entropy/src/plugins Modified Files: Makefile.am etk_list_viewer.c layout_etk_simple.c Added Files: etk_icon_viewer.c Log Message: * Plugin-finding API * Etk-Iconbox first commit! =================================================================== RCS file: /cvs/e/e17/proto/entropy/src/plugins/Makefile.am,v retrieving revision 1.32 retrieving revision 1.33 diff -u -3 -r1.32 -r1.33 --- Makefile.am 5 Apr 2006 06:28:00 -0000 1.32 +++ Makefile.am 8 Apr 2006 08:13:36 -0000 1.33 @@ -38,14 +38,16 @@ ETK_STRUCTURE_VIEWER_L = etk_structure_viewer.la ETK_LIST_VIEWER_L = etk_list.la ETK_METADATA_L = etk_metadata.la +ETK_ICONBOX_L = etk_iconbox.la else LAYOUT_ETK_L = ETK_LIST_VIEWER_L = ETK_STRUCTURE_VIEWER_L = ETK_METADATA_L = +ETK_ICONBOX_L = endif -pkg_LTLIBRARIES = $(MIME_L) $(THUMBNAILER_L) $(POSIX_L) $(LAYOUT_L) $(EWL_LOCAL_ICON_L) $(STRUCTURE_VIEWER_L) $(SYSTEM_THUMBNAILER_L) $(ACTION_SIMPLE_L) $(LAYOUT_ETK_L) $(EWL_LIST_L) $(REMOTE_THUMBNAILER_L) $(DISTRIB_THUMBNAILER_L) $(ETK_STRUCTURE_VIEWER_L) $(ETK_LIST_VIEWER_L) $(METADATA_EXTRACT_L) $(ETK_METADATA_L) +pkg_LTLIBRARIES = $(MIME_L) $(THUMBNAILER_L) $(POSIX_L) $(LAYOUT_L) $(EWL_LOCAL_ICON_L) $(STRUCTURE_VIEWER_L) $(SYSTEM_THUMBNAILER_L) $(ACTION_SIMPLE_L) $(LAYOUT_ETK_L) $(EWL_LIST_L) $(REMOTE_THUMBNAILER_L) $(DISTRIB_THUMBNAILER_L) $(ETK_STRUCTURE_VIEWER_L) $(ETK_LIST_VIEWER_L) $(METADATA_EXTRACT_L) $(ETK_METADATA_L) $(ETK_ICONBOX_L) ewl_local_icon_la_SOURCES = $(top_srcdir)/src/entropy_gui.c \ $(top_srcdir)/src/dialogs/ewl_progress_dialog.c \ @@ -119,6 +121,16 @@ etk_list_la_CFLAGS = @ETK_CFLAGS@ etk_list_la_LDFLAGS = -module -avoid-version etk_list_la_LIBADD = @ETK_LIBS@ + +etk_iconbox_la_SOURCES = etk_icon_viewer.c \ + $(top_srcdir)/src/entropy_gui.c \ + $(top_srcdir)/src/entropy_debug.c \ + $(top_srcdir)/src/dialogs/etk_directory_add_dialog.c \ + $(top_srcdir)/src/dialogs/etk_properties_dialog.c +etk_iconbox_la_CFLAGS = @ETK_CFLAGS@ +etk_iconbox_la_LDFLAGS = -module -avoid-version +etk_iconbox_la_LIBADD = @ETK_LIBS@ + etk_metadata_la_SOURCES = etk_meta_plugin.c =================================================================== RCS file: /cvs/e/e17/proto/entropy/src/plugins/etk_list_viewer.c,v retrieving revision 1.58 retrieving revision 1.59 diff -u -3 -r1.58 -r1.59 --- etk_list_viewer.c 5 Apr 2006 06:28:00 -0000 1.58 +++ etk_list_viewer.c 8 Apr 2006 08:13:37 -0000 1.59 @@ -96,7 +96,7 @@ char * entropy_plugin_identify () { - return (char *) "ETK File system list viewer"; + return (char *) "listviewer"; } char* @@ -834,7 +834,7 @@ plugin = entropy_malloc(sizeof(Entropy_Plugin_Gui)); base = ENTROPY_PLUGIN(plugin); - return plugin; + return base; } =================================================================== RCS file: /cvs/e/e17/proto/entropy/src/plugins/layout_etk_simple.c,v retrieving revision 1.37 retrieving revision 1.38 diff -u -3 -r1.37 -r1.38 --- layout_etk_simple.c 5 Apr 2006 06:28:00 -0000 1.37 +++ layout_etk_simple.c 8 Apr 2006 08:13:37 -0000 1.38 @@ -30,6 +30,7 @@ struct entropy_layout_gui { entropy_gui_component_instance *iconbox_viewer; + entropy_gui_component_instance *list_viewer; entropy_gui_component_instance *structure_viewer; Etk_Widget *tree; Etk_Widget *paned; @@ -38,7 +39,9 @@ Etk_Tree_Row* delete_row; /*The row pending deletion, if any*/ Etk_Widget* popup; + Etk_Widget* localshell; Ecore_Hash* progress_hash; /*Track progress events->dialogs*/ + }; typedef enum _Etk_Menu_Item_Type @@ -220,6 +223,44 @@ etk_mime_dialog_create(); } + +void etk_local_viewer_cb(Etk_Object* obj, void* data) +{ + entropy_gui_component_instance* local; + Evas_List* children; + entropy_gui_component_instance* instance = data; + entropy_layout_gui* gui = instance->data; + Etk_Widget* widget; + + /*Get the local viewer they want..*/ + local = etk_object_data_get(ETK_OBJECT(obj), "VISUAL"); + + if (local) { + /*FIXME - disable plugins - this should be cleaner*/ + gui->iconbox_viewer->active = 0; + gui->list_viewer->active = 0; + + for (children = etk_container_children_get(ETK_CONTAINER(gui->localshell)); children; ) { + widget = children->data; + etk_container_remove(ETK_CONTAINER(gui->localshell), widget); + + children = children->next; + } + + if (local->gui_object) { + etk_box_pack_start(ETK_BOX(gui->localshell), local->gui_object, ETK_TRUE,ETK_TRUE,0); + local->active = 1; + } else { + printf("Selected instance has no GUI_OBJECT\n"); + } + } else { + printf("Local is null!\n"); + } +} + + + + void etk_file_cache_dialog_cb(Etk_Object *obj, void *data) { etk_file_cache_dialog_create(); @@ -447,56 +488,6 @@ vbox = etk_vbox_new(ETK_FALSE,0); etk_container_add(ETK_CONTAINER(window), vbox); - /*Menu setup*/ - menubar = etk_menu_bar_new(); - menu_item = _entropy_etk_menu_item_new(ETK_MENU_ITEM_NORMAL, _("File"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(menubar), NULL); - menu = etk_menu_new(); - etk_menu_item_submenu_set(ETK_MENU_ITEM(menu_item), ETK_MENU(menu)); - menu_item = _entropy_etk_menu_item_new(ETK_MENU_ITEM_NORMAL, _("Exit"), ETK_STOCK_SYSTEM_SHUTDOWN, ETK_MENU_SHELL(menu), NULL); - etk_signal_connect("activated", ETK_OBJECT(menu_item), ETK_CALLBACK(etk_layout_simple_exit_cb), layout); - - menu_item = _entropy_etk_menu_item_new(ETK_MENU_ITEM_NORMAL, _("Edit"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(menubar), NULL); - menu = etk_menu_new(); - etk_menu_item_submenu_set(ETK_MENU_ITEM(menu_item), ETK_MENU(menu)); - _entropy_etk_menu_item_new(ETK_MENU_ITEM_NORMAL, _("Cut"), ETK_STOCK_EDIT_CUT, ETK_MENU_SHELL(menu), NULL); - _entropy_etk_menu_item_new(ETK_MENU_ITEM_NORMAL, _("Copy"), ETK_STOCK_EDIT_COPY, ETK_MENU_SHELL(menu), NULL); - _entropy_etk_menu_item_new(ETK_MENU_ITEM_NORMAL, _("Paste"), ETK_STOCK_EDIT_PASTE, ETK_MENU_SHELL(menu), NULL); - - - menu_item = _entropy_etk_menu_item_new(ETK_MENU_ITEM_NORMAL, _("Tools"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(menubar), NULL); - menu = etk_menu_new(); - etk_menu_item_submenu_set(ETK_MENU_ITEM(menu_item), ETK_MENU(menu)); - - menu_item = _entropy_etk_menu_item_new(ETK_MENU_ITEM_NORMAL, _("Add Location"), ETK_STOCK_ADDRESS_BOOK_NEW, ETK_MENU_SHELL(menu), NULL); - etk_signal_connect("activated", ETK_OBJECT(menu_item), ETK_CALLBACK(_location_add_cb), layout); - - menu_item = _entropy_etk_menu_item_new(ETK_MENU_ITEM_NORMAL, _("Program Associations.."), - ETK_STOCK_EMBLEM_SYMBOLIC_LINK, ETK_MENU_SHELL(menu), NULL); - etk_signal_connect("activated", ETK_OBJECT(menu_item), ETK_CALLBACK(etk_mime_dialog_cb), layout); - - menu_item = _entropy_etk_menu_item_new(ETK_MENU_ITEM_NORMAL, _("View"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(menubar), NULL); - menu = etk_menu_new(); - etk_menu_item_submenu_set(ETK_MENU_ITEM(menu_item), ETK_MENU(menu)); - _entropy_etk_menu_item_new(ETK_MENU_ITEM_NORMAL, _("Tree View"), ETK_STOCK_SYSTEM_SHUTDOWN, ETK_MENU_SHELL(menu), NULL); - _entropy_etk_menu_item_new(ETK_MENU_ITEM_NORMAL, _("List View"), ETK_STOCK_SYSTEM_SHUTDOWN, ETK_MENU_SHELL(menu), NULL); - _entropy_etk_menu_item_new(ETK_MENU_ITEM_NORMAL, _("Icon View"), ETK_STOCK_IMAGE_X_GENERIC, ETK_MENU_SHELL(menu), NULL); - - - menu_item = _entropy_etk_menu_item_new(ETK_MENU_ITEM_NORMAL, _("Debug"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(menubar), NULL); - menu = etk_menu_new(); - etk_menu_item_submenu_set(ETK_MENU_ITEM(menu_item), ETK_MENU(menu)); - menu_item = _entropy_etk_menu_item_new(ETK_MENU_ITEM_NORMAL, _("File Cache"), ETK_STOCK_PLACES_FOLDER_SAVED_SEARCH, ETK_MENU_SHELL(menu), NULL); - etk_signal_connect("activated", ETK_OBJECT(menu_item), ETK_CALLBACK(etk_file_cache_dialog_cb), layout); - - menu_item = _entropy_etk_menu_item_new(ETK_MENU_ITEM_NORMAL, _("Help"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(menubar), NULL); - menu = etk_menu_new(); - etk_menu_item_submenu_set(ETK_MENU_ITEM(menu_item), ETK_MENU(menu)); - _entropy_etk_menu_item_new(ETK_MENU_ITEM_NORMAL, _("About.."), ETK_STOCK_HELP_BROWSER, ETK_MENU_SHELL(menu), NULL); - - - etk_box_pack_start(ETK_BOX(vbox), menubar, ETK_FALSE, ETK_FALSE, 0); - etk_box_pack_start(ETK_BOX(vbox), gui->paned, TRUE, TRUE, 0); - /*Tree init*/ gui->tree = etk_tree_new(); etk_paned_add1(ETK_PANED(gui->paned), gui->tree, ETK_FALSE); @@ -509,6 +500,10 @@ etk_widget_size_request_set(gui->tree, 230, 600); + /*LocalShell Init*/ + gui->localshell = etk_vbox_new(ETK_TRUE,0); + etk_paned_add2(ETK_PANED(gui->paned), gui->localshell, ETK_TRUE); + /*Popup init*/ gui->popup = etk_menu_new(); etk_signal_connect("row_clicked", ETK_OBJECT( gui->tree ), @@ -528,15 +523,30 @@ } /*Initialise the list view*/ - local = entropy_plugins_type_get_first(ENTROPY_PLUGIN_GUI_COMPONENT,ENTROPY_PLUGIN_GUI_COMPONENT_LOCAL_VIEW); + local = entropy_plugin_gui_get_by_name_toolkit(ENTROPY_TOOLKIT_ETK, "listviewer"); if (local) { local_plugin_init = dlsym (local->dl_ref, "entropy_plugin_gui_instance_new"); instance = (*local_plugin_init)(core, layout,NULL); instance->plugin = local; + instance->active=0; + gui->list_viewer = instance; + etk_box_pack_start(ETK_BOX(gui->localshell), instance->gui_object, ETK_TRUE,ETK_TRUE,0); + } + + /*Initialise the icon viewer*/ + /*Initialise the list view*/ + local = entropy_plugin_gui_get_by_name_toolkit(ENTROPY_TOOLKIT_ETK, "iconviewer"); + if (local) { + local_plugin_init = + dlsym (local->dl_ref, "entropy_plugin_gui_instance_new"); + gui->iconbox_viewer = (*local_plugin_init)(core, layout,NULL); + gui->iconbox_viewer->plugin = local; + //etk_box_pack_start(ETK_BOX(gui->localshell), instance->gui_object, ETK_TRUE,ETK_TRUE,0); } + /*Initialise the metadata plugin*/ meta = entropy_plugins_type_get_first(ENTROPY_PLUGIN_GUI_COMPONENT, ENTROPY_PLUGIN_GUI_COMPONENT_INFO_PROVIDER); if (meta) { @@ -546,7 +556,65 @@ meta_instance->plugin = meta; } - etk_paned_add2(ETK_PANED(gui->paned), instance->gui_object, ETK_TRUE); + + /*Menu setup*/ + menubar = etk_menu_bar_new(); + menu_item = _entropy_etk_menu_item_new(ETK_MENU_ITEM_NORMAL, _("File"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(menubar), NULL); + menu = etk_menu_new(); + etk_menu_item_submenu_set(ETK_MENU_ITEM(menu_item), ETK_MENU(menu)); + menu_item = _entropy_etk_menu_item_new(ETK_MENU_ITEM_NORMAL, _("Exit"), ETK_STOCK_SYSTEM_SHUTDOWN, ETK_MENU_SHELL(menu), NULL); + etk_signal_connect("activated", ETK_OBJECT(menu_item), ETK_CALLBACK(etk_layout_simple_exit_cb), layout); + + menu_item = _entropy_etk_menu_item_new(ETK_MENU_ITEM_NORMAL, _("Edit"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(menubar), NULL); + menu = etk_menu_new(); + etk_menu_item_submenu_set(ETK_MENU_ITEM(menu_item), ETK_MENU(menu)); + _entropy_etk_menu_item_new(ETK_MENU_ITEM_NORMAL, _("Cut"), ETK_STOCK_EDIT_CUT, ETK_MENU_SHELL(menu), NULL); + _entropy_etk_menu_item_new(ETK_MENU_ITEM_NORMAL, _("Copy"), ETK_STOCK_EDIT_COPY, ETK_MENU_SHELL(menu), NULL); + _entropy_etk_menu_item_new(ETK_MENU_ITEM_NORMAL, _("Paste"), ETK_STOCK_EDIT_PASTE, ETK_MENU_SHELL(menu), NULL); + + + menu_item = _entropy_etk_menu_item_new(ETK_MENU_ITEM_NORMAL, _("Tools"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(menubar), NULL); + menu = etk_menu_new(); + etk_menu_item_submenu_set(ETK_MENU_ITEM(menu_item), ETK_MENU(menu)); + + menu_item = _entropy_etk_menu_item_new(ETK_MENU_ITEM_NORMAL, _("Add Location"), ETK_STOCK_ADDRESS_BOOK_NEW, ETK_MENU_SHELL(menu), NULL); + etk_signal_connect("activated", ETK_OBJECT(menu_item), ETK_CALLBACK(_location_add_cb), layout); + + menu_item = _entropy_etk_menu_item_new(ETK_MENU_ITEM_NORMAL, _("Program Associations.."), + ETK_STOCK_EMBLEM_SYMBOLIC_LINK, ETK_MENU_SHELL(menu), NULL); + etk_signal_connect("activated", ETK_OBJECT(menu_item), ETK_CALLBACK(etk_mime_dialog_cb), layout); + + menu_item = _entropy_etk_menu_item_new(ETK_MENU_ITEM_NORMAL, _("View"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(menubar), NULL); + menu = etk_menu_new(); + etk_menu_item_submenu_set(ETK_MENU_ITEM(menu_item), ETK_MENU(menu)); + _entropy_etk_menu_item_new(ETK_MENU_ITEM_NORMAL, _("Tree View"), ETK_STOCK_SYSTEM_SHUTDOWN, ETK_MENU_SHELL(menu), NULL); + + menu_item = _entropy_etk_menu_item_new(ETK_MENU_ITEM_NORMAL, _("List View"), ETK_STOCK_SYSTEM_SHUTDOWN, ETK_MENU_SHELL(menu), NULL); + etk_object_data_set(ETK_OBJECT(menu_item), "VISUAL", gui->list_viewer); + etk_signal_connect("activated", ETK_OBJECT(menu_item), ETK_CALLBACK(etk_local_viewer_cb), layout); + + + menu_item = _entropy_etk_menu_item_new(ETK_MENU_ITEM_NORMAL, _("Icon View"), ETK_STOCK_IMAGE_X_GENERIC, ETK_MENU_SHELL(menu), NULL); + 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); + + + + menu_item = _entropy_etk_menu_item_new(ETK_MENU_ITEM_NORMAL, _("Debug"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(menubar), NULL); + menu = etk_menu_new(); + etk_menu_item_submenu_set(ETK_MENU_ITEM(menu_item), ETK_MENU(menu)); + menu_item = _entropy_etk_menu_item_new(ETK_MENU_ITEM_NORMAL, _("File Cache"), ETK_STOCK_PLACES_FOLDER_SAVED_SEARCH, ETK_MENU_SHELL(menu), NULL); + etk_signal_connect("activated", ETK_OBJECT(menu_item), ETK_CALLBACK(etk_file_cache_dialog_cb), layout); + + menu_item = _entropy_etk_menu_item_new(ETK_MENU_ITEM_NORMAL, _("Help"), ETK_STOCK_NO_STOCK, ETK_MENU_SHELL(menubar), NULL); + menu = etk_menu_new(); + etk_menu_item_submenu_set(ETK_MENU_ITEM(menu_item), ETK_MENU(menu)); + _entropy_etk_menu_item_new(ETK_MENU_ITEM_NORMAL, _("About.."), ETK_STOCK_HELP_BROWSER, ETK_MENU_SHELL(menu), NULL); + + + etk_box_pack_start(ETK_BOX(vbox), menubar, ETK_FALSE, ETK_FALSE, 0); + etk_box_pack_start(ETK_BOX(vbox), gui->paned, TRUE, TRUE, 0); + /*---------------------------*/ gui->statusbar_box = etk_hbox_new(ETK_TRUE, 0); etk_box_pack_start(ETK_BOX(vbox), gui->statusbar_box, ETK_FALSE, ETK_FALSE, 0); ------------------------------------------------------- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642 _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs