For our second example we'll create a table with 4 rectangles in it. Since our rectangles are of different sizes our table won't be homogeneous.

The interesting bits from this example are:

  • Where we set the table as not homogeneous:
    elm_table_homogeneous_set(table, EINA_FALSE);
  • Where we add each rectangle to the table:
    elm_table_pack(table, rect, 0, 0, 2, 1);
    elm_table_pack(table, rect, 0, 1, 1, 2);
    elm_table_pack(table, rect, 1, 1, 1, 1);
    elm_table_pack(table, rect, 1, 2, 1, 1);

Here you can see the full source:

//Compile with:
//gcc -g table_example_02.c -o table_example_02 `pkg-config --cflags --libs elementary`
#include <Elementary.h>
EAPI_MAIN int
elm_main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
{
Evas_Object *win, *rect, *table;
win = elm_win_util_standard_add("table", "Table");
table = elm_table_add(win);
elm_table_homogeneous_set(table, EINA_FALSE);
rect = evas_object_rectangle_add(evas_object_evas_get(win));
evas_object_color_set(rect, 255, 0, 0, 255);
evas_object_size_hint_min_set(rect, 100, 50);
elm_table_pack(table, rect, 0, 0, 2, 1);
rect = evas_object_rectangle_add(evas_object_evas_get(win));
evas_object_color_set(rect, 0, 255, 0, 255);
evas_object_size_hint_min_set(rect, 50, 100);
elm_table_pack(table, rect, 0, 1, 1, 2);
rect = evas_object_rectangle_add(evas_object_evas_get(win));
evas_object_color_set(rect, 0, 0, 255, 255);
evas_object_size_hint_min_set(rect, 50, 50);
elm_table_pack(table, rect, 1, 1, 1, 1);
rect = evas_object_rectangle_add(evas_object_evas_get(win));
evas_object_color_set(rect, 255, 255, 0, 255);
evas_object_size_hint_min_set(rect, 50, 50);
elm_table_pack(table, rect, 1, 2, 1, 1);
return 0;
}

Our example will look like this:

ELM_POLICY_QUIT_LAST_WINDOW_CLOSED
quit when the application's last window is closed
Definition: elm_general.h:248
EINA_UNUSED
#define EINA_UNUSED
Definition: eina_types.h:321
EINA_FALSE
#define EINA_FALSE
Definition: eina_types.h:502
Evas_Object
Efl_Canvas_Object Evas_Object
Definition: Evas_Common.h:180
elm_run
void elm_run(void)
Run Elementary's main loop.
Definition: elm_main.c:1384
ELM_MAIN
#define ELM_MAIN()
macro to be used after the elm_main() function
Definition: elm_general.h:528
elm_table_add
EAPI Evas_Object * elm_table_add(Evas_Object *parent)
Add a new table to the parent.
Definition: elm_table.c:137
elm_win_util_standard_add
Evas_Object * elm_win_util_standard_add(const char *name, const char *title)
Adds a window object with standard setup.
Definition: efl_ui_win.c:9199
evas_object_show
void evas_object_show(Evas_Object *eo_obj)
Makes the given Evas object visible.
Definition: evas_object_main.c:1853
EINA_TRUE
#define EINA_TRUE
Definition: eina_types.h:508
elm_policy_set
Eina_Bool elm_policy_set(unsigned int policy, int value)
Set a new policy's value (for a given policy group/identifier).
Definition: elm_main.c:1407
evas_object_rectangle_add
Evas_Object * evas_object_rectangle_add(Evas *e)
Adds a rectangle to the given evas.
Definition: evas_object_rectangle.c:78
elm_win_resize_object_add
void elm_win_resize_object_add(Eo *obj, Evas_Object *subobj)
Add subobj as a resize object of window obj.
Definition: efl_ui_win.c:8899
elm_win_autodel_set
void elm_win_autodel_set(Eo *obj, Eina_Bool autodel)
Set the window's autodel state.
Definition: efl_ui_win.c:6145
evas_object_color_set
void evas_object_color_set(Evas_Object *obj, int r, int g, int b, int a)
Sets the general/main color of the given Evas object to the given one.
Definition: evas_object_main.c:2063
ELM_POLICY_QUIT
under which circumstances the application should quit automatically.
Definition: elm_general.h:227