From: <enl...@li...> - 2001-09-06 14:24:17
|
Enlightenment CVS committal Author : smugg Project : e17 Module : libs/ewl Dir : e17/libs/ewl/src Modified Files: ewl_checkbutton.c ewl_entry.c ewl_entry.h ewl_radiobutton.c ewl_text.c ewl_text.h ewl_theme.c ewl_widget.c Log Message: * Changed a few function calls to match raster's changes to ebits. =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_checkbutton.c,v retrieving revision 1.11 retrieving revision 1.12 diff -u -3 -r1.11 -r1.12 --- ewl_checkbutton.c 2001/09/06 02:40:46 1.11 +++ ewl_checkbutton.c 2001/09/06 14:23:46 1.12 @@ -130,9 +130,9 @@ if (w->ebits_object) { if (cb->checked) - ebits_set_bit_state(w->ebits_object, "Check","clicked"); + ebits_set_named_bit_state(w->ebits_object, "Check","clicked"); else - ebits_set_bit_state(w->ebits_object, "Check", "normal"); + ebits_set_named_bit_state(w->ebits_object, "Check", "normal"); } DLEAVE_FUNCTION; =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_entry.c,v retrieving revision 1.15 retrieving revision 1.16 diff -u -3 -r1.15 -r1.16 --- ewl_entry.c 2001/09/06 01:35:30 1.15 +++ ewl_entry.c 2001/09/06 14:23:46 1.16 @@ -1,42 +1,18 @@ #include <Ewl.h> +void ewl_entry_init(Ewl_Entry * e); +void __ewl_entry_realize(Ewl_Widget * w, void *ev_data, void *user_data); +void __ewl_entry_focus_in(Ewl_Widget * w, void *ev_data, void *user_data); +void __ewl_entry_focus_out(Ewl_Widget * w, void *ev_data, void *user_data); +void __ewl_entry_key_down(Ewl_Widget * w, void *ev_data, void *user_data); +void __ewl_entry_key_up(Ewl_Widget * w, void *ev_data, void *user_data); +void __ewl_entry_mouse_down(Ewl_Widget * w, void *ev_data, void *user_data); +void __ewl_entry_mouse_up(Ewl_Widget * w, void *ev_data, void *user_data); +void __ewl_entry_theme_update(Ewl_Widget * w, void * ev_data, void * user_data); -static void __ewl_entry_init(Ewl_Widget * w); -static void __ewl_entry_realize(Ewl_Widget * w, void *ev_data, - void *user_data); -static void __ewl_entry_destroy(Ewl_Widget * w, void *ev_data, - void *user_data); -static void __ewl_entry_configure(Ewl_Widget * w, void *ev_data, - void *user_data); -static void __ewl_entry_key_down(Ewl_Widget * w, void *ev_data, - void *user_data); -static void __ewl_entry_key_up(Ewl_Widget * w, void *ev_data, - void *user_data); -static void __ewl_entry_mouse_down(Ewl_Widget * w, void *ev_data, - void *user_data); -static void __ewl_entry_mouse_up(Ewl_Widget * w, void *ev_data, - void *user_data); -static void __ewl_entry_select(Ewl_Widget * w, void *ev_data, - void *user_data); -static void __ewl_entry_unselect(Ewl_Widget * w, void *ev_data, - void *user_data); -static void __ewl_entry_theme_update(Ewl_Widget * w, void *ev_data, - void *user_data); - -static void __ewl_entry_delete_to_left(Ewl_Widget * w); -static void __ewl_entry_delete_to_right(Ewl_Widget * w); - -static void __ewl_entry_update_cursor(Ewl_Entry *e); -static void __ewl_entry_move_cursor_to_start(Ewl_Widget * w); -static void __ewl_entry_move_cursor_to_end(Ewl_Widget * w); -static void __ewl_entry_move_cursor_to_left(Ewl_Widget * w); -static void __ewl_entry_move_cursor_to_right(Ewl_Widget * w); -static void __ewl_entry_insert_text(Ewl_Widget * w, char *text); - - Ewl_Widget * -ewl_entry_new() +ewl_entry_new(void) { Ewl_Entry *e; @@ -44,68 +20,18 @@ e = NEW(Ewl_Entry, 1); if (!e) - DRETURN_PTR(NULL); - - memset(EWL_ENTRY(e), 0, sizeof(Ewl_Entry)); - __ewl_entry_init(EWL_WIDGET(e)); - - DRETURN_PTR(EWL_WIDGET(e)); -} - -static void -__ewl_entry_init(Ewl_Widget * widget) -{ - DENTER_FUNCTION; - DCHECK_PARAM_PTR("widget", widget); - - /* - * Initialize the inherited container fields - */ - ewl_widget_set_appearance(widget, "/appearance/entry/default"); - ewl_object_set_minimum_size(EWL_OBJECT(widget), 300, 16); - ewl_object_set_maximum_size(EWL_OBJECT(widget), MAX_W(widget), 16); - ewl_object_set_alignment(EWL_OBJECT(widget), EWL_ALIGNMENT_CENTER); - - /* - * Attach necessary callbacks - */ - ewl_callback_append(widget, EWL_CALLBACK_REALIZE, - __ewl_entry_realize, NULL); - ewl_callback_prepend(widget, EWL_CALLBACK_DESTROY, - __ewl_entry_destroy, NULL); - ewl_callback_append(widget, EWL_CALLBACK_CONFIGURE, - __ewl_entry_configure, NULL); - ewl_callback_append(widget, EWL_CALLBACK_KEY_DOWN, - __ewl_entry_key_down, NULL); - ewl_callback_append(widget, EWL_CALLBACK_KEY_UP, - __ewl_entry_key_up, NULL); - ewl_callback_append(widget, EWL_CALLBACK_MOUSE_DOWN, - __ewl_entry_mouse_down, NULL); - ewl_callback_append(widget, EWL_CALLBACK_MOUSE_UP, - __ewl_entry_mouse_up, NULL); - ewl_callback_append(widget, EWL_CALLBACK_SELECT, - __ewl_entry_select, NULL); - ewl_callback_append(widget, EWL_CALLBACK_UNSELECT, - __ewl_entry_unselect, NULL); - ewl_callback_append(widget, EWL_CALLBACK_THEME_UPDATE, - __ewl_entry_theme_update, NULL); + return NULL; - DLEAVE_FUNCTION; -} + memset(e, 0, sizeof(Ewl_Entry)); + ewl_entry_init(e); -static void -__ewl_entry_realize(Ewl_Widget * w, void *ev_data, void *user_data) -{ - DENTER_FUNCTION; - DCHECK_PARAM_PTR("w", w); - - __ewl_entry_theme_update(w, NULL, NULL); + e->text = ewl_text_new(); - DLEAVE_FUNCTION; + DRETURN_PTR(EWL_WIDGET(e)); } -static void -__ewl_entry_destroy(Ewl_Widget * w, void *ev_data, void *user_data) +void +ewl_entry_set_text(Ewl_Widget * w, char *t) { Ewl_Entry * e; @@ -113,142 +39,65 @@ DCHECK_PARAM_PTR("w", w); e = EWL_ENTRY(w); - - if (e->cursor) - { - ebits_hide(e->cursor); - ebits_unset_clip(e->cursor); - ebits_free(e->cursor); - } - FREE(w); + ewl_text_set_text(e->text, t); DLEAVE_FUNCTION; } -static void -__ewl_entry_configure(Ewl_Widget * w, void *ev_data, void *user_data) +char * +ewl_entry_get_text(Ewl_Widget * w) { - Ewl_Entry *e; + Ewl_Entry * e; DENTER_FUNCTION; - DCHECK_PARAM_PTR("w", w); + DCHECK_PARAM_PTR_RET("w", w, NULL); e = EWL_ENTRY(w); - - ewl_entry_set_cursor_pos(w, e->cursor_pos); - - __ewl_entry_theme_update(w, NULL, NULL); - DLEAVE_FUNCTION; + DRETURN_PTR(ewl_text_get_text(e->text)); } - -static void -__ewl_entry_key_down(Ewl_Widget * w, void *ev_data, void *user_data) -{ - Ev_Key_Down *ev; - DENTER_FUNCTION; - DCHECK_PARAM_PTR("w", w); - - ev = (Ev_Key_Down *) ev_data; - - if (!strcmp(ev->key, "Left")) { - __ewl_entry_move_cursor_to_left(w); - } else if (!strcmp(ev->key, "Right")) { - __ewl_entry_move_cursor_to_right(w); - } else if (!strcmp(ev->key, "Home")) { - __ewl_entry_move_cursor_to_start(w); - } else if (!strcmp(ev->key, "End")) { - __ewl_entry_move_cursor_to_end(w); - } else if (!strcmp(ev->key, "BackSpace")) { - __ewl_entry_delete_to_left(w); - } else if (!strcmp(ev->key, "Delete")) { - __ewl_entry_delete_to_right(w); - } else if (!strcmp(ev->key, "Return")) { - } else if (!strcmp(ev->key, "KP_Enter")) { - } else if (ev->compose && strlen(ev->compose) == 1) { - __ewl_entry_insert_text(w, ev->compose); - } - - DLEAVE_FUNCTION; -} - -static void -__ewl_entry_key_up(Ewl_Widget * w, void *ev_data, void *user_data) -{ - DENTER_FUNCTION; - - DCHECK_PARAM_PTR("w", w); - - DLEAVE_FUNCTION; -} - -static void -__ewl_entry_mouse_down(Ewl_Widget * w, void *ev_data, void *user_data) +void +ewl_entry_init(Ewl_Entry * e) { - Ev_Mouse_Down *ev; - Ewl_Entry *e; - double x, y, wi, h; - double px, py, pw, ph; - int i; + Ewl_Widget * w; DENTER_FUNCTION; - DCHECK_PARAM_PTR("w", w); + DCHECK_PARAM_PTR("e", e); - ev = (Ev_Mouse_Down *) ev_data; - e = EWL_ENTRY(w); - - if (ev->button == 1) { - ewl_text_get_letter_geometry_at(EWL_TEXT(e), ev->x, ev->y, - &x, &y, &wi, &h); - for (i = 0; i < strlen(EWL_TEXT(e)->text); i++) { - ewl_text_get_letter_geometry(EWL_TEXT(e), i, &px, &py, - &pw, &ph); - if (px == x && py == y && pw == wi && ph == h) { - ewl_entry_set_cursor_pos(w, i); - DRETURN; - } - } - ewl_entry_set_cursor_pos(w, - strlen(EWL_TEXT(e)->text)); - } else if (ev->button == 2) { - } else if (ev->button == 3) { - } + w = EWL_WIDGET(e); - printf("sdfhdfjksdfhjsdkdsf\n"); + ewl_box_init(EWL_BOX(w), EWL_ORIENTATION_HORIZONTAL); + ewl_widget_set_appearance(w, "/appearance/entry/default"); + ewl_object_set_minimum_size(EWL_OBJECT(w), 17, 17); + ewl_object_set_maximum_size(EWL_OBJECT(w), 1 << 30, 17); - DLEAVE_FUNCTION; -} - -static void -__ewl_entry_mouse_up(Ewl_Widget * w, void *ev_data, - void *user_data) -{ - DENTER_FUNCTION; - DCHECK_PARAM_PTR("w", w); + w->recursive = FALSE; - DLEAVE_FUNCTION; -} - -static void -__ewl_entry_select(Ewl_Widget * w, void *ev_data, void *user_data) -{ - Ewl_Entry * e; - - DENTER_FUNCTION; - DCHECK_PARAM_PTR("w", w); - - e = EWL_ENTRY(w); - - ebits_show(e->cursor); + /* Attach necessary callback mechanisms */ + ewl_callback_append(w, EWL_CALLBACK_REALIZE, + __ewl_entry_realize, NULL); + ewl_callback_append(w, EWL_CALLBACK_FOCUS_IN, + __ewl_entry_focus_in, NULL); + ewl_callback_append(w, EWL_CALLBACK_FOCUS_OUT, + __ewl_entry_focus_out, NULL); + ewl_callback_append(w, EWL_CALLBACK_KEY_DOWN, + __ewl_entry_key_down, NULL); + ewl_callback_append(w, EWL_CALLBACK_KEY_UP, + __ewl_entry_key_up, NULL); + ewl_callback_append(w, EWL_CALLBACK_MOUSE_DOWN, + __ewl_entry_mouse_down, NULL); + ewl_callback_append(w, EWL_CALLBACK_MOUSE_UP, + __ewl_entry_mouse_up, NULL); + ewl_callback_append(w, EWL_CALLBACK_THEME_UPDATE, + __ewl_entry_theme_update, NULL); DLEAVE_FUNCTION; } -static void -__ewl_entry_unselect(Ewl_Widget * w, void *ev_data, - void *user_data) +void +__ewl_entry_realize(Ewl_Widget * w, void *ev_data, void *user_data) { Ewl_Entry * e; @@ -257,277 +106,86 @@ e = EWL_ENTRY(w); - ebits_hide(e->cursor); + ewl_container_append_child(EWL_CONTAINER(w), e->text); + ewl_widget_show(e->text); DLEAVE_FUNCTION; } -static void -__ewl_entry_move_cursor_to_start(Ewl_Widget * w) -{ - DENTER_FUNCTION; - DCHECK_PARAM_PTR("w", w); - - if (!EWL_ENTRY(w)->cursor_pos) - DRETURN; - - ewl_entry_set_cursor_pos(w, 0); - DLEAVE_FUNCTION; -} - -static void -__ewl_entry_move_cursor_to_end(Ewl_Widget * w) +void +__ewl_entry_focus_in(Ewl_Widget * w, void *ev_data, void *user_data) { DENTER_FUNCTION; - DCHECK_PARAM_PTR("w", w); - if (strlen(EWL_TEXT(w)->text) <= EWL_ENTRY(w)->cursor_pos) - DRETURN; - - ewl_entry_set_cursor_pos(w, strlen(EWL_TEXT(w)-> text)); - DLEAVE_FUNCTION; } -static void -__ewl_entry_move_cursor_to_left(Ewl_Widget * w) +void +__ewl_entry_focus_out(Ewl_Widget * w, void *ev_data, void *user_data) { DENTER_FUNCTION; DCHECK_PARAM_PTR("w", w); - if (!EWL_ENTRY(w)->cursor_pos) - DRETURN; - - ewl_entry_set_cursor_pos(w, EWL_ENTRY(w)->cursor_pos - 1); - DLEAVE_FUNCTION; } -static void -__ewl_entry_move_cursor_to_right(Ewl_Widget * w) +void +__ewl_entry_key_down(Ewl_Widget * w, void *ev_data, void *user_data) { DENTER_FUNCTION; DCHECK_PARAM_PTR("w", w); - if (strlen(EWL_TEXT(w)->text) <= EWL_ENTRY(w)->cursor_pos) - DRETURN; - - ewl_entry_set_cursor_pos(w, EWL_ENTRY(w)->cursor_pos + 1); - DLEAVE_FUNCTION; } -static void -__ewl_entry_delete_to_left(Ewl_Widget * w) -{ - char *str = NULL; - - DENTER_FUNCTION; - DCHECK_PARAM_PTR("w", w); - - if (!ewl_entry_get_cursor_pos(w)) - DRETURN; - - str = ewl_entry_get_text(w); - strcpy(&(str[ewl_entry_get_cursor_pos(w) - 1]), - &(ewl_entry_get_text(w) - [ewl_entry_get_cursor_pos(w)])); - ewl_entry_set_text(w, str); - ewl_entry_set_cursor_pos(w, ewl_entry_get_cursor_pos(w) - 1); - IF_FREE(str); - - DLEAVE_FUNCTION; -} - -static void -__ewl_entry_delete_to_right(Ewl_Widget * w) +void +__ewl_entry_key_up(Ewl_Widget * w, void *ev_data, void *user_data) { - char *str = NULL; - DENTER_FUNCTION; DCHECK_PARAM_PTR("w", w); - if (!strlen(EWL_TEXT(w)->text) || - strlen(EWL_TEXT(w)->text) <= - ewl_entry_get_cursor_pos(w)) - DRETURN; - - str = ewl_entry_get_text(w); - strcpy(&(str[ewl_entry_get_cursor_pos(w)]), &ewl_entry_get_text(w) - [ewl_entry_get_cursor_pos(w) + 1]); - ewl_entry_set_text(w, str); - ewl_entry_set_cursor_pos(w, ewl_entry_get_cursor_pos(w)); - IF_FREE(str); - DLEAVE_FUNCTION; } -static void -__ewl_entry_insert_text(Ewl_Widget * w, char *text) -{ - char *str = NULL; - - DCHECK_PARAM_PTR("w", w); - DCHECK_PARAM_PTR("text", text); - - str = malloc(strlen(ewl_entry_get_text(w)) + strlen(text) + 1); - str[0] = 0; - strncat(str, ewl_entry_get_text(w), EWL_ENTRY(w)->cursor_pos); - strcat(str, text); - strcat(str, &ewl_entry_get_text(w)[EWL_ENTRY(w)->cursor_pos]); - ewl_entry_set_text(w, str); - ewl_entry_set_cursor_pos(w, - EWL_ENTRY(w)->cursor_pos + strlen(text)); - - DLEAVE_FUNCTION; -} - void -ewl_entry_set_cursor_pos(Ewl_Widget * w, int pos) +__ewl_entry_mouse_down(Ewl_Widget * w, void *ev_data, void *user_data) { - Ewl_Entry *e; - int l = 0, r = 0, t = 0, b = 0; - double x = 0, y = 0, wi = 0; - DENTER_FUNCTION; DCHECK_PARAM_PTR("w", w); - e = EWL_ENTRY(w); - - ebits_get_insets(w->ebits_object, &l, &r, &t, &b); - - if (strlen(EWL_TEXT(e)->text) > pos) - ewl_text_get_letter_geometry(EWL_TEXT(e), pos, &x, &y, &wi, 0); - else if (!strlen(EWL_TEXT(e)->text)) { - x = 0; - y = 0; - wi = 3; - } else { - ewl_text_get_letter_geometry(EWL_TEXT(e), pos - 1, &x, &y, - &wi, 0); - x += wi + 1; - wi = 3; - } - - if (e->cursor) - { - ebits_move(e->cursor, CURRENT_X(w) + x + l, CURRENT_Y(w) + y + t); - ebits_resize(e->cursor, wi + 4, CURRENT_H(w) - t - b); - } - - e->cursor_pos = pos; - DLEAVE_FUNCTION; } -int -ewl_entry_get_cursor_pos(Ewl_Widget * w) -{ - Ewl_Entry *e; - - DENTER_FUNCTION; - DCHECK_PARAM_PTR_RET("w", w, 0); - - e = EWL_ENTRY(w); - - DRETURN_INT(e->cursor_pos); -} - void -ewl_entry_set_text(Ewl_Widget * w, char *t) +__ewl_entry_mouse_up(Ewl_Widget * w, void *ev_data, void *user_data) { - Ewl_Entry *e; - DENTER_FUNCTION; DCHECK_PARAM_PTR("w", w); - e = EWL_ENTRY(w); - - ewl_text_set_text(EWL_TEXT(e), t); - DLEAVE_FUNCTION; } -char * -ewl_entry_get_text(Ewl_Widget * w) +void +__ewl_entry_theme_update(Ewl_Widget * w, void * ev_data, void * user_data) { - Ewl_Entry *e; - - DENTER_FUNCTION; - DCHECK_PARAM_PTR_RET("w", w, NULL); - - e = EWL_ENTRY(w); - - DRETURN_PTR(strdup(EWL_TEXT(e)->text)); -} - -static void -__ewl_entry_theme_update(Ewl_Widget * w, void *ev_data, void *user_data) -{ - Ewl_Entry *e; - char *v; + Ewl_Entry * e; + char * font, * style; + int size; DENTER_FUNCTION; DCHECK_PARAM_PTR("w", w); - - /* Don't want to update anything if the widget isn't realized. */ - if (!REALIZED(w)) - DRETURN; e = EWL_ENTRY(w); - - v = ewl_theme_data_get(w, "cursor/visible"); - - if (v && !strncasecmp(v, "yes", 3)) - { - char *i; - - i = ewl_theme_image_get(w, "cursor"); - if (i) - { - if (e->cursor) - { - ebits_hide(e->cursor); - ebits_unset_clip(e->cursor); - ebits_free(e->cursor); - } + font = ewl_theme_data_get(w,"/appearance/entry/default/text/font"); + size = ewl_theme_data_get(w,"/appearance/entry/default/text/font_size"); + style = ewl_theme_data_get(w,"/appearance/entry/default/text/style"); - e->cursor = ebits_load(i); + if (font) ewl_text_set_font(e->text, font); + if (size) ewl_text_set_font_size(e->text, size); + if (style) ewl_text_set_style(e->text, style); - if (e->cursor) - { - ebits_add_to_evas(e->cursor, w->evas); - ebits_set_layer(e->cursor, LAYER(e->cursor) +2); - ebits_set_clip(e->cursor, w->fx_clip_box); - - ebits_show(e->cursor); - - } - } - } - - if (e) - { - void * t; - - t = ewl_theme_data_get(w, "text/font"); - ewl_text_set_font(EWL_TEXT(e), t); - t = ewl_theme_data_get(w, "text/style"); - ewl_text_set_style(EWL_TEXT(e), t); - t = ewl_theme_data_get(w, "text/font_size"); - ewl_text_set_font_size(EWL_TEXT(e), (int)(t)); - } - - /* Finally comfigure the widget to update the changes */ - ewl_widget_configure(w); - - DLEAVE_FUNCTION; -} - -static void -__ewl_entry_update_cursor(Ewl_Entry *e) -{ + DLEAVE_FUNCTION; } =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_entry.h,v retrieving revision 1.6 retrieving revision 1.7 diff -u -3 -r1.6 -r1.7 --- ewl_entry.h 2001/09/06 01:35:30 1.6 +++ ewl_entry.h 2001/09/06 14:23:47 1.7 @@ -1,12 +1,4 @@ -/*\ -|*| -|*| The entry widget is used to get input from a user. -|*| -\*/ - - - #ifndef __EWL_ENTRY_H__ #define __EWL_ENTRY_H__ @@ -14,15 +6,13 @@ #define EWL_ENTRY(entry) ((Ewl_Entry *) entry) struct _ewl_entry { - Ewl_Text text; - Ebits_Object cursor; - int cursor_pos; + Ewl_Box box; + + Ewl_Widget * text; }; -Ewl_Widget *ewl_entry_new(); +Ewl_Widget *ewl_entry_new(void); void ewl_entry_set_text(Ewl_Widget * w, char *t); char *ewl_entry_get_text(Ewl_Widget * w); -void ewl_entry_set_cursor_pos(Ewl_Widget * w, int p); -int ewl_entry_get_cursor_pos(Ewl_Widget * w); -#endif /* __EWL_ENTRY_H__ */ +#endif /* __EWL_ENTRY_H__ */ =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_radiobutton.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -3 -r1.8 -r1.9 --- ewl_radiobutton.c 2001/09/06 02:40:46 1.8 +++ ewl_radiobutton.c 2001/09/06 14:23:47 1.9 @@ -135,9 +135,9 @@ if (w->ebits_object) { if (cb->checked) - ebits_set_bit_state(w->ebits_object, "Check","clicked"); + ebits_set_named_bit_state(w->ebits_object, "Check","clicked"); else - ebits_set_bit_state(w->ebits_object, "Check", "normal"); + ebits_set_named_bit_state(w->ebits_object, "Check", "normal"); } DLEAVE_FUNCTION; =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_text.c,v retrieving revision 1.16 retrieving revision 1.17 diff -u -3 -r1.16 -r1.17 --- ewl_text.c 2001/09/06 01:35:30 1.16 +++ ewl_text.c 2001/09/06 14:23:47 1.17 @@ -2,57 +2,54 @@ #include <Ewl.h> #include <Etox.h> -static void __ewl_text_init(Ewl_Widget * widget); -static void __ewl_text_realize(Ewl_Widget * w, void *ev_data, - void *user_data); -static void __ewl_text_destroy(Ewl_Widget * w, void *ev_data, - void *user_data); -static void __ewl_text_configure(Ewl_Widget * w, void *ev_data, - void *user_data); +void ewl_text_init(Ewl_Text * t); +static void __ewl_text_realize(Ewl_Widget * w, void *ev_data, void *user_data); +static void __ewl_text_destroy(Ewl_Widget * w, void *ev_data, void *user_data); +static void __ewl_text_configure(Ewl_Widget * w, void *ev_data,void *user_data); + #define START_W 2048 #define START_H 2048 Ewl_Widget * ewl_text_new() { - Ewl_Text *text = NULL; + Ewl_Text *t; DENTER_FUNCTION; - text = NEW(Ewl_Text, 1); + t = NEW(Ewl_Text, 1); - __ewl_text_init(EWL_WIDGET(text)); + memset(t, 0, sizeof(Ewl_Text)); + ewl_text_init(t); - DRETURN_PTR(EWL_WIDGET(text)); + DRETURN_PTR(EWL_WIDGET(t)); } -static void -__ewl_text_init(Ewl_Widget * widget) +void +ewl_text_init(Ewl_Text * t) { - Ewl_Text *text = EWL_TEXT(widget); + Ewl_Widget * w; DENTER_FUNCTION; - DCHECK_PARAM_PTR("widget", widget); + DCHECK_PARAM_PTR("t", t); - /* - * Clear and initialize the text structure - */ - memset(text, 0, sizeof(Ewl_Text)); - ewl_widget_init(widget, "/appearance/text/default"); + w = EWL_WIDGET(t); + + ewl_widget_init(w, "/appearance/text/default"); - text->font = strdup("borzoib"); - text->font_size = 15; - text->text = strdup(""); - text->color = etox_color_new(); + t->font = strdup("borzoib"); + t->font_size = 15; + t->text = strdup(""); + t->color = etox_color_new(); /* * Set up appropriate callbacks for specific events */ - ewl_callback_append(widget, EWL_CALLBACK_REALIZE, + ewl_callback_append(w, EWL_CALLBACK_REALIZE, __ewl_text_realize, NULL); - ewl_callback_append(widget, EWL_CALLBACK_DESTROY, __ewl_text_destroy, + ewl_callback_append(w, EWL_CALLBACK_DESTROY, __ewl_text_destroy, NULL); - ewl_callback_append(widget, EWL_CALLBACK_CONFIGURE, __ewl_text_configure, + ewl_callback_append(w, EWL_CALLBACK_CONFIGURE, __ewl_text_configure, NULL); DLEAVE_FUNCTION; @@ -174,13 +171,16 @@ } void -ewl_text_set_text(Ewl_Text * t, char *text) +ewl_text_set_text(Ewl_Widget * w, char *text) { + Ewl_Text * t; char * ot; DENTER_FUNCTION; - DCHECK_PARAM_PTR("t", t); + DCHECK_PARAM_PTR("w", w); + t = EWL_TEXT(w); + ot = t->text; if (text == NULL) @@ -206,21 +206,29 @@ } char * -ewl_text_get_text(Ewl_Text * t) +ewl_text_get_text(Ewl_Widget * w) { + Ewl_Text * t; + DENTER_FUNCTION; - DCHECK_PARAM_PTR_RET("t", t, NULL); + DCHECK_PARAM_PTR_RET("w", w, NULL); + t = EWL_TEXT(w); + DRETURN_PTR(t->text ? strdup(t->text) : NULL); } void -ewl_text_set_font(Ewl_Text * t, char *f) +ewl_text_set_font(Ewl_Widget * w, char *f) { + Ewl_Text * t; + DENTER_FUNCTION; - DCHECK_PARAM_PTR("t", t); + DCHECK_PARAM_PTR("w", w); DCHECK_PARAM_PTR("f", f); + t = EWL_TEXT(w); + IF_FREE(t->font); t->font = strdup(f); @@ -231,19 +239,27 @@ } char * -ewl_text_get_font(Ewl_Text * t) +ewl_text_get_font(Ewl_Widget * w) { + Ewl_Text * t; + DENTER_FUNCTION; - DCHECK_PARAM_PTR_RET("t", t, NULL); + DCHECK_PARAM_PTR_RET("w", w, NULL); + t = EWL_TEXT(w); + DRETURN_PTR(t->font ? strdup(t->font) : NULL); } void -ewl_text_set_font_size(Ewl_Text * t, int s) +ewl_text_set_font_size(Ewl_Widget * w, int s) { + Ewl_Text * t; + DENTER_FUNCTION; - DCHECK_PARAM_PTR("t", t); + DCHECK_PARAM_PTR("w", w); + + t = EWL_TEXT(w); t->font_size = s; @@ -253,30 +269,42 @@ } int -ewl_text_get_font_size(Ewl_Text * t) +ewl_text_get_font_size(Ewl_Widget * w) { + Ewl_Text * t; + DENTER_FUNCTION; - DCHECK_PARAM_PTR_RET("t", t, 0); + DCHECK_PARAM_PTR_RET("w", w, 0); + t = EWL_TEXT(w); + DRETURN_INT(t->font_size); } void -ewl_text_set_color(Ewl_Text * t, int r, int g, int b, int a) +ewl_text_set_color(Ewl_Widget * w, int r, int g, int b, int a) { + Ewl_Text * t; + DENTER_FUNCTION; - DCHECK_PARAM_PTR("t", t); + DCHECK_PARAM_PTR("w", w); + t = EWL_TEXT(w); + etox_color_set_member(t->color, "EWL", r, g, b, a); DLEAVE_FUNCTION; } void -ewl_text_get_color(Ewl_Text * t, int *r, int *g, int *b, int *a) +ewl_text_get_color(Ewl_Widget * w, int *r, int *g, int *b, int *a) { + Ewl_Text * t; + DENTER_FUNCTION; - DCHECK_PARAM_PTR("t", t); + DCHECK_PARAM_PTR("w", w); + + t = EWL_TEXT(w); etox_color_get_member(t->color, "EWL", r, g, b, a); @@ -284,11 +312,15 @@ } void -ewl_text_set_style(Ewl_Text * t, char * s) +ewl_text_set_style(Ewl_Widget * w, char * s) { + Ewl_Text * t; + DENTER_FUNCTION; - DCHECK_PARAM_PTR("t", t); + DCHECK_PARAM_PTR("w", w); + t = EWL_TEXT(w); + if (!s || (s && !strlen(s))) t->style = etox_style_new("Default"); else @@ -298,11 +330,15 @@ } void -ewl_text_get_text_geometry(Ewl_Text * t, double *xx, double *yy, +ewl_text_get_text_geometry(Ewl_Widget * w, double *xx, double *yy, double *ww, double *hh) { + Ewl_Text * t; + DENTER_FUNCTION; - DCHECK_PARAM_PTR("t", t); + DCHECK_PARAM_PTR("w", w); + + t = EWL_TEXT(w); etox_get_geometry(t->tox, xx, yy, ww, hh); @@ -310,23 +346,31 @@ } void -ewl_text_get_letter_geometry(Ewl_Text * t, int i, +ewl_text_get_letter_geometry(Ewl_Widget * w, int i, double *xx, double *yy, double *ww, double *hh) { + Ewl_Text * t; + DENTER_FUNCTION; - DCHECK_PARAM_PTR("t", t); + DCHECK_PARAM_PTR("w", w); + t = EWL_TEXT(w); + etox_get_at(t->tox, i, xx, yy, ww, hh); DLEAVE_FUNCTION; } void -ewl_text_get_letter_geometry_at(Ewl_Text * t, double x, double y, +ewl_text_get_letter_geometry_at(Ewl_Widget * w, double x, double y, double *tx, double *ty, double *tw, double *th) { + Ewl_Text * t; + DENTER_FUNCTION; - DCHECK_PARAM_PTR("t", t); + DCHECK_PARAM_PTR("w", w); + + t = EWL_TEXT(w); etox_get_at_position(t->tox, x, y, tx, ty, tw, th); @@ -334,14 +378,16 @@ } void -ewl_text_set_alignment(Ewl_Text * t, Ewl_Alignment a) +ewl_text_set_alignment(Ewl_Widget * w, Ewl_Alignment a) { + Ewl_Text * t; Etox_Align_Type h_align, v_align; DENTER_FUNCTION; - DCHECK_PARAM_PTR("t", t); + DCHECK_PARAM_PTR("w", w); - EWL_OBJECT(t)->align = a; + t = EWL_TEXT(w); + EWL_OBJECT(w)->align = a; if (!t->tox) DRETURN; =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_text.h,v retrieving revision 1.7 retrieving revision 1.8 diff -u -3 -r1.7 -r1.8 --- ewl_text.h 2001/09/06 01:35:30 1.7 +++ ewl_text.h 2001/09/06 14:23:47 1.8 @@ -18,24 +18,22 @@ }; Ewl_Widget *ewl_text_new(); -void ewl_text_init(Ewl_Text * widget); -void ewl_text_set_text(Ewl_Text * etext, char *text); -char *ewl_text_get_text(Ewl_Text * text); -void ewl_text_set_font(Ewl_Text * text, char *font); -char *ewl_text_get_font(Ewl_Text * text); -void ewl_text_set_font_size(Ewl_Text * text, int size); -int ewl_text_get_font_size(Ewl_Text * text); -void ewl_text_set_color(Ewl_Text * widget, int r, int g, int b, int a); -void ewl_text_get_color(Ewl_Text * widget, int *r, int *g, int *b, - int *a); -void ewl_text_get_text_geometry(Ewl_Text * widget, double *x, double *y, - double *w, double *h); -void ewl_text_set_style(Ewl_Text * w, char * s); -void ewl_text_get_letter_geometry(Ewl_Text * t, int index, double *x, - double *y, double *w, double *h); -void ewl_text_get_letter_geometry_at(Ewl_Text * t, double x, double y, +void ewl_text_set_text(Ewl_Widget * w, char *text); +char *ewl_text_get_text(Ewl_Widget * w); +void ewl_text_set_font(Ewl_Widget * w, char *font); +char *ewl_text_get_font(Ewl_Widget * w); +void ewl_text_set_font_size(Ewl_Widget * w, int size); +int ewl_text_get_font_size(Ewl_Widget * w); +void ewl_text_set_color(Ewl_Widget * w, int r, int g, int b, int a); +void ewl_text_get_color(Ewl_Widget * w, int *r, int *g, int *b, int *a); +void ewl_text_get_text_geometry(Ewl_Widget * w, double *xx, double *yy, + double *ww, double *hh); +void ewl_text_set_style(Ewl_Widget * w, char * s); +void ewl_text_get_letter_geometry(Ewl_Widget * w, int index, double *xx, + double *yy, double *ww, double *hh); +void ewl_text_get_letter_geometry_at(Ewl_Widget * w, double x, double y, double *tx, double *ty, double *tw, double *th); -void ewl_text_set_alignment(Ewl_Text * t, Ewl_Alignment a); +void ewl_text_set_alignment(Ewl_Widget * w, Ewl_Alignment a); #endif =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_theme.c,v retrieving revision 1.12 retrieving revision 1.13 diff -u -3 -r1.12 -r1.13 --- ewl_theme.c 2001/09/06 01:35:30 1.12 +++ ewl_theme.c 2001/09/06 14:23:47 1.13 @@ -41,9 +41,9 @@ "/appearance/entry/default/base", "/appearance/entry/default/base.bits.db", "/appearance/entry/default/base/visible", "yes", - "/appearance/entry/cursor/base", - "/appearance/entry/cursor/base.bits.db", - "/appearance/entry/cursor/base/visible", "yes", + "/appearance/entry/default/cursor", + "/appearance/entry/default/cursor.bits.db", + "/appearance/entry/default/cursor/visible", "yes", "/appearance/entry/default/text/font", "borzoib", "/appearance/entry/default/text/font_size", (void *) 8, "/appearance/entry/default/text/style", "Default", =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_widget.c,v retrieving revision 1.11 retrieving revision 1.12 diff -u -3 -r1.11 -r1.12 --- ewl_widget.c 2001/09/06 01:35:30 1.11 +++ ewl_widget.c 2001/09/06 14:23:47 1.12 @@ -244,9 +244,23 @@ if (!w->ebits_object) DRETURN; - ebits_set_bit_state(w->ebits_object, "Base", state); + ebits_set_named_bit_state(w->ebits_object, "Base", state); DRETURN; +} + +void +ewl_widget_set_parent(Ewl_Widget * w, Ewl_Widget * p) +{ + DENTER_FUNCTION; + DCHECK_PARAM_PTR("w", w); + DCHECK_PARAM_PTR("p", p); + + w->parent = p; + + ewl_callback_call(w, EWL_CALLBACK_REPARENT); + + DLEAVE_FUNCTION; } /* |