Add elm_entry_magnifier_disabled_get/set()
authorJosé Roberto de Souza <jose.souza@intel.com>
Thu, 4 Jul 2013 14:16:28 +0000 (11:16 -0300)
committerJosé Roberto de Souza <jose.souza@intel.com>
Wed, 28 Aug 2013 20:16:16 +0000 (17:16 -0300)
This is a API add to Tizen elementary fork.

src/lib/elm_entry.c
src/lib/elm_entry_eo.h
src/lib/elm_entry_legacy.h
src/lib/elm_widget_entry.h

index 5a3e8a79649d644db4fd566069b8c0d584e65458..0d037b22f2f5d9c0d07b5550924df7735c36931e 100644 (file)
@@ -1424,7 +1424,7 @@ _long_press_cb(void *data)
 {
    ELM_ENTRY_DATA_GET(data, sd);
 
-   if (_elm_config->magnifier_enable)
+   if (sd->mgf_enable)
      {
         _magnifier_create(data);
         _magnifier_show(data);
@@ -1454,7 +1454,7 @@ _entry_handler_move_start_cb(void *data,
    edje_object_part_text_cursor_geometry_get(sd->entry_edje,
                                              "elm.text",
                                              &cx, &cy, NULL, &ch);
-   if (_elm_config->magnifier_enable)
+   if (sd->mgf_enable)
      {
         _magnifier_create(data);
         _magnifier_show(data);
@@ -1468,7 +1468,8 @@ _entry_handler_move_end_cb(void *data,
                            const char *emission __UNUSED__,
                            const char *source __UNUSED__)
 {
-   if (_elm_config->magnifier_enable)
+   ELM_ENTRY_DATA_GET(data, sd);
+   if (sd->mgf_enable)
      _magnifier_hide(data);
    if (!_elm_config->desktop_entry)
      _menu_call(data);
@@ -1487,7 +1488,7 @@ _entry_handler_moving_cb(void *data,
    edje_object_part_text_cursor_geometry_get(sd->entry_edje,
                                              "elm.text",
                                              &cx, &cy, NULL, &ch);
-   if (_elm_config->magnifier_enable)
+   if (sd->mgf_enable)
      _magnifier_move(data, x + cx, y + cy + ch/2);
 }
 
@@ -1547,7 +1548,7 @@ _mouse_up_cb(void *data,
    if (ev->button == 1)
      {
         ELM_SAFE_FREE(sd->longpress_timer, ecore_timer_del);
-        if ((sd->long_pressed) && (_elm_config->magnifier_enable))
+        if ((sd->long_pressed) && (sd->mgf_enable))
           {
              _magnifier_hide(data);
              _menu_call(data);
@@ -1573,7 +1574,7 @@ _mouse_move_cb(void *data,
    if (sd->disabled) return;
    if (ev->buttons == 1)
      {
-        if ((sd->long_pressed) && (_elm_config->magnifier_enable))
+        if ((sd->long_pressed) && (sd->mgf_enable))
           {
              Evas_Coord x, y;
              Eina_Bool rv;
@@ -2968,6 +2969,7 @@ _elm_entry_smart_add(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
    priv->context_menu = EINA_TRUE;
    priv->auto_save = EINA_TRUE;
    priv->editable = EINA_TRUE;
+   priv->mgf_enable = _elm_config->magnifier_enable;
 
    if (!elm_layout_theme_set(obj, "entry", "base", elm_widget_style_get(obj)))
      CRITICAL("Failed to set layout!");
@@ -5464,6 +5466,40 @@ _anchor_hover_end(Eo *obj EINA_UNUSED, void *_pd, va_list *list EINA_UNUSED)
 }
 /* END - ANCHOR HOVER */
 
+EAPI void
+elm_entry_magnifier_disabled_set(Evas_Object *obj, Eina_Bool disabled)
+{
+   ELM_ENTRY_CHECK(obj);
+   eo_do(obj, elm_obj_magnifier_disabled_set(disabled));
+}
+
+static void
+_magnifier_disabled_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+{
+   Eina_Bool disabled = va_arg(*list, int);
+   Elm_Entry_Smart_Data *sd = _pd;
+
+   sd->mgf_enable = !disabled;
+}
+
+EAPI Eina_Bool
+elm_entry_magnifier_disabled_get(Evas_Object *obj)
+{
+   Eina_Bool ret = EINA_FALSE;
+   ELM_ENTRY_CHECK(obj) EINA_FALSE;
+   eo_do(obj, elm_obj_magnifier_disabled_get(&ret));
+   return ret;
+}
+
+static void
+_magnifier_disabled_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+{
+   Eina_Bool *disabled = va_arg(*list, Eina_Bool*);
+   Elm_Entry_Smart_Data *sd = _pd;
+
+   *disabled = !sd->mgf_enable;
+}
+
 static void
 _elm_entry_smart_focus_next_manager_is(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, va_list *list)
 {
@@ -5601,6 +5637,8 @@ _class_constructor(Eo_Class *klass)
         EO_OP_FUNC(ELM_OBJ_ENTRY_ID(ELM_OBJ_ENTRY_SUB_ID_ANCHOR_HOVER_END), _anchor_hover_end),
         EO_OP_FUNC(ELM_OBJ_ENTRY_ID(ELM_OBJ_ENTRY_SUB_ID_INPUT_PANEL_LAYOUT_VARIATION_SET), _input_panel_layout_variation_set),
         EO_OP_FUNC(ELM_OBJ_ENTRY_ID(ELM_OBJ_ENTRY_SUB_ID_INPUT_PANEL_LAYOUT_VARIATION_GET), _input_panel_layout_variation_get),
+        EO_OP_FUNC(ELM_OBJ_ENTRY_ID(ELM_OBJ_ENTRY_SUB_ID_MAGNIFIER_DISABLED_SET), _magnifier_disabled_set),
+        EO_OP_FUNC(ELM_OBJ_ENTRY_ID(ELM_OBJ_ENTRY_SUB_ID_MAGNIFIER_DISABLED_GET), _magnifier_disabled_get),
         EO_OP_FUNC_SENTINEL
    };
    eo_class_funcs_set(klass, func_desc);
@@ -5696,6 +5734,8 @@ static const Eo_Op_Description op_desc[] = {
      EO_OP_DESCRIPTION(ELM_OBJ_ENTRY_SUB_ID_ANCHOR_HOVER_END, "Ends the hover popup in the entry."),
      EO_OP_DESCRIPTION(ELM_OBJ_ENTRY_SUB_ID_INPUT_PANEL_LAYOUT_VARIATION_SET, "Set the input panel layout variation of the entry."),
      EO_OP_DESCRIPTION(ELM_OBJ_ENTRY_SUB_ID_INPUT_PANEL_LAYOUT_VARIATION_GET, "Get the input panel layout variation of the entry."),
+     EO_OP_DESCRIPTION(ELM_OBJ_ENTRY_SUB_ID_MAGNIFIER_DISABLED_SET, "Disables the entry's magnifer feature."),
+     EO_OP_DESCRIPTION(ELM_OBJ_ENTRY_SUB_ID_MAGNIFIER_DISABLED_GET, "Return true if magnifier feature is disabled."),
      EO_OP_DESCRIPTION_SENTINEL
 };
 
index 8ecf86b6c656091351974648df8b4b03253e9590..fb2e8a811a0516258967780e6ff4bac16c41b506 100644 (file)
@@ -93,6 +93,8 @@ enum
    ELM_OBJ_ENTRY_SUB_ID_ANCHOR_HOVER_END,
    ELM_OBJ_ENTRY_SUB_ID_INPUT_PANEL_LAYOUT_VARIATION_SET,
    ELM_OBJ_ENTRY_SUB_ID_INPUT_PANEL_LAYOUT_VARIATION_GET,
+   ELM_OBJ_ENTRY_SUB_ID_MAGNIFIER_DISABLED_SET,
+   ELM_OBJ_ENTRY_SUB_ID_MAGNIFIER_DISABLED_GET,
    ELM_OBJ_ENTRY_SUB_ID_LAST
 };
 
@@ -1319,3 +1321,23 @@ enum
  * @ingroup Entry
  */
 #define elm_obj_entry_anchor_hover_end() ELM_OBJ_ENTRY_ID(ELM_OBJ_ENTRY_SUB_ID_ANCHOR_HOVER_END)
+
+/**
+ * @def elm_obj_magnifier_disabled_set
+ * @since 1.8
+ *
+ * This disables the entry's magnifier feature
+ *
+ * @ingroup Entry
+ */
+#define elm_obj_magnifier_disabled_set(disbaled) ELM_OBJ_ENTRY_ID(ELM_OBJ_ENTRY_SUB_ID_MAGNIFIER_DISABLED_SET), EO_TYPECHECK(Eina_Bool, disabled)
+
+/**
+ * @def elm_obj_magnifier_disabled_get
+ * @since 1.8
+ *
+ * Return true if magnifier feature is disable in entry.
+ *
+ * @ingroup Entry
+ */
+#define elm_obj_magnifier_disabled_get(ret) ELM_OBJ_ENTRY_ID(ELM_OBJ_ENTRY_SUB_ID_MAGNIFIER_DISABLED_GET), EO_TYPECHECK(Eina_Bool *, ret)
index d6656b6bc72116edba305f7fd9b30ccb8f4a72d5..5e4c55f73708d607de05f6ce784cec55a0ecce6b 100644 (file)
@@ -1170,3 +1170,14 @@ EAPI void                   elm_entry_input_panel_layout_variation_set(Evas_Obje
  * @since 1.8
  */
 EAPI int                    elm_entry_input_panel_layout_variation_get(const Evas_Object *obj);
+
+/**
+ * This disables the entry's magnifer feature.
+ *
+ * @param obj The entry object
+ * @param disabled If true, the magnifier is not displayed
+ */
+
+EAPI void                        elm_entry_magnifier_disabled_set(Evas_Object *obj, Eina_Bool disabled);
+
+EAPI Eina_Bool                   elm_entry_magnifier_disabled_get(Evas_Object *obj);
index 4ca6bdf16698a11ff5a2343462cd731b9a5a9776..10db32d6805e045f0602efe12848f516f7c5aac4 100644 (file)
@@ -95,6 +95,7 @@ struct _Elm_Entry_Smart_Data
    Eina_Bool                             sel_mode : 1;
    Eina_Bool                             changed : 1;
    Eina_Bool                             scroll : 1;
+   Eina_Bool                             mgf_enable : 1;
 };
 
 typedef struct _Elm_Entry_Item_Provider     Elm_Entry_Item_Provider;