Add function for getting grid name and save grid name during _grid_add

Signed-off-by: Chris Michael <devilhorns@comcast.net>
This commit is contained in:
Chris Michael 2014-01-04 11:30:28 +00:00
parent 73f443cffc
commit 0e79b5ce2c
1 changed files with 27 additions and 4 deletions

View File

@ -40,6 +40,10 @@ struct _Grid
Evas_Object *o_event;
const char *name;
Eina_Bool noreqsize : 1;
Ecore_Timer *delayed_size_timer;
};
@ -499,14 +503,15 @@ _smart_size(Evas_Object *obj, int w, int h, Eina_Bool force)
evas_event_freeze(sd->evas);
evas_object_textgrid_size_set(sd->grid.obj, w, h);
sd->grid.w = w;
sd->grid.h = h;
evas_object_resize(sd->cursor.obj, sd->font.chw, sd->font.chh);
evas_object_size_hint_min_set(obj, sd->font.chw, sd->font.chh);
evas_object_size_hint_request_set(obj, sd->font.chw * sd->grid.w,
sd->font.chh * sd->grid.h);
if (!sd->noreqsize)
evas_object_size_hint_request_set(obj, sd->font.chw * sd->grid.w,
sd->font.chh * sd->grid.h);
_smart_calculate(obj);
_smart_apply(obj);
@ -570,6 +575,8 @@ _smart_cb_focus_in(void *data, Evas *evas EINA_UNUSED, Evas_Object *obj EINA_UNU
if (!(sd = evas_object_smart_data_get(data))) return;
edje_object_signal_emit(sd->cursor.obj, "focus,in", "express");
evas_object_show(sd->cursor.obj);
/* TODO: finish */
}
@ -673,6 +680,7 @@ _smart_del(Evas_Object *obj)
/* try to get smart data */
if (!(sd = evas_object_smart_data_get(obj))) return;
if (sd->name) eina_stringshare_del(sd->name);
if (sd->delayed_size_timer) ecore_timer_del(sd->delayed_size_timer);
if (sd->cursor.obj) evas_object_del(sd->cursor.obj);
if (sd->o_event) evas_object_del(sd->o_event);
@ -740,6 +748,9 @@ _grid_config_set(Grid *sd)
{
Evas_Coord w = 2, h = 2;
if (sd->font.name) eina_stringshare_del(sd->font.name);
sd->font.name = NULL;
if (_ex_cfg->font.bitmap)
{
char buff[PATH_MAX];
@ -781,7 +792,7 @@ _grid_config_set(Grid *sd)
}
Evas_Object *
_grid_add(Evas_Object *parent)
_grid_add(Evas_Object *parent, const char *name)
{
Evas_Object *obj;
Grid *sd;
@ -795,6 +806,8 @@ _grid_add(Evas_Object *parent)
obj = evas_object_smart_add(evas, _smart);
if (!(sd = evas_object_smart_data_get(obj))) return obj;
sd->name = eina_stringshare_add(name);
_grid_config_set(sd);
_smart_size(obj, 80, 24, EINA_FALSE);
@ -880,3 +893,13 @@ _grid_colors_init(Evas_Object *obj, Evas_Object *bg)
}
}
}
const char *
_grid_name_get(Evas_Object *obj)
{
Grid *sd;
/* try to get smart data */
if (!(sd = evas_object_smart_data_get(obj))) return NULL;
return sd->name;
}