forked from enlightenment/enlightenment
remove really evil/bad code int he desklock config dialog. don't go digging
and recreating internal widget data - you need a feature - add it to the widget, or use existing ones. password mode disabled because it's just a bad buggy hack. see comments. SVN revision: 23041
This commit is contained in:
parent
049f2aae52
commit
59a12c9d5d
|
@ -128,10 +128,10 @@ e_editable_text_insert(Evas_Object *object, const char *text)
|
|||
|
||||
if ((!object) || !(sd = evas_object_smart_data_get(object)))
|
||||
return;
|
||||
if ((!text) || ((strlen(text) <= 1) && (*text < 0x20)))
|
||||
if ((!text) || ((strlen(text) <= 1) && (text[0] < 0x20)))
|
||||
return;
|
||||
|
||||
printf("Insert: \"%s\", %c\n", text, *text);
|
||||
printf("Insert: \"%s\"\n", text);
|
||||
cursor = (Evas_Textblock_Cursor *)evas_object_textblock_cursor_get(sd->text_object);
|
||||
|
||||
if (sd->cursor_at_the_end)
|
||||
|
@ -490,7 +490,6 @@ e_entry_unfocus(Evas_Object *entry)
|
|||
edje_object_signal_emit(sd->edje_object, "focus_out", "");
|
||||
}
|
||||
|
||||
|
||||
/**************************
|
||||
*
|
||||
* Private functions
|
||||
|
@ -613,6 +612,7 @@ _e_editable_text_cursor_visibility_update(Evas_Object *object)
|
|||
}
|
||||
|
||||
/* Make the cursor blink */
|
||||
// FIXME: cursor should not be a rect - shoudl be an edje. timers not needed then
|
||||
static int
|
||||
_e_editable_text_cursor_timer_cb(void *data)
|
||||
{
|
||||
|
@ -667,6 +667,7 @@ _e_editable_text_smart_add(Evas_Object *object)
|
|||
e_editable_text_style_use_count++;
|
||||
evas_object_smart_member_add(sd->text_object, object);
|
||||
|
||||
// FIXME: cursor should not be a rect - shoudl be an edje.
|
||||
sd->clip = evas_object_rectangle_add(evas);
|
||||
evas_object_clip_set(sd->text_object, sd->clip);
|
||||
evas_object_smart_member_add(sd->clip, object);
|
||||
|
@ -773,35 +774,45 @@ _e_entry_key_down_cb(void *data, Evas *e, Evas_Object *obj, void *event)
|
|||
|
||||
obj = sd->entry_object;
|
||||
|
||||
if (strcmp(key_event->keyname, "BackSpace") == 0)
|
||||
if ((!strcmp(key_event->keyname, "BackSpace")) ||
|
||||
((key_event->string) && (strlen(key_event->string) == 1) &&
|
||||
(key_event->string[0] == 0x8)))
|
||||
{
|
||||
e_editable_text_delete_char_before(obj);
|
||||
if(sd->change_func)
|
||||
if (sd->change_func)
|
||||
sd->change_func(sd->change_data, obj, "");
|
||||
}
|
||||
else if (strcmp(key_event->keyname, "Delete") == 0)
|
||||
else if ((!strcmp(key_event->keyname, "Delete")) ||
|
||||
((key_event->string) && (strlen(key_event->string) == 1) &&
|
||||
(key_event->string[0] == 0x4)))
|
||||
{
|
||||
e_editable_text_delete_char_after(obj);
|
||||
if(sd->change_func)
|
||||
if (sd->change_func)
|
||||
sd->change_func(sd->change_data, obj, "");
|
||||
}
|
||||
else if (strcmp(key_event->keyname, "Left") == 0)
|
||||
else if (!strcmp(key_event->keyname, "Left"))
|
||||
e_editable_text_cursor_move_left(obj);
|
||||
else if (strcmp(key_event->keyname, "Right") == 0)
|
||||
else if (!strcmp(key_event->keyname, "Right"))
|
||||
e_editable_text_cursor_move_right(obj);
|
||||
else if (strcmp(key_event->keyname, "Home") == 0)
|
||||
else if ((!strcmp(key_event->keyname, "Home")) ||
|
||||
((key_event->string) && (strlen(key_event->string) == 1) &&
|
||||
(key_event->string[0] == 0x1)))
|
||||
e_editable_text_cursor_move_at_start(obj);
|
||||
else if (strcmp(key_event->keyname, "End") == 0)
|
||||
else if ((!strcmp(key_event->keyname, "End")) ||
|
||||
((key_event->string) && (strlen(key_event->string) == 1) &&
|
||||
(key_event->string[0] == 0x5)))
|
||||
e_editable_text_cursor_move_at_end(obj);
|
||||
else
|
||||
{
|
||||
e_editable_text_insert(obj, key_event->string);
|
||||
|
||||
if(key_event->string && strcmp(key_event->keyname, "Escape"))
|
||||
if ((key_event->string) && (strcmp(key_event->keyname, "Escape")))
|
||||
{
|
||||
if(*(key_event->string) >= 32 && *(key_event->string) <= 126)
|
||||
if(sd->change_func)
|
||||
sd->change_func(sd->change_data, obj, (char *)key_event->string);
|
||||
if (*(key_event->string) >= 0x20)
|
||||
{
|
||||
if (sd->change_func)
|
||||
sd->change_func(sd->change_data, obj,
|
||||
(char *)key_event->string);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -917,4 +928,3 @@ _e_entry_smart_hide(Evas_Object *object)
|
|||
|
||||
evas_object_hide(sd->edje_object);
|
||||
}
|
||||
|
||||
|
|
|
@ -47,6 +47,7 @@ EAPI void e_entry_cursor_hide(Evas_Object *object);
|
|||
EAPI void e_entry_change_handler_set(Evas_Object *object, void (*func)(void *data, Evas_Object *entry, char *key), void *data);
|
||||
EAPI void e_entry_focus(Evas_Object *object);
|
||||
EAPI void e_entry_unfocus(Evas_Object *object);
|
||||
EAPI void e_entry_password_set(Evas_Object *object, int pw);
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
@ -291,7 +291,9 @@ e_gadcon_populate_class(E_Gadcon *gc, const E_Gadcon_Client_Class *cc)
|
|||
for (l = e_config->gadcons; l; l = l->next)
|
||||
{
|
||||
cf_gc = l->data;
|
||||
if ((!strcmp(cf_gc->name, gc->name)) &&
|
||||
if ((cf_gc->name) && (gc->name) &&
|
||||
(cf_gc->id) && (gc->id) &&
|
||||
(!strcmp(cf_gc->name, gc->name)) &&
|
||||
(!strcmp(cf_gc->id, gc->id)))
|
||||
{
|
||||
ok = 1;
|
||||
|
@ -303,7 +305,8 @@ e_gadcon_populate_class(E_Gadcon *gc, const E_Gadcon_Client_Class *cc)
|
|||
for (l = cf_gc->clients; l; l = l->next)
|
||||
{
|
||||
cf_gcc = l->data;
|
||||
if (!strcmp(cf_gcc->name, cc->name))
|
||||
if ((cf_gcc->name) && (cc->name) &&
|
||||
(!strcmp(cf_gcc->name, cc->name)))
|
||||
{
|
||||
E_Gadcon_Client *gcc;
|
||||
|
||||
|
|
|
@ -28,26 +28,15 @@ static Evas_Object *_advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas,
|
|||
|
||||
/******************************************************************************************/
|
||||
|
||||
static void _e_desklock_passwd_cb_change(void *data, Evas_Object *obj);
|
||||
static void _e_desklock_cb_show_passwd(void *data, Evas_Object *obj, const char *emission,
|
||||
const char *source);
|
||||
static int _e_desklock_zone_num_get();
|
||||
|
||||
static int _e_desklock_zone_num_get(void);
|
||||
static void _load_bgs(E_Config_Dialog_Data *cfdata);
|
||||
static void _ibg_list_cb_bg_selected(void *data);
|
||||
|
||||
static void _e_desklock_cb_lb_show_on_all_screens(void *data, Evas_Object *obj,
|
||||
const char *emission, const char *source);
|
||||
static void _e_desklock_cb_lb_show_on_current_screen(void *data, Evas_Object *obj,
|
||||
const char *emission, const char *source);
|
||||
static void _e_desklock_cb_lb_show_on_specific_screen(void *data, Evas_Object *obj,
|
||||
const char *emission, const char *source);
|
||||
|
||||
static void _e_desklock_passwd_cb_change(void *data, Evas_Object *obj);
|
||||
static void _e_desklock_cb_show_passwd(void *data, Evas_Object *obj);
|
||||
static void _e_desklock_cb_lb_show_change(void *data, Evas_Object *obj);
|
||||
#ifdef HAVE_PAM
|
||||
static void _e_desklock_cb_syswide_auth_method(void *data, Evas_Object *obj,
|
||||
const char *emission, const char *source);
|
||||
static void _e_desklock_cb_personalized_auth_method(void *data, Evas_Object *obj,
|
||||
const char *emission, const char *source);
|
||||
static void _e_desklock_cb_auth_method_change(void *data, Evas_Object *obj);
|
||||
#endif
|
||||
|
||||
/*******************************************************************************************/
|
||||
|
@ -93,40 +82,6 @@ struct _E_Config_Dialog_Data
|
|||
} gui;
|
||||
};
|
||||
|
||||
typedef struct _E_Widget_Entry_Data E_Widget_Entry_Data;
|
||||
typedef struct _E_Widget_Check_Data E_Widget_Check_Data;
|
||||
typedef struct _E_Widget_Radio_Data E_Widget_Radio_Data;
|
||||
typedef struct _E_Widget_Slider_Data E_Widget_Slider_Data;
|
||||
|
||||
struct _E_Widget_Entry_Data
|
||||
{
|
||||
Evas_Object *o_entry;
|
||||
Evas_Object *obj;
|
||||
char **valptr;
|
||||
void (*on_change_func) (void *data, Evas_Object *obj);
|
||||
void *on_change_data;
|
||||
};
|
||||
|
||||
struct _E_Widget_Check_Data
|
||||
{
|
||||
Evas_Object *o_check;
|
||||
int *valptr;
|
||||
};
|
||||
|
||||
struct _E_Widget_Radio_Data
|
||||
{
|
||||
E_Radio_Group *group;
|
||||
Evas_Object *o_radio;
|
||||
int valnum;
|
||||
};
|
||||
|
||||
struct _E_Widget_Slider_Data
|
||||
{
|
||||
Evas_Object *o_widget, *o_slider;
|
||||
double *dval;
|
||||
int *ival;
|
||||
};
|
||||
|
||||
EAPI E_Config_Dialog *
|
||||
e_int_config_desklock(E_Container *con)
|
||||
{
|
||||
|
@ -251,35 +206,27 @@ static Evas_Object *
|
|||
_basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata)
|
||||
{
|
||||
Evas_Object *o, *of, *ob;
|
||||
E_Widget_Check_Data *wd;
|
||||
|
||||
#ifdef HAVE_PAM
|
||||
E_Radio_Group *rg_auth;
|
||||
Evas_Object *oc;
|
||||
#endif
|
||||
|
||||
//_fill_desklock_data(cfdata);
|
||||
|
||||
o = e_widget_list_add(evas, 0, 0);
|
||||
|
||||
#ifdef HAVE_PAM
|
||||
of = e_widget_framelist_add(evas, _("Password Type"), 0);
|
||||
{
|
||||
|
||||
rg_auth = e_widget_radio_group_new((int*)(&cfdata->auth_method));
|
||||
|
||||
oc = e_widget_radio_add(evas, _("Use my login password"), 0, rg_auth);
|
||||
e_widget_on_change_hook_set(oc, _e_desklock_cb_auth_method_change, cfdata);
|
||||
e_widget_framelist_object_append(of, oc);
|
||||
|
||||
rwd = e_widget_data_get(oc);
|
||||
edje_object_signal_callback_add(rwd->o_radio, "toggle_on", "",
|
||||
_e_desklock_cb_syswide_auth_method, cfdata);
|
||||
|
||||
oc = e_widget_radio_add(evas, _("Personalized password"), 1, rg_auth);
|
||||
e_widget_framelist_object_append(of,oc);
|
||||
e_widget_on_change_hook_set(oc, _e_desklock_cb_auth_method_change, cfdata);
|
||||
e_widget_framelist_object_append(of, oc);
|
||||
|
||||
rwd = e_widget_data_get(oc);
|
||||
edje_object_signal_callback_add(rwd->o_radio, "toggle_on", "",
|
||||
_e_desklock_cb_personalized_auth_method, cfdata);
|
||||
}
|
||||
e_widget_list_object_append(o, of, 1, 1, 0.5);
|
||||
#endif
|
||||
|
||||
|
@ -287,8 +234,7 @@ _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cf
|
|||
|
||||
cfdata->gui.passwd_field = ob = e_widget_entry_add(evas, &(cfdata->desklock_passwd));
|
||||
#ifdef HAVE_PAM
|
||||
if (cfdata->auth_method == 0)
|
||||
e_widget_disabled_set(ob, 1);
|
||||
if (cfdata->auth_method == 0) e_widget_disabled_set(ob, 1);
|
||||
#endif
|
||||
_e_desklock_passwd_cb_change(cfdata, ob);
|
||||
e_widget_entry_on_change_callback_set(ob, _e_desklock_passwd_cb_change, cfdata);
|
||||
|
@ -296,16 +242,13 @@ _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cf
|
|||
e_widget_framelist_object_append(of, ob);
|
||||
|
||||
ob = e_widget_check_add(evas, _("Show password"), &(cfdata->show_password));
|
||||
e_widget_on_change_hook_set(ob, _e_desklock_cb_show_passwd, cfdata);
|
||||
cfdata->gui.show_passwd_check = ob;
|
||||
#ifdef HAVE_PAM
|
||||
if (cfdata->auth_method == 0)
|
||||
e_widget_disabled_set(ob, 1);
|
||||
if (cfdata->auth_method == 0) e_widget_disabled_set(ob, 1);
|
||||
#endif
|
||||
e_widget_framelist_object_append(of, ob);
|
||||
|
||||
wd = (E_Widget_Check_Data*)e_widget_data_get(ob);
|
||||
edje_object_signal_callback_add(wd->o_check,"toggle_on", "", _e_desklock_cb_show_passwd, cfdata);
|
||||
edje_object_signal_callback_add(wd->o_check,"toggle_off", "", _e_desklock_cb_show_passwd, cfdata);
|
||||
e_widget_list_object_append(o, of, 1, 1, 0.5);
|
||||
|
||||
of = e_widget_framelist_add(evas, _("Automatic Locking"), 0);
|
||||
|
@ -374,9 +317,7 @@ _advanced_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
|
|||
#endif
|
||||
|
||||
if (e_config->desklock_use_timeout)
|
||||
{
|
||||
ecore_x_screensaver_timeout_set(e_config->desklock_timeout);
|
||||
}
|
||||
|
||||
e_config_save_queue();
|
||||
return 1;
|
||||
|
@ -385,22 +326,21 @@ _advanced_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
|
|||
static Evas_Object *
|
||||
_advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata)
|
||||
{
|
||||
Evas_Object *of, *ob;
|
||||
E_Widget_Radio_Data *wd;
|
||||
|
||||
Evas_Object *of, *ob, *oc;
|
||||
E_Radio_Group *rg;
|
||||
Evas_Object *ot;
|
||||
|
||||
E_Widget_Check_Data *cwd;
|
||||
#ifdef HAVE_PAM
|
||||
E_Radio_Group *rg_auth;
|
||||
#endif
|
||||
|
||||
cfdata->evas = evas;
|
||||
|
||||
ot = e_widget_table_add(evas, 0);
|
||||
{
|
||||
|
||||
/* start: bkg list */
|
||||
cfdata->gui.bg_list = e_widget_ilist_add(evas, BG_LIST_ICON_SIZE_W,
|
||||
BG_LIST_ICON_SIZE_H, &(cfdata->cur_bg));
|
||||
{
|
||||
|
||||
e_widget_ilist_selector_set(cfdata->gui.bg_list, 1);
|
||||
e_widget_min_size_set(cfdata->gui.bg_list, 180, 200);
|
||||
|
||||
|
@ -408,7 +348,7 @@ _advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data
|
|||
|
||||
e_widget_focus_set(cfdata->gui.bg_list, 1);
|
||||
e_widget_ilist_go(cfdata->gui.bg_list);
|
||||
}
|
||||
|
||||
e_widget_table_object_append(ot, cfdata->gui.bg_list, 0, 0, 1, 2, 1, 1, 1, 1);
|
||||
/* end: bkg list */
|
||||
|
||||
|
@ -428,23 +368,25 @@ _advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data
|
|||
if (1 || _e_desklock_zone_num_get() > 1)
|
||||
{
|
||||
of = e_widget_framelist_add(evas, _("Login Box Settings"), 0);
|
||||
{
|
||||
rg = e_widget_radio_group_new((int *)(&(cfdata->login_box_zone)));
|
||||
|
||||
ob = e_widget_radio_add(evas, _("Show on all screen zones"), LOGINBOX_SHOW_ALL_SCREENS,
|
||||
rg);
|
||||
e_widget_on_change_hook_set(ob, _e_desklock_cb_lb_show_change, cfdata);
|
||||
cfdata->gui.loginbox_obj.show_all_screens = ob;
|
||||
if (cfdata->zone_count == 1) e_widget_disabled_set(ob, 1);
|
||||
e_widget_framelist_object_append(of, ob);
|
||||
|
||||
ob = e_widget_radio_add(evas, _("Show on current screen zone"),
|
||||
LOGINBOX_SHOW_CURRENT_SCREENS, rg);
|
||||
e_widget_on_change_hook_set(ob, _e_desklock_cb_lb_show_change, cfdata);
|
||||
cfdata->gui.loginbox_obj.show_current_screen = ob;
|
||||
if (cfdata->zone_count == 1) e_widget_disabled_set(ob, 1);
|
||||
e_widget_framelist_object_append(of, ob);
|
||||
|
||||
ob = e_widget_radio_add(evas, _("Show on screen zone #:"), LOGINBOX_SHOW_SPECIFIC_SCREEN,
|
||||
rg);
|
||||
e_widget_on_change_hook_set(ob, _e_desklock_cb_lb_show_change, cfdata);
|
||||
cfdata->gui.loginbox_obj.show_specific_screen = ob;
|
||||
if (cfdata->zone_count == 1) e_widget_disabled_set(ob, 1);
|
||||
e_widget_framelist_object_append(of, ob);
|
||||
|
@ -455,38 +397,30 @@ _advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data
|
|||
if (cfdata->zone_count == 1 || cfdata->login_box_zone == LOGINBOX_SHOW_ALL_SCREENS)
|
||||
e_widget_disabled_set(ob, 1);
|
||||
e_widget_framelist_object_append(of, ob);
|
||||
}
|
||||
e_widget_table_object_append(ot, of, 1, 1, 1, 1, 1, 1, 1, 1);
|
||||
}
|
||||
/* end: login box options */
|
||||
|
||||
#ifdef HAVE_PAM
|
||||
of = e_widget_framelist_add(evas, _("Password Type"), 0);
|
||||
{
|
||||
|
||||
rg_auth = e_widget_radio_group_new((int*)(&cfdata->auth_method));
|
||||
|
||||
oc = e_widget_radio_add(evas, _("Use my login password"), 0, rg_auth);
|
||||
e_widget_on_change_hook_set(oc, _e_desklock_cb_auth_method_change, cfdata);
|
||||
e_widget_framelist_object_append(of, oc);
|
||||
|
||||
wd = e_widget_data_get(oc);
|
||||
edje_object_signal_callback_add(wd->o_radio, "toggle_on", "",
|
||||
_e_desklock_cb_syswide_auth_method, cfdata);
|
||||
|
||||
oc = e_widget_radio_add(evas, _("Personalized password"), 1, rg_auth);
|
||||
e_widget_on_change_hook_set(oc, _e_desklock_cb_auth_method_change, cfdata);
|
||||
e_widget_framelist_object_append(of,oc);
|
||||
|
||||
wd = e_widget_data_get(oc);
|
||||
edje_object_signal_callback_add(wd->o_radio, "toggle_on", "",
|
||||
_e_desklock_cb_personalized_auth_method, cfdata);
|
||||
}
|
||||
e_widget_table_object_append(ot, of, 0, 2, 1, 1, 1, 1, 1, 1);
|
||||
#endif
|
||||
|
||||
of = e_widget_framelist_add(evas, _("Personalized Password:"), 0);
|
||||
{
|
||||
cfdata->gui.passwd_field = ob = e_widget_entry_add(evas, &(cfdata->desklock_passwd));
|
||||
#ifdef HAVE_PAM
|
||||
if (cfdata->auth_method == 0)
|
||||
e_widget_disabled_set(ob, 1);
|
||||
if (cfdata->auth_method == 0) e_widget_disabled_set(ob, 1);
|
||||
#endif
|
||||
|
||||
_e_desklock_passwd_cb_change(cfdata, ob);
|
||||
|
@ -495,20 +429,13 @@ _advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data
|
|||
e_widget_framelist_object_append(of, ob);
|
||||
|
||||
ob = e_widget_check_add(evas, _("Show password"), &(cfdata->show_password));
|
||||
e_widget_on_change_hook_set(ob, _e_desklock_cb_show_passwd, cfdata);
|
||||
cfdata->gui.show_passwd_check = ob;
|
||||
|
||||
#ifdef HAVE_PAM
|
||||
if (cfdata->auth_method == 0)
|
||||
e_widget_disabled_set(ob, 1);
|
||||
if (cfdata->auth_method == 0) e_widget_disabled_set(ob, 1);
|
||||
#endif
|
||||
e_widget_framelist_object_append(of, ob);
|
||||
|
||||
cwd = (E_Widget_Check_Data*)e_widget_data_get(ob);
|
||||
edje_object_signal_callback_add(cwd->o_check,"toggle_on", "",
|
||||
_e_desklock_cb_show_passwd, cfdata);
|
||||
edje_object_signal_callback_add(cwd->o_check,"toggle_off", "",
|
||||
_e_desklock_cb_show_passwd, cfdata);
|
||||
}
|
||||
#ifdef HAVE_PAM
|
||||
e_widget_table_object_append(ot, of, 0, 3, 1, 1, 1, 1, 1, 1);
|
||||
#else
|
||||
|
@ -516,7 +443,7 @@ _advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data
|
|||
#endif
|
||||
|
||||
of = e_widget_framelist_add(evas, _("Automatic Locking"), 0);
|
||||
{
|
||||
|
||||
e_widget_disabled_set(of, !ecore_x_screensaver_event_available_get());
|
||||
|
||||
ob = e_widget_check_add(evas, _("Enable screensaver"), &(cfdata->use_timeout));
|
||||
|
@ -535,30 +462,11 @@ _advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data
|
|||
1.0, 0, &(cfdata->timeout), NULL,
|
||||
200);
|
||||
e_widget_framelist_object_append(of, ob);
|
||||
}
|
||||
#ifdef HAVE_PAM
|
||||
e_widget_table_object_append(ot, of, 1, 2, 1, 2 ,1 ,1 ,1 ,1);
|
||||
#else
|
||||
e_widget_table_object_append(ot, of, 1, 2, 1, 1 ,1 ,1 ,1 ,1);
|
||||
#endif
|
||||
}
|
||||
|
||||
/* register callbacks for the radios in login box options
|
||||
* in order to propertly update interface
|
||||
*/
|
||||
|
||||
wd = e_widget_data_get(cfdata->gui.loginbox_obj.show_all_screens);
|
||||
edje_object_signal_callback_add(wd->o_radio, "toggle_on", "",
|
||||
_e_desklock_cb_lb_show_on_all_screens, cfdata);
|
||||
|
||||
wd = e_widget_data_get(cfdata->gui.loginbox_obj.show_current_screen);
|
||||
edje_object_signal_callback_add(wd->o_radio, "toggle_on", "",
|
||||
_e_desklock_cb_lb_show_on_current_screen, cfdata);
|
||||
|
||||
wd = e_widget_data_get(cfdata->gui.loginbox_obj.show_specific_screen);
|
||||
edje_object_signal_callback_add(wd->o_radio, "toggle_on", "",
|
||||
_e_desklock_cb_lb_show_on_specific_screen, cfdata);
|
||||
|
||||
|
||||
e_dialog_resizable_set(cfd->dia, 0);
|
||||
return ot;
|
||||
|
@ -568,59 +476,7 @@ _advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data
|
|||
/* general functionality/callbacks */
|
||||
|
||||
static void
|
||||
_e_desklock_passwd_cb_change(void *data, Evas_Object *obj)
|
||||
{
|
||||
E_Widget_Entry_Data *wd;
|
||||
E_Config_Dialog_Data *cfdata;
|
||||
char *ptr;
|
||||
int i;
|
||||
|
||||
cfdata = data;
|
||||
|
||||
// here goes the hack to have e_widget_entry look like
|
||||
// password entry. However, I think, this should be implemented
|
||||
// at least on the e_widget_entry level. The best would be
|
||||
// e_entry.
|
||||
if (!cfdata->desklock_passwd[0])
|
||||
{
|
||||
E_FREE(cfdata->desklock_passwd_cp);
|
||||
cfdata->desklock_passwd_cp = strdup("");
|
||||
return;
|
||||
}
|
||||
|
||||
if (strlen(cfdata->desklock_passwd) > strlen(cfdata->desklock_passwd_cp))
|
||||
{
|
||||
for (i = 0; i < strlen(cfdata->desklock_passwd_cp); i++)
|
||||
cfdata->desklock_passwd[i] = cfdata->desklock_passwd_cp[i];
|
||||
E_FREE(cfdata->desklock_passwd_cp);
|
||||
cfdata->desklock_passwd_cp = strdup(cfdata->desklock_passwd);
|
||||
}
|
||||
else if (strlen(cfdata->desklock_passwd) < strlen(cfdata->desklock_passwd_cp))
|
||||
{
|
||||
cfdata->desklock_passwd_cp[strlen(cfdata->desklock_passwd)] = 0;
|
||||
E_FREE(cfdata->desklock_passwd);
|
||||
cfdata->desklock_passwd = strdup(cfdata->desklock_passwd_cp);
|
||||
}
|
||||
else
|
||||
{
|
||||
E_FREE(cfdata->desklock_passwd);
|
||||
cfdata->desklock_passwd = strdup(cfdata->desklock_passwd_cp);
|
||||
}
|
||||
|
||||
wd = e_widget_data_get(obj);
|
||||
|
||||
if (cfdata->show_password)
|
||||
{
|
||||
e_entry_text_set(wd->o_entry, cfdata->desklock_passwd);
|
||||
return;
|
||||
}
|
||||
|
||||
for (ptr = cfdata->desklock_passwd; *ptr; ptr++) *ptr = '*';
|
||||
e_entry_text_set(wd->o_entry, cfdata->desklock_passwd);
|
||||
}
|
||||
|
||||
static void
|
||||
_e_desklock_cb_show_passwd(void *data, Evas_Object *obj, const char *emission, const char *source)
|
||||
_e_desklock_cb_show_passwd(void *data, Evas_Object *obj)
|
||||
{
|
||||
E_Config_Dialog_Data *cfdata;
|
||||
|
||||
|
@ -629,7 +485,7 @@ _e_desklock_cb_show_passwd(void *data, Evas_Object *obj, const char *emission, c
|
|||
}
|
||||
|
||||
static int
|
||||
_e_desklock_zone_num_get()
|
||||
_e_desklock_zone_num_get(void)
|
||||
{
|
||||
int num;
|
||||
Evas_List *l, *l2;
|
||||
|
@ -646,7 +502,6 @@ _e_desklock_zone_num_get()
|
|||
num += evas_list_count(con->zones);
|
||||
}
|
||||
}
|
||||
|
||||
return num;
|
||||
}
|
||||
|
||||
|
@ -700,8 +555,6 @@ _load_bgs(E_Config_Dialog_Data *cfdata)
|
|||
/* end: Desklock background */
|
||||
|
||||
/* Theme Background */
|
||||
|
||||
|
||||
eebuf = ecore_evas_buffer_new(1, 1);
|
||||
evasbuf = ecore_evas_get(eebuf);
|
||||
|
||||
|
@ -792,17 +645,16 @@ _ibg_list_cb_bg_selected(void *data)
|
|||
E_Config_Dialog_Data *cfdata;
|
||||
|
||||
cfdata = data;
|
||||
|
||||
if (cfdata->cur_bg[0])
|
||||
{
|
||||
if (strcmp(cfdata->cur_bg, DEF_DESKLOCK_BACKGROUND) == 0)
|
||||
if (!strcmp(cfdata->cur_bg, DEF_DESKLOCK_BACKGROUND))
|
||||
{
|
||||
const char *theme;
|
||||
|
||||
theme = e_theme_edje_file_get("base/theme/desklock", "desklock/background");
|
||||
e_widget_preview_edje_set(cfdata->preview_image, theme, "desktop/background");
|
||||
}
|
||||
else if (strcmp(cfdata->cur_bg, DEF_THEME_BACKGROUND) == 0)
|
||||
else if (!strcmp(cfdata->cur_bg, DEF_THEME_BACKGROUND))
|
||||
{
|
||||
const char *theme;
|
||||
|
||||
|
@ -810,10 +662,8 @@ _ibg_list_cb_bg_selected(void *data)
|
|||
e_widget_preview_edje_set(cfdata->preview_image, theme, "desktop/background");
|
||||
}
|
||||
else
|
||||
{
|
||||
e_widget_preview_edje_set(cfdata->preview_image, cfdata->cur_bg, "desktop/background");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
const char *theme;
|
||||
|
@ -824,65 +674,94 @@ _ibg_list_cb_bg_selected(void *data)
|
|||
}
|
||||
|
||||
static void
|
||||
_e_desklock_cb_lb_show_on_all_screens(void *data, Evas_Object *obj, const char *emission,
|
||||
const char *source)
|
||||
_e_desklock_passwd_cb_change(void *data, Evas_Object *obj)
|
||||
{
|
||||
E_Config_Dialog_Data *cfdata;
|
||||
char *ptr;
|
||||
int i;
|
||||
|
||||
cfdata = data;
|
||||
|
||||
// here goes the hack to have e_widget_entry look like
|
||||
// password entry. However, I think, this should be implemented
|
||||
// at least on the e_widget_entry level. The best would be
|
||||
// e_entry.
|
||||
if (!cfdata->desklock_passwd[0])
|
||||
{
|
||||
E_FREE(cfdata->desklock_passwd_cp);
|
||||
cfdata->desklock_passwd_cp = strdup("");
|
||||
return;
|
||||
}
|
||||
|
||||
if (strlen(cfdata->desklock_passwd) > strlen(cfdata->desklock_passwd_cp))
|
||||
{
|
||||
for (i = 0; i < strlen(cfdata->desklock_passwd_cp); i++)
|
||||
cfdata->desklock_passwd[i] = cfdata->desklock_passwd_cp[i];
|
||||
E_FREE(cfdata->desklock_passwd_cp);
|
||||
cfdata->desklock_passwd_cp = strdup(cfdata->desklock_passwd);
|
||||
}
|
||||
else if (strlen(cfdata->desklock_passwd) < strlen(cfdata->desklock_passwd_cp))
|
||||
{
|
||||
cfdata->desklock_passwd_cp[strlen(cfdata->desklock_passwd)] = 0;
|
||||
E_FREE(cfdata->desklock_passwd);
|
||||
cfdata->desklock_passwd = strdup(cfdata->desklock_passwd_cp);
|
||||
}
|
||||
else
|
||||
{
|
||||
E_FREE(cfdata->desklock_passwd);
|
||||
cfdata->desklock_passwd = strdup(cfdata->desklock_passwd_cp);
|
||||
}
|
||||
|
||||
if (cfdata->show_password)
|
||||
{
|
||||
e_widget_entry_text_set(obj, cfdata->desklock_passwd);
|
||||
return;
|
||||
}
|
||||
|
||||
// FIXME: this is a hack. disable. see e_widget_entry.c for doing this right.
|
||||
// for (ptr = cfdata->desklock_passwd; *ptr; ptr++) *ptr = '*';
|
||||
// e_widget_entry_text_set(obj, cfdata->desklock_passwd);
|
||||
}
|
||||
|
||||
static void
|
||||
_e_desklock_cb_lb_show_change(void *data, Evas_Object *obj)
|
||||
{
|
||||
E_Config_Dialog_Data *cfdata;
|
||||
|
||||
if (!(cfdata = data)) return;
|
||||
|
||||
cfdata = data;
|
||||
if (cfdata->login_box_zone == LOGINBOX_SHOW_ALL_SCREENS)
|
||||
{
|
||||
cfdata->specific_lb_zone_backup = cfdata->specific_lb_zone;
|
||||
|
||||
e_widget_disabled_set(cfdata->gui.loginbox_obj.screen_slider, 1);
|
||||
}
|
||||
|
||||
static void
|
||||
_e_desklock_cb_lb_show_on_current_screen(void *data, Evas_Object *obj, const char *emission,
|
||||
const char *source)
|
||||
{
|
||||
_e_desklock_cb_lb_show_on_all_screens(data, obj, emission, source);
|
||||
}
|
||||
|
||||
static void
|
||||
_e_desklock_cb_lb_show_on_specific_screen(void *data, Evas_Object *obj, const char *emission,
|
||||
const char *source)
|
||||
{
|
||||
E_Widget_Slider_Data *wd;
|
||||
E_Config_Dialog_Data *cfdata;
|
||||
|
||||
if (!(cfdata = data)) return;
|
||||
|
||||
wd = e_widget_data_get(cfdata->gui.loginbox_obj.screen_slider);
|
||||
e_slider_value_set(wd->o_slider, cfdata->specific_lb_zone_backup);
|
||||
cfdata->specific_lb_zone = cfdata->specific_lb_zone_backup;
|
||||
|
||||
e_widget_disabled_set(wd->o_widget, 0);
|
||||
}
|
||||
else if (cfdata->login_box_zone == LOGINBOX_SHOW_CURRENT_SCREENS)
|
||||
{
|
||||
cfdata->specific_lb_zone_backup = cfdata->specific_lb_zone;
|
||||
e_widget_disabled_set(cfdata->gui.loginbox_obj.screen_slider, 1);
|
||||
}
|
||||
else if (cfdata->login_box_zone == LOGINBOX_SHOW_SPECIFIC_SCREEN)
|
||||
{
|
||||
e_widget_slider_value_int_set(cfdata->gui.loginbox_obj.screen_slider, cfdata->specific_lb_zone_backup);
|
||||
e_widget_disabled_set(cfdata->gui.loginbox_obj.screen_slider, 0);
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef HAVE_PAM
|
||||
static void
|
||||
_e_desklock_cb_syswide_auth_method(void *data, Evas_Object *obj, const char *emission,
|
||||
const char *source)
|
||||
_e_desklock_cb_auth_method_change(void *data, Evas_Object *obj)
|
||||
{
|
||||
E_Widget_Entry_Data *ewd;
|
||||
E_Widget_Check_Data *cwd;
|
||||
E_Config_Dialog_Data *cfdata;
|
||||
|
||||
if (!(cfdata = data)) return;
|
||||
|
||||
cfdata = data;
|
||||
if (cfdata->auth_method == 0)
|
||||
{
|
||||
e_widget_disabled_set(cfdata->gui.passwd_field, 1);
|
||||
e_widget_disabled_set(cfdata->gui.show_passwd_check, 1);
|
||||
}
|
||||
|
||||
static void
|
||||
_e_desklock_cb_personalized_auth_method(void *data, Evas_Object *obj, const char *emission,
|
||||
const char *source)
|
||||
{
|
||||
E_Config_Dialog_Data *cfdata;
|
||||
|
||||
if (!(cfdata = data)) return;
|
||||
|
||||
}
|
||||
else if (cfdata->auth_method == 1)
|
||||
{
|
||||
e_widget_disabled_set(cfdata->gui.passwd_field, 0);
|
||||
e_widget_disabled_set(cfdata->gui.show_passwd_check, 0);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -139,16 +139,6 @@ e_widget_entry_add(Evas *evas, char **val)
|
|||
return obj;
|
||||
}
|
||||
|
||||
EAPI void
|
||||
e_widget_entry_on_change_callback_set(Evas_Object *obj, void (*func) (void *data, Evas_Object *obj), void *data)
|
||||
{
|
||||
E_Widget_Data *wd;
|
||||
|
||||
wd = e_widget_data_get(obj);
|
||||
wd->on_change_func = func;
|
||||
wd->on_change_data = data;
|
||||
}
|
||||
|
||||
void
|
||||
e_widget_entry_text_set(Evas_Object *entry, const char *text)
|
||||
{
|
||||
|
@ -160,64 +150,22 @@ e_widget_entry_text_set(Evas_Object *entry, const char *text)
|
|||
*(wd->valptr) = strdup(text);
|
||||
}
|
||||
|
||||
#if 0
|
||||
const char *
|
||||
e_widget_entry_text_get(Evas_Object *entry)
|
||||
EAPI void
|
||||
e_widget_entry_on_change_callback_set(Evas_Object *obj, void (*func) (void *data, Evas_Object *obj), void *data)
|
||||
{
|
||||
return e_entry_text_get(entry);
|
||||
E_Widget_Data *wd;
|
||||
|
||||
wd = e_widget_data_get(obj);
|
||||
wd->on_change_func = func;
|
||||
wd->on_change_data = data;
|
||||
}
|
||||
|
||||
void
|
||||
e_widget_entry_text_insert(Evas_Object *entry, const char *text)
|
||||
EAPI void
|
||||
e_widget_entry_password_set(Evas_Object *obj, int pw)
|
||||
{
|
||||
e_entry_text_insert(entry, text);
|
||||
}
|
||||
E_Widget_Data *wd;
|
||||
|
||||
void
|
||||
e_widget_entry_delete_char_before(Evas_Object *entry)
|
||||
{
|
||||
e_entry_delete_char_before(entry);
|
||||
wd = e_widget_data_get(obj);
|
||||
// FIXME: need password mode for entry.
|
||||
// e_entry_password_set(wd->o_entry, pw);
|
||||
}
|
||||
|
||||
void
|
||||
e_widget_entry_delete_char_after(Evas_Object *entry)
|
||||
{
|
||||
e_entry_delete_char_after(entry);
|
||||
}
|
||||
|
||||
void
|
||||
e_widget_entry_cursor_move_at_start(Evas_Object *entry)
|
||||
{
|
||||
e_entry_cursor_move_at_start(entry);
|
||||
}
|
||||
|
||||
void
|
||||
e_widget_entry_cursor_move_at_end(Evas_Object *entry)
|
||||
{
|
||||
e_entry_cursor_move_at_end(entry);
|
||||
}
|
||||
|
||||
void
|
||||
e_widget_entry_cursor_move_left(Evas_Object *entry)
|
||||
{
|
||||
e_entry_cursor_move_left(entry);
|
||||
}
|
||||
|
||||
void
|
||||
e_widget_entry_cursor_move_right(Evas_Object *entry)
|
||||
{
|
||||
e_entry_cursor_move_right(entry);
|
||||
}
|
||||
|
||||
void
|
||||
e_widget_entry_cursor_show(Evas_Object *entry)
|
||||
{
|
||||
e_entry_cursor_show(entry);
|
||||
}
|
||||
|
||||
void
|
||||
e_widget_entry_cursor_hide(Evas_Object *entry)
|
||||
{
|
||||
e_entry_cursor_hide(entry);
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -7,18 +7,9 @@
|
|||
#define E_WIDGET_ENTRY_H
|
||||
|
||||
EAPI Evas_Object *e_widget_entry_add(Evas *evas, char **val);
|
||||
EAPI void e_widget_entry_text_set (Evas_Object *entry, const char *text);
|
||||
EAPI const char *e_editable_text_text_get(Evas_Object *entry);
|
||||
EAPI void e_widget_entry_text_set(Evas_Object *entry, const char *text);
|
||||
EAPI void e_widget_entry_text_insert (Evas_Object *entry, const char *text);
|
||||
EAPI void e_widget_entry_delete_char_before(Evas_Object *entry);
|
||||
EAPI void e_widget_entry_delete_char_after(Evas_Object *entry);
|
||||
EAPI void e_widget_entry_cursor_move_at_start(Evas_Object *entry);
|
||||
EAPI void e_widget_entry_cursor_move_at_end(Evas_Object *entry);
|
||||
EAPI void e_widget_entry_cursor_move_left(Evas_Object *entry);
|
||||
EAPI void e_widget_entry_cursor_move_right(Evas_Object *entry);
|
||||
EAPI void e_widget_entry_cursor_show(Evas_Object *entry);
|
||||
EAPI void e_widget_entry_cursor_hide(Evas_Object *entry);
|
||||
EAPI void e_widget_entry_on_change_callback_set(Evas_Object *obj, void (*func) (void *data, Evas_Object *obj), void *data);
|
||||
|
||||
EAPI void e_widget_entry_password_set(Evas_Object *obj, int pw);
|
||||
#endif
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue