forked from enlightenment/enlightenment
desklock config now allows you to configure the image shown on each screen
also fixes ticket #753 SVN revision: 73339
This commit is contained in:
parent
ec4b749f20
commit
575967808a
|
@ -39,6 +39,7 @@ static E_Config_DD *_e_config_bindings_wheel_edd = NULL;
|
||||||
static E_Config_DD *_e_config_bindings_acpi_edd = NULL;
|
static E_Config_DD *_e_config_bindings_acpi_edd = NULL;
|
||||||
static E_Config_DD *_e_config_path_append_edd = NULL;
|
static E_Config_DD *_e_config_path_append_edd = NULL;
|
||||||
static E_Config_DD *_e_config_desktop_bg_edd = NULL;
|
static E_Config_DD *_e_config_desktop_bg_edd = NULL;
|
||||||
|
static E_Config_DD *_e_config_desklock_bg_edd = NULL;
|
||||||
static E_Config_DD *_e_config_desktop_name_edd = NULL;
|
static E_Config_DD *_e_config_desktop_name_edd = NULL;
|
||||||
static E_Config_DD *_e_config_remember_edd = NULL;
|
static E_Config_DD *_e_config_remember_edd = NULL;
|
||||||
static E_Config_DD *_e_config_color_class_edd = NULL;
|
static E_Config_DD *_e_config_color_class_edd = NULL;
|
||||||
|
@ -244,6 +245,13 @@ e_config_init(void)
|
||||||
E_CONFIG_VAL(D, T, desk_show_mode, INT);
|
E_CONFIG_VAL(D, T, desk_show_mode, INT);
|
||||||
E_CONFIG_LIST(D, T, desk_list, _e_config_shelf_desk_edd);
|
E_CONFIG_LIST(D, T, desk_list, _e_config_shelf_desk_edd);
|
||||||
|
|
||||||
|
_e_config_desklock_bg_edd = E_CONFIG_DD_NEW("E_Config_Desklock_Background", E_Config_Desklock_Background);
|
||||||
|
#undef T
|
||||||
|
#undef D
|
||||||
|
#define T E_Config_Desklock_Background
|
||||||
|
#define D _e_config_desklock_bg_edd
|
||||||
|
E_CONFIG_VAL(D, T, file, STR);
|
||||||
|
|
||||||
_e_config_desktop_bg_edd = E_CONFIG_DD_NEW("E_Config_Desktop_Background", E_Config_Desktop_Background);
|
_e_config_desktop_bg_edd = E_CONFIG_DD_NEW("E_Config_Desktop_Background", E_Config_Desktop_Background);
|
||||||
#undef T
|
#undef T
|
||||||
#undef D
|
#undef D
|
||||||
|
@ -749,6 +757,7 @@ e_config_init(void)
|
||||||
E_CONFIG_VAL(D, T, font_hinting, INT); /**/
|
E_CONFIG_VAL(D, T, font_hinting, INT); /**/
|
||||||
E_CONFIG_VAL(D, T, desklock_personal_passwd, STR);
|
E_CONFIG_VAL(D, T, desklock_personal_passwd, STR);
|
||||||
E_CONFIG_VAL(D, T, desklock_background, STR);
|
E_CONFIG_VAL(D, T, desklock_background, STR);
|
||||||
|
E_CONFIG_LIST(D, T, desklock_backgrounds, _e_config_desklock_bg_edd); /**/
|
||||||
E_CONFIG_VAL(D, T, desklock_auth_method, INT);
|
E_CONFIG_VAL(D, T, desklock_auth_method, INT);
|
||||||
E_CONFIG_VAL(D, T, desklock_login_box_zone, INT);
|
E_CONFIG_VAL(D, T, desklock_login_box_zone, INT);
|
||||||
E_CONFIG_VAL(D, T, desklock_start_locked, INT);
|
E_CONFIG_VAL(D, T, desklock_start_locked, INT);
|
||||||
|
@ -938,6 +947,7 @@ e_config_shutdown(void)
|
||||||
E_CONFIG_DD_FREE(_e_config_bindings_acpi_edd);
|
E_CONFIG_DD_FREE(_e_config_bindings_acpi_edd);
|
||||||
E_CONFIG_DD_FREE(_e_config_path_append_edd);
|
E_CONFIG_DD_FREE(_e_config_path_append_edd);
|
||||||
E_CONFIG_DD_FREE(_e_config_desktop_bg_edd);
|
E_CONFIG_DD_FREE(_e_config_desktop_bg_edd);
|
||||||
|
E_CONFIG_DD_FREE(_e_config_desklock_bg_edd);
|
||||||
E_CONFIG_DD_FREE(_e_config_desktop_name_edd);
|
E_CONFIG_DD_FREE(_e_config_desktop_name_edd);
|
||||||
E_CONFIG_DD_FREE(_e_config_remember_edd);
|
E_CONFIG_DD_FREE(_e_config_remember_edd);
|
||||||
E_CONFIG_DD_FREE(_e_config_gadcon_edd);
|
E_CONFIG_DD_FREE(_e_config_gadcon_edd);
|
||||||
|
@ -1202,6 +1212,14 @@ e_config_load(void)
|
||||||
COPYVAL(multiscreen_flip);
|
COPYVAL(multiscreen_flip);
|
||||||
IFCFGEND;
|
IFCFGEND;
|
||||||
|
|
||||||
|
IFCFG(0x0151);
|
||||||
|
COPYPTR(desklock_backgrounds);
|
||||||
|
e_config->desklock_backgrounds = eina_list_append(e_config->desklock_backgrounds, tcfg->desklock_background);
|
||||||
|
if (e_config->desklock_backgrounds && (!e_config->desklock_backgrounds->data))
|
||||||
|
e_config->desklock_backgrounds = eina_list_free(e_config->desklock_backgrounds);
|
||||||
|
tcfg->desklock_background = NULL;
|
||||||
|
IFCFGEND;
|
||||||
|
|
||||||
e_config->config_version = E_CONFIG_FILE_VERSION;
|
e_config->config_version = E_CONFIG_FILE_VERSION;
|
||||||
_e_config_free(tcfg);
|
_e_config_free(tcfg);
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,6 +12,7 @@ typedef struct _E_Config_Binding_Signal E_Config_Binding_Signal;
|
||||||
typedef struct _E_Config_Binding_Wheel E_Config_Binding_Wheel;
|
typedef struct _E_Config_Binding_Wheel E_Config_Binding_Wheel;
|
||||||
typedef struct _E_Config_Binding_Acpi E_Config_Binding_Acpi;
|
typedef struct _E_Config_Binding_Acpi E_Config_Binding_Acpi;
|
||||||
typedef struct _E_Config_Desktop_Background E_Config_Desktop_Background;
|
typedef struct _E_Config_Desktop_Background E_Config_Desktop_Background;
|
||||||
|
typedef struct _E_Config_Desklock_Background E_Config_Desklock_Background;
|
||||||
typedef struct _E_Config_Desktop_Name E_Config_Desktop_Name;
|
typedef struct _E_Config_Desktop_Name E_Config_Desktop_Name;
|
||||||
typedef struct _E_Config_Gadcon E_Config_Gadcon;
|
typedef struct _E_Config_Gadcon E_Config_Gadcon;
|
||||||
typedef struct _E_Config_Gadcon_Client E_Config_Gadcon_Client;
|
typedef struct _E_Config_Gadcon_Client E_Config_Gadcon_Client;
|
||||||
|
@ -36,7 +37,7 @@ typedef struct _E_Event_Config_Icon_Theme E_Event_Config_Icon_Theme;
|
||||||
/* increment this whenever a new set of config values are added but the users
|
/* increment this whenever a new set of config values are added but the users
|
||||||
* config doesn't need to be wiped - simply new values need to be put in
|
* config doesn't need to be wiped - simply new values need to be put in
|
||||||
*/
|
*/
|
||||||
#define E_CONFIG_FILE_GENERATION 0x0150
|
#define E_CONFIG_FILE_GENERATION 0x0151
|
||||||
#define E_CONFIG_FILE_VERSION ((E_CONFIG_FILE_EPOCH << 16) | E_CONFIG_FILE_GENERATION)
|
#define E_CONFIG_FILE_VERSION ((E_CONFIG_FILE_EPOCH << 16) | E_CONFIG_FILE_GENERATION)
|
||||||
|
|
||||||
struct _E_Config
|
struct _E_Config
|
||||||
|
@ -176,7 +177,8 @@ struct _E_Config
|
||||||
int font_hinting; // GUI
|
int font_hinting; // GUI
|
||||||
|
|
||||||
const char *desklock_personal_passwd; // GUI
|
const char *desklock_personal_passwd; // GUI
|
||||||
const char *desklock_background; // GUI
|
const char *desklock_background; // OLD DON'T USE
|
||||||
|
Eina_List *desklock_backgrounds; // GUI
|
||||||
int desklock_auth_method; // GUI
|
int desklock_auth_method; // GUI
|
||||||
int desklock_login_box_zone; // GUI
|
int desklock_login_box_zone; // GUI
|
||||||
int desklock_start_locked; // GUI
|
int desklock_start_locked; // GUI
|
||||||
|
@ -380,6 +382,11 @@ struct _E_Config
|
||||||
} xkb;
|
} xkb;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct _E_Config_Desklock_Background
|
||||||
|
{
|
||||||
|
const char *file;
|
||||||
|
};
|
||||||
|
|
||||||
struct _E_Config_Env_Var
|
struct _E_Config_Env_Var
|
||||||
{
|
{
|
||||||
const char *var;
|
const char *var;
|
||||||
|
|
|
@ -152,7 +152,7 @@ e_desklock_show_autolocked(void)
|
||||||
EAPI int
|
EAPI int
|
||||||
e_desklock_show(void)
|
e_desklock_show(void)
|
||||||
{
|
{
|
||||||
Eina_List *managers, *l, *l2, *l3;
|
Eina_List *managers, *l, *l2, *l3, *l4;
|
||||||
E_Manager *man;
|
E_Manager *man;
|
||||||
E_Desklock_Popup_Data *edp;
|
E_Desklock_Popup_Data *edp;
|
||||||
Evas_Coord mw, mh;
|
Evas_Coord mw, mh;
|
||||||
|
@ -264,8 +264,14 @@ works:
|
||||||
{
|
{
|
||||||
E_Zone *zone;
|
E_Zone *zone;
|
||||||
|
|
||||||
|
l4 = e_config->desklock_backgrounds;
|
||||||
EINA_LIST_FOREACH(con->zones, l3, zone)
|
EINA_LIST_FOREACH(con->zones, l3, zone)
|
||||||
{
|
{
|
||||||
|
E_Config_Desklock_Background *cbg;
|
||||||
|
const char *bg;
|
||||||
|
|
||||||
|
cbg = l4 ? l4->data : NULL;
|
||||||
|
bg = cbg ? cbg->file : NULL;
|
||||||
edp = E_NEW(E_Desklock_Popup_Data, 1);
|
edp = E_NEW(E_Desklock_Popup_Data, 1);
|
||||||
if (edp)
|
if (edp)
|
||||||
{
|
{
|
||||||
|
@ -279,14 +285,14 @@ works:
|
||||||
evas_event_freeze(edp->popup_wnd->evas);
|
evas_event_freeze(edp->popup_wnd->evas);
|
||||||
edp->bg_object = edje_object_add(edp->popup_wnd->evas);
|
edp->bg_object = edje_object_add(edp->popup_wnd->evas);
|
||||||
|
|
||||||
if ((!e_config->desklock_background) ||
|
if ((!bg) ||
|
||||||
(!strcmp(e_config->desklock_background, "theme_desklock_background")))
|
(!strcmp(bg, "theme_desklock_background")))
|
||||||
{
|
{
|
||||||
e_theme_edje_object_set(edp->bg_object,
|
e_theme_edje_object_set(edp->bg_object,
|
||||||
"base/theme/desklock",
|
"base/theme/desklock",
|
||||||
"e/desklock/background");
|
"e/desklock/background");
|
||||||
}
|
}
|
||||||
else if (!strcmp(e_config->desklock_background, "theme_background"))
|
else if (!strcmp(bg, "theme_background"))
|
||||||
{
|
{
|
||||||
e_theme_edje_object_set(edp->bg_object,
|
e_theme_edje_object_set(edp->bg_object,
|
||||||
"base/theme/backgrounds",
|
"base/theme/backgrounds",
|
||||||
|
@ -296,10 +302,10 @@ works:
|
||||||
{
|
{
|
||||||
const char *f;
|
const char *f;
|
||||||
|
|
||||||
if (!strcmp(e_config->desklock_background, "user_background"))
|
if (!strcmp(bg, "user_background"))
|
||||||
f = _user_wallpaper_get();
|
f = _user_wallpaper_get();
|
||||||
else
|
else
|
||||||
f = e_config->desklock_background;
|
f = bg;
|
||||||
|
|
||||||
if (e_util_edje_collection_exists(f, "e/desklock/background"))
|
if (e_util_edje_collection_exists(f, "e/desklock/background"))
|
||||||
{
|
{
|
||||||
|
@ -361,6 +367,7 @@ works:
|
||||||
|
|
||||||
edd->elock_wnd_list = eina_list_append(edd->elock_wnd_list, edp);
|
edd->elock_wnd_list = eina_list_append(edd->elock_wnd_list, edp);
|
||||||
}
|
}
|
||||||
|
l4 = l4->next;
|
||||||
zone_counter++;
|
zone_counter++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -149,6 +149,15 @@ _e_wid_preview_thumb_gen(void *data, Evas_Object *obj __UNUSED__, void *event_in
|
||||||
evas_object_smart_callback_call(wd->obj, "preview_update", NULL);
|
evas_object_smart_callback_call(wd->obj, "preview_update", NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EAPI void
|
||||||
|
e_widget_preview_file_get(Evas_Object *obj, const char **file, const char **group)
|
||||||
|
{
|
||||||
|
E_Widget_Data *wd;
|
||||||
|
|
||||||
|
wd = e_widget_data_get(obj);
|
||||||
|
edje_object_file_get(wd->o_thumb, file, group);
|
||||||
|
}
|
||||||
|
|
||||||
EAPI int
|
EAPI int
|
||||||
e_widget_preview_edje_set(Evas_Object *obj, const char *file, const char *group)
|
e_widget_preview_edje_set(Evas_Object *obj, const char *file, const char *group)
|
||||||
{
|
{
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
EAPI Evas_Object *e_widget_preview_add(Evas *evas, int minw, int minh);
|
EAPI Evas_Object *e_widget_preview_add(Evas *evas, int minw, int minh);
|
||||||
EAPI Evas *e_widget_preview_evas_get(Evas_Object *obj);
|
EAPI Evas *e_widget_preview_evas_get(Evas_Object *obj);
|
||||||
EAPI void e_widget_preview_extern_object_set(Evas_Object *obj, Evas_Object *eobj);
|
EAPI void e_widget_preview_extern_object_set(Evas_Object *obj, Evas_Object *eobj);
|
||||||
|
EAPI void e_widget_preview_file_get(Evas_Object *obj, const char **file, const char **group);
|
||||||
EAPI int e_widget_preview_file_set(Evas_Object *obj, const char *file, const char *key);
|
EAPI int e_widget_preview_file_set(Evas_Object *obj, const char *file, const char *key);
|
||||||
EAPI int e_widget_preview_thumb_set(Evas_Object *obj, const char *file, const char *key, int w, int h);
|
EAPI int e_widget_preview_thumb_set(Evas_Object *obj, const char *file, const char *key, int w, int h);
|
||||||
EAPI int e_widget_preview_edje_set(Evas_Object *obj, const char *file, const char *group);
|
EAPI int e_widget_preview_edje_set(Evas_Object *obj, const char *file, const char *group);
|
||||||
|
|
|
@ -21,7 +21,6 @@ struct _E_Config_Dialog_Data
|
||||||
|
|
||||||
/* Common vars */
|
/* Common vars */
|
||||||
int use_xscreensaver;
|
int use_xscreensaver;
|
||||||
int fmdir;
|
|
||||||
int zone_count;
|
int zone_count;
|
||||||
|
|
||||||
/* Locking */
|
/* Locking */
|
||||||
|
@ -40,7 +39,7 @@ struct _E_Config_Dialog_Data
|
||||||
|
|
||||||
/* Adv props */
|
/* Adv props */
|
||||||
int bg_method;
|
int bg_method;
|
||||||
const char *bg;
|
Eina_List *bgs;
|
||||||
int custom_lock;
|
int custom_lock;
|
||||||
int ask_presentation;
|
int ask_presentation;
|
||||||
double ask_presentation_timeout;
|
double ask_presentation_timeout;
|
||||||
|
@ -51,7 +50,8 @@ struct _E_Config_Dialog_Data
|
||||||
Evas_Object *post_screensaver_slider;
|
Evas_Object *post_screensaver_slider;
|
||||||
Evas_Object *auto_lock_slider;
|
Evas_Object *auto_lock_slider;
|
||||||
Evas_Object *ask_presentation_slider;
|
Evas_Object *ask_presentation_slider;
|
||||||
Evas_Object *o_bg;
|
Evas_Object *o_table;
|
||||||
|
Eina_List *bgs;
|
||||||
} gui;
|
} gui;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -79,44 +79,48 @@ e_int_config_desklock(E_Container *con, const char *params __UNUSED__)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
e_int_config_desklock_fsel_done(E_Config_Dialog *cfd, const char *bg_file)
|
e_int_config_desklock_fsel_done(E_Config_Dialog *cfd, Evas_Object *bg, const char *bg_file)
|
||||||
{
|
{
|
||||||
E_Config_Dialog_Data *cfdata;
|
E_Config_Dialog_Data *cfdata;
|
||||||
|
Eina_List *l;
|
||||||
|
const char *cbg;
|
||||||
|
|
||||||
if (!(cfdata = cfd->cfdata)) return;
|
if (!(cfdata = cfd->cfdata)) return;
|
||||||
cfdata->bg_fsel = NULL;
|
cfdata->bg_fsel = NULL;
|
||||||
if (bg_file)
|
if (!bg_file) return;
|
||||||
{
|
e_widget_preview_file_get(bg, &cbg, NULL);
|
||||||
eina_stringshare_replace(&cfdata->bg, bg_file);
|
l = eina_list_data_find_list(cfdata->bgs, cbg);
|
||||||
e_widget_preview_edje_set(cfdata->gui.o_bg, cfdata->bg,
|
if (l->data)
|
||||||
"e/desktop/background");
|
eina_stringshare_replace((const char**)&l->data, bg_file);
|
||||||
}
|
else
|
||||||
|
eina_list_data_set(l, eina_stringshare_add(bg_file));
|
||||||
|
e_widget_preview_edje_set(bg, bg_file, "e/desktop/background");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_fill_data(E_Config_Dialog_Data *cfdata)
|
_fill_data(E_Config_Dialog_Data *cfdata)
|
||||||
{
|
{
|
||||||
cfdata->fmdir = 0;
|
Eina_List *l;
|
||||||
if (e_config->desklock_background)
|
E_Config_Desklock_Background *bg;
|
||||||
{
|
int x;
|
||||||
cfdata->bg = eina_stringshare_ref(e_config->desklock_background);
|
|
||||||
if (!strstr(cfdata->bg, e_user_homedir_get()))
|
|
||||||
cfdata->fmdir = 1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
cfdata->bg = eina_stringshare_add("theme_desklock_background");
|
|
||||||
|
|
||||||
if (!strcmp(cfdata->bg, "theme_desklock_background"))
|
cfdata->zone_count = _zone_count_get();
|
||||||
|
EINA_LIST_FOREACH(e_config->desklock_backgrounds, l, bg)
|
||||||
|
cfdata->bgs = eina_list_append(cfdata->bgs, eina_stringshare_ref(bg->file));
|
||||||
|
if (!cfdata->bgs)
|
||||||
|
for (x = 0; x < cfdata->zone_count; x++)
|
||||||
|
cfdata->bgs = eina_list_append(cfdata->bgs, eina_stringshare_add("theme_desklock_background"));
|
||||||
|
|
||||||
|
if (!e_util_strcmp(cfdata->bgs->data, "theme_desklock_background"))
|
||||||
cfdata->bg_method = 0;
|
cfdata->bg_method = 0;
|
||||||
else if (!strcmp(cfdata->bg, "theme_background"))
|
else if (!e_util_strcmp(cfdata->bgs->data, "theme_background"))
|
||||||
cfdata->bg_method = 1;
|
cfdata->bg_method = 1;
|
||||||
else if (!strcmp(cfdata->bg, "user_background"))
|
else if (!e_util_strcmp(cfdata->bgs->data, "user_background"))
|
||||||
cfdata->bg_method = 2;
|
cfdata->bg_method = 2;
|
||||||
else
|
else
|
||||||
cfdata->bg_method = 3;
|
cfdata->bg_method = 3;
|
||||||
|
|
||||||
cfdata->use_xscreensaver = ecore_x_screensaver_event_available_get();
|
cfdata->use_xscreensaver = ecore_x_screensaver_event_available_get();
|
||||||
cfdata->zone_count = _zone_count_get();
|
|
||||||
|
|
||||||
cfdata->custom_lock = e_config->desklock_use_custom_desklock;
|
cfdata->custom_lock = e_config->desklock_use_custom_desklock;
|
||||||
if (e_config->desklock_custom_desklock_cmd)
|
if (e_config->desklock_custom_desklock_cmd)
|
||||||
|
@ -158,10 +162,12 @@ _create_data(E_Config_Dialog *cfd)
|
||||||
static void
|
static void
|
||||||
_free_data(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
|
_free_data(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
|
||||||
{
|
{
|
||||||
|
const char *bg;
|
||||||
if (cfdata->bg_fsel)
|
if (cfdata->bg_fsel)
|
||||||
e_object_del(E_OBJECT(cfdata->bg_fsel));
|
e_object_del(E_OBJECT(cfdata->bg_fsel));
|
||||||
E_FREE(cfdata->custom_lock_cmd);
|
E_FREE(cfdata->custom_lock_cmd);
|
||||||
if (cfdata->bg) eina_stringshare_del(cfdata->bg);
|
EINA_LIST_FREE(cfdata->bgs, bg)
|
||||||
|
eina_stringshare_del(bg);
|
||||||
E_FREE(cfdata);
|
E_FREE(cfdata);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -190,9 +196,13 @@ _basic_screensaver_lock_cb_changed(void *data, Evas_Object *o __UNUSED__)
|
||||||
static Evas_Object *
|
static Evas_Object *
|
||||||
_basic_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Data *cfdata)
|
_basic_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Data *cfdata)
|
||||||
{
|
{
|
||||||
Evas_Object *otb, *ol, *ow, *of;
|
Evas_Object *otb, *ol, *ow, *of, *ot;
|
||||||
|
Eina_List *l, *ll, *lll;
|
||||||
|
E_Zone *zone;
|
||||||
E_Radio_Group *rg;
|
E_Radio_Group *rg;
|
||||||
int screen_count;
|
E_Manager *man;
|
||||||
|
E_Container *con;
|
||||||
|
int screen_count, x = 0;
|
||||||
|
|
||||||
screen_count = ecore_x_xinerama_screen_count_get();
|
screen_count = ecore_x_xinerama_screen_count_get();
|
||||||
|
|
||||||
|
@ -302,12 +312,21 @@ _basic_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Data
|
||||||
e_widget_table_object_append(of, ow, 1, 1, 1, 1, 1, 0, 1, 0);
|
e_widget_table_object_append(of, ow, 1, 1, 1, 1, 1, 0, 1, 0);
|
||||||
e_widget_list_object_append(ol, of, 1, 1, 0.5);
|
e_widget_list_object_append(ol, of, 1, 1, 0.5);
|
||||||
|
|
||||||
ow = e_widget_preview_add(evas, 100, 140);
|
cfdata->gui.o_table = ot = e_widget_table_add(evas, 1);
|
||||||
cfdata->gui.o_bg = ow;
|
|
||||||
e_widget_disabled_set(cfdata->gui.o_bg, (cfdata->bg_method < 3));
|
EINA_LIST_FOREACH(e_manager_list(), l, man)
|
||||||
evas_object_event_callback_add(ow, EVAS_CALLBACK_MOUSE_DOWN,
|
EINA_LIST_FOREACH(man->containers, ll, con)
|
||||||
_cb_bg_mouse_down, cfdata);
|
EINA_LIST_FOREACH(con->zones, lll, zone)
|
||||||
e_widget_list_object_append(ol, ow, 1, 1, 0.5);
|
{
|
||||||
|
ow = e_widget_preview_add(evas, 100, 140);
|
||||||
|
cfdata->gui.bgs = eina_list_append(cfdata->gui.bgs, ow);
|
||||||
|
evas_object_data_set(ow, "zone", zone);
|
||||||
|
e_widget_disabled_set(ow, (cfdata->bg_method < 3));
|
||||||
|
evas_object_event_callback_add(ow, EVAS_CALLBACK_MOUSE_DOWN, _cb_bg_mouse_down, cfdata);
|
||||||
|
e_widget_table_object_append(cfdata->gui.o_table, ow, x++, 0, 1, 1, 1, 1, 1, 1);
|
||||||
|
}
|
||||||
|
_cb_method_change(cfdata, NULL, NULL);
|
||||||
|
e_widget_list_object_append(ol, cfdata->gui.o_table, 1, 1, 0.5);
|
||||||
e_widget_toolbook_page_append(otb, NULL, _("Wallpaper"), ol,
|
e_widget_toolbook_page_append(otb, NULL, _("Wallpaper"), ol,
|
||||||
1, 0, 1, 0, 0.5, 0.0);
|
1, 0, 1, 0, 0.5, 0.0);
|
||||||
|
|
||||||
|
@ -322,6 +341,10 @@ _basic_create(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Data
|
||||||
static int
|
static int
|
||||||
_basic_apply(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
|
_basic_apply(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
|
||||||
{
|
{
|
||||||
|
Eina_List *l;
|
||||||
|
const char *bg;
|
||||||
|
E_Config_Desklock_Background *cbg;
|
||||||
|
|
||||||
e_config->desklock_start_locked = cfdata->start_locked;
|
e_config->desklock_start_locked = cfdata->start_locked;
|
||||||
e_config->desklock_on_suspend = cfdata->lock_on_suspend;
|
e_config->desklock_on_suspend = cfdata->lock_on_suspend;
|
||||||
e_config->desklock_autolock_idle = cfdata->auto_lock;
|
e_config->desklock_autolock_idle = cfdata->auto_lock;
|
||||||
|
@ -332,12 +355,21 @@ _basic_apply(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
|
||||||
e_config->desklock_ask_presentation_timeout =
|
e_config->desklock_ask_presentation_timeout =
|
||||||
cfdata->ask_presentation_timeout;
|
cfdata->ask_presentation_timeout;
|
||||||
|
|
||||||
if (cfdata->bg)
|
if (cfdata->bgs)
|
||||||
{
|
{
|
||||||
if (e_config->desklock_background)
|
EINA_LIST_FREE(e_config->desklock_backgrounds, cbg)
|
||||||
e_filereg_deregister(e_config->desklock_background);
|
{
|
||||||
eina_stringshare_replace(&e_config->desklock_background, cfdata->bg);
|
e_filereg_deregister(cbg->file);
|
||||||
e_filereg_register(e_config->desklock_background);
|
eina_stringshare_del(cbg->file);
|
||||||
|
free(cbg);
|
||||||
|
}
|
||||||
|
EINA_LIST_FOREACH(cfdata->bgs, l, bg)
|
||||||
|
{
|
||||||
|
cbg = E_NEW(E_Config_Desklock_Background, 1);
|
||||||
|
cbg->file = eina_stringshare_ref(bg);
|
||||||
|
e_config->desklock_backgrounds = eina_list_append(e_config->desklock_backgrounds, cbg);
|
||||||
|
e_filereg_register(bg);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cfdata->login_zone < 0)
|
if (cfdata->login_zone < 0)
|
||||||
|
@ -357,6 +389,8 @@ _basic_apply(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
|
||||||
static int
|
static int
|
||||||
_basic_check_changed(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
|
_basic_check_changed(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
|
||||||
{
|
{
|
||||||
|
Eina_List *l, *ll;
|
||||||
|
E_Config_Desklock_Background *cbg;
|
||||||
if (e_config->desklock_start_locked != cfdata->start_locked)
|
if (e_config->desklock_start_locked != cfdata->start_locked)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
|
@ -376,8 +410,13 @@ _basic_check_changed(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfda
|
||||||
if (e_config->desklock_autolock_idle_timeout != cfdata->idle_time * 60)
|
if (e_config->desklock_autolock_idle_timeout != cfdata->idle_time * 60)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
if (e_config->desklock_background != cfdata->bg)
|
ll = cfdata->bgs;
|
||||||
return 1;
|
EINA_LIST_FOREACH(e_config->desklock_backgrounds, l, cbg)
|
||||||
|
{
|
||||||
|
if (!ll) return 1;
|
||||||
|
if (cbg->file != ll->data) return 1;
|
||||||
|
ll = ll->next;
|
||||||
|
}
|
||||||
|
|
||||||
if (cfdata->login_zone < 0)
|
if (cfdata->login_zone < 0)
|
||||||
{
|
{
|
||||||
|
@ -409,56 +448,72 @@ static void
|
||||||
_cb_method_change(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
_cb_method_change(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||||
{
|
{
|
||||||
E_Config_Dialog_Data *cfdata;
|
E_Config_Dialog_Data *cfdata;
|
||||||
|
Eina_List *l;
|
||||||
|
Evas_Object *bg;
|
||||||
const char *theme = NULL;
|
const char *theme = NULL;
|
||||||
|
int x;
|
||||||
|
|
||||||
if (!(cfdata = data)) return;
|
if (!(cfdata = data)) return;
|
||||||
e_widget_disabled_set(cfdata->gui.o_bg, (cfdata->bg_method < 3));
|
EINA_LIST_FOREACH(cfdata->gui.bgs, l, bg)
|
||||||
|
e_widget_disabled_set(bg, (cfdata->bg_method < 3));
|
||||||
switch (cfdata->bg_method)
|
switch (cfdata->bg_method)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
eina_stringshare_replace(&cfdata->bg, "theme_desklock_background");
|
EINA_LIST_FREE(cfdata->bgs, theme)
|
||||||
|
eina_stringshare_del(theme);
|
||||||
|
for (x = 0; x < cfdata->zone_count; x++)
|
||||||
|
cfdata->bgs = eina_list_append(cfdata->bgs, eina_stringshare_add("theme_desklock_background"));
|
||||||
theme = e_theme_edje_file_get("base/theme/desklock",
|
theme = e_theme_edje_file_get("base/theme/desklock",
|
||||||
"e/desklock/background");
|
"e/desklock/background");
|
||||||
if (theme)
|
if (theme)
|
||||||
e_widget_preview_edje_set(cfdata->gui.o_bg, theme,
|
EINA_LIST_FOREACH(cfdata->gui.bgs, l, bg)
|
||||||
"e/desklock/background");
|
e_widget_preview_edje_set(bg, theme, "e/desklock/background");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 1:
|
case 1:
|
||||||
eina_stringshare_replace(&cfdata->bg, "theme_background");
|
|
||||||
theme = e_theme_edje_file_get("base/theme/backgrounds",
|
theme = e_theme_edje_file_get("base/theme/backgrounds",
|
||||||
"e/desktop/background");
|
"e/desktop/background");
|
||||||
if (theme)
|
if (theme)
|
||||||
e_widget_preview_edje_set(cfdata->gui.o_bg, theme,
|
EINA_LIST_FOREACH(cfdata->gui.bgs, l, bg)
|
||||||
"e/desktop/background");
|
e_widget_preview_edje_set(bg, theme, "e/desklock/background");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
eina_stringshare_replace(&cfdata->bg, "user_background");
|
|
||||||
if (e_config->desktop_default_background)
|
if (e_config->desktop_default_background)
|
||||||
theme = e_config->desktop_default_background;
|
{
|
||||||
|
theme = e_config->desktop_default_background;
|
||||||
|
if (theme)
|
||||||
|
EINA_LIST_FOREACH(cfdata->gui.bgs, l, bg)
|
||||||
|
e_widget_preview_edje_set(bg, theme, "e/desklock/background");
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
const E_Config_Desktop_Background *cbg;
|
const E_Config_Desktop_Background *cbg;
|
||||||
const Eina_List *l;
|
Eina_List *ll;
|
||||||
|
|
||||||
|
ll = cfdata->gui.bgs;
|
||||||
EINA_LIST_FOREACH(e_config->desktop_backgrounds, l, cbg)
|
EINA_LIST_FOREACH(e_config->desktop_backgrounds, l, cbg)
|
||||||
{
|
{
|
||||||
|
if (!ll) break;
|
||||||
if (cbg->file)
|
if (cbg->file)
|
||||||
{
|
e_widget_preview_edje_set(ll->data, cbg->file, "e/desktop/background");
|
||||||
theme = cbg->file;
|
ll = ll->next;
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (theme)
|
|
||||||
e_widget_preview_edje_set(cfdata->gui.o_bg, theme,
|
|
||||||
"e/desktop/background");
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
e_widget_preview_edje_set(cfdata->gui.o_bg, cfdata->bg,
|
{
|
||||||
"e/desktop/background");
|
Eina_List *ll;
|
||||||
|
|
||||||
|
ll = cfdata->gui.bgs;
|
||||||
|
EINA_LIST_FOREACH(cfdata->bgs, l, theme)
|
||||||
|
{
|
||||||
|
if (!ll) break;
|
||||||
|
e_widget_preview_edje_set(ll->data, theme, "e/desktop/background");
|
||||||
|
ll = ll->next;
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -500,7 +555,7 @@ _cb_bg_mouse_down(void *data, Evas *evas __UNUSED__, Evas_Object *obj, void *eve
|
||||||
if (cfdata->bg_fsel)
|
if (cfdata->bg_fsel)
|
||||||
e_win_raise(cfdata->bg_fsel->dia->win);
|
e_win_raise(cfdata->bg_fsel->dia->win);
|
||||||
else
|
else
|
||||||
cfdata->bg_fsel = e_int_config_desklock_fsel(cfdata->cfd);
|
cfdata->bg_fsel = e_int_config_desklock_fsel(cfdata->cfd, obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
#define E_INT_CONFIG_DESKLOCK_H
|
#define E_INT_CONFIG_DESKLOCK_H
|
||||||
|
|
||||||
E_Config_Dialog *e_int_config_desklock(E_Container *con, const char *params __UNUSED__);
|
E_Config_Dialog *e_int_config_desklock(E_Container *con, const char *params __UNUSED__);
|
||||||
void e_int_config_desklock_fsel_done(E_Config_Dialog *cfd, const char *bg_file);
|
void e_int_config_desklock_fsel_done(E_Config_Dialog *cfd, Evas_Object *bg, const char *bg_file);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -20,7 +20,7 @@ static void _cb_radio_changed(void *data, Evas_Object *obj, void *event)
|
||||||
static void _cb_dir_up(void *data1, void *data2);
|
static void _cb_dir_up(void *data1, void *data2);
|
||||||
|
|
||||||
E_Config_Dialog *
|
E_Config_Dialog *
|
||||||
e_int_config_desklock_fsel(E_Config_Dialog *parent)
|
e_int_config_desklock_fsel(E_Config_Dialog *parent, Evas_Object *bg)
|
||||||
{
|
{
|
||||||
E_Container *con;
|
E_Container *con;
|
||||||
E_Config_Dialog *cfd;
|
E_Config_Dialog *cfd;
|
||||||
|
@ -41,7 +41,7 @@ e_int_config_desklock_fsel(E_Config_Dialog *parent)
|
||||||
cfd = e_config_dialog_new(con, _("Select a Background..."),
|
cfd = e_config_dialog_new(con, _("Select a Background..."),
|
||||||
"E", "_desklock_fsel_dialog",
|
"E", "_desklock_fsel_dialog",
|
||||||
"enlightenment/background", 0, v, parent);
|
"enlightenment/background", 0, v, parent);
|
||||||
|
e_object_data_set(E_OBJECT(cfd), bg);
|
||||||
return cfd;
|
return cfd;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -64,7 +64,7 @@ _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
|
||||||
if (cfdata->bg) bg_file = strdup(cfdata->bg);
|
if (cfdata->bg) bg_file = strdup(cfdata->bg);
|
||||||
E_FREE(cfdata->bg);
|
E_FREE(cfdata->bg);
|
||||||
E_FREE(cfdata);
|
E_FREE(cfdata);
|
||||||
e_int_config_desklock_fsel_done(cfd->data, bg_file);
|
e_int_config_desklock_fsel_done(cfd->data, e_object_data_get(E_OBJECT(cfd)), bg_file);
|
||||||
}
|
}
|
||||||
|
|
||||||
static Evas_Object *
|
static Evas_Object *
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
# ifndef E_INT_CONFIG_DESKLOCK_FSEL_H
|
# ifndef E_INT_CONFIG_DESKLOCK_FSEL_H
|
||||||
# define E_INT_CONFIG_DESKLOCK_FSEL_H
|
# define E_INT_CONFIG_DESKLOCK_FSEL_H
|
||||||
|
|
||||||
E_Config_Dialog *e_int_config_desklock_fsel(E_Config_Dialog *parent);
|
E_Config_Dialog *e_int_config_desklock_fsel(E_Config_Dialog *parent, Evas_Object *bg);
|
||||||
void e_int_config_desklock_fsel_del(E_Config_Dialog *cfd);
|
void e_int_config_desklock_fsel_del(E_Config_Dialog *cfd);
|
||||||
|
|
||||||
# endif
|
# endif
|
||||||
|
|
Loading…
Reference in New Issue