interface: add Efl.Gfx.Color interface for color related APIs
authorAmitesh Singh <amitesh.sh@samsung.com>
Wed, 20 Dec 2017 07:34:01 +0000 (16:34 +0900)
committerWonki Kim <wonki_.kim@samsung.com>
Wed, 10 Jan 2018 11:08:13 +0000 (20:08 +0900)
This would eventually turn into mixin class later after adding
more color related helper functions.

23 files changed:
src/Makefile_Efl.am
src/lib/efl/Efl.h
src/lib/efl/interfaces/efl_gfx.eo
src/lib/efl/interfaces/efl_gfx_blur.eo
src/lib/efl/interfaces/efl_gfx_buffer.eo
src/lib/efl/interfaces/efl_gfx_color.eo [new file with mode: 0644]
src/lib/efl/interfaces/efl_interfaces_main.c
src/lib/elementary/efl_ui_bg_widget.c
src/lib/elementary/efl_ui_bg_widget.eo
src/lib/elementary/efl_ui_image.c
src/lib/elementary/efl_ui_image.eo
src/lib/elementary/efl_ui_widget_part_bg.eo
src/lib/elementary/efl_ui_widget_part_shadow.eo
src/lib/elementary/efl_ui_win.c
src/lib/elementary/efl_ui_win_part.eo
src/lib/elementary/elm_widget.c
src/lib/elementary/elm_widget.eo
src/lib/evas/canvas/efl_canvas_group.eo
src/lib/evas/canvas/efl_canvas_object.eo
src/lib/evas/canvas/efl_vg.eo
src/lib/evas/canvas/evas_object_main.c
src/lib/evas/canvas/evas_object_smart.c
src/lib/evas/canvas/evas_vg_node.c

index a1c31b8..2b0f9a5 100644 (file)
@@ -2,6 +2,7 @@
 efl_eolian_legacy_files = \
        lib/efl/interfaces/efl_gfx_fill.eo \
        lib/efl/interfaces/efl_gfx.eo \
+       lib/efl/interfaces/efl_gfx_color.eo \
        lib/efl/interfaces/efl_image.eo \
        lib/efl/interfaces/efl_image_animated.eo \
        lib/efl/interfaces/efl_input_device.eo \
index bb22f97..8505afa 100644 (file)
@@ -115,6 +115,7 @@ typedef Efl_Gfx_Path_Command_Type Efl_Gfx_Path_Command;
 
 /* Graphics */
 #include "interfaces/efl_gfx.eo.h"
+#include "interfaces/efl_gfx_color.eo.h"
 #include "interfaces/efl_gfx_buffer.eo.h"
 #include "interfaces/efl_gfx_stack.eo.h"
 #include "interfaces/efl_gfx_fill.eo.h"
index 3d073c2..c0ab8b3 100644 (file)
@@ -49,46 +49,6 @@ interface Efl.Gfx {
             rect: Eina.Rect; [[The X,Y position and W,H size, in pixels.]]
          }
       }
-      @property color {
-         set {
-            [[Sets the general/main color of the given Evas object to the given
-              one.
-
-              See also @.color.get (for an example)
-
-              These color values are expected to be premultiplied by alpha.
-            ]]
-         }
-         get {
-            [[Retrieves the general/main color of the given Evas object.
-
-              Retrieves the main color's RGB component (and alpha channel)
-              values, which range from 0 to 255. For the alpha channel,
-              which defines the object's transparency level, 0 means totally
-              transparent, while 255 means opaque. These color values are
-              premultiplied by the alpha value.
-
-              Usually youll use this attribute for text and rectangle objects,
-              where the main color is their unique one. If set for objects
-              which themselves have colors, like the images one, those colors
-              get modulated by this one.
-
-              All newly created Evas rectangles get the default color
-              values of 255 255 255 255 (opaque white).
-
-              Use null pointers on the components you're not interested
-              in: they'll be ignored by the function.
-
-              See the full \@ref Example_Evas_Object_Manipulation "example".
-            ]]
-         }
-         values {
-            r: int; [[The red component of the given color.]]
-            g: int; [[The green component of the given color.]]
-            b: int; [[The blue component of the given color.]]
-            a: int; [[The alpha component of the given color.]]
-         }
-      }
       @property visible {
          [[The visibility of a canvas object.
 
index 7e35ee2..c69e787 100644 (file)
@@ -3,7 +3,7 @@ interface Efl.Gfx.Blur
    [[A simple API to apply blur effects.
 
      Those API's might use @Efl.Gfx.Filter internally. It might be necessary to
-     also specify the color of the blur with @Efl.Gfx.color.
+     also specify the color of the blur with @Efl.Gfx.Color.color.
    ]]
    methods {
       @property radius {
index 917b443..5df340b 100644 (file)
@@ -61,7 +61,7 @@ interface Efl.Gfx.Buffer ()
               whether or not to use alpha channel data. A value of $true
               makes it use alpha channel data, and $false makes it ignore
               that data. Note that this has nothing to do with an object's
-              color as manipulated by @Efl.Gfx.color.set.
+              color as manipulated by @Efl.Gfx.Color.color.set.
             ]]
          }
          get {
diff --git a/src/lib/efl/interfaces/efl_gfx_color.eo b/src/lib/efl/interfaces/efl_gfx_color.eo
new file mode 100644 (file)
index 0000000..d6e06f2
--- /dev/null
@@ -0,0 +1,46 @@
+interface Efl.Gfx.Color
+{
+   [[Efl Gfx Color interface class]]
+   methods {
+      @property color @pure_virtual {
+         set {
+            [[Sets the general/main color of the given Evas object to the given
+              one.
+
+              See also @.color.get (for an example)
+
+              These color values are expected to be premultiplied by alpha.
+            ]]
+         }
+         get {
+            [[Retrieves the general/main color of the given Evas object.
+
+              Retrieves the main color's RGB component (and alpha channel)
+              values, which range from 0 to 255. For the alpha channel,
+              which defines the object's transparency level, 0 means totally
+              transparent, while 255 means opaque. These color values are
+              premultiplied by the alpha value.
+
+              Usually youll use this attribute for text and rectangle objects,
+              where the main color is their unique one. If set for objects
+              which themselves have colors, like the images one, those colors
+              get modulated by this one.
+
+              All newly created Evas rectangles get the default color
+              values of 255 255 255 255 (opaque white).
+
+              Use null pointers on the components you're not interested
+              in: they'll be ignored by the function.
+
+              See the full \@ref Example_Evas_Object_Manipulation "example".
+            ]]
+         }
+         values {
+            r: int;
+            g: int;
+            b: int;
+            a: int;
+         }
+      }
+   }
+}
index af61237..4c45b95 100644 (file)
@@ -26,6 +26,7 @@
 #include "interfaces/efl_text_markup.eo.c"
 
 #include "interfaces/efl_gfx.eo.c"
+#include "interfaces/efl_gfx_color.eo.c"
 #include "interfaces/efl_gfx_buffer.eo.c"
 #include "interfaces/efl_gfx_stack.eo.c"
 #include "interfaces/efl_gfx_fill.eo.c"
index 5c39790..def31d0 100644 (file)
@@ -148,7 +148,7 @@ elm_bg_color_set(Evas_Object *obj,
 }
 
 EOLIAN static void
-_efl_ui_bg_widget_efl_gfx_color_set(Eo *obj EINA_UNUSED, Efl_Ui_Bg_Widget_Data *sd, int r, int g, int b, int a)
+_efl_ui_bg_widget_efl_gfx_color_color_set(Eo *obj EINA_UNUSED, Efl_Ui_Bg_Widget_Data *sd, int r, int g, int b, int a)
 {
    efl_gfx_color_set(sd->rect, r, g, b, a);
 }
@@ -164,7 +164,7 @@ elm_bg_color_get(const Evas_Object *obj,
 }
 
 EOLIAN static void
-_efl_ui_bg_widget_efl_gfx_color_get(Eo *obj, Efl_Ui_Bg_Widget_Data *sd, int *r, int *g, int *b, int *a)
+_efl_ui_bg_widget_efl_gfx_color_color_get(Eo *obj, Efl_Ui_Bg_Widget_Data *sd, int *r, int *g, int *b, int *a)
 {
    if (!sd->rect)
      efl_gfx_color_get(efl_super(obj, MY_CLASS), r, g, b, a);
index 2a8cb69..6bfcf62 100644 (file)
@@ -12,7 +12,7 @@ class Efl.Ui.Bg_Widget (Efl.Ui.Layout, Efl.Ui.Bg, Efl.Image.Load)
       Efl.Object.constructor;
       Efl.File.file { get; set; }
       Efl.File.mmap { get; set; }
-      Efl.Gfx.color { get; set; }
+      Efl.Gfx.Color.color { get; set; }
       Efl.Image.scale_type { get; set; }
       Efl.Image.Load.load_size { get; set; }
    }
index 35ee4e7..a807fa5 100644 (file)
@@ -696,7 +696,7 @@ _efl_ui_image_efl_canvas_group_group_member_add(Eo *obj, Efl_Ui_Image_Data *sd,
 }
 
 EOLIAN static void
-_efl_ui_image_efl_gfx_color_set(Eo *obj, Efl_Ui_Image_Data *sd, int r, int g, int b, int a)
+_efl_ui_image_efl_gfx_color_color_set(Eo *obj, Efl_Ui_Image_Data *sd, int r, int g, int b, int a)
 {
    if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_COLOR_SET, 0, r, g, b, a))
      return;
index 9a568ae..4c098c4 100644 (file)
@@ -19,8 +19,8 @@ struct Efl.Ui.Image.Error
 }
 
 class Efl.Ui.Image (Elm.Widget, Efl.Ui.Clickable, Efl.Ui.Draggable,
-                 Efl.File, Efl.Image, Efl.Image.Load, Efl.Player, Efl.Gfx.View, 
-                 Efl.Access.Image, Efl.Access.Widget.Action,
+                 Efl.File, Efl.Image, Efl.Image.Load, Efl.Player, Efl.Gfx.View,
+                 Efl.Access.Image, Efl.Access.Widget.Action, Efl.Gfx.Color,
                  Efl.Orientation, Efl.Flipable,
                  Efl.Ui.View, Efl.Ui.Model.Connect, Efl.Layout.Calc,
                  Efl.Layout.Group, Efl.Layout.Signal)
@@ -92,7 +92,7 @@ class Efl.Ui.Image (Elm.Widget, Efl.Ui.Clickable, Efl.Ui.Draggable,
       Efl.Object.constructor;
       Efl.File.file { get; set; }
       Efl.File.mmap { set; }
-      Efl.Gfx.color { set; }
+      Efl.Gfx.Color.color { set; }
       Efl.Gfx.visible { set; }
       Efl.Gfx.position { set; }
       Efl.Gfx.size { set; }
index d624ffc..be56ad1 100644 (file)
@@ -1,11 +1,11 @@
-class Efl.Ui.Widget.Part_Bg (Efl.Ui.Widget.Part, Efl.Ui.Bg)
+class Efl.Ui.Widget.Part_Bg (Efl.Ui.Widget.Part, Efl.Gfx.Color, Efl.Ui.Bg)
 {
    [[Elementary widget internal part background class]]
    data: null;
    implements {
       Efl.File.file { get; set; }
       //Efl.File.mmap { get; set; }
-      Efl.Gfx.color { set; get; }
+      Efl.Gfx.Color.color { set; get; }
       Efl.Image.scale_type { get; set; }
    }
 }
index 8947b9a..8a73e45 100644 (file)
@@ -1,4 +1,4 @@
-class Efl.Ui.Widget.Part_Shadow (Efl.Ui.Widget.Part, Efl.Gfx,
+class Efl.Ui.Widget.Part_Shadow (Efl.Ui.Widget.Part, Efl.Gfx, Efl.Gfx.Color,
                                  Efl.Gfx.Blur, Efl.Gfx.Filter)
 {
    [[A drop-shadow or glow effect around any widget.
@@ -22,7 +22,7 @@ class Efl.Ui.Widget.Part_Shadow (Efl.Ui.Widget.Part, Efl.Gfx,
    ]]
    data: null;
    implements {
-      Efl.Gfx.color { set; get; }
+      Efl.Gfx.Color.color { set; get; }
       Efl.Gfx.Blur.radius { set; get; }
       Efl.Gfx.Blur.offset { set; get; }
       Efl.Gfx.Blur.grow { set; get; }
index d4f064f..c421787 100644 (file)
@@ -7973,7 +7973,7 @@ _efl_ui_win_part_file_get(Eo *obj, Efl_Ui_Win_Data *sd, const char *part, const
 /* Efl.Part begin */
 
 static void
-_efl_ui_win_part_efl_gfx_color_set(Eo *obj, void *_pd EINA_UNUSED, int r, int g, int b, int a)
+_efl_ui_win_part_efl_gfx_color_color_set(Eo *obj, void *_pd EINA_UNUSED, int r, int g, int b, int a)
 {
    Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
    Efl_Ui_Win_Data *sd = efl_data_scope_get(pd->obj, MY_CLASS);
@@ -7985,7 +7985,7 @@ _efl_ui_win_part_efl_gfx_color_set(Eo *obj, void *_pd EINA_UNUSED, int r, int g,
 }
 
 static void
-_efl_ui_win_part_efl_gfx_color_get(Eo *obj, void *_pd EINA_UNUSED, int *r, int *g, int *b, int *a)
+_efl_ui_win_part_efl_gfx_color_color_get(Eo *obj, void *_pd EINA_UNUSED, int *r, int *g, int *b, int *a)
 {
    Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
    Efl_Ui_Win_Data *sd = efl_data_scope_get(pd->obj, MY_CLASS);
index 67fd322..380929c 100644 (file)
@@ -1,11 +1,12 @@
-class Efl.Ui.Win.Part (Efl.Ui.Widget.Part, Efl.Content, Efl.Gfx, Efl.File)
+class Efl.Ui.Win.Part (Efl.Ui.Widget.Part, Efl.Content, Efl.Gfx, Efl.Gfx.Color,
+                       Efl.File)
 {
    [[Efl UI window interal part class]]
    data: null;
    implements {
       Efl.Content.content { get; set; }
       Efl.Content.content_unset;
-      Efl.Gfx.color { get; set; }
+      Efl.Gfx.Color.color { get; set; }
       Efl.File.file { get; set; }
    }
 }
index 60644b4..e084c04 100644 (file)
@@ -915,7 +915,7 @@ _elm_widget_efl_gfx_visible_set(Eo *obj, Elm_Widget_Smart_Data *pd, Eina_Bool vi
 }
 
 EOLIAN static void
-_elm_widget_efl_gfx_color_set(Eo *obj, Elm_Widget_Smart_Data *pd, int r, int g, int b, int a)
+_elm_widget_efl_gfx_color_color_set(Eo *obj, Elm_Widget_Smart_Data *pd, int r, int g, int b, int a)
 {
    Eina_Iterator *it;
    Evas_Object *o;
@@ -6267,7 +6267,7 @@ _efl_ui_widget_part_shadow_efl_gfx_blur_radius_get(Eo *obj, void *_pd EINA_UNUSE
 }
 
 EOLIAN static void
-_efl_ui_widget_part_shadow_efl_gfx_color_set(Eo *obj, void *_pd EINA_UNUSED, int r, int g, int b, int a)
+_efl_ui_widget_part_shadow_efl_gfx_color_color_set(Eo *obj, void *_pd EINA_UNUSED, int r, int g, int b, int a)
 {
    Widget_Shadow *shadow = _widget_shadow_part_get(obj);
    shadow->props.r = r;
@@ -6278,7 +6278,7 @@ _efl_ui_widget_part_shadow_efl_gfx_color_set(Eo *obj, void *_pd EINA_UNUSED, int
 }
 
 EOLIAN static void
-_efl_ui_widget_part_shadow_efl_gfx_color_get(Eo *obj, void *_pd EINA_UNUSED, int *r, int *g, int *b, int *a)
+_efl_ui_widget_part_shadow_efl_gfx_color_color_get(Eo *obj, void *_pd EINA_UNUSED, int *r, int *g, int *b, int *a)
 {
    Widget_Shadow *shadow = _widget_shadow_part_get(obj);
    if (r) *r = shadow->props.r;
@@ -6443,7 +6443,7 @@ _efl_ui_widget_part_bg_efl_file_file_get(Eo *obj, void *pd EINA_UNUSED, const ch
 }
 
 EOLIAN static void
-_efl_ui_widget_part_bg_efl_gfx_color_set(Eo *obj, void *pd EINA_UNUSED, int r, int g, int b, int a)
+_efl_ui_widget_part_bg_efl_gfx_color_color_set(Eo *obj, void *pd EINA_UNUSED, int r, int g, int b, int a)
 {
    Evas_Object *bg_obj = efl_ui_widget_part_bg_get(obj);
 
@@ -6451,7 +6451,7 @@ _efl_ui_widget_part_bg_efl_gfx_color_set(Eo *obj, void *pd EINA_UNUSED, int r, i
 }
 
 EOLIAN static void
-_efl_ui_widget_part_bg_efl_gfx_color_get(Eo *obj, void *pd EINA_UNUSED, int *r, int *g, int *b, int *a)
+_efl_ui_widget_part_bg_efl_gfx_color_color_get(Eo *obj, void *pd EINA_UNUSED, int *r, int *g, int *b, int *a)
 {
    Evas_Object *bg_obj = efl_ui_widget_part_bg_get(obj);
 
index 8ba4b7f..4e335ac 100644 (file)
@@ -610,7 +610,7 @@ abstract Elm.Widget (Efl.Canvas.Group, Efl.Access,
       Efl.Object.destructor;
       Efl.Object.provider_find;
       Efl.Object.debug_name_override;
-      Efl.Gfx.color { set; }
+      Efl.Gfx.Color.color { set; }
       Efl.Gfx.visible { set; }
       Efl.Gfx.position { set; }
       Efl.Gfx.size { set; }
index 77bfecf..4b0477d 100644 (file)
@@ -129,7 +129,7 @@ class Efl.Canvas.Group (Efl.Canvas.Object)
       Efl.Object.constructor;
       Efl.Object.destructor;
       Efl.Object.debug_name_override;
-      Efl.Gfx.color { set; }
+      Efl.Gfx.Color.color { set; }
       Efl.Gfx.visible { set; }
       Efl.Gfx.position { set; }
       Efl.Canvas.Object.clip { set; }
index e6af97e..30a39b4 100644 (file)
@@ -1,7 +1,7 @@
 import efl_text_types;
 import efl_animation_types;
 
-abstract Efl.Canvas.Object (Efl.Object, Efl.Gfx, Efl.Gfx.Stack, Efl.Animator,
+abstract Efl.Canvas.Object (Efl.Object, Efl.Gfx, Efl.Gfx.Color, Efl.Gfx.Stack, Efl.Animator,
                             Efl.Input.Interface, Efl.Gfx.Size.Hint,
                             Efl.Gfx.Map, Efl.Loop.Consumer, Efl.Ui.Base, Efl.Canvas.Pointer)
 {
@@ -598,7 +598,7 @@ abstract Efl.Canvas.Object (Efl.Object, Efl.Gfx, Efl.Gfx.Stack, Efl.Animator,
       Efl.Object.del;
       Efl.Object.debug_name_override;
       Efl.Gfx.visible { get; set; }
-      Efl.Gfx.color { get; set; }
+      Efl.Gfx.Color.color { get; set; }
       Efl.Gfx.geometry { get; set; }
       Efl.Gfx.position { get; set; }
       Efl.Gfx.size { get; set; }
index 54ed2d9..ca14530 100644 (file)
@@ -1,6 +1,6 @@
 import eina_types;
 
-abstract Efl.VG (Efl.Object, Efl.Gfx, Efl.Gfx.Stack, Efl.Duplicate)
+abstract Efl.VG (Efl.Object, Efl.Gfx, Efl.Gfx.Color, Efl.Gfx.Stack, Efl.Duplicate)
 {
    [[Efl vector graphics abstract class]]
    eo_prefix: efl_vg;
@@ -109,7 +109,7 @@ abstract Efl.VG (Efl.Object, Efl.Gfx, Efl.Gfx.Stack, Efl.Duplicate)
       Efl.Object.constructor;
       Efl.Object.destructor;
       Efl.Gfx.visible { get; set; }
-      Efl.Gfx.color { get; set; }
+      Efl.Gfx.Color.color { get; set; }
       Efl.Gfx.size { get; }
       Efl.Gfx.position { get; set; }
       Efl.Gfx.geometry { get; }
index b8d2a0a..2be420a 100644 (file)
@@ -2128,7 +2128,7 @@ evas_object_color_set(Evas_Object *obj, int r, int g, int b, int a)
 }
 
 EOLIAN static void
-_efl_canvas_object_efl_gfx_color_set(Eo *eo_obj, Evas_Object_Protected_Data *obj,
+_efl_canvas_object_efl_gfx_color_color_set(Eo *eo_obj, Evas_Object_Protected_Data *obj,
                                      int r, int g, int b, int a)
 {
    int prev_a;
@@ -2175,7 +2175,7 @@ evas_object_color_get(const Evas_Object *obj, int *r, int *g, int *b, int *a)
 }
 
 EOLIAN static void
-_efl_canvas_object_efl_gfx_color_get(Eo *eo_obj EINA_UNUSED,
+_efl_canvas_object_efl_gfx_color_color_get(Eo *eo_obj EINA_UNUSED,
                                     Evas_Object_Protected_Data *obj,
                                     int *r, int *g, int *b, int *a)
 {
index d53941b..ea5ec38 100644 (file)
@@ -849,7 +849,7 @@ _efl_canvas_group_efl_canvas_object_no_render_set(Eo *eo_obj, Evas_Smart_Data *o
 }
 
 EOLIAN static void
-_efl_canvas_group_efl_gfx_color_set(Eo *eo_obj, Evas_Smart_Data *o, int r, int g, int b, int a)
+_efl_canvas_group_efl_gfx_color_color_set(Eo *eo_obj, Evas_Smart_Data *o, int r, int g, int b, int a)
 {
    if (_evas_object_intercept_call(eo_obj, EVAS_OBJECT_INTERCEPT_CB_COLOR_SET, 0, r, g, b, a))
      return;
index e6af1ee..e5883e4 100644 (file)
@@ -118,7 +118,7 @@ _efl_vg_efl_gfx_visible_get(Eo *obj EINA_UNUSED,
 }
 
 static void
-_efl_vg_efl_gfx_color_set(Eo *obj EINA_UNUSED,
+_efl_vg_efl_gfx_color_color_set(Eo *obj EINA_UNUSED,
                                     Efl_VG_Data *pd,
                                     int r, int g, int b, int a)
 {
@@ -155,7 +155,7 @@ _efl_vg_efl_gfx_color_set(Eo *obj EINA_UNUSED,
 }
 
 static void
-_efl_vg_efl_gfx_color_get(Eo *obj EINA_UNUSED,
+_efl_vg_efl_gfx_color_color_get(Eo *obj EINA_UNUSED,
                                     Efl_VG_Data *pd,
                                     int *r, int *g, int *b, int *a)
 {