Enlightenment CVS committal Author : rbdpngn Project : e17 Module : libs/etox
Dir : e17/libs/etox/test Modified Files: Etox_test.h etox_test.c panel.c selections.c Log Message: Fixed up the segv's in etox_test that I am experiencing, which was in etox_append_text. Also simplified the test program by removing the buggy slide-in code, it was too slow when testing over the network anyways. Let me know if you experience segfaults. =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/etox/test/Etox_test.h,v retrieving revision 1.8 retrieving revision 1.9 diff -u -3 -r1.8 -r1.9 --- Etox_test.h 22 Jul 2003 15:01:27 -0000 1.8 +++ Etox_test.h 26 Jul 2003 06:35:22 -0000 1.9 @@ -30,7 +30,6 @@ typedef struct _panel_button Panel_Button; struct _panel_button { - Evas *evas; Evas_Object *box; Evas_Object *label; }; =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/etox/test/etox_test.c,v retrieving revision 1.24 retrieving revision 1.25 diff -u -3 -r1.24 -r1.25 --- etox_test.c 22 Jul 2003 15:01:27 -0000 1.24 +++ etox_test.c 26 Jul 2003 06:35:22 -0000 1.25 @@ -242,14 +242,14 @@ Evas_Object *o_bg; Evas_Object *o_bg_etox; char msg[] = - " The Etox Test utility consists in a series\n" - " of test suites designed to exercise all of\n" - " the etox functions.\n" - " Informational messages will be displayed here,\n" - " the test text will be presented in the colored\n" - " rectangle below.\n" - " To start a test suite, select it from the\n" - " navigation panel on the left.\n"; + "The Etox Test utility consists in a series\n" + "of test suites designed to exercise all of\n" + "the etox functions.\n" + "Informational messages will be displayed here,\n" + "the test text will be presented in the colored\n" + "rectangle below.\n" + "To start a test suite, select it from the\n" + "navigation panel on the left.\n"; /* setup callbacks for events */ ecore_event_handler_add(ECORE_X_EVENT_WINDOW_DAMAGE, e_window_expose, @@ -335,11 +335,11 @@ clip_msg = evas_object_rectangle_add(evas); evas_object_show(clip_msg); evas_object_color_set(clip_msg, 255, 0, 255, 255); - evas_object_move(clip_msg, 40, 40); - evas_object_resize(clip_msg, 520, 140); + evas_object_move(clip_msg, 120, 10); + evas_object_resize(clip_msg, 520, 160); /* Create message etox */ - e_msg = etox_new_all(evas, 40, 40, 520, 140, 255, ETOX_ALIGN_LEFT); + e_msg = etox_new_all(evas, 120, 20, 520, 140, 255, ETOX_ALIGN_LEFT); etox_context_set_align(e_msg, ETOX_ALIGN_LEFT); etox_context_set_font(e_msg, "sinon", 14); etox_context_set_style(e_msg, "plain"); @@ -368,7 +368,7 @@ /* Create test etox */ e_test = - etox_new_all(evas, 40, 200, 520, 260, 255, ETOX_ALIGN_CENTER); + etox_new_all(evas, 50, 200, 520, 260, 255, ETOX_ALIGN_CENTER); etox_context_set_align(e_test, ETOX_ALIGN_CENTER); etox_context_set_font(e_test, "sinon", 14); etox_context_set_style(e_test, "plain"); @@ -439,14 +439,10 @@ evas_object_hide(o_txt_prev_box); evas_object_event_callback_add(o_txt_prev_box, EVAS_CALLBACK_MOUSE_DOWN, prev_test, NULL); - - e_slide_panel_in(NULL); } int main(int argc, char **argv) { - Evas_List *l; - ecore_init(); /* init X */ @@ -470,10 +466,11 @@ etox_free(e_msg); etox_free(e_test); - for (l = pbuttons; l; l = l->next) + while (pbuttons) { panel_button_free(pbuttons->data); + pbuttons = evas_list_remove(pbuttons, pbuttons->data); + } - evas_list_free(pbuttons); evas_free(evas); return 0; =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/etox/test/panel.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -3 -r1.7 -r1.8 --- panel.c 22 Jul 2003 15:01:27 -0000 1.7 +++ panel.c 26 Jul 2003 06:35:22 -0000 1.8 @@ -2,134 +2,9 @@ /* globals */ Evas_Object *o_panel; -Evas_Object *o_showpanel; -Evas_Object *o_hidepanel; Evas_Object *o_txt_paneltitle; Panel_Button *pbutton; -int panel_active = 0; - -int e_slide_panel_in(void *data) -{ - static double start = 0.0; - static int v = 0; - double duration = 0.5; - double val; - double px; - int w; - int y_offset = 40; - double ascent, descent; - Evas_List *l; - - panel_active = 1; - - if (v == 0) { - evas_object_layer_set(o_showpanel, 180); - start = get_time(); - v = 1; - } - - val = (get_time() - start) / duration; - - evas_object_image_size_get(o_panel, &w, NULL); - px = (w * sin(val * 0.5 * 3.141592654)) - w; - evas_object_move(o_panel, px, 0); - evas_object_move(o_txt_paneltitle, px + 4, 5); - /* Pack the buttons in the panel in reverse */ - for (l = pbuttons->last; l; l = l->prev) { - if (!(pbutton = l->data)) - return 0; - evas_object_move(pbutton->box, px + 5, win_h - y_offset); - evas_object_move(pbutton->label, px + 8, - win_h - y_offset + 2); - y_offset += 40; - ascent = evas_object_text_max_ascent_get(pbutton->label); - descent = evas_object_text_max_descent_get(pbutton->label); - evas_object_resize(pbutton->box, 108, ascent - descent + 4); - evas_object_image_fill_set(pbutton->box, 0, 0, 108, - ascent - descent + 4); - } - if (val >= 1.0) { - panel_active = 0; - return 0; - } - - return 1; - data = NULL; -} - -int e_slide_panel_out(void *data) -{ - static double start = 0.0; - static int v = 0; - double duration = 0.5; - double val; - double px; - int w; - int y_offset = 40; - double ascent, descent; - Evas_List *l; - - if (v == 0) { - evas_object_layer_set(o_showpanel, 1000); - start = get_time(); - v = 1; - } - - val = (get_time() - start) / duration; - - evas_object_image_size_get(o_panel, &w, NULL); - px = (w * sin((1.0 - val) * 0.5 * 3.141592654)) - w; - evas_object_move(o_panel, px, 0); - evas_object_move(o_txt_paneltitle, px + 4, 5); - /* Pack the buttons in the panel in reverse */ - for (l = pbuttons->last; l; l = l->prev) { - if (!(pbutton = l->data)) - return 0; - evas_object_move(pbutton->box, px + 5, win_h - y_offset); - evas_object_move(pbutton->label, px + 8, win_h - y_offset + 2); - y_offset += 40; - ascent = evas_object_text_max_ascent_get(pbutton->label); - descent = evas_object_text_max_descent_get(pbutton->label); - evas_object_resize(pbutton->box, 108, ascent - descent + 4); - evas_object_image_fill_set(pbutton->box, 0, 0, 108, - ascent - descent + 4); - } - if (val >= 1.0) { - panel_active = 0; - return 0; - } - - return 1; - data = NULL; -} - -void -show_panel(void *_data, Evas *_e, Evas_Object *_o, void *event_info) -{ - if (!panel_active) - e_slide_panel_in(NULL); - - return; - _data = NULL; - _e = NULL; - _o = NULL; - event_info = NULL; -} - -void -hide_panel(void *_data, Evas *_e, Evas_Object *_o, void *event_info) -{ - if (panel_active) - e_slide_panel_out(NULL); - - return; - _data = NULL; - _e = NULL; - _o = NULL; - event_info = NULL; -} - void setup_panel(Evas *_e) { int w; @@ -138,28 +13,14 @@ o_panel = evas_object_image_add(_e); evas_object_image_file_set(o_panel, IM "panel.png", IM "panel.png"); - o_showpanel = evas_object_rectangle_add(_e); - o_hidepanel = evas_object_rectangle_add(_e); - evas_object_color_set(o_showpanel, 0, 0, 0, 0); - evas_object_color_set(o_hidepanel, 0, 0, 0, 0); + evas_object_image_size_get(o_panel, &w, NULL); - if (!panel_active) - evas_object_move(o_panel, -w, 0); + evas_object_move(o_panel, 0, 0); evas_object_resize(o_panel, w, win_h); evas_object_image_fill_set(o_panel, 0, 0, w, win_h); evas_object_layer_set(o_panel, 200); - evas_object_resize(o_showpanel, 64, win_h); - if (panel_active) - evas_object_layer_set(o_showpanel, 180); - else - evas_object_layer_set(o_showpanel, 1000); - evas_object_move(o_hidepanel, 128, 0); - evas_object_resize(o_hidepanel, win_w - 128, win_h); - evas_object_layer_set(o_hidepanel, 1000); - evas_object_move(o_showpanel, 0, 0); + evas_object_show(o_panel); - evas_object_show(o_showpanel); - evas_object_show(o_hidepanel); /* Panel title */ o_txt_paneltitle = evas_object_text_add(_e); @@ -179,25 +40,17 @@ pbutton3 = panel_button(evas, "Callbacks", callback_tests()); pbuttons = evas_list_append(pbuttons, pbutton3); - e_slide_panel_out(NULL); - - /* Callbacks */ - evas_object_event_callback_add(o_showpanel, EVAS_CALLBACK_MOUSE_IN, show_panel, - NULL); - evas_object_event_callback_add(o_hidepanel, EVAS_CALLBACK_MOUSE_IN, hide_panel, - NULL); - } Panel_Button *panel_button(Evas *_e, char *_label, Evas_List *tests) { Evas_Object *o; + static int y = 200; /* * Create the new panel button's information */ pbutton = malloc(sizeof(Panel_Button)); - pbutton->evas = _e; pbutton->box = NULL; pbutton->label = NULL; @@ -209,6 +62,9 @@ evas_object_image_file_set(o, IM "panel_button1.png", IM "panel_button1.png"); evas_object_image_border_set(o, 3, 3, 3, 3); + evas_object_resize(o, 85, 30); + evas_object_image_fill_set(o, 0, 0, 85, 30); + evas_object_move(o, 10, y); evas_object_layer_set(o, 250); evas_object_show(o); pbutton->box = o; @@ -218,6 +74,7 @@ evas_object_text_text_set(o, _label); evas_object_color_set(o, 0, 0, 0, 160); evas_object_layer_set(o, 250); + evas_object_move(o, 15, y + 5); evas_object_show(o); pbutton->label = o; @@ -231,6 +88,8 @@ evas_object_event_callback_add(pbutton->label, EVAS_CALLBACK_MOUSE_DOWN, button_mouse_down, tests); + + y += 60; return pbutton; } =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/etox/test/selections.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- selections.c 23 Jul 2003 21:57:07 -0000 1.3 +++ selections.c 26 Jul 2003 06:35:22 -0000 1.4 @@ -100,6 +100,8 @@ etox_selection_set_color(selected2, 0, 0, 255, 255); } + etox_append_text(etox, "Well slap my ass and call me Sally!"); + ecore_main_loop_begin(); ecore_evas_shutdown(); ------------------------------------------------------- This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, E-commerce, Portals, and Forums are available now. Download today and enter to win an XBOX or Visual Studio .NET. http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01 _______________________________________________ enlightenment-cvs mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs