#ifdef HAVE_CONFIG_H
#include "config.h"
#else
#define PACKAGE_EXAMPLES_DIR "."
#endif
#include <Ecore.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "evas-common.h"
#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 EVAS_IMAGE_FOLDER "/red.png";
struct coord_tuple
{
};
struct weight_tuple
{
double x, y;
};
struct padding_tuple
{
};
struct rect_data
{
struct coord_tuple *min_ptr;
struct coord_tuple min[4];
struct coord_tuple *max_ptr;
struct coord_tuple max[4];
struct weight_tuple *align_ptr;
struct weight_tuple align[3];
struct weight_tuple *weight_ptr;
struct weight_tuple weight[3];
struct padding_tuple *padding_ptr;
struct padding_tuple padding[3];
};
struct test_data
{
Ecore_Evas *ee;
struct rect_data t_data, b_data;
};
static struct test_data d = {0};
static void
_canvas_resize_cb(Ecore_Evas *ee)
{
int w, h;
}
static void
{
double x, y;
printf("\talign hints: h(%f), v(%f)\n",
x, y);
cmin = efl_gfx_hint_size_combined_min_get(rect);
printf("\tmin. size hints: h(%d), v(%d)\n",
printf("\tmax. size hints: h(%d), v(%d)\n",
w, h);
printf("\tpadding hints: l(%d), r(%d), t(%d), b(%d)\n",
l, r, t, b);
printf("\tweight hints: h(%f), v(%f)\n",
x, y);
}
static void
void *einfo)
{
struct rect_data *r_data = NULL;
const Evas_Modifier *mods;
const char *name = NULL;
{
rect = d.t_rect;
r_data = &d.t_data;
name = "top";
}
{
rect = d.b_rect;
r_data = &d.b_data;
name = "bottom";
}
else if (strcmp(ev->
key,
"h") == 0)
{
printf(commands);
return;
}
else if (strcmp(ev->
key,
"s") == 0)
{
printf("Top rectangle:\n");
_print_rect_stats(d.t_rect);
printf("\nBottom rectangle:\n");
_print_rect_stats(d.b_rect);
return;
}
if (!rect) return;
if (strcmp(ev->
key,
"a") == 0)
{
(r_data->align_ptr)++;
if ((unsigned int)
(((unsigned char *)(r_data->align_ptr)) - ((unsigned char *)(r_data->align))) >=
sizeof(r_data->align))
r_data->align_ptr = r_data->align;
rect, r_data->align_ptr->x, r_data->align_ptr->y);
printf("Changing align hints for %s rect. to (%f, %f)\n",
name, r_data->align_ptr->x, r_data->align_ptr->y);
return;
}
if (strcmp(ev->
key,
"m") == 0)
{
(r_data->min_ptr)++;
if ((unsigned int)
(((unsigned char *)(r_data->min_ptr)) - ((unsigned char *)(r_data->min))) >=
sizeof(r_data->min))
r_data->min_ptr = r_data->min;
rect, r_data->min_ptr->w, r_data->min_ptr->h);
printf("Changing min. size hints for %s rect. to (%d, %d)\n",
name, r_data->min_ptr->w, r_data->min_ptr->h);
return;
}
if (strcmp(ev->
key,
"n") == 0)
{
(r_data->max_ptr)++;
if ((unsigned int)
(((unsigned char *)(r_data->max_ptr)) - ((unsigned char *)(r_data->max))) >=
sizeof(r_data->max))
r_data->max_ptr = r_data->max;
rect, r_data->max_ptr->w, r_data->max_ptr->h);
printf("Changing max. size hints for %s rect. to (%d, %d)\n",
name, r_data->max_ptr->w, r_data->max_ptr->h);
return;
}
if (strcmp(ev->
key,
"p") == 0)
{
(r_data->padding_ptr)++;
if ((unsigned int)
(((unsigned char *)(r_data->padding_ptr)) - ((unsigned char *)(r_data->padding))) >=
sizeof(r_data->padding))
r_data->padding_ptr = r_data->padding;
rect, r_data->padding_ptr->l, r_data->padding_ptr->r,
r_data->padding_ptr->t, r_data->padding_ptr->b);
printf("Changing padding size hints for %s rect. 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 (strcmp(ev->
key,
"w") == 0)
{
(r_data->weight_ptr)++;
if ((unsigned int)
(((unsigned char *)(r_data->weight_ptr)) - ((unsigned char *)(r_data->weight))) >=
sizeof(r_data->weight))
r_data->weight_ptr = r_data->weight;
rect, r_data->weight_ptr->x, r_data->weight_ptr->y);
printf("Changing weight hints for %s rect. to (%f, %f)\n",
name, r_data->weight_ptr->x, r_data->weight_ptr->y);
return;
}
}
static void
{
}
int
main(void)
{
return EXIT_FAILURE;
struct rect_data init_data = \
{
.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 + 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 + 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;
if (!d.ee)
goto error;
d.t_rect, d.t_data.min_ptr->w, d.t_data.min_ptr->h);
d.b_rect, d.b_data.min_ptr->w, d.b_data.min_ptr->h);
_canvas_resize_cb(d.ee);
printf(commands);
return 0;
error:
fprintf(stderr, "error: Requires at least one Evas engine built and linked"
" to ecore-evas for this example to run properly.\n");
return -1;
}