Miscellaneous cleanups

SVN revision: 28399
master
titan 16 years ago committed by titan
parent 4a80fc0d70
commit 6502da7a5a
  1. 4
      data/themes/ephoto/bits/select.edc
  2. 2
      data/themes/ephoto/main.edc
  3. 51
      src/bin/ephoto.h
  4. 125
      src/bin/ephoto_edit_view.c
  5. 12
      src/bin/ephoto_exif.c
  6. 18
      src/bin/ephoto_gui.c
  7. 72
      src/bin/ephoto_list_view.c
  8. 250
      src/bin/ephoto_main.c
  9. 59
      src/bin/ephoto_normal_view.c

@ -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;
}
}
}

@ -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";

@ -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

@ -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;
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);
Ewl_Image *image;
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;
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);
Ewl_Image *image;
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;
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);
Ewl_Image *image;
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;
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);
Ewl_Image *image;
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;
}

@ -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);

@ -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);

@ -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;
}

@ -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);
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");
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);
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);
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);
ilabel = add_label(rvbox, "Image Information", 1);
add_normal_view(em->view_box);
/*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);
add_edit_view(em->view_box);
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;
}

@ -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;
}

Loading…
Cancel
Save