edje: add text marquee always set/get APIs for internal usages 24/162624/2
authorYoungbok Shin <youngb.shin@samsung.com>
Mon, 4 Dec 2017 08:35:38 +0000 (17:35 +0900)
committerYoungbok Shin <youngb.shin@samsung.com>
Thu, 21 Dec 2017 09:12:12 +0000 (18:12 +0900)
@tizen_feature

Change-Id: I0441ee67812b17bd5405c7826dfdacd210d500ca

src/lib/edje/edje_calc.c
src/lib/edje/edje_object.eo
src/lib/edje/edje_private.h
src/lib/edje/edje_util.c

index 043ae5c..7395970 100644 (file)
@@ -5419,6 +5419,7 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags, Edje_Calc_Params *sta
  * 20170818: move Text, Textblock object based on its original position in smart move
  * 20170830: fix valign issue when slide_roll style.
  * 20170906: apply x/y offset to run marquee with short text
+ * 20171204: add text marquee always set/get APIs for internal usages
  *
  **********************************************************************************/
 #define EDJE_DEFAULT_FADE_IMAGE "edje_default_fade_image.png"
@@ -6492,7 +6493,8 @@ _edje_text_ellipsize_apply(Edje *ed, Edje_Real_Part *ep,
      }
 
    /* Hide fade image if text is not exceed the given area. */
-   if ((chosen_desc->text.ellipsize.marquee.mode != EDJE_TEXT_ELLIPSIZE_MARQUEE_MODE_ALWAYS) &&
+   if (((chosen_desc->text.ellipsize.marquee.mode != EDJE_TEXT_ELLIPSIZE_MARQUEE_MODE_ALWAYS) &&
+        (!ep->typedata.text->ellipsize.marquee.always)) &&
        ((tw <= pf->final.w) && (th <= pf->final.h)))
      {
         if (ep->typedata.text->ellipsize.clipper_obj)
index aa078b1..1556610 100644 (file)
@@ -3131,6 +3131,31 @@ class Edje.Object (Evas.Smart_Clipped, Efl.File)
          }
       }
       /* END */
+      /* TIZEN_ONLY(20171204): add text marquee always set/get APIs for internal usages */
+      @property part_text_marquee_always @internal {
+         set {
+            [[Sets the always mode for text's marquee.
+
+              Do not use this API without understanding whats going on.
+              It is made for internal usage.
+            ]]
+            return: bool; [[$true, on success or $false, on error]]
+         }
+         get {
+            [[Gets the always mode for text's marquee.
+
+              Do not use this API without understanding whats going on.
+              It is made for internal usage.
+            ]]
+         }
+         keys {
+            part: const(char)*; [[The part name]]
+         }
+         values {
+            always: bool; [[The always mode]]
+         }
+      }
+      /* END */
    }
    implements {
       Eo.Base.constructor;
index d08227f..1f25807 100644 (file)
@@ -1980,6 +1980,7 @@ struct _Edje_Real_Part_Text
 
          double          duration;
          double          speed;
+         Eina_Bool       always : 1;
       } marquee;
    } ellipsize;
    /* END */
index 9781039..d720ea7 100644 (file)
@@ -7093,4 +7093,50 @@ _edje_object_part_text_marquee_speed_get(Eo *eo_obj EINA_UNUSED, Edje *ed, const
 }
 /* END */
 
+/* TIZEN_ONLY(20171204): add text marquee always set/get APIs for internal usages */
+EOLIAN Eina_Bool
+_edje_object_part_text_marquee_always_set(Eo *eo_obj EINA_UNUSED, Edje *ed, const char *part, Eina_Bool always)
+{
+   Edje_Real_Part *rp;
+
+   if (!part) return EINA_FALSE;
+   rp = _edje_real_part_recursive_get(&ed, part);
+   if (!rp) return EINA_FALSE;
+   if ((rp->part->type != EDJE_PART_TYPE_TEXTBLOCK) &&
+       (rp->part->type != EDJE_PART_TYPE_TEXT))
+     return EINA_FALSE;
+
+   if (rp->typedata.text)
+     {
+        if (rp->typedata.text->ellipsize.marquee.always == always)
+           return EINA_TRUE;
+
+        rp->typedata.text->ellipsize.marquee.always = always;
+
+        return EINA_TRUE;
+     }
+
+   return EINA_FALSE;
+}
+
+EOLIAN Eina_Bool
+_edje_object_part_text_marquee_always_get(Eo *eo_obj EINA_UNUSED, Edje *ed, const char *part)
+{
+   Edje_Real_Part *rp;
+   Edje_Part_Description_Text *desc;
+
+   if (!part) return EINA_FALSE;
+   rp = _edje_real_part_recursive_get(&ed, part);
+   if (!rp) return EINA_FALSE;
+   if ((rp->part->type != EDJE_PART_TYPE_TEXTBLOCK) &&
+       (rp->part->type != EDJE_PART_TYPE_TEXT))
+     return EINA_FALSE;
+
+   if (rp->typedata.text)
+      return rp->typedata.text->ellipsize.marquee.always;
+
+   return EINA_FALSE;
+}
+/* END */
+
 /* vim:set ts=8 sw=3 sts=3 expandtab cino=>5n-2f0^-2{2(0W1st0 :*/