From 6502da7a5ae0400b15764cf2512e5460c218b8d5 Mon Sep 17 00:00:00 2001 From: titan Date: Tue, 20 Feb 2007 03:45:58 +0000 Subject: [PATCH] Miscellaneous cleanups SVN revision: 28399 --- data/themes/ephoto/bits/select.edc | 4 - data/themes/ephoto/main.edc | 2 + src/bin/ephoto.h | 51 ++++-- src/bin/ephoto_edit_view.c | 117 +++++++++----- src/bin/ephoto_exif.c | 12 +- src/bin/ephoto_gui.c | 18 ++- src/bin/ephoto_list_view.c | 72 +++++---- src/bin/ephoto_main.c | 250 ++++++++++++----------------- src/bin/ephoto_normal_view.c | 59 ++++--- 9 files changed, 306 insertions(+), 279 deletions(-) diff --git a/data/themes/ephoto/bits/select.edc b/data/themes/ephoto/bits/select.edc index 8917545..5b57f9b 100644 --- a/data/themes/ephoto/bits/select.edc +++ b/data/themes/ephoto/bits/select.edc @@ -12,13 +12,11 @@ group { state: "default" 0.0; color: 0 0 0 0; - visible: 0; } description { state: "selected" 0.0; color: 71 135 195 255; - visible: 1; } } } @@ -57,13 +55,11 @@ group { state: "default" 0.0; color: 0 0 0 0; - visible: 0; } description { state: "highlighted" 0.0; color: 71 135 195 255; - visible: 1; } } } diff --git a/data/themes/ephoto/main.edc b/data/themes/ephoto/main.edc index ef3b844..98a54de 100644 --- a/data/themes/ephoto/main.edc +++ b/data/themes/ephoto/main.edc @@ -50,8 +50,10 @@ data item: "/hseparator/group" "/ephoto/hseparator"; item: "/icon/group" "/ephoto/select"; item: "/image_thumbnail/group" "/ephoto/select"; + item: "/image/group" "/ephoto/select"; item: "/label/group" "/ephoto/label"; item: "/label/textpart" "/ephoto/label/text"; + item: "/notebook/pages/group" "/ephoto/window"; item: "/row/group" "/ephoto/row"; item: "/scrollpane/group" "/ephoto/scrollpane"; item: "/shadow/group" "/ephoto/shadow"; diff --git a/src/bin/ephoto.h b/src/bin/ephoto.h index bed1f51..e24efce 100644 --- a/src/bin/ephoto.h +++ b/src/bin/ephoto.h @@ -53,14 +53,20 @@ unsigned int *rotate_right(Ewl_Widget *image); void update_image(Ewl_Widget *image, int w, int h, unsigned int *data); /* Ephoto Edit View */ +Ewl_Widget *add_edit_view(Ewl_Widget *c); void add_edit_tools(Ewl_Widget *c); /* Ephoto List View */ +Ewl_Widget *add_list_view(Ewl_Widget *c); Ewl_Widget *add_ltree(Ewl_Widget *c); /* Ephoto Normal View */ +Ewl_Widget *add_normal_view(Ewl_Widget *c); void set_info(Ewl_Widget *w, void *event, void *data); +/* Ephoto Thumbnail */ +void generate_thumbnail(Ewl_Widget *image, char *path); + /* Ephoto Utilities*/ char *image_pixels_string_get(const char *file); void image_pixels_int_get(const char *file, int *width, int *height); @@ -72,23 +78,34 @@ void show_edit_view(Ewl_Widget *w, void *event, void *data); void show_list_view(Ewl_Widget *w, void *event, void *data); /* Ephoto Global Variables */ -extern Ewl_Widget *atree; -extern Ewl_Widget *tbar; -extern Ewl_Widget *vcombo; -extern Ewl_Widget *view_box; -extern Ewl_Widget *fbox_vbox; -extern Ewl_Widget *edit_vbox; -extern Ewl_Widget *list_vbox; -extern Ewl_Widget *fbox; -extern Ewl_Widget *eimage; -extern Ewl_Widget *ltree; -extern Ewl_Widget *ilabel; -extern Ewl_Widget *currenta; -extern Ewl_Widget *currentf; -extern Ewl_Widget *currenti; -extern Ewl_Widget *toolbar; -extern Ewl_Widget *edit_tools; -extern Ecore_List *images; +typedef struct _Ephoto_Main Ephoto_Main; + +struct _Ephoto_Main +{ + char **views; + Ecore_List *albums; + Ecore_List *images; + Ewl_Widget *atree; + Ewl_Widget *currenta; + Ewl_Widget *currentf; + Ewl_Widget *currenti; + Ewl_Widget *edit_tools; + Ewl_Widget *edit_vbox; + Ewl_Widget *eimage; + Ewl_Widget *fbox_vbox; + Ewl_Widget *fbox; + Ewl_Widget *ilabel; + Ewl_Widget *list_vbox; + Ewl_Widget *ltree; + Ewl_Widget *tbar; + Ewl_Widget *toolbar; + Ewl_Widget *vcombo; + Ewl_Widget *view_box; + Ewl_Widget *win; + sqlite3 *db; +}; + +extern Ephoto_Main *em; /* NLS */ #ifdef ENABLE_NLS diff --git a/src/bin/ephoto_edit_view.c b/src/bin/ephoto_edit_view.c index 9eb3435..f7f787b 100644 --- a/src/bin/ephoto_edit_view.c +++ b/src/bin/ephoto_edit_view.c @@ -8,16 +8,32 @@ static void flip_image_vertical(Ewl_Widget *w, void *event, void *data); static void rotate_image_left(Ewl_Widget *w, void *event, void *data); static void rotate_image_right(Ewl_Widget *w, void *event, void *data); +/*Add the edit view*/ +Ewl_Widget *add_edit_view(Ewl_Widget *c) +{ + em->edit_vbox = ewl_vbox_new(); + ewl_object_fill_policy_set(EWL_OBJECT(em->edit_vbox), EWL_FLAG_FILL_ALL); + ewl_container_child_append(EWL_CONTAINER(c), em->edit_vbox); + ewl_widget_show(em->edit_vbox); + ewl_notebook_page_tab_text_set(EWL_NOTEBOOK(c), em->edit_vbox, "Edit"); + + em->eimage = add_image(em->edit_vbox, NULL, 0, NULL, NULL); + ewl_object_alignment_set(EWL_OBJECT(em->eimage), EWL_FLAG_ALIGN_CENTER); + ewl_object_fill_policy_set(EWL_OBJECT(em->eimage), EWL_FLAG_FILL_SHRINK); + + return em->edit_vbox; +} + /*Show the edit view*/ void show_edit_view(Ewl_Widget *w, void *event, void *data) { - ewl_notebook_visible_page_set(EWL_NOTEBOOK(view_box), edit_vbox); - ecore_dlist_goto_first(images); - ewl_widget_show(edit_tools); - ewl_widget_hide(atree); - ewl_widget_hide(tbar); - ewl_widget_hide(ilabel); - ewl_widget_reparent(eimage); + ewl_notebook_visible_page_set(EWL_NOTEBOOK(em->view_box), em->edit_vbox); + ecore_dlist_goto_first(em->images); + ewl_widget_show(em->edit_tools); + ewl_widget_hide(em->atree); + ewl_widget_hide(em->tbar); + ewl_widget_hide(em->ilabel); + ewl_widget_reparent(em->eimage); } /*Add edit tools to container c*/ @@ -57,15 +73,15 @@ static void previous_image(Ewl_Widget *w, void *event, void *data) { char *image; - ecore_dlist_previous(images); - image = ecore_dlist_current(images); + ecore_dlist_previous(em->images); + image = ecore_dlist_current(em->images); if(!image) { - ecore_dlist_goto_last(images); - image = ecore_dlist_current(images); + ecore_dlist_goto_last(em->images); + image = ecore_dlist_current(em->images); } - ewl_image_file_path_set(EWL_IMAGE(eimage), image); - ewl_widget_configure(eimage->parent); + ewl_image_file_path_set(EWL_IMAGE(em->eimage), image); + ewl_widget_configure(em->eimage->parent); return; } @@ -76,15 +92,15 @@ static void next_image(Ewl_Widget *w, void *event, void *data) { char *image; - ecore_dlist_next(images); - image = ecore_dlist_current(images); + ecore_dlist_next(em->images); + image = ecore_dlist_current(em->images); if(!image) { - ecore_dlist_goto_first(images); - image = ecore_dlist_current(images); + ecore_dlist_goto_first(em->images); + image = ecore_dlist_current(em->images); } - ewl_image_file_path_set(EWL_IMAGE(eimage), image); - ewl_widget_configure(eimage->parent); + ewl_image_file_path_set(EWL_IMAGE(em->eimage), image); + ewl_widget_configure(em->eimage->parent); return; } @@ -96,12 +112,18 @@ static void flip_image_horizontal(Ewl_Widget *w, void *event, void *data) { unsigned int *image_data; int nw, nh; + Ewl_Image *image; - evas_object_image_size_get(EWL_IMAGE(eimage)->image, &nw, &nh); - image_data = flip_horizontal(eimage); - update_image(eimage, nw, nh, image_data); - ewl_widget_configure(eimage); - ewl_widget_configure(eimage->parent); + evas_object_image_size_get(EWL_IMAGE(em->eimage)->image, &nw, &nh); + image_data = flip_horizontal(em->eimage); + update_image(em->eimage, nw, nh, image_data); + ewl_image_size_set(EWL_IMAGE(em->eimage), nh, nw); + image = (Ewl_Image *)em->eimage; + image->ow = nw; + image->oh = nh; + ewl_object_preferred_inner_size_set(EWL_OBJECT(em->eimage), nw, nh); + ewl_widget_configure(em->eimage); + ewl_widget_configure(em->eimage->parent); return; } @@ -111,12 +133,18 @@ static void flip_image_vertical(Ewl_Widget *w, void *event, void *data) { unsigned int *image_data; int nw, nh; + Ewl_Image *image; - evas_object_image_size_get(EWL_IMAGE(eimage)->image, &nw, &nh); - image_data = flip_vertical(eimage); - update_image(eimage, nw, nh, image_data); - ewl_widget_configure(eimage); - ewl_widget_configure(eimage->parent); + evas_object_image_size_get(EWL_IMAGE(em->eimage)->image, &nw, &nh); + image_data = flip_vertical(em->eimage); + update_image(em->eimage, nw, nh, image_data); + ewl_image_size_set(EWL_IMAGE(em->eimage), nh, nw); + image = (Ewl_Image *)em->eimage; + image->ow = nw; + image->oh = nh; + ewl_object_preferred_inner_size_set(EWL_OBJECT(em->eimage), nh, nw); + ewl_widget_configure(em->eimage); + ewl_widget_configure(em->eimage->parent); return; } @@ -126,12 +154,18 @@ static void rotate_image_left(Ewl_Widget *w, void *event, void *data) { unsigned int *image_data; int nw, nh; + Ewl_Image *image; - evas_object_image_size_get(EWL_IMAGE(eimage)->image, &nh, &nw); - image_data = rotate_left(eimage); - update_image(eimage, nw, nh, image_data); - ewl_widget_configure(eimage); - ewl_widget_configure(eimage->parent); + evas_object_image_size_get(EWL_IMAGE(em->eimage)->image, &nh, &nw); + image_data = rotate_left(em->eimage); + update_image(em->eimage, nw, nh, image_data); + ewl_image_size_set(EWL_IMAGE(em->eimage), nh, nw); + image = (Ewl_Image *)em->eimage; + image->ow = nw; + image->oh = nh; + ewl_object_preferred_inner_size_set(EWL_OBJECT(em->eimage), nw, nh); + ewl_widget_configure(em->eimage); + ewl_widget_configure(em->eimage->parent); return; } @@ -141,12 +175,17 @@ static void rotate_image_right(Ewl_Widget *w, void *event, void *data) { unsigned int *image_data; int nw, nh; + Ewl_Image *image; - evas_object_image_size_get(EWL_IMAGE(eimage)->image, &nh, &nw); - image_data = rotate_right(eimage); - update_image(eimage, nw, nh, image_data); - ewl_widget_configure(eimage); - ewl_widget_configure(eimage->parent); + evas_object_image_size_get(EWL_IMAGE(em->eimage)->image, &nh, &nw); + image_data = rotate_right(em->eimage); + update_image(em->eimage, nw, nh, image_data); + image = (Ewl_Image *)em->eimage; + image->ow = nw; + image->oh = nh; + ewl_object_preferred_inner_size_set(EWL_OBJECT(em->eimage), nw, nh); + ewl_widget_configure(em->eimage); + ewl_widget_configure(em->eimage->parent); return; } diff --git a/src/bin/ephoto_exif.c b/src/bin/ephoto_exif.c index 2025794..38cc64a 100644 --- a/src/bin/ephoto_exif.c +++ b/src/bin/ephoto_exif.c @@ -58,17 +58,17 @@ static char *get_image(void) { const char *img; - if (VISIBLE(fbox_vbox)) + if (VISIBLE(em->fbox_vbox)) { - img = ewl_widget_name_get(currentf); + img = ewl_widget_name_get(em->currentf); } - else if (VISIBLE(list_vbox)) + else if (VISIBLE(em->list_vbox)) { - img = ewl_widget_name_get(currenti); + img = ewl_widget_name_get(em->currenti); } - else if (VISIBLE(edit_vbox)) + else if (VISIBLE(em->edit_vbox)) { - img = ewl_image_file_path_get(EWL_IMAGE(eimage)); + img = ewl_image_file_path_get(EWL_IMAGE(em->eimage)); } return strdup(img); diff --git a/src/bin/ephoto_gui.c b/src/bin/ephoto_gui.c index 8869ca9..0d9db81 100644 --- a/src/bin/ephoto_gui.c +++ b/src/bin/ephoto_gui.c @@ -30,7 +30,8 @@ Ewl_Widget *add_button(Ewl_Widget *c, char *txt, char *img, void *cb, void *data Ewl_Widget *add_image(Ewl_Widget *c, char *img, int thumbnail, void *cb, void *data) { Ewl_Widget *image; - int w, h; + char *thumb; + int w, h, pid; if(!thumbnail) { @@ -39,28 +40,29 @@ Ewl_Widget *add_image(Ewl_Widget *c, char *img, int thumbnail, void *cb, void *d { ewl_image_file_path_set(EWL_IMAGE(image), img); } + } else { image_pixels_int_get(img, &w, &h); - - image = ewl_image_thumbnail_new(); - if (w > 75 || h > 75) + if(w > 75 || h > 75) { - if(image) + image = ewl_image_thumbnail_new(); + ewl_image_file_path_set(EWL_IMAGE(image), PACKAGE_DATA_DIR "/images/image.png"); + if (img) { - ewl_image_file_path_set(EWL_IMAGE(image), PACKAGE_DATA_DIR "/images/image.png"); ewl_image_thumbnail_request(EWL_IMAGE_THUMBNAIL(image), img); } } else { - if(image) + image = ewl_image_new(); + if (img) { ewl_image_file_path_set(EWL_IMAGE(image), img); } } - ewl_image_constrain_set(EWL_IMAGE(image), 60); + ewl_image_constrain_set(EWL_IMAGE(image), 48); } ewl_image_proportional_set(EWL_IMAGE(image), TRUE); ewl_object_alignment_set(EWL_OBJECT(image), EWL_FLAG_ALIGN_LEFT); diff --git a/src/bin/ephoto_list_view.c b/src/bin/ephoto_list_view.c index 47e4713..58c3f7a 100644 --- a/src/bin/ephoto_list_view.c +++ b/src/bin/ephoto_list_view.c @@ -6,15 +6,29 @@ static Ewl_Widget *list_header_fetch(void *data, int column); static void *list_data_fetch(void *data, unsigned int row, unsigned int column); static int list_data_count(void *data); +/*Add the list view*/ +Ewl_Widget *add_list_view(Ewl_Widget *c) +{ + em->list_vbox = ewl_vbox_new(); + ewl_object_fill_policy_set(EWL_OBJECT(em->list_vbox), EWL_FLAG_FILL_ALL); + ewl_container_child_append(EWL_CONTAINER(c), em->list_vbox); + ewl_widget_show(em->list_vbox); + ewl_notebook_page_tab_text_set(EWL_NOTEBOOK(c), em->list_vbox, "List"); + + em->ltree = add_ltree(em->list_vbox); + + return em->list_vbox; +} + /*Show the list view*/ void show_list_view(Ewl_Widget *w, void *event, void *data) { - ewl_notebook_visible_page_set(EWL_NOTEBOOK(view_box), list_vbox); - ewl_mvc_dirty_set(EWL_MVC(ltree), 1); - ewl_widget_hide(edit_tools); - ewl_widget_hide(ilabel); - ewl_widget_show(atree); - ewl_widget_show(tbar); + ewl_notebook_visible_page_set(EWL_NOTEBOOK(em->view_box), em->list_vbox); + ewl_mvc_dirty_set(EWL_MVC(em->ltree), 1); + ewl_widget_hide(em->edit_tools); + ewl_widget_hide(em->ilabel); + ewl_widget_show(em->atree); + ewl_widget_show(em->tbar); } /*Create and Add a Tree to the Container c*/ @@ -30,6 +44,7 @@ Ewl_Widget *add_ltree(Ewl_Widget *c) tree = ewl_tree2_new(); ewl_tree2_headers_visible_set(EWL_TREE2(tree), 0); + ewl_tree2_fixed_rows_set(EWL_TREE2(tree), 1); ewl_mvc_model_set(EWL_MVC(tree), model); ewl_object_fill_policy_set(EWL_OBJECT(tree), EWL_FLAG_FILL_ALL); ewl_container_child_append(EWL_CONTAINER(c), tree); @@ -48,17 +63,14 @@ Ewl_Widget *add_ltree(Ewl_Widget *c) /* The view of the images */ static Ewl_Widget *list_view_new(void) { - Ewl_Widget *icon; + Ewl_Widget *hbox; - icon = ewl_icon_new(); - ewl_icon_type_set(EWL_ICON(icon), EWL_ICON_TYPE_LONG); - ewl_box_orientation_set(EWL_BOX(icon), EWL_ORIENTATION_HORIZONTAL); - ewl_object_alignment_set(EWL_OBJECT(icon), EWL_FLAG_ALIGN_LEFT); - ewl_object_fill_policy_set(EWL_OBJECT(icon), EWL_FLAG_FILL_ALL); - ewl_callback_append(icon, EWL_CALLBACK_CLICKED, set_info, NULL); - ewl_widget_show(icon); + hbox = ewl_hbox_new(); + ewl_box_spacing_set(EWL_BOX(hbox), 10); + ewl_object_fill_policy_set(EWL_OBJECT(hbox), EWL_FLAG_FILL_HFILL); + ewl_widget_show(hbox); - return icon; + return hbox; } /*The row that is added to the tree*/ @@ -68,36 +80,28 @@ static void list_view_assign(Ewl_Widget *w, void *data) char info[PATH_MAX]; int size; int width, height; - Ewl_Widget *text; + Ewl_Widget *img, *text; image = data; image_pixels_int_get(image, &width, &height); - if(width > 75 || height > 75) - { - ewl_icon_thumbnailing_set(EWL_ICON(w), 1); - } - else - { - ewl_icon_thumbnailing_set(EWL_ICON(w), 0); - } - ewl_icon_image_set(EWL_ICON(w), image, NULL); - ewl_icon_constrain_set(EWL_ICON(w), 67); + + img = add_image(w, image, 1, NULL, NULL); + ewl_image_constrain_set(EWL_IMAGE(img), 48); ewl_widget_name_set(w, image); size = ecore_file_size(image); - - snprintf(info, PATH_MAX, "Name: %s\n" - "Pixels: %s\n" - "Size: %s\n", + + snprintf(info, PATH_MAX, "Name: %s\nPixels: %s\nSize: %s\n", basename(image), image_pixels_string_get(image), file_size_get(size)); text = ewl_text_new(); ewl_text_text_set(EWL_TEXT(text), info); - ewl_object_alignment_set(EWL_OBJECT(text), EWL_FLAG_ALIGN_CENTER); + ewl_container_child_append(EWL_CONTAINER(w), text); + ewl_object_fill_policy_set(EWL_OBJECT(text), EWL_FLAG_FILL_SHRINK); + ewl_object_alignment_set(EWL_OBJECT(text), EWL_FLAG_ALIGN_LEFT); ewl_widget_show(text); - ewl_icon_extended_data_set(EWL_ICON(w), text); return; } @@ -120,7 +124,7 @@ static void *list_data_fetch(void *data, unsigned int row, unsigned int column) char *image; void *val = NULL; - image = ecore_list_goto_index(images, row); + image = ecore_list_goto_index(em->images, row); if (image) { val = image; @@ -134,7 +138,7 @@ static int list_data_count(void *data) { int val; - val = ecore_list_nodes(images); + val = ecore_list_nodes(em->images); return val; } diff --git a/src/bin/ephoto_main.c b/src/bin/ephoto_main.c index 5e4dae3..84bf16a 100644 --- a/src/bin/ephoto_main.c +++ b/src/bin/ephoto_main.c @@ -1,14 +1,5 @@ #include "ephoto.h" -/*Ephoto Databasing Global Variables*/ -static sqlite3 *db; - -/*Ephoto Ecore Global Variables*/ -static Ecore_List *albums; - -/*Ephoto Layout Global Variable*/ -static char **views; - /*Ewl Callbacks*/ static void combo_changed(Ewl_Widget *w, void *event, void *data); static void destroy(Ewl_Widget *w, void *event, void *data); @@ -30,37 +21,33 @@ static void *views_data_fetch(void *data, unsigned int row, unsigned int column) static int views_data_count(void *data); /*Ephoto Global Variables*/ -Ewl_Widget *atree, *tbar, *vcombo, *view_box, *fbox_vbox, *edit_vbox, *list_vbox, *fbox; -Ewl_Widget *eimage, *ltree, *ilabel, *currenta, *currentf, *currenti, *toolbar, *edit_tools; -Ecore_List *images; - +Ephoto_Main *em; /*Destroy the Main Window*/ static void destroy(Ewl_Widget *w, void *event, void *data) { - Ewl_Widget *window; - - window = data; - ephoto_db_close(db); - ewl_widget_destroy(window); - ewl_main_quit(); + ephoto_db_close(em->db); + ewl_widget_destroy(em->win); + ecore_list_destroy(em->albums); + ecore_list_destroy(em->images); + free(em->views); + free(em); + ewl_main_quit(); return; } static void window_fullscreen(Ewl_Widget *w, void *event, void *data) { int fullscreen; - Ewl_Widget *window; - - window = data; - fullscreen = ewl_window_fullscreen_get(EWL_WINDOW(window)); + + fullscreen = ewl_window_fullscreen_get(EWL_WINDOW(em->win)); if(!fullscreen) { - ewl_window_fullscreen_set(EWL_WINDOW(window), 1); + ewl_window_fullscreen_set(EWL_WINDOW(em->win), 1); } else { - ewl_window_fullscreen_set(EWL_WINDOW(window), 0); + ewl_window_fullscreen_set(EWL_WINDOW(em->win), 0); } return; } @@ -68,44 +55,46 @@ static void window_fullscreen(Ewl_Widget *w, void *event, void *data) /*Create the Main Ephoto Window*/ void create_main_gui(void) { - Ewl_Widget *win, *vbox, *spacer, *text, *entry, *hbox; + Ewl_Widget *vbox, *spacer, *text, *entry, *hbox; Ewl_Widget *rvbox, *sp, *hsep, *vsep, *image; - Ewl_Widget *shbox, *seeker; - win = ewl_window_new(); - ewl_window_title_set(EWL_WINDOW(win), "Ephoto!"); - ewl_window_name_set(EWL_WINDOW(win), "Ephoto!"); - ewl_object_size_request(EWL_OBJECT(win), 777, 542); - ewl_callback_append(win, EWL_CALLBACK_DELETE_WINDOW, destroy, win); - ewl_widget_show(win); + em = NULL; + em = calloc(1, sizeof(Ephoto_Main)); + + em->win = ewl_window_new(); + ewl_window_title_set(EWL_WINDOW(em->win), "Ephoto!"); + ewl_window_name_set(EWL_WINDOW(em->win), "Ephoto!"); + ewl_object_size_request(EWL_OBJECT(em->win), 777, 542); + ewl_callback_append(em->win, EWL_CALLBACK_DELETE_WINDOW, destroy, NULL); + ewl_widget_show(em->win); vbox = ewl_vbox_new(); ewl_box_spacing_set(EWL_BOX(vbox), 5); ewl_object_fill_policy_set(EWL_OBJECT(vbox), EWL_FLAG_FILL_ALL); - ewl_container_child_append(EWL_CONTAINER(win), vbox); + ewl_container_child_append(EWL_CONTAINER(em->win), vbox); ewl_widget_show(vbox); - tbar = ewl_hbox_new(); - ewl_object_fill_policy_set(EWL_OBJECT(tbar), EWL_FLAG_FILL_SHRINK); - ewl_object_alignment_set(EWL_OBJECT(tbar), EWL_FLAG_ALIGN_RIGHT); - ewl_container_child_append(EWL_CONTAINER(vbox), tbar); - ewl_widget_show(tbar); + em->tbar = ewl_hbox_new(); + ewl_object_fill_policy_set(EWL_OBJECT(em->tbar), EWL_FLAG_FILL_SHRINK); + ewl_object_alignment_set(EWL_OBJECT(em->tbar), EWL_FLAG_ALIGN_RIGHT); + ewl_container_child_append(EWL_CONTAINER(vbox), em->tbar); + ewl_widget_show(em->tbar); - vcombo = add_vcombo(tbar); + em->vcombo = add_vcombo(em->tbar); spacer = ewl_spacer_new(); ewl_object_minimum_w_set(EWL_OBJECT(spacer), 100); ewl_object_maximum_w_set(EWL_OBJECT(spacer), 100); - ewl_container_child_append(EWL_CONTAINER(tbar), spacer); + ewl_container_child_append(EWL_CONTAINER(em->tbar), spacer); ewl_widget_show(spacer); entry = ewl_entry_new(); ewl_object_minimum_size_set(EWL_OBJECT(entry), 157, 22); ewl_object_maximum_size_set(EWL_OBJECT(entry), 157, 22); - ewl_container_child_append(EWL_CONTAINER(tbar), entry); + ewl_container_child_append(EWL_CONTAINER(em->tbar), entry); ewl_widget_show(entry); - add_button(tbar, "Find", NULL, NULL, NULL); + add_button(em->tbar, "Find", NULL, NULL, NULL); hbox = ewl_hbox_new(); ewl_box_spacing_set(EWL_BOX(hbox), 2); @@ -113,8 +102,8 @@ void create_main_gui(void) ewl_container_child_append(EWL_CONTAINER(vbox), hbox); ewl_widget_show(hbox); - atree = add_atree(hbox); - ewl_object_maximum_w_set(EWL_OBJECT(atree), 172); + em->atree = add_atree(hbox); + ewl_object_maximum_w_set(EWL_OBJECT(em->atree), 172); rvbox = ewl_vbox_new(); ewl_box_spacing_set(EWL_BOX(rvbox), 1); @@ -122,111 +111,69 @@ void create_main_gui(void) ewl_container_child_append(EWL_CONTAINER(hbox), rvbox); ewl_widget_show(rvbox); - view_box = ewl_notebook_new(); - ewl_notebook_tabbar_visible_set(EWL_NOTEBOOK(view_box), 0); - ewl_object_fill_policy_set(EWL_OBJECT(view_box), EWL_FLAG_FILL_ALL); - ewl_container_child_append(EWL_CONTAINER(rvbox), view_box); - ewl_widget_show(view_box); + em->view_box = ewl_notebook_new(); + ewl_notebook_tabbar_visible_set(EWL_NOTEBOOK(em->view_box), 0); + ewl_object_fill_policy_set(EWL_OBJECT(em->view_box), EWL_FLAG_FILL_ALL); + ewl_container_child_append(EWL_CONTAINER(rvbox), em->view_box); + ewl_widget_show(em->view_box); - fbox_vbox = ewl_vbox_new(); - ewl_object_fill_policy_set(EWL_OBJECT(fbox_vbox), EWL_FLAG_FILL_ALL); - ewl_container_child_append(EWL_CONTAINER(view_box), fbox_vbox); - ewl_widget_show(fbox_vbox); - ewl_notebook_page_tab_text_set(EWL_NOTEBOOK(view_box), fbox_vbox, "Normal"); + add_normal_view(em->view_box); - sp = ewl_scrollpane_new(); - ewl_object_fill_policy_set(EWL_OBJECT(sp), EWL_FLAG_FILL_ALL); - ewl_container_child_append(EWL_CONTAINER(fbox_vbox), sp); - ewl_widget_show(sp); + add_edit_view(em->view_box); - fbox = ewl_hfreebox_new(); - ewl_object_fill_policy_set(EWL_OBJECT(fbox), EWL_FLAG_FILL_ALL); - ewl_container_child_append(EWL_CONTAINER(sp), fbox); - ewl_widget_show(fbox); - - edit_vbox = ewl_vbox_new(); - ewl_object_fill_policy_set(EWL_OBJECT(edit_vbox), EWL_FLAG_FILL_ALL); - ewl_container_child_append(EWL_CONTAINER(view_box), edit_vbox); - ewl_widget_show(edit_vbox); - ewl_notebook_page_tab_text_set(EWL_NOTEBOOK(view_box), edit_vbox, "Edit"); - - eimage = add_image(edit_vbox, NULL, 0, NULL, NULL); - ewl_object_alignment_set(EWL_OBJECT(eimage), EWL_FLAG_ALIGN_CENTER); - ewl_object_fill_policy_set(EWL_OBJECT(eimage), EWL_FLAG_FILL_SHRINK); - - list_vbox = ewl_vbox_new(); - ewl_object_fill_policy_set(EWL_OBJECT(list_vbox), EWL_FLAG_FILL_ALL); - ewl_container_child_append(EWL_CONTAINER(view_box), list_vbox); - ewl_widget_show(list_vbox); - ewl_notebook_page_tab_text_set(EWL_NOTEBOOK(view_box), list_vbox, "List"); - - ltree = add_ltree(list_vbox); - - ilabel = add_label(rvbox, "Image Information", 1); - - /*shbox = ewl_hbox_new(); - ewl_object_alignment_set(EWL_OBJECT(shbox), EWL_FLAG_ALIGN_RIGHT); - ewl_object_fill_policy_set(EWL_OBJECT(shbox), EWL_FLAG_FILL_SHRINK); - ewl_container_child_append(EWL_CONTAINER(vbox), shbox); - ewl_widget_show(shbox); - - seeker = ewl_hseeker_new(); - ewl_object_maximum_w_set(EWL_OBJECT(seeker), 150); - ewl_object_alignment_set(EWL_OBJECT(seeker), EWL_FLAG_ALIGN_RIGHT); - ewl_container_child_append(EWL_CONTAINER(shbox), seeker); - ewl_widget_show(seeker);*/ + add_list_view(em->view_box); hsep = ewl_hseparator_new(); ewl_container_child_append(EWL_CONTAINER(vbox), hsep); ewl_widget_show(hsep); - toolbar = ewl_toolbar_new(); - ewl_box_spacing_set(EWL_BOX(toolbar), 5); - ewl_object_minimum_h_set(EWL_OBJECT(toolbar), 30); - ewl_object_alignment_set(EWL_OBJECT(toolbar), EWL_FLAG_ALIGN_CENTER); - ewl_object_fill_policy_set(EWL_OBJECT(toolbar), EWL_FLAG_FILL_SHRINK); - ewl_container_child_append(EWL_CONTAINER(vbox), toolbar); - ewl_widget_show(toolbar); + em->toolbar = ewl_toolbar_new(); + ewl_box_spacing_set(EWL_BOX(em->toolbar), 5); + ewl_object_minimum_h_set(EWL_OBJECT(em->toolbar), 30); + ewl_object_alignment_set(EWL_OBJECT(em->toolbar), EWL_FLAG_ALIGN_CENTER); + ewl_object_fill_policy_set(EWL_OBJECT(em->toolbar), EWL_FLAG_FILL_SHRINK); + ewl_container_child_append(EWL_CONTAINER(vbox), em->toolbar); + ewl_widget_show(em->toolbar); - image = add_image(toolbar, PACKAGE_DATA_DIR "/images/normal_view.png", 0, show_normal_view, NULL); + image = add_image(em->toolbar, PACKAGE_DATA_DIR "/images/normal_view.png", 0, show_normal_view, NULL); ewl_image_constrain_set(EWL_IMAGE(image), 30); - image = add_image(toolbar, PACKAGE_DATA_DIR "/images/edit_view.png", 0, show_edit_view, NULL); + image = add_image(em->toolbar, PACKAGE_DATA_DIR "/images/edit_view.png", 0, show_edit_view, NULL); ewl_image_constrain_set(EWL_IMAGE(image), 30); - image = add_image(toolbar, PACKAGE_DATA_DIR "/images/list_view.png", 0, show_list_view, NULL); + image = add_image(em->toolbar, PACKAGE_DATA_DIR "/images/list_view.png", 0, show_list_view, NULL); ewl_image_constrain_set(EWL_IMAGE(image), 30); vsep = ewl_vseparator_new(); - ewl_container_child_append(EWL_CONTAINER(toolbar), vsep); + ewl_container_child_append(EWL_CONTAINER(em->toolbar), vsep); ewl_widget_show(vsep); - image = add_image(toolbar, PACKAGE_DATA_DIR "/images/get_exif.png", 0, display_exif_dialog, NULL); + image = add_image(em->toolbar, PACKAGE_DATA_DIR "/images/get_exif.png", 0, display_exif_dialog, NULL); ewl_image_constrain_set(EWL_IMAGE(image), 30); - image = add_image(toolbar, PACKAGE_DATA_DIR "/images/stock_fullscreen.png", 0, window_fullscreen, win); + image = add_image(em->toolbar, PACKAGE_DATA_DIR "/images/stock_fullscreen.png", 0, window_fullscreen, NULL); ewl_image_constrain_set(EWL_IMAGE(image), 30); - image = add_image(toolbar, PACKAGE_DATA_DIR "/images/x-office-presentation.png", 0, NULL, NULL); + image = add_image(em->toolbar, PACKAGE_DATA_DIR "/images/x-office-presentation.png", 0, NULL, NULL); ewl_image_constrain_set(EWL_IMAGE(image), 30); vsep = ewl_vseparator_new(); - ewl_container_child_append(EWL_CONTAINER(toolbar), vsep); + ewl_container_child_append(EWL_CONTAINER(em->toolbar), vsep); ewl_widget_show(vsep); - edit_tools = ewl_hbox_new(); - ewl_object_fill_policy_set(EWL_OBJECT(edit_tools), EWL_FLAG_FILL_HFILL); - ewl_container_child_append(EWL_CONTAINER(toolbar), edit_tools); - ewl_widget_show(edit_tools); + em->edit_tools = ewl_hbox_new(); + ewl_object_fill_policy_set(EWL_OBJECT(em->edit_tools), EWL_FLAG_FILL_HFILL); + ewl_container_child_append(EWL_CONTAINER(em->toolbar), em->edit_tools); + ewl_widget_show(em->edit_tools); - add_edit_tools(edit_tools); - ewl_widget_hide(edit_tools); + add_edit_tools(em->edit_tools); + ewl_widget_hide(em->edit_tools); - albums = ecore_list_new(); - db = ephoto_db_init(); - albums = ephoto_db_list_albums(db); + em->albums = ecore_list_new(); + em->db = ephoto_db_init(); + em->albums = ephoto_db_list_albums(em->db); - ewl_mvc_data_set(EWL_MVC(atree), albums); + ewl_mvc_data_set(EWL_MVC(em->atree), em->albums); populate(NULL, NULL, "Complete Library"); @@ -244,47 +191,47 @@ static void populate(Ewl_Widget *w, void *event, void *data) if (w) { album = (char *)ewl_widget_name_get(w); - if (currenta) + if (em->currenta) { - ewl_widget_state_set(currenta, "unselected", EWL_STATE_PERSISTENT); - ewl_widget_state_set(EWL_ICON(currenta)->label, "default", EWL_STATE_PERSISTENT); + ewl_widget_state_set(em->currenta, "unselected", EWL_STATE_PERSISTENT); + ewl_widget_state_set(EWL_ICON(em->currenta)->label, "default", EWL_STATE_PERSISTENT); } - currenta = w; - ewl_widget_state_set(currenta, "selected", EWL_STATE_PERSISTENT); - ewl_widget_state_set(EWL_ICON(currenta)->label, "blue", EWL_STATE_PERSISTENT); + em->currenta = w; + ewl_widget_state_set(em->currenta, "selected", EWL_STATE_PERSISTENT); + ewl_widget_state_set(EWL_ICON(em->currenta)->label, "blue", EWL_STATE_PERSISTENT); } else { album = data; } - if (images) + if (em->images) { - ecore_dlist_destroy(images); + ecore_dlist_destroy(em->images); } - images = ecore_dlist_new(); - images = ephoto_db_list_images(db, album); + em->images = ecore_dlist_new(); + em->images = ephoto_db_list_images(em->db, album); - ecore_dlist_goto_first(images); - ewl_container_reset(EWL_CONTAINER(fbox)); - while (ecore_dlist_current(images)) + ecore_dlist_goto_first(em->images); + ewl_container_reset(EWL_CONTAINER(em->fbox)); + while (ecore_dlist_current(em->images)) { - imagef = ecore_dlist_current(images); + imagef = ecore_dlist_current(em->images); - thumb = add_image(fbox, imagef, 1, set_info, NULL); + thumb = add_image(em->fbox, imagef, 1, set_info, NULL); ewl_object_alignment_set(EWL_OBJECT(thumb), EWL_FLAG_ALIGN_CENTER); ewl_widget_name_set(thumb, imagef); - ecore_dlist_next(images); + ecore_dlist_next(em->images); } - ecore_dlist_goto_first(images); + ecore_dlist_goto_first(em->images); - ewl_mvc_data_set(EWL_MVC(ltree), images); - ewl_mvc_dirty_set(EWL_MVC(ltree), 1); + ewl_mvc_data_set(EWL_MVC(em->ltree), em->images); + ewl_mvc_dirty_set(EWL_MVC(em->ltree), 1); - ewl_image_file_set(EWL_IMAGE(eimage), ecore_dlist_current(images), NULL); + ewl_image_file_set(EWL_IMAGE(em->eimage), ecore_dlist_current(em->images), NULL); return; } @@ -296,10 +243,10 @@ static Ewl_Widget *add_vcombo(Ewl_Widget *c) Ewl_Model *model; Ewl_View *view; - views = calloc(3, sizeof(char *)); - views[0] = strdup("Normal"); - views[1] = strdup("Edit"); - views[2] = strdup("List"); + em->views = calloc(3, sizeof(char *)); + em->views[0] = strdup("Normal"); + em->views[1] = strdup("Edit"); + em->views[2] = strdup("List"); model = ewl_model_new(); ewl_model_fetch_set(model, views_data_fetch); @@ -313,7 +260,7 @@ static Ewl_Widget *add_vcombo(Ewl_Widget *c) combo = ewl_combo_new(); ewl_mvc_model_set(EWL_MVC(combo), model); ewl_mvc_view_set(EWL_MVC(combo), view); - ewl_mvc_data_set(EWL_MVC(combo), views); + ewl_mvc_data_set(EWL_MVC(combo), em->views); ewl_object_fill_policy_set(EWL_OBJECT(combo), EWL_FLAG_FILL_SHRINK); ewl_container_child_append(EWL_CONTAINER(c), combo); ewl_callback_append(combo, EWL_CALLBACK_VALUE_CHANGED, combo_changed, NULL); @@ -337,7 +284,7 @@ static Ewl_Widget *views_header_fetch(void *data, int col) /*Get the data for the view combo*/ static void *views_data_fetch(void *data, unsigned int row, unsigned int col) { - if (row < 3) return views[row]; + if (row < 3) return em->views[row]; else return NULL; } @@ -354,15 +301,15 @@ static void combo_changed(Ewl_Widget *w, void *event, void *data) idx = ewl_mvc_selected_get(EWL_MVC(w)); - if (!strcmp(views[idx->row], "Normal")) + if (!strcmp(em->views[idx->row], "Normal")) { show_normal_view(NULL, NULL, NULL); } - else if (!strcmp(views[idx->row], "Edit")) + else if (!strcmp(em->views[idx->row], "Edit")) { show_edit_view(NULL, NULL, NULL); } - else if (!strcmp(views[idx->row], "List")) + else if (!strcmp(em->views[idx->row], "List")) { show_list_view(NULL, NULL, NULL); } @@ -383,6 +330,7 @@ static Ewl_Widget *add_atree(Ewl_Widget *c) tree = ewl_tree2_new(); ewl_tree2_headers_visible_set(EWL_TREE2(tree), 0); + ewl_tree2_fixed_rows_set(EWL_TREE2(tree), 1); ewl_mvc_model_set(EWL_MVC(tree), model); ewl_mvc_selection_mode_set(EWL_MVC(tree), EWL_SELECTION_MODE_SINGLE); ewl_object_fill_policy_set(EWL_OBJECT(tree), EWL_FLAG_FILL_ALL); @@ -447,7 +395,7 @@ static void *album_data_fetch(void *data, unsigned int row, unsigned int column) char *album; void *val = NULL; - album = ecore_list_goto_index(albums, row); + album = ecore_list_goto_index(em->albums, row); if (album) { val = album; @@ -461,7 +409,7 @@ static int album_data_count(void *data) { int val; - val = ecore_list_nodes(albums); + val = ecore_list_nodes(em->albums); return val; } diff --git a/src/bin/ephoto_normal_view.c b/src/bin/ephoto_normal_view.c index d88b384..4967523 100644 --- a/src/bin/ephoto_normal_view.c +++ b/src/bin/ephoto_normal_view.c @@ -1,14 +1,40 @@ #include "ephoto.h" +/*Add the normal view*/ +Ewl_Widget *add_normal_view(Ewl_Widget *c) +{ + Ewl_Widget *sp; + + em->fbox_vbox = ewl_vbox_new(); + ewl_object_fill_policy_set(EWL_OBJECT(em->fbox_vbox), EWL_FLAG_FILL_ALL); + ewl_container_child_append(EWL_CONTAINER(c), em->fbox_vbox); + ewl_widget_show(em->fbox_vbox); + ewl_notebook_page_tab_text_set(EWL_NOTEBOOK(c), em->fbox_vbox, "Normal"); + + sp = ewl_scrollpane_new(); + ewl_object_fill_policy_set(EWL_OBJECT(sp), EWL_FLAG_FILL_ALL); + ewl_container_child_append(EWL_CONTAINER(em->fbox_vbox), sp); + ewl_widget_show(sp); + + em->fbox = ewl_hfreebox_new(); + ewl_object_fill_policy_set(EWL_OBJECT(em->fbox), EWL_FLAG_FILL_ALL); + ewl_container_child_append(EWL_CONTAINER(sp), em->fbox); + ewl_widget_show(em->fbox); + + em->ilabel = add_label(em->fbox_vbox, "Image Information", 1); + + return em->fbox_vbox; +} + /*Show the normal view*/ void show_normal_view(Ewl_Widget *w, void *event, void *data) { - ewl_notebook_visible_page_set(EWL_NOTEBOOK(view_box), fbox_vbox); - ewl_widget_show(atree); - ewl_widget_show(tbar); - ewl_widget_show(ilabel); - ewl_widget_hide(edit_tools); - ewl_widget_configure(fbox); + ewl_notebook_visible_page_set(EWL_NOTEBOOK(em->view_box), em->fbox_vbox); + ewl_widget_show(em->atree); + ewl_widget_show(em->tbar); + ewl_widget_show(em->ilabel); + ewl_widget_hide(em->edit_tools); + ewl_widget_configure(em->fbox); } /*Set the info that is in the info label on normal view*/ @@ -20,27 +46,20 @@ void set_info(Ewl_Widget *w, void *event, void *data) if (ewl_widget_type_is(w, EWL_IMAGE_TYPE)) { - if (currentf) ewl_widget_state_set(currentf, "unselected", EWL_STATE_PERSISTENT); - currentf = w; - ewl_widget_state_set(currentf, "selected", EWL_STATE_PERSISTENT); - } - else - { - if (currenti) - { - ewl_widget_state_set(currenti, "unselected", EWL_STATE_PERSISTENT); - } - currenti = w; - ewl_widget_state_set(currenti, "selected", EWL_STATE_PERSISTENT); + if (em->currentf) ewl_widget_state_set(em->currentf, "unselected", EWL_STATE_PERSISTENT); + em->currentf = w; + ewl_widget_state_set(em->currentf, "selected", EWL_STATE_PERSISTENT); } + path = (char *)ewl_widget_name_get(w); pixels = image_pixels_string_get(path); size = file_size_get(ecore_file_size(path)); modtime = ecore_file_mod_time(path); snprintf(info, PATH_MAX, "%s - %s - %s", basename(path), pixels, size); - ewl_label_text_set(EWL_LABEL(ilabel), info); - ewl_widget_reparent(ilabel); + ewl_label_text_set(EWL_LABEL(em->ilabel), info); + ewl_widget_reparent(em->ilabel); return; } +