forked from enlightenment/enlightenment
* add interface functionality that notifies if font class is enabled/disabled by showing or
hidding icon for the list item. SVN revision: 22057
This commit is contained in:
parent
d4abae1e6d
commit
df36261f83
|
@ -3,6 +3,9 @@
|
||||||
*/
|
*/
|
||||||
#include "e.h"
|
#include "e.h"
|
||||||
|
|
||||||
|
#define ILIST_ICON_WITH_DEFINED_FONT "enlightenment/e"
|
||||||
|
#define ILIST_ICON_WITHOUT_DEFINED_FONT ""
|
||||||
|
|
||||||
typedef struct _E_Text_Class_Pair E_Text_Class_Pair;
|
typedef struct _E_Text_Class_Pair E_Text_Class_Pair;
|
||||||
typedef struct _CFText_Class CFText_Class;
|
typedef struct _CFText_Class CFText_Class;
|
||||||
|
|
||||||
|
@ -13,9 +16,44 @@ static Evas_Object *_basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Co
|
||||||
|
|
||||||
static void _ilist_font_cb_change(void *data, Evas_Object *obj);
|
static void _ilist_font_cb_change(void *data, Evas_Object *obj);
|
||||||
static void _enabled_font_cb_change(void *data, Evas_Object *obj);
|
static void _enabled_font_cb_change(void *data, Evas_Object *obj);
|
||||||
|
static void _update_font_class_ilist_icon(void *data);
|
||||||
|
|
||||||
static void _enabled_fallback_cb_change(void *data, Evas_Object *obj);
|
static void _enabled_fallback_cb_change(void *data, Evas_Object *obj);
|
||||||
|
|
||||||
|
typedef struct _E_Smart_Item E_Smart_Item;
|
||||||
|
typedef struct _E_Smart_Data E_Smart_Data;
|
||||||
|
typedef struct _E_Widget_IList_Data E_Widget_IList_Data;
|
||||||
|
|
||||||
|
struct _E_Widget_IList_Data
|
||||||
|
{
|
||||||
|
Evas_Object *o_widget, *o_scrollframe, *o_ilist;
|
||||||
|
Evas_List *callbacks;
|
||||||
|
char **value;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct _E_Smart_Data
|
||||||
|
{
|
||||||
|
Evas_Coord x, y, w, h;
|
||||||
|
|
||||||
|
Evas_Object *smart_obj;
|
||||||
|
Evas_Object *box_obj;
|
||||||
|
Evas_List *items;
|
||||||
|
int selected;
|
||||||
|
Evas_Coord icon_w, icon_h;
|
||||||
|
unsigned char selector : 1;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct _E_Smart_Item
|
||||||
|
{
|
||||||
|
E_Smart_Data *sd;
|
||||||
|
Evas_Object *base_obj;
|
||||||
|
Evas_Object *icon_obj;
|
||||||
|
void (*func) (void *data, void *data2);
|
||||||
|
void (*func_hilight) (void *data, void *data2);
|
||||||
|
void *data;
|
||||||
|
void *data2;
|
||||||
|
};
|
||||||
|
|
||||||
struct _E_Text_Class_Pair
|
struct _E_Text_Class_Pair
|
||||||
{
|
{
|
||||||
const char *class_name;
|
const char *class_name;
|
||||||
|
@ -282,7 +320,7 @@ _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cf
|
||||||
{
|
{
|
||||||
ic = edje_object_add(evas);
|
ic = edje_object_add(evas);
|
||||||
if (tc->enabled)
|
if (tc->enabled)
|
||||||
e_util_edje_icon_set(ic, "enlightenment/e");
|
e_util_edje_icon_set(ic, ILIST_ICON_WITH_DEFINED_FONT);
|
||||||
else
|
else
|
||||||
e_util_edje_icon_set(ic, "");
|
e_util_edje_icon_set(ic, "");
|
||||||
e_widget_ilist_append(cfdata->gui.class_list, ic, tc->class_description, NULL, NULL, NULL);
|
e_widget_ilist_append(cfdata->gui.class_list, ic, tc->class_description, NULL, NULL, NULL);
|
||||||
|
@ -442,6 +480,8 @@ _enabled_font_cb_change(void *data, Evas_Object *obj)
|
||||||
e_widget_disabled_set(cfdata->gui.font, 1);
|
e_widget_disabled_set(cfdata->gui.font, 1);
|
||||||
e_widget_disabled_set(cfdata->gui.size, 1);
|
e_widget_disabled_set(cfdata->gui.size, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_update_font_class_ilist_icon(cfdata);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Private Font Fallback Functions */
|
/* Private Font Fallback Functions */
|
||||||
|
@ -455,3 +495,50 @@ static void _enabled_fallback_cb_change(void *data, Evas_Object *obj)
|
||||||
e_widget_disabled_set(cfdata->gui.fallback_list, !cfdata->cur_fallbacks_enabled);
|
e_widget_disabled_set(cfdata->gui.fallback_list, !cfdata->cur_fallbacks_enabled);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Just to have nice icon change in fontclass list */
|
||||||
|
static void _update_font_class_ilist_icon(void *data)
|
||||||
|
{
|
||||||
|
E_Smart_Item *si;
|
||||||
|
E_Smart_Data *sd;
|
||||||
|
E_Widget_IList_Data *wd;
|
||||||
|
Evas_Object *obj;
|
||||||
|
|
||||||
|
E_Config_Dialog_Data *cfdata;
|
||||||
|
|
||||||
|
if (!(cfdata = data))
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!(wd = e_widget_data_get(cfdata->gui.class_list)))
|
||||||
|
return;
|
||||||
|
|
||||||
|
obj = wd->o_ilist;
|
||||||
|
|
||||||
|
sd = evas_object_smart_data_get(obj);
|
||||||
|
|
||||||
|
if ((!obj) || (!sd) ||
|
||||||
|
(evas_object_type_get(obj) && strcmp(evas_object_type_get(obj), "e_ilist")))
|
||||||
|
return;
|
||||||
|
|
||||||
|
si = evas_list_nth(sd->items, sd->selected);
|
||||||
|
if (si)
|
||||||
|
{
|
||||||
|
edje_object_part_unswallow(si->base_obj, si->icon_obj);
|
||||||
|
evas_object_hide(si->icon_obj);
|
||||||
|
if (cfdata->cur_enabled)
|
||||||
|
{
|
||||||
|
if (si->icon_obj == NULL)
|
||||||
|
si->icon_obj = edje_object_add(evas_object_evas_get(sd->smart_obj));
|
||||||
|
e_util_edje_icon_set(si->icon_obj, ILIST_ICON_WITH_DEFINED_FONT);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
si->icon_obj = NULL;
|
||||||
|
|
||||||
|
if (si->icon_obj)
|
||||||
|
{
|
||||||
|
edje_extern_object_min_size_set(si->icon_obj, sd->icon_w, sd->icon_h);
|
||||||
|
edje_object_part_swallow(si->base_obj, "icon_swallow", si->icon_obj);
|
||||||
|
evas_object_show(si->icon_obj);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue