forked from enlightenment/efl
parent
800d331e61
commit
2ac91736c2
|
@ -4,6 +4,7 @@
|
||||||
* Here is a page with examples.
|
* Here is a page with examples.
|
||||||
*
|
*
|
||||||
* @ref Example_Edje_Basics
|
* @ref Example_Edje_Basics
|
||||||
|
* @ref tutorial_edje_swallow
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -127,3 +128,26 @@
|
||||||
* @include edje-basic.c
|
* @include edje-basic.c
|
||||||
* @example edje-basic.c
|
* @example edje-basic.c
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @page tutorial_edje_swallow Swallow example
|
||||||
|
* @dontinclude edje-swallow.c
|
||||||
|
*
|
||||||
|
* This is a simple example in which we create a rect and swallow it.
|
||||||
|
*
|
||||||
|
* Focusing on the relevant parts of the code we go right to the creation of our
|
||||||
|
* rectangle. It should be noted that we don't resize or show our rect, that is
|
||||||
|
* because when an object is swallowed it's geometry and visibility is
|
||||||
|
* controlled by the theme:
|
||||||
|
* @skip 20
|
||||||
|
* @skipline evas_object_rectangle_add
|
||||||
|
* @until swallow
|
||||||
|
*
|
||||||
|
* The other bit of code that is relevant to us now is our check that the
|
||||||
|
* swallow worked:
|
||||||
|
* @until printf
|
||||||
|
*
|
||||||
|
* The full source code follows:
|
||||||
|
* @include edje-swallow.c
|
||||||
|
* @example edje-swallow.c
|
||||||
|
*/
|
|
@ -3,7 +3,8 @@ MAINTAINERCLEANFILES = Makefile.in
|
||||||
pkglibdir = $(datadir)/$(PACKAGE)/examples
|
pkglibdir = $(datadir)/$(PACKAGE)/examples
|
||||||
|
|
||||||
#put here all EDCs one needs to the examples
|
#put here all EDCs one needs to the examples
|
||||||
EDCS = basic.edc
|
EDCS = basic.edc \
|
||||||
|
swallow.edc
|
||||||
|
|
||||||
filesdir = $(datadir)/$(PACKAGE)/examples
|
filesdir = $(datadir)/$(PACKAGE)/examples
|
||||||
files_DATA =
|
files_DATA =
|
||||||
|
@ -24,12 +25,11 @@ pkglib_PROGRAMS =
|
||||||
#the ones using ecore_evas follow
|
#the ones using ecore_evas follow
|
||||||
AM_CPPFLAGS += @ECORE_EVAS_CFLAGS@
|
AM_CPPFLAGS += @ECORE_EVAS_CFLAGS@
|
||||||
|
|
||||||
pkglib_PROGRAMS += edje_basic
|
pkglib_PROGRAMS += \
|
||||||
edje_basic_DEPS = $(srcdir)/basic.edc
|
edje-basic \
|
||||||
edje_basic_SOURCES = edje-basic.c
|
edje-swallow
|
||||||
edje_basic_LDADD = $(top_builddir)/src/lib/libedje.la @ECORE_EVAS_LIBS@
|
|
||||||
|
|
||||||
basic.edj: ${edje_basic_DEPS}
|
LDADD = $(top_builddir)/src/lib/libedje.la @ECORE_EVAS_LIBS@
|
||||||
|
|
||||||
.edc.edj:
|
.edc.edj:
|
||||||
$(edje_cc) -v -id $(srcdir) $< $(builddir)/$(@F)
|
$(edje_cc) -v -id $(srcdir) $< $(builddir)/$(@F)
|
||||||
|
@ -47,8 +47,10 @@ files_DATA += $(srcdir)/red.png
|
||||||
|
|
||||||
files_DATA += \
|
files_DATA += \
|
||||||
$(EDCS) \
|
$(EDCS) \
|
||||||
$(srcdir)/edje-basic.c
|
$(srcdir)/edje-basic.c \
|
||||||
|
$(srcdir)/edje-swallow.c
|
||||||
endif
|
endif
|
||||||
|
|
||||||
EXTRA_DIST = $(EDCS) \
|
EXTRA_DIST = $(EDCS) \
|
||||||
$(srcdir)/edje-basic.c
|
$(srcdir)/edje-basic.c \
|
||||||
|
$(srcdir)/edje-swallow.c
|
|
@ -0,0 +1,95 @@
|
||||||
|
/**
|
||||||
|
* Simple Edje example illustrating swallow functions.
|
||||||
|
*
|
||||||
|
* You'll need at least one Evas engine built for it (excluding the
|
||||||
|
* buffer one). See stdout/stderr for output.
|
||||||
|
*
|
||||||
|
* @verbatim
|
||||||
|
* edje_cc swallow.edc && gcc -o edje-swallow edje-swallow.c `pkg-config --libs --cflags evas ecore ecore-evas edje`
|
||||||
|
* @endverbatim
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include "config.h"
|
||||||
|
#else
|
||||||
|
#define PACKAGE_EXAMPLES_DIR "."
|
||||||
|
#define __UNUSED__
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <Ecore.h>
|
||||||
|
#include <Ecore_Evas.h>
|
||||||
|
#include <Edje.h>
|
||||||
|
|
||||||
|
#define WIDTH (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
|
||||||
|
_on_destroy(Ecore_Evas *ee __UNUSED__)
|
||||||
|
{
|
||||||
|
ecore_main_loop_quit();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* here just to keep our example's window size and background image's
|
||||||
|
* size in synchrony */
|
||||||
|
static void
|
||||||
|
_canvas_resize_cb(Ecore_Evas *ee)
|
||||||
|
{
|
||||||
|
int w, h;
|
||||||
|
|
||||||
|
ecore_evas_geometry_get(ee, NULL, NULL, &w, &h);
|
||||||
|
evas_object_resize(bg, w, h);
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
main(void)
|
||||||
|
{
|
||||||
|
Evas_Object *edje_obj, *rect, *obj;
|
||||||
|
Evas *evas;
|
||||||
|
|
||||||
|
ecore_evas_init();
|
||||||
|
edje_init();
|
||||||
|
|
||||||
|
/* this will give you a window with an Evas canvas under the first
|
||||||
|
* engine available */
|
||||||
|
ee = ecore_evas_new(NULL, 0, 0, WIDTH, HEIGHT, NULL);
|
||||||
|
|
||||||
|
ecore_evas_callback_destroy_set(ee, _on_destroy);
|
||||||
|
ecore_evas_callback_resize_set(ee, _canvas_resize_cb);
|
||||||
|
ecore_evas_title_set(ee, "Edje Swallow Example");
|
||||||
|
ecore_evas_show(ee);
|
||||||
|
|
||||||
|
evas = ecore_evas_get(ee);
|
||||||
|
|
||||||
|
bg = evas_object_rectangle_add(evas);
|
||||||
|
evas_object_color_set(bg, 255, 255, 255, 255); /* white bg */
|
||||||
|
evas_object_move(bg, 0, 0); /* at canvas' origin */
|
||||||
|
evas_object_resize(bg, WIDTH, HEIGHT); /* covers full canvas */
|
||||||
|
evas_object_show(bg);
|
||||||
|
|
||||||
|
edje_obj = edje_object_add(evas);
|
||||||
|
|
||||||
|
edje_object_file_set(edje_obj, edje_file_path, "example_group");
|
||||||
|
evas_object_move(edje_obj, 20, 20);
|
||||||
|
evas_object_resize(edje_obj, WIDTH - 40, HEIGHT - 40);
|
||||||
|
evas_object_show(edje_obj);
|
||||||
|
|
||||||
|
rect = evas_object_rectangle_add(evas);
|
||||||
|
evas_object_color_set(rect, 255, 0, 0, 255);
|
||||||
|
edje_object_part_swallow(edje_obj, "part_one", rect);
|
||||||
|
|
||||||
|
obj = edje_object_part_swallow_get(edje_obj, "part_one");
|
||||||
|
if(obj == rect)
|
||||||
|
printf("Swallowing worked!\n");
|
||||||
|
|
||||||
|
ecore_main_loop_begin();
|
||||||
|
|
||||||
|
ecore_evas_free(ee);
|
||||||
|
ecore_evas_shutdown();
|
||||||
|
edje_shutdown();
|
||||||
|
return 0;
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -447,6 +447,7 @@ What follows is a list with varios commented examples, covering a great
|
||||||
part of Edje's API:
|
part of Edje's API:
|
||||||
|
|
||||||
- @ref Example_Edje_Basics
|
- @ref Example_Edje_Basics
|
||||||
|
- @ref tutorial_edje_swallow
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -2775,7 +2776,6 @@ EAPI void *edje_object_text_insert_filter_callback_del (Evas_Ob
|
||||||
*/
|
*/
|
||||||
EAPI void *edje_object_text_insert_filter_callback_del_full (Evas_Object *obj, const char *part, Edje_Text_Filter_Cb func, void *data);
|
EAPI void *edje_object_text_insert_filter_callback_del_full (Evas_Object *obj, const char *part, Edje_Text_Filter_Cb func, void *data);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Swallows an object into the edje.
|
* @brief Swallows an object into the edje.
|
||||||
*
|
*
|
||||||
|
@ -2798,7 +2798,9 @@ EAPI Eina_Bool edje_object_part_swallow (Evas_Object *obj, const c
|
||||||
* @param obj A valid Evas_Object handle
|
* @param obj A valid Evas_Object handle
|
||||||
* @param obj_swallow The swallowed object
|
* @param obj_swallow The swallowed object
|
||||||
*
|
*
|
||||||
* Causes the edje to regurgitate a previously swallowed object. :)
|
* Causes the edje to regurgitate a previously swallowed object. :)
|
||||||
|
*
|
||||||
|
* @note @p obj_swallow will be deleted.
|
||||||
*/
|
*/
|
||||||
EAPI void edje_object_part_unswallow (Evas_Object *obj, Evas_Object *obj_swallow);
|
EAPI void edje_object_part_unswallow (Evas_Object *obj, Evas_Object *obj_swallow);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue