This example will show you how to load an image using evas and fill a swallow with it.
It's basically almost like the last example, but with a minor change.
This variables are used to store the name of the image that is going to be used, the path to it and a variable that will store the error cause if something goes wrong.
Here it is:
const char *edje_file = PACKAGE_DATA_DIR"/swallow.edj";
const char *img_file = PACKAGE_SOURCE_DATA_DIR"/bubble.png";
Then we load the image with this command:
To check if we had some problem we use:
{
fprintf(stderr, "could not load image '%s'. error string is \"%s\"\n",
goto shutdown_edje;
}
Now we are going to swallow it and check if worked. If you notice we are using "part_one" as argument. We do this because we must explicit what part of our .edc file we want to swallow:
if(obj == img)
printf("Swallowing worked!\n");
The example's window should look like this picture:
The complete .edc file:
collections {
group {
name: "example_group";
max: 500 500;
min: 50 50;
parts {
part {
name: "part_one";
type: SWALLOW;
description {
min: 50 50;
state: "default" 0.0;
rel1.relative: 0.0 0.0;
rel2.relative: 1.0 1.0;
}
}
}
}
}
And the source code:
#ifdef HAVE_CONFIG_H
# include "config.h"
#else
# define EINA_UNUSED
#endif
#ifndef PACKAGE_DATA_DIR
#define PACKAGE_DATA_DIR "."
#endif
#ifndef PACKAGE_SOURCE_DATA_DIR
#define PACKAGE_SOURCE_DATA_DIR "."
#endif
#include <Ecore.h>
#define WIDTH (300)
#define HEIGHT (300)
static void
{
}
int
{
const char *edje_file = PACKAGE_DATA_DIR"/swallow.edj";
const char *img_file = PACKAGE_SOURCE_DATA_DIR"/bubble.png";
Ecore_Evas *ee;
return EXIT_FAILURE;
goto shutdown_ecore_evas;
if (!ee) goto shutdown_edje;
{
fprintf(stderr, "could not load image '%s'. error string is \"%s\"\n",
goto shutdown_edje;
}
if(obj == img)
printf("Swallowing worked!\n");
return EXIT_SUCCESS;
shutdown_edje:
shutdown_ecore_evas:
return EXIT_FAILURE;
}
To compile use this command:
* gcc -o edje-swallow2 edje-swallow2.c -DPACKAGE_BIN_DIR=\"/Where/enlightenment/is/installed/bin\"
* -DPACKAGE_LIB_DIR=\"/Where/enlightenment/is/installed/lib\"
* -DPACKAGE_DATA_DIR=\"/Where/enlightenment/is/installed/share\"
* `pkg-config --cflags --libs evas ecore ecore-evas edje`
*
* edje_cc swallow.edc
*
EAPI Eina_Bool ecore_evas_object_associate(Ecore_Evas *ee, Evas_Object *obj, Ecore_Evas_Object_Associate_Flags flags)
Associates the given object to this ecore evas.
Definition: ecore_evas_util.c:223
int edje_init(void)
Initializes the Edje library.
Definition: edje_main.c:35
EAPI Ecore_Evas * ecore_evas_new(const char *engine_name, int x, int y, int w, int h, const char *extra_options)
Creates a new Ecore_Evas based on engine name and common parameters.
Definition: ecore_evas.c:1065
Evas_Load_Error evas_object_image_load_error_get(const Evas_Object *obj)
Retrieves a number representing any error that occurred during the last loading of the given image ob...
Definition: evas_image_legacy.c:400
Evas_Object * evas_object_image_filled_add(Evas *eo_e)
Creates a new image object that automatically scales its bound image to the object's area,...
Definition: evas_image_legacy.c:35
EAPI int ecore_evas_shutdown(void)
Shuts down the Ecore_Evas system.
Definition: ecore_evas.c:674
Eina_Bool edje_object_file_set(Evas_Object *obj, const char *file, const char *group)
Sets the EDJ file (and group within it) to load an Edje object's contents from.
Definition: edje_smart.c:467
void ecore_main_loop_quit(void)
Quits the main loop once all the events currently on the queue have been processed.
Definition: ecore_main.c:1308
#define EINA_UNUSED
Used to indicate that a function parameter is purposely unused.
Definition: eina_types.h:339
EAPI void ecore_evas_free(Ecore_Evas *ee)
Frees an Ecore_Evas.
Definition: ecore_evas.c:1109
EAPI void ecore_evas_title_set(Ecore_Evas *ee, const char *t)
Sets the title of an Ecore_Evas' window.
Definition: ecore_evas.c:1553
EAPI int ecore_evas_init(void)
Inits the Ecore_Evas system.
Definition: ecore_evas.c:606
const char * evas_load_error_str(Evas_Load_Error error)
Converts the given Evas image load error code into a string describing it in human-readable text.
Definition: evas_main.c:974
Efl_Canvas_Object Evas_Object
An Evas Object handle.
Definition: Evas_Common.h:185
EAPI void ecore_evas_callback_delete_request_set(Ecore_Evas *ee, Ecore_Evas_Event_Cb func)
Sets a callback for Ecore_Evas delete request events.
Definition: ecore_evas.c:1202
void evas_object_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h)
Changes the size of the given Evas object.
Definition: evas_object_main.c:1236
Edje Graphical Design Library.
EAPI Evas * ecore_evas_get(const Ecore_Evas *ee)
Gets an Ecore_Evas's Evas.
Definition: ecore_evas.c:1326
Evas_Object * edje_object_add(Evas *evas)
Instantiates a new Edje object.
Definition: edje_smart.c:22
void ecore_main_loop_begin(void)
Runs the application main loop.
Definition: ecore_main.c:1298
Evas_Load_Error
Possible outcomes of a load operation.
Definition: Evas_Loader.h:164
void evas_object_show(Evas_Object *eo_obj)
Makes the given Evas object visible.
Definition: evas_object_main.c:1814
@ EVAS_LOAD_ERROR_NONE
No error on load.
Definition: Evas_Loader.h:165
Eo Evas
An opaque handle to an Evas canvas.
Definition: Evas_Common.h:163
void evas_object_image_file_set(Evas_Object *obj, const char *file, const char *key)
Set the source file from where an image object must fetch the real image data (it may be an Eet file,...
Definition: evas_image_legacy.c:194
Evas_Object * evas_object_rectangle_add(Evas *e)
Adds a rectangle to the given evas.
Definition: evas_object_rectangle.c:78
void evas_object_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y)
Move the given Evas object to the given location inside its canvas' viewport.
Definition: evas_object_main.c:1171
Evas_Object * edje_object_part_swallow_get(const Evas_Object *obj, const char *part)
Gets the object currently swallowed by a part.
Definition: edje_util.c:6698
EAPI void ecore_evas_data_set(Ecore_Evas *ee, const char *key, const void *data)
Stores user data in an Ecore_Evas structure.
Definition: ecore_evas.c:1129
EAPI void ecore_evas_show(Ecore_Evas *ee)
Shows an Ecore_Evas' window.
Definition: ecore_evas.c:1506
Eina_Bool edje_object_part_swallow(Evas_Object *obj, const char *part, Evas_Object *obj_swallow)
"Swallows" an object into one of the Edje object SWALLOW parts.
Definition: edje_util.c:6675
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:2024
int edje_shutdown(void)
Shuts down the Edje library.
Definition: edje_main.c:264