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:
Carsten Haitzler 2006-06-01 04:09:33 +00:00
parent 049f2aae52
commit 59a12c9d5d
6 changed files with 434 additions and 602 deletions

View File

@ -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)
@ -489,7 +489,6 @@ e_entry_unfocus(Evas_Object *entry)
edje_object_signal_emit(sd->edje_object, "focus_out", "");
}
/**************************
*
@ -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);
}

View File

@ -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

View File

@ -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;

File diff suppressed because it is too large Load Diff

View File

@ -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;
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_before(Evas_Object *entry)
{
e_entry_delete_char_before(entry);
}
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

View File

@ -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