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

Reply via email to