From 63fc09980fde5e96e9843aa3a3ff381c2d8c6206 Mon Sep 17 00:00:00 2001 From: Flavio Vinicius Alvares Ceolin Date: Mon, 24 Sep 2012 19:52:22 +0000 Subject: [PATCH] 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 --- legacy/elementary/ChangeLog | 4 + .../elementary/src/bin/elementary_codegen.c | 194 +++++++++++++----- 2 files changed, 147 insertions(+), 51 deletions(-) diff --git a/legacy/elementary/ChangeLog b/legacy/elementary/ChangeLog index 8c2c173f5b..b78b61f7d8 100644 --- a/legacy/elementary/ChangeLog +++ b/legacy/elementary/ChangeLog @@ -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. diff --git a/legacy/elementary/src/bin/elementary_codegen.c b/legacy/elementary/src/bin/elementary_codegen.c index 73de4a3b3a..65ab6f2ec8 100644 --- a/legacy/elementary/src/bin/elementary_codegen.c +++ b/legacy/elementary/src/bin/elementary_codegen.c @@ -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;