* Rewrite the entry widget
It is now splitted in 3 files: - e_editable.c that implements a generic single-line editable object that could be used later by other widgets such as the slider or a spinner. - e_entry.c that implements an entry smart object using an editable object. - e_widget_entry.c that embeds an entry smart object in a widget. So far, text insertion and deletion have been implemented. It also supports cursor movement and mouse selection. The text also no longer gets out of the bounds of the entry. Things to come: - Password mode - Copy/Paste - Make it actually themable, for now, the colors/font/style are hardcoded SVN revision: 24575
This commit is contained in:
parent
c848e1cf5a
commit
4eddbf00ca
|
@ -1,6 +1,5 @@
|
|||
images {
|
||||
image: "entry.png" COMP;
|
||||
image: "entry_focus.png" COMP;
|
||||
}
|
||||
|
||||
group {
|
||||
|
@ -16,13 +15,6 @@ group {
|
|||
border: 8 8 8 8;
|
||||
}
|
||||
}
|
||||
description {
|
||||
state: "focus" 0.0;
|
||||
inherit: "default" 0.0;
|
||||
image {
|
||||
normal: "entry_focus.png";
|
||||
}
|
||||
}
|
||||
}
|
||||
part {
|
||||
name: "entry_focus";
|
||||
|
@ -30,10 +22,14 @@ group {
|
|||
state: "default" 0.0;
|
||||
visible: 0;
|
||||
color: 255 255 255 0;
|
||||
image {
|
||||
normal: "entry_focus.png";
|
||||
border: 8 8 8 8;
|
||||
}
|
||||
image {
|
||||
normal: "focus.png";
|
||||
border: 7 7 7 7;
|
||||
middle: 0;
|
||||
}
|
||||
fill {
|
||||
smooth: 0;
|
||||
}
|
||||
}
|
||||
description {
|
||||
state: "focus" 0.0;
|
||||
|
@ -49,12 +45,12 @@ group {
|
|||
state: "default" 0.0;
|
||||
rel1 {
|
||||
relative: 0.0 0.0;
|
||||
offset: 4 3;
|
||||
offset: 4 4;
|
||||
to: "entry";
|
||||
}
|
||||
rel2 {
|
||||
relative: 1.0 1.0;
|
||||
offset: -5 -4;
|
||||
offset: -5 -5;
|
||||
to: "entry";
|
||||
}
|
||||
}
|
||||
|
@ -66,7 +62,7 @@ group {
|
|||
signal: "focus_in";
|
||||
source: "";
|
||||
action: STATE_SET "focus" 0.0;
|
||||
transition: LINEAR 0.2;
|
||||
transition: DECELERATE 0.2;
|
||||
target: "entry_focus";
|
||||
}
|
||||
program {
|
||||
|
@ -74,7 +70,7 @@ group {
|
|||
signal: "focus_out";
|
||||
source: "";
|
||||
action: STATE_SET "default" 0.0;
|
||||
transition: LINEAR 0.2;
|
||||
transition: ACCELERATE 0.5;
|
||||
target: "entry_focus";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -326,7 +326,6 @@ e17_about_sky5.png \
|
|||
e17_about_sky_overlay.png \
|
||||
focus.png \
|
||||
entry.png \
|
||||
entry_focus.png \
|
||||
e17_scrollbar_hdrag_thumb.png \
|
||||
e17_scrollbar_vdrag_thumb.png \
|
||||
e17_fileman_bg.png \
|
||||
|
|
Binary file not shown.
|
@ -85,6 +85,7 @@ e_dialog.h \
|
|||
e_about.h \
|
||||
e_theme_about.h \
|
||||
e_apps_cache.h \
|
||||
e_editable.h \
|
||||
e_entry.h \
|
||||
e_fileman.h \
|
||||
e_fileman_smart.h \
|
||||
|
@ -228,6 +229,7 @@ e_dialog.c \
|
|||
e_about.c \
|
||||
e_theme_about.c \
|
||||
e_apps_cache.c \
|
||||
e_editable.c \
|
||||
e_entry.c \
|
||||
e_fileman.c \
|
||||
e_fileman_smart.c \
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,42 @@
|
|||
/*
|
||||
* vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
|
||||
*/
|
||||
#ifdef E_TYPEDEFS
|
||||
#else
|
||||
#ifndef E_EDITABLE_H
|
||||
#define E_EDITABLE_H
|
||||
|
||||
EAPI Evas_Object *e_editable_add (Evas *evas);
|
||||
EAPI void e_editable_text_set (Evas_Object *editable, const char *text);
|
||||
EAPI const char *e_editable_text_get (Evas_Object *editable);
|
||||
EAPI char *e_editable_text_range_get (Evas_Object *editable, int start, int end);
|
||||
EAPI int e_editable_text_length_get (Evas_Object *editable);
|
||||
EAPI int e_editable_insert (Evas_Object *editable, int pos, const char *text);
|
||||
EAPI int e_editable_delete (Evas_Object *editable, int start, int end);
|
||||
|
||||
EAPI void e_editable_cursor_pos_set (Evas_Object *editable, int pos);
|
||||
EAPI int e_editable_cursor_pos_get (Evas_Object *editable);
|
||||
EAPI void e_editable_cursor_move_to_start (Evas_Object *editable);
|
||||
EAPI void e_editable_cursor_move_to_end (Evas_Object *editable);
|
||||
EAPI void e_editable_cursor_move_left (Evas_Object *editable);
|
||||
EAPI void e_editable_cursor_move_right (Evas_Object *editable);
|
||||
EAPI void e_editable_cursor_show (Evas_Object *editable);
|
||||
EAPI void e_editable_cursor_hide (Evas_Object *editable);
|
||||
|
||||
EAPI void e_editable_selection_pos_set (Evas_Object *editable, int pos);
|
||||
EAPI int e_editable_selection_pos_get (Evas_Object *editable);
|
||||
EAPI void e_editable_selection_move_to_start (Evas_Object *editable);
|
||||
EAPI void e_editable_selection_move_to_end (Evas_Object *editable);
|
||||
EAPI void e_editable_selection_move_left (Evas_Object *editable);
|
||||
EAPI void e_editable_selection_move_right (Evas_Object *editable);
|
||||
EAPI void e_editable_select_all (Evas_Object *editable);
|
||||
EAPI void e_editable_unselect_all (Evas_Object *editable);
|
||||
EAPI void e_editable_selection_show (Evas_Object *editable);
|
||||
EAPI void e_editable_selection_hide (Evas_Object *editable);
|
||||
EAPI void e_editable_selectable_set (Evas_Object *editable, int selectable);
|
||||
EAPI int e_editable_selectable_get (Evas_Object *editable);
|
||||
|
||||
EAPI void e_editable_char_size_get (Evas_Object *editable, int *w, int *h);
|
||||
|
||||
#endif
|
||||
#endif
|
1182
src/bin/e_entry.c
1182
src/bin/e_entry.c
File diff suppressed because it is too large
Load Diff
|
@ -2,52 +2,20 @@
|
|||
* vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
|
||||
*/
|
||||
#ifdef E_TYPEDEFS
|
||||
|
||||
typedef struct _E_Event_Entry_Change E_Event_Entry_Change;
|
||||
|
||||
#else
|
||||
#ifndef E_ENTRY_H
|
||||
#define E_ENTRY_H
|
||||
|
||||
struct _E_Event_Entry_Change
|
||||
{
|
||||
Evas_Object *object;
|
||||
char *keyname;
|
||||
char *key;
|
||||
char *string;
|
||||
};
|
||||
EAPI Evas_Object *e_entry_add (Evas *evas);
|
||||
EAPI void e_entry_text_set (Evas_Object *entry, const char *text);
|
||||
EAPI const char *e_entry_text_get (Evas_Object *entry);
|
||||
EAPI void e_entry_clear (Evas_Object *entry);
|
||||
|
||||
EAPI Evas_Object *e_editable_text_add(Evas *evas);
|
||||
EAPI void e_editable_text_text_set(Evas_Object *object, const char *text);
|
||||
EAPI const char *e_entry_text_get(Evas_Object *object);
|
||||
EAPI void e_editable_text_insert(Evas_Object *object, const char *text);
|
||||
EAPI void e_editable_text_delete_char_before(Evas_Object *object);
|
||||
EAPI void e_editable_text_delete_char_after(Evas_Object *object);
|
||||
EAPI void e_editable_text_cursor_move_at_start(Evas_Object *object);
|
||||
EAPI void e_editable_text_cursor_move_at_end(Evas_Object *object);
|
||||
EAPI void e_editable_text_cursor_move_left(Evas_Object *object);
|
||||
EAPI void e_editable_text_cursor_move_right(Evas_Object *object);
|
||||
EAPI void e_editable_text_cursor_show(Evas_Object *object);
|
||||
EAPI void e_editable_text_cursor_hide(Evas_Object *object);
|
||||
|
||||
EAPI int e_entry_init(void);
|
||||
EAPI int e_entry_shutdown(void);
|
||||
EAPI Evas_Object *e_entry_add(Evas *evas);
|
||||
EAPI void e_entry_text_set (Evas_Object *entry, const char *text);
|
||||
EAPI const char *e_editable_text_text_get(Evas_Object *object);
|
||||
EAPI void e_entry_text_insert (Evas_Object *entry, const char *text);
|
||||
EAPI void e_entry_delete_char_before(Evas_Object *object);
|
||||
EAPI void e_entry_delete_char_after(Evas_Object *object);
|
||||
EAPI void e_entry_cursor_move_at_start(Evas_Object *object);
|
||||
EAPI void e_entry_cursor_move_at_end(Evas_Object *object);
|
||||
EAPI void e_entry_cursor_move_left(Evas_Object *object);
|
||||
EAPI void e_entry_cursor_move_right(Evas_Object *object);
|
||||
EAPI void e_entry_cursor_show(Evas_Object *object);
|
||||
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_min_size_get(Evas_Object *object, Evas_Coord *mw, Evas_Coord *mh);
|
||||
EAPI void e_entry_min_size_get (Evas_Object *entry, Evas_Coord *minw, Evas_Coord *minh);
|
||||
EAPI void e_entry_focus (Evas_Object *entry);
|
||||
EAPI void e_entry_unfocus (Evas_Object *entry);
|
||||
EAPI void e_entry_enable (Evas_Object *entry);
|
||||
EAPI void e_entry_disable (Evas_Object *entry);
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
@ -970,9 +970,7 @@ _e_fm_file_rename_start(E_Fm_Icon *icon)
|
|||
{
|
||||
icon->sd->state = E_FILEMAN_STATE_RENAME;
|
||||
icon->sd->entry_obj = e_entry_add(icon->sd->evas);
|
||||
evas_object_focus_set(icon->sd->entry_obj, 1);
|
||||
evas_object_show(icon->sd->entry_obj);
|
||||
e_entry_cursor_show(icon->sd->entry_obj);
|
||||
e_entry_focus(icon->sd->entry_obj);
|
||||
|
||||
e_fm_icon_edit_entry_set(icon->icon_obj, icon->sd->entry_obj);
|
||||
e_fm_icon_title_set(icon->icon_obj, "");
|
||||
|
@ -980,7 +978,6 @@ _e_fm_file_rename_start(E_Fm_Icon *icon)
|
|||
// e_fm_mouse_up_handler = ecore_event_handler_add(ECORE_X_EVENT_MOUSE_BUTTON_UP,
|
||||
// _e_fm_win_mouse_up_cb, icon);
|
||||
//e_grabinput_get(icon->sd->win->evas_win, 1, icon->sd->win->evas_win);
|
||||
e_entry_cursor_move_at_start(icon->sd->entry_obj);
|
||||
e_entry_text_set(icon->sd->entry_obj, icon->file->name);
|
||||
|
||||
// e_fm_grab_time = ecore_time_get();
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
#include "e_menu.h"
|
||||
#include "e_icon.h"
|
||||
#include "e_box.h"
|
||||
#include "e_editable.h"
|
||||
#include "e_entry.h"
|
||||
#include "e_init.h"
|
||||
#include "e_int_menus.h"
|
||||
|
|
|
@ -237,7 +237,7 @@ _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cf
|
|||
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);
|
||||
e_widget_on_change_hook_set(ob, _e_desklock_passwd_cb_change, cfdata);
|
||||
e_widget_min_size_set(ob, 200, 25);
|
||||
e_widget_framelist_object_append(of, ob);
|
||||
|
||||
|
@ -424,7 +424,7 @@ _advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data
|
|||
#endif
|
||||
|
||||
_e_desklock_passwd_cb_change(cfdata, ob);
|
||||
e_widget_entry_on_change_callback_set(ob, _e_desklock_passwd_cb_change, cfdata);
|
||||
e_widget_on_change_hook_set(ob, _e_desklock_passwd_cb_change, cfdata);
|
||||
e_widget_min_size_set(ob, 200, 25);
|
||||
e_widget_framelist_object_append(of, ob);
|
||||
|
||||
|
|
|
@ -2,34 +2,112 @@
|
|||
* vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
|
||||
*/
|
||||
#include "e.h"
|
||||
|
||||
|
||||
typedef struct _E_Widget_Data E_Widget_Data;
|
||||
struct _E_Widget_Data
|
||||
{
|
||||
Evas_Object *o_entry;
|
||||
Evas_Object *obj;
|
||||
char **valptr;
|
||||
void (*on_change_func) (void *data, Evas_Object *obj);
|
||||
void *on_change_data;
|
||||
char **text_location;
|
||||
};
|
||||
|
||||
/* local subsystem functions */
|
||||
static void _e_wid_del_hook(Evas_Object *obj);
|
||||
static void _e_wid_focus_hook(Evas_Object *obj);
|
||||
static void _e_wid_disable_hook(Evas_Object *obj);
|
||||
static void _e_wid_on_change_hook(void *data, Evas_Object *obj);
|
||||
//static void _e_wid_signal_cb1(void *data, Evas_Object *obj, const char *emission, const char *source);
|
||||
static void _e_wid_focus_steal(void *data, Evas *e, Evas_Object *obj, void *event_info);
|
||||
static void _e_wid_text_change(void *data, Evas_Object *entry, char *key);
|
||||
|
||||
/* local subsystem functions */
|
||||
static void _e_wid_changed_cb(void *data, Evas_Object *obj, void *event_info);
|
||||
|
||||
/* externally accessible functions */
|
||||
|
||||
/**
|
||||
* Creates a new entry widget
|
||||
*
|
||||
* @param evas the evas where to add the new entry widget
|
||||
* @param text_location the location where to store the text of the entry.
|
||||
* The current value will be used to initialize the entry
|
||||
* @return Returns the new entry widget
|
||||
*/
|
||||
EAPI Evas_Object *
|
||||
e_widget_entry_add(Evas *evas, char **text_location)
|
||||
{
|
||||
Evas_Object *obj, *o;
|
||||
E_Widget_Data *wd;
|
||||
Evas_Coord minw, minh;
|
||||
|
||||
obj = e_widget_add(evas);
|
||||
|
||||
e_widget_del_hook_set(obj, _e_wid_del_hook);
|
||||
e_widget_focus_hook_set(obj, _e_wid_focus_hook);
|
||||
e_widget_disable_hook_set(obj, _e_wid_disable_hook);
|
||||
|
||||
wd = calloc(1, sizeof(E_Widget_Data));
|
||||
e_widget_data_set(obj, wd);
|
||||
wd->text_location = text_location;
|
||||
|
||||
o = e_entry_add(evas);
|
||||
wd->o_entry = o;
|
||||
evas_object_show(o);
|
||||
e_widget_sub_object_add(obj, o);
|
||||
e_widget_resize_object_set(obj, o);
|
||||
evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_DOWN, _e_wid_focus_steal, obj);
|
||||
|
||||
if ((text_location) && (*text_location))
|
||||
e_entry_text_set(o, *text_location);
|
||||
|
||||
e_entry_min_size_get(o, &minw, &minh);
|
||||
e_widget_min_size_set(obj, minw, minh);
|
||||
|
||||
evas_object_smart_callback_add(o, "changed", _e_wid_changed_cb, obj);
|
||||
|
||||
return obj;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the text of the entry widget
|
||||
*
|
||||
* @param entry an entry widget
|
||||
* @param text the text to set
|
||||
*/
|
||||
EAPI void
|
||||
e_widget_entry_text_set(Evas_Object *entry, const char *text)
|
||||
{
|
||||
E_Widget_Data *wd;
|
||||
|
||||
if (!(entry) || (!(wd = e_widget_data_get(entry))))
|
||||
return;
|
||||
e_entry_text_set(wd->o_entry, text);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the text of the entry widget
|
||||
*
|
||||
* @param entry an entry widget
|
||||
* @return Returns the text of the entry widget
|
||||
*/
|
||||
EAPI const char *
|
||||
e_widget_entry_text_get(Evas_Object *entry)
|
||||
{
|
||||
E_Widget_Data *wd;
|
||||
|
||||
if (!(entry) || (!(wd = e_widget_data_get(entry))))
|
||||
return NULL;
|
||||
return e_entry_text_get(wd->o_entry);
|
||||
}
|
||||
|
||||
/* TODO, TODOC */
|
||||
EAPI void
|
||||
e_widget_entry_password_set(Evas_Object *obj, int password)
|
||||
{
|
||||
}
|
||||
|
||||
/* Private functions */
|
||||
static void
|
||||
_e_wid_del_hook(Evas_Object *obj)
|
||||
{
|
||||
E_Widget_Data *wd;
|
||||
|
||||
wd = e_widget_data_get(obj);
|
||||
|
||||
if (!(obj) || (!(wd = e_widget_data_get(obj))))
|
||||
return;
|
||||
free(wd);
|
||||
}
|
||||
|
||||
|
@ -37,33 +115,28 @@ static void
|
|||
_e_wid_focus_hook(Evas_Object *obj)
|
||||
{
|
||||
E_Widget_Data *wd;
|
||||
|
||||
if (!(obj) || (!(wd = e_widget_data_get(obj))))
|
||||
return;
|
||||
|
||||
wd = e_widget_data_get(obj);
|
||||
if (e_widget_focus_get(obj))
|
||||
{
|
||||
e_entry_focus(wd->o_entry);
|
||||
evas_object_focus_set(wd->o_entry, 1);
|
||||
e_entry_cursor_move_at_end(wd->o_entry);
|
||||
e_entry_cursor_show(wd->o_entry);
|
||||
}
|
||||
e_entry_focus(wd->o_entry);
|
||||
else
|
||||
{
|
||||
e_entry_unfocus(wd->o_entry);
|
||||
evas_object_focus_set(wd->o_entry, 0);
|
||||
e_entry_cursor_hide(wd->o_entry);
|
||||
}
|
||||
e_entry_unfocus(wd->o_entry);
|
||||
}
|
||||
|
||||
static void
|
||||
_e_wid_disable_hook(Evas_Object *obj)
|
||||
{
|
||||
E_Widget_Data *wd;
|
||||
|
||||
if (!(obj) || (!(wd = e_widget_data_get(obj))))
|
||||
return;
|
||||
|
||||
wd = e_widget_data_get(obj);
|
||||
if (e_widget_disabled_get(obj))
|
||||
edje_object_signal_emit(wd->o_entry, "disabled", "");
|
||||
e_entry_disable(wd->o_entry);
|
||||
else
|
||||
edje_object_signal_emit(wd->o_entry, "enabled", "");
|
||||
e_entry_enable(wd->o_entry);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -73,97 +146,21 @@ _e_wid_focus_steal(void *data, Evas *e, Evas_Object *obj, void *event_info)
|
|||
}
|
||||
|
||||
static void
|
||||
_e_wid_on_change_hook(void *data, Evas_Object *obj)
|
||||
{
|
||||
E_Widget_Data *wd;
|
||||
|
||||
wd = e_widget_data_get(obj);
|
||||
if(wd->on_change_func)
|
||||
wd->on_change_func(wd->on_change_data, obj);
|
||||
}
|
||||
|
||||
static void
|
||||
_e_wid_text_change(void *data, Evas_Object *entry, char *key)
|
||||
_e_wid_changed_cb(void *data, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
Evas_Object *entry;
|
||||
E_Widget_Data *wd;
|
||||
const char *text;
|
||||
|
||||
if (!(entry = data) || (!(wd = e_widget_data_get(entry))))
|
||||
return;
|
||||
|
||||
wd = data;
|
||||
E_FREE(*(wd->valptr));
|
||||
text = e_entry_text_get(wd->o_entry);
|
||||
if (!text)
|
||||
*(wd->valptr) = strdup("");
|
||||
else
|
||||
*(wd->valptr) = strdup(text);
|
||||
e_widget_change(wd->obj);
|
||||
}
|
||||
|
||||
/* externally accessible functions */
|
||||
EAPI Evas_Object *
|
||||
e_widget_entry_add(Evas *evas, char **val)
|
||||
{
|
||||
Evas_Object *obj, *o;
|
||||
E_Widget_Data *wd;
|
||||
Evas_Coord mw, mh;
|
||||
|
||||
obj = e_widget_add(evas);
|
||||
|
||||
e_widget_on_change_hook_set(obj, _e_wid_on_change_hook, NULL);
|
||||
e_widget_del_hook_set(obj, _e_wid_del_hook);
|
||||
e_widget_focus_hook_set(obj, _e_wid_focus_hook);
|
||||
e_widget_disable_hook_set(obj, _e_wid_disable_hook);
|
||||
wd = calloc(1, sizeof(E_Widget_Data));
|
||||
wd->valptr = val;
|
||||
wd->obj = obj;
|
||||
wd->on_change_func = NULL;
|
||||
wd->on_change_data = NULL;
|
||||
e_widget_data_set(obj, wd);
|
||||
|
||||
o = e_entry_add(evas);
|
||||
wd->o_entry = o;
|
||||
evas_object_show(o);
|
||||
e_entry_min_size_get(o, &mw, &mh);
|
||||
e_widget_min_size_set(obj, mw, mh);
|
||||
|
||||
if (*(wd->valptr))
|
||||
e_entry_text_set(wd->o_entry, *(wd->valptr));
|
||||
|
||||
e_widget_sub_object_add(obj, o);
|
||||
evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_DOWN, _e_wid_focus_steal, obj);
|
||||
e_widget_resize_object_set(obj, o);
|
||||
|
||||
e_entry_change_handler_set(wd->o_entry, _e_wid_text_change, wd);
|
||||
|
||||
return obj;
|
||||
}
|
||||
|
||||
void
|
||||
e_widget_entry_text_set(Evas_Object *entry, const char *text)
|
||||
{
|
||||
E_Widget_Data *wd;
|
||||
|
||||
wd = e_widget_data_get(entry);
|
||||
e_entry_text_set(wd->o_entry, text);
|
||||
E_FREE(*(wd->valptr));
|
||||
*(wd->valptr) = strdup(text);
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
EAPI void
|
||||
e_widget_entry_password_set(Evas_Object *obj, int pw)
|
||||
{
|
||||
E_Widget_Data *wd;
|
||||
|
||||
wd = e_widget_data_get(obj);
|
||||
// FIXME: need password mode for entry.
|
||||
// e_entry_password_set(wd->o_entry, pw);
|
||||
if (wd->text_location)
|
||||
{
|
||||
text = e_widget_entry_text_get(entry);
|
||||
free(*wd->text_location);
|
||||
*wd->text_location = text ? strdup(text) : NULL;
|
||||
}
|
||||
|
||||
e_widget_change(data);
|
||||
}
|
||||
|
|
|
@ -6,10 +6,11 @@
|
|||
#ifndef E_WIDGET_ENTRY_H
|
||||
#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 void e_widget_entry_text_insert (Evas_Object *entry, const char *text);
|
||||
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);
|
||||
EAPI Evas_Object *e_widget_entry_add (Evas *evas, char **text_location);
|
||||
EAPI void e_widget_entry_text_set (Evas_Object *entry, const char *text);
|
||||
EAPI const char *e_widget_entry_text_get (Evas_Object *entry);
|
||||
EAPI void e_widget_entry_clear (Evas_Object *entry);
|
||||
EAPI void e_widget_entry_password_set (Evas_Object *entry, int password);
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue