#include "e_policy_desk_intern.h"
+#include "e_policy_zone_intern.h"
#include "e_policy_desk_area_intern.h"
+#include "e_policy_container_intern.h"
#include "e_policy_intern.h"
#include "e_desk_area_intern.h"
struct _E_Policy_Desk
{
+ E_Policy_Container container;
+
E_Desk *desk;
E_Zone *zone;
struct wl_listener client_visible_above_get;
struct wl_listener client_visible_below_get;
};
+E_POLICY_CONTAINER_INIT(E_Policy_Desk);
struct _E_Policy_Desk_Private_Client
{
}
}
+static void
+_e_policy_desk_tree_destroy(E_View_Tree *tree)
+{
+ // doing something
+}
+
+static void
+_e_policy_desk_tree_child_add(E_View_Tree *tree, E_View *child)
+{
+ if (!child->eo)
+ return;
+ // doing something
+}
+
+static void
+_e_policy_desk_tree_child_remove(E_View_Tree *tree, E_View *child)
+{
+ if (!child->eo)
+ return;
+ // doing something
+}
+
+E_View_Tree_Impl desk_tree_impl = {
+ .destroy = _e_policy_desk_tree_destroy,
+ .child_add = _e_policy_desk_tree_child_add,
+ .child_remove = _e_policy_desk_tree_child_remove,
+};
+
EINTERN void
e_policy_desk_add(E_Desk *desk)
{
+ E_Policy_Zone *policy_zone;
E_Policy_Desk *pd;
E_Client *ec;
E_Policy_Client *pc;
if (pd) return;
zone = desk->zone;
+ policy_zone = e_policy_zone_get(zone);
+
+ pd = E_NEW(E_Policy_Desk, 1);
+ if (!pd) return;
+
+ ELOGF("POL_DESK", "Policy desk NEW. from zone(ID:%d):%p, policy_zone:%p, desk:%p, policy desk:%p", NULL, zone?zone->id:-1, zone, policy_zone, desk, pd);
+
+ if (!e_policy_container_view_tree_init(e_policy_container_get(pd), &desk_tree_impl, e_policy_container_general_get(policy_zone)))
+ {
+ ERR("Failed to init view tree of desk(ID:%d):%p", desk->id, desk);
+ E_FREE(pd);
+ return;
+ }
/* init smart object */
_e_policy_desk_smart_init(desk);
if (!desk->desk_area.base)
{
e_object_del(E_OBJECT(desk));
+ E_FREE(pd);
return;
}
- pd = E_NEW(E_Policy_Desk, 1);
- if (!pd) return;
-
- ELOGF("POL_DESK", "Policy desk NEW. desk:%p, policy desk:%p", NULL, desk, pd);
-
pd->desk = desk;
pd->zone = desk->zone;
}
}
+ e_policy_container_view_tree_shutdown(e_policy_container_get(pd));
+
eina_hash_del_by_key(hash_policy_desks, &pd->desk);
}
#include "e_desk_area_intern.h"
#include "e_policy_desk_area_intern.h"
+#include "e_policy_container_intern.h"
#include "e_client_intern.h"
#include "e_comp_object_intern.h"
#include "e_comp_canvas_intern.h"
#define POLICY_DESK_AREA_EC_DATA_KEY "E_Policy_Desk_Area_Client"
struct _E_Policy_Desk_Area
{
+ E_Policy_Container container;
+
E_Desk_Area *desk_area;
struct wl_listener geometry_set;
struct wl_listener client_add;
struct wl_listener client_del;
};
+E_POLICY_CONTAINER_INIT(E_Policy_Desk_Area);
struct _E_Policy_Desk_Area_Private_Client
{
}
#endif //CLIENT_DEL_STACK_ISSUE
+static void
+_e_policy_desk_area_tree_destroy(E_View_Tree *tree)
+{
+ // doing something
+}
+
+static void
+_e_policy_desk_area_tree_child_add(E_View_Tree *tree, E_View *child)
+{
+ if (!child->eo)
+ return;
+ // doing something
+}
+
+static void
+_e_policy_desk_area_tree_child_remove(E_View_Tree *tree, E_View *child)
+{
+ if (!child->eo)
+ return;
+ // doing something
+}
+
+E_View_Tree_Impl desk_area_tree_impl = {
+ .destroy = _e_policy_desk_area_tree_destroy,
+ .child_add = _e_policy_desk_area_tree_child_add,
+ .child_remove = _e_policy_desk_area_tree_child_remove,
+};
+
EINTERN E_Policy_Desk_Area *
e_policy_desk_area_new(E_Desk_Area *eda)
{
E_Policy_Desk_Area *pda;
+ E_Policy_Desk *pd;
+ E_Desk *desk;
E_Layer ec_layer;
Evas_Object *obj;
#ifdef NEED_REFINE_EDA_LAYERS_LIST
return pda;
}
+ desk = eda->desk;
+ pd = e_policy_desk_get(desk);
+
pda = E_NEW(E_Policy_Desk_Area, 1);
EINA_SAFETY_ON_NULL_RETURN_VAL(pda, NULL);
- ELOGF("POLICY_DESK_AREA", "new! | DESK_AREA:%p, Policy_Desk_Area:%p", NULL, eda, pda);
+ ELOGF("POLICY_DESK_AREA", "Policy_desk_area new!, desk(ID:%d):%p, policy_desk:%p, desk_area:%p, policy_desk_area:%p",
+ NULL, desk?desk->id:-1, desk, pd, eda, pda);
+
+ if (!e_policy_container_view_tree_init(e_policy_container_get(pda), &desk_area_tree_impl, e_policy_container_general_get(pd)))
+ {
+ ERR("Failed to init view tree of desk area(ID:%d):%p", eda->id, eda);
+ E_FREE(pda);
+ return NULL;
+ }
pda->desk_area = eda;
#include "e_tizen_display_policy_intern.h"
#include "e_policy_stack_intern.h"
#include "e_policy_wl_intern.h"
+#include "e_policy_container_intern.h"
#define ZONE_EC_DATA_KEY "E_Zone_Client"
struct _E_Policy_Zone
{
+ E_Policy_Container container;
+
E_Zone *zone;
Eina_Hash *clients_hash;
struct wl_signal focus_reset;
} events;
};
+E_POLICY_CONTAINER_INIT(E_Policy_Zone);
struct _E_Policy_Zone_Private_Client
{
return policy_zone->zone;
}
+static void
+_e_policy_zone_tree_destroy(E_View_Tree *tree)
+{
+ // doing something
+}
+
+static void
+_e_policy_zone_tree_child_add(E_View_Tree *tree, E_View *child)
+{
+ if (!child->eo)
+ return;
+ // doing something
+}
+
+static void
+_e_policy_zone_tree_child_remove(E_View_Tree *tree, E_View *child)
+{
+ if (!child->eo)
+ return;
+ // doing something
+}
+
+E_View_Tree_Impl zone_tree_impl = {
+ .destroy = _e_policy_zone_tree_destroy,
+ .child_add = _e_policy_zone_tree_child_add,
+ .child_remove = _e_policy_zone_tree_child_remove,
+};
+
EINTERN E_Policy_Zone *
e_policy_zone_new(E_Zone *zone)
{
policy_zone = E_NEW(E_Policy_Zone, 1);
EINA_SAFETY_ON_NULL_RETURN_VAL(policy_zone, NULL);
- policy_zone->zone = zone;
- e_object_ref(E_OBJECT(zone));
+
+ if (!e_policy_container_view_tree_init(e_policy_container_get(policy_zone), &zone_tree_impl, NULL))
+ {
+ ERR("Failed to init view tree of zone(ID:%d):%p", zone->id, zone);
+ return NULL;
+ }
policy_zone->clients_hash = eina_hash_pointer_new(NULL);
+ policy_zone->zone = zone;
+ e_object_ref(E_OBJECT(zone));
// events
wl_signal_init(&policy_zone->events.client_add);
eina_hash_free(policy_zone->clients_hash);
}
+ e_policy_container_view_tree_shutdown(e_policy_container_get(policy_zone));
+
E_FREE(policy_zone);
return;