Enlightenment CVS committal
Author : chaos
Project : e17
Module : proto
Dir : e17/proto/entropy/src/plugins
Modified Files:
etk_icon_viewer.c etk_list_viewer.c layout_etk_simple.c
thumbnailer.c
Log Message:
* Big changes - copy/cut/paste events/requests now available to layout event
consumers
* This is also means that cut/copy/paste are now available from the main window
(as well as through Ctrl-(x|c|v)
===================================================================
RCS file: /cvs/e/e17/proto/entropy/src/plugins/etk_icon_viewer.c,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -3 -r1.20 -r1.21
--- etk_icon_viewer.c 6 Sep 2006 11:09:22 -0000 1.20
+++ etk_icon_viewer.c 7 Sep 2006 13:40:15 -0000 1.21
@@ -49,6 +49,8 @@
entropy_generic_file * file);
void icon_viewer_remove_row(entropy_gui_component_instance * instance,
entropy_generic_file * file);
+Ecore_List*
+entropy_etk_icon_viewer_selected_get(entropy_etk_iconbox_viewer* viewer);
int
@@ -243,19 +245,13 @@
if (ctrl_pressed != ETK_TRUE)
etk_iconbox_unselect_all(ETK_ICONBOX(viewer->iconbox));
etk_iconbox_icon_select(icon);
- selected = ecore_list_new();
- for (icon = ETK_ICONBOX(viewer->iconbox)->first_icon; icon ; icon =
icon->next ) {
- if (etk_iconbox_is_selected(icon)) {
- file = etk_iconbox_icon_data_get(icon);
- ecore_list_append(selected, file);
- selected_count++;
- }
- }
-
- if (selected_count > 1) {
- entropy_etk_context_menu_popup_multi(instance,selected);
- } else {
- entropy_etk_context_menu_popup(instance, file);
+ selected = entropy_etk_icon_viewer_selected_get(viewer);
+ if (ecore_list_nodes(selected)) {
+ if (ecore_list_nodes(selected) > 1) {
+
entropy_etk_context_menu_popup_multi(instance,selected);
+ } else {
+ entropy_etk_context_menu_popup(instance, file);
+ }
}
ecore_list_destroy(selected);
}
@@ -335,9 +331,49 @@
}
break;
+ case ENTROPY_NOTIFY_COPY_REQUEST: {
+ Ecore_List* selected;
+ entropy_generic_file* file;
+
+ printf("ICONBOX: Copy request\n");
+
+ entropy_core_selected_files_clear();
+ selected = entropy_etk_icon_viewer_selected_get(viewer);
+
+ ecore_list_goto_first(selected);
+ while ( (file = ecore_list_next(selected))) {
+ entropy_core_selected_file_add(file);
+ }
+ }
+ break;
+
+ case ENTROPY_NOTIFY_CUT_REQUEST: {
+ printf("ICONBOX: Cut request\n");
+ }
+ break;
+
}
}
+Ecore_List*
+entropy_etk_icon_viewer_selected_get(entropy_etk_iconbox_viewer* viewer)
+{
+ Ecore_List* selected;
+ Etk_Iconbox_Icon* icon;
+ entropy_generic_file* file;
+
+ selected = ecore_list_new();
+ for (icon = ETK_ICONBOX(viewer->iconbox)->first_icon; icon ; icon =
icon->next ) {
+ if (etk_iconbox_is_selected(icon)) {
+ file = etk_iconbox_icon_data_get(icon);
+ ecore_list_append(selected, file);
+ }
+ }
+
+ return selected;
+}
+
+
void
icon_viewer_add_row (entropy_gui_component_instance * instance,
entropy_generic_file * file)
@@ -365,7 +401,6 @@
entropy_generic_file * file)
{
entropy_etk_iconbox_viewer* viewer;
- Etk_Iconbox_Icon* icon;
gui_file* event_file = NULL;
viewer = instance->data;
@@ -566,6 +601,15 @@
entropy_core_component_event_register (instance,
entropy_core_gui_event_get
(ENTROPY_GUI_EVENT_THUMBNAIL_AVAILABLE));
+
+ /*We want to know if the core sends copy/cut requests*/
+ entropy_core_component_event_register (instance,
+ entropy_core_gui_event_get
+ (ENTROPY_GUI_EVENT_COPY_REQUEST));
+
+ entropy_core_component_event_register (instance,
+ entropy_core_gui_event_get
+ (ENTROPY_GUI_EVENT_CUT_REQUEST));
etk_widget_show_all(viewer->vbox);
===================================================================
RCS file: /cvs/e/e17/proto/entropy/src/plugins/etk_list_viewer.c,v
retrieving revision 1.72
retrieving revision 1.73
diff -u -3 -r1.72 -r1.73
--- etk_list_viewer.c 5 Sep 2006 08:10:11 -0000 1.72
+++ etk_list_viewer.c 7 Sep 2006 13:40:15 -0000 1.73
@@ -825,6 +825,15 @@
entropy_core_gui_event_get
(ENTROPY_GUI_EVENT_THUMBNAIL_AVAILABLE));
+ /*We want to know if the core sends copy/cut requests*/
+ entropy_core_component_event_register (instance,
+ entropy_core_gui_event_get
+ (ENTROPY_GUI_EVENT_COPY_REQUEST));
+
+ entropy_core_component_event_register (instance,
+ entropy_core_gui_event_get
+ (ENTROPY_GUI_EVENT_CUT_REQUEST));
+
if (!etk_callback_setup) {
===================================================================
RCS file: /cvs/e/e17/proto/entropy/src/plugins/layout_etk_simple.c,v
retrieving revision 1.67
retrieving revision 1.68
diff -u -3 -r1.67 -r1.68
--- layout_etk_simple.c 5 Sep 2006 07:05:49 -0000 1.67
+++ layout_etk_simple.c 7 Sep 2006 13:40:15 -0000 1.68
@@ -75,6 +75,10 @@
void entropy_layout_etk_simple_local_view_set(entropy_gui_component_instance*
instance,
entropy_gui_component_instance* local);
+static void _entropy_layout_etk_cut_cb(Etk_Object* object, void* data);
+static void _entropy_layout_etk_copy_cb(Etk_Object* object, void* data);
+static void _entropy_layout_etk_paste_cb(Etk_Object* object, void* data);
+
void layout_etk_simple_quit(entropy_core* core)
@@ -198,6 +202,28 @@
return menu_item;
}
+
+
+/*-----*/
+/*Cut/Copy/Paste Callbacks*/
+static void _entropy_layout_etk_cut_cb(Etk_Object* object, void* data)
+{
+ printf("Cut request at layout..\n");
+ entropy_event_cut_request(data);
+}
+
+static void _entropy_layout_etk_copy_cb(Etk_Object* object, void* data)
+{
+ printf("Copy request at layout..\n");
+ entropy_event_copy_request(data);
+}
+
+static void _entropy_layout_etk_paste_cb(Etk_Object* object, void* data)
+{
+ printf("Paste request at layout..\n");
+ entropy_event_paste_request(data);
+}
+
/*-----*/
/*Location related functions*/
static void _etk_layout_location_delete_confirm_cb(Etk_Object * object, void
*data)
@@ -465,6 +491,12 @@
{
if (!strcmp(ev->key, "q")) {
layout_etk_simple_quit(instance->core);
+ } else if (!strcmp(ev->key, "c")) {
+ _entropy_layout_etk_copy_cb(NULL, instance);
+ } else if (!strcmp(ev->key, "x")) {
+ _entropy_layout_etk_cut_cb(NULL, instance);
+ } else if (!strcmp(ev->key, "v")) {
+ _entropy_layout_etk_paste_cb(NULL, instance);
}
} else if ((ev->modifiers & ETK_MODIFIER_ALT)) {
if (!strcmp(ev->key, "i")) {
@@ -610,8 +642,30 @@
}
break;
- case ENTROPY_NOTIFY_METADATA_GROUPS: {
-
/*entropy_etk_context_menu_metadata_groups_populate((Evas_List*)eevent->return_struct);*/
+ case ENTROPY_NOTIFY_PASTE_REQUEST: {
+ printf("Paste request..\n");
+
+ Entropy_Selection_Type stype =
entropy_core_selection_type_get();
+ entropy_generic_file* cfolder =
+
((entropy_gui_component_instance_layout*)comp)->current_folder;
+ Ecore_List* files = entropy_core_selected_files_get();
+
+ if (cfolder) {
+ char* f_uri = cfolder->uri;
+ if (f_uri) {
+ if (stype == ENTROPY_SELECTION_COPY) {
+
entropy_plugin_filesystem_file_copy_multi(files, f_uri,
+ comp);
+ } else if (stype == ENTROPY_SELECTION_CUT) {
+
entropy_plugin_filesystem_file_move_multi(files, f_uri,
+ comp);
+ } else {
+ printf("Unsupported copy type at
context menu paste\n");
+ }
+ }
+ } else {
+ printf("Current folder is NULL at layout paste\n");
+ }
}
break;
@@ -706,6 +760,10 @@
entropy_core_gui_event_get
(ENTROPY_GUI_EVENT_METADATA_GROUPS));
+ entropy_core_component_event_register (layout,
+ entropy_core_gui_event_get
+ (ENTROPY_GUI_EVENT_PASTE_REQUEST));
+
/*Etk related init */
window = etk_window_new ();
@@ -855,9 +913,15 @@
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, _("Cut"),
ETK_STOCK_EDIT_CUT, ETK_MENU_SHELL(menu), NULL);
+ etk_signal_connect("activated", ETK_OBJECT(menu_item),
ETK_CALLBACK(_entropy_layout_etk_cut_cb), layout);
+
+ menu_item = _entropy_etk_menu_item_new(ETK_MENU_ITEM_NORMAL, _("Copy"),
ETK_STOCK_EDIT_COPY, ETK_MENU_SHELL(menu), NULL);
+ etk_signal_connect("activated", ETK_OBJECT(menu_item),
ETK_CALLBACK(_entropy_layout_etk_copy_cb), layout);
+
+ menu_item = _entropy_etk_menu_item_new(ETK_MENU_ITEM_NORMAL, _("Paste"),
ETK_STOCK_EDIT_PASTE, ETK_MENU_SHELL(menu), NULL);
+ etk_signal_connect("activated", ETK_OBJECT(menu_item),
ETK_CALLBACK(_entropy_layout_etk_paste_cb), layout);
/*Tools menu*/
===================================================================
RCS file: /cvs/e/e17/proto/entropy/src/plugins/thumbnailer.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -3 -r1.11 -r1.12
--- thumbnailer.c 6 Aug 2006 05:33:50 -0000 1.11
+++ thumbnailer.c 7 Sep 2006 13:40:15 -0000 1.12
@@ -90,7 +90,7 @@
plugin = entropy_malloc(sizeof(Entropy_Plugin_Thumbnailer_Child));
- return plugin;
+ return ENTROPY_PLUGIN(plugin);
}
-------------------------------------------------------------------------
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs