Enlightenment CVS committal

Author  : dj2
Project : e17
Module  : libs/ewl

Dir     : e17/libs/ewl/src/bin/tests


Modified Files:
        ewl_text_editor.c 


Log Message:
- update the text editor test

===================================================================
RCS file: /cvs/e/e17/libs/ewl/src/bin/tests/ewl_text_editor.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -3 -r1.13 -r1.14
--- ewl_text_editor.c   8 Sep 2006 07:08:44 -0000       1.13
+++ ewl_text_editor.c   11 Sep 2006 04:21:42 -0000      1.14
@@ -34,21 +34,23 @@
 static int create_test(Ewl_Container *box);
 
 static void ete_style_apply(Ewl_Text *t, Ewl_Text_Style s);
-static void ete_cb_underline(Ewl_Widget *w, void *ev, void *data);
-static void ete_cb_double_underline(Ewl_Widget *w, void *ev, void *data);
+static void ete_align_apply(unsigned int align);
+static void ete_font_apply(char *font);
+
+static void ete_cb_styles_changed(Ewl_Widget *w, void *ev, void *data);
 static void ete_cb_strikethrough(Ewl_Widget *w, void *ev, void *data);
-static void ete_cb_shadow(Ewl_Widget *w, void *ev, void *data);
-static void ete_cb_soft_shadow(Ewl_Widget *w, void *ev, void *data);
-static void ete_cb_far_shadow(Ewl_Widget *w, void *ev, void *data);
-static void ete_cb_glow(Ewl_Widget *w, void *ev, void *data);
-static void ete_cb_outline(Ewl_Widget *w, void *ev, void *data);
-static void ete_cb_none(Ewl_Widget *w, void *ev, void *data);
+static void ete_cb_underline(Ewl_Widget *w, void *ev, void *data);
+static void ete_cb_justify_left(Ewl_Widget *w, void *ev, void *data);
+static void ete_cb_justify_center(Ewl_Widget *w, void *ev, void *data);
+static void ete_cb_justify_right(Ewl_Widget *w, void *ev, void *data);
 static void ete_cb_font_size(Ewl_Widget *w, void *ev, void *data);
+static void ete_cb_bold(Ewl_Widget *w, void *ev, void *data);
+static void ete_cb_italic(Ewl_Widget *w, void *ev, void *data);
+
 static void ete_cb_fetch(Ewl_Widget *w, void *ev, void *data);
 static void ete_cb_set(Ewl_Widget *w, void *ev, void *data);
 static void ete_cb_load(Ewl_Widget *w, void *ev, void *data);
 static void ete_cb_clear(Ewl_Widget *w, void *ev, void *data);
-static void ete_cb_key_down(Ewl_Widget *w, void *ev, void *data);
 
 void 
 test_info(Ewl_Test *test)
@@ -73,27 +75,54 @@
 
        {
                int i;
-               Control btns [] = {
-                               {"U",  ete_cb_underline},
-                               {"DU", ete_cb_double_underline},
-                               {"S",  ete_cb_strikethrough},
-                               {"SH", ete_cb_shadow},
-                               {"SS", ete_cb_soft_shadow},
-                               {"FS", ete_cb_far_shadow},
-                               {"G",  ete_cb_glow},
-                               {"O",  ete_cb_outline},
-                               {"N",  ete_cb_none},
-                               {NULL, NULL}
-                       };
+               Ewl_Model *model;
+               Ewl_View *view;
+               Ecore_List *styles;
 
-               for (i = 0; btns[i].name != NULL; i++) 
+               struct
+               {
+                       char *icon;
+                       void (*cb)(Ewl_Widget *w, void *ev, void *data);
+               } align[] = {
+                       {EWL_ICON_FORMAT_JUSTIFY_LEFT, ete_cb_justify_left},
+                       {EWL_ICON_FORMAT_JUSTIFY_CENTER, ete_cb_justify_center},
+                       {EWL_ICON_FORMAT_JUSTIFY_RIGHT, ete_cb_justify_right},
+                       {EWL_ICON_FORMAT_TEXT_BOLD, ete_cb_bold},
+                       {EWL_ICON_FORMAT_TEXT_ITALIC, ete_cb_italic},
+                       {EWL_ICON_FORMAT_TEXT_UNDERLINE, ete_cb_underline},
+                       {EWL_ICON_FORMAT_TEXT_STRIKETHROUGH, 
ete_cb_strikethrough},
+                       {NULL, NULL}
+               };
+               
+               styles = ecore_list_new();
+               ecore_list_append(styles, "None");
+               ecore_list_append(styles, "Shadow");
+               ecore_list_append(styles, "Soft Shadow");
+               ecore_list_append(styles, "Far Shadow");
+               ecore_list_append(styles, "Glow");
+               ecore_list_append(styles, "Outline");
+
+               model = ewl_model_ecore_list_get();
+               view = ewl_label_view_get();
+               o = ewl_combo_new();
+               ewl_combo_model_set(EWL_COMBO(o), model);
+               ewl_combo_view_set(EWL_COMBO(o), view);
+               ewl_combo_data_set(EWL_COMBO(o), styles);
+               ewl_combo_selected_set(EWL_COMBO(o), 0);
+               ewl_container_child_append(EWL_CONTAINER(hbox), o);
+               ewl_callback_append(o, EWL_CALLBACK_VALUE_CHANGED, 
+                                               ete_cb_styles_changed, NULL);
+               ewl_widget_show(o);
+
+               for (i = 0; align[i].icon != NULL; i++)
                {
                        o = ewl_button_new();
-                       ewl_button_label_set(EWL_BUTTON(o), btns[i].name);
+                       ewl_button_image_set(EWL_BUTTON(o), 
+                               ewl_icon_theme_icon_path_get(align[i].icon, 
EWL_ICON_SIZE_SMALL),
+                               align[i].icon);
                        ewl_container_child_append(EWL_CONTAINER(hbox), o);
-                       ewl_object_fill_policy_set(EWL_OBJECT(o),
-                                       
EWL_FLAG_FILL_HSHRINK|EWL_FLAG_FILL_VSHRINK);
-                       ewl_callback_append(o, EWL_CALLBACK_CLICKED, 
btns[i].cb, NULL);
+                       ewl_object_fill_policy_set(EWL_OBJECT(o), 
EWL_FLAG_FILL_SHRINK);
+                       ewl_callback_append(o, EWL_CALLBACK_CLICKED, 
align[i].cb, NULL);
                        ewl_widget_show(o);
                }
 
@@ -140,7 +169,6 @@
        ewl_text_outline_color_set(EWL_TEXT(o), 200, 200, 200, 200);
        ewl_text_strikethrough_color_set(EWL_TEXT(o), 0, 0, 0, 255);
        ewl_text_glow_color_set(EWL_TEXT(o), 0, 255, 0, 128);
-       ewl_callback_append(o, EWL_CALLBACK_KEY_DOWN, ete_cb_key_down, NULL);
        ewl_widget_show(o);
 
        hbox = ewl_hbox_new();
@@ -205,109 +233,172 @@
                ewl_text_styles_set(t, styles);
 }
 
-static void
-ete_cb_underline(Ewl_Widget *w __UNUSED__, void *ev __UNUSED__, 
-                                               void *data __UNUSED__)
+static void 
+ete_cb_styles_changed(Ewl_Widget *w, void *ev __UNUSED__, 
+                                       void *data __UNUSED__)
 {
        Ewl_Widget *entry;
+       int idx;
+       char *str;
+
+       idx = ewl_combo_selected_get(EWL_COMBO(w));
+       str = ecore_list_goto_index(ewl_combo_data_get(EWL_COMBO(w)), 
+                                       ewl_combo_selected_get(EWL_COMBO(w)));
 
        entry = ewl_widget_name_find("entry");
-       ete_style_apply(EWL_TEXT(entry), EWL_TEXT_STYLE_UNDERLINE);
+       if (!strcmp(str, "None"))
+               ete_style_apply(EWL_TEXT(entry), EWL_TEXT_STYLE_NONE);
+
+       else if (!strcmp(str, "Shadow"))
+               ete_style_apply(EWL_TEXT(entry), EWL_TEXT_STYLE_SHADOW);
+
+       else if (!strcmp(str, "Soft Shadow"))
+               ete_style_apply(EWL_TEXT(entry), EWL_TEXT_STYLE_SOFT_SHADOW);
+
+       else if (!strcmp(str, "Far Shadow"))
+               ete_style_apply(EWL_TEXT(entry), EWL_TEXT_STYLE_FAR_SHADOW);
+
+       else if (!strcmp(str, "Glow"))
+               ete_style_apply(EWL_TEXT(entry), EWL_TEXT_STYLE_GLOW);
+
+       else if (!strcmp(str, "Outline"))
+               ete_style_apply(EWL_TEXT(entry), EWL_TEXT_STYLE_OUTLINE);
+
+
 }
 
 static void
-ete_cb_double_underline(Ewl_Widget *w __UNUSED__, void *ev __UNUSED__,
-                                               void *data __UNUSED__)
+ete_cb_strikethrough(Ewl_Widget *w, void *ev, void *data)
 {
        Ewl_Widget *entry;
 
        entry = ewl_widget_name_find("entry");
-       ete_style_apply(EWL_TEXT(entry), EWL_TEXT_STYLE_DOUBLE_UNDERLINE);
+       ete_style_apply(EWL_TEXT(entry), EWL_TEXT_STYLE_STRIKETHROUGH);
 }
 
 static void
-ete_cb_strikethrough(Ewl_Widget *w __UNUSED__, void *ev __UNUSED__, 
-                                               void *data __UNUSED__)
+ete_cb_underline(Ewl_Widget *w, void *ev, void *data)
 {
        Ewl_Widget *entry;
 
        entry = ewl_widget_name_find("entry");
-       ete_style_apply(EWL_TEXT(entry), EWL_TEXT_STYLE_STRIKETHROUGH);
+       ete_style_apply(EWL_TEXT(entry), EWL_TEXT_STYLE_UNDERLINE);
 }
 
 static void
-ete_cb_shadow(Ewl_Widget *w __UNUSED__, void *ev __UNUSED__,
-                                       void *data __UNUSED__)
-{ 
-       Ewl_Widget *entry;
+ete_align_apply(unsigned int align)
+{
+       Ewl_Widget *w;
+       Ewl_Text *t;
 
-       entry = ewl_widget_name_find("entry");
-       ete_style_apply(EWL_TEXT(entry), EWL_TEXT_STYLE_SHADOW);
+       w = ewl_widget_name_find("entry");
+       t = EWL_TEXT(w);
+
+       if (ewl_text_has_selection(t))
+       {
+               Ewl_Text_Trigger *selection;
+               unsigned int cursor_pos;
+
+               cursor_pos = ewl_text_cursor_position_get(t);
+
+               selection = ewl_text_selection_get(t);
+               ewl_text_cursor_position_set(t,
+                               ewl_text_trigger_start_pos_get(selection));
+
+               ewl_text_align_apply(t, align,
+                               ewl_text_trigger_length_get(selection));
+
+               ewl_text_cursor_position_set(t, cursor_pos);
+       }
+       else
+               ewl_text_align_set(t, align);
 }
 
 static void
-ete_cb_soft_shadow(Ewl_Widget *w __UNUSED__, void *ev __UNUSED__,
+ete_cb_justify_left(Ewl_Widget *w __UNUSED__, void *ev __UNUSED__, 
                                                void *data __UNUSED__)
 {
-       Ewl_Widget *entry;
-
-       entry = ewl_widget_name_find("entry");
-       ete_style_apply(EWL_TEXT(entry), EWL_TEXT_STYLE_SOFT_SHADOW);
+       ete_align_apply(EWL_FLAG_ALIGN_LEFT);
 }
 
 static void
-ete_cb_far_shadow(Ewl_Widget *w __UNUSED__, void *ev __UNUSED__,
+ete_cb_justify_center(Ewl_Widget *w __UNUSED__, void *ev __UNUSED__, 
                                                void *data __UNUSED__)
 {
-       Ewl_Widget *entry;
-
-       entry = ewl_widget_name_find("entry");
-       ete_style_apply(EWL_TEXT(entry), EWL_TEXT_STYLE_FAR_SHADOW);
+       ete_align_apply(EWL_FLAG_ALIGN_CENTER);
 }
 
 static void
-ete_cb_glow(Ewl_Widget *w __UNUSED__, void *ev __UNUSED__, 
+ete_cb_justify_right(Ewl_Widget *w __UNUSED__, void *ev __UNUSED__, 
                                                void *data __UNUSED__)
 {
-       Ewl_Widget *entry;
-
-       entry = ewl_widget_name_find("entry");
-       ete_style_apply(EWL_TEXT(entry), EWL_TEXT_STYLE_GLOW);
+       ete_align_apply(EWL_FLAG_ALIGN_RIGHT);
 }
 
 static void
-ete_cb_none(Ewl_Widget *w __UNUSED__, void *ev __UNUSED__,
-                                       void *data __UNUSED__)
+ete_font_apply(char *font)
 {
-       Ewl_Widget *entry;
+       Ewl_Widget *w;
+       Ewl_Text *t;
+       char *of;
 
-       entry = ewl_widget_name_find("entry");
-       if (ewl_text_has_selection(EWL_TEXT(entry)))
+       w = ewl_widget_name_find("entry");
+       t = EWL_TEXT(w);
+
+       if (ewl_text_has_selection(EWL_TEXT(t)))
+               of = ewl_text_font_get(EWL_TEXT(t),
+                               ewl_text_trigger_start_pos_get(
+                                       ewl_text_selection_get(EWL_TEXT(t))));
+       else
+               of = ewl_text_font_get(EWL_TEXT(t), 
+                               ewl_text_cursor_position_get(EWL_TEXT(t)));
+
+       if (!strcmp(of, "Vera/Bold-Italic"))
+       {
+               if (!strcmp(font, "Vera/Bold"))
+                       font = "Vera/Italic";
+               else if (!strcmp(font, "Vera/Italic"))
+                       font = "Vera/Bold";
+       }
+       else if ((!strcmp(of, "Vera/Italic") && !strcmp(font, "Vera/Bold")) 
+                       || ((!strcmp(of, "Vera/Bold") && (!strcmp(font, 
"Vera/Italic")))))
+               font = "Vera/Bold-Italic";
+
+       else if (!strcmp(of, font))
+               font = "Vera";
+
+       if (ewl_text_has_selection(t))
        {
-               unsigned int cursor_pos;
                Ewl_Text_Trigger *selection;
+               unsigned int cursor_pos;
 
-               cursor_pos = ewl_text_cursor_position_get(EWL_TEXT(entry));
-               selection = ewl_text_selection_get(EWL_TEXT(entry));
+               cursor_pos = ewl_text_cursor_position_get(t);
 
-               ewl_text_cursor_position_set(EWL_TEXT(entry),
-                                       
ewl_text_trigger_start_pos_get(selection));
-               ewl_text_styles_apply(EWL_TEXT(entry), EWL_TEXT_STYLE_NONE,
-                                       ewl_text_trigger_length_get(selection));
-               ewl_text_cursor_position_set(EWL_TEXT(entry), cursor_pos);
+               selection = ewl_text_selection_get(t);
+               ewl_text_cursor_position_set(t,
+                               ewl_text_trigger_start_pos_get(selection));
+
+               ewl_text_font_apply(t, font,
+                               ewl_text_trigger_length_get(selection));
+
+               ewl_text_cursor_position_set(t, cursor_pos);
        }
        else
-               ewl_text_styles_set(EWL_TEXT(entry), EWL_TEXT_STYLE_NONE);
+               ewl_text_font_set(t, font);
 }
 
 static void
-ete_cb_outline(Ewl_Widget *w __UNUSED__, void *ev __UNUSED__,
-                                               void *data __UNUSED__)
+ete_cb_bold(Ewl_Widget *w __UNUSED__, void *ev __UNUSED__, 
+                                       void *data __UNUSED__)
 {
-       Ewl_Widget *entry;
+       ete_font_apply("Vera/Bold");
+}
 
-       entry = ewl_widget_name_find("entry");
-       ete_style_apply(EWL_TEXT(entry), EWL_TEXT_STYLE_OUTLINE);
+static void
+ete_cb_italic(Ewl_Widget *w __UNUSED__, void *ev __UNUSED__, 
+                                       void *data __UNUSED__)
+{
+       ete_font_apply("Vera/Italic");
 }
 
 static void
@@ -377,29 +468,5 @@
 
        entry = ewl_widget_name_find("entry");
        ewl_text_clear(EWL_TEXT(entry));
-}
-
-static void
-ete_cb_key_down(Ewl_Widget *w, void *ev, void *data __UNUSED__)
-{
-       Ewl_Event_Key_Down *e;
-
-       e = ev;
-
-       /*
-        * insert an utf-8 character when you hit CTRL-a
-        */
-       if (e && (e->modifiers & EWL_KEY_MODIFIER_CTRL) 
-                       && !strcmp(e->keyname, "a")) {
-               Ewl_Embed * emb;
-               unsigned char buf[3];
-
-               emb = ewl_embed_widget_find(w);
-               buf[0] = 0xC3;
-               buf[1] = 0xA4;
-               buf[2] = 0;
-               
-               ewl_embed_key_down_feed(emb, (char *)buf, 0);
-       }
 }
 



-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to