Enlightenment CVS committal Author : titan Project : e17 Module : proto
Dir : e17/proto/ephoto/src Modified Files: ephoto.c ephoto.h ephoto_callbacks.c ephoto_slideshow.c Log Message: Major code cleanup. Take stuff out of the main structure that doesn't belong. Start tying in the config dialog. =================================================================== RCS file: /cvs/e/e17/proto/ephoto/src/ephoto.c,v retrieving revision 1.80 retrieving revision 1.81 diff -u -3 -r1.80 -r1.81 --- ephoto.c 12 Sep 2006 19:34:37 -0000 1.80 +++ ephoto.c 16 Sep 2006 02:53:33 -0000 1.81 @@ -1,4 +1,5 @@ #include "ephoto.h" + Main *m; char *current_directory; Ecore_List *current_thumbs; @@ -7,14 +8,16 @@ main(int argc, char **argv) { const char *icon_theme_path; + Ewl_Widget *vbox, *hbox, *border, *menubar, *menu, *menu_item; + Ewl_Widget *hseparator, *vseparator, *image, *text; - m = NULL; if (!ewl_init(&argc, argv)) { printf("Unable to init ewl\n"); return 1; } + m = NULL; current_thumbs = ecore_dlist_new(); current_directory = strdup(getenv("HOME")); m = calloc(1, sizeof(Main)); @@ -26,162 +29,169 @@ ewl_callback_append(m->win, EWL_CALLBACK_DELETE_WINDOW, destroy_cb, NULL); ewl_widget_show(m->win); - m->vbox = ewl_vbox_new(); - ewl_box_spacing_set(EWL_BOX(m->vbox), 1); - ewl_container_child_append(EWL_CONTAINER(m->win), m->vbox); - ewl_object_fill_policy_set(EWL_OBJECT(m->vbox), EWL_FLAG_FILL_ALL); - ewl_widget_show(m->vbox); - - m->menubar = ewl_hmenubar_new(); - ewl_container_child_append(EWL_CONTAINER(m->vbox), m->menubar); - ewl_object_fill_policy_set(EWL_OBJECT(m->menubar), EWL_FLAG_FILL_HFILL); - ewl_widget_show(m->menubar); - - m->menu = ewl_menu_new(); - ewl_button_label_set(EWL_BUTTON(m->menu), "File"); - ewl_container_child_append(EWL_CONTAINER(m->menubar), m->menu); - ewl_object_fill_policy_set(EWL_OBJECT(m->menu), EWL_FLAG_FILL_NONE); - ewl_widget_show(m->menu); - - m->menu_item = ewl_menu_item_new(); - ewl_button_stock_type_set(EWL_BUTTON(m->menu_item), EWL_STOCK_QUIT); - ewl_object_alignment_set(EWL_OBJECT(m->menu_item), EWL_FLAG_ALIGN_CENTER); - ewl_container_child_append(EWL_CONTAINER(m->menu), m->menu_item); - ewl_callback_append(m->menu_item, EWL_CALLBACK_CLICKED, destroy_cb, NULL); - ewl_object_fill_policy_set(EWL_OBJECT(m->menu_item), EWL_FLAG_FILL_ALL); - ewl_widget_show(m->menu_item); - - m->menu = ewl_menu_new(); - ewl_button_label_set(EWL_BUTTON(m->menu), "Albums"); - ewl_container_child_append(EWL_CONTAINER(m->menubar), m->menu); - ewl_object_fill_policy_set(EWL_OBJECT(m->menu), EWL_FLAG_FILL_NONE); - ewl_widget_show(m->menu); - - m->menu = ewl_menu_new(); - ewl_button_label_set(EWL_BUTTON(m->menu), "Slideshow"); - ewl_container_child_append(EWL_CONTAINER(m->menubar), m->menu); - ewl_object_fill_policy_set(EWL_OBJECT(m->menu), EWL_FLAG_FILL_NONE); - ewl_widget_show(m->menu); + vbox = ewl_vbox_new(); + ewl_box_spacing_set(EWL_BOX(vbox), 1); + ewl_container_child_append(EWL_CONTAINER(m->win), vbox); + ewl_object_fill_policy_set(EWL_OBJECT(vbox), EWL_FLAG_FILL_ALL); + ewl_widget_show(vbox); + + menubar = ewl_hmenubar_new(); + ewl_container_child_append(EWL_CONTAINER(vbox), menubar); + ewl_object_fill_policy_set(EWL_OBJECT(menubar), EWL_FLAG_FILL_HFILL); + ewl_widget_show(menubar); + + menu = ewl_menu_new(); + ewl_button_label_set(EWL_BUTTON(menu), "File"); + ewl_container_child_append(EWL_CONTAINER(menubar), menu); + ewl_object_fill_policy_set(EWL_OBJECT(menu), EWL_FLAG_FILL_NONE); + ewl_widget_show(menu); + + menu_item = ewl_menu_item_new(); + ewl_button_stock_type_set(EWL_BUTTON(menu_item), EWL_STOCK_QUIT); + ewl_object_alignment_set(EWL_OBJECT(menu_item), EWL_FLAG_ALIGN_CENTER); + ewl_container_child_append(EWL_CONTAINER(menu), menu_item); + ewl_callback_append(menu_item, EWL_CALLBACK_CLICKED, destroy_cb, NULL); + ewl_object_fill_policy_set(EWL_OBJECT(menu_item), EWL_FLAG_FILL_ALL); + ewl_widget_show(menu_item); + + menu = ewl_menu_new(); + ewl_button_label_set(EWL_BUTTON(menu), "Albums"); + ewl_container_child_append(EWL_CONTAINER(menubar), menu); + ewl_object_fill_policy_set(EWL_OBJECT(menu), EWL_FLAG_FILL_NONE); + ewl_widget_show(menu); + + menu_item = ewl_menu_item_new(); + ewl_button_label_set(EWL_BUTTON(menu_item), "Add Album"); + ewl_object_alignment_set(EWL_OBJECT(menu_item), EWL_FLAG_ALIGN_CENTER); + ewl_container_child_append(EWL_CONTAINER(menu), menu_item); + ewl_object_fill_policy_set(EWL_OBJECT(menu_item), EWL_FLAG_FILL_ALL); + ewl_widget_show(menu_item); + + menu = ewl_menu_new(); + ewl_button_label_set(EWL_BUTTON(menu), "Slideshow"); + ewl_container_child_append(EWL_CONTAINER(menubar), menu); + ewl_object_fill_policy_set(EWL_OBJECT(menu), EWL_FLAG_FILL_NONE); + ewl_widget_show(menu); - m->menu_item = ewl_menu_item_new(); - ewl_button_image_set(EWL_BUTTON(m->menu_item), + menu_item = ewl_menu_item_new(); + ewl_button_image_set(EWL_BUTTON(menu_item), ewl_icon_theme_icon_path_get(EWL_ICON_PREFERENCES_SYSTEM, EWL_ICON_SIZE_MEDIUM), EWL_ICON_PREFERENCES_SYSTEM); - ewl_button_label_set(EWL_BUTTON(m->menu_item), "Configure Slideshow"); - ewl_object_alignment_set(EWL_OBJECT(m->menu_item), EWL_FLAG_ALIGN_CENTER); - ewl_container_child_append(EWL_CONTAINER(m->menu), m->menu_item); - ewl_callback_append(m->menu_item, EWL_CALLBACK_CLICKED, create_slideshow_config, NULL); - ewl_object_fill_policy_set(EWL_OBJECT(m->menu_item), EWL_FLAG_FILL_ALL); - ewl_widget_show(m->menu_item); + ewl_button_label_set(EWL_BUTTON(menu_item), "Configure Slideshow"); + ewl_object_alignment_set(EWL_OBJECT(menu_item), EWL_FLAG_ALIGN_CENTER); + ewl_container_child_append(EWL_CONTAINER(menu), menu_item); + ewl_callback_append(menu_item, EWL_CALLBACK_CLICKED, create_slideshow_config, NULL); + ewl_object_fill_policy_set(EWL_OBJECT(menu_item), EWL_FLAG_FILL_ALL); + ewl_widget_show(menu_item); - m->menu_item = ewl_menu_item_new(); - ewl_button_image_set(EWL_BUTTON(m->menu_item), + menu_item = ewl_menu_item_new(); + ewl_button_image_set(EWL_BUTTON(menu_item), ewl_icon_theme_icon_path_get(EWL_ICON_X_OFFICE_PRESENTATION, EWL_ICON_SIZE_MEDIUM), EWL_ICON_X_OFFICE_PRESENTATION); - ewl_button_label_set(EWL_BUTTON(m->menu_item), "Start Slideshow"); - ewl_object_alignment_set(EWL_OBJECT(m->menu_item), EWL_FLAG_ALIGN_CENTER); - ewl_container_child_append(EWL_CONTAINER(m->menu), m->menu_item); - ewl_callback_append(m->menu_item, EWL_CALLBACK_CLICKED, start_slideshow, NULL); - ewl_object_fill_policy_set(EWL_OBJECT(m->menu_item), EWL_FLAG_FILL_ALL); - ewl_widget_show(m->menu_item); - - m->hseparator = ewl_hseparator_new(); - ewl_object_alignment_set(EWL_OBJECT(m->hseparator), EWL_FLAG_ALIGN_CENTER); - ewl_container_child_append(EWL_CONTAINER(m->vbox), m->hseparator); - ewl_object_fill_policy_set(EWL_OBJECT(m->hseparator), EWL_FLAG_FILL_ALL); - ewl_widget_show(m->hseparator); - - m->hbox = ewl_hbox_new(); - ewl_box_spacing_set(EWL_BOX(m->hbox), 5); - ewl_container_child_append(EWL_CONTAINER(m->vbox), m->hbox); - ewl_object_fill_policy_set(EWL_OBJECT(m->hbox), EWL_FLAG_FILL_HFILL | + ewl_button_label_set(EWL_BUTTON(menu_item), "Start Slideshow"); + ewl_object_alignment_set(EWL_OBJECT(menu_item), EWL_FLAG_ALIGN_CENTER); + ewl_container_child_append(EWL_CONTAINER(menu), menu_item); + ewl_callback_append(menu_item, EWL_CALLBACK_CLICKED, start_slideshow, NULL); + ewl_object_fill_policy_set(EWL_OBJECT(menu_item), EWL_FLAG_FILL_ALL); + ewl_widget_show(menu_item); + + hseparator = ewl_hseparator_new(); + ewl_object_alignment_set(EWL_OBJECT(hseparator), EWL_FLAG_ALIGN_CENTER); + ewl_container_child_append(EWL_CONTAINER(vbox), hseparator); + ewl_object_fill_policy_set(EWL_OBJECT(hseparator), EWL_FLAG_FILL_ALL); + ewl_widget_show(hseparator); + + hbox = ewl_hbox_new(); + ewl_box_spacing_set(EWL_BOX(hbox), 5); + ewl_container_child_append(EWL_CONTAINER(vbox), hbox); + ewl_object_fill_policy_set(EWL_OBJECT(hbox), EWL_FLAG_FILL_HFILL | EWL_FLAG_FILL_VSHRINK); - ewl_widget_show(m->hbox); + ewl_widget_show(hbox); - m->image = ewl_image_new(); - ewl_container_child_append(EWL_CONTAINER(m->hbox), m->image); + image = ewl_image_new(); + ewl_container_child_append(EWL_CONTAINER(hbox), image); icon_theme_path = ewl_icon_theme_icon_path_get(EWL_ICON_GO_UP, EWL_ICON_SIZE_MEDIUM); - ewl_image_file_set(EWL_IMAGE(m->image), icon_theme_path, EWL_ICON_GO_UP); - ewl_callback_append(m->image, EWL_CALLBACK_CLICKED, go_up, NULL); - ewl_widget_show(m->image); + ewl_image_file_set(EWL_IMAGE(image), icon_theme_path, EWL_ICON_GO_UP); + ewl_callback_append(image, EWL_CALLBACK_CLICKED, go_up, NULL); + ewl_widget_show(image); - m->image = ewl_image_new(); - ewl_container_child_append(EWL_CONTAINER(m->hbox), m->image); + image = ewl_image_new(); + ewl_container_child_append(EWL_CONTAINER(hbox), image); icon_theme_path = ewl_icon_theme_icon_path_get(EWL_ICON_GO_HOME, EWL_ICON_SIZE_MEDIUM); - ewl_image_file_set(EWL_IMAGE(m->image), icon_theme_path, EWL_ICON_GO_HOME); - ewl_callback_append(m->image, EWL_CALLBACK_CLICKED, go_home, NULL); - ewl_widget_show(m->image); + ewl_image_file_set(EWL_IMAGE(image), icon_theme_path, EWL_ICON_GO_HOME); + ewl_callback_append(image, EWL_CALLBACK_CLICKED, go_home, NULL); + ewl_widget_show(image); - m->image = ewl_image_new(); - ewl_container_child_append(EWL_CONTAINER(m->hbox), m->image); + image = ewl_image_new(); + ewl_container_child_append(EWL_CONTAINER(hbox), image); icon_theme_path = ewl_icon_theme_icon_path_get(EWL_ICON_EMBLEM_FAVORITE, EWL_ICON_SIZE_MEDIUM); - ewl_image_file_set(EWL_IMAGE(m->image), icon_theme_path, + ewl_image_file_set(EWL_IMAGE(image), icon_theme_path, EWL_ICON_EMBLEM_FAVORITE); - ewl_widget_show(m->image); + ewl_widget_show(image); - m->text = ewl_text_new(); - ewl_text_text_set(EWL_TEXT(m->text), " Location:"); - ewl_object_alignment_set(EWL_OBJECT(m->text), EWL_FLAG_ALIGN_CENTER); - ewl_object_maximum_size_set(EWL_OBJECT(m->text), 66, 15); - ewl_container_child_append(EWL_CONTAINER(m->hbox), m->text); - ewl_widget_show(m->text); + text = ewl_text_new(); + ewl_text_text_set(EWL_TEXT(text), " Location:"); + ewl_object_alignment_set(EWL_OBJECT(text), EWL_FLAG_ALIGN_CENTER); + ewl_object_maximum_size_set(EWL_OBJECT(text), 66, 15); + ewl_container_child_append(EWL_CONTAINER(hbox), text); + ewl_widget_show(text); m->entry = ewl_entry_new(); ewl_text_text_set(EWL_TEXT(m->entry), current_directory); - ewl_container_child_append(EWL_CONTAINER(m->hbox), m->entry); + ewl_container_child_append(EWL_CONTAINER(hbox), m->entry); ewl_callback_append(m->entry, EWL_CALLBACK_VALUE_CHANGED, entry_change, NULL); ewl_widget_show(m->entry); - m->hseparator = ewl_hseparator_new(); - ewl_object_alignment_set(EWL_OBJECT(m->hseparator), EWL_FLAG_ALIGN_CENTER); - ewl_container_child_append(EWL_CONTAINER(m->vbox), m->hseparator); - ewl_object_fill_policy_set(EWL_OBJECT(m->hseparator), EWL_FLAG_FILL_ALL); - ewl_widget_show(m->hseparator); - - m->hpaned = ewl_hbox_new(); - ewl_object_alignment_set(EWL_OBJECT(m->hpaned), EWL_FLAG_ALIGN_CENTER); - ewl_container_child_append(EWL_CONTAINER(m->vbox), m->hpaned); - ewl_object_fill_policy_set(EWL_OBJECT(m->hpaned), EWL_FLAG_FILL_ALL); - ewl_widget_show(m->hpaned); - - m->groups = ewl_vbox_new(); - ewl_container_child_append(EWL_CONTAINER(m->hpaned), m->groups); - ewl_object_fill_policy_set(EWL_OBJECT(m->groups), EWL_FLAG_FILL_ALL); - ewl_object_size_request(EWL_OBJECT(m->groups), 220, 250); - ewl_object_maximum_size_set(EWL_OBJECT(m->groups), 195, 999999); - ewl_widget_show(m->groups); + hseparator = ewl_hseparator_new(); + ewl_object_alignment_set(EWL_OBJECT(hseparator), EWL_FLAG_ALIGN_CENTER); + ewl_container_child_append(EWL_CONTAINER(vbox), hseparator); + ewl_object_fill_policy_set(EWL_OBJECT(hseparator), EWL_FLAG_FILL_ALL); + ewl_widget_show(hseparator); + + hbox = ewl_hbox_new(); + ewl_object_alignment_set(EWL_OBJECT(hbox), EWL_FLAG_ALIGN_CENTER); + ewl_container_child_append(EWL_CONTAINER(vbox), hbox); + ewl_object_fill_policy_set(EWL_OBJECT(hbox), EWL_FLAG_FILL_ALL); + ewl_widget_show(hbox); + + vbox = ewl_vbox_new(); + ewl_container_child_append(EWL_CONTAINER(hbox), vbox); + ewl_object_fill_policy_set(EWL_OBJECT(vbox), EWL_FLAG_FILL_ALL); + ewl_object_size_request(EWL_OBJECT(vbox), 220, 250); + ewl_object_maximum_size_set(EWL_OBJECT(vbox), 195, 999999); + ewl_widget_show(vbox); m->browser = ewl_tree_new(1); - ewl_container_child_append(EWL_CONTAINER(m->groups), m->browser); + ewl_container_child_append(EWL_CONTAINER(vbox), m->browser); ewl_object_fill_policy_set(EWL_OBJECT(m->browser), EWL_FLAG_FILL_ALL); ewl_tree_headers_visible_set(EWL_TREE(m->browser), 0); ewl_tree_expandable_rows_set(EWL_TREE(m->browser), FALSE); ewl_tree_mode_set(EWL_TREE(m->browser), EWL_TREE_MODE_SINGLE); - ewl_object_size_request(EWL_OBJECT(m->groups), 220, 250); + ewl_object_size_request(EWL_OBJECT(m->browser), 220, 250); ewl_widget_show(m->browser); - m->hseparator = ewl_hseparator_new(); - ewl_object_alignment_set(EWL_OBJECT(m->hseparator), EWL_FLAG_ALIGN_CENTER); - ewl_container_child_append(EWL_CONTAINER(m->groups), m->hseparator); - ewl_object_fill_policy_set(EWL_OBJECT(m->hseparator), EWL_FLAG_FILL_ALL); - ewl_widget_show(m->hseparator); - - m->albums_border = ewl_border_new(); - ewl_border_text_set(EWL_BORDER(m->albums_border), "Albums"); - ewl_border_label_alignment_set(EWL_BORDER(m->albums_border), EWL_FLAG_ALIGN_CENTER); - ewl_container_child_append(EWL_CONTAINER(m->groups), m->albums_border); - ewl_object_alignment_set(EWL_OBJECT(m->albums_border), EWL_FLAG_ALIGN_CENTER); - ewl_object_fill_policy_set(EWL_OBJECT(m->albums_border), EWL_FLAG_FILL_ALL); - ewl_object_size_request(EWL_OBJECT(m->albums_border), 220, 250); - ewl_widget_show(m->albums_border); + hseparator = ewl_hseparator_new(); + ewl_object_alignment_set(EWL_OBJECT(hseparator), EWL_FLAG_ALIGN_CENTER); + ewl_container_child_append(EWL_CONTAINER(vbox), hseparator); + ewl_object_fill_policy_set(EWL_OBJECT(hseparator), EWL_FLAG_FILL_ALL); + ewl_widget_show(hseparator); + + border = ewl_border_new(); + ewl_border_text_set(EWL_BORDER(border), "Albums"); + ewl_border_label_alignment_set(EWL_BORDER(border), EWL_FLAG_ALIGN_CENTER); + ewl_container_child_append(EWL_CONTAINER(vbox), border); + ewl_object_alignment_set(EWL_OBJECT(border), EWL_FLAG_ALIGN_CENTER); + ewl_object_fill_policy_set(EWL_OBJECT(border), EWL_FLAG_FILL_ALL); + ewl_object_size_request(EWL_OBJECT(border), 220, 250); + ewl_widget_show(border); m->albums = ewl_tree_new(1); - ewl_container_child_append(EWL_CONTAINER(m->albums_border), m->albums); + ewl_container_child_append(EWL_CONTAINER(border), m->albums); ewl_object_fill_policy_set(EWL_OBJECT(m->albums), EWL_FLAG_FILL_ALL); ewl_tree_headers_visible_set(EWL_TREE(m->albums), 0); ewl_tree_expandable_rows_set(EWL_TREE(m->albums), FALSE); @@ -189,12 +199,12 @@ ewl_object_size_request(EWL_OBJECT(m->albums), 220, 250); ewl_widget_show(m->albums); - m->vsep = ewl_vseparator_new(); - ewl_container_child_append(EWL_CONTAINER(m->hpaned), m->vsep); - ewl_widget_show(m->vsep); + vseparator = ewl_vseparator_new(); + ewl_container_child_append(EWL_CONTAINER(hbox), vseparator); + ewl_widget_show(vseparator); m->viewer = ewl_scrollpane_new(); - ewl_container_child_append(EWL_CONTAINER(m->hpaned), m->viewer); + ewl_container_child_append(EWL_CONTAINER(hbox), m->viewer); ewl_object_fill_policy_set(EWL_OBJECT(m->viewer), EWL_FLAG_FILL_ALL); ewl_widget_show(m->viewer); =================================================================== RCS file: /cvs/e/e17/proto/ephoto/src/ephoto.h,v retrieving revision 1.38 retrieving revision 1.39 diff -u -3 -r1.38 -r1.39 --- ephoto.h 8 Sep 2006 05:44:13 -0000 1.38 +++ ephoto.h 16 Sep 2006 02:53:33 -0000 1.39 @@ -2,6 +2,7 @@ #define _EPHOTO_H_ #include <Ecore_File.h> +#include <Ecore_Data.h> #include <Ewl.h> #include <fnmatch.h> #include <libgen.h> @@ -11,40 +12,26 @@ #include <string.h> void destroy_cb(Ewl_Widget *w, void *event, void *data); -void populate_albums(Ewl_Widget *w, void *event, void *data); void populate_browser(Ewl_Widget *w, void *event, void *data); +void populate_albums(Ewl_Widget *w, void *event, void *data); void populate_images(Ewl_Widget *w, void *event, void *data); void go_up(Ewl_Widget *w, void *event, void *data); void go_home(Ewl_Widget *w, void *event, void *data); +void go_favorites(Ewl_Widget *w, void *event, void *data); void entry_change(Ewl_Widget *w, void *event, void *data); -void start_slideshow(Ewl_Widget *w, void *event, void *data); void create_slideshow_config(Ewl_Widget *w, void *event, void *data); +void start_slideshow(Ewl_Widget *w, void *event, void *data); typedef struct _Main Main; struct _Main { Ewl_Widget *win; - Ewl_Widget *vbox; - Ewl_Widget *hbox; - Ewl_Widget *groups; - Ewl_Widget *menubar; - Ewl_Widget *menu; - Ewl_Widget *menu_item; - Ewl_Widget *hpaned; - Ewl_Widget *hseparator; - Ewl_Widget *albums; - Ewl_Widget *albums_border; - Ewl_Widget *browser_border; + Ewl_Widget *entry; Ewl_Widget *browser; + Ewl_Widget *albums; Ewl_Widget *viewer; - Ewl_Widget *viewer_border; Ewl_Widget *viewer_freebox; - Ewl_Widget *vsep; - Ewl_Widget *image; - Ewl_Widget *icon; - Ewl_Widget *text; - Ewl_Widget *entry; }; extern Main *m; =================================================================== RCS file: /cvs/e/e17/proto/ephoto/src/ephoto_callbacks.c,v retrieving revision 1.23 retrieving revision 1.24 diff -u -3 -r1.23 -r1.24 --- ephoto_callbacks.c 15 Sep 2006 03:08:38 -0000 1.23 +++ ephoto_callbacks.c 16 Sep 2006 02:53:33 -0000 1.24 @@ -51,7 +51,8 @@ ewl_image_file_set(EWL_IMAGE(image), image_path, EWL_ICON_IMAGE_X_GENERIC); ewl_container_child_append(EWL_CONTAINER(hbox), image); ewl_widget_show(image); - text = ewl_text_new(); + + text = ewl_text_new(); ewl_text_text_set(EWL_TEXT(text), album); ewl_object_alignment_set(EWL_OBJECT(text), EWL_FLAG_ALIGN_CENTER); ewl_object_fill_policy_set(EWL_OBJECT(text), EWL_FLAG_FILL_SHRINK); @@ -145,6 +146,7 @@ Ecore_List *ls; Ecore_List *images; Ewl_Widget *shadow; + Ewl_Widget *icon; ls = ecore_list_new(); images = ecore_list_new(); @@ -215,13 +217,13 @@ ewl_object_maximum_size_set(EWL_OBJECT(shadow), 124, 124); ewl_widget_show(shadow); - m->icon = ewl_image_thumbnail_new(); - ewl_image_thumbnail_request(EWL_IMAGE_THUMBNAIL(m->icon), image); - ewl_container_child_append(EWL_CONTAINER(shadow), m->icon); - ewl_image_size_set(EWL_IMAGE(m->icon), 100, 100); - ewl_theme_data_str_set(m->icon, "/image_thumbnail/group", + icon = ewl_image_thumbnail_new(); + ewl_image_thumbnail_request(EWL_IMAGE_THUMBNAIL(icon), image); + ewl_container_child_append(EWL_CONTAINER(shadow), icon); + ewl_image_size_set(EWL_IMAGE(icon), 100, 100); + ewl_theme_data_str_set(icon, "/image_thumbnail/group", ewl_theme_data_str_get(m->entry, "group")); - ewl_widget_show(m->icon); + ewl_widget_show(icon); } ecore_list_destroy(ls); ecore_list_destroy(images); =================================================================== RCS file: /cvs/e/e17/proto/ephoto/src/ephoto_slideshow.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -3 -r1.7 -r1.8 --- ephoto_slideshow.c 9 Sep 2006 04:29:22 -0000 1.7 +++ ephoto_slideshow.c 16 Sep 2006 02:53:33 -0000 1.8 @@ -7,25 +7,16 @@ struct _Slide_Config { Ewl_Widget *win; - Ewl_Widget *vbox; - Ewl_Widget *hbox; - Ewl_Widget *window_border; - Ewl_Widget *transition_border; - Ewl_Widget *order_border; - Ewl_Widget *size_border; Ewl_Widget *fullscreen; Ewl_Widget *custom; Ewl_Widget *spinner; Ewl_Widget *show_name; Ewl_Widget *random; Ewl_Widget *loop; - Ewl_Widget *text; Ewl_Widget *wentry; Ewl_Widget *hentry; Ewl_Widget *zoom_image; Ewl_Widget *aspect_image; - Ewl_Widget *save; - Ewl_Widget *cancel; int full_size; int custom_size; int length; @@ -232,11 +223,44 @@ } ewl_widget_destroy(sc->win); } - + +void initial_config(Ewl_Widget *w, void *event, void *data) +{ + FILE *file; + char temp[PATH_MAX]; + char path[PATH_MAX]; + + snprintf(temp, PATH_MAX, "%s/.ephoto", getenv("HOME")); + snprintf(path, PATH_MAX, "%s/slideshow_config", temp); + if (!ecore_file_exists(temp)) ecore_file_mkdir(temp); + + file = fopen(path, "w"); + if (file != NULL) + { + fprintf(file, "Fullscreen=1\n"); + fprintf(file, "Custom=0\n"); + fprintf(file, "Width=640\n"); + fprintf(file, "Height=480\n"); + fprintf(file, "Random=0\n"); + fprintf(file, "Loop=0\n"); + fprintf(file, "Zoom=1\n"); + fprintf(file, "Aspect=0\n"); + fprintf(file, "Length=3\n"); + fprintf(file, "FileName=0\n"); + fclose(file); + } +} + void create_slideshow_config(Ewl_Widget *w, void *event, void *data) { + char temp[PATH_MAX]; + Ewl_Widget *hbox, *main_hbox, *vbox, *border, *text, *save, *cancel; Slide_Config *sc; - sc = calloc(1, sizeof(Slide_Config)); + + snprintf(temp, PATH_MAX, "%s/.ephoto/slideshow_config", getenv("HOME")); + + if (!ecore_file_exists(temp)) initial_config(NULL, NULL, NULL); + sc = parse_slideshow_config(); sc->win = ewl_window_new(); ewl_window_title_set(EWL_WINDOW(sc->win), "Slideshow Configuration"); @@ -246,171 +270,171 @@ ewl_callback_append(sc->win, EWL_CALLBACK_DELETE_WINDOW, config_cancel, sc->win); ewl_widget_show(sc->win); - sc->vbox = ewl_vbox_new(); - ewl_object_fill_policy_set(EWL_OBJECT(sc->vbox), EWL_FLAG_FILL_ALL); - ewl_container_child_append(EWL_CONTAINER(sc->win), sc->vbox); - ewl_widget_show(sc->vbox); - - sc->hbox = ewl_hbox_new(); - ewl_object_fill_policy_set(EWL_OBJECT(sc->hbox), EWL_FLAG_FILL_ALL); - ewl_container_child_append(EWL_CONTAINER(sc->vbox), sc->hbox); - ewl_object_alignment_set(EWL_OBJECT(sc->hbox), EWL_FLAG_ALIGN_CENTER); - ewl_widget_show(sc->hbox); + vbox = ewl_vbox_new(); + ewl_object_fill_policy_set(EWL_OBJECT(vbox), EWL_FLAG_FILL_ALL); + ewl_container_child_append(EWL_CONTAINER(sc->win), vbox); + ewl_widget_show(vbox); + + main_hbox = ewl_hbox_new(); + ewl_object_fill_policy_set(EWL_OBJECT(main_hbox), EWL_FLAG_FILL_ALL); + ewl_container_child_append(EWL_CONTAINER(vbox), main_hbox); + ewl_object_alignment_set(EWL_OBJECT(main_hbox), EWL_FLAG_ALIGN_CENTER); + ewl_widget_show(main_hbox); - sc->window_border = ewl_border_new(); - ewl_border_text_set(EWL_BORDER(sc->window_border), "Window Size"); - ewl_border_label_alignment_set(EWL_BORDER(sc->window_border), EWL_FLAG_ALIGN_CENTER); - ewl_container_child_append(EWL_CONTAINER(sc->hbox), sc->window_border); - ewl_object_alignment_set(EWL_OBJECT(sc->window_border), EWL_FLAG_ALIGN_CENTER); - ewl_widget_show(sc->window_border); - - sc->order_border = ewl_border_new(); - ewl_border_text_set(EWL_BORDER(sc->order_border), "Order"); - ewl_border_label_alignment_set(EWL_BORDER(sc->order_border), EWL_FLAG_ALIGN_CENTER); - ewl_container_child_append(EWL_CONTAINER(sc->hbox), sc->order_border); - ewl_object_alignment_set(EWL_OBJECT(sc->order_border), EWL_FLAG_ALIGN_CENTER); - ewl_widget_show(sc->order_border); - - sc->hbox = ewl_hbox_new(); - ewl_object_fill_policy_set(EWL_OBJECT(sc->hbox), EWL_FLAG_FILL_ALL); - ewl_container_child_append(EWL_CONTAINER(sc->vbox), sc->hbox); - ewl_object_alignment_set(EWL_OBJECT(sc->hbox), EWL_FLAG_ALIGN_CENTER); - ewl_widget_show(sc->hbox); - - sc->size_border = ewl_border_new(); - ewl_border_text_set(EWL_BORDER(sc->size_border), "Image Size"); - ewl_border_label_alignment_set(EWL_BORDER(sc->size_border), EWL_FLAG_ALIGN_CENTER); - ewl_container_child_append(EWL_CONTAINER(sc->hbox), sc->size_border); - ewl_object_alignment_set(EWL_OBJECT(sc->size_border), EWL_FLAG_ALIGN_CENTER); - ewl_widget_show(sc->size_border); - - sc->transition_border = ewl_border_new(); - ewl_border_text_set(EWL_BORDER(sc->transition_border), "Transitions"); - ewl_border_label_alignment_set(EWL_BORDER(sc->transition_border), EWL_FLAG_ALIGN_CENTER); - ewl_container_child_append(EWL_CONTAINER(sc->hbox), sc->transition_border); - ewl_object_alignment_set(EWL_OBJECT(sc->transition_border), EWL_FLAG_ALIGN_CENTER); - ewl_widget_show(sc->transition_border); - - sc->hbox = ewl_hbox_new(); - ewl_object_fill_policy_set(EWL_OBJECT(sc->hbox), EWL_FLAG_FILL_HFILL); - ewl_container_child_append(EWL_CONTAINER(sc->window_border), sc->hbox); - ewl_object_alignment_set(EWL_OBJECT(sc->hbox), EWL_FLAG_ALIGN_CENTER); - ewl_widget_show(sc->hbox); + border = ewl_border_new(); + ewl_border_text_set(EWL_BORDER(border), "Window Size"); + ewl_border_label_alignment_set(EWL_BORDER(border), EWL_FLAG_ALIGN_CENTER); + ewl_container_child_append(EWL_CONTAINER(main_hbox), border); + ewl_object_alignment_set(EWL_OBJECT(border), EWL_FLAG_ALIGN_CENTER); + ewl_widget_show(border); + + hbox = ewl_hbox_new(); + ewl_object_fill_policy_set(EWL_OBJECT(hbox), EWL_FLAG_FILL_HFILL); + ewl_container_child_append(EWL_CONTAINER(border), hbox); + ewl_object_alignment_set(EWL_OBJECT(hbox), EWL_FLAG_ALIGN_CENTER); + ewl_widget_show(hbox); sc->fullscreen = ewl_radiobutton_new(); ewl_button_label_set(EWL_BUTTON(sc->fullscreen), "Fullscreen"); - ewl_container_child_append(EWL_CONTAINER(sc->hbox), sc->fullscreen); - ewl_radiobutton_checked_set(EWL_RADIOBUTTON(sc->fullscreen), TRUE); + ewl_container_child_append(EWL_CONTAINER(hbox), sc->fullscreen); + ewl_radiobutton_checked_set(EWL_RADIOBUTTON(sc->fullscreen), sc->full_size); ewl_object_alignment_set(EWL_OBJECT(sc->fullscreen), EWL_FLAG_ALIGN_LEFT); ewl_widget_show(sc->fullscreen); sc->custom = ewl_radiobutton_new(); ewl_button_label_set(EWL_BUTTON(sc->custom), "Custom"); - ewl_container_child_append(EWL_CONTAINER(sc->hbox), sc->custom); - ewl_radiobutton_checked_set(EWL_RADIOBUTTON(sc->custom), FALSE); + ewl_container_child_append(EWL_CONTAINER(hbox), sc->custom); + ewl_radiobutton_checked_set(EWL_RADIOBUTTON(sc->custom), sc->custom_size); ewl_radiobutton_chain_set(EWL_RADIOBUTTON(sc->fullscreen), EWL_RADIOBUTTON(sc->custom)); ewl_object_alignment_set(EWL_OBJECT(sc->custom), EWL_FLAG_ALIGN_RIGHT); ewl_widget_show(sc->custom); - sc->hbox = ewl_hbox_new(); - ewl_object_fill_policy_set(EWL_OBJECT(sc->hbox), EWL_FLAG_FILL_HFILL); - ewl_container_child_append(EWL_CONTAINER(sc->window_border), sc->hbox); - ewl_widget_show(sc->hbox); - - sc->text = ewl_text_new(); - ewl_text_text_set(EWL_TEXT(sc->text), "Width"); - ewl_object_fill_policy_set(EWL_OBJECT(sc->text), EWL_FLAG_FILL_SHRINK); - ewl_object_alignment_set(EWL_OBJECT(sc->text), EWL_FLAG_ALIGN_CENTER); - ewl_container_child_append(EWL_CONTAINER(sc->hbox), sc->text); - ewl_widget_show(sc->text); + hbox = ewl_hbox_new(); + ewl_object_fill_policy_set(EWL_OBJECT(hbox), EWL_FLAG_FILL_HFILL); + ewl_container_child_append(EWL_CONTAINER(border), hbox); + ewl_widget_show(hbox); + + text = ewl_text_new(); + ewl_text_text_set(EWL_TEXT(text), "Width"); + ewl_object_fill_policy_set(EWL_OBJECT(text), EWL_FLAG_FILL_SHRINK); + ewl_object_alignment_set(EWL_OBJECT(text), EWL_FLAG_ALIGN_CENTER); + ewl_container_child_append(EWL_CONTAINER(hbox), text); + ewl_widget_show(text); sc->wentry = ewl_entry_new(); ewl_text_text_set(EWL_TEXT(sc->wentry), "640"); - ewl_container_child_append(EWL_CONTAINER(sc->hbox), sc->wentry); + ewl_container_child_append(EWL_CONTAINER(hbox), sc->wentry); ewl_object_size_request(EWL_OBJECT(sc->wentry), 35, 15); ewl_widget_disable(sc->wentry); ewl_widget_show(sc->wentry); - sc->text = ewl_text_new(); - ewl_text_text_set(EWL_TEXT(sc->text), "Height"); - ewl_object_fill_policy_set(EWL_OBJECT(sc->text), EWL_FLAG_FILL_SHRINK); - ewl_object_alignment_set(EWL_OBJECT(sc->text), EWL_FLAG_ALIGN_CENTER); - ewl_container_child_append(EWL_CONTAINER(sc->hbox), sc->text); - ewl_widget_show(sc->text); + text = ewl_text_new(); + ewl_text_text_set(EWL_TEXT(text), "Height"); + ewl_object_fill_policy_set(EWL_OBJECT(text), EWL_FLAG_FILL_SHRINK); + ewl_object_alignment_set(EWL_OBJECT(text), EWL_FLAG_ALIGN_CENTER); + ewl_container_child_append(EWL_CONTAINER(hbox), text); + ewl_widget_show(text); sc->hentry = ewl_entry_new(); ewl_text_text_set(EWL_TEXT(sc->hentry), "480"); - ewl_container_child_append(EWL_CONTAINER(sc->hbox), sc->hentry); + ewl_container_child_append(EWL_CONTAINER(hbox), sc->hentry); ewl_object_size_request(EWL_OBJECT(sc->hentry), 35, 15); ewl_widget_disable(sc->hentry); ewl_widget_show(sc->hentry); - + + border = ewl_border_new(); + ewl_border_text_set(EWL_BORDER(border), "Order"); + ewl_border_label_alignment_set(EWL_BORDER(border), EWL_FLAG_ALIGN_CENTER); + ewl_container_child_append(EWL_CONTAINER(main_hbox), border); + ewl_object_alignment_set(EWL_OBJECT(border), EWL_FLAG_ALIGN_CENTER); + ewl_widget_show(border); + sc->loop = ewl_checkbutton_new(); ewl_button_label_set(EWL_BUTTON(sc->loop), "Loop Slideshow"); - ewl_checkbutton_checked_set(EWL_CHECKBUTTON(sc->loop), FALSE); - ewl_container_child_append(EWL_CONTAINER(sc->order_border), sc->loop); + ewl_checkbutton_checked_set(EWL_CHECKBUTTON(sc->loop), sc->loop_slide); + ewl_container_child_append(EWL_CONTAINER(border), sc->loop); ewl_object_alignment_set(EWL_OBJECT(sc->loop), EWL_FLAG_ALIGN_CENTER); ewl_widget_show(sc->loop); sc->random = ewl_checkbutton_new(); ewl_button_label_set(EWL_BUTTON(sc->random), "Random Order"); - ewl_checkbutton_checked_set(EWL_CHECKBUTTON(sc->random), FALSE); - ewl_container_child_append(EWL_CONTAINER(sc->order_border), sc->random); + ewl_checkbutton_checked_set(EWL_CHECKBUTTON(sc->random), sc->random_order); + ewl_container_child_append(EWL_CONTAINER(border), sc->random); ewl_object_alignment_set(EWL_OBJECT(sc->random), EWL_FLAG_ALIGN_CENTER); ewl_widget_show(sc->random); + + hbox = ewl_hbox_new(); + ewl_object_fill_policy_set(EWL_OBJECT(hbox), EWL_FLAG_FILL_ALL); + ewl_container_child_append(EWL_CONTAINER(vbox), hbox); + ewl_object_alignment_set(EWL_OBJECT(hbox), EWL_FLAG_ALIGN_CENTER); + ewl_widget_show(hbox); + + border = ewl_border_new(); + ewl_border_text_set(EWL_BORDER(border), "Image Size"); + ewl_border_label_alignment_set(EWL_BORDER(border), EWL_FLAG_ALIGN_CENTER); + ewl_container_child_append(EWL_CONTAINER(hbox), border); + ewl_object_alignment_set(EWL_OBJECT(border), EWL_FLAG_ALIGN_CENTER); + ewl_widget_show(border); sc->zoom_image = ewl_checkbutton_new(); ewl_button_label_set(EWL_BUTTON(sc->zoom_image), "Zoom Images to Fill Window"); - ewl_checkbutton_checked_set(EWL_CHECKBUTTON(sc->zoom_image), FALSE); - ewl_container_child_append(EWL_CONTAINER(sc->size_border), sc->zoom_image); + ewl_checkbutton_checked_set(EWL_CHECKBUTTON(sc->zoom_image), sc->zoom); + ewl_container_child_append(EWL_CONTAINER(border), sc->zoom_image); ewl_object_alignment_set(EWL_OBJECT(sc->zoom_image), EWL_FLAG_ALIGN_CENTER); ewl_widget_show(sc->zoom_image); sc->aspect_image = ewl_checkbutton_new(); ewl_button_label_set(EWL_BUTTON(sc->aspect_image), "Keep Aspect"); - ewl_checkbutton_checked_set(EWL_CHECKBUTTON(sc->aspect_image), TRUE); - ewl_container_child_append(EWL_CONTAINER(sc->size_border), sc->aspect_image); + ewl_checkbutton_checked_set(EWL_CHECKBUTTON(sc->aspect_image), sc->keep_aspect); + ewl_container_child_append(EWL_CONTAINER(border), sc->aspect_image); ewl_object_alignment_set(EWL_OBJECT(sc->aspect_image), EWL_FLAG_ALIGN_CENTER); - ewl_widget_show(sc->aspect_image); + ewl_widget_show(sc->aspect_image); + + border = ewl_border_new(); + ewl_border_text_set(EWL_BORDER(border), "Transitions"); + ewl_border_label_alignment_set(EWL_BORDER(border), EWL_FLAG_ALIGN_CENTER); + ewl_container_child_append(EWL_CONTAINER(hbox), border); + ewl_object_alignment_set(EWL_OBJECT(border), EWL_FLAG_ALIGN_CENTER); + ewl_widget_show(border); sc->spinner = ewl_spinner_new(); ewl_spinner_digits_set(EWL_SPINNER(sc->spinner), 0); - ewl_range_value_set(EWL_RANGE(sc->spinner), 3); + ewl_range_value_set(EWL_RANGE(sc->spinner), sc->length); ewl_range_step_set(EWL_RANGE(sc->spinner), 1); ewl_range_minimum_value_set(EWL_RANGE(sc->spinner), 1.0); ewl_range_maximum_value_set(EWL_RANGE(sc->spinner), 1000); - ewl_container_child_append(EWL_CONTAINER(sc->transition_border), sc->spinner); + ewl_container_child_append(EWL_CONTAINER(border), sc->spinner); ewl_object_alignment_set(EWL_OBJECT(sc->spinner), EWL_FLAG_ALIGN_CENTER); ewl_object_maximum_size_set(EWL_OBJECT(sc->spinner), 70, 25); ewl_widget_show(sc->spinner); sc->show_name = ewl_checkbutton_new(); ewl_button_label_set(EWL_BUTTON(sc->show_name), "Show File Name On Change"); - ewl_checkbutton_checked_set(EWL_CHECKBUTTON(sc->show_name), FALSE); - ewl_container_child_append(EWL_CONTAINER(sc->transition_border), sc->show_name); + ewl_checkbutton_checked_set(EWL_CHECKBUTTON(sc->show_name), sc->name_show); + ewl_container_child_append(EWL_CONTAINER(border), sc->show_name); ewl_object_alignment_set(EWL_OBJECT(sc->show_name), EWL_FLAG_ALIGN_CENTER); ewl_widget_show(sc->show_name); - sc->hbox = ewl_hbox_new(); - ewl_object_fill_policy_set(EWL_OBJECT(sc->hbox), EWL_FLAG_FILL_SHRINK); - ewl_object_alignment_set(EWL_OBJECT(sc->hbox), EWL_FLAG_ALIGN_CENTER); - ewl_container_child_append(EWL_CONTAINER(sc->vbox), sc->hbox); - ewl_widget_show(sc->hbox); - - sc->save = ewl_button_new(); - ewl_button_stock_type_set(EWL_BUTTON(sc->save), EWL_STOCK_SAVE); - ewl_container_child_append(EWL_CONTAINER(sc->hbox), sc->save); - ewl_object_fill_policy_set(EWL_OBJECT(sc->save), EWL_FLAG_FILL_SHRINK); - ewl_object_alignment_set(EWL_OBJECT(sc->save), EWL_FLAG_ALIGN_CENTER); - ewl_callback_append(sc->save, EWL_CALLBACK_CLICKED, save_config, sc); - ewl_widget_show(sc->save); - - sc->cancel = ewl_button_new(); - ewl_button_stock_type_set(EWL_BUTTON(sc->cancel), EWL_STOCK_CANCEL); - ewl_container_child_append(EWL_CONTAINER(sc->hbox), sc->cancel); - ewl_object_fill_policy_set(EWL_OBJECT(sc->cancel), EWL_FLAG_FILL_SHRINK); - ewl_object_alignment_set(EWL_OBJECT(sc->cancel), EWL_FLAG_ALIGN_CENTER); - ewl_callback_append(sc->cancel, EWL_CALLBACK_CLICKED, config_cancel, sc->win); - ewl_widget_show(sc->cancel); + hbox = ewl_hbox_new(); + ewl_object_fill_policy_set(EWL_OBJECT(hbox), EWL_FLAG_FILL_SHRINK); + ewl_object_alignment_set(EWL_OBJECT(hbox), EWL_FLAG_ALIGN_CENTER); + ewl_container_child_append(EWL_CONTAINER(vbox), hbox); + ewl_widget_show(hbox); + + save = ewl_button_new(); + ewl_button_stock_type_set(EWL_BUTTON(save), EWL_STOCK_SAVE); + ewl_container_child_append(EWL_CONTAINER(hbox), save); + ewl_object_fill_policy_set(EWL_OBJECT(save), EWL_FLAG_FILL_SHRINK); + ewl_object_alignment_set(EWL_OBJECT(save), EWL_FLAG_ALIGN_CENTER); + ewl_callback_append(save, EWL_CALLBACK_CLICKED, save_config, sc); + ewl_widget_show(save); + + cancel = ewl_button_new(); + ewl_button_stock_type_set(EWL_BUTTON(cancel), EWL_STOCK_CANCEL); + ewl_container_child_append(EWL_CONTAINER(hbox), cancel); + ewl_object_fill_policy_set(EWL_OBJECT(cancel), EWL_FLAG_FILL_SHRINK); + ewl_object_alignment_set(EWL_OBJECT(cancel), EWL_FLAG_ALIGN_CENTER); + ewl_callback_append(cancel, EWL_CALLBACK_CLICKED, config_cancel, sc->win); + ewl_widget_show(cancel); } ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs