edje-swallow.c | edje-swallow.c | |||
---|---|---|---|---|
skipping to change at line 13 | skipping to change at line 13 | |||
* | * | |||
* You'll need at least one Evas engine built for it (excluding the | * You'll need at least one Evas engine built for it (excluding the | |||
* buffer one). See stdout/stderr for output. | * buffer one). See stdout/stderr for output. | |||
* | * | |||
* @verbatim | * @verbatim | |||
* edje_cc swallow.edc && gcc -o edje-swallow edje-swallow.c `pkg-config -- libs --cflags evas ecore ecore-evas edje` | * edje_cc swallow.edc && gcc -o edje-swallow edje-swallow.c `pkg-config -- libs --cflags evas ecore ecore-evas edje` | |||
* @endverbatim | * @endverbatim | |||
*/ | */ | |||
#ifdef HAVE_CONFIG_H | #ifdef HAVE_CONFIG_H | |||
#include "config.h" | # include "config.h" | |||
#else | #else | |||
#define PACKAGE_EXAMPLES_DIR "." | # define __UNUSED__ | |||
#define __UNUSED__ | ||||
#endif | #endif | |||
#include <Ecore.h> | #include <Ecore.h> | |||
#include <Ecore_Evas.h> | #include <Ecore_Evas.h> | |||
#include <Edje.h> | #include <Edje.h> | |||
#define WIDTH (300) | #define WIDTH (300) | |||
#define HEIGHT (300) | #define HEIGHT (300) | |||
static const char *edje_file_path = PACKAGE_EXAMPLES_DIR "/swallow.edj"; | ||||
static Ecore_Evas *ee; | ||||
static Evas_Object *bg; | ||||
static void | static void | |||
_on_delete(Ecore_Evas *ee __UNUSED__) | _on_delete(Ecore_Evas *ee __UNUSED__) | |||
{ | { | |||
ecore_main_loop_quit(); | ecore_main_loop_quit(); | |||
} | } | |||
/* here just to keep our example's window size and background image's | /* here just to keep our example's window size and background image's | |||
* size in synchrony */ | * size in synchrony */ | |||
static void | static void | |||
_canvas_resize_cb(Ecore_Evas *ee) | _on_canvas_resize(Ecore_Evas *ee) | |||
{ | { | |||
int w, h; | Evas_Object *bg; | |||
int w; | ||||
int h; | ||||
bg = ecore_evas_data_get(ee, "background"); | ||||
ecore_evas_geometry_get(ee, NULL, NULL, &w, &h); | ecore_evas_geometry_get(ee, NULL, NULL, &w, &h); | |||
evas_object_resize(bg, w, h); | evas_object_resize(bg, w, h); | |||
} | } | |||
int | int | |||
main(void) | main(int argc __UNUSED__, char *argv[]) | |||
{ | { | |||
Evas_Object *edje_obj, *rect, *obj; | char edje_file_path[PATH_MAX]; | |||
Evas *evas; | const char *edje_file = "swallow.edj"; | |||
Ecore_Evas *ee; | ||||
ecore_evas_init(); | Evas *evas; | |||
edje_init(); | Evas_Object *bg; | |||
Evas_Object *rect; | ||||
Evas_Object *obj; | ||||
Evas_Object *edje_obj; | ||||
Eina_Prefix *pfx; | ||||
if (!ecore_evas_init()) | ||||
return EXIT_FAILURE; | ||||
if (!edje_init()) | ||||
goto shutdown_ecore_evas; | ||||
pfx = eina_prefix_new(argv[0], main, | ||||
"EDJE_EXAMPLES", | ||||
"edje/examples", | ||||
edje_file, | ||||
PACKAGE_BIN_DIR, | ||||
PACKAGE_LIB_DIR, | ||||
PACKAGE_DATA_DIR, | ||||
PACKAGE_DATA_DIR); | ||||
if (!pfx) | ||||
goto shutdown_edje; | ||||
/* this will give you a window with an Evas canvas under the first | /* this will give you a window with an Evas canvas under the first | |||
* engine available */ | * engine available */ | |||
ee = ecore_evas_new(NULL, 0, 0, WIDTH, HEIGHT, NULL); | ee = ecore_evas_new(NULL, 0, 0, WIDTH, HEIGHT, NULL); | |||
if (!ee) | ||||
goto free_prefix; | ||||
ecore_evas_callback_delete_request_set(ee, _on_delete); | ecore_evas_callback_delete_request_set(ee, _on_delete); | |||
ecore_evas_callback_resize_set(ee, _canvas_resize_cb); | ecore_evas_callback_resize_set(ee, _on_canvas_resize); | |||
ecore_evas_title_set(ee, "Edje Swallow Example"); | ecore_evas_title_set(ee, "Edje Swallow Example"); | |||
ecore_evas_show(ee); | ||||
evas = ecore_evas_get(ee); | evas = ecore_evas_get(ee); | |||
bg = evas_object_rectangle_add(evas); | bg = evas_object_rectangle_add(evas); | |||
evas_object_color_set(bg, 255, 255, 255, 255); /* white bg */ | evas_object_color_set(bg, 255, 255, 255, 255); /* white bg */ | |||
evas_object_move(bg, 0, 0); /* at canvas' origin */ | evas_object_move(bg, 0, 0); /* at canvas' origin */ | |||
evas_object_resize(bg, WIDTH, HEIGHT); /* covers full canvas */ | evas_object_resize(bg, WIDTH, HEIGHT); /* covers full canvas */ | |||
evas_object_show(bg); | evas_object_show(bg); | |||
ecore_evas_data_set(ee, "background", bg); | ||||
edje_obj = edje_object_add(evas); | edje_obj = edje_object_add(evas); | |||
snprintf(edje_file_path, sizeof(edje_file_path), | ||||
"%s/examples/%s", eina_prefix_data_get(pfx), edje_file); | ||||
edje_object_file_set(edje_obj, edje_file_path, "example_group"); | edje_object_file_set(edje_obj, edje_file_path, "example_group"); | |||
evas_object_move(edje_obj, 20, 20); | evas_object_move(edje_obj, 20, 20); | |||
evas_object_resize(edje_obj, WIDTH - 40, HEIGHT - 40); | evas_object_resize(edje_obj, WIDTH - 40, HEIGHT - 40); | |||
evas_object_show(edje_obj); | evas_object_show(edje_obj); | |||
rect = evas_object_rectangle_add(evas); | rect = evas_object_rectangle_add(evas); | |||
evas_object_color_set(rect, 255, 0, 0, 255); | evas_object_color_set(rect, 255, 0, 0, 255); | |||
edje_object_part_swallow(edje_obj, "part_one", rect); | edje_object_part_swallow(edje_obj, "part_one", rect); | |||
obj = edje_object_part_swallow_get(edje_obj, "part_one"); | obj = edje_object_part_swallow_get(edje_obj, "part_one"); | |||
if(obj == rect) | if(obj == rect) | |||
printf("Swallowing worked!\n"); | printf("Swallowing worked!\n"); | |||
ecore_evas_show(ee); | ||||
ecore_main_loop_begin(); | ecore_main_loop_begin(); | |||
eina_prefix_free(pfx); | ||||
ecore_evas_free(ee); | ecore_evas_free(ee); | |||
ecore_evas_shutdown(); | ecore_evas_shutdown(); | |||
edje_shutdown(); | edje_shutdown(); | |||
return 0; | ||||
return EXIT_SUCCESS; | ||||
free_prefix: | ||||
eina_prefix_free(pfx); | ||||
shutdown_edje: | ||||
edje_shutdown(); | ||||
shutdown_ecore_evas: | ||||
ecore_evas_shutdown(); | ||||
return EXIT_FAILURE; | ||||
} | } | |||
End of changes. 16 change blocks. | ||||
19 lines changed or deleted | 54 lines changed or added | |||
This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |