rimmed pushed a commit to branch master.

http://git.enlightenment.org/tools/eflete.git/commit/?id=4c8913d5cc3247ebad497901ecc8b2bb358fc7fd

commit 4c8913d5cc3247ebad497901ecc8b2bb358fc7fd
Author: Vyacheslav Reutskiy <v.reuts...@samsung.com>
Date:   Tue Jul 21 09:17:17 2015 +0300

    Style manager: replace the ewe_entry to elm_entry
    
    Change-Id: I0decad4c57d4fea7bdfff3c4dbe8cd8d1422ee95
---
 src/bin/ui/editors/style_editor.c | 91 +++++++++++++++++++++++----------------
 1 file changed, 55 insertions(+), 36 deletions(-)

diff --git a/src/bin/ui/editors/style_editor.c 
b/src/bin/ui/editors/style_editor.c
index a9137ab..e4cfc34 100644
--- a/src/bin/ui/editors/style_editor.c
+++ b/src/bin/ui/editors/style_editor.c
@@ -16,6 +16,9 @@
  * You should have received a copy of the GNU Lesser General Public License
  * along with this program; If not, see www.gnu.org/licenses/lgpl.html.
  */
+#define EO_BETA_API
+#define EFL_BETA_API_SUPPORT
+#define EFL_EO_API_SUPPORT
 
 #include "style_editor.h"
 #include "main_window.h"
@@ -24,8 +27,6 @@
 TODO("Rename this file to textblock_style_manager")
 
 #define FONT_DEFAULT "DEFAULT='align=middle font=Sans font_size=24 
color=#000000 "
-#define ITEM1 "item1"
-#define ITEM2 "item2"
 #define DIRECTION_NUM 39
 #define DEFAULT_DIRECTION 2
 #define WHITE_COLOR "#FFF"
@@ -51,19 +52,20 @@ struct _Style_Editor
    Evas_Object *tabs;
    Search_Data style_search_data;
    struct {
-        const char *st_name;
-        const char *st_tag;
-        Eina_Stringshare *stvalue;
+      const char *st_name;
+      const char *st_tag;
+      Eina_Stringshare *stvalue;
    } current_style;
    struct {
-        Evas_Object *name;
-        Evas_Object *dialog;
+      Evas_Object *name;
+      Elm_Validator_Regexp *name_validator;
+      Evas_Object *btn_add;
+      Evas_Object *dialog;
    } popup;
    Elm_Object_Item *tag;
    Evas_Object *direction[8];
 };
 
-
 struct _Style_Entries
 {
    Evas_Object *style_name;
@@ -197,11 +199,6 @@ static const char *underl_styles[] = { N_("single"),
                                        N_("double"),
                                        NULL};
 
-static Elm_Entry_Filter_Accept_Set accept_name = {
-   .accepted = NULL,
-   .rejected = BANNED_SYMBOLS
-};
-
 static Eina_Tmpstr*
 _tag_value_get(const char* text_style, char* a_tag);
 
@@ -225,6 +222,9 @@ _on_popup_bt_cancel(void *data,
    Style_Editor *style_edit = (Style_Editor *)data;
 
    assert(style_edit != NULL);
+   assert(POPUP.name_validator != NULL);
+   elm_validator_regexp_free(POPUP.name_validator);
+   POPUP.name_validator = NULL;
 
    evas_object_del(POPUP.dialog);
    POPUP.dialog = NULL;
@@ -427,8 +427,6 @@ _on_st_add_bt_ok(void *data,
    elm_genlist_item_append(style_edit->glist, _itc_tags,
                            "DEFAULT", glit_style, ELM_GENLIST_ITEM_NONE,
                            _on_glit_selected, style_edit);
-   evas_object_del(POPUP.dialog);
-   POPUP.dialog = NULL;
 
    TODO("Need refactoring after callback logic for modal window 
implementation")
 
@@ -438,6 +436,9 @@ _on_st_add_bt_ok(void *data,
    Part *part = ui_widget_list_selected_part_get(ui_block_widget_list_get(ap));
    ui_property_state_unset(ui_block_property_get(ap));
    ui_property_state_set(ui_block_property_get(ap), part);
+
+   _on_popup_bt_cancel(style_edit, NULL, NULL);
+
    project_changed(false);
 }
 
@@ -478,20 +479,35 @@ _on_tag_add_bt_ok(void *data,
                                       ELM_GENLIST_ITEM_NONE,
                                       _on_glit_selected, style_edit);
    elm_object_item_data_set(glit_tag,(char *)tag_name);
-   evas_object_del(POPUP.dialog);
-   POPUP.dialog = NULL;
    elm_genlist_item_selected_set(glit_tag, true);
    elm_genlist_item_show(style_edit->tag, ELM_GENLIST_ITEM_SCROLLTO_IN);
    elm_genlist_item_bring_in(glit_tag, ELM_GENLIST_ITEM_SCROLLTO_MIDDLE);
+
+   _on_popup_bt_cancel(style_edit, NULL, NULL);
+
    project_changed(false);
 }
 
 static void
+_validate(void *data,
+          Evas_Object *obj __UNUSED__,
+          void *event_info __UNUSED__)
+{
+   Style_Editor *style_edit = (Style_Editor *)data;
+
+   if (elm_validator_regexp_status_get(POPUP.name_validator) != 
ELM_REG_NOERROR)
+     elm_object_disabled_set(POPUP.btn_add, true);
+   else
+     elm_object_disabled_set(POPUP.btn_add, false);
+}
+
+static void
 _on_bt_style_add(Style_Editor *style_edit)
 {
    Evas_Object *box, *item, *button;
 
    assert(style_edit != NULL);
+   assert(POPUP.name == NULL);
 
    POPUP.dialog = elm_popup_add(style_edit->mwin);
    elm_object_part_text_set(POPUP.dialog, "title,text", _("Add textblock 
style"));
@@ -499,24 +515,25 @@ _on_bt_style_add(Style_Editor *style_edit)
    BOX_ADD(POPUP.dialog, box, false, false);
    ITEM_ADD(box, item, "Style name:", "eflete/property/item/default")
 
-   EWE_ENTRY_ADD(item, POPUP.name, true);
-   elm_object_part_text_set(POPUP.name, "guide", _("Type a new style name."));
-   elm_entry_markup_filter_append(POPUP.name, elm_entry_filter_accept_set,
-                                  &accept_name);
+   POPUP.name_validator = elm_validator_regexp_new(NAME_REGEX, NULL);
+
+   ENTRY_ADD(item, POPUP.name, true);
+   eo_do(POPUP.name, eo_event_callback_add(ELM_ENTRY_EVENT_VALIDATE, 
elm_validator_regexp_helper, POPUP.name_validator));
+   evas_object_smart_callback_add(POPUP.name, "changed", _validate, 
style_edit);
+   elm_object_part_text_set(POPUP.name, "guide", _("Type a new style name"));
    elm_object_part_content_set(item, "elm.swallow.content", POPUP.name);
    elm_box_pack_end(box, item);
 
    elm_object_content_set(POPUP.dialog, box);
    evas_object_show(box);
 
-   BUTTON_ADD(POPUP.dialog, button, _("Ok"));
-   evas_object_smart_callback_add(button, "clicked", _on_st_add_bt_ok,
-                                  style_edit);
-   elm_object_part_content_set(POPUP.dialog, "button1", button);
+   BUTTON_ADD(POPUP.dialog, POPUP.btn_add, _("Ok"));
+   evas_object_smart_callback_add(POPUP.btn_add, "clicked", _on_st_add_bt_ok,  
style_edit);
+   elm_object_part_content_set(POPUP.dialog, "button1", POPUP.btn_add);
+   elm_object_disabled_set(POPUP.btn_add, true);
 
    BUTTON_ADD(POPUP.dialog, button, _("Cancel"));
-   evas_object_smart_callback_add(button, "clicked", _on_popup_bt_cancel,
-                                  style_edit);
+   evas_object_smart_callback_add(button, "clicked", _on_popup_bt_cancel, 
style_edit);
    elm_object_part_content_set(POPUP.dialog, "button2", button);
 
    evas_object_show(POPUP.dialog);
@@ -528,6 +545,7 @@ _on_bt_tag_add(Style_Editor *style_edit)
    Evas_Object *box, *item, *button;
 
    assert(style_edit != NULL);
+   assert(POPUP.name_validator == NULL);
 
    Elm_Object_Item *glit = elm_genlist_selected_item_get(style_edit->glist);
    Elm_Object_Item *glit_parent = elm_genlist_item_parent_get(glit);
@@ -558,24 +576,25 @@ _on_bt_tag_add(Style_Editor *style_edit)
    BOX_ADD(POPUP.dialog, box, false, false);
    ITEM_ADD(box, item, "Tag name:", "eflete/property/item/default")
 
-   EWE_ENTRY_ADD(item, POPUP.name, true);
+   POPUP.name_validator = elm_validator_regexp_new(NAME_REGEX, NULL);
+
+   ENTRY_ADD(item, POPUP.name, true);
+   eo_do(POPUP.name, eo_event_callback_add(ELM_ENTRY_EVENT_VALIDATE, 
elm_validator_regexp_helper, POPUP.name_validator));
+   evas_object_smart_callback_add(POPUP.name, "changed", _validate, 
style_edit);
    elm_object_part_text_set(POPUP.name, "guide", _("Type a new tag name."));
-   elm_entry_markup_filter_append(POPUP.name, elm_entry_filter_accept_set,
-                                  &accept_name);
    elm_object_part_content_set(item, "elm.swallow.content", POPUP.name);
    elm_box_pack_end(box, item);
 
    elm_object_content_set(POPUP.dialog, box);
    evas_object_show(box);
 
-   BUTTON_ADD(POPUP.dialog, button, _("Ok"));
-   evas_object_smart_callback_add(button, "clicked", _on_tag_add_bt_ok,
-                                  style_edit);
-   elm_object_part_content_set(POPUP.dialog, "button1", button);
+   BUTTON_ADD(POPUP.dialog, POPUP.btn_add, _("Ok"));
+   evas_object_smart_callback_add(POPUP.btn_add, "clicked", _on_tag_add_bt_ok, 
style_edit);
+   elm_object_part_content_set(POPUP.dialog, "button1", POPUP.btn_add);
+   elm_object_disabled_set(POPUP.btn_add, true);
 
    BUTTON_ADD(POPUP.dialog, button, _("Cancel"));
-   evas_object_smart_callback_add(button, "clicked", _on_popup_bt_cancel,
-                                  style_edit);
+   evas_object_smart_callback_add(button, "clicked", _on_popup_bt_cancel, 
style_edit);
    elm_object_part_content_set(POPUP.dialog, "button2", button);
 
    evas_object_show(POPUP.dialog);

-- 


Reply via email to