elementary_codegen: Adding support for box and table

Adding the follow functions if the part is a BOX:

   - elm_layout_box_append
   - elm_layout_box_prepend
   - elm_layout_box_insert_before
   - elm_layout_box_insert_at
   - elm_layout_box_remove
   - elm_layout_box_remove_all

or if the part is a TABLE:

   - elm_layout_table_pack
   - elm_layout_table_unpack
   - elm_layout_table_clear



SVN revision: 77039
This commit is contained in:
Flavio Vinicius Alvares Ceolin 2012-09-24 19:52:22 +00:00
parent 4e4f0c40c1
commit 63fc09980f
2 changed files with 147 additions and 51 deletions

View File

@ -530,3 +530,7 @@
* fix wrong size calc in naviframe when an item have setted
tittle_visible_set to false.
2012-09-24 Flavio Ceolin
* elementary_codegen: Adding support for box and table.

View File

@ -123,6 +123,104 @@ static FILE *header_fd = NULL;
#define H_CODEGEN_PART_TEXT_GET \
"const char *%s_%s_get(const Evas_Object *o);\n"
#define C_CODEGEN_PART_BOX_APPEND \
"Eina_Bool\n" \
"%s_%s_append(Evas_Object *o, Evas_Object *child)\n" \
"{\n" \
" return elm_layout_box_append(o, \"%s\", child);\n" \
"}\n\n"
#define H_CODEGEN_PART_BOX_APPEND \
"Eina_Bool %s_%s_append(Evas_Object *o, Evas_Object *child);\n"
#define C_CODEGEN_PART_BOX_PREPEND \
"Eina_Bool\n" \
"%s_%s_prepend(Evas_Object *o, Evas_Object *child)\n" \
"{\n" \
" return elm_layout_box_prepend(o, \"%s\", child);\n" \
"}\n\n"
#define H_CODEGEN_PART_BOX_PREPEND \
"Eina_Bool %s_%s_prepend(Evas_Object *o, Evas_Object *child);\n"
#define C_CODEGEN_PART_BOX_INSERT_BEFORE \
"Eina_Bool\n" \
"%s_%s_insert_before(Evas_Object *o, Evas_Object *child, " \
"const Evas_Object *reference)\n" \
"{\n" \
" return elm_layout_box_insert_before(o, \"%s\", " \
"child, reference);\n" \
"}\n\n"
#define H_CODEGEN_PART_BOX_INSERT_BEFORE \
"Eina_Bool %s_%s_insert_before(Evas_Object *o, Evas_Object *child, " \
"const Evas_Object *reference);\n"
#define C_CODEGEN_PART_BOX_INSERT_AT \
"Eina_Bool\n" \
"%s_%s_insert_at(Evas_Object *o, Evas_Object *child, unsigned int pos)\n" \
"{\n" \
" return elm_layout_box_insert_at(o, \"%s\", child, pos);\n" \
"}\n\n"
#define H_CODEGEN_PART_BOX_INSERT_AT \
"Eina_Bool %s_%s_insert_at(Evas_Object *o, Evas_Object *child, " \
"unsigned int pos);\n"
#define C_CODEGEN_PART_BOX_REMOVE \
"Evas_Object *\n" \
"%s_%s_remove(Evas_Object *o, Evas_Object *child)\n" \
"{\n" \
" return elm_layout_box_remove(o, \"%s\", child);\n" \
"}\n\n"
#define H_CODEGEN_PART_BOX_REMOVE \
"Evas_Object *%s_%s_remove(Evas_Object *o, Evas_Object *child);\n"
#define C_CODEGEN_PART_BOX_REMOVE_ALL \
"Eina_Bool\n" \
"%s_%s_remove_all(Evas_Object *o, Eina_Bool clear)\n" \
"{\n" \
" return elm_layout_box_remove_all(o, \"%s\", clear);\n" \
"}\n\n"
#define H_CODEGEN_PART_BOX_REMOVE_ALL \
"Eina_Bool %s_%s_remove_all(Evas_Object *o, Eina_Bool clear);\n"
#define C_CODEGEN_PART_TABLE_PACK \
"Eina_Bool\n" \
"%s_%s_pack(Evas_Object *o, Evas_Object *child, unsigned short col, " \
"unsigned short row, unsigned short colspan, unsigned short rowspan)\n" \
"{\n" \
" return elm_layout_table_pack(o, \"%s\", child, col, row, " \
"colspan, rowspan);\n" \
"}\n\n"
#define H_CODEGEN_PART_TABLE_PACK \
"Eina_Bool %s_%s_pack(Evas_Object *o, Evas_Object *child, " \
"unsigned short col, unsigned short row, unsigned short " \
"colspan, unsigned short rowspan);\n"
#define C_CODEGEN_PART_TABLE_UNPACK \
"Evas_Object *\n" \
"%s_%s_unpack(Evas_Object *o, Evas_Object *child)\n" \
"{\n" \
" return elm_layout_table_unpack(o, \"%s\", child);\n" \
"}\n\n"
#define H_CODEGEN_PART_TABLE_UNPACK \
"Evas_Object *%s_%s_unpack(Evas_Object *o, Evas_Object *child);\n"
#define C_CODEGEN_PART_TABLE_CLEAR \
"Eina_Bool\n" \
"%s_%s_clear(Evas_Object *o, Eina_Bool clear)\n" \
"{\n" \
" return elm_layout_table_clear(o, \"%s\", clear);\n" \
"}\n\n"
#define H_CODEGEN_PART_TABLE_CLEAR \
"Eina_Bool %s_%s_clear(Evas_Object *o, Eina_Bool clear);\n"
#define C_CODEGEN_PROGRAM_EMIT \
"void\n" \
"%s_%s_emit(Evas_Object *o)\n" \
@ -313,67 +411,58 @@ static Eina_Bool
_part_write(const char *apiname, const char *partname, const char *description,
Edje_Part_Type type)
{
char buf[512];
char buf[1024];
if (type == EDJE_PART_TYPE_SWALLOW)
#define TEMPLATE_NAME(sufix) \
do { \
snprintf(buf, sizeof(buf), C_CODEGEN_PART_##sufix, prefix, \
apiname, partname); \
if (fwrite(buf, strlen(buf), 1, source_fd) != 1) \
goto err; \
snprintf(buf, sizeof(buf), H_CODEGEN_PART_##sufix, prefix, \
apiname); \
if (fwrite(buf, strlen(buf), 1, header_fd) != 1) \
goto err; \
} while(0)
if (description)
{
snprintf(buf, sizeof(buf), C_CODEGEN_PART_CONTENT_SET , prefix, apiname, partname);
if (fwrite(buf, strlen(buf), 1, source_fd) != 1)
goto err;
snprintf(buf, sizeof(buf), C_CODEGEN_PART_CONTENT_UNSET , prefix, apiname, partname);
if (fwrite(buf, strlen(buf), 1, source_fd) != 1)
goto err;
if (description)
{
snprintf(buf, sizeof(buf), "\n/**\n * @brief %s\n */\n", description);
if (fwrite(buf, strlen(buf), 1, header_fd) != 1)
goto err;
}
snprintf(buf, sizeof(buf), H_CODEGEN_PART_CONTENT_SET, prefix, apiname);
snprintf(buf, sizeof(buf), "\n/**\n * @brief %s\n */\n", description);
if (fwrite(buf, strlen(buf), 1, header_fd) != 1)
goto err;
snprintf(buf, sizeof(buf), H_CODEGEN_PART_CONTENT_UNSET, prefix, apiname);
if (fwrite(buf, strlen(buf), 1, header_fd) != 1)
goto err;
snprintf(buf, sizeof(buf), H_CODEGEN_PART_CONTENT_GET, prefix, apiname);
if (fwrite(buf, strlen(buf), 1, header_fd) != 1)
goto err;
snprintf(buf, sizeof(buf), C_CODEGEN_PART_CONTENT_GET, prefix, apiname, partname);
if (fwrite(buf, strlen(buf), 1, source_fd) != 1)
goto err;
}
else
switch (type)
{
snprintf(buf, sizeof(buf), C_CODEGEN_PART_TEXT_SET , prefix, apiname, partname);
if (fwrite(buf, strlen(buf), 1, source_fd) != 1)
goto err;
case EDJE_PART_TYPE_BOX:
TEMPLATE_NAME(BOX_APPEND);
TEMPLATE_NAME(BOX_PREPEND);
TEMPLATE_NAME(BOX_INSERT_BEFORE);
TEMPLATE_NAME(BOX_INSERT_AT);
TEMPLATE_NAME(BOX_REMOVE);
TEMPLATE_NAME(BOX_REMOVE_ALL);
break;
if (description)
{
snprintf(buf, sizeof(buf), "\n/**\n * @brief %s\n */\n", description);
if (fwrite(buf, strlen(buf), 1, header_fd) != 1)
goto err;
}
case EDJE_PART_TYPE_TABLE:
TEMPLATE_NAME(TABLE_PACK);
TEMPLATE_NAME(TABLE_UNPACK);
TEMPLATE_NAME(TABLE_CLEAR);
break;
snprintf(buf, sizeof(buf), H_CODEGEN_PART_TEXT_SET, prefix, apiname);
if (fwrite(buf, strlen(buf), 1, header_fd) != 1)
goto err;
case EDJE_PART_TYPE_TEXT:
TEMPLATE_NAME(TEXT_SET);
TEMPLATE_NAME(TEXT_GET);
break;
snprintf(buf, sizeof(buf), H_CODEGEN_PART_TEXT_GET, prefix, apiname);
if (fwrite(buf, strlen(buf), 1, header_fd) != 1)
goto err;
snprintf(buf, sizeof(buf), C_CODEGEN_PART_TEXT_GET, prefix, apiname, partname);
if (fwrite(buf, strlen(buf), 1, source_fd) != 1)
goto err;
default:
TEMPLATE_NAME(CONTENT_SET);
TEMPLATE_NAME(CONTENT_UNSET);
TEMPLATE_NAME(CONTENT_GET);
break;
}
#undef TEMPLATE_NAME
return EINA_TRUE;
err:
@ -443,7 +532,10 @@ _parts_parse(Evas_Object *ed)
}
type = edje_edit_part_type_get(ed, name);
if ((type != EDJE_PART_TYPE_SWALLOW) && (type != EDJE_PART_TYPE_TEXT))
if ((type != EDJE_PART_TYPE_SWALLOW) &&
(type != EDJE_PART_TYPE_TEXT) &&
(type != EDJE_PART_TYPE_BOX) &&
(type != EDJE_PART_TYPE_TABLE))
{
free(apiname);
continue;