From d6b220776ecb10ffd5540bae3fc150e568b8ca21 Mon Sep 17 00:00:00 2001 From: MinJeong Kim Date: Fri, 22 Jul 2016 09:42:04 +0900 Subject: [PATCH] e_config: handle policy config values Change-Id: I9a0f7400673d0ee9d9635e3794aa8497ab9b858f Signed-off-by: MinJeong Kim --- src/bin/e_config.c | 29 +++++++++++++++++++++++++++++ src/bin/e_config.h | 18 ++++++++++++++++++ 2 files changed, 47 insertions(+) diff --git a/src/bin/e_config.c b/src/bin/e_config.c index fb85bd9..756edbc 100644 --- a/src/bin/e_config.c +++ b/src/bin/e_config.c @@ -21,6 +21,7 @@ static E_Config_DD *_e_config_desktop_name_edd = NULL; static E_Config_DD *_e_config_desktop_window_profile_edd = NULL; static E_Config_DD *_e_config_env_var_edd = NULL; static E_Config_DD *_e_config_client_type_edd = NULL; +static E_Config_DD *_e_config_policy_desk_edd = NULL; E_API int E_EVENT_CONFIG_MODE_CHANGED = 0; @@ -47,6 +48,7 @@ _e_config_edd_shutdown(void) E_CONFIG_DD_FREE(_e_config_desktop_window_profile_edd); E_CONFIG_DD_FREE(_e_config_env_var_edd); E_CONFIG_DD_FREE(_e_config_client_type_edd); + E_CONFIG_DD_FREE(_e_config_policy_desk_edd); } static void @@ -111,6 +113,16 @@ _e_config_edd_init(Eina_Bool old) E_CONFIG_VAL(D, T, window_type, INT); E_CONFIG_VAL(D, T, client_type, INT); + _e_config_policy_desk_edd = E_CONFIG_DD_NEW("E_Config_Policy_Desk", E_Config_Policy_Desk); +#undef T +#undef D +#define T E_Config_Policy_Desk +#define D _e_config_policy_desk_edd + E_CONFIG_VAL(D, T, zone_num, UINT); + E_CONFIG_VAL(D, T, x, INT); + E_CONFIG_VAL(D, T, y, INT); + E_CONFIG_VAL(D, T, enable, INT); + _e_config_edd = E_CONFIG_DD_NEW("E_Config", E_Config); #undef T #undef D @@ -130,6 +142,13 @@ _e_config_edd_init(Eina_Bool old) E_CONFIG_VAL(D, T, zone_desks_y_count, INT); E_CONFIG_LIST(D, T, modules, _e_config_module_edd); E_CONFIG_VAL(D, T, window_placement_policy, INT); + E_CONFIG_VAL(D, T, use_e_policy, INT); + E_CONFIG_VAL(D, T, launcher.title, STR); + E_CONFIG_VAL(D, T, launcher.clas, STR); + E_CONFIG_VAL(D, T, launcher.type, UINT); + E_CONFIG_LIST(D, T, policy_desks, _e_config_policy_desk_edd); + E_CONFIG_VAL(D, T, use_softkey, INT); + E_CONFIG_VAL(D, T, softkey_size, INT); E_CONFIG_VAL(D, T, focus_policy, INT); E_CONFIG_VAL(D, T, focus_policy_ext, INT); E_CONFIG_VAL(D, T, focus_setting, INT); @@ -358,6 +377,9 @@ e_config_load(void) E_CONFIG_LIMIT(e_config->priority, 0, 19); E_CONFIG_LIMIT(e_config->zone_desks_x_count, 1, 64); E_CONFIG_LIMIT(e_config->zone_desks_y_count, 1, 64); + E_CONFIG_LIMIT(e_config->use_e_policy, 0, 1); + E_CONFIG_LIMIT(e_config->use_softkey, 0, 1); + E_CONFIG_LIMIT(e_config->softkey_size, 0, 42); E_CONFIG_LIMIT(e_config->window_placement_policy, E_WINDOW_PLACEMENT_SMART, E_WINDOW_PLACEMENT_MANUAL); E_CONFIG_LIMIT(e_config->focus_policy, 0, 2); E_CONFIG_LIMIT(e_config->focus_policy_ext, 0, 1); @@ -795,6 +817,7 @@ _e_config_free(E_Config *ecf) E_Config_Module *em; E_Config_Env_Var *evr; E_Config_Desktop_Window_Profile *wp; + E_Config_Policy_Desk *pd; if (!ecf) return; @@ -839,6 +862,12 @@ _e_config_free(E_Config *ecf) E_FREE(evr); } + EINA_LIST_FREE(ecf->policy_desks, pd) + E_FREE(pd); + + eina_stringshare_del(ecf->launcher.title); + eina_stringshare_del(ecf->launcher.clas); + E_FREE(ecf); } diff --git a/src/bin/e_config.h b/src/bin/e_config.h index b1c60e3..4a45889 100644 --- a/src/bin/e_config.h +++ b/src/bin/e_config.h @@ -9,6 +9,7 @@ typedef struct _E_Config_Desktop_Window_Profile E_Config_Desktop_Window_Profile; typedef struct _E_Config_Desktop_Background E_Config_Desktop_Background; typedef struct _E_Config_Env_Var E_Config_Env_Var; typedef struct _E_Config_Client_Type E_Config_Client_Type; +typedef struct _E_Config_Policy_Desk E_Config_Policy_Desk; #else #ifndef E_CONFIG_H @@ -38,6 +39,16 @@ struct _E_Config int zone_desks_x_count; int zone_desks_y_count; Eina_List *modules; + int use_e_policy; + struct + { + const char *title; + const char *clas; + unsigned int type; + } launcher; + Eina_List *policy_desks; + int use_softkey; + int softkey_size; int window_placement_policy; int focus_policy; int focus_policy_ext; @@ -240,6 +251,13 @@ struct _E_Config_Client_Type int client_type; /* E_Client_Type */ }; +struct _E_Config_Policy_Desk +{ + unsigned int zone_num; + int x, y; + int enable; +}; + EINTERN int e_config_init(void); EINTERN int e_config_shutdown(void); -- 2.7.4