* output.
*
* @verbatim
- * gcc -o evas-events evas-events.c `pkg-config --libs --cflags ecore-evas edje`
+ * gcc -o evas-events evas-events.c `pkg-config --libs --cflags ecore-evas`
* @endverbatim
*/
#define WIDTH 320
#define HEIGHT 480
+static const char commands[] = \
+ "commands are:\n"
+ "\tShift + a - change alignment hints on top rectangle\n"
+ "\tShift + m - change min. size hint on top rectangle\n"
+ "\tShift + n - change max. size hint on top rectangle\n"
+ "\tShift + p - change padding hints on top rectangle\n"
+ "\tShift + w - change weight hints on top rectangle\n\n"
+ "\tControl + a - change alignment hints on bottom rectangle\n"
+ "\tControl + m - change min. size hint on bottom rectangle\n"
+ "\tControl + n - change max. size hint on bottom rectangle\n"
+ "\tControl + p - change padding hints on bottom rectangle\n"
+ "\tControl + w - change weight hints on bottom rectangle\n\n"
+ "\ts - print current hints information\n"
+ "\th - print help\n";
+
static const char *border_img_path = PACKAGE_EXAMPLES_DIR "/red.png";
struct coord_tuple
struct rect_data
{
struct coord_tuple *min_ptr;
- struct coord_tuple min[3];
+ struct coord_tuple min[4];
struct coord_tuple *max_ptr;
- struct coord_tuple max[3];
+ struct coord_tuple max[4];
struct weight_tuple *align_ptr;
struct weight_tuple align[3];
ecore_evas_geometry_get(ee, NULL, NULL, &w, &h);
evas_object_resize(d.bg, w, h);
+
+ evas_object_move(d.box, (w / 4), (h / 4));
+ evas_object_resize(d.box, (w / 2), (h / 2));
+
+ evas_object_move(d.border, (w / 4) - 3, (h / 4) - 3);
+ evas_object_resize(d.border, (w / 2) + 6, (h / 2) + 6);
}
static void
}
else if (strcmp(ev->keyname, "h") == 0) /* print help */
{
- fprintf(stdout,
- "commands are:\n"
- "\tShift + a - change alignment hints on top rectangle\n"
- "\tShift + m - change min. size hint on top rectangle\n"
- "\tShift + n - change max. size hint on top rectangle\n"
- "\tShift + p - change padding hints on top rectangle\n"
- "\tShift + w - change weight hints on top rectangle\n\n"
- "\tControl + a - change alignment hints on bottom rectangle\n"
- "\tControl + m - change min. size hint on bottom rectangle\n"
- "\tControl + n - change max. size hint on bottom rectangle\n"
- "\tControl + p - change padding hints on bottom rectangle\n"
- "\tControl + w - change weight hints on bottom rectangle\n\n"
- "\ts - print current hints information\n"
- "\th - print help\n");
+ fprintf(stdout, commands);
return;
}
else if (strcmp(ev->keyname, "s") == 0) /* get aspect status of the
if ((unsigned)
(((void *)(r_data->align_ptr)) - ((void *)(r_data->align))) >=
sizeof(r_data->align))
- r_data->align_ptr = r_data->align;
+ r_data->align_ptr = r_data->align;
evas_object_size_hint_align_set(
- rect, r_data->align_ptr->x, r_data->align_ptr->y);
+ rect, r_data->align_ptr->x, r_data->align_ptr->y);
fprintf(stdout, "Changing align hints for %s rect. to (%f, %f)\n",
name, r_data->align_ptr->x, r_data->align_ptr->y);
if ((unsigned)
(((void *)(r_data->min_ptr)) - ((void *)(r_data->min))) >=
sizeof(r_data->min))
- r_data->min_ptr = r_data->min;
+ r_data->min_ptr = r_data->min;
evas_object_size_hint_min_set(
- rect, r_data->min_ptr->w, r_data->min_ptr->h);
+ rect, r_data->min_ptr->w, r_data->min_ptr->h);
fprintf(stdout, "Changing min. size hints for %s rect. to (%d, %d)\n",
name, r_data->min_ptr->w, r_data->min_ptr->h);
if ((unsigned)
(((void *)(r_data->max_ptr)) - ((void *)(r_data->max))) >=
sizeof(r_data->max))
- r_data->max_ptr = r_data->max;
+ r_data->max_ptr = r_data->max;
evas_object_size_hint_max_set(
- rect, r_data->max_ptr->w, r_data->max_ptr->h);
+ rect, r_data->max_ptr->w, r_data->max_ptr->h);
fprintf(stdout, "Changing max. size hints for %s rect. to (%d, %d)\n",
name, r_data->max_ptr->w, r_data->max_ptr->h);
if ((unsigned)
(((void *)(r_data->padding_ptr)) - ((void *)(r_data->padding))) >=
sizeof(r_data->padding))
- r_data->padding_ptr = r_data->padding;
+ r_data->padding_ptr = r_data->padding;
evas_object_size_hint_padding_set(
- rect, r_data->padding_ptr->l, r_data->padding_ptr->r,
- r_data->padding_ptr->t, r_data->padding_ptr->b);
+ rect, r_data->padding_ptr->l, r_data->padding_ptr->r,
+ r_data->padding_ptr->t, r_data->padding_ptr->b);
fprintf(stdout, "Changing padding size hints for %s rect."
- " to (%d, %d, %d, %d)\n",
+ " to (%d, %d, %d, %d)\n",
name, r_data->padding_ptr->l, r_data->padding_ptr->r,
r_data->padding_ptr->t, r_data->padding_ptr->b);
return;
if ((unsigned)
(((void *)(r_data->weight_ptr)) - ((void *)(r_data->weight))) >=
sizeof(r_data->weight))
- r_data->weight_ptr = r_data->weight;
+ r_data->weight_ptr = r_data->weight;
evas_object_size_hint_weight_set(
- rect, r_data->weight_ptr->x, r_data->weight_ptr->y);
+ rect, r_data->weight_ptr->x, r_data->weight_ptr->y);
fprintf(stdout, "Changing weight hints for %s rect. to (%f, %f)\n",
name, r_data->weight_ptr->x, r_data->weight_ptr->y);
/* init values one is going to cycle through while running this
* example */
struct rect_data init_data = \
- {.min = {{30, 30}, {100, 70}, {200, 200}},
- .max = {{100, 100}, {100, 70}, {300, 300}},
- .align = {{0.0, 0.0}, {0.5, 0.5}, {1.0, 0.5}},
- .weight = {{0.0, 0.0}, {3, 6}, {10, 100}},
- .padding = {{0, 0, 0, 0}, {3, 6, 9, 12}, {10, 20, 0, 30}}};
+ {
+ .min = {{0, 0}, {30, 30}, {100, 70}, {200, 200}},
+ .max = {{0, 0}, {100, 100}, {100, 70}, {300, 300}},
+ .align = {{0.0, 0.0}, {0.5, 0.5}, {1.0, 0.5}},
+ .weight = {{0.0, 0.0}, {3, 6}, {10, 100}},
+ .padding = {{0, 0, 0, 0}, {3, 6, 9, 12}, {10, 20, 0, 30}}
+ };
d.t_data = init_data;
- d.t_data.min_ptr = d.t_data.min;
- d.t_data.max_ptr = d.t_data.max;
+ d.t_data.min_ptr = d.t_data.min + 1;
+ d.t_data.max_ptr = d.t_data.max + 1;
d.t_data.align_ptr = d.t_data.align;
d.t_data.weight_ptr = d.t_data.weight;
d.t_data.padding_ptr = d.t_data.padding;
d.b_data = init_data;
- d.b_data.min_ptr = d.b_data.min;
- d.b_data.max_ptr = d.b_data.max;
+ d.b_data.min_ptr = d.b_data.min + 1;
+ d.b_data.max_ptr = d.b_data.max + 1;
d.b_data.align_ptr = d.b_data.align;
d.b_data.weight_ptr = d.b_data.weight;
d.b_data.padding_ptr = d.b_data.padding;
evas_object_event_callback_add(
d.bg, EVAS_CALLBACK_KEY_DOWN, _on_keydown, NULL);
- /* Evas box with horizontal layout */
+ /* Evas box with vertical layout */
d.box = evas_object_box_add(d.canvas);
evas_object_box_layout_set(
d.box, evas_object_box_layout_vertical, NULL, NULL);
- evas_object_move(d.box, (WIDTH / 4), (HEIGHT / 4));
- evas_object_resize(d.box, (WIDTH / 2), (HEIGHT / 2));
evas_object_show(d.box);
/* this is a border around the box, container of the rectangles we
evas_object_image_file_set(d.border, border_img_path, NULL);
evas_object_image_border_set(d.border, 3, 3, 3, 3);
evas_object_image_border_center_fill_set(d.border, EVAS_BORDER_FILL_NONE);
- evas_object_move(d.border, (WIDTH / 4) - 3, (HEIGHT / 4) - 3);
- evas_object_resize(d.border, (WIDTH / 2) + 6, (HEIGHT / 2) + 6);
evas_object_show(d.border);
d.t_rect = evas_object_rectangle_add(d.canvas);
evas_object_color_set(d.t_rect, 0, 0, 255, 255);
- evas_object_size_hint_min_set(d.t_rect, 100, 100);
+ evas_object_size_hint_min_set(
+ d.t_rect, d.t_data.min_ptr->w, d.t_data.min_ptr->h);
evas_object_show(d.t_rect);
evas_object_box_append(d.box, d.t_rect);
d.b_rect = evas_object_rectangle_add(d.canvas);
evas_object_color_set(d.b_rect, 0, 255, 0, 255);
- evas_object_size_hint_min_set(d.b_rect, 100, 100);
+ evas_object_size_hint_min_set(
+ d.b_rect, d.b_data.min_ptr->w, d.b_data.min_ptr->h);
evas_object_show(d.b_rect);
evas_object_box_append(d.box, d.b_rect);
- ecore_main_loop_begin();
+ _canvas_resize_cb(d.ee);
+ fprintf(stdout, commands);
+ ecore_main_loop_begin();
ecore_evas_shutdown();
return 0;
error:
- fprintf(stderr, "you got to have at least one evas engine built and linked"
+ fprintf(stderr, "You got to have at least one evas engine built and linked"
" up to ecore-evas for this example to run properly.\n");
return -1;
}