From: <enl...@li...> - 2005-08-04 07:20:46
|
Enlightenment CVS committal Author : lordchaos Project : e17 Module : libs/ewl Dir : e17/libs/ewl/src/lib Modified Files: ewl_iconbox.c Log Message: Free some objects we should have been destroying =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/lib/ewl_iconbox.c,v retrieving revision 1.14 retrieving revision 1.15 diff -u -3 -r1.14 -r1.15 --- ewl_iconbox.c 2 Aug 2005 12:20:21 -0000 1.14 +++ ewl_iconbox.c 4 Aug 2005 07:20:37 -0000 1.15 @@ -739,8 +739,16 @@ Ewl_IconBox_Icon* icon = EWL_ICONBOX_ICON(w); DENTER_FUNCTION(DLEVEL_STABLE); + ewl_widget_hide(icon->image); + ewl_widget_hide(icon->floater); + /*ewl_widget_destroy(icon->image); + ewl_widget_destroy(icon->floater);*/ + ewl_container_child_remove(EWL_CONTAINER(icon), icon->image); + ewl_container_child_remove(EWL_CONTAINER(icon), icon->w_label); + ewl_container_child_remove(EWL_CONTAINER(icon->floater), icon); ewl_widget_destroy(icon->image); - ewl_widget_destroy(icon->floater); + /*ewl_widget_destroy(icon->floater);*/ + ewl_widget_destroy(icon->w_label); DLEAVE_FUNCTION(DLEVEL_STABLE); } @@ -752,8 +760,8 @@ ib = ewl_iconbox_icon_new(); - /*ewl_callback_append(EWL_WIDGET(ib), EWL_CALLBACK_DESTROY, - ewl_iconbox_icon_destroy_cb, NULL);*/ + ewl_callback_append(EWL_WIDGET(ib), EWL_CALLBACK_DESTROY, + ewl_iconbox_icon_destroy_cb, NULL); EWL_ICONBOX_ICON(ib)->selected = 0; EWL_ICONBOX_ICON(ib)->floater = ewl_floater_new(iconbox->ewl_iconbox_pane_inner); @@ -853,12 +861,12 @@ } ewl_container_child_remove(EWL_CONTAINER(ib->ewl_iconbox_pane_inner), EWL_WIDGET(list_item)); + ewl_widget_destroy(EWL_WIDGET(list_item)); } /*printf("...dione\n");*/ - ecore_list_destroy(ib->ewl_iconbox_icon_list); + ecore_list_clear(ib->ewl_iconbox_icon_list); } - ib->ewl_iconbox_icon_list = ecore_list_new(); } |
From: <enl...@li...> - 2005-08-05 04:17:57
|
Enlightenment CVS committal Author : lordchaos Project : e17 Module : libs/ewl Dir : e17/libs/ewl/src/lib Modified Files: ewl_iconbox.c Log Message: Memory cleanups =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/lib/ewl_iconbox.c,v retrieving revision 1.15 retrieving revision 1.16 diff -u -3 -r1.15 -r1.16 --- ewl_iconbox.c 4 Aug 2005 07:20:37 -0000 1.15 +++ ewl_iconbox.c 5 Aug 2005 04:17:51 -0000 1.16 @@ -137,6 +137,12 @@ } +void ewl_iconbox_destroy_cb(Ewl_Widget *w, void *ev_data, void *user_data) { + Ewl_IconBox* ib = EWL_ICONBOX(w); + + ewl_iconbox_clear(ib); +} + int ewl_iconbox_init(Ewl_IconBox* ib) { Ewl_Widget *w; @@ -274,6 +280,7 @@ ewl_callback_append(ib->ewl_iconbox_pane_inner, EWL_CALLBACK_MOUSE_DOWN, ewl_iconbox_pane_mouse_down_cb, ib); ewl_callback_append(ib->ewl_iconbox_pane_inner, EWL_CALLBACK_MOUSE_UP, ewl_iconbox_mouse_up, ib); ewl_callback_append(EWL_WIDGET(ib), EWL_CALLBACK_CONFIGURE, configure, NULL); + ewl_callback_append(EWL_WIDGET(ib), EWL_CALLBACK_DESTROY, ewl_iconbox_destroy_cb, NULL); /*printf("Setup the iconbox...\n");*/ @@ -745,9 +752,9 @@ ewl_widget_destroy(icon->floater);*/ ewl_container_child_remove(EWL_CONTAINER(icon), icon->image); ewl_container_child_remove(EWL_CONTAINER(icon), icon->w_label); - ewl_container_child_remove(EWL_CONTAINER(icon->floater), icon); + /*ewl_container_child_remove(EWL_CONTAINER(icon->floater), icon);*/ + //ewl_container_child_remove(EWL_CONTAINER(icon->icon_box_parent->ewl_iconbox_pane_inner), icon->floater); ewl_widget_destroy(icon->image); - /*ewl_widget_destroy(icon->floater);*/ ewl_widget_destroy(icon->w_label); DLEAVE_FUNCTION(DLEVEL_STABLE); } @@ -760,8 +767,7 @@ ib = ewl_iconbox_icon_new(); - ewl_callback_append(EWL_WIDGET(ib), EWL_CALLBACK_DESTROY, - ewl_iconbox_icon_destroy_cb, NULL); + EWL_ICONBOX_ICON(ib)->selected = 0; EWL_ICONBOX_ICON(ib)->floater = ewl_floater_new(iconbox->ewl_iconbox_pane_inner); @@ -812,19 +818,12 @@ /* Add a callback to the border box label, for editing purposes... */ ewl_callback_prepend(EWL_ICONBOX_ICON(ib)->w_label, EWL_CALLBACK_MOUSE_DOWN, ewl_iconbox_icon_label_mouse_down_cb, ib); + ewl_callback_append(EWL_WIDGET(ib), EWL_CALLBACK_DESTROY, + ewl_iconbox_icon_destroy_cb, NULL); + /* Add this icon to the icon list */ ecore_list_append(iconbox->ewl_iconbox_icon_list, ib); - /*BUG FIX - Call the realize event so that selection works */ - /*ewl_callback_call(EWL_WIDGET(EWL_BORDER(ib->box)->label), EWL_CALLBACK_REALIZE);*/ - - /*printf("Added icon: '%s'\n", name);*/ - - /*ewl_object_alignment_set(EWL_OBJECT(ib), EWL_FLAG_ALIGN_CENTER);*/ - /*ewl_widget_layer_set(EWL_WIDGET(ib), 500);*/ - - - return EWL_ICONBOX_ICON(ib); } @@ -862,6 +861,13 @@ ewl_container_child_remove(EWL_CONTAINER(ib->ewl_iconbox_pane_inner), EWL_WIDGET(list_item)); + /*Delete our callbacks*/ + ewl_callback_del(EWL_ICONBOX_ICON(list_item)->image, EWL_CALLBACK_MOUSE_DOWN, ewl_iconbox_icon_mouse_down); + ewl_callback_del(EWL_ICONBOX_ICON(list_item)->image, EWL_CALLBACK_MOUSE_UP, ewl_iconbox_icon_mouse_up); + ewl_callback_del(EWL_ICONBOX_ICON(list_item)->w_label, EWL_CALLBACK_MOUSE_DOWN, ewl_iconbox_icon_label_mouse_down_cb); + + ewl_callback_del(EWL_WIDGET(list_item), EWL_CALLBACK_DESTROY,ewl_iconbox_icon_destroy_cb); + ewl_widget_destroy(EWL_WIDGET(list_item)); } /*printf("...dione\n");*/ |
From: <enl...@li...> - 2005-08-05 11:05:47
|
Enlightenment CVS committal Author : lordchaos Project : e17 Module : libs/ewl Dir : e17/libs/ewl/src/lib Modified Files: ewl_iconbox.c Log Message: Bad mem free fix =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/lib/ewl_iconbox.c,v retrieving revision 1.16 retrieving revision 1.17 diff -u -3 -r1.16 -r1.17 --- ewl_iconbox.c 5 Aug 2005 04:17:51 -0000 1.16 +++ ewl_iconbox.c 5 Aug 2005 11:05:40 -0000 1.17 @@ -748,14 +748,21 @@ DENTER_FUNCTION(DLEVEL_STABLE); ewl_widget_hide(icon->image); ewl_widget_hide(icon->floater); - /*ewl_widget_destroy(icon->image); - ewl_widget_destroy(icon->floater);*/ ewl_container_child_remove(EWL_CONTAINER(icon), icon->image); ewl_container_child_remove(EWL_CONTAINER(icon), icon->w_label); - /*ewl_container_child_remove(EWL_CONTAINER(icon->floater), icon);*/ - //ewl_container_child_remove(EWL_CONTAINER(icon->icon_box_parent->ewl_iconbox_pane_inner), icon->floater); + ewl_container_child_remove(EWL_CONTAINER(icon->floater), EWL_WIDGET(icon)); + ewl_container_child_remove(EWL_CONTAINER(icon->icon_box_parent->ewl_iconbox_pane_inner), EWL_WIDGET(icon->floater)); ewl_widget_destroy(icon->image); ewl_widget_destroy(icon->w_label); + ewl_widget_destroy(icon->floater); + + if (icon->label) { + free(icon->label); + } + if (icon->label_compressed) { + free(icon->label_compressed); + } + DLEAVE_FUNCTION(DLEVEL_STABLE); } @@ -852,12 +859,7 @@ ecore_list_goto_first(ib->ewl_iconbox_icon_list); while((list_item = (Ewl_IconBox_Icon*)ecore_list_next(ib->ewl_iconbox_icon_list)) != NULL) { /*printf("Deleting icon..\n");*/ - if (list_item->label) { - free(list_item->label); - } - if (list_item->label_compressed) { - free(list_item->label_compressed); - } + ewl_container_child_remove(EWL_CONTAINER(ib->ewl_iconbox_pane_inner), EWL_WIDGET(list_item)); |
From: <enl...@li...> - 2005-08-24 02:22:06
|
Enlightenment CVS committal Author : lordchaos Project : e17 Module : libs/ewl Dir : e17/libs/ewl/src/lib Modified Files: ewl_iconbox.c Log Message: Free memory where ewl_image is not freeing string =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/lib/ewl_iconbox.c,v retrieving revision 1.17 retrieving revision 1.18 diff -u -3 -r1.17 -r1.18 --- ewl_iconbox.c 5 Aug 2005 11:05:40 -0000 1.17 +++ ewl_iconbox.c 24 Aug 2005 02:21:54 -0000 1.18 @@ -697,7 +697,7 @@ ewl_text_bg_color_set(EWL_TEXT(ib->w_label), 0, 0, 255, 255); ewl_text_cursor_position_set(EWL_TEXT(ib->w_label), 0); - ewl_text_color_apply(EWL_TEXT(ib->w_label), 0, 0, 255, 255, strlen(ib->label)); + ewl_text_color_apply(EWL_TEXT(ib->w_label), 0, 0, 255, 255, ewl_text_length_get(EWL_TEXT(ib->w_label))); } @@ -743,6 +743,8 @@ void ewl_iconbox_icon_destroy_cb(Ewl_Widget *w, void *ev_data __UNUSED__, void *user_data __UNUSED__) { + printf("Called destroy on icon...\n"); + Ewl_IconBox_Icon* icon = EWL_ICONBOX_ICON(w); DENTER_FUNCTION(DLEVEL_STABLE); @@ -756,6 +758,9 @@ ewl_widget_destroy(icon->w_label); ewl_widget_destroy(icon->floater); + /*Temporary hack to nuke the ewl_image path str*/ + if (EWL_IMAGE(icon->image)->path) free(EWL_IMAGE(icon->image)->path); + if (icon->label) { free(icon->label); } |
From: <enl...@li...> - 2005-08-25 10:04:20
|
Enlightenment CVS committal Author : lordchaos Project : e17 Module : libs/ewl Dir : e17/libs/ewl/src/lib Modified Files: ewl_iconbox.c Log Message: Removed temp hack to accomodate mem leak in ewl_image =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/lib/ewl_iconbox.c,v retrieving revision 1.18 retrieving revision 1.19 diff -u -3 -r1.18 -r1.19 --- ewl_iconbox.c 24 Aug 2005 02:21:54 -0000 1.18 +++ ewl_iconbox.c 25 Aug 2005 10:04:04 -0000 1.19 @@ -758,9 +758,6 @@ ewl_widget_destroy(icon->w_label); ewl_widget_destroy(icon->floater); - /*Temporary hack to nuke the ewl_image path str*/ - if (EWL_IMAGE(icon->image)->path) free(EWL_IMAGE(icon->image)->path); - if (icon->label) { free(icon->label); } |
From: <enl...@li...> - 2005-08-25 10:07:44
|
Enlightenment CVS committal Author : lordchaos Project : e17 Module : libs/ewl Dir : e17/libs/ewl/src/lib Modified Files: ewl_image.h Log Message: Add destroy callback to ewl_image.h to make ewl compile =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/lib/ewl_image.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- ewl_image.h 28 Mar 2005 02:44:40 -0000 1.3 +++ ewl_image.h 25 Aug 2005 10:07:34 -0000 1.4 @@ -73,6 +73,8 @@ void *user_data); void ewl_image_mouse_move_cb(Ewl_Widget * w, void *ev_data, void *user_data); +void ewl_image_destroy_cb(Ewl_Widget * w, void *ev_data, + void *user_data ); /** * @} |
From: <enl...@li...> - 2005-08-25 11:40:16
|
Enlightenment CVS committal Author : lordchaos Project : e17 Module : libs/ewl Dir : e17/libs/ewl/src/lib Modified Files: ewl_iconbox.c Log Message: Oops, left a debug message in =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/lib/ewl_iconbox.c,v retrieving revision 1.19 retrieving revision 1.20 diff -u -3 -r1.19 -r1.20 --- ewl_iconbox.c 25 Aug 2005 10:04:04 -0000 1.19 +++ ewl_iconbox.c 25 Aug 2005 11:40:05 -0000 1.20 @@ -743,7 +743,6 @@ void ewl_iconbox_icon_destroy_cb(Ewl_Widget *w, void *ev_data __UNUSED__, void *user_data __UNUSED__) { - printf("Called destroy on icon...\n"); Ewl_IconBox_Icon* icon = EWL_ICONBOX_ICON(w); |
From: <enl...@li...> - 2005-09-22 04:14:35
|
Enlightenment CVS committal Author : lordchaos Project : e17 Module : libs/ewl Dir : e17/libs/ewl/src/lib Modified Files: ewl_iconbox.c Log Message: Perform better cleanup on iconbox clear =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/lib/ewl_iconbox.c,v retrieving revision 1.21 retrieving revision 1.22 diff -u -3 -r1.21 -r1.22 --- ewl_iconbox.c 5 Sep 2005 14:12:15 -0000 1.21 +++ ewl_iconbox.c 22 Sep 2005 04:14:27 -0000 1.22 @@ -876,5 +876,7 @@ ecore_list_clear(ib->ewl_iconbox_icon_list); } + + ib->drag_icon = NULL; } |
From: <enl...@li...> - 2005-10-02 22:04:29
|
Enlightenment CVS committal Author : lordchaos Project : e17 Module : libs/ewl Dir : e17/libs/ewl/src/lib Modified Files: ewl_iconbox.c ewl_iconbox.h Log Message: . Change layer for drag select box . Add support for background files =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/lib/ewl_iconbox.c,v retrieving revision 1.22 retrieving revision 1.23 diff -u -3 -r1.22 -r1.23 --- ewl_iconbox.c 22 Sep 2005 04:14:27 -0000 1.22 +++ ewl_iconbox.c 2 Oct 2005 00:57:41 -0000 1.23 @@ -76,6 +76,16 @@ ewl_iconbox_inner_pane_calculate(EWL_ICONBOX(w)); /*ewl_iconbox_icon_arrange(ib); */ ewl_callback_append(EWL_WIDGET(ib), EWL_CALLBACK_CONFIGURE, configure, NULL); + + /*Handle the background, if any*/ + if (ib->background) { + evas_object_clip_set(ib->background, EWL_WIDGET(ib)->fx_clip_box); + evas_object_move(ib->background, CURRENT_X(ib), CURRENT_Y(ib)); + evas_object_layer_set(ib->background, -1000); + + evas_object_image_fill_set(ib->background, 0,0, CURRENT_W(ib), CURRENT_H(ib)); + evas_object_resize(ib->background, CURRENT_W(ib), CURRENT_H(ib)); + } } } @@ -222,13 +232,13 @@ /* Create the selector / selector floater */ ib->select_floater = ewl_floater_new(ib->ewl_iconbox_pane_inner); ewl_object_fill_policy_set(EWL_OBJECT(ib->select_floater), EWL_FLAG_FILL_FILL); - ib->select =ewl_button_new(""); + ib->select =ewl_button_new(NULL); ewl_container_child_append(EWL_CONTAINER(ib->select_floater), ib->select); ewl_container_child_append(EWL_CONTAINER(ib->ewl_iconbox_pane_inner), ib->select_floater); ewl_object_custom_size_set(EWL_OBJECT(ib->select), 80, 40); - ewl_widget_layer_set(EWL_WIDGET(ib->select_floater), 1000); + ewl_widget_layer_set(EWL_WIDGET(ib->select_floater), -1); ewl_widget_color_set(EWL_WIDGET(ib->select), 128, 50, 70, 128); ib->drag_box = 0; @@ -266,6 +276,9 @@ ewl_object_custom_size_set(EWL_OBJECT(ib->entry_box), 50, 15); ewl_object_fill_policy_set(EWL_OBJECT(ib->entry_floater), EWL_FLAG_FILL_SHRINK); ewl_container_child_append(EWL_CONTAINER(ib->ewl_iconbox_pane_inner), ib->entry_floater); + + + /* Bind a callback to keypress on the entry, so we can update the label */ @@ -288,6 +301,30 @@ } +void ewl_iconbox_background_set(Ewl_IconBox* ib, char* file) { + /*Add a background image*/ + { + Ewl_Embed *emb; + emb = ewl_embed_widget_find(EWL_WIDGET(ib)); + if (emb) { + ib->background = evas_object_image_add(emb->evas); + evas_object_image_file_set(ib->background, file, NULL); + + evas_object_clip_set(ib->background, EWL_WIDGET(ib)->fx_clip_box); + evas_object_move(ib->background, CURRENT_X(ib), CURRENT_Y(ib)); + evas_object_layer_set(ib->background, -1000); + + evas_object_image_fill_set(ib->background, 0,0, CURRENT_W(ib), CURRENT_H(ib)); + evas_object_resize(ib->background, CURRENT_W(ib), CURRENT_H(ib)); + + evas_object_show(ib->background); + } else { + printf("////////////////////////// Could not find top level widget\n"); + } + } +} + + /* ----------- */ void ewl_iconbox_arrange_cb(Ewl_Widget *w, void *ev_data, void *user_data) { Ewl_IconBox* ib = EWL_ICONBOX(user_data); =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/lib/ewl_iconbox.h,v retrieving revision 1.7 retrieving revision 1.8 diff -u -3 -r1.7 -r1.8 --- ewl_iconbox.h 17 Aug 2005 18:07:52 -0000 1.7 +++ ewl_iconbox.h 2 Oct 2005 00:57:41 -0000 1.8 @@ -79,6 +79,9 @@ int xdown, ydown; /* Last icon button down x/y, for edge resistence */ int dx, dy; /* Drag start x/y */ + /*Background*/ + Evas_Object* background; + /* Objects for label editing..*/ Ewl_Widget* entry; Ewl_Widget* entry_floater; @@ -109,6 +112,7 @@ Ewl_IconBox_Icon* ewl_iconbox_icon_add(Ewl_IconBox* iconbox, char* name, char* icon_file); void ewl_iconbox_clear(Ewl_IconBox* iconbox); void ewl_iconbox_icon_image_set(Ewl_IconBox_Icon* icon, char* filename); +void ewl_iconbox_background_set(Ewl_IconBox* ib, char* file); /* Internal callbacks */ |
From: <enl...@li...> - 2005-10-04 11:11:25
|
Enlightenment CVS committal Author : lordchaos Project : e17 Module : libs/ewl Dir : e17/libs/ewl/src/lib Modified Files: ewl_paned.c Log Message: Temporary width fix to grabber width in ewl_paned. Is this what we want? Without this the grabber width seems to change size randomly =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/lib/ewl_paned.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- ewl_paned.c 4 Oct 2005 05:23:26 -0000 1.5 +++ ewl_paned.c 4 Oct 2005 11:11:00 -0000 1.6 @@ -110,6 +110,7 @@ ewl_widget_show(EWL_WIDGET(p->first)); p->grabber = ewl_vseparator_new(); + ewl_object_custom_w_set(EWL_OBJECT(p->grabber), 10); ewl_container_child_append(EWL_CONTAINER(p), EWL_WIDGET(p->grabber)); ewl_callback_append(EWL_WIDGET(p->grabber), EWL_CALLBACK_MOUSE_DOWN, |
From: <enl...@li...> - 2005-10-07 10:42:10
|
Enlightenment CVS committal Author : lordchaos Project : e17 Module : libs/ewl Dir : e17/libs/ewl/src/lib Modified Files: ewl_iconbox.c Log Message: Changed to imenu for now, because ewl_menu appears broken =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/lib/ewl_iconbox.c,v retrieving revision 1.24 retrieving revision 1.25 diff -u -3 -r1.24 -r1.25 --- ewl_iconbox.c 3 Oct 2005 06:43:07 -0000 1.24 +++ ewl_iconbox.c 7 Oct 2005 10:42:01 -0000 1.25 @@ -202,12 +202,12 @@ /* Get the context menu ready */ - ib->ewl_iconbox_context_menu = ewl_menu_new(NULL, ""); + ib->ewl_iconbox_context_menu = ewl_imenu_new(NULL, ""); ewl_container_child_append(EWL_CONTAINER(ib->ewl_iconbox_menu_floater), ib->ewl_iconbox_context_menu); ewl_widget_show(ib->ewl_iconbox_context_menu); /* Add auto-arrange ability */ - ib->ewl_iconbox_view_menu = ewl_menu_new(NULL, "View"); + ib->ewl_iconbox_view_menu = ewl_imenu_new(NULL, "View"); ewl_container_child_append(EWL_CONTAINER(ib->ewl_iconbox_context_menu), ib->ewl_iconbox_view_menu); ib->ewl_iconbox_context_menu_item = ewl_menu_item_new(NULL, "Auto-Arrange"); @@ -935,7 +935,13 @@ ewl_callback_del(EWL_WIDGET(list_item), EWL_CALLBACK_DESTROY,ewl_iconbox_icon_destroy_cb); + /*Delete all callbacks on double click - onus should probably be on assigner to do this.? */ + ewl_callback_del_type(EWL_WIDGET(list_item), EWL_CALLBACK_MOUSE_DOWN); + + ewl_widget_destroy(EWL_WIDGET(list_item)); + + } /*printf("...dione\n");*/ |
From: <enl...@li...> - 2005-10-09 23:34:08
|
Enlightenment CVS committal Author : lordchaos Project : e17 Module : libs/ewl Dir : e17/libs/ewl/src/lib Modified Files: ewl_iconbox.c Log Message: Fixed an iconbox porting mistake =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/lib/ewl_iconbox.c,v retrieving revision 1.26 retrieving revision 1.27 diff -u -3 -r1.26 -r1.27 --- ewl_iconbox.c 9 Oct 2005 05:18:39 -0000 1.26 +++ ewl_iconbox.c 9 Oct 2005 23:34:05 -0000 1.27 @@ -847,7 +847,7 @@ EWL_ICONBOX_ICON(ib)->selected = 0; EWL_ICONBOX_ICON(ib)->floater = ewl_floater_new(); - ewl_floater_follow_set(EWL_FLOATER(iconbox->ewl_iconbox_pane_inner), + ewl_floater_follow_set(EWL_FLOATER( EWL_ICONBOX_ICON(ib)->floater ), iconbox->ewl_iconbox_pane_inner); /*Set the label*/ |
From: <enl...@li...> - 2005-10-15 03:08:38
|
Enlightenment CVS committal Author : lordchaos Project : e17 Module : libs/ewl Dir : e17/libs/ewl/src/lib Modified Files: ewl_iconbox.c Log Message: Start of an iconbox cleanup =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/lib/ewl_iconbox.c,v retrieving revision 1.28 retrieving revision 1.29 diff -u -3 -r1.28 -r1.29 --- ewl_iconbox.c 10 Oct 2005 18:43:31 -0000 1.28 +++ ewl_iconbox.c 15 Oct 2005 03:08:32 -0000 1.29 @@ -820,16 +820,6 @@ Ewl_IconBox_Icon* icon = EWL_ICONBOX_ICON(w); DENTER_FUNCTION(DLEVEL_STABLE); - ewl_widget_hide(icon->image); - ewl_widget_hide(icon->floater); - ewl_container_child_remove(EWL_CONTAINER(icon), icon->image); - ewl_container_child_remove(EWL_CONTAINER(icon), icon->w_label); - ewl_container_child_remove(EWL_CONTAINER(icon->floater), EWL_WIDGET(icon)); - ewl_container_child_remove(EWL_CONTAINER(icon->icon_box_parent->ewl_iconbox_pane_inner), EWL_WIDGET(icon->floater)); - ewl_widget_destroy(icon->image); - ewl_widget_destroy(icon->w_label); - ewl_widget_destroy(icon->floater); - if (icon->label) { free(icon->label); } @@ -939,20 +929,8 @@ while((list_item = (Ewl_IconBox_Icon*)ecore_list_next(ib->ewl_iconbox_icon_list)) != NULL) { /*printf("Deleting icon..\n");*/ - - ewl_container_child_remove(EWL_CONTAINER(ib->ewl_iconbox_pane_inner), EWL_WIDGET(list_item)); - - /*Delete our callbacks*/ - ewl_callback_del(EWL_ICONBOX_ICON(list_item)->image, EWL_CALLBACK_MOUSE_DOWN, ewl_iconbox_icon_mouse_down); - ewl_callback_del(EWL_ICONBOX_ICON(list_item)->image, EWL_CALLBACK_MOUSE_UP, ewl_iconbox_icon_mouse_up); - ewl_callback_del(EWL_ICONBOX_ICON(list_item)->w_label, EWL_CALLBACK_MOUSE_DOWN, ewl_iconbox_icon_label_mouse_down_cb); - - ewl_callback_del(EWL_WIDGET(list_item), EWL_CALLBACK_DESTROY,ewl_iconbox_icon_destroy_cb); - - /*Delete all callbacks on double click - onus should probably be on assigner to do this.? */ - ewl_callback_del_type(EWL_WIDGET(list_item), EWL_CALLBACK_MOUSE_DOWN); - - + //ewl_widget_hide(list_item); + //ewl_container_child_remove(EWL_CONTAINER(ib->ewl_iconbox_pane_inner), EWL_WIDGET(list_item)); ewl_widget_destroy(EWL_WIDGET(list_item)); |
From: <enl...@li...> - 2005-10-15 05:45:47
|
Enlightenment CVS committal Author : lordchaos Project : e17 Module : libs/ewl Dir : e17/libs/ewl/src/lib Modified Files: ewl_floater.c ewl_iconbox.c Log Message: * Fixed bug preventing floater/followers being destroyed properly * Updated iconbox vis a vis above. =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/lib/ewl_floater.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- ewl_floater.c 9 Oct 2005 05:18:39 -0000 1.5 +++ ewl_floater.c 15 Oct 2005 05:45:37 -0000 1.6 @@ -52,8 +52,6 @@ ewl_widget_appearance_set(w, "floater"); ewl_widget_inherit(w, "floater"); - ewl_callback_append(EWL_WIDGET(f), EWL_CALLBACK_DESTROY, - ewl_floater_follow_destroy_cb, w); DRETURN_INT(FALSE, DLEVEL_STABLE); } @@ -67,8 +65,10 @@ * Don't follow the old parent. */ if (f->follows) { - ewl_callback_del_with_data(p, EWL_CALLBACK_CONFIGURE, + ewl_callback_del_with_data(f->follows, EWL_CALLBACK_CONFIGURE, ewl_floater_follow_configure_cb, f); + ewl_callback_del_with_data(EWL_WIDGET(f->follows), EWL_CALLBACK_DESTROY, + ewl_floater_follow_destroy_cb, f); } /* @@ -78,6 +78,8 @@ if (p) { ewl_callback_append(p, EWL_CALLBACK_CONFIGURE, ewl_floater_follow_configure_cb, f); + ewl_callback_append(p, EWL_CALLBACK_DESTROY, + ewl_floater_follow_configure_cb, f); } f->follows = p; =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/lib/ewl_iconbox.c,v retrieving revision 1.29 retrieving revision 1.30 diff -u -3 -r1.29 -r1.30 --- ewl_iconbox.c 15 Oct 2005 03:08:32 -0000 1.29 +++ ewl_iconbox.c 15 Oct 2005 05:45:37 -0000 1.30 @@ -826,6 +826,8 @@ if (icon->label_compressed) { free(icon->label_compressed); } + + ewl_widget_destroy(EWL_ICONBOX_ICON(w)->floater); DLEAVE_FUNCTION(DLEVEL_STABLE); } @@ -931,6 +933,8 @@ //ewl_widget_hide(list_item); //ewl_container_child_remove(EWL_CONTAINER(ib->ewl_iconbox_pane_inner), EWL_WIDGET(list_item)); + // + ewl_floater_follow_set(EWL_FLOATER(EWL_ICONBOX_ICON(list_item)->floater), NULL); ewl_widget_destroy(EWL_WIDGET(list_item)); |
From: <enl...@li...> - 2005-10-15 09:24:21
|
Enlightenment CVS committal Author : lordchaos Project : e17 Module : libs/ewl Dir : e17/libs/ewl/src/lib Modified Files: ewl_iconbox.c ewl_iconbox.h Log Message: More code cleanups =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/lib/ewl_iconbox.c,v retrieving revision 1.30 retrieving revision 1.31 diff -u -3 -r1.30 -r1.31 --- ewl_iconbox.c 15 Oct 2005 05:45:37 -0000 1.30 +++ ewl_iconbox.c 15 Oct 2005 09:24:14 -0000 1.31 @@ -9,6 +9,8 @@ + + /*Ecore_List *ewl_iconbox_icon_list;*/ /** @@ -56,39 +58,9 @@ } -static void ewl_iconbox_mouse_move_cb(Ewl_Widget *w, void *ev_data, void *user_data); -static void ewl_iconbox_pane_mouse_down_cb(Ewl_Widget *w, void *ev_data, void *user_data); - -/** - * @param ib: The iconbox - * @return Returns no value - * @brief Initialize the icon box - */ -void configure(Ewl_Widget *w, void *ev_data, void *user_data) -{ - /*printf ("Got a configure\n");*/ - - Ewl_IconBox* ib = EWL_ICONBOX(w); - - - if (REALIZED(ib) && VISIBLE(ib)) { - ewl_callback_del(EWL_WIDGET(ib), EWL_CALLBACK_CONFIGURE, configure); - ewl_iconbox_inner_pane_calculate(EWL_ICONBOX(w)); - /*ewl_iconbox_icon_arrange(ib); */ - ewl_callback_append(EWL_WIDGET(ib), EWL_CALLBACK_CONFIGURE, configure, NULL); - /*Handle the background, if any*/ - if (ib->background) { - evas_object_clip_set(ib->background, EWL_WIDGET(ib)->fx_clip_box); - evas_object_move(ib->background, CURRENT_X(ib), CURRENT_Y(ib)); - evas_object_layer_set(ib->background, -1000); - evas_object_image_fill_set(ib->background, 0,0, CURRENT_W(ib), CURRENT_H(ib)); - evas_object_resize(ib->background, CURRENT_W(ib), CURRENT_H(ib)); - } - } -} @@ -151,12 +123,7 @@ } -void ewl_iconbox_destroy_cb(Ewl_Widget *w, void *ev_data, void *user_data) -{ - Ewl_IconBox* ib = EWL_ICONBOX(w); - ewl_iconbox_clear(ib); -} int ewl_iconbox_init(Ewl_IconBox* ib) { @@ -311,7 +278,7 @@ ewl_callback_append(ib->ewl_iconbox_pane_inner, EWL_CALLBACK_MOUSE_MOVE, ewl_iconbox_mouse_move_cb, ib); ewl_callback_append(ib->ewl_iconbox_pane_inner, EWL_CALLBACK_MOUSE_DOWN, ewl_iconbox_pane_mouse_down_cb, ib); ewl_callback_append(ib->ewl_iconbox_pane_inner, EWL_CALLBACK_MOUSE_UP, ewl_iconbox_mouse_up, ib); - ewl_callback_append(EWL_WIDGET(ib), EWL_CALLBACK_CONFIGURE, configure, NULL); + ewl_callback_append(EWL_WIDGET(ib), EWL_CALLBACK_CONFIGURE, ewl_iconbox_configure_cb, NULL); ewl_callback_append(EWL_WIDGET(ib), EWL_CALLBACK_DESTROY, ewl_iconbox_destroy_cb, NULL); @@ -346,19 +313,6 @@ } -/* ----------- */ -void ewl_iconbox_arrange_cb(Ewl_Widget *w, void *ev_data, void *user_data) -{ - Ewl_IconBox* ib = EWL_ICONBOX(user_data); - ewl_iconbox_icon_arrange(ib); -} - -void ewl_iconbox_expansion_cb(Ewl_Widget *w, void *ev_data, void *user_data) -{ - Ewl_IconBox* ib = EWL_ICONBOX(user_data); - - ewl_object_custom_size_set(EWL_OBJECT(ib->ewl_iconbox_pane_inner), 680,700); -} void ewl_iconbox_icon_label_setup(Ewl_IconBox_Icon* icon, char* text) { @@ -518,208 +472,6 @@ -void ewl_iconbox_mouse_move_cb(Ewl_Widget *w, void *ev_data, void *user_data) -{ - Ewl_IconBox* ib = EWL_ICONBOX(user_data); - Ewl_Event_Mouse_Move *ev = ev_data; - Ewl_IconBox_Icon* list_item = ib->drag_icon; - int ibx, iby; - int px,py; - - ibx = ewl_object_current_x_get(EWL_OBJECT(ib)); - iby = ewl_object_current_y_get(EWL_OBJECT(ib)); - - px = ewl_object_current_x_get(EWL_OBJECT(ib->ewl_iconbox_pane_inner)); - py = ewl_object_current_y_get(EWL_OBJECT(ib->ewl_iconbox_pane_inner)); - - /*Handle selection box*/ - if (ib->drag_box) { - - - - if (ib->dx == -1) { - /* Assume this is the drag start point */ - ib->dx = ewl_object_current_x_get(EWL_OBJECT(ib->select_floater)); - ib->dy = ewl_object_current_y_get(EWL_OBJECT(ib->select_floater)); - } - - int lx,ly,hx,hy; - - /*Work out where to start/end..*/ - if (ib->dx < ev->x) { - lx = ib->dx; hx = ev->x; - } else { - lx = ev->x; hx = ib->dx; - } - - if (ib->dy < ev->y) { - ly = ib->dy ; hy = ev->y; - } else { - ly = ev->y; hy = ib->dy; - } - - - ewl_floater_position_set(EWL_FLOATER(ib->select_floater), (lx - ibx) + abs(px-ibx) , (ly+1 - iby) + abs(py-iby)); - - if (hx-lx >0 && hy-ly > 0) { - ewl_object_custom_size_set(EWL_OBJECT(ib->select), (hx-lx), (hy-ly)); - ewl_object_custom_size_set(EWL_OBJECT(ib->select_floater), hx-lx, hy-ly); - } - - /*Now check which icons we have to select in this range...*/ - { - int w,h; - - Ewl_IconBox_Icon* list_item; - int ix,iy; - ecore_list_goto_first(ib->ewl_iconbox_icon_list); - - - w = ewl_object_current_w_get(EWL_OBJECT(ib->select)); - h = ewl_object_current_h_get(EWL_OBJECT(ib->select)); - while((list_item = (Ewl_IconBox_Icon*)ecore_list_next(ib->ewl_iconbox_icon_list)) ) { - - - - - ix = ewl_object_current_x_get(EWL_OBJECT(list_item)); - iy = ewl_object_current_y_get(EWL_OBJECT(list_item)); - - if (ix >= lx && iy >= ly && ix <= hx && iy <= hy) { - ewl_iconbox_icon_select(EWL_ICONBOX_ICON(list_item),0); - } else if (list_item->selected) { - ewl_iconbox_icon_deselect(EWL_ICONBOX_ICON(list_item)); - } - } - } - - /* If we're drag boxing, we can't be moving an icon, so return.. */ - return; - } - - /*Check move tolerance, if not past, then don't move..*/ - if (abs(ev->x - ib->xdown) < EWL_ICONBOX_MOVE_TOLERANCE && abs(ev->y - ib->ydown) < EWL_ICONBOX_MOVE_TOLERANCE) - return; - - - if (list_item != NULL) { - /*Ewl_Widget* icon_box = (Ewl_Widget*)list_item->box;*/ - int fw,fh; - - /*Get the value of the scrollpane.. - */ - - - /* Get the current width/height to centre - */ - - fw= ewl_object_preferred_w_get(EWL_OBJECT(list_item->image)); - fh= ewl_object_preferred_h_get(EWL_OBJECT(list_item->image)); - - - - - - ewl_floater_position_set(EWL_FLOATER(list_item->floater), (ev->x - ibx) + abs(px-ibx) - (fw/2), - (ev->y - iby) + abs(py-iby) - (fh/2)); - } -} - - -void ewl_iconbox_pane_mouse_down_cb(Ewl_Widget *w, void *ev_data, void *user_data) -{ - Ewl_IconBox* ib = EWL_ICONBOX(user_data); - - Ewl_Event_Mouse_Down *ev = ev_data; - int ibx, iby; - int px,py; - - px = ewl_object_current_x_get(EWL_OBJECT(ib->ewl_iconbox_pane_inner)); - py = ewl_object_current_y_get(EWL_OBJECT(ib->ewl_iconbox_pane_inner)); - - - ibx = ewl_object_current_x_get(EWL_OBJECT(ib)); - iby = ewl_object_current_y_get(EWL_OBJECT(ib)); - - if (ev->button == 3 /* Confirm that this is not an icon event */ && (ib->xdown != ev->x && ib->ydown != ev->y)) { - /*printf ("Context menu: %d,%d\n", ev->x, ev->y);*/ - - ewl_widget_show(ib->ewl_iconbox_menu_floater); - ewl_widget_show(ib->ewl_iconbox_context_menu); - ewl_widget_show(ib->ewl_iconbox_view_menu); - - ewl_floater_position_set(EWL_FLOATER(ib->ewl_iconbox_menu_floater), ev->x-ibx + abs(px-ibx), ev->y-iby +abs(py-iby)); - ewl_callback_call(EWL_WIDGET(ib->ewl_iconbox_context_menu), EWL_CALLBACK_SELECT); - } else if (ev->button == 1 /* Confirm that this is not an icon event */ && (ib->xdown != ev->x && ib->ydown != ev->y)) { - /*Make sure the context menu is invisible*/ - ewl_widget_hide(ib->ewl_iconbox_menu_floater); - ewl_widget_hide(ib->ewl_iconbox_context_menu); - ewl_widget_hide(ib->ewl_iconbox_view_menu); - - - /*printf ("Start select at %d:%d\n", ev->x, ev->y);*/ - ewl_object_custom_size_set(EWL_OBJECT(ib->select), 1, 1); - - /* Put the floater at the position we started at */ - ewl_floater_position_set(EWL_FLOATER(ib->select_floater), ev->x-ibx + abs(px-ibx), ev->y-iby + abs(py-iby)); - - - ewl_widget_show(EWL_WIDGET(ib->select_floater)); - ib->drag_box = 1; - } - -} - - - -void ewl_iconbox_icon_mouse_down(Ewl_Widget *w, void *ev_data, void *user_data) -{ - - Ewl_IconBox_Icon* ib = user_data; - Ewl_Event_Mouse_Down *ev = ev_data; - - /*printf ("Button down on icon: %s\n", ewl_border_text_get(EWL_BORDER(ib)));*/ - ib->drag = 1; - ib->icon_box_parent->drag_icon = ib; - ib->icon_box_parent->xdown = ev->x; - ib->icon_box_parent->ydown = ev->y; - - /* Set this to selected */ - ewl_iconbox_icon_select(ib,0); - - /*ewl_callback_call_with_event_data(EWL_WIDGET(ib), EWL_CALLBACK_MOUSE_DOWN, ev_data);*/ -} - -void ewl_iconbox_icon_mouse_up(Ewl_Widget *w, void *ev_data, void *user_data) -{ - /*Ewl_Event_Mouse_Down *ev = ev_data;*/ - - Ewl_IconBox_Icon* ib = user_data; - ib->drag = 0; - ib->icon_box_parent->drag_icon = NULL; - /*printf ("Button up on icon: %s\n", ewl_border_text_get(EWL_BORDER(ib)) );*/ -} - -void ewl_iconbox_mouse_up(Ewl_Widget *w, void *ev_data, void *user_data) -{ - Ewl_Event_Mouse_Up *ev = ev_data; - Ewl_IconBox* ib = user_data; - if (ev->button == 1) { - /*printf("Stopped select: %d:%d\n", ev->x, ev->y);*/ - ewl_widget_hide(EWL_WIDGET(ib->select_floater)); - ib->drag_box = 0; - ib->dx = -1; - ib->dy = -1; - } -} - -void ewl_iconbox_icon_label_mouse_down_cb(Ewl_Widget *w, void *ev_data, void *user_data) -{ - Ewl_IconBox_Icon* ib = user_data; - - /* Set this to selected */ - ewl_iconbox_icon_select(ib,1); -} void ewl_iconbox_icon_select(Ewl_IconBox_Icon* ib, int loc) /* Loc 0= image, 1= label */ { @@ -947,3 +699,264 @@ ib->drag_icon = NULL; } + + +/*Callbacks*/ + +void ewl_iconbox_destroy_cb(Ewl_Widget *w, void *ev_data, void *user_data) +{ + Ewl_IconBox* ib = EWL_ICONBOX(w); + + ewl_iconbox_clear(ib); +} + +/* ----------- */ +void ewl_iconbox_arrange_cb(Ewl_Widget *w, void *ev_data, void *user_data) +{ + Ewl_IconBox* ib = EWL_ICONBOX(user_data); + ewl_iconbox_icon_arrange(ib); +} + +void ewl_iconbox_expansion_cb(Ewl_Widget *w, void *ev_data, void *user_data) +{ + Ewl_IconBox* ib = EWL_ICONBOX(user_data); + + ewl_object_custom_size_set(EWL_OBJECT(ib->ewl_iconbox_pane_inner), 680,700); +} + +void ewl_iconbox_mouse_move_cb(Ewl_Widget *w, void *ev_data, void *user_data) +{ + Ewl_IconBox* ib = EWL_ICONBOX(user_data); + Ewl_Event_Mouse_Move *ev = ev_data; + Ewl_IconBox_Icon* list_item = ib->drag_icon; + int ibx, iby; + int px,py; + + ibx = ewl_object_current_x_get(EWL_OBJECT(ib)); + iby = ewl_object_current_y_get(EWL_OBJECT(ib)); + + px = ewl_object_current_x_get(EWL_OBJECT(ib->ewl_iconbox_pane_inner)); + py = ewl_object_current_y_get(EWL_OBJECT(ib->ewl_iconbox_pane_inner)); + + /*Handle selection box*/ + if (ib->drag_box) { + + + + if (ib->dx == -1) { + /* Assume this is the drag start point */ + ib->dx = ewl_object_current_x_get(EWL_OBJECT(ib->select_floater)); + ib->dy = ewl_object_current_y_get(EWL_OBJECT(ib->select_floater)); + } + + int lx,ly,hx,hy; + + /*Work out where to start/end..*/ + if (ib->dx < ev->x) { + lx = ib->dx; hx = ev->x; + } else { + lx = ev->x; hx = ib->dx; + } + + if (ib->dy < ev->y) { + ly = ib->dy ; hy = ev->y; + } else { + ly = ev->y; hy = ib->dy; + } + + + ewl_floater_position_set(EWL_FLOATER(ib->select_floater), (lx - ibx) + abs(px-ibx) , (ly+1 - iby) + abs(py-iby)); + + if (hx-lx >0 && hy-ly > 0) { + ewl_object_custom_size_set(EWL_OBJECT(ib->select), (hx-lx), (hy-ly)); + ewl_object_custom_size_set(EWL_OBJECT(ib->select_floater), hx-lx, hy-ly); + } + + /*Now check which icons we have to select in this range...*/ + { + int w,h; + + Ewl_IconBox_Icon* list_item; + int ix,iy; + ecore_list_goto_first(ib->ewl_iconbox_icon_list); + + + w = ewl_object_current_w_get(EWL_OBJECT(ib->select)); + h = ewl_object_current_h_get(EWL_OBJECT(ib->select)); + while((list_item = (Ewl_IconBox_Icon*)ecore_list_next(ib->ewl_iconbox_icon_list)) ) { + + + + + ix = ewl_object_current_x_get(EWL_OBJECT(list_item)); + iy = ewl_object_current_y_get(EWL_OBJECT(list_item)); + + if (ix >= lx && iy >= ly && ix <= hx && iy <= hy) { + ewl_iconbox_icon_select(EWL_ICONBOX_ICON(list_item),0); + } else if (list_item->selected) { + ewl_iconbox_icon_deselect(EWL_ICONBOX_ICON(list_item)); + } + } + } + + /* If we're drag boxing, we can't be moving an icon, so return.. */ + return; + } + + /*Check move tolerance, if not past, then don't move..*/ + if (abs(ev->x - ib->xdown) < EWL_ICONBOX_MOVE_TOLERANCE && abs(ev->y - ib->ydown) < EWL_ICONBOX_MOVE_TOLERANCE) + return; + + + if (list_item != NULL) { + /*Ewl_Widget* icon_box = (Ewl_Widget*)list_item->box;*/ + int fw,fh; + + /*Get the value of the scrollpane.. + */ + + + /* Get the current width/height to centre + */ + + fw= ewl_object_preferred_w_get(EWL_OBJECT(list_item->image)); + fh= ewl_object_preferred_h_get(EWL_OBJECT(list_item->image)); + + + + + + ewl_floater_position_set(EWL_FLOATER(list_item->floater), (ev->x - ibx) + abs(px-ibx) - (fw/2), + (ev->y - iby) + abs(py-iby) - (fh/2)); + } +} + + +void ewl_iconbox_pane_mouse_down_cb(Ewl_Widget *w, void *ev_data, void *user_data) +{ + Ewl_IconBox* ib = EWL_ICONBOX(user_data); + + Ewl_Event_Mouse_Down *ev = ev_data; + int ibx, iby; + int px,py; + + px = ewl_object_current_x_get(EWL_OBJECT(ib->ewl_iconbox_pane_inner)); + py = ewl_object_current_y_get(EWL_OBJECT(ib->ewl_iconbox_pane_inner)); + + + ibx = ewl_object_current_x_get(EWL_OBJECT(ib)); + iby = ewl_object_current_y_get(EWL_OBJECT(ib)); + + if (ev->button == 3 /* Confirm that this is not an icon event */ && (ib->xdown != ev->x && ib->ydown != ev->y)) { + /*printf ("Context menu: %d,%d\n", ev->x, ev->y);*/ + + ewl_widget_show(ib->ewl_iconbox_menu_floater); + ewl_widget_show(ib->ewl_iconbox_context_menu); + ewl_widget_show(ib->ewl_iconbox_view_menu); + + ewl_floater_position_set(EWL_FLOATER(ib->ewl_iconbox_menu_floater), ev->x-ibx + abs(px-ibx), ev->y-iby +abs(py-iby)); + ewl_callback_call(EWL_WIDGET(ib->ewl_iconbox_context_menu), EWL_CALLBACK_SELECT); + } else if (ev->button == 1 /* Confirm that this is not an icon event */ && (ib->xdown != ev->x && ib->ydown != ev->y)) { + /*Make sure the context menu is invisible*/ + ewl_widget_hide(ib->ewl_iconbox_menu_floater); + ewl_widget_hide(ib->ewl_iconbox_context_menu); + ewl_widget_hide(ib->ewl_iconbox_view_menu); + + + /*printf ("Start select at %d:%d\n", ev->x, ev->y);*/ + ewl_object_custom_size_set(EWL_OBJECT(ib->select), 1, 1); + + /* Put the floater at the position we started at */ + ewl_floater_position_set(EWL_FLOATER(ib->select_floater), ev->x-ibx + abs(px-ibx), ev->y-iby + abs(py-iby)); + + + ewl_widget_show(EWL_WIDGET(ib->select_floater)); + ib->drag_box = 1; + } + +} + + + +void ewl_iconbox_icon_mouse_down(Ewl_Widget *w, void *ev_data, void *user_data) +{ + + Ewl_IconBox_Icon* ib = user_data; + Ewl_Event_Mouse_Down *ev = ev_data; + + /*printf ("Button down on icon: %s\n", ewl_border_text_get(EWL_BORDER(ib)));*/ + ib->drag = 1; + ib->icon_box_parent->drag_icon = ib; + ib->icon_box_parent->xdown = ev->x; + ib->icon_box_parent->ydown = ev->y; + + /* Set this to selected */ + ewl_iconbox_icon_select(ib,0); + + /*ewl_callback_call_with_event_data(EWL_WIDGET(ib), EWL_CALLBACK_MOUSE_DOWN, ev_data);*/ +} + +void ewl_iconbox_icon_mouse_up(Ewl_Widget *w, void *ev_data, void *user_data) +{ + /*Ewl_Event_Mouse_Down *ev = ev_data;*/ + + Ewl_IconBox_Icon* ib = user_data; + ib->drag = 0; + ib->icon_box_parent->drag_icon = NULL; + /*printf ("Button up on icon: %s\n", ewl_border_text_get(EWL_BORDER(ib)) );*/ +} + +void ewl_iconbox_mouse_up(Ewl_Widget *w, void *ev_data, void *user_data) +{ + Ewl_Event_Mouse_Up *ev = ev_data; + Ewl_IconBox* ib = user_data; + if (ev->button == 1) { + /*printf("Stopped select: %d:%d\n", ev->x, ev->y);*/ + ewl_widget_hide(EWL_WIDGET(ib->select_floater)); + ib->drag_box = 0; + ib->dx = -1; + ib->dy = -1; + } +} + +void ewl_iconbox_icon_label_mouse_down_cb(Ewl_Widget *w, void *ev_data, void *user_data) +{ + Ewl_IconBox_Icon* ib = user_data; + + /* Set this to selected */ + ewl_iconbox_icon_select(ib,1); +} + + + +/** + * @param ib: The iconbox + * @return Returns no value + * @brief Initialize the icon box + */ +void ewl_iconbox_configure_cb(Ewl_Widget *w, void *ev_data, void *user_data) +{ + /*printf ("Got a configure\n");*/ + + Ewl_IconBox* ib = EWL_ICONBOX(w); + + + + if (REALIZED(ib) && VISIBLE(ib)) { + ewl_callback_del(EWL_WIDGET(ib), EWL_CALLBACK_CONFIGURE, ewl_iconbox_configure_cb); + ewl_iconbox_inner_pane_calculate(EWL_ICONBOX(w)); + /*ewl_iconbox_icon_arrange(ib); */ + ewl_callback_append(EWL_WIDGET(ib), EWL_CALLBACK_CONFIGURE, ewl_iconbox_configure_cb, NULL); + + /*Handle the background, if any*/ + if (ib->background) { + evas_object_clip_set(ib->background, EWL_WIDGET(ib)->fx_clip_box); + evas_object_move(ib->background, CURRENT_X(ib), CURRENT_Y(ib)); + evas_object_layer_set(ib->background, -1000); + + evas_object_image_fill_set(ib->background, 0,0, CURRENT_W(ib), CURRENT_H(ib)); + evas_object_resize(ib->background, CURRENT_W(ib), CURRENT_H(ib)); + } + } +} + =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/lib/ewl_iconbox.h,v retrieving revision 1.9 retrieving revision 1.10 diff -u -3 -r1.9 -r1.10 --- ewl_iconbox.h 9 Oct 2005 05:18:39 -0000 1.9 +++ ewl_iconbox.h 15 Oct 2005 09:24:14 -0000 1.10 @@ -118,6 +118,15 @@ /* Internal callbacks */ void ewl_iconbox_arrange_cb(Ewl_Widget *w, void *ev_data, void *user_data); void ewl_iconbox_expansion_cb(Ewl_Widget *w, void *ev_data, void *user_data); +void ewl_iconbox_mouse_move_cb(Ewl_Widget *w, void *ev_data, void *user_data); +void ewl_iconbox_pane_mouse_down_cb(Ewl_Widget *w, void *ev_data, void *user_data); +void ewl_iconbox_mouse_up(Ewl_Widget *w, void *ev_data, void *user_data); +void ewl_iconbox_configure_cb(Ewl_Widget *w, void *ev_data, void *user_data); +void ewl_iconbox_icon_mouse_up(Ewl_Widget *w, void *ev_data, void *user_data); +void ewl_iconbox_destroy_cb(Ewl_Widget *w, void *ev_data, void *user_data); +void ewl_iconbox_icon_mouse_down(Ewl_Widget *w, void *ev_data, void *user_data); +void ewl_iconbox_icon_label_mouse_down_cb(Ewl_Widget *w, void *ev_data, void *user_data); + /* Internal functions */ void ewl_iconbox_icon_select(Ewl_IconBox_Icon* ib, int loc); |
From: <enl...@li...> - 2005-10-15 09:39:47
|
Enlightenment CVS committal Author : lordchaos Project : e17 Module : libs/ewl Dir : e17/libs/ewl/src/lib Modified Files: ewl_iconbox.c ewl_iconbox.h ewl_widget.c Log Message: * Caught an unchecked NULL in ewl_widget * More iconbox cleanup =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/lib/ewl_iconbox.c,v retrieving revision 1.31 retrieving revision 1.32 diff -u -3 -r1.31 -r1.32 --- ewl_iconbox.c 15 Oct 2005 09:24:14 -0000 1.31 +++ ewl_iconbox.c 15 Oct 2005 09:39:39 -0000 1.32 @@ -57,14 +57,6 @@ } - - - - - - - - void ewl_iconbox_inner_pane_calculate(Ewl_IconBox* ib) { @@ -387,6 +379,9 @@ /*Hide the entry, now that we have an enter */ ewl_widget_hide(ib->entry_floater); + + /*Show the label again*/ + ewl_widget_show(EWL_ICONBOX_ICON(ib->edit_icon)->w_label); } } @@ -507,6 +502,7 @@ ewl_floater_position_set(EWL_FLOATER(ib->icon_box_parent->entry_floater), x,y+ih); ewl_widget_layer_set(EWL_WIDGET(ib->icon_box_parent->entry_floater), 1000); ewl_widget_focus_send(EWL_WIDGET(ib->icon_box_parent->entry)); + ewl_widget_hide(ib->w_label); /* Record which icon's label we are editing */ ib->icon_box_parent->edit_icon = ib; @@ -549,7 +545,6 @@ void ewl_iconbox_deselect_all(Ewl_IconBox* ib) { - return; Ewl_IconBox_Icon* list_item; ecore_list_goto_first(ib->ewl_iconbox_icon_list); @@ -565,24 +560,7 @@ /*printf("Removing icon: %s", ewl_border_text_get(EWL_BORDER(icon)));*/ } -void ewl_iconbox_icon_destroy_cb(Ewl_Widget *w, void *ev_data __UNUSED__, - void *user_data __UNUSED__) -{ - - Ewl_IconBox_Icon* icon = EWL_ICONBOX_ICON(w); - - DENTER_FUNCTION(DLEVEL_STABLE); - if (icon->label) { - free(icon->label); - } - if (icon->label_compressed) { - free(icon->label_compressed); - } - ewl_widget_destroy(EWL_ICONBOX_ICON(w)->floater); - - DLEAVE_FUNCTION(DLEVEL_STABLE); -} Ewl_IconBox_Icon* ewl_iconbox_icon_add(Ewl_IconBox* iconbox, char* name, char* icon_file) @@ -661,14 +639,6 @@ ewl_image_file_set(EWL_IMAGE(icon->image), filename, NULL); - /*Make sure we're not too small now */ - /*Shouldn't the floater auto-resize?*/ - - /*ewl_object_current_size_get(EWL_OBJECT(icon->image), &iw,&ih); - ewl_object_current_size_get(EWL_OBJECT(icon->w_label), &lw, &lh); - ewl_object_minimum_size_set(EWL_OBJECT(icon->floater), iw, ih+lh);*/ - - /*Call the configure callback for the iconbox - it doesn't seem to do this by itself*/ } void ewl_iconbox_clear(Ewl_IconBox* ib) @@ -710,6 +680,25 @@ ewl_iconbox_clear(ib); } +void ewl_iconbox_icon_destroy_cb(Ewl_Widget *w, void *ev_data __UNUSED__, + void *user_data __UNUSED__) +{ + + Ewl_IconBox_Icon* icon = EWL_ICONBOX_ICON(w); + + DENTER_FUNCTION(DLEVEL_STABLE); + if (icon->label) { + free(icon->label); + } + if (icon->label_compressed) { + free(icon->label_compressed); + } + + ewl_widget_destroy(EWL_ICONBOX_ICON(w)->floater); + + DLEAVE_FUNCTION(DLEVEL_STABLE); +} + /* ----------- */ void ewl_iconbox_arrange_cb(Ewl_Widget *w, void *ev_data, void *user_data) { @@ -862,8 +851,6 @@ ewl_widget_hide(ib->ewl_iconbox_context_menu); ewl_widget_hide(ib->ewl_iconbox_view_menu); - - /*printf ("Start select at %d:%d\n", ev->x, ev->y);*/ ewl_object_custom_size_set(EWL_OBJECT(ib->select), 1, 1); /* Put the floater at the position we started at */ =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/lib/ewl_iconbox.h,v retrieving revision 1.10 retrieving revision 1.11 diff -u -3 -r1.10 -r1.11 --- ewl_iconbox.h 15 Oct 2005 09:24:14 -0000 1.10 +++ ewl_iconbox.h 15 Oct 2005 09:39:39 -0000 1.11 @@ -126,6 +126,7 @@ void ewl_iconbox_destroy_cb(Ewl_Widget *w, void *ev_data, void *user_data); void ewl_iconbox_icon_mouse_down(Ewl_Widget *w, void *ev_data, void *user_data); void ewl_iconbox_icon_label_mouse_down_cb(Ewl_Widget *w, void *ev_data, void *user_data); +void ewl_iconbox_icon_destroy_cb(Ewl_Widget *w, void *ev_data ,void *user_data ); /* Internal functions */ =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/lib/ewl_widget.c,v retrieving revision 1.23 retrieving revision 1.24 diff -u -3 -r1.23 -r1.24 --- ewl_widget.c 14 Oct 2005 03:18:19 -0000 1.23 +++ ewl_widget.c 15 Oct 2005 09:39:39 -0000 1.24 @@ -1097,7 +1097,7 @@ DENTER_FUNCTION(DLEVEL_STABLE); emb = ewl_embed_widget_find(w); - w = ewl_embed_focused_widget_get(emb); + if (emb) w = ewl_embed_focused_widget_get(emb); DRETURN_PTR(w, DLEVEL_STABLE); } |
From: <enl...@li...> - 2005-10-16 23:06:30
|
Enlightenment CVS committal Author : lordchaos Project : e17 Module : libs/ewl Dir : e17/libs/ewl/src/lib Modified Files: ewl_iconbox.c ewl_iconbox.h Log Message: Context add =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/lib/ewl_iconbox.c,v retrieving revision 1.32 retrieving revision 1.33 diff -u -3 -r1.32 -r1.33 --- ewl_iconbox.c 15 Oct 2005 09:39:39 -0000 1.32 +++ ewl_iconbox.c 16 Oct 2005 23:06:21 -0000 1.33 @@ -187,6 +187,10 @@ ewl_callback_append(ib->ewl_iconbox_context_menu_item, EWL_CALLBACK_MOUSE_DOWN, ewl_iconbox_expansion_cb, ib); ewl_widget_show(ib->ewl_iconbox_context_menu_item); + ib->ewl_iconbox_context_menu_item = ewl_menu_separator_new(); + ewl_container_child_append(EWL_CONTAINER(ib->ewl_iconbox_context_menu), ib->ewl_iconbox_context_menu_item); + ewl_widget_show(ib->ewl_iconbox_context_menu_item); + ewl_widget_show(ib->ewl_iconbox_view_menu); @@ -280,6 +284,26 @@ } + + + +void ewl_iconbox_context_menu_item_add(Ewl_IconBox* ib, Ewl_Widget* item) { + ewl_container_child_append(EWL_CONTAINER(ib->ewl_iconbox_context_menu), item); +} + +Ecore_List* ewl_iconbox_get_selection(Ewl_IconBox* ib) { + Ewl_IconBox_Icon* list_item; + Ecore_List* selected = ecore_list_new(); + + ecore_list_goto_first(ib->ewl_iconbox_icon_list); + while((list_item = (Ewl_IconBox_Icon*)ecore_list_next(ib->ewl_iconbox_icon_list)) != NULL) { + if (list_item->selected) ecore_list_append(selected, list_item); + } + + return selected; +} + + void ewl_iconbox_background_set(Ewl_IconBox* ib, char* file) { /*Add a background image*/ =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/lib/ewl_iconbox.h,v retrieving revision 1.11 retrieving revision 1.12 diff -u -3 -r1.11 -r1.12 --- ewl_iconbox.h 15 Oct 2005 09:39:39 -0000 1.11 +++ ewl_iconbox.h 16 Oct 2005 23:06:21 -0000 1.12 @@ -113,6 +113,8 @@ void ewl_iconbox_clear(Ewl_IconBox* iconbox); void ewl_iconbox_icon_image_set(Ewl_IconBox_Icon* icon, char* filename); void ewl_iconbox_background_set(Ewl_IconBox* ib, char* file); +void ewl_iconbox_context_menu_item_add(Ewl_IconBox* ib, Ewl_Widget* item); +Ecore_List* ewl_iconbox_get_selection(Ewl_IconBox* ib); /* Internal callbacks */ |
From: <enl...@li...> - 2005-10-18 08:57:15
|
Enlightenment CVS committal Author : lordchaos Project : e17 Module : libs/ewl Dir : e17/libs/ewl/src/lib Modified Files: ewl_misc.c Log Message: I take it we don't want these destroy printfs. Correct me if i'm wrong :) =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/lib/ewl_misc.c,v retrieving revision 1.17 retrieving revision 1.18 diff -u -3 -r1.17 -r1.18 --- ewl_misc.c 17 Oct 2005 15:21:07 -0000 1.17 +++ ewl_misc.c 18 Oct 2005 08:57:05 -0000 1.18 @@ -879,7 +879,7 @@ FREE(w); cleanup++; } - printf("Destroyed %d EWL objects\n", cleanup); + /*printf("Destroyed %d EWL objects\n", cleanup);*/ cleanup = 0; @@ -887,7 +887,7 @@ evas_object_del(obj); cleanup++; } - printf("Destroyed %d Evas Objects\n", cleanup); + /*printf("Destroyed %d Evas Objects\n", cleanup);*/ cleanup = 0; @@ -895,7 +895,7 @@ evas_free(evas); cleanup++; } - printf("Destroyed %d Evas\n", cleanup); + /*printf("Destroyed %d Evas\n", cleanup);*/ DLEAVE_FUNCTION(DLEVEL_STABLE); } |
From: <enl...@li...> - 2005-10-18 11:26:28
|
Enlightenment CVS committal Author : lordchaos Project : e17 Module : libs/ewl Dir : e17/libs/ewl/src/lib Modified Files: ewl_iconbox.c Log Message: Hide the menu properly =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/lib/ewl_iconbox.c,v retrieving revision 1.34 retrieving revision 1.35 diff -u -3 -r1.34 -r1.35 --- ewl_iconbox.c 17 Oct 2005 15:27:48 -0000 1.34 +++ ewl_iconbox.c 18 Oct 2005 11:26:22 -0000 1.35 @@ -162,6 +162,7 @@ ewl_object_fill_policy_set(EWL_OBJECT(ib->ewl_iconbox_menu_floater), EWL_FLAG_FILL_FILL); + /* Get the context menu ready */ ib->ewl_iconbox_context_menu = ewl_imenu_new(); ewl_menu_item_text_set(EWL_MENU_ITEM(ib->ewl_iconbox_context_menu), ""); @@ -860,17 +861,23 @@ if (ev->button == 3 /* Confirm that this is not an icon event */ && (ib->xdown != ev->x && ib->ydown != ev->y)) { /*printf ("Context menu: %d,%d\n", ev->x, ev->y);*/ - ewl_widget_show(ib->ewl_iconbox_menu_floater); - ewl_widget_show(ib->ewl_iconbox_context_menu); - ewl_widget_show(ib->ewl_iconbox_view_menu); + //ewl_widget_show(ib->ewl_iconbox_menu_floater); + //ewl_widget_show(ib->ewl_iconbox_context_menu); + //ewl_widget_show(ib->ewl_iconbox_view_menu); + ewl_floater_follow_set(EWL_FLOATER(ib->ewl_iconbox_menu_floater), ib->ewl_iconbox_pane_inner); ewl_floater_position_set(EWL_FLOATER(ib->ewl_iconbox_menu_floater), ev->x-ibx + abs(px-ibx), ev->y-iby +abs(py-iby)); ewl_callback_call(EWL_WIDGET(ib->ewl_iconbox_context_menu), EWL_CALLBACK_SELECT); } else if (ev->button == 1 /* Confirm that this is not an icon event */ && (ib->xdown != ev->x && ib->ydown != ev->y)) { /*Make sure the context menu is invisible*/ - ewl_widget_hide(ib->ewl_iconbox_menu_floater); - ewl_widget_hide(ib->ewl_iconbox_context_menu); - ewl_widget_hide(ib->ewl_iconbox_view_menu); + + //ewl_widget_hide(ib->ewl_iconbox_context_menu); + //ewl_widget_hide(ib->ewl_iconbox_menu_floater); + //ewl_widget_hide(ib->ewl_iconbox_view_menu); + // + ewl_widget_hide(EWL_MENU_ITEM(ib->ewl_iconbox_context_menu_item)->inmenu); + + ewl_floater_follow_set(EWL_FLOATER(ib->ewl_iconbox_menu_floater), NULL); ewl_object_custom_size_set(EWL_OBJECT(ib->select), 1, 1); |
From: <enl...@li...> - 2005-10-20 10:43:21
|
Enlightenment CVS committal Author : lordchaos Project : e17 Module : libs/ewl Dir : e17/libs/ewl/src/lib Modified Files: ewl_embed.c Log Message: Temporarily rollback one line of dj2's focus API change. This seems to fix the problem with ewl_combo (and entropy folder double-click). Can't see why, though. =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/lib/ewl_embed.c,v retrieving revision 1.13 retrieving revision 1.14 diff -u -3 -r1.13 -r1.14 --- ewl_embed.c 20 Oct 2005 05:03:50 -0000 1.13 +++ ewl_embed.c 20 Oct 2005 10:42:59 -0000 1.14 @@ -1012,8 +1012,10 @@ DENTER_FUNCTION(DLEVEL_STABLE); DCHECK_PARAM_PTR("e", e); - if ((w == e->last.focused) || (RECURSIVE(w) && ewl_container_parent_of(w, e->last.focused))) - ewl_embed_focused_widget_set(e, NULL); + if ((w == e->last.focused) || (RECURSIVE(w) && ewl_container_parent_of(w, e->last.focused))) { + e->last.focused = NULL; + /*ewl_embed_focused_widget_set(e, NULL);*/ + } if ((w == e->last.clicked) || (RECURSIVE(w) && ewl_container_parent_of(w, e->last.clicked))) e->last.clicked = NULL; |
From: <enl...@li...> - 2005-10-21 11:13:40
|
Enlightenment CVS committal Author : lordchaos Project : e17 Module : libs/ewl Dir : e17/libs/ewl/src/lib Modified Files: ewl_iconbox.c ewl_iconbox.h Log Message: Clean up background setting better =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/lib/ewl_iconbox.c,v retrieving revision 1.35 retrieving revision 1.36 diff -u -3 -r1.35 -r1.36 --- ewl_iconbox.c 18 Oct 2005 11:26:22 -0000 1.35 +++ ewl_iconbox.c 21 Oct 2005 11:13:31 -0000 1.36 @@ -149,6 +149,9 @@ } else { /*printf ("Bombed out on scrollpane creation\n");*/ } + + /*Start with an empty background*/ + ib->background = NULL; ib->ewl_iconbox_pane_inner = ewl_overlay_new(); ewl_container_child_append(EWL_CONTAINER(ib->ewl_iconbox_scrollpane), ib->ewl_iconbox_pane_inner); @@ -304,28 +307,39 @@ return selected; } +/*Move to the root of the scrollpame*/ +void ewl_scrollpane_goto_rood(Ewl_IconBox* ib) { + ewl_scrollpane_hscrollbar_value_set(EWL_SCROLLPANE(ib->ewl_iconbox_scrollpane),0); + ewl_scrollpane_vscrollbar_value_set(EWL_SCROLLPANE(ib->ewl_iconbox_scrollpane),0); + +} + void ewl_iconbox_background_set(Ewl_IconBox* ib, char* file) { /*Add a background image*/ - { - Ewl_Embed *emb; - emb = ewl_embed_widget_find(EWL_WIDGET(ib)); - if (emb) { - ib->background = evas_object_image_add(emb->evas); - evas_object_image_file_set(ib->background, file, NULL); + Ewl_Embed *emb; + emb = ewl_embed_widget_find(EWL_WIDGET(ib)); + if (emb && file) { + if (ib->background) evas_object_del(ib->background); + + ib->background = evas_object_image_add(emb->evas); + evas_object_image_file_set(ib->background, file, NULL); + + evas_object_clip_set(ib->background, EWL_WIDGET(ib)->fx_clip_box); + evas_object_move(ib->background, CURRENT_X(ib), CURRENT_Y(ib)); + evas_object_layer_set(ib->background, -1000); + + evas_object_image_fill_set(ib->background, 0,0, CURRENT_W(ib), CURRENT_H(ib)); + evas_object_resize(ib->background, CURRENT_W(ib), CURRENT_H(ib)); + + evas_object_show(ib->background); + } else if (file) { + printf("////////////////////////// Could not find top level widget\n"); + } else /*File is null*/ { + if (ib->background) evas_object_del(ib->background); - evas_object_clip_set(ib->background, EWL_WIDGET(ib)->fx_clip_box); - evas_object_move(ib->background, CURRENT_X(ib), CURRENT_Y(ib)); - evas_object_layer_set(ib->background, -1000); - - evas_object_image_fill_set(ib->background, 0,0, CURRENT_W(ib), CURRENT_H(ib)); - evas_object_resize(ib->background, CURRENT_W(ib), CURRENT_H(ib)); - - evas_object_show(ib->background); - } else { - printf("////////////////////////// Could not find top level widget\n"); - } + ib->background = NULL; } } =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/lib/ewl_iconbox.h,v retrieving revision 1.12 retrieving revision 1.13 diff -u -3 -r1.12 -r1.13 --- ewl_iconbox.h 16 Oct 2005 23:06:21 -0000 1.12 +++ ewl_iconbox.h 21 Oct 2005 11:13:31 -0000 1.13 @@ -110,6 +110,7 @@ void ewl_iconbox_icon_arrange(Ewl_IconBox* ib); void ewl_iconbox_deselect_all(Ewl_IconBox* ib); Ewl_IconBox_Icon* ewl_iconbox_icon_add(Ewl_IconBox* iconbox, char* name, char* icon_file); +void ewl_scrollpane_goto_rood(Ewl_IconBox* ib); void ewl_iconbox_clear(Ewl_IconBox* iconbox); void ewl_iconbox_icon_image_set(Ewl_IconBox_Icon* icon, char* filename); void ewl_iconbox_background_set(Ewl_IconBox* ib, char* file); |
From: <enl...@li...> - 2005-10-21 12:48:14
|
Enlightenment CVS committal Author : lordchaos Project : e17 Module : libs/ewl Dir : e17/libs/ewl/src/lib Modified Files: ewl_iconbox.c ewl_iconbox.h Log Message: Fix spelling mistake in function name =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/lib/ewl_iconbox.c,v retrieving revision 1.36 retrieving revision 1.37 diff -u -3 -r1.36 -r1.37 --- ewl_iconbox.c 21 Oct 2005 11:13:31 -0000 1.36 +++ ewl_iconbox.c 21 Oct 2005 12:47:57 -0000 1.37 @@ -308,7 +308,7 @@ } /*Move to the root of the scrollpame*/ -void ewl_scrollpane_goto_rood(Ewl_IconBox* ib) { +void ewl_scrollpane_goto_root(Ewl_IconBox* ib) { ewl_scrollpane_hscrollbar_value_set(EWL_SCROLLPANE(ib->ewl_iconbox_scrollpane),0); ewl_scrollpane_vscrollbar_value_set(EWL_SCROLLPANE(ib->ewl_iconbox_scrollpane),0); =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/lib/ewl_iconbox.h,v retrieving revision 1.13 retrieving revision 1.14 diff -u -3 -r1.13 -r1.14 --- ewl_iconbox.h 21 Oct 2005 11:13:31 -0000 1.13 +++ ewl_iconbox.h 21 Oct 2005 12:47:57 -0000 1.14 @@ -110,7 +110,7 @@ void ewl_iconbox_icon_arrange(Ewl_IconBox* ib); void ewl_iconbox_deselect_all(Ewl_IconBox* ib); Ewl_IconBox_Icon* ewl_iconbox_icon_add(Ewl_IconBox* iconbox, char* name, char* icon_file); -void ewl_scrollpane_goto_rood(Ewl_IconBox* ib); +void ewl_scrollpane_goto_root(Ewl_IconBox* ib); void ewl_iconbox_clear(Ewl_IconBox* iconbox); void ewl_iconbox_icon_image_set(Ewl_IconBox_Icon* icon, char* filename); void ewl_iconbox_background_set(Ewl_IconBox* ib, char* file); |
From: <enl...@li...> - 2005-10-21 12:52:10
|
Enlightenment CVS committal Author : lordchaos Project : e17 Module : libs/ewl Dir : e17/libs/ewl/src/lib Modified Files: ewl_iconbox.c ewl_iconbox.h Log Message: Function rename =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/lib/ewl_iconbox.c,v retrieving revision 1.37 retrieving revision 1.38 diff -u -3 -r1.37 -r1.38 --- ewl_iconbox.c 21 Oct 2005 12:47:57 -0000 1.37 +++ ewl_iconbox.c 21 Oct 2005 12:51:34 -0000 1.38 @@ -308,7 +308,7 @@ } /*Move to the root of the scrollpame*/ -void ewl_scrollpane_goto_root(Ewl_IconBox* ib) { +void ewl_iconbox_scrollpane_goto_root(Ewl_IconBox* ib) { ewl_scrollpane_hscrollbar_value_set(EWL_SCROLLPANE(ib->ewl_iconbox_scrollpane),0); ewl_scrollpane_vscrollbar_value_set(EWL_SCROLLPANE(ib->ewl_iconbox_scrollpane),0); =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/lib/ewl_iconbox.h,v retrieving revision 1.14 retrieving revision 1.15 diff -u -3 -r1.14 -r1.15 --- ewl_iconbox.h 21 Oct 2005 12:47:57 -0000 1.14 +++ ewl_iconbox.h 21 Oct 2005 12:51:34 -0000 1.15 @@ -110,7 +110,7 @@ void ewl_iconbox_icon_arrange(Ewl_IconBox* ib); void ewl_iconbox_deselect_all(Ewl_IconBox* ib); Ewl_IconBox_Icon* ewl_iconbox_icon_add(Ewl_IconBox* iconbox, char* name, char* icon_file); -void ewl_scrollpane_goto_root(Ewl_IconBox* ib); +void ewl_iconbox_scrollpane_goto_root(Ewl_IconBox* ib); void ewl_iconbox_clear(Ewl_IconBox* iconbox); void ewl_iconbox_icon_image_set(Ewl_IconBox_Icon* icon, char* filename); void ewl_iconbox_background_set(Ewl_IconBox* ib, char* file); |
From: <enl...@li...> - 2005-10-22 00:16:58
|
Enlightenment CVS committal Author : lordchaos Project : e17 Module : libs/ewl Dir : e17/libs/ewl/src/lib Modified Files: ewl_iconbox.c ewl_iconbox.h Log Message: Add some layout functions =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/lib/ewl_iconbox.c,v retrieving revision 1.38 retrieving revision 1.39 diff -u -3 -r1.38 -r1.39 --- ewl_iconbox.c 21 Oct 2005 12:51:34 -0000 1.38 +++ ewl_iconbox.c 22 Oct 2005 00:16:50 -0000 1.39 @@ -4,13 +4,6 @@ #include "ewl_private.h" -int mouse_state = 0; -static int nextx=0; - - - - - /*Ecore_List *ewl_iconbox_icon_list;*/ /** @@ -165,6 +158,9 @@ ewl_object_fill_policy_set(EWL_OBJECT(ib->ewl_iconbox_menu_floater), EWL_FLAG_FILL_FILL); + /*Set the defaults to 0*/ + ib->lx = ib->ly = ib->iw = ib->ih = 0; + /* Get the context menu ready */ ib->ewl_iconbox_context_menu = ewl_imenu_new(); @@ -289,6 +285,11 @@ +void ewl_iconbox_icon_size_custom_set(Ewl_IconBox* ib, int w, int h) { + ib->iw = w; + ib->ih = h; +} + void ewl_iconbox_context_menu_item_add(Ewl_IconBox* ib, Ewl_Widget* item) { @@ -605,13 +606,10 @@ Ewl_IconBox_Icon* ewl_iconbox_icon_add(Ewl_IconBox* iconbox, char* name, char* icon_file) { Ewl_Widget* ib; - /*ib = malloc(sizeof(Ewl_IconBox_Icon));*/ - /*printf ("Making an icon called '%s'\n", name);*/ + int sw, sh; ib = ewl_iconbox_icon_new(); - - EWL_ICONBOX_ICON(ib)->selected = 0; EWL_ICONBOX_ICON(ib)->floater = ewl_floater_new(); ewl_floater_follow_set(EWL_FLOATER( EWL_ICONBOX_ICON(ib)->floater ), @@ -643,9 +641,19 @@ */ ewl_container_child_append(EWL_CONTAINER(iconbox->ewl_iconbox_pane_inner), EWL_WIDGET(EWL_ICONBOX_ICON(ib)->floater)); - /* Find the enxt pos for this icon FIXME add this to layout engine */ - ewl_floater_position_set(EWL_FLOATER(EWL_ICONBOX_ICON(ib)->floater), nextx, 0); - nextx += 75; + + /*----------------------*/ + /*Get the icon next position*/ + ewl_object_current_size_get(EWL_OBJECT(iconbox->ewl_iconbox_scrollpane), &sw,&sh); + ewl_floater_position_set(EWL_FLOATER(EWL_ICONBOX_ICON(ib)->floater), iconbox->lx, iconbox->ly); + + if (iconbox->lx + iconbox->iw + EWL_ICONBOX_ICON_PADDING > sw ) { + iconbox->ly += EWL_ICONBOX_ICON_PADDING + iconbox->ih; + iconbox->lx = 0; + } else { + iconbox->lx += EWL_ICONBOX_ICON_PADDING + iconbox->iw; + } + /*----------------------*/ /*Show*/ @@ -683,7 +691,6 @@ void ewl_iconbox_clear(Ewl_IconBox* ib) { Ewl_IconBox_Icon* list_item; - nextx = 0; /*printf("*** Deleting all icons...\n");*/ @@ -703,6 +710,8 @@ } ib->drag_icon = NULL; + ib->lx = 0; + ib->ly = 0; } =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/lib/ewl_iconbox.h,v retrieving revision 1.15 retrieving revision 1.16 diff -u -3 -r1.15 -r1.16 --- ewl_iconbox.h 21 Oct 2005 12:51:34 -0000 1.15 +++ ewl_iconbox.h 22 Oct 2005 00:16:50 -0000 1.16 @@ -78,6 +78,8 @@ Ewl_IconBox_Icon* edit_icon; int xdown, ydown; /* Last icon button down x/y, for edge resistence */ int dx, dy; /* Drag start x/y */ + int lx, ly; /*Layout x, layout y */ + int iw, ih; /*Custom icon width/height*/ /*Background*/ Evas_Object* background; @@ -106,6 +108,7 @@ /* External functions */ +void ewl_iconbox_icon_size_custom_set(Ewl_IconBox* ib, int w, int h); void ewl_iconbox_editable_set(Ewl_IconBox *ib, int edit); void ewl_iconbox_icon_arrange(Ewl_IconBox* ib); void ewl_iconbox_deselect_all(Ewl_IconBox* ib); |
From: <enl...@li...> - 2005-10-22 00:21:39
|
Enlightenment CVS committal Author : lordchaos Project : e17 Module : libs/ewl Dir : e17/libs/ewl/src/lib Modified Files: ewl_iconbox.c Log Message: Converted back to menu rather than imenu =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/lib/ewl_iconbox.c,v retrieving revision 1.39 retrieving revision 1.40 diff -u -3 -r1.39 -r1.40 --- ewl_iconbox.c 22 Oct 2005 00:16:50 -0000 1.39 +++ ewl_iconbox.c 22 Oct 2005 00:21:28 -0000 1.40 @@ -163,13 +163,13 @@ /* Get the context menu ready */ - ib->ewl_iconbox_context_menu = ewl_imenu_new(); + ib->ewl_iconbox_context_menu = ewl_menu_new(); ewl_menu_item_text_set(EWL_MENU_ITEM(ib->ewl_iconbox_context_menu), ""); ewl_container_child_append(EWL_CONTAINER(ib->ewl_iconbox_menu_floater), ib->ewl_iconbox_context_menu); ewl_widget_show(ib->ewl_iconbox_context_menu); /* Add auto-arrange ability */ - ib->ewl_iconbox_view_menu = ewl_imenu_new(); + ib->ewl_iconbox_view_menu = ewl_menu_new(); ewl_menu_item_text_set(EWL_MENU_ITEM(ib->ewl_iconbox_view_menu), "View"); ewl_container_child_append(EWL_CONTAINER(ib->ewl_iconbox_context_menu), ib->ewl_iconbox_view_menu); |