e_containers: Add client or zone iterators for each container 47/321547/1
authorJunseok Kim <juns.kim@samsung.com>
Tue, 18 Mar 2025 12:19:42 +0000 (21:19 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Tue, 25 Mar 2025 05:35:27 +0000 (14:35 +0900)
Change-Id: I66f547868b106750353ccdfd1d684fb5ca130f69

src/bin/compmgr/e_comp_intern.h
src/bin/core/e_desk_area_intern.h
src/bin/core/e_desk_intern.h
src/bin/core/e_zone_intern.h

index 741b436177dc2b3753fc95499689c2d0e3a1f318..3aff73768232c7ca0470bde6b8c5acb7ac07bb50 100644 (file)
@@ -4,6 +4,14 @@
 #include "e_intern.h"
 #include "e_comp.h"
 
+// NOTE:: the comp->zones should not modified during iteration
+#define E_COMP_ZONE_FOREACH(ZONE) \
+   for(ZONE = eina_list_data_get(e_comp_zone_list_get()) ; ZONE ; ZONE = eina_list_data_get(eina_list_next(eina_list_data_find_list(e_comp_zone_list_get(), ZONE))))
+
+// NOTE:: the comp->zones should not modified during iteration
+#define E_COMP_ZONE_REVERSE_FOREACH(ZONE) \
+   for(ZONE = eina_list_last_data_get(e_comp_zone_list_get()) ; ZONE ; ZONE = eina_list_data_get(eina_list_prev(eina_list_data_find_list(e_comp_zone_list_get(), ZONE))))
+
 EINTERN Eina_Bool     e_comp_init(void);
 EINTERN int           e_comp_shutdown(void);
 
index 8d389291e5661bf29eb08ec6b9893c7397113d3a..6e219688bd238834d78a18bbe8e2a4d67534ff5d 100644 (file)
@@ -9,6 +9,12 @@
 
 #define E_DESK_AREA_TYPE 0xE0b01006
 
+#define E_DESK_AREA_CLIENT_FOREACH(DESK_AREA, EC) \
+   for (EC = e_desk_area_bottom_ec_get(DESK_AREA); EC; EC = e_desk_area_client_above_get(DESK_AREA, EC))
+
+#define E_DESK_AREA_CLIENT_REVERSE_FOREACH(DESK_AREA, EC) \
+   for (EC = e_desk_area_top_ec_get(DESK_AREA); EC; EC = e_desk_area_client_below_get(DESK_AREA, EC))
+
 typedef enum _E_Desk_Area_Client_Layer
 {
    E_DESK_AREA_CLIENT_LAYER_DESKTOP,
index aed624742c1d008399503476d9d365d575a31b1a..f79ac97d8932bdfef6234a2fa3c736817653143e 100644 (file)
@@ -7,6 +7,12 @@
 #include <wayland-server.h>
 #include <libds-tizen/screen.h>
 
+#define E_DESK_CLIENT_FOREACH(DESK, EC) \
+   for (EC = e_desk_client_bottom_get(DESK); EC; EC = e_desk_client_above_get(DESK, EC))
+
+#define E_DESK_CLIENT_REVERSE_FOREACH(DESK, EC) \
+   for (EC = e_desk_client_top_get(DESK); EC; EC = e_desk_client_below_get(DESK, EC))
+
 typedef struct _E_Desk_Data_Top_Visible_Get
 {
    E_Desk *desk;
index c7e3e23c211ed1e91e3c0a7da342b6bc81584b8b..07def5dd5593ecd6b997243825c9c81c6e24d9bf 100644 (file)
@@ -7,10 +7,10 @@
 #include <wayland-server.h>
 
 #define E_ZONE_CLIENT_FOREACH(ZONE, EC) \
-  for (EC = e_zone_client_bottom_get(ZONE); EC; EC = e_zone_client_above_get(ZONE, EC))
+   for (EC = e_zone_client_bottom_get(ZONE); EC; EC = e_zone_client_above_get(ZONE, EC))
 
 #define E_ZONE_CLIENT_REVERSE_FOREACH(ZONE, EC) \
-  for (EC = e_zone_client_top_get(ZONE); EC; EC = e_zone_client_below_get(ZONE, EC))
+   for (EC = e_zone_client_top_get(ZONE); EC; EC = e_zone_client_below_get(ZONE, EC))
 
 typedef struct _E_Zone_Obstacle             E_Zone_Obstacle;