From: Enlightenment C. <no...@cv...> - 2006-03-28 06:25:47
|
Enlightenment CVS committal Author : ningerso Project : e17 Module : libs/ewl Dir : e17/libs/ewl/src/lib Modified Files: ewl_events.c ewl_window.c Log Message: Remove debugging output and check for NULL pointers when assigning window coords. =================================================================== RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_events.c,v retrieving revision 1.24 retrieving revision 1.25 diff -u -3 -r1.24 -r1.25 --- ewl_events.c 23 Mar 2006 02:58:54 -0000 1.24 +++ ewl_events.c 28 Mar 2006 12:25:38 -0000 1.25 @@ -231,12 +231,10 @@ */ if ((ev->from_wm) && (ev->x != window->x)) { window->x = ev->x; - printf("Window %p x position %d\n", window, ev->x); } if ((ev->from_wm) && (ev->y != window->y)) { window->y = ev->y; - printf("Window %p y position %d\n", window, ev->y); } ewl_widget_configure(EWL_WIDGET(window)); =================================================================== RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_window.c,v retrieving revision 1.37 retrieving revision 1.38 diff -u -3 -r1.37 -r1.38 --- ewl_window.c 23 Mar 2006 03:08:03 -0000 1.37 +++ ewl_window.c 28 Mar 2006 12:25:38 -0000 1.38 @@ -329,8 +329,10 @@ DCHECK_PARAM_PTR("win", win); DCHECK_TYPE("win", win, EWL_WINDOW_TYPE); - *x = win->x; - *y = win->y; + if (x) + *x = win->x; + if (y) + *y = win->y; #if 0 if (REALIZED(win)) { @@ -803,7 +805,10 @@ sinfo->info.depth = DefaultDepth(sinfo->info.display, DefaultScreen(sinfo->info.display)); sinfo->info.rotation = 0; - sinfo->info.debug = 0; + if (ewl_config.evas.render_debug) + sinfo->info.debug = 1; + else + sinfo->info.debug = 0; } else #endif |
From: Enlightenment C. <no...@cv...> - 2006-03-28 06:29:27
|
Enlightenment CVS committal Author : ningerso Project : e17 Module : libs/ewl Dir : e17/libs/ewl/src/lib Modified Files: ewl_config.h ewl_misc.c Log Message: Add render debugging command line option. =================================================================== RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_config.h,v retrieving revision 1.10 retrieving revision 1.11 diff -u -3 -r1.10 -r1.11 --- ewl_config.h 14 Mar 2006 06:00:43 -0000 1.10 +++ ewl_config.h 28 Mar 2006 12:29:15 -0000 1.11 @@ -29,6 +29,7 @@ int image_cache; /**< Image cache size */ int engine; /**< Engines available */ char *render_method; /**< Current render method */ + int render_debug; /**< Enable debugging mode in Evas */ } evas; /**< Evas configuration */ struct { =================================================================== RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_misc.c,v retrieving revision 1.48 retrieving revision 1.49 diff -u -3 -r1.48 -r1.49 --- ewl_misc.c 13 Mar 2006 18:14:14 -0000 1.48 +++ ewl_misc.c 28 Mar 2006 12:29:15 -0000 1.49 @@ -149,6 +149,11 @@ DRETURN_INT(--ewl_init_count, DLEVEL_STABLE); } + /* + * Global freeze on edje events while edje's are being manipulated. + */ + edje_freeze(); + reveal_list = ecore_list_new(); obscure_list = ecore_list_new(); configure_list = ecore_list_new(); @@ -391,11 +396,6 @@ DRETURN_INT(TRUE, DLEVEL_STABLE); /* - * Global freeze on edje events while edje's are being manipulated. - */ - edje_freeze(); - - /* * Freeze events on the evases to reduce overhead */ ecore_list_goto_first(ewl_embed_list); @@ -459,11 +459,28 @@ ecore_list_goto_first(ewl_embed_list); while ((emb = ecore_list_next(ewl_embed_list)) != NULL) { if (REALIZED(emb) && emb->evas) { + double render_time = 0; + evas_event_thaw(emb->evas); + if (ewl_config.evas.render_debug) { + printf("Entering render\n"); + render_time = ecore_time_get(); + } + evas_render(emb->evas); + + if (ewl_config.evas.render_debug) { + printf("Render time: %f seconds\n", + ecore_time_get() - render_time); + } } } + /* + * Global freeze on edje events while edje's are being manipulated. + */ + edje_freeze(); + DRETURN_INT(TRUE, DLEVEL_STABLE); } @@ -569,6 +586,10 @@ ewl_config.debug.enable = 1; matched ++; } + else if (!strcmp(argv[i], "--ewl-debug-paint")) { + ewl_config.evas.render_debug = 1; + matched ++; + } else if (!strcmp(argv[i], "--ewl-help")) { ewl_print_help(); exit(0); @@ -613,6 +634,7 @@ printf("EWL Help\n" "\t--ewl-backtrace Print a stack trace warnings occur.\n" "\t--ewl-debug <level> Set the debugging printf level.\n" + "\t--ewl-debug-paint Enable repaint debugging.\n" "\t--ewl-fb Use framebuffer display engine.\n" "\t--ewl-gl-x11 Use GL X11 display engine.\n" "\t--ewl-help Print this help message.\n" |
From: Enlightenment C. <no...@cv...> - 2006-03-30 04:56:41
|
Enlightenment CVS committal Author : ningerso Project : e17 Module : libs/ewl Dir : e17/libs/ewl/src/lib Modified Files: ewl_tree.c Log Message: Fix header hiding in the tree. =================================================================== RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_tree.c,v retrieving revision 1.32 retrieving revision 1.33 diff -u -3 -r1.32 -r1.33 --- ewl_tree.c 15 Mar 2006 04:03:48 -0000 1.32 +++ ewl_tree.c 30 Mar 2006 04:56:36 -0000 1.33 @@ -164,7 +164,6 @@ void ewl_tree_headers_visible_set(Ewl_Tree *tree, unsigned int visible) { - unsigned short i; Ewl_Widget *button; Ewl_Widget *row; @@ -177,14 +176,13 @@ row = ecore_dlist_goto_first(EWL_CONTAINER(tree)->children); ecore_dlist_goto_first(EWL_CONTAINER(row)->children); - button = ecore_dlist_next(EWL_CONTAINER(row)->children); - for (i = 0; i < tree->ncols && button; i++) { + ewl_container_child_iterate_begin(EWL_CONTAINER(row)); + while ((button = ewl_container_child_next(EWL_CONTAINER(row)))) { if ((visible) && (HIDDEN(button))) ewl_widget_show(button); else if ((!visible) && (VISIBLE(button))) ewl_widget_hide(button); - button = ecore_dlist_next(EWL_CONTAINER(row)->children); } DLEAVE_FUNCTION(DLEVEL_STABLE); |
From: Enlightenment C. <no...@cv...> - 2006-03-30 06:32:16
|
Enlightenment CVS committal Author : ningerso Project : e17 Module : libs/ewl Dir : e17/libs/ewl/src/lib Modified Files: ewl_row.c Log Message: Improved row layout. =================================================================== RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_row.c,v retrieving revision 1.16 retrieving revision 1.17 diff -u -3 -r1.16 -r1.17 --- ewl_row.c 16 Feb 2006 21:52:42 -0000 1.16 +++ ewl_row.c 30 Mar 2006 06:32:05 -0000 1.17 @@ -78,26 +78,8 @@ if (row->header == header) DRETURN(DLEVEL_STABLE); - /* - if (row->header) { - ewl_callback_del_with_data(EWL_WIDGET(row->header), - EWL_CALLBACK_CONFIGURE, - ewl_row_header_configure_cb, row); - ewl_callback_del_with_data(EWL_WIDGET(row->header), - EWL_CALLBACK_DESTROY, - ewl_row_header_destroy_cb, row); - } - */ - row->header = header; if (header) { - /* - ewl_callback_append(EWL_WIDGET(header), EWL_CALLBACK_CONFIGURE, - ewl_row_header_configure_cb, row); - ewl_callback_prepend(EWL_WIDGET(header), EWL_CALLBACK_DESTROY, - ewl_row_header_destroy_cb, row); - */ - ewl_object_fill_policy_set(EWL_OBJECT(row), EWL_FLAG_FILL_HFILL); @@ -150,8 +132,14 @@ x = CURRENT_X(w); remains = CURRENT_W(w); - nodes = ecore_dlist_nodes(c->children); - ecore_dlist_goto_first(c->children); + nodes = 0; + ewl_container_child_iterate_begin(c); + while ((child = ewl_container_child_next(c))) { + if (VISIBLE(child)) + nodes++; + } + + ewl_container_child_iterate_begin(c); /* * This should be the common case, a row bounded by a set of fields, @@ -175,12 +163,12 @@ x = CURRENT_X(w); /* - * Iterate over the children and position the children. + * Iterate over the children and position the header children. */ ewl_container_child_iterate_begin(EWL_CONTAINER(hdr)); - while ((child = ecore_dlist_next(c->children))) { + while ((child = ewl_container_child_next(c))) { align = EWL_OBJECT(ewl_container_child_next(EWL_CONTAINER(hdr))); - if (align) + if (align && VISIBLE(align)) width = ewl_object_current_x_get(align) + ewl_object_current_w_get(align) - x; else if (nodes) width = remains / nodes; @@ -205,7 +193,7 @@ */ else { int tx = x; - while ((child = ecore_dlist_next(c->children))) { + while ((child = ewl_container_child_next(c))) { int portion; /* |
From: Enlightenment C. <no...@cv...> - 2006-03-31 05:18:04
|
Enlightenment CVS committal Author : ningerso Project : e17 Module : libs/ewl Dir : e17/libs/ewl Modified Files: TODO Log Message: Remove a few TODO items. =================================================================== RCS file: /cvs/e/e17/libs/ewl/TODO,v retrieving revision 1.76 retrieving revision 1.77 diff -u -3 -r1.76 -r1.77 --- TODO 22 Feb 2006 17:39:13 -0000 1.76 +++ TODO 31 Mar 2006 05:17:55 -0000 1.77 @@ -4,20 +4,7 @@ - Evas smart object layering has changed, so using EWL in an embed does not work correctly since we don't get a layer set callback. -- Combo currently broken. Should be reworked to have a generic combo - container with an inheriting text combo class that provides the editable - feature. - - Scrollbar jumps when trying to drag the button from its lower part - -- The ewl_test seems to get a small gap between the right edje of the - test and the trough for the scrollbar. Should be flush. - - The 'Password' test seems to make this gap grow. - -- Grid and Table layouts do not pack or resize correctly. The child show - and resize callbacks do not set the preferred inner size, this is - necessary for correct initial size. Their logic is just plain wrong - right now. - Seem to have lost the .. entry in the filedialog files list. ecore_file_ls filters this out. |
From: Enlightenment C. <no...@cv...> - 2006-03-31 05:25:11
|
Enlightenment CVS committal Author : ningerso Project : e17 Module : libs/ewl Dir : e17/libs/ewl/src/lib Modified Files: ewl_tree.c ewl_row.c Log Message: Cleanup warnings and extra list operation in tree. =================================================================== RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_tree.c,v retrieving revision 1.33 retrieving revision 1.34 diff -u -3 -r1.33 -r1.34 --- ewl_tree.c 30 Mar 2006 04:56:36 -0000 1.33 +++ ewl_tree.c 31 Mar 2006 05:25:00 -0000 1.34 @@ -173,8 +173,7 @@ tree->headers_visible = visible; - row = ecore_dlist_goto_first(EWL_CONTAINER(tree)->children); - ecore_dlist_goto_first(EWL_CONTAINER(row)->children); + row = tree->header; ewl_container_child_iterate_begin(EWL_CONTAINER(row)); while ((button = ewl_container_child_next(EWL_CONTAINER(row)))) { =================================================================== RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_row.c,v retrieving revision 1.17 retrieving revision 1.18 diff -u -3 -r1.17 -r1.18 --- ewl_row.c 30 Mar 2006 06:32:05 -0000 1.17 +++ ewl_row.c 31 Mar 2006 05:25:00 -0000 1.18 @@ -134,7 +134,7 @@ nodes = 0; ewl_container_child_iterate_begin(c); - while ((child = ewl_container_child_next(c))) { + while ((child = EWL_OBJECT(ewl_container_child_next(c)))) { if (VISIBLE(child)) nodes++; } @@ -166,7 +166,7 @@ * Iterate over the children and position the header children. */ ewl_container_child_iterate_begin(EWL_CONTAINER(hdr)); - while ((child = ewl_container_child_next(c))) { + while ((child = EWL_OBJECT(ewl_container_child_next(c)))) { align = EWL_OBJECT(ewl_container_child_next(EWL_CONTAINER(hdr))); if (align && VISIBLE(align)) width = ewl_object_current_x_get(align) + ewl_object_current_w_get(align) - x; @@ -193,7 +193,7 @@ */ else { int tx = x; - while ((child = ewl_container_child_next(c))) { + while ((child = EWL_OBJECT(ewl_container_child_next(c)))) { int portion; /* |
From: Enlightenment C. <no...@cv...> - 2006-03-31 05:26:59
|
Enlightenment CVS committal Author : ningerso Project : e17 Module : libs/ewl Dir : e17/libs/ewl/src/bin/tests Modified Files: ewl_password.c Log Message: Add password tutorial. =================================================================== RCS file: /cvs/e/e17/libs/ewl/src/bin/tests/ewl_password.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- ewl_password.c 10 Mar 2006 04:05:42 -0000 1.2 +++ ewl_password.c 31 Mar 2006 05:26:52 -0000 1.3 @@ -2,6 +2,40 @@ #include <stdio.h> #include <stdlib.h> +/** + * @addtogroup Ewl_Password + * @section text_tut Tutorial + * + * The password extends a basic Ewl_Entry to provide an obscured view of the + * text entered. + * + * @code + * Ewl_Widget *password; + * password = ewl_password_new(); + * ewl_widget_show(password); + * @endcode + * + * Manipulation of the password widget is generally done through the Ewl_Entry + * API since the password widget inherits from the entry. The first point it + * diverges from the entry API is for retrieving the current string in the + * widget. This is necessary because the entry API returns the text that is + * hiding the actual contents entered. + * + * @code + * void ewl_password_text_set(Ewl_Password *e, const char *t); + * char *ewl_password_text_get(Ewl_Password *e); + * @endcode + * + * The character used to hide the text of the password is also configurable at + * runtime, the default obscuring character is '*'. + * + * @code + * void ewl_password_obscure_set(Ewl_Password *e, char o); + * char ewl_password_obscure_get(Ewl_Password *e); + * @endcode + * + */ + static Ewl_Widget *password[2]; static int create_test(Ewl_Container *win); |
From: Enlightenment C. <no...@cv...> - 2006-03-31 06:31:48
|
Enlightenment CVS committal Author : ningerso Project : e17 Module : libs/ewl Dir : e17/libs/ewl/src/lib Modified Files: ewl_embed.c Log Message: Minor cleanup of mouse dispatching logic. Walking the clippee list while removing clippees is probably safe, but it makes me nervous. So just get the front of the list until it's empty. =================================================================== RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_embed.c,v retrieving revision 1.53 retrieving revision 1.54 diff -u -3 -r1.53 -r1.54 --- ewl_embed.c 14 Mar 2006 05:24:59 -0000 1.53 +++ ewl_embed.c 31 Mar 2006 06:31:42 -0000 1.54 @@ -656,26 +656,23 @@ if (!widget) widget = EWL_WIDGET(embed); } + else + widget = embed->last.mouse_in; - if (widget) { - /* - * Defocus all widgets up to the level of a shared parent of - * old and newly focused widgets. - */ - while (embed->last.mouse_in && (widget != embed->last.mouse_in) - && !ewl_widget_parent_of(embed->last.mouse_in, widget)) { - ewl_embed_mouse_cursor_set(embed->last.mouse_in); - - ewl_object_state_remove(EWL_OBJECT(embed->last.mouse_in), - EWL_FLAG_STATE_MOUSE_IN); - ewl_callback_call(embed->last.mouse_in, EWL_CALLBACK_MOUSE_OUT); + /* + * Defocus all widgets up to the level of a shared parent of + * old and newly focused widgets. + */ + while (embed->last.mouse_in && (widget != embed->last.mouse_in) + && !ewl_widget_parent_of(embed->last.mouse_in, widget)) { + ewl_embed_mouse_cursor_set(embed->last.mouse_in); + + ewl_object_state_remove(EWL_OBJECT(embed->last.mouse_in), + EWL_FLAG_STATE_MOUSE_IN); + ewl_callback_call(embed->last.mouse_in, EWL_CALLBACK_MOUSE_OUT); - if (embed->last.mouse_in) - embed->last.mouse_in = embed->last.mouse_in->parent; - } + embed->last.mouse_in = embed->last.mouse_in->parent; } - else - widget = embed->last.mouse_in; /* * Pass out the movement event up the chain, allows parents to @@ -1019,7 +1016,7 @@ { const char *type; Ecore_List *obj_list; - Evas_List *clippees, *l; + const Evas_List *clippees; DENTER_FUNCTION(DLEVEL_STABLE); DCHECK_PARAM_PTR("e", e); @@ -1034,9 +1031,8 @@ /* we have to unclip all of the clippees so that we don't end up * getting into an infinite loop resetting the clip later */ - clippees = evas_object_clipees_get(obj); - for (l = clippees; l; l = l->next) - evas_object_clip_unset(l->data); + while ((clippees = evas_object_clipees_get(obj))) + evas_object_clip_unset(clippees->data); if (e->obj_cache) { type = evas_object_type_get(obj); |
From: Enlightenment C. <no...@cv...> - 2006-03-31 06:42:52
|
Enlightenment CVS committal Author : ningerso Project : e17 Module : libs/ewl Dir : e17/libs/ewl/src/lib Modified Files: ewl_image.c ewl_image.h Log Message: Add epsilon thumbnail support to ewl_image and support a separate API for cases where an originating image widget is not present. =================================================================== RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_image.c,v retrieving revision 1.33 retrieving revision 1.34 diff -u -3 -r1.33 -r1.34 --- ewl_image.c 22 Mar 2006 02:41:25 -0000 1.33 +++ ewl_image.c 31 Mar 2006 06:42:45 -0000 1.34 @@ -3,7 +3,11 @@ #include "ewl_macros.h" #include "ewl_private.h" +static Ecore_Event_Handler *ewl_image_epsilon_handler = NULL; + static Ewl_Image_Type ewl_image_type_get(const char *i); +static int ewl_image_thumbnail_complete_cb(void *data, int type, void *event); +static void ewl_image_thumb_destroy_cb(Ewl_Widget *w, void *ev, void *data); /** * @return Returns a pointer to a new image widget on success, NULL on failure. @@ -183,8 +187,13 @@ w = EWL_WIDGET(i); emb = ewl_embed_widget_find(w); - IF_FREE(i->path); - IF_FREE(i->key); + if (i->path != im) { + IF_FREE(i->path); + } + + if (i->key != key) { + IF_FREE(i->key); + } /* * Determine the type of image to be loaded. @@ -450,6 +459,124 @@ i->tile.h = h; DLEAVE_FUNCTION(DLEVEL_STABLE); +} + +/** + * @param i: the image to thumbnail + * @return Returns a thumbnailed image widget on success, NULL on failure. + * @brief Create a widget representing a thumbnailed version of the image. + */ +Ewl_Widget * +ewl_image_thumbnail_get(Ewl_Image *i) +{ + Ewl_Widget *thumb = NULL; + + DENTER_FUNCTION(DLEVEL_STABLE); + DCHECK_PARAM_PTR_RET("i", i, NULL); + DCHECK_TYPE_RET("i", i, EWL_IMAGE_TYPE, NULL); + +#ifdef BUILD_EPSILON_SUPPORT + if (i->path && (i->type == EWL_IMAGE_TYPE_NORMAL)) { + + printf("FOO\n"); + thumb = ewl_image_thumbnail_new(); + if (thumb) { + printf("BAR\n"); + ewl_image_thumbnail_request(EWL_IMAGE_THUMBNAIL(thumb), + (char *)ewl_image_file_path_get(i)); + EWL_IMAGE_THUMBNAIL(thumb)->orig = EWL_WIDGET(i); + } + } +#endif + + DRETURN_PTR(thumb, DLEVEL_STABLE); +} + +Ewl_Widget * +ewl_image_thumbnail_new() +{ + Ewl_Image_Thumbnail *thumb; + + DENTER_FUNCTION(DLEVEL_STABLE); + + thumb = NEW(Ewl_Image_Thumbnail, 1); + if (!ewl_image_thumbnail_init(EWL_IMAGE_THUMBNAIL(thumb))) { + ewl_widget_destroy(EWL_WIDGET(thumb)); + thumb = NULL; + } + + DRETURN_PTR(thumb, DLEVEL_STABLE); +} + +int +ewl_image_thumbnail_init(Ewl_Image_Thumbnail *image) +{ + DENTER_FUNCTION(DLEVEL_STABLE); + + if (!ewl_image_init(EWL_IMAGE(image))) + DRETURN_INT(FALSE, DLEVEL_STABLE); + + ewl_callback_append(EWL_WIDGET(image), EWL_CALLBACK_DESTROY, + ewl_image_thumb_destroy_cb, NULL); + + if (!ewl_image_epsilon_handler) { + epsilon_thumb_init(); + ewl_image_epsilon_handler = + ecore_event_handler_add(EPSILON_EVENT_DONE, + ewl_image_thumbnail_complete_cb, + NULL); + } + + DRETURN_INT(TRUE, DLEVEL_STABLE); +} + +void +ewl_image_thumbnail_request(Ewl_Image_Thumbnail *thumb, char *path) +{ + DENTER_FUNCTION(DLEVEL_STABLE); + DCHECK_PARAM_PTR("thumb", thumb); + DCHECK_PARAM_PTR("path", path); + + printf("Thumbnail requested for %s\n", path); + thumb->thumb = epsilon_add(path, NULL, EPSILON_THUMB_NORMAL, thumb); + + DLEAVE_FUNCTION(DLEVEL_STABLE); +} + +static void +ewl_image_thumb_destroy_cb(Ewl_Widget *w, void *ev, void *data) +{ + Ewl_Image_Thumbnail *thumb = EWL_IMAGE_THUMBNAIL(w); + + DENTER_FUNCTION(DLEVEL_STABLE); + + if (thumb->thumb) { + epsilon_del(thumb->thumb); + thumb->thumb = NULL; + } + + DLEAVE_FUNCTION(DLEVEL_STABLE); +} + +static int +ewl_image_thumbnail_complete_cb(void *data, int type, void *event) +{ + Ewl_Image_Thumbnail *thumb; + +#ifdef BUILD_EPSILON_SUPPORT + Epsilon_Request *ev = event; +#endif + + DENTER_FUNCTION(DLEVEL_STABLE); + + thumb = ev->data; + + printf("Thumbnail set: %s\n", ev->dest); + if (thumb) { + ewl_image_file_path_set(EWL_IMAGE(thumb), ev->dest); + } + + DRETURN_INT(TRUE, DLEVEL_STABLE); } void =================================================================== RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_image.h,v retrieving revision 1.19 retrieving revision 1.20 diff -u -3 -r1.19 -r1.20 --- ewl_image.h 15 Mar 2006 04:03:48 -0000 1.19 +++ ewl_image.h 31 Mar 2006 06:42:46 -0000 1.20 @@ -1,6 +1,11 @@ #ifndef EWL_IMAGE_H #define EWL_IMAGE_H +/* #ifdef BUILD_EPSILON_SUPPORT */ +#include <Epsilon.h> +#include <Epsilon_Request.h> +/* #endif */ + /** * @addtogroup Ewl_Image Ewl_Image: An Image Display Widget * Provides a widget for displaying evas loadable images, and edjes. @@ -65,6 +70,27 @@ } tile; /**< Image tiling information */ }; +/** + * Inherits from Ewl_Image and extends to provide reference to original image. + */ +struct Ewl_Image_Thumbnail +{ + Ewl_Image image; /**< Inherit from Ewl_Image */ + Epsilon_Request *thumb; /**< Outstanding request to thumbnail image */ + Ewl_Widget *orig; /**< Reference to image used to create thumb */ +}; + +/** + * The Ewl_Image_Thumbnail widget + */ +typedef struct Ewl_Image_Thumbnail Ewl_Image_Thumbnail; + +/** + * @def EWL_IMAGE_Thumbnail(image) + * Typecase a pointer to an Ewl_Image_Thumbnail widget + */ +#define EWL_IMAGE_THUMBNAIL(image) ((Ewl_Image_Thumbnail *) image) + Ewl_Widget *ewl_image_new(void); int ewl_image_init(Ewl_Image *i); @@ -86,6 +112,13 @@ int w, int h); void ewl_image_constrain_set(Ewl_Image *i, unsigned int size); unsigned int ewl_image_constrain_get(Ewl_Image *i); + +Ewl_Widget *ewl_image_thumbnail_get(Ewl_Image *i); + +Ewl_Widget *ewl_image_thumbnail_new(); +int ewl_image_thumbnail_init(Ewl_Image_Thumbnail *image); +void ewl_image_thumbnail_request(Ewl_Image_Thumbnail *thumb, + char *path); /* * Internally used callbacks, override at your own risk. |
From: Enlightenment C. <no...@cv...> - 2006-03-31 06:44:14
|
Enlightenment CVS committal Author : ningerso Project : e17 Module : libs/ewl Dir : e17/libs/ewl/src/bin/tests Added Files: ewl_image_thumbnail.c Log Message: Add image thumbnail test, demonstrates how to set a temp icon to be displayed while waiting for thumbnail generation. |
From: Enlightenment C. <no...@cv...> - 2006-03-31 06:50:39
|
Enlightenment CVS committal Author : ningerso Project : e17 Module : libs/ewl Dir : e17/libs/ewl/src/lib Modified Files: Makefile.am Log Message: Hook up autotools support for Epsilon and the ewl_image thumbnailing. =================================================================== RCS file: /cvs/e/e17/libs/ewl/src/lib/Makefile.am,v retrieving revision 1.24 retrieving revision 1.25 diff -u -3 -r1.24 -r1.25 --- Makefile.am 29 Mar 2006 19:48:04 -0000 1.24 +++ Makefile.am 31 Mar 2006 06:50:29 -0000 1.25 @@ -5,7 +5,7 @@ INCLUDES = \ -I$(top_builddir) \ -I$(top_srcdir) \ -@EDJE_CFLAGS@ @ECORE_CFLAGS@ @EVAS_CFLAGS@ @EMOTION_CFLAGS@ +@EDJE_CFLAGS@ @ECORE_CFLAGS@ @EVAS_CFLAGS@ @EMOTION_CFLAGS@ @EPSILON_CFLAGS@ lib_LTLIBRARIES = libewl.la @@ -147,5 +147,5 @@ installed_headersdir = $(prefix)/include/ewl installed_headers_DATA = $(EWLHEADERS) -libewl_la_LIBADD = @EDJE_LIBS@ @ECORE_LIBS@ @EVAS_LIBS@ @EMOTION_LIBS@ -lm +libewl_la_LIBADD = @EDJE_LIBS@ @ECORE_LIBS@ @EVAS_LIBS@ @EMOTION_LIBS@ @EPSILON_LIBS@ -lm libewl_la_LDFLAGS = -version-info 0:0:0 |
From: Enlightenment C. <no...@cv...> - 2006-03-31 06:51:08
|
Enlightenment CVS committal Author : ningerso Project : e17 Module : libs/ewl Dir : e17/libs/ewl/src/bin Modified Files: Makefile.am Log Message: Hook up autotools support for Epsilon and the ewl_image thumbnailing. =================================================================== RCS file: /cvs/e/e17/libs/ewl/src/bin/Makefile.am,v retrieving revision 1.32 retrieving revision 1.33 diff -u -3 -r1.32 -r1.33 --- Makefile.am 10 Mar 2006 04:05:41 -0000 1.32 +++ Makefile.am 31 Mar 2006 06:50:28 -0000 1.33 @@ -3,8 +3,7 @@ SUBDIRS = tests -AM_CFLAGS = -W -Wall -Wno-implicit -INCLUDES = -I$(top_srcdir)/src/lib -I$(top_builddir)/src/lib @EDJE_CFLAGS@ @ECORE_CFLAGS@ @EVAS_CFLAGS@ @EMOTION_CFLAGS@ +INCLUDES = -I$(top_srcdir)/src/lib -I$(top_builddir)/src/lib @EDJE_CFLAGS@ @ECORE_CFLAGS@ @EVAS_CFLAGS@ @EMOTION_CFLAGS@ @EPSILON_CFLAGS@ EWLTESTPROGRAMS = ewl_test ewl_embed_test ewl_simple_test @@ -13,19 +12,19 @@ ewl_test_DEPENDENCIES = $(top_builddir)/src/lib/libewl.la ewl_test_SOURCES = Ewl_Test.h main.c -ewl_test_LDADD = $(top_builddir)/src/lib/libewl.la @EDJE_LIBS@ @ECORE_LIBS@ @EVAS_LIBS@ @EMOTION_LIBS@ +ewl_test_LDADD = $(top_builddir)/src/lib/libewl.la @EDJE_LIBS@ @ECORE_LIBS@ @EVAS_LIBS@ @EMOTION_LIBS@ @EPSILON_LIBS@ ewl_embed_test_DEPENDENCIES = $(top_builddir)/src/lib/libewl.la ewl_embed_test_SOURCES = ewl_embed_test.c # ewl_embed_test_LDFLAGS = -ewl_embed_test_LDADD = $(top_builddir)/src/lib/libewl.la @EDJE_LIBS@ @ECORE_LIBS@ @EVAS_LIBS@ @EMOTION_LIBS@ +ewl_embed_test_LDADD = $(top_builddir)/src/lib/libewl.la @EDJE_LIBS@ @ECORE_LIBS@ @EVAS_LIBS@ @EMOTION_LIBS@ @EPSILON_LIBS@ ewl_simple_test_DEPENDENCIES = $(top_builddir)/src/lib/libewl.la ewl_simple_test_SOURCES = ewl_simple_test.c # ewl_simple_test_LDFLAGS = -ewl_simple_test_LDADD = $(top_builddir)/src/lib/libewl.la @EDJE_LIBS@ @ECORE_LIBS@ @EVAS_LIBS@ @EMOTION_LIBS@ +ewl_simple_test_LDADD = $(top_builddir)/src/lib/libewl.la @EDJE_LIBS@ @ECORE_LIBS@ @EVAS_LIBS@ @EMOTION_LIBS@ @EPSILON_LIBS@ EXTRA_DIST = $(ewl_test_SOURCES) \ $(ewl_embed_test_SOURCES) \ |
From: Enlightenment C. <no...@cv...> - 2006-03-31 06:51:08
|
Enlightenment CVS committal Author : ningerso Project : e17 Module : libs/ewl Dir : e17/libs/ewl Modified Files: configure.in Log Message: Hook up autotools support for Epsilon and the ewl_image thumbnailing. =================================================================== RCS file: /cvs/e/e17/libs/ewl/configure.in,v retrieving revision 1.68 retrieving revision 1.69 diff -u -3 -r1.68 -r1.69 --- configure.in 29 Mar 2006 19:48:04 -0000 1.68 +++ configure.in 31 Mar 2006 06:50:28 -0000 1.69 @@ -196,6 +196,20 @@ CFLAGS=$EMOTION_CFLAGS" "$CFLAGS +AC_PATH_GENERIC(epsilon, 0.3.0, + [ + have_epsilon="yes" + requirements="$requirements epsilon" + AC_DEFINE(BUILD_EPSILON_SUPPORT, 1, [Enable Epsilon Support for Ewl_Image]) + ], + [ + have_epsilon="no" + echo "No epsilon-config detected." + ] +) + +CFLAGS=$EPSILON_CFLAGS" "$CFLAGS + ### CFLAGS=$PCFLAGS |
From: Enlightenment C. <no...@cv...> - 2006-03-31 06:51:16
|
Enlightenment CVS committal Author : ningerso Project : e17 Module : libs/ewl Dir : e17/libs/ewl/src/bin/tests Modified Files: Makefile.am Log Message: Hook up autotools support for Epsilon and the ewl_image thumbnailing. =================================================================== RCS file: /cvs/e/e17/libs/ewl/src/bin/tests/Makefile.am,v retrieving revision 1.24 retrieving revision 1.25 diff -u -3 -r1.24 -r1.25 --- Makefile.am 13 Mar 2006 00:19:27 -0000 1.24 +++ Makefile.am 31 Mar 2006 06:50:29 -0000 1.25 @@ -1,7 +1,6 @@ AUTOMAKE_OPTIONS = 1.4 foreign MAINTAINERCLEANFILES = Makefile.in -AM_CFLAGS = -W -Wall -Wno-implicit INCLUDES = -I$(top_srcdir)/src/lib \ -I$(top_builddir)/src/lib \ -I$(top_srcdir)/src/bin \ @@ -22,10 +21,10 @@ ewl_floater.la ewl_icon.la ewl_iconbox.la \ ewl_tooltip.la ewl_seeker.la ewl_statusbar.la \ ewl_scrollbar.la ewl_password.la ewl_menubar.la \ - ewl_tree2.la ewl_image.la ewl_tree.la \ - ewl_table.la ewl_notebook.la ewl_scrollpane.la \ - ewl_spinner.la ewl_progressbar.la ewl_theme.la \ - ewl_media.la ewl_menu.la ewl_imenu.la \ + ewl_tree2.la ewl_image.la ewl_image_thumbnail.la \ + ewl_tree.la ewl_table.la ewl_notebook.la \ + ewl_scrollpane.la ewl_spinner.la ewl_progressbar.la \ + ewl_theme.la ewl_media.la ewl_menu.la ewl_imenu.la \ ewl_widget.la ewl_border_la_SOURCES = ewl_border.c @@ -167,6 +166,13 @@ -L$(top_builddir)/src/lib \ -L$(top_builddir)/src/lib/.libs ewl_image_la_DEPENDENCIES = + +ewl_image_thumbnail_la_SOURCES = ewl_image_thumbnail.c +ewl_image_thumbnail_la_LIBADD = $(top_builddir)/src/lib/libewl.la +ewl_image_thumbnail_la_LDFLAGS = -module -avoid-version \ + -L$(top_builddir)/src/lib \ + -L$(top_builddir)/src/lib/.libs +ewl_image_thumbnail_la_DEPENDENCIES = ewl_tooltip_la_SOURCES = ewl_tooltip.c ewl_tooltip_la_LIBADD = $(top_builddir)/src/lib/libewl.la |
From: Enlightenment C. <no...@cv...> - 2006-03-31 21:05:35
|
Enlightenment CVS committal Author : ningerso Project : e17 Module : libs/ewl Dir : e17/libs/ewl/src/lib Modified Files: ewl_image.c Log Message: Clean up the thumbnail request reference. =================================================================== RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_image.c,v retrieving revision 1.34 retrieving revision 1.35 diff -u -3 -r1.34 -r1.35 --- ewl_image.c 31 Mar 2006 06:42:45 -0000 1.34 +++ ewl_image.c 31 Mar 2006 21:05:23 -0000 1.35 @@ -1,7 +1,7 @@ +#include "ewl_private.h" #include <Ewl.h> #include "ewl_debug.h" #include "ewl_macros.h" -#include "ewl_private.h" static Ecore_Event_Handler *ewl_image_epsilon_handler = NULL; @@ -574,6 +574,7 @@ printf("Thumbnail set: %s\n", ev->dest); if (thumb) { ewl_image_file_path_set(EWL_IMAGE(thumb), ev->dest); + thumb->thumb = NULL; } DRETURN_INT(TRUE, DLEVEL_STABLE); |
From: Enlightenment C. <no...@cv...> - 2006-04-11 16:35:25
|
Enlightenment CVS committal Author : ningerso Project : e17 Module : libs/ewl Dir : e17/libs/ewl/src/lib Modified Files: ewl_filepicker.c Log Message: Start with more visible area for icons. =================================================================== RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_filepicker.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- ewl_filepicker.c 10 Apr 2006 04:43:17 -0000 1.1 +++ ewl_filepicker.c 11 Apr 2006 16:34:50 -0000 1.2 @@ -83,7 +83,7 @@ ewl_callback_prepend(EWL_WIDGET(fp), EWL_CALLBACK_DESTROY, ewl_filepicker_cb_destroy, NULL); - ewl_object_minimum_size_set(EWL_OBJECT(fp), 400, 150); + ewl_object_minimum_size_set(EWL_OBJECT(fp), 400, 300); model = ewl_model_new(); ewl_model_fetch_set(model, ewl_filepicker_cb_path_fetch); |
From: Enlightenment C. <no...@cv...> - 2006-04-12 03:44:50
|
Enlightenment CVS committal Author : ningerso Project : e17 Module : libs/ewl Dir : e17/libs/ewl/src/lib Modified Files: ewl_filepicker.c Log Message: Typo fix in filepicker. =================================================================== RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_filepicker.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- ewl_filepicker.c 12 Apr 2006 02:58:33 -0000 1.3 +++ ewl_filepicker.c 12 Apr 2006 03:44:23 -0000 1.4 @@ -10,7 +10,7 @@ char *filter; }; -static void ewl_fillpicker_favorites_populate(Ewl_Filepicker *fp); +static void ewl_filepicker_favorites_populate(Ewl_Filepicker *fp); static void ewl_filepicker_cb_list_value_changed(Ewl_Widget *w, void *ev, void *data); static void ewl_filepicker_cb_button_clicked(Ewl_Widget *w, void *ev, @@ -112,7 +112,7 @@ ewl_container_child_append(EWL_CONTAINER(o), fp->favorites_box); ewl_object_fill_policy_set(EWL_OBJECT(fp->favorites_box), EWL_FLAG_FILL_HSHRINK | EWL_FLAG_FILL_VFILL); - ewl_fillpicker_favorites_populate(fp); + ewl_filepicker_favorites_populate(fp); ewl_filepicker_show_favorites_set(fp, FALSE); fp->file_list_box = ewl_scrollpane_new(); @@ -617,7 +617,7 @@ } static void -ewl_fillpicker_favorites_populate(Ewl_Filepicker *fp) +ewl_filepicker_favorites_populate(Ewl_Filepicker *fp) { DENTER_FUNCTION(DLEVEL_STABLE); DCHECK_PARAM_PTR("fp", fp); |
From: Enlightenment C. <no...@cv...> - 2006-04-12 05:07:44
|
Enlightenment CVS committal Author : ningerso Project : e17 Module : libs/ewl Dir : e17/libs/ewl/src/lib Modified Files: ewl_widget.c ewl_widget.h Log Message: Add verbose widget printing function for easier debugging. =================================================================== RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_widget.c,v retrieving revision 1.70 retrieving revision 1.71 diff -u -3 -r1.70 -r1.71 --- ewl_widget.c 22 Feb 2006 03:51:01 -0000 1.70 +++ ewl_widget.c 12 Apr 2006 05:07:14 -0000 1.71 @@ -1,7 +1,7 @@ +#include "ewl_private.h" #include <Ewl.h> #include "ewl_debug.h" #include "ewl_macros.h" -#include "ewl_private.h" static Ecore_Hash *ewl_widget_name_table = NULL; static int ewl_widget_dnd_drag_move_count = 0; @@ -1367,7 +1367,7 @@ /** * @param w: the widget to print info - * @return Returs no value. + * @return Returns no value. * @brief Prints info for debugging a widget's state information. */ void @@ -1385,6 +1385,88 @@ ewl_object_current_h_get(EWL_OBJECT(w)), (VISIBLE(w) ? "visible" : "not visible"), (REALIZED(w) ? "realized" : "not realized")); +} + + +/** + * @param w: the widget to print verbose info + * @return Returns no value. + * @brief Prints verbose info for debugging a widget's state information. + */ +void +ewl_widget_print_verbose(Ewl_Widget *w) +{ + unsigned int flags; + unsigned int matched = 0; + + DENTER_FUNCTION(DLEVEL_STABLE); + DCHECK_PARAM_PTR("w", w); + + flags = ewl_object_fill_policy_get(EWL_OBJECT(w)); + + ewl_widget_print(w); + printf("\tPreferred size: %dx%d\n", + ewl_object_preferred_w_get(EWL_OBJECT(w)), + ewl_object_preferred_h_get(EWL_OBJECT(w))); + printf("\tMinimum size: %dx%d\n", + ewl_object_minimum_w_get(EWL_OBJECT(w)), + ewl_object_minimum_h_get(EWL_OBJECT(w))); + printf("\tFill policy:\n"); + + if (flags & EWL_FLAG_FILL_HSHRINK) { + printf("\t\tHSHRINK\n"); + matched = 1; + } + + if (flags & EWL_FLAG_FILL_HFILL) { + printf("\t\tHFILL\n"); + matched = 1; + } + + if (flags & EWL_FLAG_FILL_VSHRINK) { + printf("\t\tVSHRINK\n"); + matched = 1; + } + + if (flags & EWL_FLAG_FILL_VFILL) { + printf("\t\tVFILL\n"); + matched = 1; + } + + if (!matched) { + printf("\t\tNONE\n"); + } + + matched = 0; + + flags = ewl_object_alignment_get(EWL_OBJECT(w)); + + if (flags & EWL_FLAG_ALIGN_LEFT) { + printf("\t\tLEFT\n"); + matched = 1; + } + + if (flags & EWL_FLAG_ALIGN_RIGHT) { + printf("\t\tRIGHT\n"); + matched = 1; + } + + if (flags & EWL_FLAG_ALIGN_TOP) { + printf("\t\tTOP\n"); + matched = 1; + } + + if (flags & EWL_FLAG_ALIGN_BOTTOM) { + printf("\t\tTOP\n"); + matched = 1; + } + + if (!matched) { + printf("\t\tCENTER\n"); + } + + + DLEAVE_FUNCTION(DLEVEL_STABLE); } /** =================================================================== RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_widget.h,v retrieving revision 1.38 retrieving revision 1.39 diff -u -3 -r1.38 -r1.39 --- ewl_widget.h 15 Mar 2006 04:03:48 -0000 1.38 +++ ewl_widget.h 12 Apr 2006 05:07:14 -0000 1.39 @@ -189,6 +189,7 @@ void ewl_widget_disable(Ewl_Widget * w); void ewl_widget_print(Ewl_Widget *w); +void ewl_widget_print_verbose(Ewl_Widget *w); void ewl_widget_tree_print(Ewl_Widget *w); int ewl_widget_layer_sum_get(Ewl_Widget *w); |
From: Enlightenment C. <no...@cv...> - 2006-04-12 05:46:55
|
Enlightenment CVS committal Author : ningerso Project : e17 Module : libs/ewl Dir : e17/libs/ewl/src/lib Modified Files: ewl_spinner.c Log Message: Fix spinner buttons fill policy. =================================================================== RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_spinner.c,v retrieving revision 1.15 retrieving revision 1.16 diff -u -3 -r1.15 -r1.16 --- ewl_spinner.c 12 Jan 2006 18:21:19 -0000 1.15 +++ ewl_spinner.c 12 Apr 2006 05:46:29 -0000 1.16 @@ -1,7 +1,7 @@ +#include "ewl_private.h" #include <Ewl.h> #include "ewl_debug.h" #include "ewl_macros.h" -#include "ewl_private.h" static void ewl_spinner_calc_value(Ewl_Spinner *s, double val, unsigned int call); static int ewl_spinner_timer(void *data); @@ -86,6 +86,7 @@ ewl_container_child_append(EWL_CONTAINER(s), vbox); ewl_widget_appearance_set(vbox, "controls"); ewl_widget_internal_set(vbox, TRUE); + ewl_object_fill_policy_set(EWL_OBJECT(vbox), EWL_FLAG_FILL_NONE); ewl_widget_show(vbox); s->increment = ewl_button_new(); |
From: Enlightenment C. <no...@cv...> - 2006-04-12 06:14:24
|
Enlightenment CVS committal Author : ningerso Project : e17 Module : libs/ewl Dir : e17/libs/ewl/src/lib Modified Files: ewl_object.c Log Message: Eliminate old sanity checks on the current preferred size that are no longer necessary and were causing unexpected sizing issues. =================================================================== RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_object.c,v retrieving revision 1.12 retrieving revision 1.13 diff -u -3 -r1.12 -r1.13 --- ewl_object.c 13 Mar 2006 18:14:14 -0000 1.12 +++ ewl_object.c 12 Apr 2006 06:13:58 -0000 1.13 @@ -1,7 +1,7 @@ +#include "ewl_private.h" #include <Ewl.h> #include "ewl_debug.h" #include "ewl_macros.h" -#include "ewl_private.h" /** * @param o: the object to initialize @@ -562,8 +562,7 @@ * Bound the width by the preferred size first. */ if ((w < o->preferred.w && !(o->flags & EWL_FLAG_FILL_HSHRINK)) - || (o->preferred.w && w > o->preferred.w && - !(o->flags & EWL_FLAG_FILL_HFILL))) + || (w > o->preferred.w && !(o->flags & EWL_FLAG_FILL_HFILL))) w = o->preferred.w; /* @@ -603,8 +602,7 @@ * Bound the width by the preferred size first. */ if ((h < o->preferred.h && !(o->flags & EWL_FLAG_FILL_VSHRINK)) - || (o->preferred.h && h > o->preferred.h && - !(o->flags & EWL_FLAG_FILL_VFILL))) + || (h > o->preferred.h && !(o->flags & EWL_FLAG_FILL_VFILL))) h = o->preferred.h; /* |
From: Enlightenment C. <no...@cv...> - 2006-04-12 06:15:56
|
Enlightenment CVS committal Author : ningerso Project : e17 Module : libs/ewl Dir : e17/libs/ewl/src/lib Modified Files: ewl_text.c ewl_text.h Log Message: Add the first part of text display offsetting, more to come on this. =================================================================== RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_text.c,v retrieving revision 1.93 retrieving revision 1.94 diff -u -3 -r1.93 -r1.94 --- ewl_text.c 17 Feb 2006 06:43:33 -0000 1.93 +++ ewl_text.c 12 Apr 2006 06:15:31 -0000 1.94 @@ -1,7 +1,7 @@ +#include "ewl_private.h" #include <Ewl.h> #include "ewl_debug.h" #include "ewl_macros.h" -#include "ewl_private.h" static Ewl_Text_Context *ewl_text_default_context = NULL; @@ -2509,7 +2509,8 @@ if (t->textblock) { - evas_object_move(t->textblock, xx, yy); + evas_object_move(t->textblock, xx + t->offset.x, + yy + t->offset.y); evas_object_resize(t->textblock, ww, hh); if (t->dirty) =================================================================== RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_text.h,v retrieving revision 1.33 retrieving revision 1.34 diff -u -3 -r1.33 -r1.34 --- ewl_text.h 15 Mar 2006 04:03:48 -0000 1.33 +++ ewl_text.h 12 Apr 2006 06:15:31 -0000 1.34 @@ -87,6 +87,12 @@ Ecore_List *triggers; /**< The list of triggers */ Ewl_Text_Trigger *selection; /**< The current selection */ + struct + { + int x; /**< X offset for layout */ + int y; /**< Y offset for layout */ + } offset; + unsigned char delete_count; /**< Number of deletes */ unsigned char in_select; /**< Are we in select mode? */ |
From: Enlightenment C. <no...@cv...> - 2006-04-12 06:22:53
|
Enlightenment CVS committal Author : ningerso Project : e17 Module : libs/ewl Dir : e17/libs/ewl/src/lib Modified Files: ewl_icon.c Log Message: Make icons scale proportionally. =================================================================== RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_icon.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -3 -r1.7 -r1.8 --- ewl_icon.c 12 Apr 2006 02:02:01 -0000 1.7 +++ ewl_icon.c 12 Apr 2006 06:22:25 -0000 1.8 @@ -121,6 +121,7 @@ if (!icon->preview) { icon->preview = ewl_image_new(); + ewl_image_proportional_set(EWL_IMAGE(icon->preview), TRUE); ewl_widget_internal_set(icon->preview, TRUE); ewl_container_child_prepend(EWL_CONTAINER(icon), icon->preview); |
From: Enlightenment C. <no...@cv...> - 2006-04-12 06:30:03
|
Enlightenment CVS committal Author : ningerso Project : e17 Module : libs/ewl Dir : e17/libs/ewl/src/lib Modified Files: ewl_image.c ewl_image.h Log Message: Move the Epsilon specific types out of the public header. =================================================================== RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_image.c,v retrieving revision 1.37 retrieving revision 1.38 diff -u -3 -r1.37 -r1.38 --- ewl_image.c 1 Apr 2006 01:51:32 -0000 1.37 +++ ewl_image.c 12 Apr 2006 06:29:31 -0000 1.38 @@ -3,6 +3,11 @@ #include "ewl_debug.h" #include "ewl_macros.h" +#ifdef BUILD_EPSILON_SUPPORT +#include <Epsilon.h> +#include <Epsilon_Request.h> +#endif + static Ecore_Event_Handler *ewl_image_epsilon_handler = NULL; static Ewl_Image_Type ewl_image_type_get(const char *i); @@ -909,7 +914,7 @@ emb = ewl_embed_widget_find(w); ev = ev_data; - if (i->type == EWL_IMAGE_TYPE_EDJE) + if (i->type == EWL_IMAGE_TYPE_EDJE && emb) evas_event_feed_mouse_up(emb->evas, ev->button, EVAS_BUTTON_NONE, (unsigned int)((unsigned long long)(ecore_time_get() * 1000.0) & 0xffffffff), =================================================================== RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_image.h,v retrieving revision 1.22 retrieving revision 1.23 diff -u -3 -r1.22 -r1.23 --- ewl_image.h 1 Apr 2006 01:51:32 -0000 1.22 +++ ewl_image.h 12 Apr 2006 06:29:31 -0000 1.23 @@ -1,11 +1,6 @@ #ifndef EWL_IMAGE_H #define EWL_IMAGE_H -#ifdef BUILD_EPSILON_SUPPORT -#include <Epsilon.h> -#include <Epsilon_Request.h> -#endif - /** * @addtogroup Ewl_Image Ewl_Image: An Image Display Widget * Provides a widget for displaying evas loadable images, and edjes. @@ -82,11 +77,7 @@ struct Ewl_Image_Thumbnail { Ewl_Image image; /**< Inherit from Ewl_Image */ -#ifdef BUILD_EPSILON_SUPPORT - Epsilon_Request *thumb; /**< Outstanding request to thumbnail image */ -#else - void *thumb; /**< Not supported :( */ -#endif + void *thumb; /**< Outstanding request to thumbnail image */ Ewl_Widget *orig; /**< Reference to image used to create thumb */ }; |
From: Enlightenment C. <no...@cv...> - 2006-04-12 06:36:00
|
Enlightenment CVS committal Author : ningerso Project : e17 Module : libs/ewl Dir : e17/libs/ewl/src/lib Modified Files: ewl_filepicker.c Log Message: Use preferred size over minimum size when possible. =================================================================== RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_filepicker.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- ewl_filepicker.c 12 Apr 2006 03:44:23 -0000 1.4 +++ ewl_filepicker.c 12 Apr 2006 06:35:33 -0000 1.5 @@ -83,7 +83,7 @@ ewl_callback_prepend(EWL_WIDGET(fp), EWL_CALLBACK_DESTROY, ewl_filepicker_cb_destroy, NULL); - ewl_object_minimum_size_set(EWL_OBJECT(fp), 400, 300); + ewl_object_preferred_inner_size_set(EWL_OBJECT(fp), 400, 300); model = ewl_model_new(); ewl_model_fetch_set(model, ewl_filepicker_cb_path_fetch); |
From: Enlightenment C. <no...@cv...> - 2006-04-12 06:42:21
|
Enlightenment CVS committal Author : ningerso Project : e17 Module : libs/ewl Dir : e17/libs/ewl/src/lib Modified Files: ewl_datepicker.c ewl_embed.c ewl_embed.h ewl_events.c ewl_menu.c ewl_window.c ewl_window.h Log Message: Patch from Peter Wehrfritz to move position coordinate tracking to the embed from the window. =================================================================== RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_datepicker.c,v retrieving revision 1.10 retrieving revision 1.11 diff -u -3 -r1.10 -r1.11 --- ewl_datepicker.c 17 Feb 2006 06:43:33 -0000 1.10 +++ ewl_datepicker.c 12 Apr 2006 06:41:55 -0000 1.11 @@ -1,7 +1,7 @@ +#include "ewl_private.h" #include <Ewl.h> #include "ewl_debug.h" #include "ewl_macros.h" -#include "ewl_private.h" static void ewl_datepicker_calendar_position_set(Ewl_Datepicker *dp); static void ewl_datepicker_dropdown_cb(Ewl_Widget *w, void *ev_data, @@ -157,7 +157,7 @@ /* Get the position of the parent */ emb = ewl_embed_widget_find(EWL_WIDGET(dp)); if (emb) { - ewl_window_position_get(EWL_WINDOW(emb), &x, &y); + ewl_embed_window_position_get(EWL_EMBED(emb), &x, &y); ewl_object_current_size_get(EWL_OBJECT(dp), &sx, &sy); ewl_window_move(EWL_WINDOW(dp->calendar_window), x + (sx / 4), y + sy + 3); =================================================================== RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_embed.c,v retrieving revision 1.54 retrieving revision 1.55 diff -u -3 -r1.54 -r1.55 --- ewl_embed.c 31 Mar 2006 06:31:42 -0000 1.54 +++ ewl_embed.c 12 Apr 2006 06:41:55 -0000 1.55 @@ -1,7 +1,7 @@ +#include "ewl_private.h" #include <Ewl.h> #include "ewl_debug.h" #include "ewl_macros.h" -#include "ewl_private.h" Ecore_List *ewl_embed_list = NULL; static Evas_Smart *embedded_smart = NULL; @@ -1500,6 +1500,53 @@ ecore_x_cursor_shape_get(EWL_MOUSE_CURSOR_LEFT_PTR)); DLEAVE_FUNCTION(DLEVEL_STABLE); +} + +/** + * @param e: the embed to query for position + * @param x: a pointer to the integer that should receive the x coordinate + * @param y: a pointer to the integer that should receive the y coordinate + * @return Returns no value. + * @brief Retrieve the position of the embed + * + * Stores the embed position into the parameters @a x and @a y. + */ +void +ewl_embed_position_get(Ewl_Embed *e, int *x, int *y) +{ + int sx, sy; + + DENTER_FUNCTION(DLEVEL_STABLE); + DCHECK_PARAM_PTR("e", e); + DCHECK_TYPE("e", e, EWL_EMBED_TYPE); + + evas_object_geometry_get(e->smart, &sx, &sy, NULL, NULL); + if (x) *x = e->x + sx; + if (y) *y = e->y + sy; + + DLEAVE_FUNCTION(DLEVEL_STABLE); +} + +/** + * @param e: the embed to query for window-position + * @param x: a pointer to the integer that should receive the x coordinate + * @param y: a pointer to the integer that should receive the y coordinate + * @return Returns no value. + * @brief Retrieve the position of the window + * + * Stores the window position into the parameters @a x and @a y. + */ +void +ewl_embed_window_position_get(Ewl_Embed *e, int *x, int *y) +{ + DENTER_FUNCTION(DLEVEL_STABLE); + DCHECK_PARAM_PTR("e", e); + DCHECK_TYPE("e", e, EWL_EMBED_TYPE); + + if (x) *x = e->x; + if (y) *y = e->y; + + DLEAVE_FUNCTION(DLEVEL_STABLE); } void =================================================================== RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_embed.h,v retrieving revision 1.16 retrieving revision 1.17 diff -u -3 -r1.16 -r1.17 --- ewl_embed.h 15 Mar 2006 04:03:48 -0000 1.16 +++ ewl_embed.h 12 Apr 2006 06:41:55 -0000 1.17 @@ -70,6 +70,9 @@ Ewl_Widget *mouse_in; /**< Last widget to receive a mouse_in */ } last; /**< Collection of widgets to last receive events */ + int x; /**< Screen relative horizontal position of window */ + int y; /**< Screen relative vertical position of window */ + Ewl_Widget *dnd_widget; /**< The current DND widget */ }; @@ -132,6 +135,8 @@ int *x, int *y); void ewl_embed_mouse_cursor_set(Ewl_Widget *w); +void ewl_embed_position_get(Ewl_Embed *e, int *x, int *y); +void ewl_embed_window_position_get(Ewl_Embed *e, int *x, int *y); /* * Internally used callbacks, override at your own risk. =================================================================== RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_events.c,v retrieving revision 1.25 retrieving revision 1.26 diff -u -3 -r1.25 -r1.26 --- ewl_events.c 28 Mar 2006 12:25:38 -0000 1.25 +++ ewl_events.c 12 Apr 2006 06:41:55 -0000 1.26 @@ -1,7 +1,7 @@ +#include "ewl_private.h" #include <Ewl.h> #include "ewl_debug.h" #include "ewl_macros.h" -#include "ewl_private.h" extern Ecore_List *ewl_embed_list; static unsigned int key_modifiers = 0; @@ -217,26 +217,34 @@ */ Ecore_X_Event_Window_Configure *ev; Ewl_Window *window; + Ewl_Embed *embed; DENTER_FUNCTION(DLEVEL_STABLE); ev = e; - window = ewl_window_window_find((void *)ev->win); - if (!window) + embed = ewl_embed_evas_window_find((void *)ev->win); + if (!embed) DRETURN_INT(TRUE, DLEVEL_STABLE); /* * Save coords and queue a configure event if the window is moved. */ - if ((ev->from_wm) && (ev->x != window->x)) { - window->x = ev->x; + if ((ev->from_wm) && (ev->x != embed->x)) { + embed->x = ev->x; } - if ((ev->from_wm) && (ev->y != window->y)) { - window->y = ev->y; + if ((ev->from_wm) && (ev->y != embed->y)) { + embed->y = ev->y; } + window = ewl_window_window_find((void *)ev->win); + /* + * we can finish when the embed is not a window + */ + if (!window) + DRETURN_INT(TRUE, DLEVEL_STABLE); + ewl_widget_configure(EWL_WIDGET(window)); /* @@ -627,7 +635,7 @@ if (window) { Ewl_Embed *embed; - ewl_window_position_get(EWL_WINDOW(window), &wx, &wy); + ewl_embed_window_position_get(EWL_EMBED(window), &wx, &wy); x = ev->position.x - wx; y = ev->position.y - wy; @@ -757,7 +765,7 @@ if (window) { int x,y,wx,wy; Ewl_Embed *embed= ewl_embed_evas_window_find((void *)ev->win); - ewl_window_position_get(EWL_WINDOW(window), &wx, &wy); + ewl_embed_window_position_get(EWL_EMBED(window), &wx, &wy); printf("Wx/y: %d:%d\n", wx,wy); =================================================================== RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_menu.c,v retrieving revision 1.26 retrieving revision 1.27 diff -u -3 -r1.26 -r1.27 --- ewl_menu.c 17 Feb 2006 06:43:33 -0000 1.26 +++ ewl_menu.c 12 Apr 2006 06:41:55 -0000 1.27 @@ -1,7 +1,7 @@ +#include "ewl_private.h" #include <Ewl.h> #include "ewl_debug.h" #include "ewl_macros.h" -#include "ewl_private.h" /** @@ -125,7 +125,7 @@ menu = EWL_MENU(w); emb = ewl_embed_widget_find(w); - ewl_window_position_get(EWL_WINDOW(emb), &x, &y); + ewl_embed_window_position_get(EWL_WINDOW(emb), &x, &y); menu->popup_x = x + CURRENT_X(w); menu->popup_y = y + CURRENT_Y(w); @@ -241,8 +241,8 @@ embed = ewl_embed_widget_find(EWL_WIDGET(menu)->parent); menu_embed = ewl_embed_widget_find(EWL_WIDGET(menu->base.popup)); - ewl_window_position_get(EWL_WINDOW(embed), &wx, &wy); - ewl_window_position_get(EWL_WINDOW(menu->base.popup), &x, &y); + ewl_embed_window_position_get(EWL_WINDOW(embed), &wx, &wy); + ewl_embed_window_position_get(EWL_WINDOW(menu->base.popup), &x, &y); ewl_object_current_size_get(EWL_OBJECT(menu->base.popup), &width, &height); if (((ev->x + x) > x) && ((ev->y + y) > y) =================================================================== RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_window.c,v retrieving revision 1.39 retrieving revision 1.40 diff -u -3 -r1.39 -r1.40 --- ewl_window.c 29 Mar 2006 14:36:48 -0000 1.39 +++ ewl_window.c 12 Apr 2006 06:41:55 -0000 1.40 @@ -1,7 +1,7 @@ +#include "ewl_private.h" #include <Ewl.h> #include "ewl_debug.h" #include "ewl_macros.h" -#include "ewl_private.h" Ecore_List *ewl_window_list = NULL; @@ -300,8 +300,8 @@ DCHECK_PARAM_PTR("win", win); DCHECK_TYPE("win", win, EWL_WINDOW_TYPE); - win->x = x; - win->y = y; + EWL_EMBED(win)->x = x; + EWL_EMBED(win)->y = y; if (!REALIZED(win)) DRETURN(DLEVEL_STABLE); @@ -314,28 +314,6 @@ } /** - * @param win: the window to query for position - * @param x: a pointer to the integer that should receive the x coordinate - * @param y: a pointer to the integer that should receive the y coordinate - * @return Returns no value. - * @brief Retrieve the position of the window - * - * Stores the window position into the parameters @a x and @a y. - */ -void -ewl_window_position_get(Ewl_Window *win, int *x, int *y) -{ - DENTER_FUNCTION(DLEVEL_STABLE); - DCHECK_PARAM_PTR("win", win); - DCHECK_TYPE("win", win, EWL_WINDOW_TYPE); - - if (x) *x = win->x; - if (y) *y = win->y; - - DLEAVE_FUNCTION(DLEVEL_STABLE); -} - -/** * @param win: the window to raise. * @return Returns no value. * @brief Raise a window. @@ -690,14 +668,14 @@ Ecore_X_Window xwin; if (window->flags & EWL_WINDOW_OVERRIDE) { - xwin = ecore_x_window_override_new(0, window->x, - window->y, + xwin = ecore_x_window_override_new(0, embed->x, + embed->y, ewl_object_current_w_get(o), ewl_object_current_h_get(o)); } else { - xwin = ecore_x_window_new(0, window->x, - window->y, + xwin = ecore_x_window_new(0, embed->x, + embed->y, ewl_object_current_w_get(o), ewl_object_current_h_get(o)); } =================================================================== RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_window.h,v retrieving revision 1.14 retrieving revision 1.15 diff -u -3 -r1.14 -r1.15 --- ewl_window.h 15 Mar 2006 04:03:48 -0000 1.14 +++ ewl_window.h 12 Apr 2006 06:41:55 -0000 1.15 @@ -50,8 +50,6 @@ Ewl_Window_Flags flags; /**< Flags indicating window properties */ - int x; /**< Screen relative horizontal position of window */ - int y; /**< Screen relative vertical position of window */ char *render; /**< The render engine in use */ Ewl_Dnd_Types dnd_types; /**< The dnd type */ @@ -69,7 +67,6 @@ char *ewl_window_class_get(Ewl_Window *win); void ewl_window_borderless_set(Ewl_Window *win); void ewl_window_move(Ewl_Window *win, int x, int y); -void ewl_window_position_get(Ewl_Window *win, int *x, int *y); void ewl_window_raise(Ewl_Window *win); void ewl_window_lower(Ewl_Window *win); void ewl_window_transient_for(Ewl_Window *win, Ewl_Window * forwin); |