e_zone: change evas_object to e_view 46/321346/1
authorSooChan Lim <sc1.lim@samsung.com>
Tue, 18 Mar 2025 10:17:02 +0000 (19:17 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Wed, 19 Mar 2025 05:55:18 +0000 (14:55 +0900)
Change-Id: I4bf51b86e4fe15b350c566065eb87e50d7bbc6bc

src/bin/core/e_zone.c
src/include/e_zone.h

index d82aed1f788e132f48b7f92291865cc32e79cfd4..3888465d48f5cc910ef05f2107a54c742c639052 100644 (file)
@@ -2,10 +2,12 @@
 #include "e_client_intern.h"
 #include "e_desk_intern.h"
 #include "e_comp_intern.h"
+#include "e_comp_canvas_intern.h"
 
 #include "e_focus_intern.h"
 #include "e_view_intern.h"
 #include "e_view_client_intern.h"
+#include "e_view_rect.h"
 
 #define ZONE_EC_DATA_KEY  "E_Zone_Client"
 
@@ -26,6 +28,8 @@ typedef struct _E_Zone_Private E_Zone_Private;
 struct _E_Zone_Private
 {
    E_Zone *zone;
+   E_View_Rect *bg_event_view_rect;
+   E_View_Rect *bg_clip_view_rect;
 
    struct
      {
@@ -196,8 +200,14 @@ e_zone_new(int num, int id, int x, int y, int w, int h)
 {
    E_Comp *comp;
    E_Zone *zone;
-   Evas_Object *o;
    E_Event_Zone_Add *ev;
+   E_Zone_Private *zone_priv;
+   E_View_Tree *layer_tree;
+   E_View_Rect *rect;
+   E_View *view;
+   int bg_clip_color[4] = {255, 255, 255, 255};
+   int bg_event_color[4] = {0, 0, 0, 0};
+
    char name[40];
 
    zone = E_OBJECT_ALLOC(E_Zone, E_ZONE_TYPE, _e_zone_free);
@@ -209,6 +219,8 @@ e_zone_new(int num, int id, int x, int y, int w, int h)
         return NULL;
      }
 
+   zone_priv = PRI(zone);
+
    zone->x = x;
    zone->y = y;
    zone->w = w;
@@ -227,27 +239,23 @@ e_zone_new(int num, int id, int x, int y, int w, int h)
    comp = e_comp_get();
    comp->zones = eina_list_append(comp->zones, zone);
 
-   o = evas_object_rectangle_add(comp->evas);
-   zone->bg_clip_object = o;
-   evas_object_repeat_events_set(o, 1);
-   evas_object_layer_set(o, E_LAYER_BG);
-   evas_object_name_set(o, "zone->bg_clip_object");
-   evas_object_move(o, x, y);
-   evas_object_resize(o, w, h);
-   evas_object_color_set(o, 255, 255, 255, 255);
-   evas_object_show(o);
-
-   o = evas_object_rectangle_add(comp->evas);
-   zone->bg_event_object = o;
-   evas_object_name_set(o, "zone->bg_event_object");
-   evas_object_clip_set(o, zone->bg_clip_object);
-   evas_object_layer_set(o, E_LAYER_BG);
-   evas_object_repeat_events_set(o, 1);
-   evas_object_move(o, x, y);
-   evas_object_resize(o, w, h);
-   evas_object_color_set(o, 0, 0, 0, 0);
-   evas_object_repeat_events_set(o, 1);
-   evas_object_show(o);
+   layer_tree = e_canvas_layer_view_tree_get(e_comp_canvas_get(), E_CANVAS_LAYER_BG);
+   rect = e_view_rect_create(layer_tree, w, h, bg_clip_color);
+   zone_priv->bg_clip_view_rect = rect;
+   view = e_view_rect_view_get(rect);
+   e_view_name_set(view, "zone->bg_clip_view");
+   e_view_pass_events_set(view, true);
+   e_view_position_set(view, x, y);
+   e_view_show(view);
+
+   rect = e_view_rect_create(layer_tree, w, h, bg_event_color);
+   zone_priv->bg_event_view_rect = rect;
+   view = e_view_rect_view_get(rect);
+   e_view_name_set(view, "zone->bg_event_view");
+   e_view_clip_set(view, e_view_rect_view_get(zone_priv->bg_clip_view_rect));
+   e_view_pass_events_set(view, true);
+   e_view_position_set(view, x, y);
+   e_view_show(view);
 
    zone->desk_x_count = 0;
    zone->desk_y_count = 0;
@@ -287,6 +295,7 @@ e_zone_move(E_Zone *zone,
 {
    E_Event_Zone_Move_Resize *ev;
    int dx, dy;
+   E_View_Rect *bg_event_view_rect, *bg_clip_view_rect;
 
    E_OBJECT_CHECK(zone);
    E_OBJECT_TYPE_CHECK(zone, E_ZONE_TYPE);
@@ -296,8 +305,13 @@ e_zone_move(E_Zone *zone,
    dy = y - zone->y;
    zone->x = x;
    zone->y = y;
-   evas_object_move(zone->bg_event_object, x, y);
-   evas_object_move(zone->bg_clip_object, x, y);
+
+   bg_event_view_rect = PRI(zone)->bg_event_view_rect;
+   bg_clip_view_rect = PRI(zone)->bg_clip_view_rect;
+
+
+   e_view_position_set(e_view_rect_view_get(bg_event_view_rect), x, y);
+   e_view_position_set(e_view_rect_view_get(bg_clip_view_rect), x, y);
 
    ev = E_NEW(E_Event_Zone_Move_Resize, 1);
    if (ev)
@@ -330,8 +344,9 @@ e_zone_resize(E_Zone *zone,
    dh = h - zone->h;
    zone->w = w;
    zone->h = h;
-   evas_object_resize(zone->bg_event_object, w, h);
-   evas_object_resize(zone->bg_clip_object, w, h);
+
+   e_view_rect_size_set(PRI(zone)->bg_event_view_rect, w, h);
+   e_view_rect_size_set(PRI(zone)->bg_clip_view_rect, w, h);
 
    ev = E_NEW(E_Event_Zone_Move_Resize, 1);
    if (ev)
@@ -357,6 +372,7 @@ e_zone_move_resize(E_Zone *zone,
 {
    E_Event_Zone_Move_Resize *ev;
    int dx, dy, dw, dh;
+   E_View_Rect *bg_event_view_rect, *bg_clip_view_rect;
 
    E_OBJECT_CHECK_RETURN(zone, EINA_FALSE);
    E_OBJECT_TYPE_CHECK_RETURN(zone, E_ZONE_TYPE, EINA_FALSE);
@@ -373,10 +389,13 @@ e_zone_move_resize(E_Zone *zone,
    zone->w = w;
    zone->h = h;
 
-   evas_object_move(zone->bg_event_object, x, y);
-   evas_object_move(zone->bg_clip_object, x, y);
-   evas_object_resize(zone->bg_event_object, w, h);
-   evas_object_resize(zone->bg_clip_object, w, h);
+   bg_event_view_rect = PRI(zone)->bg_event_view_rect;
+   bg_clip_view_rect = PRI(zone)->bg_clip_view_rect;
+
+   e_view_rect_size_set(bg_event_view_rect, w, h);
+   e_view_rect_size_set(bg_clip_view_rect, w, h);
+   e_view_position_set(e_view_rect_view_get(bg_event_view_rect), x, y);
+   e_view_position_set(e_view_rect_view_get(bg_clip_view_rect), x, y);
 
    ev = E_NEW(E_Event_Zone_Move_Resize, 1);
    if (ev)
@@ -705,6 +724,8 @@ e_zone_orientation_force_update_del(E_Zone *zone, E_Client *client)
 static void
 _e_zone_free(E_Zone *zone)
 {
+   E_View_Rect *bg_event_view_rect, *bg_clip_view_rect;
+
    wl_signal_emit(&PRI(zone)->events.destroy, NULL);
 
    if(zone->focus) e_focus_del(zone->focus);
@@ -716,8 +737,11 @@ _e_zone_free(E_Zone *zone)
 
    if (zone->name) eina_stringshare_del(zone->name);
 
-   evas_object_del(zone->bg_event_object);
-   evas_object_del(zone->bg_clip_object);
+   bg_event_view_rect = PRI(zone)->bg_event_view_rect;
+   bg_clip_view_rect = PRI(zone)->bg_clip_view_rect;
+
+   e_view_destroy(e_view_rect_view_get(bg_event_view_rect));
+   e_view_destroy(e_view_rect_view_get(bg_clip_view_rect));
 
    e_view_destroy(zone->base);
    e_view_destroy(zone->over);
index 030731991241f8fd29bb50ccd7793e0a284794ec..517338cbbf595368d644b8f0808cd776adcf5e39 100644 (file)
@@ -58,8 +58,8 @@ struct _E_Zone
     * this zone belongs to. */
    int num;
 
-   Evas_Object *bg_event_object;
-   Evas_Object *bg_clip_object;
+   E_DEPRECATED Evas_Object *bg_event_object;
+   E_DEPRECATED Evas_Object *bg_clip_object;
 
    int          desk_x_count, desk_y_count;
    int          desk_x_current, desk_y_current;