e_comp_object: add API - e_comp_object_transform_bg_color_set 84/259984/2 accepted/tizen/unified/20210618.120751 submit/tizen/20210617.084705
authorDoyoun Kang <doyoun.kang@samsung.com>
Thu, 17 Jun 2021 06:47:58 +0000 (15:47 +0900)
committerDoyoun Kang <doyoun.kang@samsung.com>
Thu, 17 Jun 2021 07:29:48 +0000 (16:29 +0900)
we add a new API to support changing a color of the transform background object as below
- E_API void e_comp_object_transform_bg_color_set(Evas_Object *obj, int r, int g, int b, int a);

Change-Id: Ia3795ca1dfb50f6ce13fc2ef3148b6bb25e27995

src/bin/e_comp_object.c
src/bin/e_comp_object.h

index 9798e49..1b481b8 100644 (file)
@@ -89,6 +89,10 @@ typedef struct _E_Comp_Object
    Evas_Object         *shobj;  // shadow object
    Evas_Object         *effect_obj; // effects object
    Evas_Object         *transform_bg_obj;   // transform backgroung with keep_ratio option
+   struct
+     {
+        int r, g, b, a;
+     } transform_bg_color;
    Evas_Object         *transform_tranp_obj;// transform transp rect obj
    Evas_Object         *default_input_obj; // default input object
    unsigned int         layer; //e_comp_canvas_layer_map(cw->ec->layer)
@@ -3094,6 +3098,10 @@ _e_comp_smart_add(Evas_Object *obj)
    cw->opacity = 255.0;
    cw->external_content = 0;
    cw->content_type = E_COMP_OBJECT_CONTENT_TYPE_NONE;
+   cw->transform_bg_color.r = 0;
+   cw->transform_bg_color.g = 0;
+   cw->transform_bg_color.b = 0;
+   cw->transform_bg_color.a = 255;
    evas_object_data_set(obj, "comp_obj", cw);
    evas_object_move(obj, -1, -1);
    /* intercept ALL the callbacks! */
@@ -5572,7 +5580,11 @@ e_comp_object_transform_bg_set(Evas_Object *obj, Eina_Bool set)
              evas_object_move(o, 0, 0);
              evas_object_resize(o, 1, 1);
              evas_object_render_op_set(o, EVAS_RENDER_COPY);
-             evas_object_color_set(o, 0, 0, 0, 255);
+             evas_object_color_set(o,
+                                   cw->transform_bg_color.r,
+                                   cw->transform_bg_color.g,
+                                   cw->transform_bg_color.b,
+                                   cw->transform_bg_color.a);
              if (cw->visible) evas_object_show(o);
 
              cw->transform_bg_obj = o;
@@ -5590,6 +5602,26 @@ e_comp_object_transform_bg_set(Evas_Object *obj, Eina_Bool set)
 }
 
 E_API void
+e_comp_object_transform_bg_color_set(Evas_Object *obj, int r, int g, int b, int a)
+{
+   API_ENTRY;
+
+   cw->transform_bg_color.r = r;
+   cw->transform_bg_color.g = g;
+   cw->transform_bg_color.b = b;
+   cw->transform_bg_color.a = a;
+
+   if (cw->transform_bg_obj)
+     {
+        evas_object_color_set(cw->transform_bg_obj,
+                              cw->transform_bg_color.r,
+                              cw->transform_bg_color.g,
+                              cw->transform_bg_color.b,
+                              cw->transform_bg_color.a);
+     }
+}
+
+E_API void
 e_comp_object_transform_bg_vertices_set(Evas_Object *obj, E_Util_Transform_Rect_Vertex *vertices)
 {
    API_ENTRY;
index 5f8433c..2d01277 100644 (file)
@@ -160,6 +160,7 @@ E_API void e_comp_object_mask_set(Evas_Object *obj, Eina_Bool set);
 E_API Eina_Bool e_comp_object_mask_has(Evas_Object *obj);
 E_API void e_comp_object_size_update(Evas_Object *obj, int w, int h);
 E_API void e_comp_object_transform_bg_set(Evas_Object *obj, Eina_Bool set);
+E_API void e_comp_object_transform_bg_color_set(Evas_Object *obj, int r, int g, int b, int a);
 E_API void e_comp_object_transform_bg_vertices_set(Evas_Object *obj, E_Util_Transform_Rect_Vertex *vertices);
 EINTERN void e_comp_object_transform_bg_vertices_set_with_zoom(Evas_Object *obj, E_Util_Transform_Rect_Vertex *vertices, double zoomx, double zoomy, Evas_Coord cx, Evas_Coord cy);
 E_API void e_comp_object_transform_transp_set(Evas_Object *obj, Eina_Bool set);