Enlightenment CVS committal Author : codewarrior Project : e17 Module : apps/e
Dir : e17/apps/e/src/bin Modified Files: e_eap_editor.c e_file_dialog.c e_file_dialog.h e_file_selector.c e_file_selector.h e_fileman.c e_fileman_smart.c e_fileman_smart.h e_icon_canvas.c e_widget_fileman.c e_widget_iconsel.c e_widget_iconsel.h Log Message: Continue working on the eap editor and file dialog. - add hilite propagation (single click file, press ok is now the same as double clicking the file directly) - eap editor saves new eaps if you give them a path, simple <-> advanced doesnt relay the info between each other yet. Going to try to do a bit every night. =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_eap_editor.c,v retrieving revision 1.15 retrieving revision 1.16 diff -u -3 -r1.15 -r1.16 --- e_eap_editor.c 4 Dec 2005 12:03:58 -0000 1.15 +++ e_eap_editor.c 5 Dec 2005 22:20:33 -0000 1.16 @@ -44,6 +44,7 @@ static Evas_Object *_e_eap_edit_basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, void *data); static Evas_Object *_e_eap_edit_advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, void *data); static void _e_eap_edit_select_cb(Evas_Object *obj, char *file, void *data); +static void _e_eap_edit_hilite_cb(Evas_Object *obj, char *file, void *data); #define IFDUP(src, dst) if (src) dst = strdup(src); else dst = NULL @@ -242,6 +243,7 @@ editor->img_widget = e_widget_iconsel_add(evas, editor->img, 48, 48, &(cfdata->image)); e_widget_iconsel_select_callback_add(editor->img_widget, _e_eap_edit_select_cb, editor); + e_widget_iconsel_hilite_callback_add(editor->img_widget, _e_eap_edit_hilite_cb, editor); e_widget_frametable_object_append(o, editor->img_widget, 0, 0, 1, 1, 1, 1, 1, 1); @@ -400,3 +402,13 @@ printf("selected: %s\n", file); } + +void +_e_eap_edit_hilite_cb(Evas_Object *obj, char *file, void *data) +{ + E_App_Edit *editor; + +// editor = data; + printf("hilited: %s\n", file); + +} =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_file_dialog.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -3 -r1.9 -r1.10 --- e_file_dialog.c 4 Dec 2005 12:03:58 -0000 1.9 +++ e_file_dialog.c 5 Dec 2005 22:20:33 -0000 1.10 @@ -10,6 +10,7 @@ static void _e_file_dialog_button2_click(void *data, E_Dialog *dia); static void _e_file_dialog_free(E_File_Dialog *dia); static void _e_file_dialog_file_select_cb(Evas_Object *obj, char *file, void *data); +static void _e_file_dialog_file_hilite_cb(Evas_Object *obj, char *file, void *data); E_File_Dialog * e_file_dialog_new(E_Container *con) @@ -41,6 +42,7 @@ dia->con = con; dia->file = NULL; dia->select_func = NULL; + dia->hilite_func = NULL; dia->select_data = NULL; evas = dia->dia->win->evas; @@ -55,6 +57,7 @@ fm = e_widget_fileman_add(evas, &(dia->file)); e_widget_fileman_select_callback_add(fm, _e_file_dialog_file_select_cb, dia); + e_widget_fileman_hilite_callback_add(fm, _e_file_dialog_file_hilite_cb, dia); e_widget_list_object_append(ol, fm, 1, 1, 0.0); e_widget_min_size_get(ol, &w, &h); @@ -86,6 +89,13 @@ dia->select_data = data; } +void +e_file_dialog_hilite_callback_add(E_File_Dialog *dia, void (*func)(E_File_Dialog *dia, char *file, void *data), void *data) +{ + dia->hilite_func = func; + dia->hilite_data = data; +} + /* local subsystem functions */ static void @@ -96,7 +106,7 @@ dia = data; if(dia->select_func && dia->file) dia->select_func(dia, dia->file, dia->select_data); - _e_file_dialog_free(dia); + _e_file_dialog_free(dia); } static void @@ -114,8 +124,20 @@ if(dia->select_func) dia->select_func(dia, file, dia->select_data); - printf("e_file_dialog: %s\n", file); + printf("e_file_dialog (select) : %s\n", file); + +} + +static void +_e_file_dialog_file_hilite_cb(Evas_Object *obj, char *file, void *data) +{ + E_File_Dialog *dia; + + dia = data; + if(dia->hilite_func) + dia->hilite_func(dia, file, dia->hilite_data); + printf("e_file_dialog (hilite) : %s\n", file); } static void @@ -123,5 +145,5 @@ { e_object_unref(E_OBJECT(dia->dia)); E_FREE(dia->file); - free(dia); + //free(dia); } =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_file_dialog.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- e_file_dialog.h 28 Oct 2005 23:37:13 -0000 1.2 +++ e_file_dialog.h 5 Dec 2005 22:20:33 -0000 1.3 @@ -22,12 +22,15 @@ void (*select_func)(E_File_Dialog *dia, char *file, void *data); void *select_data; + void (*hilite_func)(E_File_Dialog *dia, char *file, void *data); + void *hilite_data; }; EAPI E_File_Dialog *e_file_dialog_new (E_Container *con); EAPI void e_file_dialog_show (E_File_Dialog *dia); EAPI void e_file_dialog_title_set (E_File_Dialog *dia, const char *title); EAPI void e_file_dialog_select_callback_add(E_File_Dialog *dia, void (*func)(E_File_Dialog *dia, char *file, void *data), void *data); +EAPI void e_file_dialog_hilite_callback_add(E_File_Dialog *dia, void (*func)(E_File_Dialog *dia, char *file, void *data), void *data); #endif #endif =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_file_selector.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- e_file_selector.c 4 Dec 2005 09:47:49 -0000 1.5 +++ e_file_selector.c 5 Dec 2005 22:20:33 -0000 1.6 @@ -25,6 +25,7 @@ Evas_Coord x, y, w, h; /* coords */ void (*func) (Evas_Object *obj, char *file, void *data); /* selection cb */ + void (*func_hilite) (Evas_Object *obj, char *file, void *data); /* selection cb */ void *func_data; /* selection cb data */ }; @@ -40,6 +41,7 @@ static void _e_smart_clip_unset(Evas_Object *obj); static void _e_smart_init(void); static void _e_file_selector_selected_cb(Evas_Object *obj, char *file, void *data); +static void _e_file_selector_hilited_cb(Evas_Object *obj, char *file, void *data); static void _e_file_selector_scroll_set(Evas_Object *obj, Evas_Coord x, Evas_Coord y); static void _e_file_selector_scroll_get(Evas_Object *obj, Evas_Coord *x, Evas_Coord *y); static void _e_file_selector_scroll_max_get(Evas_Object *obj, Evas_Coord *x, Evas_Coord *y); @@ -80,10 +82,11 @@ } void -e_file_selector_callback_add(Evas_Object *obj, void (*func) (Evas_Object *obj, char *file, void *data), void *data) +e_file_selector_callback_add(Evas_Object *obj, void (*func) (Evas_Object *obj, char *file, void *data), void (*func_hilite) (Evas_Object *obj, char *file, void *data), void *data) { API_ENTRY return; sd->func = func; + sd->func_hilite = func_hilite; sd->func_data = data; } @@ -128,6 +131,7 @@ sd->h = 0; sd->parent = obj; sd->func = NULL; + sd->func_hilite = NULL; sd->func_data = NULL; sd->view = E_FILE_SELECTOR_ICONVIEW; @@ -143,7 +147,7 @@ e_fm_dir_set(sd->files, home); E_FREE(home); - e_fm_selector_enable(sd->files, _e_file_selector_selected_cb, sd); + e_fm_selector_enable(sd->files, _e_file_selector_selected_cb, _e_file_selector_hilited_cb, sd); evas_object_smart_member_add(sd->files, obj); e_scrollframe_extern_pan_set(sd->frame, sd->files, @@ -231,6 +235,15 @@ sd->func(sd->parent, file, sd->func_data); } +_e_file_selector_hilited_cb(Evas_Object *obj, char *file, void *data) +{ + E_Smart_Data *sd; + + sd = data; + if(sd->func_hilite) + sd->func_hilite(sd->parent, file, sd->func_data); +} + /* never need to touch this */ static void =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_file_selector.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- e_file_selector.h 4 Nov 2005 21:04:52 -0000 1.2 +++ e_file_selector.h 5 Dec 2005 22:20:33 -0000 1.3 @@ -18,7 +18,7 @@ EAPI Evas_Object *e_file_selector_add(Evas *evas); EAPI void e_file_selector_view_set(Evas_Object *object, int view); EAPI int e_file_selector_view_get(Evas_Object *object); -EAPI void e_file_selector_callback_add(Evas_Object *obj, void (*func) (Evas_Object *obj, char *file, void *data), void *data); +EAPI void e_file_selector_callback_add(Evas_Object *obj, void (*func) (Evas_Object *obj, char *file, void *data), void (*hilite_func) (Evas_Object *obj, char *file, void *data), void *data); #endif #endif =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_fileman.c,v retrieving revision 1.27 retrieving revision 1.28 diff -u -3 -r1.27 -r1.28 --- e_fileman.c 22 Nov 2005 09:27:25 -0000 1.27 +++ e_fileman.c 5 Dec 2005 22:20:33 -0000 1.28 @@ -152,7 +152,7 @@ { fileman->selector.func = func; fileman->selector.data = data; - e_fm_selector_enable(fileman->smart, _e_fileman_selector_cb, fileman); + e_fm_selector_enable(fileman->smart, _e_fileman_selector_cb, NULL, fileman); } void =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_fileman_smart.c,v retrieving revision 1.111 retrieving revision 1.112 diff -u -3 -r1.111 -r1.112 --- e_fileman_smart.c 4 Dec 2005 11:46:09 -0000 1.111 +++ e_fileman_smart.c 5 Dec 2005 22:20:34 -0000 1.112 @@ -180,6 +180,7 @@ int is_selector; void (*selector_func) (Evas_Object *object, char *file, void *data); void *selector_data; + void (*selector_hilite_func) (Evas_Object *object, char *file, void *data); Evas_Coord x, y, w, h; @@ -301,6 +302,7 @@ static int _e_fm_files_sort_layout_name_cb (void *d1, void *d2); static void _e_fm_selector_send_file (E_Fm_Icon *icon); +static void _e_fm_selector_send_hilite_file (E_Fm_Icon *icon); static char *_e_fm_dir_meta_dir_id(char *dir); static int _e_fm_dir_meta_load(E_Fm_Smart_Data *sd); @@ -548,7 +550,7 @@ } void -e_fm_selector_enable(Evas_Object *object, void (*func)(Evas_Object *object, char *file, void *data), void *data) +e_fm_selector_enable(Evas_Object *object, void (*func)(Evas_Object *object, char *file, void *data), void (*hilite_func)(Evas_Object *object, char *file, void *data), void *data) { E_Fm_Smart_Data *sd; @@ -558,6 +560,7 @@ sd->is_selector = 1; sd->selector_func = func; sd->selector_data = data; + sd->selector_hilite_func = hilite_func; } /* This isnt working yet */ @@ -2195,6 +2198,9 @@ } else { + if(icon->sd->is_selector && icon->file->type == E_FM_FILE_TYPE_FILE) + _e_fm_selector_send_hilite_file(icon); + if(icon->sd->win) { icon->sd->drag.start = 1; @@ -3227,6 +3233,12 @@ icon->sd->selector_func(icon->sd->object, strdup(icon->file->path), icon->sd->selector_data); } +static void +_e_fm_selector_send_hilite_file(E_Fm_Icon *icon) +{ + icon->sd->selector_hilite_func(icon->sd->object, strdup(icon->file->path), icon->sd->selector_data); +} + static char * _e_fm_dir_meta_dir_id(char *dir) { =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_fileman_smart.h,v retrieving revision 1.13 retrieving revision 1.14 diff -u -3 -r1.13 -r1.14 --- e_fileman_smart.h 22 Nov 2005 09:27:25 -0000 1.13 +++ e_fileman_smart.h 5 Dec 2005 22:20:34 -0000 1.14 @@ -43,7 +43,7 @@ EAPI void e_fm_reconfigure_callback_add(Evas_Object *object, void (*func)(void *data, Evas_Object *obj, E_Event_Fm_Reconfigure *ev), void *data); EAPI int e_fm_freeze(Evas_Object *freeze); EAPI int e_fm_thaw(Evas_Object *freeze); -EAPI void e_fm_selector_enable(Evas_Object *object, void (*func)(Evas_Object *object, char *file, void *data), void *data); +EAPI void e_fm_selector_enable(Evas_Object *object, void (*func)(Evas_Object *object, char *file, void *data), void (*hilite_func)(Evas_Object *object, char *file, void *data), void *data); EAPI void e_fm_background_set(Evas_Object *object, Evas_Object *bg); EAPI Evas_Object *e_fm_icon_create(void *data); =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_icon_canvas.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- e_icon_canvas.c 22 Nov 2005 09:41:16 -0000 1.1 +++ e_icon_canvas.c 5 Dec 2005 22:20:34 -0000 1.2 @@ -643,6 +643,8 @@ void _e_icon_canvas_tile_pack(E_Icon_Canvas_Tile *t, E_Icon_Canvas_Item *li) { + if(!t) + return; t->items = evas_list_append(t->items, li); li->tile = t; if(t->visible) =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_widget_fileman.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -3 -r1.6 -r1.7 --- e_widget_fileman.c 4 Nov 2005 21:02:47 -0000 1.6 +++ e_widget_fileman.c 5 Dec 2005 22:20:34 -0000 1.7 @@ -16,11 +16,14 @@ char **valptr; void (*select_func) (Evas_Object *obj, char *file, void *data); void *select_data; + void (*hilite_func) (Evas_Object *obj, char *file, void *data); + void *hilite_data; }; static void _e_wid_del_hook(Evas_Object *obj); static void _e_wid_focus_steal(void *data, Evas *e, Evas_Object *obj, void *event_info); static void _e_wid_fileman_selected_cb(Evas_Object *obj, char *file, void *data); +static void _e_wid_fileman_hilited_cb(Evas_Object *obj, char *file, void *data); /* local subsystem functions */ @@ -49,13 +52,36 @@ /* this is crashing, see why */ #if 0 E_FREE(*(wd->valptr)); - *(wd->valptr) = strdup(file); -#endif +#endif + if(wd->valptr) + *(wd->valptr) = strdup(file); + if (wd->select_func) wd->select_func(wd->wid, file, wd->select_data); - printf("e_widget_fileman: %s\n", file); + printf("e_widget_fileman (selected) : %s\n", file); +} + +static void +_e_wid_fileman_hilited_cb(Evas_Object *obj, char *file, void *data) +{ + E_Widget_Data *wd; + + wd = data; + +/* this is crashing, see why */ +#if 0 + E_FREE(*(wd->valptr)); +#endif + if(wd->valptr) + *(wd->valptr) = strdup(file); + + + if (wd->hilite_func) + wd->hilite_func(wd->wid, file, wd->select_data); + + printf("e_widget_fileman (hilited): %s\n", file); } /* externally accessible functions */ @@ -76,7 +102,7 @@ e_widget_data_set(obj, wd); wd->o_fm = e_file_selector_add(evas); - e_file_selector_callback_add(wd->o_fm, _e_wid_fileman_selected_cb, wd); + e_file_selector_callback_add(wd->o_fm, _e_wid_fileman_selected_cb, _e_wid_fileman_hilited_cb, wd); evas_object_show(wd->o_fm); evas_object_resize(wd->o_fm, 300, 200); e_widget_min_size_set(obj, 300, 200); @@ -98,3 +124,13 @@ wd->select_func = func; wd->select_data = data; } + +void +e_widget_fileman_hilite_callback_add(Evas_Object *obj, void (*func) (Evas_Object *obj, char *file, void *data), void *data) +{ + E_Widget_Data *wd; + + wd = e_widget_data_get(obj); + wd->hilite_func = func; + wd->hilite_data = data; +} =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_widget_iconsel.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -3 -r1.6 -r1.7 --- e_widget_iconsel.c 4 Nov 2005 21:02:12 -0000 1.6 +++ e_widget_iconsel.c 5 Dec 2005 22:20:34 -0000 1.7 @@ -21,6 +21,8 @@ void (*select_func) (Evas_Object *obj, char *file, void *data); void *select_data; + void (*hilite_func) (Evas_Object *obj, char *file, void *data); + void *hilite_data; }; static void _e_wid_del_hook(Evas_Object *obj); @@ -31,6 +33,7 @@ static void _e_wid_signal_cb1(void *data, Evas_Object *obj, const char *emission, const char *source); static void _e_wid_focus_steal(void *data, Evas *e, Evas_Object *obj, void *event_info); static void _e_wid_select_cb(E_File_Dialog *dia, char *file, void *data); +static void _e_wid_hilite_cb(E_File_Dialog *dia, char *file, void *data); /* local subsystem functions */ @@ -53,6 +56,8 @@ wd->valptr = file; wd->select_func = NULL; wd->select_data = NULL; + wd->hilite_func = NULL; + wd->hilite_data = NULL; wd->obj = obj; e_widget_data_set(obj, wd); @@ -108,7 +113,9 @@ wd = calloc(1, sizeof(E_Widget_Data)); wd->valptr = file; wd->select_func = NULL; - wd->select_data = NULL; + wd->select_data = NULL; + wd->hilite_func = NULL; + wd->hilite_data = NULL; wd->obj = obj; e_widget_data_set(obj, wd); @@ -152,6 +159,16 @@ wd->select_data = data; } +void +e_widget_iconsel_hilite_callback_add(Evas_Object *obj, void (*func)(Evas_Object *obj, char *file, void *data), void *data) +{ + E_Widget_Data *wd; + + wd = e_widget_data_get(obj); + wd->hilite_func = func; + wd->hilite_data = data; +} + static void _e_wid_del_hook(Evas_Object *obj) { @@ -191,6 +208,7 @@ if (!dia) return; e_file_dialog_title_set(dia, "Select File"); e_file_dialog_select_callback_add(dia, _e_wid_select_cb, wd); + e_file_dialog_hilite_callback_add(dia, _e_wid_hilite_cb, wd); e_file_dialog_show(dia); } @@ -265,3 +283,26 @@ *(wd->valptr) = strdup(file); e_object_del(E_OBJECT(dia)); } + +static void +_e_wid_hilite_cb(E_File_Dialog *dia, char *file, void *data) +{ + E_Widget_Data *wd; + char *ext; + + wd = data; + + ext = strrchr(file, '.'); + if (!ext) return; + if ((strcasecmp(ext, ".png")) && + (strcasecmp(ext, ".jpg")) && + (strcasecmp(ext, ".jpeg"))) + return; + + if (wd->hilite_func) + wd->hilite_func(wd->obj, file, wd->select_data); + + //e_icon_file_set(wd->o_icon, file); + E_FREE(*(wd->valptr)); + *(wd->valptr) = strdup(file); +} =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_widget_iconsel.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- e_widget_iconsel.h 4 Nov 2005 21:01:37 -0000 1.3 +++ e_widget_iconsel.h 5 Dec 2005 22:20:34 -0000 1.4 @@ -9,6 +9,7 @@ EAPI Evas_Object *e_widget_iconsel_add(Evas *evas, Evas_Object *icon, Evas_Coord minw, Evas_Coord minh, char **file); EAPI Evas_Object *e_widget_iconsel_add_from_file(Evas *evas, char *icon, Evas_Coord minw, Evas_Coord minh, char **file); EAPI void e_widget_iconsel_select_callback_add(Evas_Object *obj, void (*func)(Evas_Object *obj, char *file, void *data), void *data); +EAPI void e_widget_iconsel_hilite_callback_add(Evas_Object *obj, void (*func)(Evas_Object *obj, char *file, void *data), void *data); #endif #endif ------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs