Enlightenment CVS committal Author : titan Project : e17 Module : apps/ephoto
Dir : e17/apps/ephoto/src/bin Modified Files: ephoto.c ephoto.h ephoto_albums.c ephoto_database.c ephoto_dialogs.c ephoto_gui.c ephoto_main.c ephoto_normal_view.c ephoto_single_view.c Log Message: Change from Freebox to Freebox_mvc.. update to work with fill policy changes =================================================================== RCS file: /cvs/e/e17/apps/ephoto/src/bin/ephoto.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -3 -r1.9 -r1.10 --- ephoto.c 8 Apr 2008 22:39:00 -0000 1.9 +++ ephoto.c 14 Jun 2008 21:35:01 -0000 1.10 @@ -1,62 +1,15 @@ #include "ephoto.h" -Ephoto_Config *ec; Ephoto_Main *em; int main(int argc, char **argv) { - int i; - if (!ewl_init(&argc, argv)) { - printf("Ewl is not usable, please check your installation!\n"); + printf("Ewl is not usable, check your installation!\n"); return 1; } - - em = NULL; - em = calloc(1, sizeof(Ephoto_Main)); - - em->albums = ecore_list_new(); - em->fsystem = ecore_list_new(); - em->images = ecore_dlist_new(); - - em->types = ecore_hash_new(ecore_str_hash, ecore_str_compare); - ecore_hash_set(em->types, "image/gif", "image"); - ecore_hash_set(em->types, "image/jpeg", "image"); - ecore_hash_set(em->types, "image/png", "image"); - ecore_hash_set(em->types, "image/svg+xml", "image"); - ecore_hash_set(em->types, "image/tiff", "image"); - - ec = NULL; - ec = calloc(1, sizeof(Ephoto_Config)); - - for(i = 1; i < argc; i++) - { - if (!strcmp(argv[i], "--help")) - { - printf( "Help Page\n" - "ephoto %%f - Opens an image for viewing\n"); - return 0; - } - else - { - if(strncmp(argv[i], "/", 1)) - { - char buf[PATH_MAX], file[PATH_MAX]; - - getcwd(buf, PATH_MAX); - buf[sizeof(buf)-1] = '\0'; - - snprintf(file, PATH_MAX, "%s/%s", buf, argv[i]); - if (ecore_file_exists(file)) - ec->requested_image = file; - } - else - if (ecore_file_exists(argv[i])) - ec->requested_image = argv[i]; - } - } #ifdef ENABLE_NLS setlocale(LC_MESSAGES, ""); =================================================================== RCS file: /cvs/e/e17/apps/ephoto/src/bin/ephoto.h,v retrieving revision 1.28 retrieving revision 1.29 diff -u -3 -r1.28 -r1.29 --- ephoto.h 8 Apr 2008 22:39:00 -0000 1.28 +++ ephoto.h 14 Jun 2008 21:35:01 -0000 1.29 @@ -69,7 +69,6 @@ /*ephoto_dialogs.c*/ void about_dialog(Ewl_Widget *w, void *event, void *data); -void add_album_dialog(Ewl_Widget *w, void *event, void *data); /*ephoto_exif.c*/ #ifdef BUILD_EXIF_SUPPORT @@ -108,7 +107,7 @@ void *cb, void *data); Ewl_Widget *add_text(Ewl_Widget *c, char *text); -Ewl_Widget *add_window(char *name, int w, int h, void *cb, +Ewl_Widget *add_window(char *title, int w, int h, void *cb, void *data); /*ephoto_imaging.c*/ @@ -170,6 +169,7 @@ Ewl_Widget *fbox; Ewl_Widget *ftree; Ewl_Widget *fthumb_size; + Ewl_Widget *scroll; Ewl_Widget *simage; Ewl_Widget *single_vbox; Ewl_Widget *view; @@ -178,16 +178,6 @@ sqlite3 *db; }; -typedef struct _Ephoto_Config Ephoto_Config; - -struct _Ephoto_Config -{ - char *requested_album; - char *requested_directory; - char *requested_image; -}; - extern Ephoto_Main *em; -extern Ephoto_Config *ec; #endif =================================================================== RCS file: /cvs/e/e17/apps/ephoto/src/bin/ephoto_albums.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -3 -r1.6 -r1.7 --- ephoto_albums.c 23 Apr 2008 21:28:10 -0000 1.6 +++ ephoto_albums.c 14 Jun 2008 21:35:01 -0000 1.7 @@ -10,7 +10,6 @@ static unsigned int album_data_count(void *data); static void add_rc_menu(Ewl_Widget *w, void *event, void *data); static void album_clicked(Ewl_Widget *w, void *event, void *data); -static void thumb_clicked(Ewl_Widget *w, void *event, void *data); static void populate_images(Ewl_Widget *w, void *event, void *data); void @@ -45,13 +44,14 @@ ewl_view_header_fetch_set(view, album_header_fetch); tree = ewl_tree_new(); - ewl_tree_headers_visible_set(EWL_TREE(tree), 0); - ewl_tree_fixed_rows_set(EWL_TREE(tree), 1); + ewl_tree_headers_visible_set(EWL_TREE(tree), TRUE); + ewl_tree_fixed_rows_set(EWL_TREE(tree), TRUE); ewl_tree_column_count_set(EWL_TREE(tree), 1); ewl_mvc_model_set(EWL_MVC(tree), model); ewl_mvc_view_set(EWL_MVC(tree), view); ewl_mvc_selection_mode_set(EWL_MVC(tree), EWL_SELECTION_MODE_SINGLE); - ewl_object_fill_policy_set(EWL_OBJECT(tree), EWL_FLAG_FILL_ALL); + ewl_object_fill_policy_set(EWL_OBJECT(tree), EWL_FLAG_FILL_FILL); + ewl_object_minimum_w_set(EWL_OBJECT(tree), 180); ewl_container_child_prepend(EWL_CONTAINER(c), tree); ewl_widget_show(tree); @@ -142,25 +142,6 @@ rc_remove, w); } -static void -thumb_clicked(Ewl_Widget *w, void *event, void *data) -{ - const char *file; - char *point1; - - file = ewl_widget_name_get(w); - - ecore_dlist_first_goto(em->images); - while(ecore_dlist_current(em->images)) - { - point1 = ecore_dlist_current(em->images); - if (!strcmp(point1, file)) break; - ecore_dlist_next(em->images); - } - - show_single_view(NULL, NULL, NULL); -} - void populate_albums(Ewl_Widget *w, void *event, void *data) { @@ -197,7 +178,7 @@ static void populate_images(Ewl_Widget *w, void *event, void *data) { - pthread_t thumb_worker, image_worker; + pthread_t image_worker; int ret1; if (!ecore_list_empty_is(em->images)) @@ -213,43 +194,9 @@ } pthread_join(image_worker, NULL); - ret1 = pthread_create(&thumb_worker, NULL, create_athumb, NULL); - if (ret1) - { - printf("ERROR: Couldn't create thread!\n"); - return; - } - pthread_join(thumb_worker, NULL); + ewl_mvc_data_set(EWL_MVC(em->fbox), em->images); return; -} - -void * -create_athumb() -{ - Ewl_Widget *thumb; - char *imagef; - - while (ecore_dlist_current(em->images)) - { - imagef = ecore_dlist_current(em->images); - - if (imagef) - { - thumb = add_image(em->fbox, imagef, 1, - thumb_clicked, NULL); - ewl_image_constrain_set(EWL_IMAGE(thumb), - ewl_range_value_get(EWL_RANGE - (em->fthumb_size))); - ewl_object_alignment_set(EWL_OBJECT(thumb), - EWL_FLAG_ALIGN_CENTER); - ewl_widget_name_set(thumb, imagef); - } - ecore_dlist_next(em->images); - } - ewl_widget_configure(em->fbox_vbox); - - pthread_exit(NULL); } void * =================================================================== RCS file: /cvs/e/e17/apps/ephoto/src/bin/ephoto_database.c,v retrieving revision 1.10 retrieving revision 1.11 diff -u -3 -r1.10 -r1.11 --- ephoto_database.c 8 Apr 2008 22:39:00 -0000 1.10 +++ ephoto_database.c 14 Jun 2008 21:35:01 -0000 1.11 @@ -21,7 +21,8 @@ images_list = ecore_dlist_new(); image_ids = ecore_list_new(); - snprintf(path, PATH_MAX, "%s/.ephoto/.ephoto_database", getenv("HOME")); + snprintf(path, PATH_MAX, "%s/.ephoto/.ephoto_database", + getenv("HOME")); snprintf(path2, PATH_MAX, "%s/.ephoto", getenv("HOME")); if (!ecore_file_exists(path)) =================================================================== RCS file: /cvs/e/e17/apps/ephoto/src/bin/ephoto_dialogs.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- ephoto_dialogs.c 8 Apr 2008 22:39:00 -0000 1.4 +++ ephoto_dialogs.c 14 Jun 2008 21:35:01 -0000 1.5 @@ -1,8 +1,6 @@ #include "ephoto.h" static void close_dialog(Ewl_Widget *w, void *event, void *data); -static void add_ok(Ewl_Widget *w, void *event, void *data); -Ewl_Widget *name_entry, *desc_entry; static void close_dialog(Ewl_Widget *w, void *event, void *data) @@ -17,13 +15,15 @@ void about_dialog(Ewl_Widget *w, void *event, void *data) { + char *txt, title[PATH_MAX]; Ewl_Widget *window, *button, *image, *vbox, *sp, *text; - window = add_window("About Ephoto", 200, 300, NULL, NULL); + window = add_window("About Ephoto", 300, 375, NULL, NULL); + ewl_window_dialog_set(EWL_WINDOW(window), TRUE); ewl_callback_append(window, EWL_CALLBACK_DELETE_WINDOW, close_dialog, window); - vbox = add_box(window, EWL_ORIENTATION_VERTICAL, 3); + vbox = add_box(window, EWL_ORIENTATION_VERTICAL, 0); ewl_object_fill_policy_set(EWL_OBJECT(vbox), EWL_FLAG_FILL_ALL); image = add_image(vbox, PACKAGE_DATA_DIR "/images/photo_lens.png", 0, @@ -33,20 +33,33 @@ ewl_object_fill_policy_set(EWL_OBJECT(image), EWL_FLAG_FILL_SHRINK); sp = ewl_scrollpane_new(); - ewl_object_fill_policy_set(EWL_OBJECT(sp), EWL_FLAG_FILL_ALL); ewl_container_child_append(EWL_CONTAINER(vbox), sp); ewl_widget_show(sp); - text = add_text(sp, "Ephoto is an advanced image viewer that allows\n" - "you to view images using several methods. They\n" - "include an icon view, a list view, and a single\n" - "image view. You can also view exif data, view\n" - "images in a fullscreen mode, and view images in a\n" - "slideshow. The edit view offers simple and advanced\n" - "editing options."); + snprintf(title, PATH_MAX, "Ephoto - Version %s", VERSION); + txt = "Ephoto is a photo management application that " + "organizes images and allows viewing and editing of " + "them. It includes a standard thumbnail browser " + "and a single picture browser that allows for " + "editing. Features include viewing exif data, " + "viewing slideshows, and exporting your images."; + text = ewl_text_new(); ewl_text_wrap_set(EWL_TEXT(text), EWL_TEXT_WRAP_WORD); - ewl_object_alignment_set(EWL_OBJECT(text), EWL_FLAG_ALIGN_CENTER); + ewl_text_font_source_set(EWL_TEXT(text), ewl_theme_path_get(), + "ewl/default/bold"); + ewl_text_font_size_set(EWL_TEXT(text), 20); + ewl_text_align_set(EWL_TEXT(text), EWL_FLAG_ALIGN_CENTER); + ewl_text_styles_set(EWL_TEXT(text), EWL_TEXT_STYLE_SOFT_SHADOW); + ewl_text_text_append(EWL_TEXT(text), title); + ewl_text_align_set(EWL_TEXT(text), EWL_FLAG_ALIGN_LEFT); + ewl_text_styles_set(EWL_TEXT(text), EWL_TEXT_STYLE_NONE); + ewl_text_font_set(EWL_TEXT(text), NULL); + ewl_text_font_size_set(EWL_TEXT(text), 14); + ewl_text_text_append(EWL_TEXT(text), "\n\n"); + ewl_text_text_append(EWL_TEXT(text), txt); + ewl_container_child_append(EWL_CONTAINER(sp), text); + ewl_widget_show(text); button = add_button(vbox, "Close", PACKAGE_DATA_DIR "/images/dialog-close.png", @@ -57,48 +70,3 @@ return; } -static void -add_ok(Ewl_Widget *w, void *event, void *data) -{ - Ewl_Widget *win = data; - char *name, *desc; - - name = ewl_text_text_get(EWL_TEXT(name_entry)); - desc = ewl_text_text_get(EWL_TEXT(desc_entry)); - - if (name) - { - ephoto_db_add_album(em->db, name, desc); - populate_albums(NULL, NULL, NULL); - } - - ewl_widget_destroy(win); -} - -void -add_album_dialog(Ewl_Widget *w, void *event, void *data) -{ - Ewl_Widget *window, *vbox, *hbox; - - window = add_window("Add Album", 340, 160, NULL, NULL); - ewl_callback_append(window, EWL_CALLBACK_DELETE_WINDOW, close_dialog, - window); - - vbox = add_box(window, EWL_ORIENTATION_VERTICAL, 5); - ewl_object_fill_policy_set(EWL_OBJECT(vbox), EWL_FLAG_FILL_ALL); - - add_text(vbox, "Please provide a name for the new album:"); - - name_entry = add_entry(vbox, "New Album", NULL, NULL); - - add_text(vbox, "Please provide a short description for this album:"); - - desc_entry = add_entry(vbox, "Album Description", NULL, NULL); - - hbox = add_box(vbox, EWL_ORIENTATION_HORIZONTAL, 5); - ewl_object_fill_policy_set(EWL_OBJECT(hbox), EWL_FLAG_FILL_SHRINK); - - add_button(hbox, "Save", NULL, add_ok, window); - - add_button(hbox, "Cancel", NULL, close_dialog, window); -} =================================================================== RCS file: /cvs/e/e17/apps/ephoto/src/bin/ephoto_gui.c,v retrieving revision 1.13 retrieving revision 1.14 diff -u -3 -r1.13 -r1.14 --- ephoto_gui.c 10 Apr 2008 20:40:50 -0000 1.13 +++ ephoto_gui.c 14 Jun 2008 21:35:01 -0000 1.14 @@ -170,7 +170,7 @@ Ewl_Widget *text; text = ewl_text_new(); - if(txt) ewl_text_text_set(EWL_TEXT(text), _(txt)); + if(txt) ewl_text_text_append(EWL_TEXT(text), _(txt)); ewl_object_alignment_set(EWL_OBJECT(text), EWL_FLAG_ALIGN_CENTER); if(c) ewl_container_child_append(EWL_CONTAINER(c), text); @@ -180,18 +180,17 @@ } Ewl_Widget * -add_window(char *name, int w, int h, void *cb, void *data) +add_window(char *title, int w, int h, void *cb, void *data) { Ewl_Widget *win; win = ewl_window_new(); - if(name) - { - ewl_window_title_set(EWL_WINDOW(win), _(name)); - ewl_window_name_set(EWL_WINDOW(win), _(name)); - } - if(w && h) ewl_object_size_request(EWL_OBJECT(win), w, h); - if(cb) ewl_callback_append(win, EWL_CALLBACK_DELETE_WINDOW, + if(title) + ewl_window_title_set(EWL_WINDOW(win), _(title)); + if(w && h) + ewl_object_size_request(EWL_OBJECT(win), w, h); + if(cb) + ewl_callback_append(win, EWL_CALLBACK_DELETE_WINDOW, cb, data); ewl_widget_show(win); =================================================================== RCS file: /cvs/e/e17/apps/ephoto/src/bin/ephoto_main.c,v retrieving revision 1.48 retrieving revision 1.49 diff -u -3 -r1.48 -r1.49 --- ephoto_main.c 8 Apr 2008 22:39:00 -0000 1.48 +++ ephoto_main.c 14 Jun 2008 21:35:01 -0000 1.49 @@ -1,5 +1,6 @@ #include "ephoto.h" +Ephoto_Main *em; static void destroy(Ewl_Widget *w, void *event, void *data); static void @@ -14,13 +15,6 @@ free(em->current_album); free(em->current_directory); free(em); - if (ec->requested_album) - free(ec->requested_album); - if (ec->requested_directory) - free(ec->requested_directory); - if (ec->requested_image) - free(ec->requested_image); - free(ec); ewl_main_quit(); return; } @@ -28,36 +22,43 @@ void create_main(void) { - const char *type; char buf[PATH_MAX]; - Ewl_Widget *hbox, *vbox; + Ewl_Widget *hbox, *mbar, *menu, *vbox; - if (ec->requested_image) - { - type = efreet_mime_type_get(ec->requested_image); - if ((ecore_hash_get(em->types, type)) != "image") - ec->requested_image = NULL; - } - - if (ec->requested_album) - em->current_album = strdup(ec->requested_album); - else - em->current_album = strdup("Complete Library"); + em = NULL; + em = calloc(1, sizeof(Ephoto_Main)); + + em->albums = ecore_list_new(); + em->fsystem = ecore_list_new(); + em->images = ecore_dlist_new(); + + em->types = ecore_hash_new(ecore_str_hash, ecore_str_compare); + ecore_hash_set(em->types, "image/gif", "image"); + ecore_hash_set(em->types, "image/jpeg", "image"); + ecore_hash_set(em->types, "image/png", "image"); + ecore_hash_set(em->types, "image/svg+xml", "image"); + ecore_hash_set(em->types, "image/tiff", "image"); + + em->current_album = strdup("Complete Library"); em->db = ephoto_db_init(); - if (ec->requested_directory) - em->current_directory = strdup(ec->requested_directory); - else - { - getcwd(buf, PATH_MAX); - em->current_directory = strdup(buf); - } + getcwd(buf, PATH_MAX); + em->current_directory = strdup(buf); - em->win = add_window("Ephoto!", 715, 500, destroy, NULL); + em->win = add_window("Ephoto - Photo Management", 600, 400, destroy, NULL); vbox = add_box(em->win, EWL_ORIENTATION_VERTICAL, 5); ewl_object_fill_policy_set(EWL_OBJECT(vbox), EWL_FLAG_FILL_ALL); + mbar = add_menubar(vbox); + + menu = add_menu(mbar, "File"); + add_menu_item(menu, "Exit", + PACKAGE_DATA_DIR "/images/exit.png", destroy, NULL); + menu = add_menu(mbar, "Help"); + add_menu_item(menu, "About", + PACKAGE_DATA_DIR "/images/help.png", about_dialog, NULL); + hbox = add_box(vbox, EWL_ORIENTATION_HORIZONTAL, 5); ewl_object_fill_policy_set(EWL_OBJECT(hbox), EWL_FLAG_FILL_HFILL); @@ -70,16 +71,8 @@ ewl_container_child_append(EWL_CONTAINER(em->view), em->view_box); ewl_widget_show(em->view_box); - if (ec->requested_image) - { - add_single_view(em->view_box); - add_normal_view(em->view_box); - } - else - { - add_normal_view(em->view_box); - add_single_view(em->view_box); - } + add_normal_view(em->view_box); + add_single_view(em->view_box); return; } =================================================================== RCS file: /cvs/e/e17/apps/ephoto/src/bin/ephoto_normal_view.c,v retrieving revision 1.22 retrieving revision 1.23 diff -u -3 -r1.22 -r1.23 --- ephoto_normal_view.c 9 Apr 2008 19:47:39 -0000 1.22 +++ ephoto_normal_view.c 14 Jun 2008 21:35:01 -0000 1.23 @@ -1,29 +1,54 @@ #include "ephoto.h" static void change_size(Ewl_Widget *w, void *event, void *data); +static void thumb_clicked(Ewl_Widget *w, void *event, void *data); static void change_size(Ewl_Widget *w, void *event, void *data) { - Ewl_Widget *child; + ewl_mvc_dirty_set(EWL_MVC(em->fbox), TRUE); + ewl_widget_configure(em->scroll); - ewl_container_child_iterate_begin(EWL_CONTAINER(em->fbox)); + return; +} + +static void +thumb_clicked(Ewl_Widget *w, void *event, void *data) +{ + const char *file; + Ewl_Event_Mouse_Down *ev; - while ((child = ewl_container_child_next(EWL_CONTAINER(em->fbox)))) + ev = event; + + if (ev->clicks == 2) { - ewl_image_constrain_set(EWL_IMAGE(child), - ewl_range_value_get(EWL_RANGE(em->fthumb_size))); - ewl_widget_reparent(child); + file = ewl_widget_name_get(w); + show_single_view(NULL, NULL, NULL); } - ewl_widget_configure(em->fbox_vbox); +} - return; +static Ewl_Widget * +fbox_widget_fetch(void *data, unsigned int row, unsigned int column) +{ + char *imagef; + Ewl_Widget *image; + + imagef = data; + + image = add_image(NULL, imagef, 1, thumb_clicked, NULL); + ewl_image_constrain_set(EWL_IMAGE(image), + ewl_range_value_get(EWL_RANGE(em->fthumb_size))); + ewl_object_alignment_set(EWL_OBJECT(image), EWL_FLAG_ALIGN_CENTER); + ewl_widget_name_set(image, imagef); + + return image; } Ewl_Widget * add_normal_view(Ewl_Widget *c) { - Ewl_Widget *avbox, *box, *button, *hbox, *image, *sp, *vbox; + Ewl_Widget *avbox, *box, *button, *hbox, *image, *vbox; + Ewl_View *view; em->fbox_vbox = add_box(c, EWL_ORIENTATION_VERTICAL, 5); ewl_object_fill_policy_set(EWL_OBJECT(em->fbox_vbox), @@ -31,38 +56,43 @@ ewl_notebook_page_tab_text_set(EWL_NOTEBOOK(c), em->fbox_vbox, "Normal"); - hbox = ewl_hbox_new(); + hbox = add_box(em->fbox_vbox, EWL_ORIENTATION_HORIZONTAL, 5); ewl_object_fill_policy_set(EWL_OBJECT(hbox), EWL_FLAG_FILL_ALL); - ewl_container_child_append(EWL_CONTAINER(em->fbox_vbox), hbox); - ewl_widget_show(hbox); avbox = add_box(hbox, EWL_ORIENTATION_VERTICAL, 2); ewl_object_fill_policy_set(EWL_OBJECT(avbox), EWL_FLAG_FILL_VFILL); + ewl_object_minimum_w_set(EWL_OBJECT(avbox), 220); box = add_box(avbox, EWL_ORIENTATION_HORIZONTAL, 2); ewl_object_fill_policy_set(EWL_OBJECT(box), EWL_FLAG_FILL_SHRINK); button = add_button(box, "Import", PACKAGE_DATA_DIR "/images/add.png", ephoto_import_dialog, NULL); - ewl_object_fill_policy_set(EWL_OBJECT(button), EWL_FLAG_FILL_SHRINK); + ewl_object_fill_policy_set(EWL_OBJECT(button), EWL_FLAG_FILL_NONE); - button = add_button(box, "Export", PACKAGE_DATA_DIR "/images/emblem-photos.png", NULL, NULL); - ewl_object_fill_policy_set(EWL_OBJECT(button), EWL_FLAG_FILL_SHRINK); + button = add_button(box, "Export", + PACKAGE_DATA_DIR "/images/emblem-photos.png", NULL, NULL); + ewl_object_fill_policy_set(EWL_OBJECT(button), EWL_FLAG_FILL_NONE); vbox = add_box(hbox, EWL_ORIENTATION_VERTICAL, 2); - sp = ewl_scrollpane_new(); - ewl_object_fill_policy_set(EWL_OBJECT(sp), EWL_FLAG_FILL_ALL); - ewl_container_child_append(EWL_CONTAINER(vbox), sp); - ewl_widget_show(sp); - - em->fbox = ewl_hfreebox_new(); - ewl_freebox_layout_type_set(EWL_FREEBOX(em->fbox), - EWL_FREEBOX_LAYOUT_AUTO); + em->scroll = ewl_scrollpane_new(); + ewl_container_child_append(EWL_CONTAINER(vbox), em->scroll); + ewl_widget_show(em->scroll); + + view = ewl_view_new(); + ewl_view_widget_fetch_set(view, fbox_widget_fetch); + + em->fbox = ewl_hfreebox_mvc_new(); + ewl_mvc_model_set(EWL_MVC(em->fbox), ewl_model_ecore_list_instance()); + ewl_mvc_view_set(EWL_MVC(em->fbox), view); + ewl_mvc_selection_mode_set(EWL_MVC(em->fbox), EWL_SELECTION_MODE_SINGLE); ewl_object_fill_policy_set(EWL_OBJECT(em->fbox), EWL_FLAG_FILL_ALL); - ewl_container_child_append(EWL_CONTAINER(sp), em->fbox); + ewl_container_child_append(EWL_CONTAINER(em->scroll), em->fbox); ewl_widget_show(em->fbox); + show_albums(avbox); + box = add_box(vbox, EWL_ORIENTATION_HORIZONTAL, 10); ewl_object_fill_policy_set(EWL_OBJECT(box), EWL_FLAG_FILL_SHRINK); @@ -79,8 +109,6 @@ change_size, NULL); ewl_object_maximum_size_set(EWL_OBJECT(em->fthumb_size), 160, 40); ewl_widget_show(em->fthumb_size); - - show_albums(avbox); image = add_image(box, PACKAGE_DATA_DIR "/images/image.png", 0, NULL, NULL); ewl_image_constrain_set(EWL_IMAGE(image), 32); =================================================================== RCS file: /cvs/e/e17/apps/ephoto/src/bin/ephoto_single_view.c,v retrieving revision 1.14 retrieving revision 1.15 diff -u -3 -r1.14 -r1.15 --- ephoto_single_view.c 23 Apr 2008 21:28:10 -0000 1.14 +++ ephoto_single_view.c 14 Jun 2008 21:35:01 -0000 1.15 @@ -16,19 +16,16 @@ static void image_sepia(Ewl_Widget *w, void *event, void *data); static void close_channel(Ewl_Widget *w, void *event, void *data); static void channel_mixer(Ewl_Widget *w, void *event, void *data); -static void set_requested_image_file(Ewl_Widget *w, void *event, void *data); static void set_image_file(Ewl_Widget *w, void *event, void *data); -static void -set_requested_image_file(Ewl_Widget *w, void *event, void *data) -{ - ewl_image_file_path_set(EWL_IMAGE(w), ec->requested_image); -} - static void set_image_file(Ewl_Widget *w, void *event, void *data) { - ewl_image_file_path_set(EWL_IMAGE(w), ecore_dlist_current(em->images)); + Ewl_Selection_Idx *i; + + i = ewl_mvc_selected_get(EWL_MVC(em->fbox)); + + ewl_image_file_path_set(EWL_IMAGE(w), ecore_dlist_index_goto(em->images, i->row)); ewl_object_fill_policy_set(EWL_OBJECT(w), EWL_FLAG_FILL_NONE); ewl_callback_del(w, EWL_CALLBACK_CONFIGURE, set_image_file); } @@ -36,8 +33,7 @@ Ewl_Widget * add_single_view(Ewl_Widget *c) { - Ewl_Widget *vbox, *ibox, *hbox, *image, *bhbox; - Ewl_Widget *standard, *advanced; + Ewl_Widget *ibox, *bhbox; em->ewin = NULL; @@ -45,29 +41,9 @@ ewl_object_fill_policy_set(EWL_OBJECT(em->single_vbox), EWL_FLAG_FILL_ALL); - hbox = add_box(em->single_vbox, EWL_ORIENTATION_HORIZONTAL, 2); - ewl_object_fill_policy_set(EWL_OBJECT(hbox), EWL_FLAG_FILL_ALL); - - standard = add_box(hbox, EWL_ORIENTATION_VERTICAL, 2); - ewl_object_maximum_w_set(EWL_OBJECT(standard), 30); - ewl_object_minimum_w_set(EWL_OBJECT(standard), 30); - ewl_object_fill_policy_set(EWL_OBJECT(standard), EWL_FLAG_FILL_VFILL); - - add_standard_edit_tools(standard); - - advanced = add_image(standard, - PACKAGE_DATA_DIR "/images/camera-photo.png", - 0, show_advanced, NULL); - ewl_image_size_set(EWL_IMAGE(advanced), 25, 25); - ewl_object_alignment_set(EWL_OBJECT(advanced), EWL_FLAG_ALIGN_LEFT); - ewl_object_fill_policy_set(EWL_OBJECT(advanced), EWL_FLAG_FILL_SHRINK); - - vbox = add_box(hbox, EWL_ORIENTATION_VERTICAL, 0); - ewl_object_fill_policy_set(EWL_OBJECT(vbox), EWL_FLAG_FILL_ALL); - ibox = ewl_cell_new(); - ewl_object_fill_policy_set(EWL_OBJECT(ibox), EWL_FLAG_FILL_ALL); - ewl_container_child_append(EWL_CONTAINER(vbox), ibox); + ewl_object_fill_policy_set(EWL_OBJECT(ibox), EWL_FLAG_FILL_SHRINK); + ewl_container_child_append(EWL_CONTAINER(em->single_vbox), ibox); ewl_widget_show(ibox); em->simage = add_image(ibox, NULL, 0, NULL, NULL); @@ -75,35 +51,12 @@ EWL_FLAG_ALIGN_CENTER); ewl_object_fill_policy_set(EWL_OBJECT(em->simage), EWL_FLAG_FILL_SHRINK); - if (ec->requested_image) - ewl_callback_append(em->simage, EWL_CALLBACK_SHOW, - set_requested_image_file, NULL); - bhbox = add_box(vbox, EWL_ORIENTATION_HORIZONTAL, 5); + bhbox = add_box(em->single_vbox, EWL_ORIENTATION_HORIZONTAL, 5); ewl_object_alignment_set(EWL_OBJECT(bhbox), EWL_FLAG_ALIGN_CENTER); ewl_object_fill_policy_set(EWL_OBJECT(bhbox), EWL_FLAG_FILL_SHRINK); - image = add_image(bhbox, - PACKAGE_DATA_DIR "/images/media-seek-backward.png", 0, - previous_image, NULL); - ewl_image_size_set(EWL_IMAGE(image), 32, 32); - ewl_attach_tooltip_text_set(image, _("Previous Image")); - - image = add_image(bhbox, - PACKAGE_DATA_DIR "/images/media-seek-forward.png", 0, - next_image, NULL); - ewl_image_size_set(EWL_IMAGE(image), 32, 32); - ewl_attach_tooltip_text_set(image, _("Next Image")); - - hbox = add_box(em->single_vbox, EWL_ORIENTATION_HORIZONTAL, 5); - ewl_object_alignment_set(EWL_OBJECT(hbox), EWL_FLAG_ALIGN_LEFT); - ewl_object_fill_policy_set(EWL_OBJECT(hbox), EWL_FLAG_FILL_SHRINK); - - image = add_image(hbox, PACKAGE_DATA_DIR "/images/normal_view.png", 0, - show_normal_view, NULL); - ewl_image_size_set(EWL_IMAGE(image), 25, 25); - ewl_attach_tooltip_text_set(image, _("Image Thumbnail View")); - ewl_object_fill_policy_set(EWL_OBJECT(image), EWL_FLAG_FILL_SHRINK); + add_standard_edit_tools(bhbox); return em->single_vbox; } @@ -124,37 +77,79 @@ static void add_standard_edit_tools(Ewl_Widget *c) { - Ewl_Widget *image; + Ewl_Widget *button; - image = add_image(c, PACKAGE_DATA_DIR "/images/in.png", 0, zoom_in, - NULL); - ewl_image_size_set(EWL_IMAGE(image), 25, 25); - ewl_object_alignment_set(EWL_OBJECT(image), EWL_FLAG_ALIGN_LEFT); - - image = add_image(c, PACKAGE_DATA_DIR "/images/out.png", 0, zoom_out, - NULL); - ewl_image_size_set(EWL_IMAGE(image), 25, 25); - ewl_object_alignment_set(EWL_OBJECT(image), EWL_FLAG_ALIGN_LEFT); - - image = add_image(c, PACKAGE_DATA_DIR "/images/undo.png", 0, - rotate_image_left, NULL); - ewl_image_size_set(EWL_IMAGE(image), 25, 25); - ewl_object_alignment_set(EWL_OBJECT(image), EWL_FLAG_ALIGN_LEFT); - - image = add_image(c, PACKAGE_DATA_DIR "/images/redo.png", 0, - rotate_image_right, NULL); - ewl_image_size_set(EWL_IMAGE(image), 25, 25); - ewl_object_alignment_set(EWL_OBJECT(image), EWL_FLAG_ALIGN_LEFT); - - image = add_image(c, PACKAGE_DATA_DIR "/images/go-next.png", 0, - flip_image_horizontal, NULL); - ewl_image_size_set(EWL_IMAGE(image), 25, 25); - ewl_object_alignment_set(EWL_OBJECT(image), EWL_FLAG_ALIGN_LEFT); - - image = add_image(c, PACKAGE_DATA_DIR "/images/go-down.png", 0, - flip_image_vertical, NULL); - ewl_image_size_set(EWL_IMAGE(image), 25, 25); - ewl_object_alignment_set(EWL_OBJECT(image), EWL_FLAG_ALIGN_LEFT); + button = add_button(c, NULL, + PACKAGE_DATA_DIR "/images/in.png", + zoom_in, NULL); + ewl_button_image_size_set(EWL_BUTTON(button), 22, 22); + ewl_attach_tooltip_text_set(button, _("Zoom In")); + ewl_object_alignment_set(EWL_OBJECT(button), EWL_FLAG_ALIGN_LEFT); + ewl_object_fill_policy_set(EWL_OBJECT(button), EWL_FLAG_FILL_NONE); + + button = add_button(c, NULL, + PACKAGE_DATA_DIR "/images/out.png", + zoom_out, NULL); + ewl_button_image_size_set(EWL_BUTTON(button), 22, 22); + ewl_attach_tooltip_text_set(button, _("Zoom Out")); + ewl_object_alignment_set(EWL_OBJECT(button), EWL_FLAG_ALIGN_LEFT); + ewl_object_fill_policy_set(EWL_OBJECT(button), EWL_FLAG_FILL_NONE); + + button = add_button(c, NULL, + PACKAGE_DATA_DIR "/images/undo.png", + rotate_image_left, NULL); + ewl_button_image_size_set(EWL_BUTTON(button), 22, 22); + ewl_attach_tooltip_text_set(button, _("Rotate Left")); + ewl_object_alignment_set(EWL_OBJECT(button), EWL_FLAG_ALIGN_LEFT); + ewl_object_fill_policy_set(EWL_OBJECT(button), EWL_FLAG_FILL_NONE); + + button = add_button(c, NULL, + PACKAGE_DATA_DIR "/images/redo.png", + rotate_image_right, NULL); + ewl_button_image_size_set(EWL_BUTTON(button), 22, 22); + ewl_attach_tooltip_text_set(button, _("Rotate Right")); + ewl_object_alignment_set(EWL_OBJECT(button), EWL_FLAG_ALIGN_LEFT); + ewl_object_fill_policy_set(EWL_OBJECT(button), EWL_FLAG_FILL_NONE); + + button = add_button(c, NULL, + PACKAGE_DATA_DIR "/images/go-next.png", + flip_image_horizontal, NULL); + ewl_button_image_size_set(EWL_BUTTON(button), 22, 22); + ewl_attach_tooltip_text_set(button, _("Flip Horizontally")); + ewl_object_alignment_set(EWL_OBJECT(button), EWL_FLAG_ALIGN_LEFT); + ewl_object_fill_policy_set(EWL_OBJECT(button), EWL_FLAG_FILL_NONE); + + button = add_button(c, NULL, + PACKAGE_DATA_DIR "/images/go-down.png", + flip_image_vertical, NULL); + ewl_button_image_size_set(EWL_BUTTON(button), 22, 22); + ewl_attach_tooltip_text_set(button, _("Flip Vertically")); + ewl_object_alignment_set(EWL_OBJECT(button), EWL_FLAG_ALIGN_LEFT); + ewl_object_fill_policy_set(EWL_OBJECT(button), EWL_FLAG_FILL_NONE); + + button = add_button(c, NULL, + PACKAGE_DATA_DIR "/images/camera-photo.png", + show_advanced, NULL); + ewl_button_image_size_set(EWL_BUTTON(button), 22, 22); + ewl_attach_tooltip_text_set(button, _("Advanced Tools")); + ewl_object_alignment_set(EWL_OBJECT(button), EWL_FLAG_ALIGN_LEFT); + ewl_object_fill_policy_set(EWL_OBJECT(button), EWL_FLAG_FILL_NONE); + + button = add_button(c, NULL, + PACKAGE_DATA_DIR "/images/media-seek-backward.png", + previous_image, NULL); + ewl_button_image_size_set(EWL_BUTTON(button), 22, 22); + ewl_attach_tooltip_text_set(button, _("Previous Image")); + ewl_object_alignment_set(EWL_OBJECT(button), EWL_FLAG_ALIGN_LEFT); + ewl_object_fill_policy_set(EWL_OBJECT(button), EWL_FLAG_FILL_NONE); + + button = add_button(c, NULL, + PACKAGE_DATA_DIR "/images/media-seek-forward.png", + next_image, NULL); + ewl_button_image_size_set(EWL_BUTTON(button), 22, 22); + ewl_attach_tooltip_text_set(button, _("Next Image")); + ewl_object_alignment_set(EWL_OBJECT(button), EWL_FLAG_ALIGN_LEFT); + ewl_object_fill_policy_set(EWL_OBJECT(button), EWL_FLAG_FILL_NONE); return; } @@ -169,49 +164,24 @@ static void show_advanced(void) { - const char *file; - Epsilon *ep; - Ewl_Widget *grid, *image; - - ep = epsilon_new(ecore_dlist_current(em->images)); - if (!epsilon_exists(ep)) - epsilon_generate(ep); - file = epsilon_thumb_file_get(ep); - epsilon_free(ep); - - em->ewin = add_window("Ephoto Effects!", 375, 100, destroy, NULL); - - grid = ewl_grid_new(); - ewl_grid_dimensions_set(EWL_GRID(grid), 1, 4); - ewl_object_alignment_set(EWL_OBJECT(grid), EWL_FLAG_ALIGN_CENTER); - ewl_object_fill_policy_set(EWL_OBJECT(grid), EWL_FLAG_FILL_ALL); - ewl_container_child_append(EWL_CONTAINER(em->ewin), grid); - ewl_widget_show(grid); - - image = add_icon(grid, "Grayscale", file, 0, image_grayscale, - em->simage); - ewl_icon_constrain_set(EWL_ICON(image), 81); - ewl_callback_append(EWL_ICON(image)->image, EWL_CALLBACK_CONFIGURE, - image_grayscale, EWL_ICON(image)->image); - ewl_grid_child_position_set(EWL_GRID(grid), image, 0, 0, 0, 0); - - image = add_icon(grid, "Sepia", file, 0, image_sepia, em->simage); - ewl_icon_constrain_set(EWL_ICON(image), 81); - ewl_callback_append(EWL_ICON(image)->image, EWL_CALLBACK_CONFIGURE, - image_sepia, EWL_ICON(image)->image); - ewl_grid_child_position_set(EWL_GRID(grid), image, 1, 1, 0, 0); - - image = add_icon(grid, "Blur", file, 0, image_blur, em->simage); - ewl_icon_constrain_set(EWL_ICON(image), 81); - ewl_callback_append(EWL_ICON(image)->image, EWL_CALLBACK_CONFIGURE, - image_blur, EWL_ICON(image)->image); - ewl_grid_child_position_set(EWL_GRID(grid), image, 2, 2, 0, 0); - - image = add_icon(grid, "Sharpen", file, 0, image_sharpen, em->simage); - ewl_icon_constrain_set(EWL_ICON(image), 81); - ewl_callback_append(EWL_ICON(image)->image, EWL_CALLBACK_CONFIGURE, - image_sharpen, EWL_ICON(image)->image); - ewl_grid_child_position_set(EWL_GRID(grid), image, 3, 3, 0, 0); + Ewl_Widget *fbox, *button; + + em->ewin = add_window("Ephoto Advanced Image Tools!", + 240, 185, destroy, NULL); + + fbox = ewl_hfreebox_new(); + ewl_object_alignment_set(EWL_OBJECT(fbox), EWL_FLAG_ALIGN_CENTER); + ewl_object_fill_policy_set(EWL_OBJECT(fbox), EWL_FLAG_FILL_ALL); + ewl_container_child_append(EWL_CONTAINER(em->ewin), fbox); + ewl_widget_show(fbox); + + button = add_button(fbox, "Grayscale", NULL, image_grayscale, em->simage); + + button = add_button(fbox, "Sepia", NULL, image_sepia, em->simage); + + button = add_button(fbox, "Blur", NULL, image_blur, em->simage); + + button = add_button(fbox, "Sharpen", NULL, image_sharpen, em->simage); return; } ------------------------------------------------------------------------- Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://sourceforge.net/services/buy/index.php _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs