#define STRDUP(x) x ? strdup(x) : NULL
ed->common.color_class = STRDUP(ed->common.color_class);
- ed->text.text = STRDUP(ed->text.text);
+ ed->text.text.str = STRDUP(ed->text.text.str);
ed->text.text_class = STRDUP(ed->text.text_class);
- ed->text.font = STRDUP(ed->text.font);
+ ed->text.font.str = STRDUP(ed->text.font.str);
#undef STRDUP
data_queue_part_slave_lookup(&(parent->text.id_source), &(ed->text.id_source));
free(s);
}
}
- ed->text.text = str;
+ ed->text.text.str = str;
}
/**
ed = ep->default_desc;
if (ep->other_desc) ed = eina_list_data_get(eina_list_last(ep->other_desc));
- ed->text.font = parse_str(0);
+ ed->text.font.str = parse_str(0);
}
/**
ed = ep->default_desc;
if (ep->other_desc) ed = eina_list_data_get(eina_list_last(ep->other_desc));
- ed->text.style = parse_str(0);
+ ed->text.style.str = parse_str(0);
}
/**
ed = ep->default_desc;
if (ep->other_desc) ed = eina_list_data_get(eina_list_last(ep->other_desc));
- ed->text.repch = parse_str(0);
+ ed->text.repch.str = parse_str(0);
}
/**
edf->fonts = eina_hash_string_small_new(free);
edf->collection = eina_hash_string_small_new(free);
- edf->data = eina_hash_string_small_new(NULL);
+ edf->data = eina_hash_string_small_new(free);
if (!edf->fonts || !edf->collection || !edf->data)
goto on_error;
EINA_LIST_FREE(oedf->data, ed)
{
- eina_hash_direct_add(edf->data, ed->key, ed->value);
+ Edje_String *es;
+
+ es = calloc(1, sizeof (Edje_String));
+ if (!es) continue;
+
+ es->str = ed->value;
+
+ eina_hash_direct_add(edf->data, ed->key, es);
free(ed);
}
edc->data = eina_hash_string_small_new(NULL);
EINA_LIST_FREE(oedc->data, di)
{
- eina_hash_direct_add(edc->data, di->key, di->value);
+ Edje_String *es;
+
+ es = calloc(1, sizeof (Edje_String));
+ if (!es) continue ;
+
+ es->str = di->value;
+
+ eina_hash_direct_add(edc->data, di->key, es);
free(di);
}
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_old_edje_part_description, Old_Edje_Part_Description, "color3.g", text.color3.g, EET_T_UCHAR);
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_old_edje_part_description, Old_Edje_Part_Description, "color3.b", text.color3.b, EET_T_UCHAR);
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_old_edje_part_description, Old_Edje_Part_Description, "color3.a", text.color3.a, EET_T_UCHAR);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_old_edje_part_description, Old_Edje_Part_Description, "text.text", text.text, EET_T_STRING);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_old_edje_part_description, Old_Edje_Part_Description, "text.text", text.text.str, EET_T_STRING);
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_old_edje_part_description, Old_Edje_Part_Description, "text.text_class", text.text_class, EET_T_STRING);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_old_edje_part_description, Old_Edje_Part_Description, "text.style", text.style, EET_T_STRING);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_old_edje_part_description, Old_Edje_Part_Description, "text.font", text.font, EET_T_STRING);
- EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_old_edje_part_description, Old_Edje_Part_Description, "text.repch", text.repch, EET_T_STRING);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_old_edje_part_description, Old_Edje_Part_Description, "text.style", text.style.str, EET_T_STRING);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_old_edje_part_description, Old_Edje_Part_Description, "text.font", text.font.str, EET_T_STRING);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_old_edje_part_description, Old_Edje_Part_Description, "text.repch", text.repch.str, EET_T_STRING);
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_old_edje_part_description, Old_Edje_Part_Description, "text.size", text.size, EET_T_INT);
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_old_edje_part_description, Old_Edje_Part_Description, "text.fit_x", text.fit_x, EET_T_UCHAR);
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_old_edje_part_description, Old_Edje_Part_Description, "text.fit_y", text.fit_y, EET_T_UCHAR);
void
_edje_recalc_do(Edje *ed)
{
- int i;
+ unsigned int i;
ed->postponed = 0;
evas_object_smart_need_recalculate_set(ed->obj, 0);
const char *text = "";
const char *style = "";
Edje_Style *stl = NULL;
+ const char *tmp;
Eina_List *l;
if (chosen_desc->text.id_source >= 0)
{
ep->text.source = ed->table_parts[chosen_desc->text.id_source % ed->table_parts_size];
- if (((Edje_Part_Description_Text *)ep->text.source->chosen_description)->text.style)
- style = ((Edje_Part_Description_Text *)ep->text.source->chosen_description)->text.style;
+
+ tmp = edje_string_get(&((Edje_Part_Description_Text *)ep->text.source->chosen_description)->text.style);
+ if (tmp) style = tmp;
}
else
{
ep->text.source = NULL;
- if (chosen_desc->text.style)
- style = chosen_desc->text.style;
+
+ tmp = edje_string_get(&chosen_desc->text.style);
+ if (tmp) style = tmp;
}
if (chosen_desc->text.id_text_source >= 0)
{
ep->text.text_source = ed->table_parts[chosen_desc->text.id_text_source % ed->table_parts_size];
- text = ((Edje_Part_Description_Text*)ep->text.text_source->chosen_description)->text.text;
+ text = edje_string_get(&((Edje_Part_Description_Text*)ep->text.text_source->chosen_description)->text.text);
+
if (ep->text.text_source->text.text) text = ep->text.text_source->text.text;
}
else
{
ep->text.text_source = NULL;
- text = chosen_desc->text.text;
+ text = edje_string_get(&chosen_desc->text.text);
if (ep->text.text) text = ep->text.text;
}
ep->text.text_source = NULL;
if (ep->text.text_source)
- text = ((Edje_Part_Description_Text*)ep->text.text_source->chosen_description)->text.text;
+ text = edje_string_get(&(((Edje_Part_Description_Text*)ep->text.text_source->chosen_description)->text.text));
else
- text = chosen_desc->text.text;
+ text = edje_string_get(&chosen_desc->text.text);
if (ep->text.source)
font = _edje_text_class_font_get(ed, ((Edje_Part_Description_Text*)ep->text.source->chosen_description), &size, &sfont);
#include "edje_private.h"
EAPI Eet_Data_Descriptor *_edje_edd_edje_file = NULL;
+EAPI Eet_Data_Descriptor *_edje_edd_edje_string = NULL;
EAPI Eet_Data_Descriptor *_edje_edd_edje_style = NULL;
EAPI Eet_Data_Descriptor *_edje_edd_edje_style_tag = NULL;
EAPI Eet_Data_Descriptor *_edje_edd_edje_color_class = NULL;
EAPI Eet_Data_Descriptor *_edje_edd_edje_program_after = NULL;
EAPI Eet_Data_Descriptor *_edje_edd_edje_part_collection_directory_entry = NULL;
EAPI Eet_Data_Descriptor *_edje_edd_edje_pack_element = NULL;
+EAPI Eet_Data_Descriptor *_edje_edd_edje_pack_element_pointer = NULL;
EAPI Eet_Data_Descriptor *_edje_edd_edje_part_collection = NULL;
EAPI Eet_Data_Descriptor *_edje_edd_edje_part = NULL;
EAPI Eet_Data_Descriptor *_edje_edd_edje_part_pointer = NULL;
return EINA_FALSE;
}
+static Eina_Hash *
+_edje_eina_hash_add_alloc(Eina_Hash *hash,
+ const char *key,
+ void *data)
+{
+ if (!hash)
+ hash = eina_hash_string_small_new(free);
+
+ if (!hash)
+ return NULL;
+
+ eina_hash_add(hash, key, data);
+ return hash;
+}
+
EAPI void
_edje_edd_shutdown(void)
{
FREED(_edje_edd_edje_file);
+ FREED(_edje_edd_edje_string);
FREED(_edje_edd_edje_style);
FREED(_edje_edd_edje_style_tag);
FREED(_edje_edd_edje_color_class);
FREED(_edje_edd_edje_program_after);
FREED(_edje_edd_edje_part_collection_directory_entry);
FREED(_edje_edd_edje_pack_element);
+ FREED(_edje_edd_edje_pack_element_pointer);
FREED(_edje_edd_edje_part_collection);
FREED(_edje_edd_edje_part);
FREED(_edje_edd_edje_part_pointer);
{
Eet_Data_Descriptor_Class eddc;
+ /* localisable string */
+ EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Edje_String);
+ _edje_edd_edje_string = eet_data_descriptor_file_new(&eddc);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_string, Edje_String, "str", str, EET_T_STRING);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_string, Edje_String, "id", id, EET_T_UINT);
+
/* external directory */
EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Edje_External_Directory_Entry);
_edje_edd_edje_external_directory_entry =
/* the main file directory */
EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Edje_File);
- _edje_edd_edje_file =
- eet_data_descriptor_file_new(&eddc);
+ eddc.func.hash_add = (void * (*)(void *, const char *, void *)) _edje_eina_hash_add_alloc;
+ _edje_edd_edje_file = eet_data_descriptor_file_new(&eddc);
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_file, Edje_File, "compiler", compiler, EET_T_STRING);
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_file, Edje_File, "version", version, EET_T_INT);
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_file, Edje_File, "feature_ver", feature_ver, EET_T_INT);
EET_DATA_DESCRIPTOR_ADD_SUB(_edje_edd_edje_file, Edje_File, "image_dir", image_dir, _edje_edd_edje_image_directory);
EET_DATA_DESCRIPTOR_ADD_LIST(_edje_edd_edje_file, Edje_File, "styles", styles, _edje_edd_edje_style);
EET_DATA_DESCRIPTOR_ADD_LIST(_edje_edd_edje_file, Edje_File, "color_classes", color_classes, _edje_edd_edje_color_class);
- EET_DATA_DESCRIPTOR_ADD_HASH_STRING(_edje_edd_edje_file, Edje_File, "data", data);
+ EET_DATA_DESCRIPTOR_ADD_HASH(_edje_edd_edje_file, Edje_File, "data", data, _edje_edd_edje_string);
EET_DATA_DESCRIPTOR_ADD_HASH(_edje_edd_edje_file, Edje_File, "fonts", fonts, _edje_edd_edje_font_directory_entry);
EET_DATA_DESCRIPTOR_ADD_HASH(_edje_edd_edje_file, Edje_File, "collection", collection, _edje_edd_edje_part_collection_directory_entry);
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_pack_element, Edje_Pack_Element, "colspan", colspan, EET_T_USHORT);
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_pack_element, Edje_Pack_Element, "rowspan", rowspan, EET_T_USHORT);
+ EDJE_DEFINE_POINTER_TYPE(Pack_Element, pack_element);
+
EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Edje_Part);
eddc.func.mem_free = mem_free_part;
eddc.func.mem_alloc = mem_alloc_part;
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "dragable.count_y", dragable.count_y, EET_T_INT);
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "dragable.counfine_id", dragable.confine_id, EET_T_INT);
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "dragable.events_id", dragable.event_id, EET_T_INT);
- EET_DATA_DESCRIPTOR_ADD_VAR_ARRAY(_edje_edd_edje_part, Edje_Part, "items", items, _edje_edd_edje_pack_element);
+ EET_DATA_DESCRIPTOR_ADD_VAR_ARRAY(_edje_edd_edje_part, Edje_Part, "items", items, _edje_edd_edje_pack_element_pointer);
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "type", type, EET_T_UCHAR);
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "effect", effect, EET_T_UCHAR);
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part, Edje_Part, "mouse_events", mouse_events, EET_T_UCHAR);
EDJE_DEFINE_POINTER_TYPE(Part, part);
EET_DATA_DESCRIPTOR_ADD_VAR_ARRAY(_edje_edd_edje_part_collection, Edje_Part_Collection, "parts", parts, _edje_edd_edje_part_pointer);
- EET_DATA_DESCRIPTOR_ADD_HASH_STRING(_edje_edd_edje_part_collection, Edje_Part_Collection, "data", data);
+ EET_DATA_DESCRIPTOR_ADD_HASH(_edje_edd_edje_part_collection, Edje_Part_Collection, "data", data, _edje_edd_edje_string);
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection, Edje_Part_Collection, "id", id, EET_T_INT);
EET_DATA_DESCRIPTOR_ADD_HASH_STRING(_edje_edd_edje_part_collection, Edje_Part_Collection, "alias", alias);
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection, Edje_Part_Collection, "prop.min.w", prop.min.w, EET_T_INT);
static int
_edje_part_id_find(Edje *ed, const char *part)
{
- int id;
+ unsigned int id;
for (id = 0; id < ed->table_parts_size; id++)
{
*/
unsigned int i;
int correct_id;
- int count;
+ unsigned int count;
//printf("FIXING PARTS ID \n");
edje_edit_parts_list_get(Evas_Object *obj)
{
Eina_List *parts = NULL;
- int i;
+ unsigned int i;
GET_ED_OR_RETURN(NULL);
GET_RP_OR_RETURN(0);
- if (rp->part->id >= ed->table_parts_size - 1) return 0;
+ if ((unsigned int) rp->part->id >= ed->table_parts_size - 1) return 0;
next = ed->table_parts[(rp->part->id + 1) % ed->table_parts_size];
//printf("RESTACK PART: %s ABOVE\n", part);
- if (rp->part->id >= ed->table_parts_size - 1) return EINA_FALSE;
+ if ((unsigned int) rp->part->id >= ed->table_parts_size - 1) return EINA_FALSE;
group = ed->collection;
text_to->text = text_from->text;
/* Update pointers. */
- PD_STRING_COPY(text_to, text_from, text.text);
+ PD_STRING_COPY(text_to, text_from, text.text.str);
PD_STRING_COPY(text_to, text_from, text.text_class);
- PD_STRING_COPY(text_to, text_from, text.style);
- PD_STRING_COPY(text_to, text_from, text.font);
- PD_STRING_COPY(text_to, text_from, text.repch);
+ PD_STRING_COPY(text_to, text_from, text.style.str);
+ PD_STRING_COPY(text_to, text_from, text.font.str);
+ PD_STRING_COPY(text_to, text_from, text.repch.str);
break;
}
case EDJE_PART_TYPE_BOX:
txt = (Edje_Part_Description_Text *) pd;
//printf("GET TEXT of state: %s\n", state);
- if (txt->text.text)
- return eina_stringshare_add(txt->text.text);
-
- return NULL;
+ return eina_stringshare_add(edje_string_get(&txt->text.text));
}
EAPI void
txt = (Edje_Part_Description_Text *) pd;
- _edje_if_string_free(ed, txt->text.text);
- txt->text.text = (char *)eina_stringshare_add(text);
+ _edje_if_string_free(ed, txt->text.text.str);
+ txt->text.text.str = (char *)eina_stringshare_add(text);
+ txt->text.text.id = 0;
edje_object_calc_force(obj);
}
txt = (Edje_Part_Description_Text*) pd;
- if (!txt->text.font) return NULL;
- return eina_stringshare_add(txt->text.font);
+ return eina_stringshare_add(edje_string_get(&txt->text.font));
}
EAPI void
txt = (Edje_Part_Description_Text*) pd;
- _edje_if_string_free(ed, txt->text.font);
- txt->text.font = (char *)eina_stringshare_add(font);
+ _edje_if_string_free(ed, txt->text.font.str);
+ txt->text.font.str = (char *)eina_stringshare_add(font);
+ txt->text.font.id = 0;
edje_object_calc_force(obj);
}
txt = (Edje_Part_Description_Text *) pd;
BUF_APPEND(I5"text {\n");
- if (txt->text.text)
- BUF_APPENDF(I6"text: \"%s\";\n", txt->text.text);
- if (txt->text.font)
- BUF_APPENDF(I6"font: \"%s\";\n", txt->text.font);
+ if (edje_string_get(&txt->text.text))
+ {
+ if (txt->text.text.id)
+ BUF_APPENDF(I6"text: _(\"%s\");\n", edje_string_id_get(&txt->text.text));
+ else
+ BUF_APPENDF(I6"text: \"%s\";\n", edje_string_get(&txt->text.text));
+ }
+ if (edje_string_get(&txt->text.font))
+ {
+ if (txt->text.font.id)
+ BUF_APPENDF(I6"font: _(\"%s\");\n", edje_string_id_get(&txt->text.font));
+ else
+ BUF_APPENDF(I6"font: \"%s\";\n", edje_string_get(&txt->text.font));
+ }
if (txt->text.size)
BUF_APPENDF(I6"size: %d;\n", txt->text.size);
if (txt->text.text_class)
{
Evas_Object *obj;
Eina_List *l, *ll;
- int w, h, i;
+ unsigned int i;
+ int w, h;
char *data;
const char *group = pce->entry;
Eina_Bool ret = EINA_TRUE;
text_desc = (Edje_Part_Description_Text*) d;
- text_desc->text.text = DUP(text_desc->text.text);
text_desc->text.text_class = DUP(text_desc->text.text_class);
- text_desc->text.font = DUP(text_desc->text.font);
- text_desc->text.style = DUP(text_desc->text.style);
+ text_desc->text.text.str = DUP(edje_string_get(&text_desc->text.text));
+ text_desc->text.text.id = 0;
+ text_desc->text.font.str = DUP(edje_string_get(&text_desc->text.font));
+ text_desc->text.font.id = 0;
+ text_desc->text.style.str = DUP(edje_string_get(&text_desc->text.style));
+ text_desc->text.style.id = 0;
}
#undef DUP
GETSTR(s, params[3]);
text = (Edje_Part_Description_Text*) rp->custom->description;
- GETSTREVAS(s, text->text.text);
+ GETSTREVAS(s, text->text.text.str);
break;
}
GETSTR(s, params[3]);
text = (Edje_Part_Description_Text*) rp->custom->description;
- GETSTREVAS(s, text->text.font);
+ GETSTREVAS(s, text->text.font.str);
break;
}
GETSTR(s, params[3]);
text = (Edje_Part_Description_Text*) rp->custom->description;
- GETSTREVAS(s, text->text.style);
+ GETSTREVAS(s, text->text.style.str);
break;
}
text = (Edje_Part_Description_Text*) rp->custom->description;
- s = text->text.text;
+ s = text->text.text.str;
SETSTRALLOCATE(s);
break;
text = (Edje_Part_Description_Text*) rp->custom->description;
- s = text->text.font;
+ s = text->text.font.str;
SETSTRALLOCATE(s);
break;
text = (Edje_Part_Description_Text*) rp->custom->description;
- s = text->text.style;
+ s = text->text.style.str;
SETSTRALLOCATE(s);
break;
txt = (Edje_Part_Description_Text *) rp->chosen_description;
en->select_allow = 0;
- if (txt && txt->text.repch)
- evas_object_textblock_replace_char_set(rp->object, txt->text.repch);
+ if (txt && edje_string_get(&txt->text.repch))
+ evas_object_textblock_replace_char_set(rp->object, edje_string_get(&txt->text.repch));
else
evas_object_textblock_replace_char_set(rp->object, "*");
}
edf = _edje_cache_file_coll_open(file, NULL, &error_ret, NULL);
if (edf != NULL)
{
- str = eina_hash_find(edf->data, key);
+ str = (char*) edje_string_get(eina_hash_find(edf->data, key));
if (str) str = strdup(str);
}
else
{
- int i;
+ unsigned int i;
int errors = 0;
- unsigned int j;
/* colorclass stuff */
- for (j = 0; j < ed->collection->parts_count; ++j)
+ for (i = 0; i < ed->collection->parts_count; ++i)
{
Edje_Part *ep;
unsigned int k;
- ep = ed->collection->parts[j];
+ ep = ed->collection->parts[i];
if (errors)
break;
const char *style;
text = (Edje_Part_Description_Text *) rp->part->default_desc;
- style = text->text.style;
+ style = edje_string_get(&text->text.style);
if (style)
{
Eina_List *l;
_edje_swallows_collect(Edje *ed)
{
Eina_List *swallows = NULL;
- int i;
+ unsigned int i;
if (!ed->file || !ed->table_parts) return NULL;
for (i = 0; i < ed->table_parts_size; i++)
if (!((ed->file) && (ed->collection))) return;
if (ed->table_parts)
{
- int i;
+ unsigned int i;
for (i = 0; i < ed->table_parts_size; i++)
{
Edje_Real_Part *rp;
free(ep->other.desc);
free(ep->items);
}
+ free(ec->parts);
+ ec->parts = NULL;
+
if (ec->data) eina_hash_free(ec->data);
#ifdef EDJE_PROGRAM_CACHE
if (ec->prog_cache.no_matches) eina_hash_free(ec->prog_cache.no_matches);
text = (Edje_Part_Description_Text *) desc;
- if (text->text.text) eina_stringshare_del(text->text.text);
+ if (text->text.text.str) eina_stringshare_del(text->text.text.str);
if (text->text.text_class) eina_stringshare_del(text->text.text_class);
- if (text->text.style) eina_stringshare_del(text->text.style);
- if (text->text.font) eina_stringshare_del(text->text.font);
+ if (text->text.style.str) eina_stringshare_del(text->text.style.str);
+ if (text->text.font.str) eina_stringshare_del(text->text.font.str);
}
break;
}
edje_object_message_send(Evas_Object *obj, Edje_Message_Type type, int id, void *msg)
{
Edje *ed;
- int i;
+ unsigned int i;
ed = _edje_fetch(obj);
if (!ed) return;
void
_edje_message_cb_set(Edje *ed, void (*func) (void *data, Evas_Object *obj, Edje_Message_Type type, int id, void *msg), void *data)
{
- int i;
+ unsigned int i;
ed->message.func = func;
ed->message.data = data;
Edje_Aspect_Control mode;
};
+struct _Edje_String
+{
+ char *str;
+ unsigned int id;
+};
+
typedef struct _Edje_Position_Scale Edje_Alignment;
typedef struct _Edje_Position_Scale Edje_Position_Scale;
typedef struct _Edje_Position Edje_Position;
typedef struct _Edje_Color Edje_Color;
typedef struct _Edje_Aspect_Prefer Edje_Aspect_Prefer;
typedef struct _Edje_Aspect Edje_Aspect;
+typedef struct _Edje_String Edje_String;
typedef struct _Edje_File Edje_File;
typedef struct _Edje_Style Edje_Style;
struct _Edje_Part_Description_Spec_Text
{
- char *text; /* if "" or NULL, then leave text unchanged */
+ Edje_String text; /* if "" or NULL, then leave text unchanged */
char *text_class; /* how to apply/modify the font */
- char *style; /* the text style if a textblock */
- char *font; /* if a specific font is asked for */
- char *repch; /* replacement char for password mode entry */
+ Edje_String style; /* the text style if a textblock */
+ Edje_String font; /* if a specific font is asked for */
+ Edje_String repch; /* replacement char for password mode entry */
Edje_Alignment align; /* text alignment within bounds */
Edje_Color color3;
Eina_List *text_insert_filter_callbacks;
void *script_only_data;
int table_programs_size;
- int table_parts_size;
-
+ unsigned int table_parts_size;
+
Edje_Perspective *persp;
struct {
void _edje_lua2_script_func_resize(Edje *ed);
void _edje_lua2_script_func_message(Edje *ed, Edje_Message *em);
void _edje_lua2_script_func_signal(Edje *ed, const char *sig, const char *src);
-
#endif
+const char *edje_string_get(const Edje_String *es);
+const char *edje_string_id_get(const Edje_String *es);
+
#endif
double t;
Eina_List *l;
Edje_Running_Program *runp;
- int i;
+ unsigned int i;
ed = _edje_fetch(obj);
if (!ed) return;
{
Edje *ed;
Eina_List *l;
- int i;
+ unsigned int i;
ed = _edje_fetch(obj);
if (!ed) return;
focused = evas_focus_get(evas_object_evas_get(ed->obj));
if (focused)
{
- int i;
+ unsigned int i;
/* Check if the current swallowed object is one of my child. */
for (i = 0; i < ed->table_parts_size; ++i)
if (part)
{
char *newsig;
- int i;
+ unsigned int i;
memcpy(part, sig, length);
_edje_smart_move(Evas_Object * obj, Evas_Coord x, Evas_Coord y)
{
Edje *ed;
- int i;
ed = evas_object_smart_data_get(obj);
if (!ed) return;
}
else
{
+ unsigned int i;
+
for (i = 0; i < ed->table_parts_size; i++)
{
Edje_Real_Part *ep;
Edje_Text_Class *tc;
const char *text_class_name, *font;
- font = chosen_desc->text.font;
+ font = edje_string_get(&chosen_desc->text.font);
*size = chosen_desc->text.size;
text_class_name = chosen_desc->text.text_class;
if (!tc)
return font;
- font = _edje_text_font_get(chosen_desc->text.font, tc->font, free_later);
+ font = _edje_text_font_get(edje_string_get(&chosen_desc->text.font), tc->font, free_later);
*size = _edje_text_size_calc(*size, tc);
return font;
sc = ed->scale;
if (sc == 0.0) sc = _edje_scale;
- text = chosen_desc->text.text;
+ text = edje_string_get(&chosen_desc->text.text);
font = _edje_text_class_font_get(ed, chosen_desc, &size, &sfont);
if (ep->text.text) text = (char *) ep->text.text;
if (ep->text.text_source)
{
- text = ((Edje_Part_Description_Text *)ep->text.text_source->chosen_description)->text.text;
+ text = edje_string_get(&(((Edje_Part_Description_Text *)ep->text.text_source->chosen_description)->text.text));
if (ep->text.text_source->text.text) text = ep->text.text_source->text.text;
}
if (ep->text.source)
{
- font = ((Edje_Part_Description_Text *)ep->text.source->chosen_description)->text.font;
+ font = edje_string_get(&(((Edje_Part_Description_Text *)ep->text.source->chosen_description)->text.font));
size = ((Edje_Part_Description_Text *)ep->text.source->chosen_description)->text.size;
if (ep->text.source->text.font) font = ep->text.source->text.font;
if (ep->text.source->text.size > 0) size = ep->text.source->text.size;
static void
_edje_thaw_edje(Edje *ed)
{
- int i;
+ unsigned int i;
for (i = 0; i < ed->table_parts_size; i++)
{
return NULL;
if (!ed->collection) return NULL;
if (!ed->collection->data) return NULL;
- return eina_hash_find(ed->collection->data, key);
+ return edje_string_get(eina_hash_find(ed->collection->data, key));
}
/**
edje_object_freeze(Evas_Object *obj)
{
Edje *ed;
- int i;
+ unsigned int i;
ed = _edje_fetch(obj);
if (!ed) return 0;
edje_object_thaw(Evas_Object *obj)
{
Edje *ed;
- int i;
+ unsigned int i;
ed = _edje_fetch(obj);
if (!ed) return 0;
Edje *ed;
Eina_List *l;
Edje_Color_Class *cc;
- int i;
+ unsigned int i;
ed = _edje_fetch(obj);
if ((!ed) || (!color_class)) return EINA_FALSE;
Edje *ed;
Eina_List *l;
Edje_Color_Class *cc = NULL;
- int i;
+ unsigned int i;
if (!color_class) return;
Edje *ed;
Eina_List *l;
Edje_Text_Class *tc;
- int i;
+ unsigned int i;
ed = _edje_fetch(obj);
if ((!ed) || (!text_class)) return EINA_FALSE;
edje_object_text_change_cb_set(Evas_Object *obj, void (*func) (void *data, Evas_Object *obj, const char *part), void *data)
{
Edje *ed;
- int i;
+ unsigned int i;
ed = _edje_fetch(obj);
if (!ed) return;
Edje *ed;
Evas_Coord x1 = INT_MAX, y1 = INT_MAX;
Evas_Coord x2 = 0, y2 = 0;
- int i;
+ unsigned int i;
ed = _edje_fetch(obj);
if (!ed)
ok = 1;
while (ok)
{
- int i;
+ unsigned int i;
ok = 0;
ed->dirty = 1;
{
Edje *ed;
int count;
- int i;
+ unsigned int i;
ed = _edje_fetch(obj);
if (!ed) return EINA_FALSE;
Edje_Real_Part *
_edje_real_part_get(Edje *ed, const char *part)
{
- int i;
+ unsigned int i;
if (!part) return NULL;
return EINA_FALSE;
return EINA_TRUE;
}
+
+const char *
+edje_string_get(const Edje_String *es)
+{
+ /* FIXME: Handle localization here */
+ if (!es) return NULL;
+ return es->str;
+}
+
+const char *
+edje_string_id_get(const Edje_String *es)
+{
+ /* FIXME: Handle localization here */
+ if (!es) return NULL;
+ return es->str;
+}