billiob pushed a commit to branch master.

http://git.enlightenment.org/apps/terminology.git/commit/?id=24400e9c6921bcc38a6d75a07f5d09317d0d849f

commit 24400e9c6921bcc38a6d75a07f5d09317d0d849f
Author: Boris Faure <[email protected]>
Date:   Mon Jun 15 00:12:56 2020 +0200

    options_mouse: add links settings
---
 src/bin/options_behavior.c |  22 --
 src/bin/options_mouse.c    | 494 ++++++++++-----------------------------------
 2 files changed, 112 insertions(+), 404 deletions(-)

diff --git a/src/bin/options_behavior.c b/src/bin/options_behavior.c
index 4169a07..8846780 100644
--- a/src/bin/options_behavior.c
+++ b/src/bin/options_behavior.c
@@ -32,18 +32,12 @@ OPTIONS_CB(Behavior_Ctx, disable_visual_bell, 1);
 OPTIONS_CB(Behavior_Ctx, bell_rings, 0);
 OPTIONS_CB(Behavior_Ctx, flicker_on_key, 0);
 OPTIONS_CB(Behavior_Ctx, urg_bell, 0);
-OPTIONS_CB(Behavior_Ctx, active_links_email, 0);
-OPTIONS_CB(Behavior_Ctx, active_links_file, 0);
-OPTIONS_CB(Behavior_Ctx, active_links_url, 0);
-OPTIONS_CB(Behavior_Ctx, active_links_escape, 0);
 OPTIONS_CB(Behavior_Ctx, multi_instance, 0);
 OPTIONS_CB(Behavior_Ctx, xterm_256color, 0);
 OPTIONS_CB(Behavior_Ctx, erase_is_del, 0);
-OPTIONS_CB(Behavior_Ctx, drag_links, 0);
 OPTIONS_CB(Behavior_Ctx, login_shell, 0);
 OPTIONS_CB(Behavior_Ctx, mouse_over_focus, 0);
 OPTIONS_CB(Behavior_Ctx, disable_focus_visuals, 1);
-OPTIONS_CB(Behavior_Ctx, gravatar,  0);
 OPTIONS_CB(Behavior_Ctx, show_tabs,  0);
 OPTIONS_CB(Behavior_Ctx, mv_always_show, 0);
 OPTIONS_CB(Behavior_Ctx, ty_escapes, 0);
@@ -432,20 +426,6 @@ options_behavior(Evas_Object *opbox, Evas_Object *term)
 
    OPTIONS_SEPARATOR;
 
-   lbl = elm_label_add(bx);
-   evas_object_size_hint_weight_set(lbl, EVAS_HINT_EXPAND, 0.0);
-   evas_object_size_hint_align_set(lbl, 0.0, 0.0);
-   elm_layout_text_set(lbl, NULL, _("Active Links:"));
-   elm_box_pack_end(bx, lbl);
-   evas_object_show(lbl);
-
-   OPTIONS_CX(_("On emails"), active_links_email, 0);
-   OPTIONS_CX(_("On file paths"), active_links_file, 0);
-   OPTIONS_CX(_("On URLs"), active_links_url, 0);
-   OPTIONS_CX(_("Based on escape codes"), active_links_escape, 0);
-
-   OPTIONS_SEPARATOR;
-
    OPTIONS_CX(_("React to key presses"), flicker_on_key, 0);
    if (!multisense_available)
      {
@@ -462,11 +442,9 @@ options_behavior(Evas_Object *opbox, Evas_Object *term)
    OPTIONS_CX(_("Multiple instances, one process"), multi_instance, 0);
    OPTIONS_CX(_("Set TERM to xterm-256color"), xterm_256color, 0);
    OPTIONS_CX(_("BackArrow sends Del (instead of BackSpace)"), erase_is_del, 
0);
-   OPTIONS_CX(_("Drag & drop links"), drag_links, 0);
    OPTIONS_CX(_("Start as login shell"), login_shell, 0);
    OPTIONS_CX(_("Focus split under the Mouse"), mouse_over_focus, 0);
    OPTIONS_CX(_("Focus-related visuals"), disable_focus_visuals, 1);
-   OPTIONS_CX(_("Gravatar integration"), gravatar, 0);
    OPTIONS_CX(_("Show tabs"), show_tabs, 0);
    OPTIONS_CX(_("Always show miniview"), mv_always_show, 0);
    OPTIONS_CX(_("Enable special Terminology escape codes"), ty_escapes, 0);
diff --git a/src/bin/options_mouse.c b/src/bin/options_mouse.c
index 7473305..9758167 100644
--- a/src/bin/options_mouse.c
+++ b/src/bin/options_mouse.c
@@ -13,6 +13,14 @@ typedef struct _Mouse_Ctx {
      Config *config;
 } Mouse_Ctx;
 
+OPTIONS_CB(Mouse_Ctx, active_links_email, 0);
+OPTIONS_CB(Mouse_Ctx, active_links_file, 0);
+OPTIONS_CB(Mouse_Ctx, active_links_url, 0);
+OPTIONS_CB(Mouse_Ctx, active_links_escape, 0);
+OPTIONS_CB(Mouse_Ctx, active_links_color, 0);
+OPTIONS_CB(Mouse_Ctx, drag_links, 0);
+OPTIONS_CB(Mouse_Ctx, gravatar,  0);
+
 static void
 _cb_op_helper_inline_chg(void *data,
                          Evas_Object *obj,
@@ -28,187 +36,42 @@ _cb_op_helper_inline_chg(void *data,
    config_save(config);
 }
 
-static void
-_cb_op_helper_email_chg(void *data,
-                        Evas_Object *obj,
-                        void *_event EINA_UNUSED)
-{
-   Mouse_Ctx *ctx = data;
-   Config *config = ctx->config;
-   Evas_Object *term = ctx->term;
-   char *txt;
-
-   if (config->helper.email)
-     {
-        eina_stringshare_del(config->helper.email);
-        config->helper.email = NULL;
-     }
-   txt = elm_entry_markup_to_utf8(elm_object_text_get(obj));
-   if (txt)
-     {
-        config->helper.email = eina_stringshare_add(txt);
-        free(txt);
-     }
-   termio_config_update(term);
-   windows_update();
-   config_save(config);
-}
-
-static void
-_cb_op_helper_url_image_chg(void *data,
-                            Evas_Object *obj,
-                            void *_event EINA_UNUSED)
-{
-   Mouse_Ctx *ctx = data;
-   Config *config = ctx->config;
-   Evas_Object *term = ctx->term;
-   char *txt;
-
-   if (config->helper.url.image)
-     {
-        eina_stringshare_del(config->helper.url.image);
-        config->helper.url.image = NULL;
-     }
-   txt = elm_entry_markup_to_utf8(elm_object_text_get(obj));
-   if (txt)
-     {
-        config->helper.url.image = eina_stringshare_add(txt);
-        free(txt);
-     }
-   termio_config_update(term);
-   windows_update();
-   config_save(config);
-}
-
-static void
-_cb_op_helper_url_video_chg(void *data,
-                            Evas_Object *obj,
-                            void *_event EINA_UNUSED)
-{
-   Mouse_Ctx *ctx = data;
-   Config *config = ctx->config;
-   Evas_Object *term = ctx->term;
-   char *txt;
-
-   if (config->helper.url.video)
-     {
-        eina_stringshare_del(config->helper.url.video);
-        config->helper.url.video = NULL;
-     }
-   txt = elm_entry_markup_to_utf8(elm_object_text_get(obj));
-   if (txt)
-     {
-        config->helper.url.video = eina_stringshare_add(txt);
-        free(txt);
-     }
-   termio_config_update(term);
-   windows_update();
-   config_save(config);
-}
-
-static void
-_cb_op_helper_url_general_chg(void *data,
-                              Evas_Object *obj,
-                              void *_event EINA_UNUSED)
-{
-   Mouse_Ctx *ctx = data;
-   Config *config = ctx->config;
-   Evas_Object *term = ctx->term;
-   char *txt;
-
-   if (config->helper.url.general)
-     {
-        eina_stringshare_del(config->helper.url.general);
-        config->helper.url.general = NULL;
-     }
-   txt = elm_entry_markup_to_utf8(elm_object_text_get(obj));
-   if (txt)
-     {
-        config->helper.url.general = eina_stringshare_add(txt);
-        free(txt);
-     }
-   termio_config_update(term);
-   windows_update();
-   config_save(config);
-}
-
-static void
-_cb_op_helper_local_image_chg(void *data,
-                              Evas_Object *obj,
-                              void *_event EINA_UNUSED)
-{
-   Mouse_Ctx *ctx = data;
-   Config *config = ctx->config;
-   Evas_Object *term = ctx->term;
-   char *txt;
-
-   if (config->helper.local.image)
-     {
-        eina_stringshare_del(config->helper.local.image);
-        config->helper.local.image = NULL;
-     }
-   txt = elm_entry_markup_to_utf8(elm_object_text_get(obj));
-   if (txt)
-     {
-        config->helper.local.image = eina_stringshare_add(txt);
-        free(txt);
-     }
-   termio_config_update(term);
-   windows_update();
-   config_save(config);
+#define _CB(_CFG, _NAME)                                       \
+static void                                                    \
+_cb_op_##_NAME(void *data,                                     \
+               Evas_Object *obj,                               \
+               void *_event EINA_UNUSED)                       \
+{                                                              \
+   Mouse_Ctx *ctx = data;                                      \
+   Config *config = ctx->config;                               \
+   Evas_Object *term = ctx->term;                              \
+   char *txt;                                                  \
+                                                               \
+   if (config->_CFG)                                           \
+     {                                                         \
+        eina_stringshare_del(config->_CFG);                    \
+        config->_CFG = NULL;                                   \
+     }                                                         \
+   txt = elm_entry_markup_to_utf8(elm_object_text_get(obj));   \
+   if (txt)                                                    \
+     {                                                         \
+        config->_CFG = eina_stringshare_add(txt);              \
+        free(txt);                                             \
+     }                                                         \
+   termio_config_update(term);                                 \
+   windows_update();                                           \
+   config_save(config);                                        \
 }
 
-static void
-_cb_op_helper_local_video_chg(void *data,
-                              Evas_Object *obj,
-                              void *_event EINA_UNUSED)
-{
-   Mouse_Ctx *ctx = data;
-   Config *config = ctx->config;
-   Evas_Object *term = ctx->term;
-   char *txt;
+_CB(helper.email, helper_email);
+_CB(helper.url.image, helper_url_image);
+_CB(helper.url.video, helper_url_video);
+_CB(helper.url.general, helper_url_general);
+_CB(helper.local.image, helper_local_image);
+_CB(helper.local.video, helper_local_video);
+_CB(helper.local.general, helper_local_general);
+#undef _CB
 
-   if (config->helper.local.video)
-     {
-        eina_stringshare_del(config->helper.local.video);
-        config->helper.local.video = NULL;
-     }
-   txt = elm_entry_markup_to_utf8(elm_object_text_get(obj));
-   if (txt)
-     {
-        config->helper.local.video = eina_stringshare_add(txt);
-        free(txt);
-     }
-   termio_config_update(term);
-   windows_update();
-   config_save(config);
-}
-
-static void
-_cb_op_helper_local_general_chg(void *data,
-                                Evas_Object *obj,
-                                void *_event EINA_UNUSED)
-{
-   Mouse_Ctx *ctx = data;
-   Config *config = ctx->config;
-   Evas_Object *term = ctx->term;
-   char *txt;
-
-   if (config->helper.local.general)
-     {
-        eina_stringshare_del(config->helper.local.general);
-        config->helper.local.general = NULL;
-     }
-   txt = elm_entry_markup_to_utf8(elm_object_text_get(obj));
-   if (txt)
-     {
-        config->helper.local.general = eina_stringshare_add(txt);
-        free(txt);
-     }
-   termio_config_update(term);
-   windows_update();
-   config_save(config);
-}
 
 static void
 _parent_del_cb(void *data,
@@ -225,9 +88,8 @@ void
 options_mouse(Evas_Object *opbox, Evas_Object *term)
 {
    Config *config = termio_config_get(term);
-   Evas_Object *o, *tb, *sc, *fr, *bx;
+   Evas_Object *o, *sc, *frame, *bx, *hbx, *lbl;
    char *txt;
-   int row = 0;
    Mouse_Ctx *ctx;
 
    ctx = calloc(1, sizeof(*ctx));
@@ -236,7 +98,7 @@ options_mouse(Evas_Object *opbox, Evas_Object *term)
    ctx->config = config;
    ctx->term = term;
 
-   fr = o = elm_frame_add(opbox);
+   frame = o = elm_frame_add(opbox);
    evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
    evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
    elm_object_text_set(o, _("Mouse"));
@@ -246,229 +108,97 @@ options_mouse(Evas_Object *opbox, Evas_Object *term)
    evas_object_event_callback_add(o, EVAS_CALLBACK_DEL,
                                   _parent_del_cb, ctx);
 
-   bx = o = elm_box_add(opbox);
-   evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-   evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
-   elm_object_content_set(fr, o);
-   evas_object_show(o);
-
-   o = elm_check_add(opbox);
-   evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0);
-   evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.5);
-   elm_object_text_set(o, _("Inline if possible"));
-   elm_check_state_set(o, config->helper.inline_please);
-   elm_box_pack_end(bx, o);
-   evas_object_show(o);
-   evas_object_smart_callback_add(o, "changed",
-                                  _cb_op_helper_inline_chg, ctx);
-
-   OPTIONS_SEPARATOR;
-
    sc = o = elm_scroller_add(opbox);
    elm_scroller_content_min_limit(sc, EINA_TRUE, EINA_FALSE);
    evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
    evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
-   elm_box_pack_end(bx, o);
+   elm_object_content_set(frame, o);
    evas_object_show(o);
 
-   tb = o = elm_table_add(opbox);
+   bx = o = elm_box_add(opbox);
    evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0);
    evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.0);
    elm_object_content_set(sc, o);
    evas_object_show(o);
 
-   o = elm_label_add(tb);
-   evas_object_size_hint_weight_set(o, 0.0, 0.0);
-   evas_object_size_hint_align_set(o, 0.0, 0.5);
-   elm_object_text_set(o, _("E-mail:"));
-   elm_table_pack(tb, o, 0, row, 1, 1);
-   evas_object_show(o);
-
-   o = elm_entry_add(tb);
-   evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0);
-   evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.5);
-   elm_entry_single_line_set(o, EINA_TRUE);
-   elm_entry_scrollable_set(o, EINA_TRUE);
-   elm_scroller_policy_set(o, ELM_SCROLLER_POLICY_OFF, 
ELM_SCROLLER_POLICY_OFF);
-   txt = elm_entry_utf8_to_markup(config->helper.email);
-   if (txt)
-     {
-        elm_object_text_set(o, txt);
-        free(txt);
-     }
-   elm_table_pack(tb, o, 1, row, 1, 1);
-   evas_object_show(o);
-   evas_object_smart_callback_add(o, "changed",
-                                  _cb_op_helper_email_chg, ctx);
-   row++;
-
-   o = elm_separator_add(opbox);
-   evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0);
-   evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.5);
-   elm_separator_horizontal_set(o, EINA_TRUE);
-   elm_table_pack(tb, o, 0, row, 2, 1);
-   evas_object_show(o);
-   row++;
-
-   o = elm_label_add(tb);
-   evas_object_size_hint_weight_set(o, 0.0, 0.0);
-   evas_object_size_hint_align_set(o, 0.0, 0.5);
-   elm_object_text_set(o, _("URL (Images):"));
-   elm_table_pack(tb, o, 0, row, 1, 1);
-   evas_object_show(o);
-
-   o = elm_entry_add(tb);
-   evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0);
-   evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.5);
-   elm_entry_single_line_set(o, EINA_TRUE);
-   elm_entry_scrollable_set(o, EINA_TRUE);
-   elm_scroller_policy_set(o, ELM_SCROLLER_POLICY_OFF, 
ELM_SCROLLER_POLICY_OFF);
-   txt = elm_entry_utf8_to_markup(config->helper.url.image);
-   if (txt)
-     {
-        elm_object_text_set(o, txt);
-        free(txt);
-     }
-   elm_table_pack(tb, o, 1, row, 1, 1);
-   evas_object_show(o);
-   evas_object_smart_callback_add(o, "changed",
-                                  _cb_op_helper_url_image_chg, ctx);
-   row++;
-
-   o = elm_label_add(tb);
-   evas_object_size_hint_weight_set(o, 0.0, 0.0);
-   evas_object_size_hint_align_set(o, 0.0, 0.5);
-   elm_object_text_set(o, _("URL (Video):"));
-   elm_table_pack(tb, o, 0, row, 1, 1);
-   evas_object_show(o);
+   lbl = elm_label_add(bx);
+   evas_object_size_hint_weight_set(lbl, EVAS_HINT_EXPAND, 0.0);
+   evas_object_size_hint_align_set(lbl, 0.0, 0.0);
+   elm_layout_text_set(lbl, NULL, _("Active Links:"));
+   elm_box_pack_end(bx, lbl);
+   evas_object_show(lbl);
 
-   o = elm_entry_add(tb);
-   evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0);
-   evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.5);
-   elm_entry_single_line_set(o, EINA_TRUE);
-   elm_entry_scrollable_set(o, EINA_TRUE);
-   elm_scroller_policy_set(o, ELM_SCROLLER_POLICY_OFF, 
ELM_SCROLLER_POLICY_OFF);
-   txt = elm_entry_utf8_to_markup(config->helper.url.video);
-   if (txt)
-     {
-        elm_object_text_set(o, txt);
-        free(txt);
-     }
-   elm_table_pack(tb, o, 1, row, 1, 1);
-   evas_object_show(o);
-   evas_object_smart_callback_add(o, "changed",
-                                  _cb_op_helper_url_video_chg, ctx);
-   row++;
+   OPTIONS_CX(_("On emails"), active_links_email, 0);
+   OPTIONS_CX(_("On file paths"), active_links_file, 0);
+   OPTIONS_CX(_("On URLs"), active_links_url, 0);
+   OPTIONS_CX(_("On colors"), active_links_color, 0);
+   OPTIONS_CX(_("Based on escape codes"), active_links_escape, 0);
 
-   o = elm_label_add(tb);
-   evas_object_size_hint_weight_set(o, 0.0, 0.0);
-   evas_object_size_hint_align_set(o, 0.0, 0.5);
-   elm_object_text_set(o, _("URL (All):"));
-   elm_table_pack(tb, o, 0, row, 1, 1);
-   evas_object_show(o);
+   OPTIONS_SEPARATOR;
+   OPTIONS_CX(_("Gravatar integration"), gravatar, 0);
+   OPTIONS_SEPARATOR;
+   OPTIONS_CX(_("Drag & drop links"), drag_links, 0);
+   OPTIONS_SEPARATOR;
 
-   o = elm_entry_add(tb);
+   o = elm_check_add(opbox);
    evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0);
    evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.5);
-   elm_entry_single_line_set(o, EINA_TRUE);
-   elm_entry_scrollable_set(o, EINA_TRUE);
-   elm_scroller_policy_set(o, ELM_SCROLLER_POLICY_OFF, 
ELM_SCROLLER_POLICY_OFF);
-   txt = elm_entry_utf8_to_markup(config->helper.url.general);
-   if (txt)
-     {
-        elm_object_text_set(o, txt);
-        free(txt);
-     }
-   elm_table_pack(tb, o, 1, row, 1, 1);
+   elm_object_text_set(o, _("Inline if possible"));
+   elm_check_state_set(o, config->helper.inline_please);
+   elm_box_pack_end(bx, o);
    evas_object_show(o);
    evas_object_smart_callback_add(o, "changed",
-                                  _cb_op_helper_url_general_chg, ctx);
-   row++;
-
-   o = elm_separator_add(opbox);
-   evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0);
-   evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.5);
-   elm_separator_horizontal_set(o, EINA_TRUE);
-   elm_table_pack(tb, o, 0, row, 2, 1);
-   evas_object_show(o);
-   row++;
-
-   o = elm_label_add(tb);
-   evas_object_size_hint_weight_set(o, 0.0, 0.0);
-   evas_object_size_hint_align_set(o, 0.0, 0.5);
-   elm_object_text_set(o, _("Local (Images):"));
-   elm_table_pack(tb, o, 0, row, 1, 1);
-   evas_object_show(o);
+                                  _cb_op_helper_inline_chg, ctx);
 
-   o = elm_entry_add(tb);
-   evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0);
-   evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.5);
-   elm_entry_single_line_set(o, EINA_TRUE);
-   elm_entry_scrollable_set(o, EINA_TRUE);
-   elm_scroller_policy_set(o, ELM_SCROLLER_POLICY_OFF, 
ELM_SCROLLER_POLICY_OFF);
-   txt = elm_entry_utf8_to_markup(config->helper.local.image);
-   if (txt)
-     {
-        elm_object_text_set(o, txt);
-        free(txt);
-     }
-   elm_table_pack(tb, o, 1, row, 1, 1);
-   evas_object_show(o);
-   evas_object_smart_callback_add(o, "changed",
-                                  _cb_op_helper_local_image_chg, ctx);
-   row++;
+   OPTIONS_SEPARATOR;
 
-   o = elm_label_add(tb);
-   evas_object_size_hint_weight_set(o, 0.0, 0.0);
-   evas_object_size_hint_align_set(o, 0.0, 0.5);
-   elm_object_text_set(o, _("Local (Video):"));
-   elm_table_pack(tb, o, 0, row, 1, 1);
-   evas_object_show(o);
+#define HELPERS_LINE(_TXT, _CFG, _NAME)                        \
+   do {                                                        \
+   hbx = o = elm_box_add(opbox);                               \
+   evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0); \
+   evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.0);    \
+   elm_box_horizontal_set(o, EINA_TRUE);                       \
+   elm_box_pack_end(bx, o);                                    \
+   evas_object_show(o);                                        \
+                                                               \
+   o = elm_label_add(hbx);                                     \
+   evas_object_size_hint_weight_set(o, 0.0, 0.0);              \
+   evas_object_size_hint_align_set(o, 0.0, 0.5);               \
+   elm_object_text_set(o, _TXT);                               \
+   elm_box_pack_end(hbx, o);                                   \
+   evas_object_show(o);                                        \
+                                                               \
+   o = elm_entry_add(hbx);                                     \
+   evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0); \
+   evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.5);    \
+   elm_entry_single_line_set(o, EINA_TRUE);                    \
+   elm_entry_scrollable_set(o, EINA_TRUE);                     \
+   elm_scroller_policy_set(o, ELM_SCROLLER_POLICY_OFF,         \
+                           ELM_SCROLLER_POLICY_OFF);           \
+   txt = elm_entry_utf8_to_markup(config->_CFG);               \
+   if (txt)                                                    \
+     {                                                         \
+        elm_object_text_set(o, txt);                           \
+        free(txt);                                             \
+     }                                                         \
+   elm_box_pack_end(hbx, o);                                   \
+   evas_object_show(o);                                        \
+   evas_object_smart_callback_add(o, "changed",                \
+                                  _cb_op_##_NAME, ctx);        \
+   } while(0)
+
+   HELPERS_LINE(_("E-mail:"), helper.email, helper_email);
 
-   o = elm_entry_add(tb);
-   evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0);
-   evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.5);
-   elm_entry_single_line_set(o, EINA_TRUE);
-   elm_entry_scrollable_set(o, EINA_TRUE);
-   elm_scroller_policy_set(o, ELM_SCROLLER_POLICY_OFF, 
ELM_SCROLLER_POLICY_OFF);
-   txt = elm_entry_utf8_to_markup(config->helper.local.video);
-   if (txt)
-     {
-        elm_object_text_set(o, txt);
-        free(txt);
-     }
-   elm_table_pack(tb, o, 1, row, 1, 1);
-   evas_object_show(o);
-   evas_object_smart_callback_add(o, "changed",
-                                  _cb_op_helper_local_video_chg, ctx);
-   row++;
+   OPTIONS_SEPARATOR;
 
-   o = elm_label_add(tb);
-   evas_object_size_hint_weight_set(o, 0.0, 0.0);
-   evas_object_size_hint_align_set(o, 0.0, 0.5);
-   elm_object_text_set(o, _("Local (All):"));
-   elm_table_pack(tb, o, 0, row, 1, 1);
-   evas_object_show(o);
+   HELPERS_LINE(_("URL (Images):"), helper.url.image,   helper_url_image);
+   HELPERS_LINE(_("URL (Video):"),  helper.url.video,   helper_url_video);
+   HELPERS_LINE(_("URL (All):"),    helper.url.general, helper_url_general);
 
-   o = elm_entry_add(tb);
-   evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 0.0);
-   evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.5);
-   elm_entry_single_line_set(o, EINA_TRUE);
-   elm_entry_scrollable_set(o, EINA_TRUE);
-   elm_scroller_policy_set(o, ELM_SCROLLER_POLICY_OFF, 
ELM_SCROLLER_POLICY_OFF);
-   txt = elm_entry_utf8_to_markup(config->helper.local.general);
-   if (txt)
-     {
-        elm_object_text_set(o, txt);
-        free(txt);
-     }
-   elm_table_pack(tb, o, 1, row, 1, 1);
-   evas_object_show(o);
-   evas_object_smart_callback_add(o, "changed",
-                                  _cb_op_helper_local_general_chg, ctx);
-   row++;
+   OPTIONS_SEPARATOR;
+   HELPERS_LINE(_("Local (Images):"), helper.local.image,   
helper_local_image);
+   HELPERS_LINE(_("Local (Video):"),  helper.local.video,   
helper_local_video);
+   HELPERS_LINE(_("Local (All):"),    helper.local.general, 
helper_local_general);
 
-   evas_object_size_hint_weight_set(opbox, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-   evas_object_size_hint_align_set(opbox, EVAS_HINT_FILL, EVAS_HINT_FILL);
-   evas_object_show(o);
+#undef HELPERS_LINE
 }

-- 


Reply via email to