Apply capsulation of E_Zone structure 25/316025/2
authorjinbong.lee <jinbong.lee@samsung.com>
Mon, 9 Dec 2024 09:05:41 +0000 (18:05 +0900)
committerjinbong.lee <jinbong.lee@samsung.com>
Mon, 9 Dec 2024 10:53:41 +0000 (19:53 +0900)
Change-Id: Idf0ed02c659b83624a62f5a36124adac129c2c5d
Signed-off-by: jinbong.lee <jinbong.lee@samsung.com>
src/e_mod_effect_rotation.c

index dcff681bd98296d27f68a72f0aef39a8091c0ac1..3d75846f3e8c8f5943cc2eb48383c22fd1703a59 100644 (file)
@@ -168,25 +168,29 @@ _rotation_effect_targets_get(Rotation_Effect *effect, E_Desk *desk)
    E_Zone *zone;
    E_Desk *ec_desk;
    int ec_x, ec_y, ec_w, ec_h;
+   int zx, zy, zw, zh;
 
    if (!effect) return NULL;
 
-   if (effect->zone->display_state == E_ZONE_DISPLAY_STATE_OFF)
+   if (e_zone_display_state_get(effect->zone) == E_ZONE_DISPLAY_STATE_OFF)
      return NULL;
 
    x = y = w = h = 0;
-
-   t = eina_tiler_new(effect->zone->w + edge, effect->zone->h + edge);
+   zx = zy = zw = zh = 0;
+   e_zone_useful_geometry_get(effect->zone, &zx, &zy, &zw, &zh);
+   t = eina_tiler_new(zw + edge, zh + edge);
    eina_tiler_tile_size_set(t, 1, 1);
 
-   EINA_RECTANGLE_SET(&r, effect->zone->x, effect->zone->y, effect->zone->w, effect->zone->h);
+   EINA_RECTANGLE_SET(&r, zx, zy, zw, zh);
    eina_tiler_rect_add(t, &r);
 
-   o = evas_object_top_get(e_comp->evas);
+   o = evas_object_top_get(e_comp_evas_get());
    for (; o; o = evas_object_below_get(o))
      {
+        E_View* view;
         if (!evas_object_visible_get(o)) continue;
-        if (o == effect->zone->over) continue;
+        view = evas_object_data_get(o, "e_view");
+        if (view && (view == e_zone_over_get(effect->zone))) continue;
         if (o == effect->bg) continue;
         if (evas_object_layer_get(o) > E_LAYER_EFFECT) continue;
         if (!e_util_strcmp(evas_object_name_get(o), "layer_obj")) continue;
@@ -195,6 +199,7 @@ _rotation_effect_targets_get(Rotation_Effect *effect, E_Desk *desk)
         ec = evas_object_data_get(o, "E_Client");
         if (ec)
           {
+             int curr_zone_angle;
              ec_desk = e_comp_desk_find_by_ec(ec);
              if (!ec_desk) continue;
              if (ec_desk != desk) continue;
@@ -203,16 +208,18 @@ _rotation_effect_targets_get(Rotation_Effect *effect, E_Desk *desk)
              zone = e_comp_zone_find_by_ec(ec);
              if (!zone) continue;
              e_client_geometry_get(ec, &ec_x, &ec_y, &ec_w, &ec_h);
-             if (!E_INTERSECTS(ec_x, ec_y, ec_w, ec_h, zone->x, zone->y, zone->w, zone->h))
+             e_zone_useful_geometry_get(zone, &zx, &zy, &zw, &zh);
+             if (!E_INTERSECTS(ec_x, ec_y, ec_w, ec_h, zx, zy, zw, zh))
                continue;
              if ((e_client_visibility_obscured_get(ec) != E_VISIBILITY_UNOBSCURED) &&
                  (e_client_iconic_get(ec)))
                continue;
 
+             curr_zone_angle = e_zone_rotation_curr_angle_get(effect->zone);
              if ((!e_client_animatable_get(ec)) ||
                  (e_client_video_client_has(ec)) ||
-                 (!_rotation_effect_available(ec, effect->zone->rot.curr)) ||
-                 (e_client_e_state_rot_angle_current_get(ec) == effect->zone->rot.curr))
+                 (!_rotation_effect_available(ec, curr_zone_angle)) ||
+                 (e_client_e_state_rot_angle_current_get(ec) == curr_zone_angle))
                {
                   if (l) eina_list_free(l);
                   eina_tiler_free(t);
@@ -373,7 +380,7 @@ _rotation_effect_object_create(Evas_Object *o)
         buffer = e_pixmap_resource_get(e_client_pixmap_get(ec));
         if (!buffer) goto fail;
 
-        img = evas_object_image_filled_add(e_comp->evas);
+        img = evas_object_image_filled_add(e_comp_evas_get());
         e_util_size_debug_set(img, 1);
         evas_object_image_colorspace_set(img, EVAS_COLORSPACE_ARGB8888);
         evas_object_image_smooth_scale_set(img, e_comp_config_get()->smooth_windows);
@@ -479,7 +486,7 @@ _rotation_effect_object_create(Evas_Object *o)
 
         evas_object_geometry_get(o, &x, &y, &w, &h);
 
-        img = evas_object_image_filled_add(e_comp->evas);
+        img = evas_object_image_filled_add(e_comp_evas_get());
         e_util_size_debug_set(img, 1);
 
         evas_object_image_colorspace_set(img, EVAS_COLORSPACE_ARGB8888);
@@ -526,16 +533,18 @@ _rotation_effect_begin_create(Rotation_Effect *effect, Eina_List *targets, E_Des
    Evas_Object *target;
    Eina_List *l;
    int x, y, w, h;
+   int zx, zy, zw, zh;
 
    ctx_begin = E_NEW(Rotation_Effect_Begin_Context, 1);
    if (!ctx_begin) return NULL;
 
-   ctx_begin->layout = e_layout_add(e_comp->evas);
+   ctx_begin->layout = e_layout_add(e_comp_evas_get());
    e_util_size_debug_set(ctx_begin->layout, 1);
    evas_object_name_set(ctx_begin->layout, "rotation-begin-effect-layout");
-   e_layout_virtual_size_set(ctx_begin->layout, effect->zone->w, effect->zone->h);
-   evas_object_move(ctx_begin->layout, effect->zone->x, effect->zone->y);
-   evas_object_resize(ctx_begin->layout, effect->zone->w, effect->zone->h);
+   e_zone_useful_geometry_get(effect->zone, &zx, &zy, &zw, &zh);
+   e_layout_virtual_size_set(ctx_begin->layout, zw, zh);
+   evas_object_move(ctx_begin->layout, zx, zy);
+   evas_object_resize(ctx_begin->layout, zw, zh);
    evas_object_layer_set(ctx_begin->layout, E_LAYER_EFFECT);
 
    EINA_LIST_REVERSE_FOREACH(targets, l, target)
@@ -569,7 +578,7 @@ _rotation_effect_begin_create(Rotation_Effect *effect, Eina_List *targets, E_Des
 
    EFFINF("Rotation Begin Created", NULL);
 
-   int diff = effect->zone->rot.prev - effect->zone->rot.curr;
+   int diff = e_zone_rotation_prev_angle_get(effect->zone) - e_zone_rotation_curr_angle_get(effect->zone);
    if (diff == 270) diff = - 90;
    else if (diff == -270) diff = 90;
    ctx_begin->src = 0.0;
@@ -587,16 +596,18 @@ _rotation_effect_end_create(Rotation_Effect *effect, Eina_List *targets, E_Desk
    Eina_List *l;
    Evas_Object *target;
    int x, y, w, h;
+   int zx, zy, zw, zh;
 
    ctx_end = E_NEW(Rotation_Effect_End_Context, 1);
    if (!ctx_end) return NULL;
 
-   ctx_end->layout = e_layout_add(e_comp->evas);
+   ctx_end->layout = e_layout_add(e_comp_evas_get());
    e_util_size_debug_set(ctx_end->layout, 1);
    evas_object_name_set(ctx_end->layout, "rotation-end-effect-layout");
-   e_layout_virtual_size_set(ctx_end->layout, effect->zone->w, effect->zone->h);
-   evas_object_move(ctx_end->layout, effect->zone->x, effect->zone->y);
-   evas_object_resize(ctx_end->layout, effect->zone->w, effect->zone->h);
+   e_zone_useful_geometry_get(effect->zone, &zx, &zy, &zw, &zh);
+   e_layout_virtual_size_set(ctx_end->layout, zw, zh);
+   evas_object_move(ctx_end->layout, zx, zy);
+   evas_object_resize(ctx_end->layout, zw, zh);
    evas_object_layer_set(ctx_end->layout, E_LAYER_EFFECT);
 
    EINA_LIST_REVERSE_FOREACH(targets, l, target)
@@ -806,6 +817,8 @@ _norender_timer_timeout(void *data)
 static void
 _rotation_effect_start(Rotation_Effect *effect)
 {
+   int zw, zh;
+
    if ((!effect->ctx_begin) || (!effect->ctx_end)) return;
    if (effect->running) return;
 
@@ -834,7 +847,8 @@ _rotation_effect_start(Rotation_Effect *effect)
    evas_object_show(effect->ctx_end->layout);
 
    evas_object_move(effect->bg, 0, 0);
-   evas_object_resize(effect->bg, effect->zone->w, effect->zone->h);
+   e_zone_useful_geometry_get(effect->zone, NULL, NULL, &zw, &zh);
+   evas_object_resize(effect->bg, zw, zh);
    evas_object_lower(effect->bg);
    evas_object_show(effect->bg);
 
@@ -913,6 +927,7 @@ _rotation_effect_cb_zone_rotation_begin(void *data, int type, void *event)
    E_Event_Zone_Rotation_Change_Begin *ev = event;
    E_Zone *zone;
    E_Desk *desk;
+   int rot_prev, rot_curr;
 
    effect = (Rotation_Effect *)data;
    if (!effect) return ECORE_CALLBACK_PASS_ON;
@@ -920,14 +935,17 @@ _rotation_effect_cb_zone_rotation_begin(void *data, int type, void *event)
    zone = ev->zone;
    if (!zone) return ECORE_CALLBACK_PASS_ON;
 
+   rot_prev = e_zone_rotation_prev_angle_get(zone);
+   rot_curr = e_zone_rotation_curr_angle_get(zone);
+
    EFFINF("Zone rotation begin zone(prev:%d cur:%d)",
           NULL,
-          zone->rot.prev, zone->rot.curr);
+          rot_prev, rot_curr);
 
-   if (zone->rot.prev == zone->rot.curr) return ECORE_CALLBACK_PASS_ON;
+   if (rot_prev == rot_curr) return ECORE_CALLBACK_PASS_ON;
 
-   _rotation_zone->curr_angle = zone->rot.curr;
-   _rotation_zone->prev_angle = zone->rot.prev;
+   _rotation_zone->curr_angle = rot_curr;
+   _rotation_zone->prev_angle = rot_prev;
 
    desk = e_desk_current_get(zone);
    _rotation_effect_animator_begin_prepare(effect, desk);
@@ -945,6 +963,7 @@ _rotation_effect_cb_zone_rotation_end(void *data, int type, void *event)
    E_Event_Zone_Rotation_Change_End *ev = event;
    E_Zone *zone;
    E_Desk *desk;
+   int rot_curr, rot_prev;
 
    effect = (Rotation_Effect *)data;
    if (!effect) return ECORE_CALLBACK_PASS_ON;
@@ -952,8 +971,11 @@ _rotation_effect_cb_zone_rotation_end(void *data, int type, void *event)
    zone = ev->zone;
    if (!zone) return ECORE_CALLBACK_PASS_ON;
 
+   rot_prev = e_zone_rotation_prev_angle_get(zone);
+   rot_curr = e_zone_rotation_curr_angle_get(zone);
+
    EFFINF("Zone rotation end angle(prev:%d cur:%d)", NULL,
-          zone->rot.prev, zone->rot.curr);
+          rot_prev, rot_curr);
 
    if (effect->running) return ECORE_CALLBACK_PASS_ON;
    if (effect->waiting_list)
@@ -1145,7 +1167,7 @@ _rotation_effect_create(E_Zone *zone)
 
    rotation_effect->zone = zone;
 
-   rotation_effect->bg = evas_object_rectangle_add(e_comp->evas);
+   rotation_effect->bg = evas_object_rectangle_add(e_comp_evas_get());
    e_util_size_debug_set(rotation_effect->bg, 1);
    evas_object_color_set(rotation_effect->bg, 0, 0, 0, 255);
    evas_object_layer_set(rotation_effect->bg, E_LAYER_EFFECT);
@@ -1172,9 +1194,11 @@ static Rotation_Zone *
 _rotation_zone_create(E_Zone *zone)
 {
    Rotation_Zone *rotation_zone = NULL;
+   int zw, zh;
 
    if (!zone) return NULL;
-   if ((zone->w == 0) || (zone->h == 0)) return NULL;
+   e_zone_useful_geometry_get(zone, NULL, NULL, &zw, &zh);
+   if ((zw == 0) || (zh == 0)) return NULL;
 
    rotation_zone = E_NEW(Rotation_Zone, 1);
    if (!rotation_zone) return NULL;
@@ -1188,8 +1212,8 @@ _rotation_zone_create(E_Zone *zone)
      }
 
    rotation_zone->zone = zone;
-   rotation_zone->curr_angle = zone->rot.curr;
-   rotation_zone->prev_angle = zone->rot.prev;
+   rotation_zone->curr_angle = e_zone_rotation_curr_angle_get(zone);
+   rotation_zone->prev_angle = e_zone_rotation_prev_angle_get(zone);
 
    E_LIST_HANDLER_APPEND(rotation_zone->event_hdlrs,
                          E_EVENT_ZONE_ROTATION_CHANGE_BEGIN,