parent
31658d4f1e
commit
7f3dfc66f2
|
@ -110,6 +110,7 @@ static void st_collections_group_parts_part_dragable_y(void);
|
||||||
static void st_collections_group_parts_part_dragable_confine(void);
|
static void st_collections_group_parts_part_dragable_confine(void);
|
||||||
static void st_collections_group_parts_part_dragable_events(void);
|
static void st_collections_group_parts_part_dragable_events(void);
|
||||||
|
|
||||||
|
/* box and table items share these */
|
||||||
static void ob_collections_group_parts_part_box_items_item(void);
|
static void ob_collections_group_parts_part_box_items_item(void);
|
||||||
static void st_collections_group_parts_part_box_items_item_type(void);
|
static void st_collections_group_parts_part_box_items_item_type(void);
|
||||||
static void st_collections_group_parts_part_box_items_item_name(void);
|
static void st_collections_group_parts_part_box_items_item_name(void);
|
||||||
|
@ -123,6 +124,9 @@ static void st_collections_group_parts_part_box_items_item_weight(void);
|
||||||
static void st_collections_group_parts_part_box_items_item_aspect(void);
|
static void st_collections_group_parts_part_box_items_item_aspect(void);
|
||||||
static void st_collections_group_parts_part_box_items_item_aspect_mode(void);
|
static void st_collections_group_parts_part_box_items_item_aspect_mode(void);
|
||||||
static void st_collections_group_parts_part_box_items_item_options(void);
|
static void st_collections_group_parts_part_box_items_item_options(void);
|
||||||
|
/* but these are only for table */
|
||||||
|
static void st_collections_group_parts_part_table_items_item_position(void);
|
||||||
|
static void st_collections_group_parts_part_table_items_item_span(void);
|
||||||
|
|
||||||
static void ob_collections_group_parts_part_description(void);
|
static void ob_collections_group_parts_part_description(void);
|
||||||
static void st_collections_group_parts_part_description_inherit(void);
|
static void st_collections_group_parts_part_description_inherit(void);
|
||||||
|
@ -183,6 +187,9 @@ static void st_collections_group_parts_part_description_gradient_rel2_offset(voi
|
||||||
static void st_collections_group_parts_part_description_box_layout(void);
|
static void st_collections_group_parts_part_description_box_layout(void);
|
||||||
static void st_collections_group_parts_part_description_box_align(void);
|
static void st_collections_group_parts_part_description_box_align(void);
|
||||||
static void st_collections_group_parts_part_description_box_padding(void);
|
static void st_collections_group_parts_part_description_box_padding(void);
|
||||||
|
static void st_collections_group_parts_part_description_table_homogeneous(void);
|
||||||
|
static void st_collections_group_parts_part_description_table_align(void);
|
||||||
|
static void st_collections_group_parts_part_description_table_padding(void);
|
||||||
|
|
||||||
static void ob_collections_group_programs_program(void);
|
static void ob_collections_group_programs_program(void);
|
||||||
static void st_collections_group_programs_program_name(void);
|
static void st_collections_group_programs_program_name(void);
|
||||||
|
@ -299,6 +306,20 @@ New_Statement_Handler statement_handlers[] =
|
||||||
{"collections.group.parts.part.box.items.item.aspect", st_collections_group_parts_part_box_items_item_aspect},
|
{"collections.group.parts.part.box.items.item.aspect", st_collections_group_parts_part_box_items_item_aspect},
|
||||||
{"collections.group.parts.part.box.items.item.aspect_mode", st_collections_group_parts_part_box_items_item_aspect_mode},
|
{"collections.group.parts.part.box.items.item.aspect_mode", st_collections_group_parts_part_box_items_item_aspect_mode},
|
||||||
{"collections.group.parts.part.box.items.item.options", st_collections_group_parts_part_box_items_item_options},
|
{"collections.group.parts.part.box.items.item.options", st_collections_group_parts_part_box_items_item_options},
|
||||||
|
{"collections.group.parts.part.table.items.item.type", st_collections_group_parts_part_box_items_item_type}, /* dup */
|
||||||
|
{"collections.group.parts.part.table.items.item.name", st_collections_group_parts_part_box_items_item_name}, /* dup */
|
||||||
|
{"collections.group.parts.part.table.items.item.source", st_collections_group_parts_part_box_items_item_source}, /* dup */
|
||||||
|
{"collections.group.parts.part.table.items.item.min", st_collections_group_parts_part_box_items_item_min}, /* dup */
|
||||||
|
{"collections.group.parts.part.table.items.item.prefer", st_collections_group_parts_part_box_items_item_prefer}, /* dup */
|
||||||
|
{"collections.group.parts.part.table.items.item.max", st_collections_group_parts_part_box_items_item_max}, /* dup */
|
||||||
|
{"collections.group.parts.part.table.items.item.padding", st_collections_group_parts_part_box_items_item_padding}, /* dup */
|
||||||
|
{"collections.group.parts.part.table.items.item.align", st_collections_group_parts_part_box_items_item_align}, /* dup */
|
||||||
|
{"collections.group.parts.part.table.items.item.weight", st_collections_group_parts_part_box_items_item_weight}, /* dup */
|
||||||
|
{"collections.group.parts.part.table.items.item.aspect", st_collections_group_parts_part_box_items_item_aspect}, /* dup */
|
||||||
|
{"collections.group.parts.part.table.items.item.aspect_mode", st_collections_group_parts_part_box_items_item_aspect_mode}, /* dup */
|
||||||
|
{"collections.group.parts.part.table.items.item.options", st_collections_group_parts_part_box_items_item_options}, /* dup */
|
||||||
|
{"collections.group.parts.part.table.items.item.position", st_collections_group_parts_part_table_items_item_position},
|
||||||
|
{"collections.group.parts.part.table.items.item.span", st_collections_group_parts_part_table_items_item_span},
|
||||||
{"collections.group.parts.part.description.inherit", st_collections_group_parts_part_description_inherit},
|
{"collections.group.parts.part.description.inherit", st_collections_group_parts_part_description_inherit},
|
||||||
{"collections.group.parts.part.description.state", st_collections_group_parts_part_description_state},
|
{"collections.group.parts.part.description.state", st_collections_group_parts_part_description_state},
|
||||||
{"collections.group.parts.part.description.visible", st_collections_group_parts_part_description_visible},
|
{"collections.group.parts.part.description.visible", st_collections_group_parts_part_description_visible},
|
||||||
|
@ -361,6 +382,9 @@ New_Statement_Handler statement_handlers[] =
|
||||||
{"collections.group.parts.part.description.box.layout", st_collections_group_parts_part_description_box_layout},
|
{"collections.group.parts.part.description.box.layout", st_collections_group_parts_part_description_box_layout},
|
||||||
{"collections.group.parts.part.description.box.align", st_collections_group_parts_part_description_box_align},
|
{"collections.group.parts.part.description.box.align", st_collections_group_parts_part_description_box_align},
|
||||||
{"collections.group.parts.part.description.box.padding", st_collections_group_parts_part_description_box_padding},
|
{"collections.group.parts.part.description.box.padding", st_collections_group_parts_part_description_box_padding},
|
||||||
|
{"collections.group.parts.part.description.table.homogeneous", st_collections_group_parts_part_description_table_homogeneous},
|
||||||
|
{"collections.group.parts.part.description.table.align", st_collections_group_parts_part_description_table_align},
|
||||||
|
{"collections.group.parts.part.description.table.padding", st_collections_group_parts_part_description_table_padding},
|
||||||
{"collections.group.parts.part.description.images.image", st_images_image}, /* dup */
|
{"collections.group.parts.part.description.images.image", st_images_image}, /* dup */
|
||||||
{"collections.group.parts.part.description.font", st_fonts_font}, /* dup */
|
{"collections.group.parts.part.description.font", st_fonts_font}, /* dup */
|
||||||
{"collections.group.parts.part.description.fonts.font", st_fonts_font}, /* dup */
|
{"collections.group.parts.part.description.fonts.font", st_fonts_font}, /* dup */
|
||||||
|
@ -498,6 +522,9 @@ New_Object_Handler object_handlers[] =
|
||||||
{"collections.group.parts.part.box", NULL},
|
{"collections.group.parts.part.box", NULL},
|
||||||
{"collections.group.parts.part.box.items", NULL},
|
{"collections.group.parts.part.box.items", NULL},
|
||||||
{"collections.group.parts.part.box.items.item", ob_collections_group_parts_part_box_items_item},
|
{"collections.group.parts.part.box.items.item", ob_collections_group_parts_part_box_items_item},
|
||||||
|
{"collections.group.parts.part.table", NULL},
|
||||||
|
{"collections.group.parts.part.table.items", NULL},
|
||||||
|
{"collections.group.parts.part.table.items.item", ob_collections_group_parts_part_box_items_item}, /* dup */
|
||||||
{"collections.group.parts.part.description", ob_collections_group_parts_part_description},
|
{"collections.group.parts.part.description", ob_collections_group_parts_part_description},
|
||||||
{"collections.group.parts.part.description.rel1", NULL},
|
{"collections.group.parts.part.description.rel1", NULL},
|
||||||
{"collections.group.parts.part.description.rel2", NULL},
|
{"collections.group.parts.part.description.rel2", NULL},
|
||||||
|
@ -516,6 +543,7 @@ New_Object_Handler object_handlers[] =
|
||||||
{"collections.group.parts.part.description.gradient.rel1", NULL},
|
{"collections.group.parts.part.description.gradient.rel1", NULL},
|
||||||
{"collections.group.parts.part.description.gradient.rel2", NULL},
|
{"collections.group.parts.part.description.gradient.rel2", NULL},
|
||||||
{"collections.group.parts.part.description.box", NULL},
|
{"collections.group.parts.part.description.box", NULL},
|
||||||
|
{"collections.group.parts.part.description.table", NULL},
|
||||||
{"collections.group.parts.part.description.color_classes", NULL}, /* dup */
|
{"collections.group.parts.part.description.color_classes", NULL}, /* dup */
|
||||||
{"collections.group.parts.part.description.color_classes.color_class", ob_color_class}, /* dup */
|
{"collections.group.parts.part.description.color_classes.color_class", ob_color_class}, /* dup */
|
||||||
{"collections.group.parts.part.description.program", ob_collections_group_programs_program}, /* dup */
|
{"collections.group.parts.part.description.program", ob_collections_group_programs_program}, /* dup */
|
||||||
|
@ -1593,6 +1621,7 @@ st_collections_group_parts_part_name(void)
|
||||||
@li GRADIENT
|
@li GRADIENT
|
||||||
@li GROUP
|
@li GROUP
|
||||||
@li BOX
|
@li BOX
|
||||||
|
@li TABLE
|
||||||
@endproperty
|
@endproperty
|
||||||
*/
|
*/
|
||||||
static void
|
static void
|
||||||
|
@ -1615,6 +1644,7 @@ st_collections_group_parts_part_type(void)
|
||||||
"GRADIENT", EDJE_PART_TYPE_GRADIENT,
|
"GRADIENT", EDJE_PART_TYPE_GRADIENT,
|
||||||
"GROUP", EDJE_PART_TYPE_GROUP,
|
"GROUP", EDJE_PART_TYPE_GROUP,
|
||||||
"BOX", EDJE_PART_TYPE_BOX,
|
"BOX", EDJE_PART_TYPE_BOX,
|
||||||
|
"TABLE", EDJE_PART_TYPE_TABLE,
|
||||||
NULL);
|
NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2294,10 +2324,10 @@ static void ob_collections_group_parts_part_box_items_item(void)
|
||||||
pc = eina_list_data_get(eina_list_last(edje_collections));
|
pc = eina_list_data_get(eina_list_last(edje_collections));
|
||||||
ep = eina_list_data_get(eina_list_last(pc->parts));
|
ep = eina_list_data_get(eina_list_last(pc->parts));
|
||||||
|
|
||||||
if (ep->type != EDJE_PART_TYPE_BOX)
|
if ((ep->type != EDJE_PART_TYPE_BOX) && (ep->type != EDJE_PART_TYPE_TABLE))
|
||||||
{
|
{
|
||||||
fprintf(stderr, "%s: Error. parse error %s:%i. "
|
fprintf(stderr, "%s: Error. parse error %s:%i. "
|
||||||
"box attributes in non-BOX part.\n",
|
"box attributes in non-BOX or TABLE part.\n",
|
||||||
progname, file_in, line - 1);
|
progname, file_in, line - 1);
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
|
@ -2325,6 +2355,10 @@ static void ob_collections_group_parts_part_box_items_item(void)
|
||||||
item->aspect.h = 0;
|
item->aspect.h = 0;
|
||||||
item->aspect.mode = EDJE_ASPECT_PREFER_NONE;
|
item->aspect.mode = EDJE_ASPECT_PREFER_NONE;
|
||||||
item->options = NULL;
|
item->options = NULL;
|
||||||
|
item->col = -1;
|
||||||
|
item->row = -1;
|
||||||
|
item->colspan = 1;
|
||||||
|
item->rowspan = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -2655,6 +2689,76 @@ static void st_collections_group_parts_part_box_items_item_options(void)
|
||||||
item->options = parse_str(0);
|
item->options = parse_str(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
@page edcref
|
||||||
|
@property
|
||||||
|
position
|
||||||
|
@parameters
|
||||||
|
[col] [row]
|
||||||
|
@effect
|
||||||
|
Sets the position this item will have in the table.
|
||||||
|
This is required for parts of type TABLE.
|
||||||
|
@endproperty
|
||||||
|
*/
|
||||||
|
static void st_collections_group_parts_part_table_items_item_position(void)
|
||||||
|
{
|
||||||
|
Edje_Part_Collection *pc;
|
||||||
|
Edje_Part *ep;
|
||||||
|
Edje_Pack_Element *item;
|
||||||
|
|
||||||
|
check_arg_count(2);
|
||||||
|
|
||||||
|
pc = eina_list_data_get(eina_list_last(edje_collections));
|
||||||
|
ep = eina_list_data_get(eina_list_last(pc->parts));
|
||||||
|
|
||||||
|
if (ep->type != EDJE_PART_TYPE_TABLE)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "%s: Error. parse error %s:%i. "
|
||||||
|
"table attributes in non-TABLE part.\n",
|
||||||
|
progname, file_in, line - 1);
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
item = eina_list_data_get(eina_list_last(ep->items));
|
||||||
|
item->col = parse_int_range(0, 0, 0xffff);
|
||||||
|
item->row = parse_int_range(1, 0, 0xffff);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
@page edcref
|
||||||
|
@property
|
||||||
|
span
|
||||||
|
@parameters
|
||||||
|
[col] [row]
|
||||||
|
@effect
|
||||||
|
Sets how many columns/rows this item will use.
|
||||||
|
Defaults to 1 1.
|
||||||
|
@endproperty
|
||||||
|
*/
|
||||||
|
static void st_collections_group_parts_part_table_items_item_span(void)
|
||||||
|
{
|
||||||
|
Edje_Part_Collection *pc;
|
||||||
|
Edje_Part *ep;
|
||||||
|
Edje_Pack_Element *item;
|
||||||
|
|
||||||
|
check_arg_count(2);
|
||||||
|
|
||||||
|
pc = eina_list_data_get(eina_list_last(edje_collections));
|
||||||
|
ep = eina_list_data_get(eina_list_last(pc->parts));
|
||||||
|
|
||||||
|
if (ep->type != EDJE_PART_TYPE_TABLE)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "%s: Error. parse error %s:%i. "
|
||||||
|
"table attributes in non-TABLE part.\n",
|
||||||
|
progname, file_in, line - 1);
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
item = eina_list_data_get(eina_list_last(ep->items));
|
||||||
|
item->colspan = parse_int_range(0, 1, 0xffff);
|
||||||
|
item->rowspan = parse_int_range(1, 1, 0xffff);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@page edcref
|
@page edcref
|
||||||
@block
|
@block
|
||||||
|
@ -2764,6 +2868,11 @@ ob_collections_group_parts_part_description(void)
|
||||||
ed->box.align.y = 0.5;
|
ed->box.align.y = 0.5;
|
||||||
ed->box.padding.x = 0;
|
ed->box.padding.x = 0;
|
||||||
ed->box.padding.y = 0;
|
ed->box.padding.y = 0;
|
||||||
|
ed->table.homogeneous = EDJE_OBJECT_TABLE_HOMOGENEOUS_NONE;
|
||||||
|
ed->table.align.x = 0.5;
|
||||||
|
ed->table.align.y = 0.5;
|
||||||
|
ed->table.padding.x = 0;
|
||||||
|
ed->table.padding.y = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -5056,6 +5165,135 @@ static void st_collections_group_parts_part_description_box_padding(void)
|
||||||
ed->box.padding.y = parse_int_range(1, 0, 0x7fffffff);
|
ed->box.padding.y = parse_int_range(1, 0, 0x7fffffff);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
@page edcref
|
||||||
|
|
||||||
|
@block
|
||||||
|
table
|
||||||
|
@context
|
||||||
|
part {
|
||||||
|
description {
|
||||||
|
..
|
||||||
|
table {
|
||||||
|
homogeneous: TABLE;
|
||||||
|
padding: 0 2;
|
||||||
|
align: 0.5 0.5;
|
||||||
|
}
|
||||||
|
..
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@description
|
||||||
|
A table block can contain other objects packed in multiple columns
|
||||||
|
and rows, and each item can span across more than one column and/or
|
||||||
|
row.
|
||||||
|
@endblock
|
||||||
|
|
||||||
|
@property
|
||||||
|
homogeneous
|
||||||
|
@parameters
|
||||||
|
[homogeneous mode]
|
||||||
|
@effect
|
||||||
|
Sets the homogeneous mode for the table:
|
||||||
|
@li NONE (default)
|
||||||
|
@li TABLE
|
||||||
|
@li ITEM
|
||||||
|
@endproperty
|
||||||
|
|
||||||
|
@property
|
||||||
|
align
|
||||||
|
@parameters
|
||||||
|
[horizontal] [vertical]
|
||||||
|
@effect
|
||||||
|
Change the position of the point of balance inside the container. The
|
||||||
|
default value is 0.5 0.5.
|
||||||
|
@endproperty
|
||||||
|
|
||||||
|
@property
|
||||||
|
padding
|
||||||
|
@parameters
|
||||||
|
[horizontal] [vertical]
|
||||||
|
@effect
|
||||||
|
Sets the space between cells in pixels. Defaults to 0 0.
|
||||||
|
@endproperty
|
||||||
|
*/
|
||||||
|
static void st_collections_group_parts_part_description_table_homogeneous(void)
|
||||||
|
{
|
||||||
|
Edje_Part_Collection *pc;
|
||||||
|
Edje_Part *ep;
|
||||||
|
Edje_Part_Description *ed;
|
||||||
|
|
||||||
|
check_min_arg_count(1);
|
||||||
|
|
||||||
|
pc = eina_list_data_get(eina_list_last(edje_collections));
|
||||||
|
ep = eina_list_data_get(eina_list_last(pc->parts));
|
||||||
|
|
||||||
|
if (ep->type != EDJE_PART_TYPE_TABLE)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "%s: Error. parse error %s:%i. "
|
||||||
|
"table attributes in non-TABLE part.\n",
|
||||||
|
progname, file_in, line - 1);
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
ed = ep->default_desc;
|
||||||
|
if (ep->other_desc) ed = eina_list_data_get(eina_list_last(ep->other_desc));
|
||||||
|
ed->table.homogeneous = parse_enum(0,
|
||||||
|
"NONE", EDJE_OBJECT_TABLE_HOMOGENEOUS_NONE,
|
||||||
|
"TABLE", EDJE_OBJECT_TABLE_HOMOGENEOUS_TABLE,
|
||||||
|
"ITEM", EDJE_OBJECT_TABLE_HOMOGENEOUS_ITEM,
|
||||||
|
NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void st_collections_group_parts_part_description_table_align(void)
|
||||||
|
{
|
||||||
|
Edje_Part_Collection *pc;
|
||||||
|
Edje_Part *ep;
|
||||||
|
Edje_Part_Description *ed;
|
||||||
|
|
||||||
|
check_arg_count(2);
|
||||||
|
|
||||||
|
pc = eina_list_data_get(eina_list_last(edje_collections));
|
||||||
|
ep = eina_list_data_get(eina_list_last(pc->parts));
|
||||||
|
|
||||||
|
if (ep->type != EDJE_PART_TYPE_TABLE)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "%s: Error. parse error %s:%i. "
|
||||||
|
"table attributes in non-TABLE part.\n",
|
||||||
|
progname, file_in, line - 1);
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
ed = ep->default_desc;
|
||||||
|
if (ep->other_desc) ed = eina_list_data_get(eina_list_last(ep->other_desc));
|
||||||
|
ed->table.align.x = parse_float_range(0, -1.0, 1.0);
|
||||||
|
ed->table.align.y = parse_float_range(1, -1.0, 1.0);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void st_collections_group_parts_part_description_table_padding(void)
|
||||||
|
{
|
||||||
|
Edje_Part_Collection *pc;
|
||||||
|
Edje_Part *ep;
|
||||||
|
Edje_Part_Description *ed;
|
||||||
|
|
||||||
|
check_arg_count(2);
|
||||||
|
|
||||||
|
pc = eina_list_data_get(eina_list_last(edje_collections));
|
||||||
|
ep = eina_list_data_get(eina_list_last(pc->parts));
|
||||||
|
|
||||||
|
if (ep->type != EDJE_PART_TYPE_TABLE)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "%s: Error. parse error %s:%i. "
|
||||||
|
"table attributes in non-TABLE part.\n",
|
||||||
|
progname, file_in, line - 1);
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
ed = ep->default_desc;
|
||||||
|
if (ep->other_desc) ed = eina_list_data_get(eina_list_last(ep->other_desc));
|
||||||
|
ed->table.padding.x = parse_int_range(0, 0, 0x7fffffff);
|
||||||
|
ed->table.padding.y = parse_int_range(1, 0, 0x7fffffff);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@page edcref
|
@page edcref
|
||||||
@block
|
@block
|
||||||
|
|
|
@ -162,6 +162,10 @@ check_packed_items(Edje_Part_Collection *pc, Edje_Part *ep, Eet_File *ef)
|
||||||
error_and_abort(ef, "Collection %i: missing source on packed item "
|
error_and_abort(ef, "Collection %i: missing source on packed item "
|
||||||
"of type GROUP in part \"%s\"\n",
|
"of type GROUP in part \"%s\"\n",
|
||||||
pc->id, ep->name);
|
pc->id, ep->name);
|
||||||
|
if (ep->type == EDJE_PART_TYPE_TABLE && (it->col < 0 || it->row < 0))
|
||||||
|
error_and_abort(ef, "Collection %i: missing col/row on packed item "
|
||||||
|
"for part \"%s\" of type TABLE\n",
|
||||||
|
pc->id, ep->name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -183,7 +187,8 @@ check_part (Edje_Part_Collection *pc, Edje_Part *ep, Eet_File *ef)
|
||||||
EINA_LIST_FOREACH(ep->other_desc, l, data)
|
EINA_LIST_FOREACH(ep->other_desc, l, data)
|
||||||
check_image_part_desc (pc, ep, data, ef);
|
check_image_part_desc (pc, ep, data, ef);
|
||||||
}
|
}
|
||||||
else if (ep->type == EDJE_PART_TYPE_BOX)
|
else if ((ep->type == EDJE_PART_TYPE_BOX) ||
|
||||||
|
(ep->type == EDJE_PART_TYPE_TABLE))
|
||||||
check_packed_items(pc, ep, ef);
|
check_packed_items(pc, ep, ef);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -62,6 +62,14 @@ enum _Edje_Aspect_Control
|
||||||
};
|
};
|
||||||
typedef enum _Edje_Aspect_Control Edje_Aspect_Control;
|
typedef enum _Edje_Aspect_Control Edje_Aspect_Control;
|
||||||
|
|
||||||
|
enum _Edje_Object_Table_Homogeneous_Mode
|
||||||
|
{
|
||||||
|
EDJE_OBJECT_TABLE_HOMOGENEOUS_NONE = 0,
|
||||||
|
EDJE_OBJECT_TABLE_HOMOGENEOUS_TABLE = 1,
|
||||||
|
EDJE_OBJECT_TABLE_HOMOGENEOUS_ITEM = 2
|
||||||
|
};
|
||||||
|
typedef enum _Edje_Object_Table_Homogeneous_Mode Edje_Object_Table_Homogeneous_Mode;
|
||||||
|
|
||||||
typedef struct _Edje_Message_String Edje_Message_String;
|
typedef struct _Edje_Message_String Edje_Message_String;
|
||||||
typedef struct _Edje_Message_Int Edje_Message_Int;
|
typedef struct _Edje_Message_Int Edje_Message_Int;
|
||||||
typedef struct _Edje_Message_Float Edje_Message_Float;
|
typedef struct _Edje_Message_Float Edje_Message_Float;
|
||||||
|
@ -267,6 +275,10 @@ extern "C" {
|
||||||
EAPI Evas_Object *edje_object_part_box_remove (Evas_Object *obj, const char *part, Evas_Object *child);
|
EAPI Evas_Object *edje_object_part_box_remove (Evas_Object *obj, const char *part, Evas_Object *child);
|
||||||
EAPI Evas_Object *edje_object_part_box_remove_at (Evas_Object *obj, const char *part, unsigned int pos);
|
EAPI Evas_Object *edje_object_part_box_remove_at (Evas_Object *obj, const char *part, unsigned int pos);
|
||||||
EAPI Evas_Bool edje_object_part_box_remove_all (Evas_Object *obj, const char *part, Evas_Bool clear);
|
EAPI Evas_Bool edje_object_part_box_remove_all (Evas_Object *obj, const char *part, Evas_Bool clear);
|
||||||
|
EAPI Evas_Bool edje_object_part_table_pack (Evas_Object *obj, const char *part, Evas_Object *child_obj, unsigned short col, unsigned short row, unsigned short colspan, unsigned short rowspan);
|
||||||
|
EAPI Evas_Bool edje_object_part_table_unpack (Evas_Object *obj, const char *part, Evas_Object *child_obj);
|
||||||
|
EAPI void edje_object_part_table_col_row_size_get (const Evas_Object *obj, const char *part, int *cols, int *rows);
|
||||||
|
EAPI void edje_object_part_table_clear (Evas_Object *obj, const char *part, Evas_Bool clear);
|
||||||
|
|
||||||
/* edje_message_queue.c */
|
/* edje_message_queue.c */
|
||||||
EAPI void edje_object_message_send (Evas_Object *obj, Edje_Message_Type type, int id, void *msg);
|
EAPI void edje_object_message_send (Evas_Object *obj, Edje_Message_Type type, int id, void *msg);
|
||||||
|
|
|
@ -1219,6 +1219,14 @@ _edje_box_recalc_apply(Edje *ed, Edje_Real_Part *ep, Edje_Calc_Params *p3, Edje_
|
||||||
evas_object_box_padding_set(ep->object, chosen_desc->box.padding.x, chosen_desc->box.padding.y);
|
evas_object_box_padding_set(ep->object, chosen_desc->box.padding.x, chosen_desc->box.padding.y);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_edje_table_recalc_apply(Edje *ed, Edje_Real_Part *ep, Edje_Calc_Params *p3, Edje_Part_Description *chosen_desc)
|
||||||
|
{
|
||||||
|
evas_object_table_homogeneous_set(ep->object, chosen_desc->table.homogeneous);
|
||||||
|
evas_object_table_align_set(ep->object, chosen_desc->table.align.x, chosen_desc->table.align.y);
|
||||||
|
evas_object_table_padding_set(ep->object, chosen_desc->table.padding.x, chosen_desc->table.padding.y);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_edje_image_recalc_apply(Edje *ed, Edje_Real_Part *ep, Edje_Calc_Params *p3, Edje_Part_Description *chosen_desc, double pos)
|
_edje_image_recalc_apply(Edje *ed, Edje_Real_Part *ep, Edje_Calc_Params *p3, Edje_Part_Description *chosen_desc, double pos)
|
||||||
{
|
{
|
||||||
|
@ -1507,6 +1515,7 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags)
|
||||||
case EDJE_PART_TYPE_TEXTBLOCK:
|
case EDJE_PART_TYPE_TEXTBLOCK:
|
||||||
case EDJE_PART_TYPE_GRADIENT:
|
case EDJE_PART_TYPE_GRADIENT:
|
||||||
case EDJE_PART_TYPE_BOX:
|
case EDJE_PART_TYPE_BOX:
|
||||||
|
case EDJE_PART_TYPE_TABLE:
|
||||||
evas_object_color_set(ep->object,
|
evas_object_color_set(ep->object,
|
||||||
(pf->color.r * pf->color.a) / 255,
|
(pf->color.r * pf->color.a) / 255,
|
||||||
(pf->color.g * pf->color.a) / 255,
|
(pf->color.g * pf->color.a) / 255,
|
||||||
|
@ -1547,6 +1556,9 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags)
|
||||||
case EDJE_PART_TYPE_BOX:
|
case EDJE_PART_TYPE_BOX:
|
||||||
_edje_box_recalc_apply(ed, ep, pf, chosen_desc);
|
_edje_box_recalc_apply(ed, ep, pf, chosen_desc);
|
||||||
break;
|
break;
|
||||||
|
case EDJE_PART_TYPE_TABLE:
|
||||||
|
_edje_table_recalc_apply(ed, ep, pf, chosen_desc);
|
||||||
|
break;
|
||||||
case EDJE_PART_TYPE_RECTANGLE:
|
case EDJE_PART_TYPE_RECTANGLE:
|
||||||
case EDJE_PART_TYPE_SWALLOW:
|
case EDJE_PART_TYPE_SWALLOW:
|
||||||
case EDJE_PART_TYPE_GROUP:
|
case EDJE_PART_TYPE_GROUP:
|
||||||
|
|
|
@ -369,6 +369,11 @@ _edje_edd_setup(void)
|
||||||
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "box.align.y", box.align.y, EET_T_DOUBLE);
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "box.align.y", box.align.y, EET_T_DOUBLE);
|
||||||
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "box.padding.x", box.padding.x, EET_T_INT);
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "box.padding.x", box.padding.x, EET_T_INT);
|
||||||
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "box.padding.y", box.padding.y, EET_T_INT);
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "box.padding.y", box.padding.y, EET_T_INT);
|
||||||
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "table.homogeneous", table.homogeneous, EET_T_UCHAR);
|
||||||
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "table.align.x", table.align.x, EET_T_DOUBLE);
|
||||||
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "table.align.y", table.align.y, EET_T_DOUBLE);
|
||||||
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "table.padding.x", table.padding.x, EET_T_INT);
|
||||||
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description, Edje_Part_Description, "table.padding.y", table.padding.y, EET_T_INT);
|
||||||
|
|
||||||
NEWD("Edje_Pack_Element",
|
NEWD("Edje_Pack_Element",
|
||||||
Edje_Pack_Element);
|
Edje_Pack_Element);
|
||||||
|
@ -395,6 +400,10 @@ _edje_edd_setup(void)
|
||||||
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_pack_element, Edje_Pack_Element, "aspect.h", aspect.h, EET_T_INT);
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_pack_element, Edje_Pack_Element, "aspect.h", aspect.h, EET_T_INT);
|
||||||
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_pack_element, Edje_Pack_Element, "aspect.mode", aspect.mode, EET_T_UCHAR);
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_pack_element, Edje_Pack_Element, "aspect.mode", aspect.mode, EET_T_UCHAR);
|
||||||
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_pack_element, Edje_Pack_Element, "options", options, EET_T_STRING);
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_pack_element, Edje_Pack_Element, "options", options, EET_T_STRING);
|
||||||
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_pack_element, Edje_Pack_Element, "col", col, EET_T_INT);
|
||||||
|
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_pack_element, Edje_Pack_Element, "row", row, EET_T_INT);
|
||||||
|
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);
|
||||||
|
|
||||||
NEWD("Edje_Part",
|
NEWD("Edje_Part",
|
||||||
Edje_Part);
|
Edje_Part);
|
||||||
|
|
|
@ -349,6 +349,8 @@ _edje_object_file_set_internal(Evas_Object *obj, const char *file, const char *g
|
||||||
{
|
{
|
||||||
rp->object = evas_object_box_add(ed->evas);
|
rp->object = evas_object_box_add(ed->evas);
|
||||||
}
|
}
|
||||||
|
else if (ep->type == EDJE_PART_TYPE_TABLE)
|
||||||
|
rp->object = evas_object_table_add(ed->evas);
|
||||||
else
|
else
|
||||||
printf("EDJE ERROR: wrong part type %i!\n", ep->type);
|
printf("EDJE ERROR: wrong part type %i!\n", ep->type);
|
||||||
if (rp->object)
|
if (rp->object)
|
||||||
|
@ -502,10 +504,12 @@ _edje_object_file_set_internal(Evas_Object *obj, const char *file, const char *g
|
||||||
|
|
||||||
rp = ed->table_parts[i];
|
rp = ed->table_parts[i];
|
||||||
if (rp->part->type != EDJE_PART_TYPE_GROUP &&
|
if (rp->part->type != EDJE_PART_TYPE_GROUP &&
|
||||||
rp->part->type != EDJE_PART_TYPE_BOX) continue;
|
rp->part->type != EDJE_PART_TYPE_BOX &&
|
||||||
|
rp->part->type != EDJE_PART_TYPE_TABLE) continue;
|
||||||
if (rp->part->type == EDJE_PART_TYPE_GROUP)
|
if (rp->part->type == EDJE_PART_TYPE_GROUP)
|
||||||
source = rp->part->source;
|
source = rp->part->source;
|
||||||
else if (rp->part->type == EDJE_PART_TYPE_BOX)
|
else if (rp->part->type == EDJE_PART_TYPE_BOX ||
|
||||||
|
rp->part->type == EDJE_PART_TYPE_TABLE)
|
||||||
{
|
{
|
||||||
if (rp->part->items)
|
if (rp->part->items)
|
||||||
{
|
{
|
||||||
|
@ -579,15 +583,22 @@ _edje_object_file_set_internal(Evas_Object *obj, const char *file, const char *g
|
||||||
_edje_real_part_swallow(rp, child_obj);
|
_edje_real_part_swallow(rp, child_obj);
|
||||||
source = NULL;
|
source = NULL;
|
||||||
}
|
}
|
||||||
else if (rp->part->type == EDJE_PART_TYPE_BOX)
|
else
|
||||||
{
|
{
|
||||||
_edje_object_pack_item_hints_set(child_obj, pack_it);
|
_edje_object_pack_item_hints_set(child_obj, pack_it);
|
||||||
evas_object_show(child_obj);
|
evas_object_show(child_obj);
|
||||||
|
|
||||||
_edje_real_part_box_append(rp, child_obj);
|
|
||||||
evas_object_data_set(child_obj, "\377 edje.box_item", curr_item->data);
|
|
||||||
if (pack_it->name)
|
if (pack_it->name)
|
||||||
evas_object_name_set(child_obj, pack_it->name);
|
evas_object_name_set(child_obj, pack_it->name);
|
||||||
|
if (rp->part->type == EDJE_PART_TYPE_BOX)
|
||||||
|
{
|
||||||
|
_edje_real_part_box_append(rp, child_obj);
|
||||||
|
evas_object_data_set(child_obj, "\377 edje.box_item", pack_it);
|
||||||
|
}
|
||||||
|
else if(rp->part->type == EDJE_PART_TYPE_TABLE)
|
||||||
|
{
|
||||||
|
_edje_real_part_table_pack(rp, child_obj, pack_it->col, pack_it->row, pack_it->colspan, pack_it->rowspan);
|
||||||
|
evas_object_data_set(child_obj, "\377 edje.table_item", pack_it);
|
||||||
|
}
|
||||||
rp->items = eina_list_append(rp->items, child_obj);
|
rp->items = eina_list_append(rp->items, child_obj);
|
||||||
if (!(curr_item = curr_item->next))
|
if (!(curr_item = curr_item->next))
|
||||||
source = NULL;
|
source = NULL;
|
||||||
|
@ -756,7 +767,7 @@ _edje_file_del(Edje *ed)
|
||||||
/* all internal, for now */
|
/* all internal, for now */
|
||||||
while (rp->items)
|
while (rp->items)
|
||||||
{
|
{
|
||||||
/* evas_box handles deletion of objects */
|
/* evas_box/table handles deletion of objects */
|
||||||
/*evas_object_del(rp->items->data);*/
|
/*evas_object_del(rp->items->data);*/
|
||||||
rp->items = eina_list_remove_list(rp->items, rp->items);
|
rp->items = eina_list_remove_list(rp->items, rp->items);
|
||||||
}
|
}
|
||||||
|
|
|
@ -153,7 +153,8 @@ typedef struct _Edje_Patterns Edje_Patterns;
|
||||||
#define EDJE_PART_TYPE_GRADIENT 6
|
#define EDJE_PART_TYPE_GRADIENT 6
|
||||||
#define EDJE_PART_TYPE_GROUP 7
|
#define EDJE_PART_TYPE_GROUP 7
|
||||||
#define EDJE_PART_TYPE_BOX 8
|
#define EDJE_PART_TYPE_BOX 8
|
||||||
#define EDJE_PART_TYPE_LAST 9
|
#define EDJE_PART_TYPE_TABLE 9
|
||||||
|
#define EDJE_PART_TYPE_LAST 10
|
||||||
|
|
||||||
#define EDJE_TEXT_EFFECT_NONE 0
|
#define EDJE_TEXT_EFFECT_NONE 0
|
||||||
#define EDJE_TEXT_EFFECT_PLAIN 1
|
#define EDJE_TEXT_EFFECT_PLAIN 1
|
||||||
|
@ -414,6 +415,9 @@ struct _Edje_Pack_Element
|
||||||
Edje_Alignment weight;
|
Edje_Alignment weight;
|
||||||
Edje_Aspect aspect;
|
Edje_Aspect aspect;
|
||||||
const char *options; /* extra options for custom objects */
|
const char *options; /* extra options for custom objects */
|
||||||
|
/* table specific follows */
|
||||||
|
int col, row;
|
||||||
|
unsigned short colspan, rowspan;
|
||||||
};
|
};
|
||||||
|
|
||||||
/*----------*/
|
/*----------*/
|
||||||
|
@ -583,6 +587,13 @@ struct _Edje_Part_Description
|
||||||
int x, y;
|
int x, y;
|
||||||
} padding;
|
} padding;
|
||||||
} box;
|
} box;
|
||||||
|
struct {
|
||||||
|
unsigned char homogeneous;
|
||||||
|
Edje_Alignment align;
|
||||||
|
struct {
|
||||||
|
int x, y;
|
||||||
|
} padding;
|
||||||
|
} table;
|
||||||
|
|
||||||
Edje_Color color, color2, color3; /* color for rect or text, shadow etc. */
|
Edje_Color color, color2, color3; /* color for rect or text, shadow etc. */
|
||||||
|
|
||||||
|
@ -1129,6 +1140,9 @@ Evas_Bool _edje_real_part_box_insert_at(Edje_Real_Part *rp, Evas_Object
|
||||||
Evas_Object *_edje_real_part_box_remove(Edje_Real_Part *rp, Evas_Object *child_obj);
|
Evas_Object *_edje_real_part_box_remove(Edje_Real_Part *rp, Evas_Object *child_obj);
|
||||||
Evas_Object *_edje_real_part_box_remove_at(Edje_Real_Part *rp, unsigned int pos);
|
Evas_Object *_edje_real_part_box_remove_at(Edje_Real_Part *rp, unsigned int pos);
|
||||||
Evas_Bool _edje_real_part_box_remove_all(Edje_Real_Part *rp, Evas_Bool clear);
|
Evas_Bool _edje_real_part_box_remove_all(Edje_Real_Part *rp, Evas_Bool clear);
|
||||||
|
Evas_Bool _edje_real_part_table_pack(Edje_Real_Part *rp, Evas_Object *child_obj, unsigned short col, unsigned short row, unsigned short colspan, unsigned short rowspan);
|
||||||
|
Evas_Bool _edje_real_part_table_unpack(Edje_Real_Part *rp, Evas_Object *child_obj);
|
||||||
|
void _edje_real_part_table_clear(Edje_Real_Part *rp, Evas_Bool clear);
|
||||||
|
|
||||||
void _edje_embryo_script_init (Edje *ed);
|
void _edje_embryo_script_init (Edje *ed);
|
||||||
void _edje_embryo_script_shutdown (Edje *ed);
|
void _edje_embryo_script_shutdown (Edje *ed);
|
||||||
|
|
|
@ -2402,32 +2402,170 @@ _edje_real_part_box_remove_at(Edje_Real_Part *rp, unsigned int pos)
|
||||||
Evas_Bool
|
Evas_Bool
|
||||||
_edje_real_part_box_remove_all(Edje_Real_Part *rp, Evas_Bool clear)
|
_edje_real_part_box_remove_all(Edje_Real_Part *rp, Evas_Bool clear)
|
||||||
{
|
{
|
||||||
Evas_Object_Box_Data *priv;
|
Eina_List *children;
|
||||||
Evas_Object_Box_Option *opt;
|
|
||||||
Eina_List *l, *l_next;
|
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (eina_list_count(rp->items) == 0)
|
if (eina_list_count(rp->items) == 0)
|
||||||
return evas_object_box_remove_all(rp->object, clear);
|
return evas_object_box_remove_all(rp->object, clear);
|
||||||
priv = evas_object_smart_data_get(rp->object);
|
|
||||||
i = 0;
|
i = 0;
|
||||||
EINA_LIST_FOREACH_SAFE(priv->children, l, l_next, opt)
|
children = evas_object_box_children_get(rp->object);
|
||||||
|
while (children)
|
||||||
{
|
{
|
||||||
Evas_Object *child_obj;
|
Evas_Object *child_obj = children->data;
|
||||||
child_obj = opt->obj;
|
|
||||||
if (evas_object_data_get(child_obj, "\377 edje.box_item"))
|
if (evas_object_data_get(child_obj, "\377 edje.box_item"))
|
||||||
|
i++;
|
||||||
|
else
|
||||||
{
|
{
|
||||||
i++;
|
if (!evas_object_box_remove_at(rp->object, i))
|
||||||
continue;
|
return 0;
|
||||||
|
if (clear)
|
||||||
|
evas_object_del(child_obj);
|
||||||
}
|
}
|
||||||
if (!evas_object_box_remove_at(rp->object, i))
|
children = eina_list_remove_list(children, children);
|
||||||
return 0;
|
|
||||||
if (clear)
|
|
||||||
evas_object_del(child_obj);
|
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Packs an object into the table
|
||||||
|
* @param obj A valid Evas_Object handle
|
||||||
|
* @param part The part name
|
||||||
|
* @param child The object to pack in
|
||||||
|
* @param col The column to place it in
|
||||||
|
* @param row The row to place it in
|
||||||
|
* @param colspan Columns the child will take
|
||||||
|
* @param rowspan Rows the child will take
|
||||||
|
*
|
||||||
|
* @return 1: Successfully added.\n
|
||||||
|
* 0: An error occured.
|
||||||
|
*
|
||||||
|
* Packs an object into the table indicated by part.\n
|
||||||
|
*/
|
||||||
|
EAPI Evas_Bool
|
||||||
|
edje_object_part_table_pack(Evas_Object *obj, const char *part, Evas_Object *child_obj, unsigned short col, unsigned short row, unsigned short colspan, unsigned short rowspan)
|
||||||
|
{
|
||||||
|
Edje *ed;
|
||||||
|
Edje_Real_Part *rp;
|
||||||
|
|
||||||
|
ed = _edje_fetch(obj);
|
||||||
|
if ((!ed) || (!part)) return 0;
|
||||||
|
|
||||||
|
rp = _edje_real_part_recursive_get(ed, part);
|
||||||
|
if (!rp) return 0;
|
||||||
|
if (rp->part->type != EDJE_PART_TYPE_TABLE) return 0;
|
||||||
|
|
||||||
|
return _edje_real_part_table_pack(rp, child_obj, col, row, colspan, rowspan);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Removes an object from the table
|
||||||
|
* @param obj A valid Evas_Object handle
|
||||||
|
* @param part The part name
|
||||||
|
* @param child The object to pack in
|
||||||
|
*
|
||||||
|
* @return 1: Successfully removed.\n
|
||||||
|
* 0: An error occured.
|
||||||
|
*
|
||||||
|
* Removes an object from the table indicated by part.\n
|
||||||
|
*/
|
||||||
|
EAPI Evas_Bool
|
||||||
|
edje_object_part_table_unpack(Evas_Object *obj, const char *part, Evas_Object *child_obj)
|
||||||
|
{
|
||||||
|
Edje *ed;
|
||||||
|
Edje_Real_Part *rp;
|
||||||
|
|
||||||
|
ed = _edje_fetch(obj);
|
||||||
|
if ((!ed) || (!part)) return 0;
|
||||||
|
|
||||||
|
rp = _edje_real_part_recursive_get(ed, part);
|
||||||
|
if (!rp) return 0;
|
||||||
|
if (rp->part->type != EDJE_PART_TYPE_TABLE) return 0;
|
||||||
|
|
||||||
|
return _edje_real_part_table_unpack(rp, child_obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Gets the number of columns and rows the table has
|
||||||
|
* @param obj A valid Evas_Object handle
|
||||||
|
* @param part The part name
|
||||||
|
* @param cols Pointer where to store number of columns (can be NULL)
|
||||||
|
* @param rows Pointer where to store number of rows (can be NULL)
|
||||||
|
*
|
||||||
|
* Retrieves the size of the table in number of columns and rows.\n
|
||||||
|
*/
|
||||||
|
EAPI void
|
||||||
|
edje_object_part_table_col_row_size_get(const Evas_Object *obj, const char *part, int *cols, int *rows)
|
||||||
|
{
|
||||||
|
Edje *ed;
|
||||||
|
Edje_Real_Part *rp;
|
||||||
|
|
||||||
|
ed = _edje_fetch(obj);
|
||||||
|
if ((!ed) || (!part)) return;
|
||||||
|
|
||||||
|
rp = _edje_real_part_recursive_get(ed, part);
|
||||||
|
if (!rp) return;
|
||||||
|
if (rp->part->type != EDJE_PART_TYPE_TABLE) return;
|
||||||
|
|
||||||
|
return evas_object_table_col_row_size_get(rp->object, cols, rows);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Removes all object from the table
|
||||||
|
* @param obj A valid Evas_Object handle
|
||||||
|
* @param part The part name
|
||||||
|
* @param clear If set, will delete subobjs on remove
|
||||||
|
*
|
||||||
|
* Removes all object from the table indicated by part, except
|
||||||
|
* the internal ones set from the theme.\n
|
||||||
|
*/
|
||||||
|
EAPI void
|
||||||
|
edje_object_part_table_clear(Evas_Object *obj, const char *part, Evas_Bool clear)
|
||||||
|
{
|
||||||
|
Edje *ed;
|
||||||
|
Edje_Real_Part *rp;
|
||||||
|
|
||||||
|
ed = _edje_fetch(obj);
|
||||||
|
if ((!ed) || (!part)) return;
|
||||||
|
|
||||||
|
rp = _edje_real_part_recursive_get(ed, part);
|
||||||
|
if (!rp) return;
|
||||||
|
if (rp->part->type != EDJE_PART_TYPE_TABLE) return;
|
||||||
|
|
||||||
|
return _edje_real_part_table_clear(rp, clear);
|
||||||
|
}
|
||||||
|
|
||||||
|
Evas_Bool
|
||||||
|
_edje_real_part_table_pack(Edje_Real_Part *rp, Evas_Object *child_obj, unsigned short col, unsigned short row, unsigned short colspan, unsigned short rowspan)
|
||||||
|
{
|
||||||
|
return evas_object_table_pack(rp->object, child_obj, col, row, colspan, rowspan);
|
||||||
|
}
|
||||||
|
|
||||||
|
Evas_Bool
|
||||||
|
_edje_real_part_table_unpack(Edje_Real_Part *rp, Evas_Object *child_obj)
|
||||||
|
{
|
||||||
|
return evas_object_table_unpack(rp->object, child_obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
_edje_real_part_table_clear(Edje_Real_Part *rp, Evas_Bool clear)
|
||||||
|
{
|
||||||
|
Eina_List *children;
|
||||||
|
|
||||||
|
if (eina_list_count(rp->items) == 0)
|
||||||
|
{
|
||||||
|
evas_object_table_clear(rp->object, clear);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
children = evas_object_table_children_get(rp->object);
|
||||||
|
while (children)
|
||||||
|
{
|
||||||
|
Evas_Object *child_obj = children->data;
|
||||||
|
if (!evas_object_data_get(child_obj, "\377 edje.table_item"))
|
||||||
|
{
|
||||||
|
evas_object_table_unpack(rp->object, child_obj);
|
||||||
|
if (clear)
|
||||||
|
evas_object_del(child_obj);
|
||||||
|
}
|
||||||
|
children = eina_list_remove_list(children, children);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Edje_Real_Part *
|
Edje_Real_Part *
|
||||||
_edje_real_part_recursive_get(Edje *ed, const char *part)
|
_edje_real_part_recursive_get(Edje *ed, const char *part)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue