Merge branch 'master' into devs/hermet/lottie

This commit is contained in:
Hermet Park 2019-10-07 15:56:56 +09:00
commit 7b3036a992
133 changed files with 1925 additions and 617 deletions

View File

@ -25,7 +25,7 @@ if [ "$DISTRO" != "" ] ; then
DISABLED_LINUX_COPTS=" -Daudio=false -Davahi=false -Dx11=false -Dphysics=false -Deeze=false \ DISABLED_LINUX_COPTS=" -Daudio=false -Davahi=false -Dx11=false -Dphysics=false -Deeze=false \
-Dopengl=none -Deina-magic-debug=false -Dbuild-examples=false -Dbuild-tests=false \ -Dopengl=none -Deina-magic-debug=false -Dbuild-examples=false -Dbuild-tests=false \
-Dcrypto=gnutls -Dglib=false -Dgstreamer=false -Dsystemd=false -Dpulseaudio=false \ -Dcrypto=gnutls -Dglib=false -Dgstreamer=false -Dsystemd=false -Dpulseaudio=false \
-Dnetwork-backend=connman -Dxinput2=false -Dtslib=false -Devas-modules=static \ -Dnetwork-backend=connman -Dxinput2=false -Dtslib=false \
-Devas-loaders-disabler=gst,pdf,ps,raw,svg,xcf,bmp,dds,eet,generic,gif,ico,jp2k,json,pmaps,psd,tga,tgv,tiff,wbmp,webp,xpm \ -Devas-loaders-disabler=gst,pdf,ps,raw,svg,xcf,bmp,dds,eet,generic,gif,ico,jp2k,json,pmaps,psd,tga,tgv,tiff,wbmp,webp,xpm \
-Decore-imf-loaders-disabler=xim,ibus,scim -Demotion-loaders-disabler=gstreamer,gstreamer1,libvlc,xine \ -Decore-imf-loaders-disabler=xim,ibus,scim -Demotion-loaders-disabler=gstreamer,gstreamer1,libvlc,xine \
-Demotion-generic-loaders-disabler=vlc -Dfribidi=false -Dfontconfig=false \ -Demotion-generic-loaders-disabler=vlc -Dfribidi=false -Dfontconfig=false \
@ -37,7 +37,7 @@ if [ "$DISTRO" != "" ] ; then
MINGW_COPTS="--cross-file .ci/cross_toolchain.txt -Davahi=false -Deeze=false -Dsystemd=false \ MINGW_COPTS="--cross-file .ci/cross_toolchain.txt -Davahi=false -Deeze=false -Dsystemd=false \
-Dpulseaudio=false -Dx11=false -Dopengl=none -Dlibmount=false \ -Dpulseaudio=false -Dx11=false -Dopengl=none -Dlibmount=false \
-Devas-loaders-disabler=json,pdf,ps,raw,svg,rsvg -Devas-modules=static -Dbindings=luajit \ -Devas-loaders-disabler=json,pdf,ps,raw,svg,rsvg -Dbindings=luajit \
-Dharfbuzz=true -Dpixman=true -Dembedded-lz4=false " -Dharfbuzz=true -Dpixman=true -Dembedded-lz4=false "
if [ "$1" = "options-enabled" ]; then if [ "$1" = "options-enabled" ]; then

View File

@ -0,0 +1 @@
{"v":"5.5.9","fr":29.9700012207031,"ip":0,"op":130.000005295009,"w":1920,"h":1080,"nm":"Comp 1","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"layer","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[960,540,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[300,300],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":-261,"s":[1,0,0,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[1,0,0,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":16,"s":[0,1,0,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":57,"s":[0,0,1,1]},{"t":119.000004846969,"s":[1,0,0,1]}],"ix":4},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":-400,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":37,"s":[10]},{"t":108.00000439893,"s":[100]}],"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-600,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"box1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[300,300],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":3,"s":[1,1,1,1]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":45,"s":[1,0.917647123337,0,1]},{"t":96.0000039101602,"s":[1,1,1,1]}],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":1,"s":[2]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":46,"s":[69]},{"t":102.000004154545,"s":[2]}],"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"box2","np":3,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[300,300],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[600,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"box3","np":3,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":-6.00000024438501,"op":894.000036413367,"st":-6.00000024438501,"bm":0}],"markers":[]}

View File

@ -133,7 +133,7 @@ foreach widget_preview : widget_previews
dependencies: elementary, dependencies: elementary,
build_by_default: false, build_by_default: false,
c_args : [ c_args : [
'-DPACKAGE_DATA_DIR="'+meson.current_build_dir()+'"', '-DPACKAGE_DATA_DIR="'+join_paths(meson.source_root(), 'data', 'elementary')+'"',
'-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"', '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
'-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"', '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"',
'-DDOCW_DIR="'+meson.current_build_dir()+'"'] '-DDOCW_DIR="'+meson.current_build_dir()+'"']
@ -182,8 +182,8 @@ doc_target += custom_target('doxygen',
) )
compress_target = custom_target('package_doc_tar', compress_target = custom_target('package_doc_tar',
command: [tar, '-C', meson.build_root(), '-cf', 'efl-'+meson.project_version()+'.tar', 'html', 'man'], command: [tar, '-C', meson.build_root(), '--xz', '-cf', 'efl-'+meson.project_version()+'-doc.tar.xz', 'html', 'man'],
output: 'efl-'+meson.project_version()+'.tar', output: 'efl-'+meson.project_version()+'-doc.tar.xz',
depends: doc_target, depends: doc_target,
build_by_default: false build_by_default: false
) )

View File

@ -8,6 +8,7 @@ evas_object_show(bx);
Evas_Object *o = elm_colorselector_add(win); Evas_Object *o = elm_colorselector_add(win);
evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);; evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);;
elm_colorselector_palette_item_selected_set(eina_list_data_get(elm_colorselector_palette_items_get(o)), EINA_TRUE);
elm_box_pack_end(bx, o); elm_box_pack_end(bx, o);
evas_object_show(o); evas_object_show(o);

View File

@ -1,5 +1,5 @@
/** /**
* @page elementary_main * @page elementary_main Elementary
* @image html elementary.png * @image html elementary.png
* @version @VMAJ@.@VMIN@.@VMIC@ * @version @VMAJ@.@VMIN@.@VMIC@
* @date 2008-2014 * @date 2008-2014

View File

@ -247,26 +247,14 @@ endif
ecore_evas_wayland_engine_include_dir = [] ecore_evas_wayland_engine_include_dir = []
evas_static_list = []
evas_lib = ['evas' ,[], false, true, false, false, true, true, ['eina', 'efl', 'eo'], ['vg_common', 'libunibreak']] evas_lib = ['evas' ,[], false, true, false, false, true, true, ['eina', 'efl', 'eo'], ['vg_common', 'libunibreak']]
evas_img_modules = ['evas' ,[], true, false, false, false, false, false, ['eina', 'efl', 'eo'], ['vg_common', 'libunibreak']] evas_img_modules = ['evas' ,[], true, false, false, false, false, false, ['eina', 'efl', 'eo'], ['vg_common', 'libunibreak']]
evas_engines = [join_paths('evas', 'engines'),[], true, false, false, false, false, false, [], []] evas_engines = [join_paths('evas', 'engines'),[], true, false, false, false, false, false, [], []]
evas_goal = ['evas_goal' ,[], false, true, false, false, false, false, ['eina', 'efl', 'eo'], []] evas_goal = ['evas_goal' ,[], false, true, false, false, false, false, ['eina', 'efl', 'eo'], []]
if get_option('evas-modules') == 'static' evas_settings = [ evas_lib, evas_img_modules, evas_goal, evas_engines ]
evas_settings = [
evas_lib,
evas_img_modules,
evas_engines,
evas_goal,
]
else
evas_settings = [
evas_lib,
evas_img_modules,
evas_goal,
evas_engines,
]
endif
subprojects = [ subprojects = [
# name | option | mod | lib | bin | bench | tests | examples | pkg-config options | name of static libs # name | option | mod | lib | bin | bench | tests | examples | pkg-config options | name of static libs

View File

@ -192,13 +192,6 @@ option('unmount-path',
description : 'Path to the unmount binary, if "detect" internal eeze bins are used' description : 'Path to the unmount binary, if "detect" internal eeze bins are used'
) )
option('evas-modules',
type : 'combo',
choices : ['shared', 'static'],
value : 'shared',
description : 'Should modules be shared or statically inlined'
)
option('evas-loaders-disabler', option('evas-loaders-disabler',
type : 'array', type : 'array',
description : 'List of modular image loaders to disable in efl', description : 'List of modular image loaders to disable in efl',

View File

@ -161,6 +161,7 @@ elementary_test_src = [
'test_ui_items.c', 'test_ui_items.c',
'test_ui_frame.c', 'test_ui_frame.c',
'test_efl_ui_animation_view.c', 'test_efl_ui_animation_view.c',
'test_efl_gfx_vg_value_provider.c',
'test.h' 'test.h'
] ]

View File

@ -406,6 +406,7 @@ void test_efl_ui_item(void *data, Evas_Object *obj, void *event_info);
void test_ui_frame(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED); void test_ui_frame(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED);
void test_efl_ui_animation_view(void *data, Evas_Object *obj, void *event_info); void test_efl_ui_animation_view(void *data, Evas_Object *obj, void *event_info);
void test_efl_gfx_vg_value_provider(void *data, Evas_Object *obj, void *event_info);
static void _list_udpate(void); static void _list_udpate(void);
@ -1301,6 +1302,7 @@ add_tests:
//------------------------------// //------------------------------//
ADD_TEST_EO(NULL, "Vector Animation", "Animation View", test_efl_ui_animation_view); ADD_TEST_EO(NULL, "Vector Animation", "Animation View", test_efl_ui_animation_view);
ADD_TEST_EO(NULL, "Vector Animation", "Value Provider", test_efl_gfx_vg_value_provider);
#undef ADD_TEST #undef ADD_TEST

View File

@ -0,0 +1,605 @@
#ifdef HAVE_CONFIG_H
# include "elementary_config.h"
#endif
#include <Elementary.h>
#include <Efl_Ui.h>
#include "elm_priv.h"
#ifndef EFL_BETA_API_SUPPORT
#define EFL_BETA_API_SUPPORT
#endif
#ifndef EFL_EO_API_SUPPORT
#define EFL_EO_API_SUPPORT
#endif
#ifdef BUILD_VG_LOADER_JSON
Evas_Object *values[4], *anim_view;
Evas_Object *path_entry, *type_hoversel;
Eina_Bool
add_value_provider(char* new_path, char* new_type, char* new_values)
{
const char* type = elm_object_text_get(type_hoversel);
if (!type) return EINA_FALSE;
const char* path = efl_text_get(path_entry);
if (!path) return EINA_FALSE;
if (strstr(type, "Color") != NULL)
{
int color[4];
Eo *vp = efl_add(EFL_GFX_VG_VALUE_PROVIDER_CLASS, anim_view);
efl_gfx_vg_value_provider_keypath_set(vp, (char*)path);
for (int i = 0; i < 4; i++)
{
char* v = (char*)efl_text_get(values[i]);
if (v) color[i] = atoi(v);
}
sprintf(new_path, "%s", path);
sprintf(new_values, "%d %d %d %d",color[0], color[1], color[2], color[3]);
if (!strcmp(type, "FillColor"))
{
efl_gfx_vg_value_provider_fill_color_set(vp, color[0], color[1], color[2], color[3]);
sprintf(new_type, "FillColor");
}
if (!strcmp(type, "StrokeColor"))
{
efl_gfx_vg_value_provider_stroke_color_set(vp, color[0], color[1], color[2], color[3]);
sprintf(new_type, "StrokeColor");
}
efl_ui_animation_view_value_provider_override(anim_view, vp);
}
if (!strcmp(type, "StrokeWidth"))
{
double width;
Eo *vp = efl_add(EFL_GFX_VG_VALUE_PROVIDER_CLASS, anim_view);
efl_gfx_vg_value_provider_keypath_set(vp, (char*)path);
char* v = (char*)efl_text_get(values[0]);
if (v) width = strtod(v, NULL);
efl_gfx_vg_value_provider_stroke_width_set(vp, width);
efl_ui_animation_view_value_provider_override(anim_view, vp);
evas_object_show(anim_view);
sprintf(new_path, "%s", path);
sprintf(new_type, "StrokeWidth");
sprintf(new_values, "%f", width);
}
return EINA_TRUE;
}
static void
btn_clicked_cb(void *data , const Efl_Event *ev )
{
const char *text = efl_text_get(ev->object);
if (!text) return;
if (!strcmp("Play", text))
efl_ui_animation_view_play((Evas_Object*)data);
else if (!strcmp("Pause", text))
efl_ui_animation_view_pause((Evas_Object*)data);
else if (!strcmp("Resume", text))
efl_ui_animation_view_resume((Evas_Object*)data);
else if (!strcmp("Play Back", text))
efl_ui_animation_view_play_back((Evas_Object*)data);
else if (!strcmp("Stop", text))
efl_ui_animation_view_stop((Evas_Object*)data);
else if (!strcmp("ADD", text))
{
Evas_Object *list = (Evas_Object*)data;
Elm_Object_Item *list_it;
char new_path[255], new_type[255], new_values[255];
if (add_value_provider(new_path, new_type, new_values))
{
char buf[255];
//TODO: Even if there is the same path as the existing item, it is added without updating.
// In efl_ui_animation_view, duplicate paths are managed.
// However, animator (lottie) does not have an implementation that manages overridden values.
/*Eina_List *items = (Eina_List*)elm_list_items_get(list);
Eina_List *l;
EINA_LIST_FOREACH(items, l, list_it)
{
char item_text[255];
strcpy(item_text, elm_object_item_text_get(list_it));
if (item_text[0] != '/')
{
char* path = strtok(item_text, "/");
char* type = strtok(NULL, "/");
if (!strcmp(new_path, path) && !strcmp(new_type, type))
{
elm_object_item_del(list_it);
break;
}
}
}*/
sprintf(buf, "%s/%s/%s", new_path, new_type, new_values);
list_it = elm_list_item_append(list, buf, NULL, NULL, NULL, NULL);
elm_list_item_bring_in(list_it);
elm_list_go(list);
}
}
else if (!strcmp("DEL", text))
{
Evas_Object *list = (Evas_Object*)data;
Elm_Object_Item *list_it = elm_list_selected_item_get(list);
if (list_it)
{
char item_text[255];
strcpy(item_text, elm_object_item_text_get(list_it));
if (item_text[0] != '/')
{
/* Need to work */
}
//TODO
printf("Value provider remove is not implemented yet\n");
/*elm_object_item_del(list_it);
elm_list_go(list);*/
}
}
}
static void
check_changed_cb(void *data, const Efl_Event *event)
{
Evas_Object *anim_view = data;
efl_ui_animation_view_auto_repeat_set(anim_view, efl_ui_selectable_selected_get(event->object));
}
static void
speed_changed_cb(void *data, const Efl_Event *event)
{
Evas_Object *anim_view = data;
double speed = 1;
if (efl_ui_selectable_selected_get(event->object)) speed = 0.25;
efl_ui_animation_view_speed_set(anim_view, speed);
}
static void
limit_frame_cb(void *data, const Efl_Event *event)
{
Evas_Object *anim_view = data;
int frame_count = efl_ui_animation_view_frame_count_get(anim_view);
printf("Total Frame Count : %d\n", frame_count);
if (efl_ui_selectable_selected_get(event->object))
{
efl_ui_animation_view_min_frame_set(anim_view, 5);
efl_ui_animation_view_max_frame_set(anim_view, 10);
printf("Frames to show 5-10 only\n");
}
else
{
efl_ui_animation_view_min_frame_set(anim_view, 0);
efl_ui_animation_view_max_frame_set(anim_view, frame_count);
printf("Showing all frames now\n");
}
}
static void
update_anim_view_state(Evas_Object *anim_view, Evas_Object *label)
{
Efl_Ui_Animation_View_State state = efl_ui_animation_view_state_get(anim_view);
switch (state)
{
case EFL_UI_ANIMATION_VIEW_STATE_NOT_READY:
efl_text_set(label, "State = Not Ready");
break;
case EFL_UI_ANIMATION_VIEW_STATE_PLAY:
efl_text_set(label, "State = Playing");
break;
case EFL_UI_ANIMATION_VIEW_STATE_PLAY_BACK:
efl_text_set(label, "State = Playing Back");
break;
case EFL_UI_ANIMATION_VIEW_STATE_PAUSE:
efl_text_set(label, "State = Paused");
break;
case EFL_UI_ANIMATION_VIEW_STATE_STOP:
efl_text_set(label, "State = Stopped");
break;
}
}
static void
_play_updated(void *data, Evas_Object *obj, void *ev EINA_UNUSED)
{
Evas_Object *slider = data;
efl_ui_range_value_set(slider, efl_ui_animation_view_progress_get(obj));
}
static void
_state_update(void *data, Evas_Object *obj, void *ev EINA_UNUSED)
{
Evas_Object *label = data;
update_anim_view_state(obj, label);
}
static void
_play_done(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *ev EINA_UNUSED)
{
printf("done!\n");
}
static void
_play_repeated(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *ev EINA_UNUSED)
{
printf("repeated!\n");
}
static void
_slider_changed_cb(void *data, const Efl_Event *ev)
{
Evas_Object *anim_view = data;
efl_ui_animation_view_progress_set(anim_view, efl_ui_range_value_get(ev->object));
}
static void
_slider_reset(void *data, Evas_Object *obj EINA_UNUSED, void *ev EINA_UNUSED)
{
Evas_Object *slider = data;
efl_ui_range_value_set(slider, 0);
}
void values_input(Eo* box, const char* type)
{
for (int i = 0; i < 4; i++)
{
if (values[i])
{
//efl_pack_unpack(box, values[i]);
efl_del(values[i]);
values[i] = NULL;
}
}
if (strstr(type, "Color") != NULL)
{
char color_text[4][2] = { "R", "G", "B", "A" };
for (int i = 0; i < 4; i++)
{
values[i] = efl_add(EFL_UI_TEXT_CLASS, box,
efl_gfx_hint_weight_set(efl_added, EFL_GFX_HINT_EXPAND, 0),
efl_gfx_hint_fill_set(efl_added, EINA_FALSE, EINA_FALSE),
efl_gfx_hint_align_set(efl_added, EVAS_HINT_FILL, EVAS_HINT_FILL),
efl_text_interactive_editable_set(efl_added, EINA_TRUE),
efl_pack(box, efl_added));
efl_gfx_hint_size_min_set(values[i], EINA_SIZE2D(50, 10));
efl_text_set(efl_part(values[i], "efl.text_guide"), color_text[i]);
}
}
else if (!strcmp(type, "StrokeWidth"))
{
values[0] = efl_add(EFL_UI_TEXT_CLASS, box,
efl_gfx_hint_weight_set(efl_added, EFL_GFX_HINT_EXPAND, 0),
efl_gfx_hint_fill_set(efl_added, EINA_FALSE, EINA_FALSE),
efl_gfx_hint_align_set(efl_added, EVAS_HINT_FILL, EVAS_HINT_FILL),
efl_text_interactive_editable_set(efl_added, EINA_TRUE),
efl_pack(box, efl_added));
efl_gfx_hint_size_min_set(values[0], EINA_SIZE2D(50, 10));
efl_text_set(efl_part(values[0], "efl.text_guide"), "Width(double type)");
}
}
static void
_hover_item_selected_cb(void *data, Evas_Object *obj, void *event_info)
{
Evas_Object* box = (Evas_Object*)data;
const char *selected = elm_object_item_text_get(event_info);
elm_object_text_set(obj, selected);
values_input(box, selected);
}
void
test_efl_gfx_vg_value_provider(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
Eo *win, *box, *box_sub, *label, *check, *slider, *list;
char buf[255];
// This line must to need.
setenv("ELM_ACCEL", "gl", 1);
win = efl_add_ref(EFL_UI_WIN_CLASS, NULL,
efl_ui_win_type_set(efl_added, EFL_UI_WIN_TYPE_BASIC),
efl_text_set(efl_added, "Efl_Ui_Animation_View demo"),
efl_ui_win_autodel_set(efl_added, EINA_TRUE));
// Create a box in Canvas
box = efl_add(EFL_UI_BOX_CLASS, win,
efl_gfx_hint_weight_set(efl_added, EFL_GFX_HINT_EXPAND, EFL_GFX_HINT_EXPAND),
efl_content_set(win, efl_added));
//Create a label to show state of animation
label = efl_add(EFL_UI_TEXT_CLASS, win,
efl_gfx_hint_weight_set(efl_added, EFL_GFX_HINT_EXPAND, 0.1),
efl_gfx_hint_fill_set(efl_added, EINA_FALSE, EINA_FALSE),
efl_pack(box, efl_added));
//Create Animation View to play animation directly from JSON file
snprintf(buf, sizeof(buf), "%s/images/three_box.json", elm_app_data_dir_get());
anim_view = efl_add(EFL_UI_ANIMATION_VIEW_CLASS, win,
efl_gfx_hint_weight_set(efl_added, EFL_GFX_HINT_EXPAND, EFL_GFX_HINT_EXPAND),
efl_gfx_hint_align_set(efl_added, EVAS_HINT_FILL, EVAS_HINT_FILL),
efl_gfx_entity_size_set(efl_added, EINA_SIZE2D(600, 600)),
efl_file_set(efl_added, buf),
efl_pack(box, efl_added));
//-----------------------------------------------------------------------------------
box_sub = efl_add(EFL_UI_BOX_CLASS, box,
efl_gfx_hint_weight_set(efl_added, EFL_GFX_HINT_EXPAND, 0.1),
efl_pack(box, efl_added));
//Path
efl_add(EFL_UI_TEXT_CLASS, box_sub,
efl_gfx_hint_weight_set(efl_added, EFL_GFX_HINT_EXPAND, 0),
efl_gfx_hint_fill_set(efl_added, EINA_TRUE, EINA_FALSE),
efl_text_set(efl_added, "Path examples : three_box.json\n"
"**\n"
"layer.*.Fill 1\n"
"layer.box1.*\n"
"layer.box1.Fill 1\n"
"layer.box1.Stroke 1\n"
"layer.box_sub.Fill 1\n"
"layer.box_sub.Stroke 1\n"
"layer.box_sub.Fill 1\n"
"layer.box_sub.Stroke 1\n"),
efl_text_interactive_editable_set(efl_added, EINA_FALSE),
efl_text_multiline_set(efl_added, EINA_TRUE),
efl_pack(box_sub, efl_added));
efl_add(EFL_UI_TEXT_CLASS, box_sub,
efl_gfx_hint_weight_set(efl_added, 0, 0),
efl_gfx_hint_fill_set(efl_added, EINA_TRUE, EINA_FALSE),
efl_text_set(efl_added, "[Value Provider]"),
efl_text_interactive_editable_set(efl_added, EINA_FALSE),
efl_text_multiline_set(efl_added, EINA_TRUE),
efl_pack(box_sub, efl_added));
//-----------------------------------------------------------------------------------
// Controller Set : 0
box_sub = efl_add(EFL_UI_BOX_CLASS, box,
efl_gfx_hint_weight_set(efl_added, EFL_GFX_HINT_EXPAND, 0.1),
efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL),
efl_pack(box, efl_added));
//Path
efl_add(EFL_UI_TEXT_CLASS, box_sub,
efl_gfx_hint_weight_set(efl_added, 0, 0),
efl_gfx_hint_fill_set(efl_added, EINA_FALSE, EINA_FALSE),
efl_gfx_hint_align_set(efl_added, EVAS_HINT_FILL, EVAS_HINT_FILL),
efl_text_set(efl_added, "PATH : "),
efl_text_interactive_editable_set(efl_added, EINA_FALSE),
efl_pack(box_sub, efl_added));
path_entry = efl_add(EFL_UI_TEXT_CLASS, box_sub,
efl_gfx_hint_weight_set(efl_added, 0.1, 0),
efl_gfx_hint_fill_set(efl_added, EINA_FALSE, EINA_FALSE),
efl_gfx_hint_align_set(efl_added, EVAS_HINT_FILL, EVAS_HINT_FILL),
efl_text_interactive_editable_set(efl_added, EINA_TRUE),
efl_pack(box_sub, efl_added));
efl_gfx_hint_size_min_set(path_entry, EINA_SIZE2D(200, 10));
efl_text_set(efl_part(path_entry, "efl.text_guide"), "Enter path(ex: ** or Layer.Shape.Fill) ");
efl_add(EFL_UI_TEXT_CLASS, box_sub,
efl_gfx_hint_weight_set(efl_added, 0, 0),
efl_gfx_hint_fill_set(efl_added, EINA_FALSE, EINA_FALSE),
efl_gfx_hint_align_set(efl_added, EVAS_HINT_FILL, EVAS_HINT_FILL),
efl_text_set(efl_added, "TYPE : "),
efl_text_interactive_editable_set(efl_added, EINA_FALSE),
efl_pack(box_sub, efl_added));
type_hoversel = elm_hoversel_add(box_sub);
elm_hoversel_hover_parent_set(type_hoversel, win);
evas_object_size_hint_weight_set(type_hoversel, 0, 0);
evas_object_size_hint_align_set(type_hoversel, EVAS_HINT_FILL, EVAS_HINT_FILL);
efl_gfx_hint_size_min_set(type_hoversel, EINA_SIZE2D(100, 10)),
elm_object_text_set(type_hoversel, "FillColor");
elm_hoversel_item_add(type_hoversel, "FillColor", NULL, ELM_ICON_NONE, _hover_item_selected_cb, box_sub);
elm_hoversel_item_add(type_hoversel, "StrokeColor", NULL, ELM_ICON_NONE, _hover_item_selected_cb, box_sub);
elm_hoversel_item_add(type_hoversel, "StrokeWidth", NULL, ELM_ICON_NONE, _hover_item_selected_cb, box_sub);
evas_object_show(type_hoversel);
elm_object_focus_set(type_hoversel, EINA_TRUE);
efl_pack(box_sub, type_hoversel);
efl_add(EFL_UI_TEXT_CLASS, box_sub,
efl_gfx_hint_weight_set(efl_added, 0, 0),
efl_gfx_hint_fill_set(efl_added, EINA_FALSE, EINA_FALSE),
efl_gfx_hint_align_set(efl_added, EVAS_HINT_FILL, EVAS_HINT_FILL),
efl_text_set(efl_added, "VALUES : "),
efl_text_interactive_editable_set(efl_added, EINA_FALSE),
efl_pack(box_sub, efl_added));
values_input(box_sub, elm_object_text_get(type_hoversel));
//-----------------------------------------------------------------------------------
// Controller Set : 0
box_sub = efl_add(EFL_UI_BOX_CLASS, box,
efl_gfx_hint_weight_set(efl_added, EFL_GFX_HINT_EXPAND, 0.1),
efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL),
efl_pack(box, efl_added));
list = elm_list_add(win);
evas_object_size_hint_weight_set(list, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(list, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_show(list);
efl_pack(box_sub, list);
elm_object_item_disabled_set(elm_list_item_append(list, "Example : ** / FillColor / 255, 255, 255, 255", NULL, NULL, NULL, NULL), EINA_TRUE);
efl_gfx_hint_size_min_set(list, EINA_SIZE2D(400, 100)),
elm_list_go(list);
efl_add(EFL_UI_BUTTON_CLASS, box_sub,
efl_gfx_hint_weight_set(efl_added, 0, 0),
efl_gfx_hint_align_set(efl_added, EVAS_HINT_FILL, EVAS_HINT_FILL),
efl_text_set(efl_added, "ADD"),
efl_pack(box_sub, efl_added),
efl_gfx_hint_size_min_set(efl_added, EINA_SIZE2D(50, 20)),
efl_event_callback_add(efl_added, EFL_INPUT_EVENT_CLICKED, btn_clicked_cb, list));
efl_add(EFL_UI_BUTTON_CLASS, box_sub,
efl_gfx_hint_weight_set(efl_added, 0, 0),
efl_gfx_hint_align_set(efl_added, EVAS_HINT_FILL, EVAS_HINT_FILL),
efl_text_set(efl_added, "DEL"),
efl_pack(box_sub, efl_added),
efl_gfx_hint_size_min_set(efl_added, EINA_SIZE2D(50, 20)),
efl_event_callback_add(efl_added, EFL_INPUT_EVENT_CLICKED, btn_clicked_cb, list));
//-----------------------------------------------------------------------------------
// Controller Set : 0
box_sub = efl_add(EFL_UI_BOX_CLASS, box,
efl_gfx_hint_weight_set(efl_added, EFL_GFX_HINT_EXPAND, 0.1),
efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL),
efl_pack(box, efl_added));
//Loop
check = efl_add(EFL_UI_CHECK_CLASS, box_sub,
efl_gfx_hint_weight_set(efl_added, EFL_GFX_HINT_EXPAND, 0),
efl_gfx_hint_fill_set(efl_added, EINA_FALSE, EINA_FALSE),
efl_gfx_hint_align_set(efl_added, EVAS_HINT_FILL, EVAS_HINT_FILL),
efl_pack(box_sub, efl_added));
efl_text_set(check, "Loop");
efl_event_callback_add(check, EFL_UI_EVENT_SELECTED_CHANGED, check_changed_cb, anim_view);
//Speed: 0.5x
check = efl_add(EFL_UI_CHECK_CLASS, box_sub,
efl_gfx_hint_weight_set(efl_added, EFL_GFX_HINT_EXPAND, 0),
efl_gfx_hint_fill_set(efl_added, EINA_FALSE, EINA_FALSE),
efl_gfx_hint_align_set(efl_added, EVAS_HINT_FILL, EVAS_HINT_FILL),
efl_pack(box_sub, efl_added));
efl_text_set(check, "Speed: 0.25x");
efl_event_callback_add(check, EFL_UI_EVENT_SELECTED_CHANGED, speed_changed_cb, anim_view);
//Limit Frames
check = efl_add(EFL_UI_CHECK_CLASS, box_sub,
efl_gfx_hint_weight_set(efl_added, EFL_GFX_HINT_EXPAND, 0),
efl_gfx_hint_fill_set(efl_added, EINA_FALSE, EINA_FALSE),
efl_gfx_hint_align_set(efl_added, EVAS_HINT_FILL, EVAS_HINT_FILL),
efl_pack(box_sub, efl_added));
efl_text_set(check, "Limit Frames");
efl_event_callback_add(check, EFL_UI_EVENT_SELECTED_CHANGED, limit_frame_cb, anim_view);
//Duration Text
snprintf(buf, sizeof(buf), "Duration: %1.2fs", efl_ui_animation_view_duration_time_get(anim_view));
efl_add(EFL_UI_TEXT_CLASS, box_sub,
efl_gfx_hint_weight_set(efl_added, EFL_GFX_HINT_EXPAND, 0),
efl_gfx_hint_fill_set(efl_added, EINA_FALSE, EINA_FALSE),
efl_gfx_hint_align_set(efl_added, EVAS_HINT_FILL, EVAS_HINT_FILL),
efl_text_set(efl_added, buf),
efl_pack(box_sub, efl_added));
//Slider
slider = efl_add(EFL_UI_SLIDER_CLASS, box,
efl_gfx_hint_weight_set(efl_added, EFL_GFX_HINT_EXPAND, 0.1),
efl_gfx_hint_align_set(efl_added, EVAS_HINT_FILL, EVAS_HINT_FILL),
efl_ui_range_limits_set(efl_added, 0, 1),
efl_event_callback_add(efl_added, EFL_UI_RANGE_EVENT_CHANGED, _slider_changed_cb, anim_view),
efl_pack(box, efl_added));
//Controller Set: 1
box_sub = efl_add(EFL_UI_BOX_CLASS, box,
efl_gfx_hint_weight_set(efl_added, EFL_GFX_HINT_EXPAND, 0),
efl_gfx_hint_align_set(efl_added, EVAS_HINT_FILL, 1),
efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL),
efl_pack(box, efl_added));
//Play Button
efl_add(EFL_UI_BUTTON_CLASS, box_sub,
efl_gfx_hint_weight_set(efl_added, EFL_GFX_HINT_EXPAND, 0),
efl_gfx_hint_align_set(efl_added, EVAS_HINT_FILL, EVAS_HINT_FILL),
efl_text_set(efl_added, "Play"),
efl_pack(box_sub, efl_added),
efl_event_callback_add(efl_added, EFL_INPUT_EVENT_CLICKED, btn_clicked_cb, anim_view));
//Play Back Button
efl_add(EFL_UI_BUTTON_CLASS, box_sub,
efl_gfx_hint_weight_set(efl_added, EFL_GFX_HINT_EXPAND, 0),
efl_gfx_hint_align_set(efl_added, EVAS_HINT_FILL, EVAS_HINT_FILL),
efl_text_set(efl_added, "Play Back"),
efl_pack(box_sub, efl_added),
efl_event_callback_add(efl_added, EFL_INPUT_EVENT_CLICKED, btn_clicked_cb, anim_view));
//Stop Button
efl_add(EFL_UI_BUTTON_CLASS, box_sub,
efl_gfx_hint_weight_set(efl_added, EFL_GFX_HINT_EXPAND, 0),
efl_gfx_hint_align_set(efl_added, EVAS_HINT_FILL, EVAS_HINT_FILL),
efl_text_set(efl_added, "Stop"),
efl_pack(box_sub, efl_added),
efl_event_callback_add(efl_added, EFL_INPUT_EVENT_CLICKED, btn_clicked_cb, anim_view));
//Controller Set: 2
box_sub = efl_add(EFL_UI_BOX_CLASS, box,
efl_gfx_hint_weight_set(efl_added, EFL_GFX_HINT_EXPAND, 0),
efl_gfx_hint_align_set(efl_added, EVAS_HINT_FILL, 1),
efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL),
efl_pack(box, efl_added));
//Pause Button
efl_add(EFL_UI_BUTTON_CLASS, box_sub,
efl_gfx_hint_weight_set(efl_added, EFL_GFX_HINT_EXPAND, 0),
efl_gfx_hint_align_set(efl_added, EVAS_HINT_FILL, EVAS_HINT_FILL),
efl_text_set(efl_added, "Pause"),
efl_pack(box_sub, efl_added),
efl_event_callback_add(efl_added, EFL_INPUT_EVENT_CLICKED, btn_clicked_cb, anim_view));
//Resume Button
efl_add(EFL_UI_BUTTON_CLASS, box_sub,
efl_gfx_hint_weight_set(efl_added, EFL_GFX_HINT_EXPAND, 0),
efl_gfx_hint_align_set(efl_added, EVAS_HINT_FILL, EVAS_HINT_FILL),
efl_text_set(efl_added, "Resume"),
efl_pack(box_sub, efl_added),
efl_event_callback_add(efl_added, EFL_INPUT_EVENT_CLICKED, btn_clicked_cb, anim_view));
evas_object_smart_callback_add(anim_view, "play,start", _state_update, label);
evas_object_smart_callback_add(anim_view, "play,stop", _state_update, label);
evas_object_smart_callback_add(anim_view, "play,pause", _state_update, label);
evas_object_smart_callback_add(anim_view, "play,resume", _state_update, label);
evas_object_smart_callback_add(anim_view, "play,repeat", _play_repeated, label);
evas_object_smart_callback_add(anim_view, "play,done", _play_done, label);
evas_object_smart_callback_add(anim_view, "play,update", _play_updated, slider);
evas_object_smart_callback_add(anim_view, "play,stop", _slider_reset, slider);
update_anim_view_state(anim_view, label);
efl_gfx_entity_size_set(win, EINA_SIZE2D(600, 850));
}
#else
void
test_efl_gfx_vg_value_provider(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
Eo *win, *box;
char buf[255];
win = efl_add_ref(EFL_UI_WIN_CLASS, NULL,
efl_ui_win_type_set(efl_added, EFL_UI_WIN_TYPE_BASIC),
efl_text_set(efl_added, "Efl_Ui_Animation_View demo"),
efl_ui_win_autodel_set(efl_added, EINA_TRUE));
// Create a box
box = efl_add(EFL_UI_BOX_CLASS, win,
efl_gfx_hint_weight_set(efl_added, EFL_GFX_HINT_EXPAND, EFL_GFX_HINT_EXPAND),
efl_content_set(win, efl_added));
efl_add(EFL_UI_TEXT_CLASS, win,
efl_gfx_hint_weight_set(efl_added, EFL_GFX_HINT_EXPAND, 0.1),
efl_gfx_hint_fill_set(efl_added, EINA_FALSE, EINA_FALSE),
efl_text_set(efl_added, "Evas Vg Json (Lottie) Loader is not supported, Only Static Vector Image is available!"),
efl_pack(box, efl_added));
//Create Vector object.
snprintf(buf, sizeof(buf), "%s/images/tiger.svg", elm_app_data_dir_get());
efl_add(EFL_CANVAS_VG_OBJECT_CLASS, win,
efl_gfx_hint_weight_set(efl_added, EFL_GFX_HINT_EXPAND, EFL_GFX_HINT_EXPAND),
efl_gfx_hint_align_set(efl_added, EVAS_HINT_FILL, EVAS_HINT_FILL),
efl_gfx_entity_size_set(efl_added, EINA_SIZE2D(600, 600)),
efl_file_simple_load(efl_added, buf, NULL),
efl_gfx_entity_visible_set(efl_added, EINA_TRUE),
efl_pack(box, efl_added));
efl_gfx_entity_size_set(win, EINA_SIZE2D(600, 730));
}
#endif

View File

@ -129,7 +129,7 @@ test_evas_snapshot(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *e
efl_ui_win_autodel_set(efl_added, 1)); efl_ui_win_autodel_set(efl_added, 1));
table = efl_add(EFL_UI_TABLE_CLASS, win, table = efl_add(EFL_UI_TABLE_CLASS, win,
efl_gfx_arrangement_content_padding_set(efl_added, 5, 5, 1)); efl_gfx_arrangement_content_padding_set(efl_added, 5, 5));
efl_content_set(win, table); efl_content_set(win, table);
// Objects below the snapshot // Objects below the snapshot

View File

@ -387,7 +387,7 @@ test_gfx_filters(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *eve
efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL), efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL),
efl_gfx_hint_weight_set(efl_added, 1.0, 0.0), efl_gfx_hint_weight_set(efl_added, 1.0, 0.0),
efl_gfx_hint_fill_set(efl_added, EINA_TRUE, EINA_FALSE), efl_gfx_hint_fill_set(efl_added, EINA_TRUE, EINA_FALSE),
efl_gfx_arrangement_content_padding_set(efl_added, 5, 5, 1), efl_gfx_arrangement_content_padding_set(efl_added, 5, 5),
efl_gfx_hint_margin_set(efl_added, 5, 5, 5, 5), efl_gfx_hint_margin_set(efl_added, 5, 5, 5, 5),
efl_gfx_arrangement_content_align_set(efl_added, 0, 0.5)); efl_gfx_arrangement_content_align_set(efl_added, 0, 0.5));
efl_pack(box, box2); efl_pack(box, box2);

View File

@ -72,11 +72,11 @@ user_min_slider_cb(void *data EINA_UNUSED, const Efl_Event *event)
static void static void
padding_slider_cb(void *data, const Efl_Event *event) padding_slider_cb(void *data, const Efl_Event *event)
{ {
int val = elm_slider_value_get(event->object); unsigned int val = lround(elm_slider_value_get(event->object));
Eo *win = data, *box; Eo *win = data, *box;
box = efl_key_wref_get(win, "box"); box = efl_key_wref_get(win, "box");
efl_gfx_arrangement_content_padding_set(box, val, val, EINA_TRUE); efl_gfx_arrangement_content_padding_set(box, val, val);
} }
static void static void
@ -240,7 +240,7 @@ test_ui_box(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_in
vbox = efl_add(EFL_UI_BOX_CLASS, win, vbox = efl_add(EFL_UI_BOX_CLASS, win,
efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_VERTICAL)); efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_VERTICAL));
efl_gfx_arrangement_content_padding_set(vbox, 10, 10, EINA_TRUE); efl_gfx_arrangement_content_padding_set(vbox, 10, 10);
efl_gfx_hint_margin_set(vbox, 5, 5, 5, 5); efl_gfx_hint_margin_set(vbox, 5, 5, 5, 5);
elm_win_resize_object_add(win, vbox); elm_win_resize_object_add(win, vbox);
@ -256,7 +256,7 @@ test_ui_box(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_in
hbox = efl_add(EFL_UI_BOX_CLASS, win, hbox = efl_add(EFL_UI_BOX_CLASS, win,
efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL)); efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL));
efl_content_set(f, hbox); efl_content_set(f, hbox);
efl_gfx_arrangement_content_padding_set(hbox, 10, 0, EINA_TRUE); efl_gfx_arrangement_content_padding_set(hbox, 10, 0);
/* weights radio group */ /* weights radio group */
@ -533,7 +533,7 @@ test_ui_box(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_in
bx = efl_add(EFL_UI_BOX_CLASS, win, bx = efl_add(EFL_UI_BOX_CLASS, win,
efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL)); efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL));
efl_key_wref_set(win, "box", bx); efl_key_wref_set(win, "box", bx);
efl_gfx_arrangement_content_padding_set(bx, 10, 10, EINA_TRUE); efl_gfx_arrangement_content_padding_set(bx, 10, 10);
efl_gfx_hint_align_set(bx, 0.5, 0.5); efl_gfx_hint_align_set(bx, 0.5, 0.5);
efl_gfx_hint_weight_set(bx, 1, 1); efl_gfx_hint_weight_set(bx, 1, 1);
efl_content_set(f, bx); efl_content_set(f, bx);

View File

@ -443,12 +443,12 @@ static void pack_cb(void *data,
back_btn_cb, navi)); back_btn_cb, navi));
box = efl_add(EFL_UI_BOX_CLASS, navi, box = efl_add(EFL_UI_BOX_CLASS, navi,
efl_gfx_arrangement_content_padding_set(efl_added, 10, 10, EINA_TRUE), efl_gfx_arrangement_content_padding_set(efl_added, 10, 10),
elm_naviframe_item_push(navi, "Pack", btn, NULL, elm_naviframe_item_push(navi, "Pack", btn, NULL,
efl_added, NULL)); efl_added, NULL));
in_box1 = efl_add(EFL_UI_BOX_CLASS, box, in_box1 = efl_add(EFL_UI_BOX_CLASS, box,
efl_gfx_arrangement_content_padding_set(efl_added, 10, 10, EINA_TRUE), efl_gfx_arrangement_content_padding_set(efl_added, 10, 10),
efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL)); efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL));
sp1 = efl_add(EFL_UI_SPIN_BUTTON_CLASS, in_box1, sp1 = efl_add(EFL_UI_SPIN_BUTTON_CLASS, in_box1,
@ -458,7 +458,7 @@ static void pack_cb(void *data,
efl_ui_pager_current_page_get(pager))); efl_ui_pager_current_page_get(pager)));
in_box2 = efl_add(EFL_UI_BOX_CLASS, box, in_box2 = efl_add(EFL_UI_BOX_CLASS, box,
efl_gfx_arrangement_content_padding_set(efl_added, 10, 10, EINA_TRUE), efl_gfx_arrangement_content_padding_set(efl_added, 10, 10),
efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL)); efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL));
sp2 = efl_add(EFL_UI_SPIN_BUTTON_CLASS, in_box2); sp2 = efl_add(EFL_UI_SPIN_BUTTON_CLASS, in_box2);
@ -628,7 +628,7 @@ static void current_page_cb(void *data,
back_btn_cb, navi)); back_btn_cb, navi));
box = efl_add(EFL_UI_BOX_CLASS, navi, box = efl_add(EFL_UI_BOX_CLASS, navi,
efl_gfx_arrangement_content_padding_set(efl_added, 10, 10, EINA_TRUE), efl_gfx_arrangement_content_padding_set(efl_added, 10, 10),
elm_naviframe_item_push(navi, "Current Page", btn, NULL, elm_naviframe_item_push(navi, "Current Page", btn, NULL,
efl_added, NULL)); efl_added, NULL));
@ -674,7 +674,7 @@ static void indicator_cb(void *data,
back_btn_cb, navi)); back_btn_cb, navi));
box = efl_add(EFL_UI_BOX_CLASS, navi, box = efl_add(EFL_UI_BOX_CLASS, navi,
efl_gfx_arrangement_content_padding_set(efl_added, 10, 10, EINA_TRUE), efl_gfx_arrangement_content_padding_set(efl_added, 10, 10),
elm_naviframe_item_push(navi, "Indicator", btn, NULL, elm_naviframe_item_push(navi, "Indicator", btn, NULL,
efl_added, NULL)); efl_added, NULL));

View File

@ -495,7 +495,7 @@ static void padding_cb(void *data,
back_btn_cb, navi)); back_btn_cb, navi));
box = efl_add(EFL_UI_BOX_CLASS, navi, box = efl_add(EFL_UI_BOX_CLASS, navi,
efl_gfx_arrangement_content_padding_set(efl_added, 10, 10, EINA_TRUE), efl_gfx_arrangement_content_padding_set(efl_added, 10, 10),
elm_naviframe_item_push(navi, "Padding Size", btn, NULL, elm_naviframe_item_push(navi, "Padding Size", btn, NULL,
efl_added, NULL)); efl_added, NULL));
@ -522,7 +522,7 @@ static void side_page_num_cb(void *data,
back_btn_cb, navi)); back_btn_cb, navi));
box = efl_add(EFL_UI_BOX_CLASS, navi, box = efl_add(EFL_UI_BOX_CLASS, navi,
efl_gfx_arrangement_content_padding_set(efl_added, 10, 10, EINA_TRUE), efl_gfx_arrangement_content_padding_set(efl_added, 10, 10),
elm_naviframe_item_push(navi, "Side Page Num", btn, NULL, elm_naviframe_item_push(navi, "Side Page Num", btn, NULL,
efl_added, NULL)); efl_added, NULL));
@ -555,12 +555,12 @@ static void pack_cb(void *data,
back_btn_cb, navi)); back_btn_cb, navi));
box = efl_add(EFL_UI_BOX_CLASS, navi, box = efl_add(EFL_UI_BOX_CLASS, navi,
efl_gfx_arrangement_content_padding_set(efl_added, 10, 10, EINA_TRUE), efl_gfx_arrangement_content_padding_set(efl_added, 10, 10),
elm_naviframe_item_push(navi, "Pack", btn, NULL, elm_naviframe_item_push(navi, "Pack", btn, NULL,
efl_added, NULL)); efl_added, NULL));
in_box1 = efl_add(EFL_UI_BOX_CLASS, box, in_box1 = efl_add(EFL_UI_BOX_CLASS, box,
efl_gfx_arrangement_content_padding_set(efl_added, 10, 10, EINA_TRUE), efl_gfx_arrangement_content_padding_set(efl_added, 10, 10),
efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL)); efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL));
sp1 = efl_add(EFL_UI_SPIN_BUTTON_CLASS, in_box1, sp1 = efl_add(EFL_UI_SPIN_BUTTON_CLASS, in_box1,
@ -570,7 +570,7 @@ static void pack_cb(void *data,
efl_ui_pager_current_page_get(pager))); efl_ui_pager_current_page_get(pager)));
in_box2 = efl_add(EFL_UI_BOX_CLASS, box, in_box2 = efl_add(EFL_UI_BOX_CLASS, box,
efl_gfx_arrangement_content_padding_set(efl_added, 10, 10, EINA_TRUE), efl_gfx_arrangement_content_padding_set(efl_added, 10, 10),
efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL)); efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL));
sp2 = efl_add(EFL_UI_SPIN_BUTTON_CLASS, in_box2); sp2 = efl_add(EFL_UI_SPIN_BUTTON_CLASS, in_box2);
@ -739,7 +739,7 @@ static void current_page_cb(void *data,
back_btn_cb, navi)); back_btn_cb, navi));
box = efl_add(EFL_UI_BOX_CLASS, navi, box = efl_add(EFL_UI_BOX_CLASS, navi,
efl_gfx_arrangement_content_padding_set(efl_added, 10, 10, EINA_TRUE), efl_gfx_arrangement_content_padding_set(efl_added, 10, 10),
elm_naviframe_item_push(navi, "Current Page", btn, NULL, elm_naviframe_item_push(navi, "Current Page", btn, NULL,
efl_added, NULL)); efl_added, NULL));
@ -787,7 +787,7 @@ static void scroll_block_cb(void *data,
back_btn_cb, navi)); back_btn_cb, navi));
box = efl_add(EFL_UI_BOX_CLASS, navi, box = efl_add(EFL_UI_BOX_CLASS, navi,
efl_gfx_arrangement_content_padding_set(efl_added, 10, 10, EINA_TRUE), efl_gfx_arrangement_content_padding_set(efl_added, 10, 10),
elm_naviframe_item_push(navi, "Scroll Block", btn, NULL, elm_naviframe_item_push(navi, "Scroll Block", btn, NULL,
efl_added, NULL)); efl_added, NULL));
@ -826,7 +826,7 @@ static void loop_cb(void *data EINA_UNUSED,
back_btn_cb, navi)); back_btn_cb, navi));
box = efl_add(EFL_UI_RADIO_BOX_CLASS, navi, box = efl_add(EFL_UI_RADIO_BOX_CLASS, navi,
efl_gfx_arrangement_content_padding_set(efl_added, 10, 10, EINA_TRUE), efl_gfx_arrangement_content_padding_set(efl_added, 10, 10),
elm_naviframe_item_push(navi, "Loop", btn, NULL, elm_naviframe_item_push(navi, "Loop", btn, NULL,
efl_added, NULL)); efl_added, NULL));
@ -874,7 +874,7 @@ static void indicator_cb(void *data EINA_UNUSED,
back_btn_cb, navi)); back_btn_cb, navi));
box = efl_add(EFL_UI_BOX_CLASS, navi, box = efl_add(EFL_UI_BOX_CLASS, navi,
efl_gfx_arrangement_content_padding_set(efl_added, 10, 10, EINA_TRUE), efl_gfx_arrangement_content_padding_set(efl_added, 10, 10),
elm_naviframe_item_push(navi, "Indicator", btn, NULL, elm_naviframe_item_push(navi, "Indicator", btn, NULL,
efl_added, NULL)); efl_added, NULL));

View File

@ -150,7 +150,7 @@ _setter_add(Eo *vbox, Eo *btn, Options option)
hbox = efl_add(EFL_UI_BOX_CLASS, vbox, hbox = efl_add(EFL_UI_BOX_CLASS, vbox,
efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL), efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL),
efl_gfx_arrangement_content_padding_set(efl_added, 2, 2, EINA_TRUE), efl_gfx_arrangement_content_padding_set(efl_added, 2, 2),
efl_pack(vbox, efl_added)); efl_pack(vbox, efl_added));
efl_add(EFL_UI_TEXT_CLASS, hbox, efl_add(EFL_UI_TEXT_CLASS, hbox,
@ -192,13 +192,13 @@ _button_frame_add(Eo *box, Eo *btn)
vbox = efl_add(EFL_UI_BOX_CLASS, f, vbox = efl_add(EFL_UI_BOX_CLASS, f,
efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_VERTICAL), efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_VERTICAL),
efl_gfx_arrangement_content_padding_set(efl_added, 2, 2, EINA_TRUE), efl_gfx_arrangement_content_padding_set(efl_added, 2, 2),
efl_gfx_hint_margin_set(efl_added, 2, 2, 2, 2), efl_gfx_hint_margin_set(efl_added, 2, 2, 2, 2),
efl_content_set(f, efl_added)); efl_content_set(f, efl_added));
hbox = efl_add(EFL_UI_BOX_CLASS, vbox, hbox = efl_add(EFL_UI_BOX_CLASS, vbox,
efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL), efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL),
efl_gfx_arrangement_content_padding_set(efl_added, 2, 2, EINA_TRUE), efl_gfx_arrangement_content_padding_set(efl_added, 2, 2),
efl_pack(vbox, efl_added)); efl_pack(vbox, efl_added));
efl_add(EFL_CANVAS_RECTANGLE_CLASS, hbox, efl_add(EFL_CANVAS_RECTANGLE_CLASS, hbox,
@ -231,7 +231,7 @@ _button_frame_add(Eo *box, Eo *btn)
hbox = efl_add(EFL_UI_BOX_CLASS, vbox, hbox = efl_add(EFL_UI_BOX_CLASS, vbox,
efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL), efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL),
efl_gfx_arrangement_content_padding_set(efl_added, 2, 2, EINA_TRUE), efl_gfx_arrangement_content_padding_set(efl_added, 2, 2),
efl_pack(vbox, efl_added)); efl_pack(vbox, efl_added));
efl_add(EFL_UI_TEXT_CLASS, hbox, efl_add(EFL_UI_TEXT_CLASS, hbox,
@ -251,7 +251,7 @@ _button_frame_add(Eo *box, Eo *btn)
hbox = efl_add(EFL_UI_BOX_CLASS, vbox, hbox = efl_add(EFL_UI_BOX_CLASS, vbox,
efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL), efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL),
efl_gfx_arrangement_content_padding_set(efl_added, 2, 2, EINA_TRUE), efl_gfx_arrangement_content_padding_set(efl_added, 2, 2),
efl_pack(vbox, efl_added)); efl_pack(vbox, efl_added));
efl_add(EFL_UI_TEXT_CLASS, hbox, efl_add(EFL_UI_TEXT_CLASS, hbox,
@ -281,7 +281,7 @@ test_ui_relative_layout(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, vo
vbox = efl_add(EFL_UI_BOX_CLASS, win, vbox = efl_add(EFL_UI_BOX_CLASS, win,
efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_VERTICAL), efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_VERTICAL),
efl_gfx_arrangement_content_padding_set(efl_added, 10, 10, EINA_TRUE), efl_gfx_arrangement_content_padding_set(efl_added, 10, 10),
efl_gfx_hint_margin_set(efl_added, 5, 5, 5, 5), efl_gfx_hint_margin_set(efl_added, 5, 5, 5, 5),
efl_content_set(win, efl_added)); efl_content_set(win, efl_added));
@ -293,7 +293,7 @@ test_ui_relative_layout(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, vo
hbox = efl_add(EFL_UI_BOX_CLASS, f, hbox = efl_add(EFL_UI_BOX_CLASS, f,
efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL), efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL),
efl_gfx_arrangement_content_padding_set(efl_added, 10, 0, EINA_TRUE), efl_gfx_arrangement_content_padding_set(efl_added, 10, 0),
efl_content_set(f, efl_added)); efl_content_set(f, efl_added));
/* contents */ /* contents */

View File

@ -594,12 +594,12 @@ pack_cb(void *data,
back_btn_cb, navi)); back_btn_cb, navi));
box = efl_add(EFL_UI_BOX_CLASS, navi, box = efl_add(EFL_UI_BOX_CLASS, navi,
efl_gfx_arrangement_content_padding_set(efl_added, 10, 10, EINA_TRUE), efl_gfx_arrangement_content_padding_set(efl_added, 10, 10),
elm_naviframe_item_push(navi, "Pack", btn, NULL, elm_naviframe_item_push(navi, "Pack", btn, NULL,
efl_added, NULL)); efl_added, NULL));
in_box1 = efl_add(EFL_UI_BOX_CLASS, box, in_box1 = efl_add(EFL_UI_BOX_CLASS, box,
efl_gfx_arrangement_content_padding_set(efl_added, 10, 10, EINA_TRUE), efl_gfx_arrangement_content_padding_set(efl_added, 10, 10),
efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL)); efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL));
sp1 = efl_add(EFL_UI_SPIN_BUTTON_CLASS, in_box1); sp1 = efl_add(EFL_UI_SPIN_BUTTON_CLASS, in_box1);
@ -611,7 +611,7 @@ pack_cb(void *data,
efl_ui_range_value_set(sp1, num); efl_ui_range_value_set(sp1, num);
in_box2 = efl_add(EFL_UI_BOX_CLASS, box, in_box2 = efl_add(EFL_UI_BOX_CLASS, box,
efl_gfx_arrangement_content_padding_set(efl_added, 10, 10, EINA_TRUE), efl_gfx_arrangement_content_padding_set(efl_added, 10, 10),
efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL)); efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL));
sp2 = efl_add(EFL_UI_SPIN_BUTTON_CLASS, in_box2); sp2 = efl_add(EFL_UI_SPIN_BUTTON_CLASS, in_box2);
@ -781,7 +781,7 @@ active_index_cb(void *data,
back_btn_cb, navi)); back_btn_cb, navi));
box = efl_add(EFL_UI_BOX_CLASS, navi, box = efl_add(EFL_UI_BOX_CLASS, navi,
efl_gfx_arrangement_content_padding_set(efl_added, 10, 10, EINA_TRUE), efl_gfx_arrangement_content_padding_set(efl_added, 10, 10),
elm_naviframe_item_push(navi, "Active Index", btn, NULL, elm_naviframe_item_push(navi, "Active Index", btn, NULL,
efl_added, NULL)); efl_added, NULL));
@ -828,7 +828,7 @@ indicator_cb(void *data,
back_btn_cb, navi)); back_btn_cb, navi));
box = efl_add(EFL_UI_BOX_CLASS, navi, box = efl_add(EFL_UI_BOX_CLASS, navi,
efl_gfx_arrangement_content_padding_set(efl_added, 10, 10, EINA_TRUE), efl_gfx_arrangement_content_padding_set(efl_added, 10, 10),
elm_naviframe_item_push(navi, "Indicator", btn, NULL, elm_naviframe_item_push(navi, "Indicator", btn, NULL,
efl_added, NULL)); efl_added, NULL));

View File

@ -200,7 +200,7 @@ _current_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info)
efl_event_callback_add(efl_added, EFL_INPUT_EVENT_CLICKED, _btn_cb, navi)); efl_event_callback_add(efl_added, EFL_INPUT_EVENT_CLICKED, _btn_cb, navi));
box = efl_add(EFL_UI_BOX_CLASS, navi, box = efl_add(EFL_UI_BOX_CLASS, navi,
efl_gfx_arrangement_content_padding_set(efl_added, 10, 10, EINA_TRUE), efl_gfx_arrangement_content_padding_set(efl_added, 10, 10),
elm_naviframe_item_push(navi, "Current", btn, NULL, efl_added, NULL)); elm_naviframe_item_push(navi, "Current", btn, NULL, efl_added, NULL));
sp = efl_add(EFL_UI_SPIN_BUTTON_CLASS, box, sp = efl_add(EFL_UI_SPIN_BUTTON_CLASS, box,
@ -301,7 +301,7 @@ _pack_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info)
efl_event_callback_add(efl_added, EFL_INPUT_EVENT_CLICKED, _btn_cb, navi)); efl_event_callback_add(efl_added, EFL_INPUT_EVENT_CLICKED, _btn_cb, navi));
box = efl_add(EFL_UI_BOX_CLASS, navi, box = efl_add(EFL_UI_BOX_CLASS, navi,
efl_gfx_arrangement_content_padding_set(efl_added, 10, 10, EINA_TRUE), efl_gfx_arrangement_content_padding_set(efl_added, 10, 10),
elm_naviframe_item_push(navi, "Pack", btn, NULL, efl_added, NULL)); elm_naviframe_item_push(navi, "Pack", btn, NULL, efl_added, NULL));
/* Pack Begin */ /* Pack Begin */
@ -329,7 +329,7 @@ _pack_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info)
efl_pack_end(box, efl_added)); efl_pack_end(box, efl_added));
in_box = efl_add(EFL_UI_BOX_CLASS, box, in_box = efl_add(EFL_UI_BOX_CLASS, box,
efl_gfx_arrangement_content_padding_set(efl_added, 10, 10, EINA_TRUE), efl_gfx_arrangement_content_padding_set(efl_added, 10, 10),
efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL), efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL),
efl_pack_end(box, efl_added)); efl_pack_end(box, efl_added));
@ -406,7 +406,7 @@ _unpack_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info)
efl_event_callback_add(efl_added, EFL_INPUT_EVENT_CLICKED, _btn_cb, navi)); efl_event_callback_add(efl_added, EFL_INPUT_EVENT_CLICKED, _btn_cb, navi));
box = efl_add(EFL_UI_BOX_CLASS, navi, box = efl_add(EFL_UI_BOX_CLASS, navi,
efl_gfx_arrangement_content_padding_set(efl_added, 10, 10, EINA_TRUE), efl_gfx_arrangement_content_padding_set(efl_added, 10, 10),
elm_naviframe_item_push(navi, "Unpack", btn, NULL, efl_added, NULL)); elm_naviframe_item_push(navi, "Unpack", btn, NULL, efl_added, NULL));
/* Clear */ /* Clear */
@ -430,7 +430,7 @@ _unpack_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info)
efl_pack_end(box, efl_added)); efl_pack_end(box, efl_added));
in_box = efl_add(EFL_UI_BOX_CLASS, box, in_box = efl_add(EFL_UI_BOX_CLASS, box,
efl_gfx_arrangement_content_padding_set(efl_added, 10, 10, EINA_TRUE), efl_gfx_arrangement_content_padding_set(efl_added, 10, 10),
efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL), efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL),
efl_pack_end(box, efl_added)); efl_pack_end(box, efl_added));
@ -500,7 +500,7 @@ _tab_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info)
efl_event_callback_add(efl_added, EFL_INPUT_EVENT_CLICKED, _btn_cb, navi)); efl_event_callback_add(efl_added, EFL_INPUT_EVENT_CLICKED, _btn_cb, navi));
box = efl_add(EFL_UI_BOX_CLASS, navi, box = efl_add(EFL_UI_BOX_CLASS, navi,
efl_gfx_arrangement_content_padding_set(efl_added, 10, 10, EINA_TRUE), efl_gfx_arrangement_content_padding_set(efl_added, 10, 10),
elm_naviframe_item_push(navi, "Tab", btn, NULL, efl_added, NULL)); elm_naviframe_item_push(navi, "Tab", btn, NULL, efl_added, NULL));
label_check = efl_add(EFL_UI_CHECK_CLASS, box); label_check = efl_add(EFL_UI_CHECK_CLASS, box);
@ -560,7 +560,7 @@ _transition_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info)
efl_event_callback_add(efl_added, EFL_INPUT_EVENT_CLICKED, _btn_cb, navi)); efl_event_callback_add(efl_added, EFL_INPUT_EVENT_CLICKED, _btn_cb, navi));
box = efl_add(EFL_UI_BOX_CLASS, navi, box = efl_add(EFL_UI_BOX_CLASS, navi,
efl_gfx_arrangement_content_padding_set(efl_added, 10, 10, EINA_TRUE), efl_gfx_arrangement_content_padding_set(efl_added, 10, 10),
elm_naviframe_item_push(navi, "Transition", btn, NULL, efl_added, NULL)); elm_naviframe_item_push(navi, "Transition", btn, NULL, efl_added, NULL));
btn = efl_add(EFL_UI_BUTTON_CLASS, box, btn = efl_add(EFL_UI_BUTTON_CLASS, box,

View File

@ -79,7 +79,7 @@ static void
padding_slider_cb(void *data, const Efl_Event *event) padding_slider_cb(void *data, const Efl_Event *event)
{ {
int val = elm_slider_value_get(event->object); int val = elm_slider_value_get(event->object);
efl_gfx_arrangement_content_padding_set(data, val, val, EINA_TRUE); efl_gfx_arrangement_content_padding_set(data, val, val);
} }
static void static void
@ -201,7 +201,7 @@ test_ui_table(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_
vbox = efl_add(EFL_UI_BOX_CLASS, win, vbox = efl_add(EFL_UI_BOX_CLASS, win,
efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_VERTICAL)); efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_VERTICAL));
efl_gfx_arrangement_content_padding_set(vbox, 10, 10, EINA_TRUE); efl_gfx_arrangement_content_padding_set(vbox, 10, 10);
efl_gfx_hint_weight_set(vbox, 1, 1); efl_gfx_hint_weight_set(vbox, 1, 1);
efl_gfx_hint_margin_set(vbox, 5, 5, 5, 5); efl_gfx_hint_margin_set(vbox, 5, 5, 5, 5);
elm_win_resize_object_add(win, vbox); elm_win_resize_object_add(win, vbox);
@ -222,7 +222,7 @@ test_ui_table(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_
hbox = efl_add(EFL_UI_BOX_CLASS, win, hbox = efl_add(EFL_UI_BOX_CLASS, win,
efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL)); efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL));
elm_object_content_set(f, hbox); elm_object_content_set(f, hbox);
efl_gfx_arrangement_content_padding_set(hbox, 10, 0, EINA_TRUE); efl_gfx_arrangement_content_padding_set(hbox, 10, 0);
/* weights radio group */ /* weights radio group */
@ -570,7 +570,7 @@ test_ui_table_linear(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
vbox = efl_add(EFL_UI_BOX_CLASS, win, vbox = efl_add(EFL_UI_BOX_CLASS, win,
efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_VERTICAL)); efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_VERTICAL));
efl_gfx_arrangement_content_padding_set(vbox, 10, 10, EINA_TRUE); efl_gfx_arrangement_content_padding_set(vbox, 10, 10);
efl_gfx_hint_margin_set(vbox, 5, 5, 5, 5); efl_gfx_hint_margin_set(vbox, 5, 5, 5, 5);
elm_win_resize_object_add(win, vbox); elm_win_resize_object_add(win, vbox);
efl_gfx_entity_visible_set(vbox, 1); efl_gfx_entity_visible_set(vbox, 1);
@ -591,7 +591,7 @@ test_ui_table_linear(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
hbox = efl_add(EFL_UI_BOX_CLASS, win, hbox = efl_add(EFL_UI_BOX_CLASS, win,
efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL)); efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL));
elm_object_content_set(f, hbox); elm_object_content_set(f, hbox);
efl_gfx_arrangement_content_padding_set(hbox, 5, 0, EINA_TRUE); efl_gfx_arrangement_content_padding_set(hbox, 5, 0);
efl_gfx_entity_visible_set(hbox, 1); efl_gfx_entity_visible_set(hbox, 1);
ico = elm_icon_add(win); ico = elm_icon_add(win);

View File

@ -560,7 +560,7 @@ struct documentation_generator
{ {
std::string str = doc.full_text; std::string str = doc.full_text;
if (!doc.since.empty()) if (!doc.since.empty())
str += "\\<br/\\>Since EFL " + doc.since; str += "\\<br/\\>Since EFL " + doc.since + ".";
str += tail_text; str += tail_text;
return generate_tag_summary(sink, str, context); return generate_tag_summary(sink, str, context);
} }

View File

@ -447,36 +447,30 @@ struct event_definition_generator
scope_tab << "{\n" scope_tab << "{\n"
<< scope_tab << scope_tab << "add\n" << scope_tab << scope_tab << "add\n"
<< scope_tab << scope_tab << "{\n" << scope_tab << scope_tab << "{\n"
<< scope_tab << scope_tab << scope_tab << "lock (eflBindingEventLock)\n" << scope_tab << scope_tab << scope_tab << "Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>\n"
<< scope_tab << scope_tab << scope_tab << "{\n" << scope_tab << scope_tab << scope_tab << "{\n"
<< scope_tab << scope_tab << scope_tab << scope_tab << "Efl.EventCb callerCb = (IntPtr data, ref Efl.Event.NativeStruct evt) =>\n" << scope_tab << scope_tab << scope_tab << scope_tab << "var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;\n"
<< scope_tab << scope_tab << scope_tab << scope_tab << "if (obj != null)\n"
<< scope_tab << scope_tab << scope_tab << scope_tab << "{\n" << scope_tab << scope_tab << scope_tab << scope_tab << "{\n"
<< scope_tab << scope_tab << scope_tab << scope_tab << scope_tab << "var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;\n" << scope_tab << scope_tab << scope_tab << scope_tab << scope_tab << event_args
<< scope_tab << scope_tab << scope_tab << scope_tab << scope_tab << "if (obj != null)\n" << scope_tab << scope_tab << scope_tab << scope_tab << scope_tab << "try\n"
<< scope_tab << scope_tab << scope_tab << scope_tab << scope_tab << "{\n" << scope_tab << scope_tab << scope_tab << scope_tab << scope_tab << "{\n"
<< scope_tab << scope_tab << scope_tab << scope_tab << scope_tab << scope_tab << event_args << scope_tab << scope_tab << scope_tab << scope_tab << scope_tab << scope_tab << "value?.Invoke(obj, args);\n"
<< scope_tab << scope_tab << scope_tab << scope_tab << scope_tab << scope_tab << "try\n"
<< scope_tab << scope_tab << scope_tab << scope_tab << scope_tab << scope_tab << "{\n"
<< scope_tab << scope_tab << scope_tab << scope_tab << scope_tab << scope_tab << scope_tab << "value?.Invoke(obj, args);\n"
<< scope_tab << scope_tab << scope_tab << scope_tab << scope_tab << scope_tab << "}\n"
<< scope_tab << scope_tab << scope_tab << scope_tab << scope_tab << scope_tab << "catch (Exception e)\n"
<< scope_tab << scope_tab << scope_tab << scope_tab << scope_tab << scope_tab << "{\n"
<< scope_tab << scope_tab << scope_tab << scope_tab << scope_tab << scope_tab << scope_tab << "Eina.Log.Error(e.ToString());\n"
<< scope_tab << scope_tab << scope_tab << scope_tab << scope_tab << scope_tab << scope_tab << "Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);\n"
<< scope_tab << scope_tab << scope_tab << scope_tab << scope_tab << scope_tab << "}\n"
<< scope_tab << scope_tab << scope_tab << scope_tab << scope_tab << "}\n" << scope_tab << scope_tab << scope_tab << scope_tab << scope_tab << "}\n"
<< scope_tab << scope_tab << scope_tab << scope_tab << "};\n\n" << scope_tab << scope_tab << scope_tab << scope_tab << scope_tab << "catch (Exception e)\n"
<< scope_tab << scope_tab << scope_tab << scope_tab << "string key = \"_" << upper_c_name << "\";\n" << scope_tab << scope_tab << scope_tab << scope_tab << scope_tab << "{\n"
<< scope_tab << scope_tab << scope_tab << scope_tab << "AddNativeEventHandler(" << library_name << ", key, callerCb, value);\n" << scope_tab << scope_tab << scope_tab << scope_tab << scope_tab << scope_tab << "Eina.Log.Error(e.ToString());\n"
<< scope_tab << scope_tab << scope_tab << "}\n" // End of lock block << scope_tab << scope_tab << scope_tab << scope_tab << scope_tab << scope_tab << "Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);\n"
<< scope_tab << scope_tab << scope_tab << scope_tab << scope_tab << "}\n"
<< scope_tab << scope_tab << scope_tab << scope_tab << "}\n"
<< scope_tab << scope_tab << scope_tab << "};\n\n"
<< scope_tab << scope_tab << scope_tab << "string key = \"_" << upper_c_name << "\";\n"
<< scope_tab << scope_tab << scope_tab << "AddNativeEventHandler(" << library_name << ", key, callerCb, value);\n"
<< scope_tab << scope_tab << "}\n\n" << scope_tab << scope_tab << "}\n\n"
<< scope_tab << scope_tab << "remove\n" << scope_tab << scope_tab << "remove\n"
<< scope_tab << scope_tab << "{\n" << scope_tab << scope_tab << "{\n"
<< scope_tab << scope_tab << scope_tab << "lock (eflBindingEventLock)\n" << scope_tab << scope_tab << scope_tab << "string key = \"_" << upper_c_name << "\";\n"
<< scope_tab << scope_tab << scope_tab << "{\n" << scope_tab << scope_tab << scope_tab << "RemoveNativeEventHandler(" << library_name << ", key, value);\n"
<< scope_tab << scope_tab << scope_tab << scope_tab << "string key = \"_" << upper_c_name << "\";\n"
<< scope_tab << scope_tab << scope_tab << scope_tab << "RemoveNativeEventHandler(" << library_name << ", key, value);\n"
<< scope_tab << scope_tab << scope_tab << "}\n" // End of lock block
<< scope_tab << scope_tab << "}\n" << scope_tab << scope_tab << "}\n"
<< scope_tab << "}\n\n" << scope_tab << "}\n\n"
).generate(sink, attributes::unused, context); ).generate(sink, attributes::unused, context);

View File

@ -13,7 +13,7 @@ namespace Efl {
/// ///
/// <para>It is internally instantiated and returned by generated extension methods.</para> /// <para>It is internally instantiated and returned by generated extension methods.</para>
/// ///
/// (Since EFL 1.23) /// Since EFL 1.23.
/// </summary> /// </summary>
public class BindableProperty<T> public class BindableProperty<T>
{ {
@ -79,7 +79,7 @@ public class BindableProperty<T>
/// ///
/// <para>It is internally instantiated and returned by generated extension methods.</para> /// <para>It is internally instantiated and returned by generated extension methods.</para>
/// ///
/// (Since EFL 1.23) /// Since EFL 1.23.
/// </summary> /// </summary>
public class BindablePart<T> public class BindablePart<T>
{ {
@ -99,7 +99,7 @@ public class BindablePart<T>
/// <summary>Represents bindable factory parts as used by <see cref="Efl.Ui.ItemFactory&lt;T&gt;" /> instances. /// <summary>Represents bindable factory parts as used by <see cref="Efl.Ui.ItemFactory&lt;T&gt;" /> instances.
/// ///
/// (Since EFL 1.23) /// Since EFL 1.23.
/// </summary> /// </summary>
public class BindableFactoryPart<T> public class BindableFactoryPart<T>
{ {

View File

@ -15,7 +15,7 @@ namespace Efl { namespace Ui {
/// factory.Style().Bind("Name"); // The factory Style property is bound to the Name property for the given model. /// factory.Style().Bind("Name"); // The factory Style property is bound to the Name property for the given model.
/// </code> /// </code>
/// ///
/// (Since EFL 1.23) /// Since EFL 1.23.
/// ///
/// </summary> /// </summary>
public class ItemFactory<T> : Efl.Ui.LayoutFactory, IDisposable public class ItemFactory<T> : Efl.Ui.LayoutFactory, IDisposable

View File

@ -11,7 +11,7 @@ namespace Efl {
/// <summary>Generic <see cref="Efl.IModel" /> implementation for MVVM models based on <see cref="Efl.UserModel&lt;T&gt;" /> /// <summary>Generic <see cref="Efl.IModel" /> implementation for MVVM models based on <see cref="Efl.UserModel&lt;T&gt;" />
/// ///
/// (Since EFL 1.23) /// Since EFL 1.23.
/// </summary> /// </summary>
public class GenericModel<T> : Efl.Object, Efl.IModel, IDisposable public class GenericModel<T> : Efl.Object, Efl.IModel, IDisposable
{ {

View File

@ -65,7 +65,7 @@ internal class ModelHelper
/// PersonModel p = await model.GetAtAsync(0); /// PersonModel p = await model.GetAtAsync(0);
/// </code> /// </code>
/// ///
/// (Since EFL 1.23) /// Since EFL 1.23.
/// </summary> /// </summary>
[Efl.Eo.BindingEntity] [Efl.Eo.BindingEntity]
public class UserModel<T> : Efl.MonoModelInternal, IDisposable public class UserModel<T> : Efl.MonoModelInternal, IDisposable

View File

@ -39,7 +39,10 @@ static class UnsafeNativeMethods
} }
} }
/// <summary>Wrapper around the initialization functions of all modules. (Since EFL 1.23)</summary> /// <summary>Wrapper around the initialization functions of all modules.
///
/// Since EFL 1.23.
/// </summary>
public static class All public static class All
{ {
private static bool InitializedUi = false; private static bool InitializedUi = false;
@ -109,7 +112,10 @@ public static class All
namespace Ui namespace Ui
{ {
/// <summary>Initialization and shutdown of the UI libraries. (Since EFL 1.23)</summary> /// <summary>Initialization and shutdown of the UI libraries.
///
/// Since EFL 1.23.
/// </summary>
public static class Config public static class Config
{ {
public static void Init() public static void Init()

View File

@ -9,7 +9,10 @@ namespace Efl
namespace Csharp namespace Csharp
{ {
///<summary>The components to be initialized. (Since Efl 1.23)</summary> /// <summary>The components to be initialized.
///
/// Since EFL 1.23.
/// </summary>
public enum Components public enum Components
{ {
///<summary>Basic components: Eina, Eo, Ecore, Evas and DBus.</summary> ///<summary>Basic components: Eina, Eo, Ecore, Evas and DBus.</summary>
@ -22,13 +25,13 @@ public enum Components
/// This represents the entry point for the EFL framework /// This represents the entry point for the EFL framework
/// You can use this class to implement the 4 abstract methods which will then be called accordingly /// You can use this class to implement the 4 abstract methods which will then be called accordingly
/// All subsystems of efl are booted up correctly when the abstract methods of this class are called. /// All subsystems of efl are booted up correctly when the abstract methods of this class are called.
///
/// Since EFL 1.23.
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// Calls to efl outside those efl-callbacks or outside the mainloop are not allowed and will lead to issues /// Calls to efl outside those efl-callbacks or outside the mainloop are not allowed and will lead to issues
/// </remarks> /// </remarks>
/// ///
/// (Since EFL 1.23)
///
/// <example> /// <example>
/// UserApp is the class that implements the Application abstract /// UserApp is the class that implements the Application abstract
/// <code> /// <code>

View File

@ -19,7 +19,10 @@ internal class AccessorNativeFunctions
} }
/// <summary>Accessors provide an uniform way of accessing Eina containers, /// <summary>Accessors provide an uniform way of accessing Eina containers,
/// similar to C++ STL's and C# IEnumerable (SINCE EFL 1.23).</summary> /// similar to C++ STL's and C# IEnumerable.
///
/// Since EFL 1.23.
/// </summary>
public class Accessor<T> : IEnumerable<T>, IDisposable public class Accessor<T> : IEnumerable<T>, IDisposable
{ {
/// <summary>Pointer to the native accessor.</summary> /// <summary>Pointer to the native accessor.</summary>
@ -133,7 +136,10 @@ public class Accessor<T> : IEnumerable<T>, IDisposable
} }
} }
///<summary>Accessor for Inlists (SINCE EFL 1.23).</summary> /// <summary>Accessor for Inlists.
///
/// Since EFL 1.23.
/// </summary>
public class AccessorInList<T> : Accessor<T> public class AccessorInList<T> : Accessor<T>
{ {
/// <summary>Create a new accessor wrapping the given pointer.</summary> /// <summary>Create a new accessor wrapping the given pointer.</summary>
@ -153,7 +159,10 @@ public class AccessorInList<T> : Accessor<T>
} }
} }
///<summary>Accessor for Inarrays (SINCE EFL 1.23).</summary> /// <summary>Accessor for Inarrays.
///
/// Since EFL 1.23.
/// </summary>
public class AccessorInArray<T> : Accessor<T> public class AccessorInArray<T> : Accessor<T>
{ {
/// <summary>Create a new accessor wrapping the given pointer.</summary> /// <summary>Create a new accessor wrapping the given pointer.</summary>

View File

@ -45,7 +45,10 @@ public static class ArrayNativeFunctions
eina_array_foreach_custom_export_mono(IntPtr array, IntPtr cb, IntPtr fdata); eina_array_foreach_custom_export_mono(IntPtr array, IntPtr cb, IntPtr fdata);
} }
/// <summary>A container of contiguous allocated elements (SINCE EFL 1.23).</summary> /// <summary>A container of contiguous allocated elements.
///
/// Since EFL 1.23.
/// </summary>
public class Array<T> : IEnumerable<T>, IDisposable public class Array<T> : IEnumerable<T>, IDisposable
{ {
public static uint DefaultStep = 32; public static uint DefaultStep = 32;

View File

@ -7,7 +7,9 @@ namespace Eina
{ {
/// <summary> /// <summary>
/// A Generic buffer designed to be a mutable string (SINCE EFL 1.23). /// A Generic buffer designed to be a mutable string.
///
/// Since EFL 1.23.
/// </summary> /// </summary>
public class Binbuf : IDisposable public class Binbuf : IDisposable
{ {

View File

@ -41,7 +41,10 @@ internal static class NativeCustomExportFunctions
efl_mono_native_efl_unref_addr_get(); efl_mono_native_efl_unref_addr_get();
} }
/// <summary>Wrapper around native memory DllImport'd functions</summary> /// <summary>Wrapper around native memory DllImport'd functions.
///
/// Since EFL 1.23.
/// </summary>
public static class MemoryNative public static class MemoryNative
{ {
public static void Free(IntPtr ptr) public static void Free(IntPtr ptr)
@ -126,6 +129,11 @@ public static class MemoryNative
} }
} }
/// <summary>
/// Conversor of raw pointer to a type and type to raw pointer
///
/// Since EFL 1.23.
/// </summary>
public static class PrimitiveConversion public static class PrimitiveConversion
{ {
public static T PointerToManaged<T>(IntPtr nat) public static T PointerToManaged<T>(IntPtr nat)
@ -148,6 +156,11 @@ public static class PrimitiveConversion
} }
} }
/// <summary>
/// Conversor of string to native string and native string to string.
///
/// Since EFL 1.23.
/// </summary>
public static class StringConversion public static class StringConversion
{ {
public static IntPtr ManagedStringToNativeUtf8Alloc(string managedString) public static IntPtr ManagedStringToNativeUtf8Alloc(string managedString)

View File

@ -6,6 +6,11 @@ using System.Runtime.InteropServices;
namespace Eina namespace Eina
{ {
/// <summary>
/// Manage the initialization and cleanup for eina.
///
/// Since EFL 1.23.
/// </summary>
public class Config public class Config
{ {
[DllImport(efl.Libs.Eina)] private static extern int eina_init(); [DllImport(efl.Libs.Eina)] private static extern int eina_init();
@ -27,8 +32,9 @@ public class Config
} }
/// <summary> /// <summary>
/// Wrapper class for pointers that need some cleanup afterwards /// Wrapper class for pointers that need some cleanup afterwards like strings
/// like strings. ///
/// Since EFL 1.23.
/// </summary> /// </summary>
public class DisposableIntPtr : IDisposable public class DisposableIntPtr : IDisposable
{ {

View File

@ -6,7 +6,10 @@ using System.Runtime.InteropServices;
namespace Eina namespace Eina
{ {
/// <summary>Error codes from native Eina methods. (Since EFL 1.23)</summary> /// <summary>Error codes from native Eina methods.
///
/// Since EFL 1.23.
/// </summary>
public struct Error : IComparable<Error> public struct Error : IComparable<Error>
{ {
int code; int code;

View File

@ -130,7 +130,10 @@ public static class HashNativeFunctions
eina_hash_iterator_ptr_key_wrapper_new_custom_export_mono(IntPtr hash); eina_hash_iterator_ptr_key_wrapper_new_custom_export_mono(IntPtr hash);
} }
/// <summary>Wrapper around native dictionary mapping keys to values. (Since EFL 1.23)</summary> /// <summary>Wrapper around native dictionary mapping keys to values.
///
/// Since EFL 1.23.
/// </summary>
public class Hash<TKey, TValue> : IEnumerable<KeyValuePair<TKey,TValue>>, IDisposable public class Hash<TKey, TValue> : IEnumerable<KeyValuePair<TKey,TValue>>, IDisposable
{ {
public IntPtr Handle {get; set;} = IntPtr.Zero; public IntPtr Handle {get; set;} = IntPtr.Zero;

View File

@ -67,7 +67,10 @@ public static class InarrayNativeFunctions
eina_inarray_accessor_new(IntPtr array); eina_inarray_accessor_new(IntPtr array);
} }
/// <summary>Wrapper around an inplace array. (Since EFL 1.23)</summary> /// <summary>Wrapper around an inplace array.
///
/// Since EFL 1.23.
/// </summary>
public class Inarray<T> : IEnumerable<T>, IDisposable public class Inarray<T> : IEnumerable<T>, IDisposable
{ {
public static uint DefaultStep = 0; public static uint DefaultStep = 0;

View File

@ -80,7 +80,10 @@ public static class InlistNativeFunctions
eina_inlist_iterator_wrapper_new_custom_export_mono(IntPtr in_list); eina_inlist_iterator_wrapper_new_custom_export_mono(IntPtr in_list);
} }
/// <summary>Wrapper around an inplace list. (Since EFL 1.23)</summary> /// <summary>Wrapper around an inplace list.
///
/// Since EFL 1.23.
/// </summary>
public class Inlist<T> : IEnumerable<T>, IDisposable public class Inlist<T> : IEnumerable<T>, IDisposable
{ {
public IntPtr Handle {get;set;} = IntPtr.Zero; public IntPtr Handle {get;set;} = IntPtr.Zero;

View File

@ -29,7 +29,10 @@ public static class IteratorNativeFunctions
eina_carray_iterator_new(IntPtr array); eina_carray_iterator_new(IntPtr array);
} }
/// <summary>Wrapper around a native Eina iterator. (Since EFL 1.23)</summary> /// <summary>Wrapper around a native Eina iterator.
///
/// Since EFL 1.23.
/// </summary>
public class Iterator<T> : IEnumerable<T>, IDisposable public class Iterator<T> : IEnumerable<T>, IDisposable
{ {
public IntPtr Handle {get;set;} = IntPtr.Zero; public IntPtr Handle {get;set;} = IntPtr.Zero;

View File

@ -106,7 +106,10 @@ public static class ListNativeFunctions
eina_list_last_data_get_custom_export_mono(IntPtr list); eina_list_last_data_get_custom_export_mono(IntPtr list);
} }
/// <summary>Native wrapper around a linked list of items. (Since EFL 1.23)</summary> /// <summary>Native wrapper around a linked list of items.
///
/// Since EFL 1.23.
/// </summary>
public class List<T> : IEnumerable<T>, IDisposable public class List<T> : IEnumerable<T>, IDisposable
{ {

View File

@ -9,7 +9,10 @@ namespace Eina
{ {
// Manual wrappers around eina functions // Manual wrappers around eina functions
/// <summary>EFL Logging facilities. (Since EFL 1.23)</summary> /// <summary>EFL Logging facilities.
///
/// Since EFL 1.23.
/// </summary>
public class Log public class Log
{ {
[DllImport(efl.Libs.Eina)] private static extern void eina_log_print( [DllImport(efl.Libs.Eina)] private static extern void eina_log_print(

View File

@ -71,7 +71,7 @@ static internal class PromiseNativeMethods
/// ///
/// With a Promise you can attach futures to it, which will be used to notify of the value being available. /// With a Promise you can attach futures to it, which will be used to notify of the value being available.
/// ///
/// (Since Efl 1.23) /// Since Efl 1.23.
/// </summary> /// </summary>
public class Promise : IDisposable public class Promise : IDisposable
{ {

View File

@ -14,7 +14,10 @@ public interface ISliceBase
int Length {get;set;} int Length {get;set;}
}; };
/// <summary>Pointer to a slice of native memory. (Since EFL 1.23)</summary> /// <summary>Pointer to a slice of native memory.
///
/// Since EFL 1.23.
/// </summary>
[StructLayout(LayoutKind.Sequential)] [StructLayout(LayoutKind.Sequential)]
public struct Slice : ISliceBase public struct Slice : ISliceBase
{ {
@ -41,7 +44,10 @@ public struct Slice : ISliceBase
} }
} }
/// <summary>Pointer to a slice of native memory. (Since EFL 1.23)</summary> /// <summary>Pointer to a slice of native memory.
///
/// Since EFL 1.23.
/// </summary>
[StructLayout(LayoutKind.Sequential)] [StructLayout(LayoutKind.Sequential)]
public struct RwSlice : ISliceBase public struct RwSlice : ISliceBase
{ {

View File

@ -50,7 +50,10 @@ static internal class StrbufNativeMethods
} // namespace EinaNative } // namespace EinaNative
///<summary>Native string buffer, similar to the C# StringBuilder class. (Since EFL 1.23)</summary> /// <summary>Native string buffer, similar to the C# StringBuilder class.
///
/// Since EFL 1.23.
/// </summary>
public class Strbuf : IDisposable public class Strbuf : IDisposable
{ {
///<summary>Pointer to the underlying native handle.</summary> ///<summary>Pointer to the underlying native handle.</summary>

View File

@ -536,7 +536,10 @@ static internal class UnsafeNativeMethods
} }
} }
/// <summary>Struct for passing Values by value to Unmanaged functions. (Since EFL 1.23)</summary> /// <summary>Struct for passing Values by value to Unmanaged functions.
///
/// Since EFL 1.23.
/// </summary>
[StructLayout(LayoutKind.Sequential)] [StructLayout(LayoutKind.Sequential)]
public struct ValueNative public struct ValueNative
{ {
@ -549,7 +552,10 @@ public struct ValueNative
} }
} }
/// <summary>Exception for failures when setting an container item. (Since EFL 1.23)</summary> /// <summary>Exception for failures when setting an container item.
///
/// Since EFL 1.23.
/// </summary>
[Serializable] [Serializable]
public class SetItemFailedException : Exception public class SetItemFailedException : Exception
{ {
@ -574,7 +580,10 @@ public class SetItemFailedException : Exception
} }
} }
/// <summary>Exception for methods that must have been called on a container. (Since EFL 1.23)</summary> /// <summary>Exception for methods that must have been called on a container.
///
/// Since EFL 1.23.
/// </summary>
[Serializable] [Serializable]
public class InvalidValueTypeException: Exception public class InvalidValueTypeException: Exception
{ {
@ -600,7 +609,10 @@ public class InvalidValueTypeException: Exception
} }
/// <summary>Managed-side Enum to represent Eina_Value_Type constants. (Since EFL 1.23)</summary> /// <summary>Managed-side Enum to represent Eina_Value_Type constants.
///
/// Since EFL 1.23.
/// </summary>
public enum ValueType public enum ValueType
{ {
/// <summary>Signed 8 bit integer. Same as 'sbyte'</summary> /// <summary>Signed 8 bit integer. Same as 'sbyte'</summary>
@ -729,7 +741,7 @@ static class ValueTypeMethods
/// marshall_type_impl.hh in the generator). User-facing API still uses Eina.ValueType /// marshall_type_impl.hh in the generator). User-facing API still uses Eina.ValueType
/// normally.</para> /// normally.</para>
/// ///
/// (Since EFL 1.23) /// Since EFL 1.23.
/// </summary> /// </summary>
[EditorBrowsable(EditorBrowsableState.Never)] [EditorBrowsable(EditorBrowsableState.Never)]
public class ValueTypeBox public class ValueTypeBox
@ -935,7 +947,7 @@ static class ValueTypeBridge
/// blobs and structs. It is able to convert between data types, including /// blobs and structs. It is able to convert between data types, including
/// to and from strings.</para> /// to and from strings.</para>
/// ///
/// (Since EFL 1.23) /// Since EFL 1.23.
/// </summary> /// </summary>
public class Value : IDisposable, IComparable<Value>, IEquatable<Value> public class Value : IDisposable, IComparable<Value>, IEquatable<Value>
{ {

View File

@ -6,7 +6,10 @@ using System.Runtime.InteropServices;
namespace eldbus namespace eldbus
{ {
/// <summary>Initializes Eldbus. (Since EFL 1.23)</summary> /// <summary>Initializes Eldbus.
///
/// Since EFL 1.23.
/// </summary>
public static class Config public static class Config
{ {
[DllImport(efl.Libs.Eldbus)] private static extern int eldbus_init(); [DllImport(efl.Libs.Eldbus)] private static extern int eldbus_init();

View File

@ -88,7 +88,10 @@ public static class EldbusConnectionNativeFunctions
// eldbus_name_owner_changed_callback_del(IntPtr conn, string bus, Eldbus_Name_Owner_Changed_Cb cb, IntPtr cb_data); // eldbus_name_owner_changed_callback_del(IntPtr conn, string bus, Eldbus_Name_Owner_Changed_Cb cb, IntPtr cb_data);
} }
/// <summary>Represents a DBus connection. (Since EFL 1.23)</summary> /// <summary>Represents a DBus connection.
///
/// Since EFL 1.23.
/// </summary>
public class Connection : IDisposable public class Connection : IDisposable
{ {
public enum Type public enum Type

View File

@ -189,7 +189,10 @@ public static class EldbusMessageNativeFunctions
} }
/// <summary>Represents a DBus message. (Since EFL 1.23)</summary> /// <summary>Represents a DBus message.
///
/// Since EFL 1.23.
/// </summary>
public class Message : IDisposable public class Message : IDisposable
{ {
public IntPtr Handle {get;set;} = IntPtr.Zero; public IntPtr Handle {get;set;} = IntPtr.Zero;

View File

@ -82,7 +82,10 @@ public static class EldbusObjectNativeFunctions
// eldbus_object_manager_interfaces_removed(IntPtr obj, Eldbus_Signal_Cb cb, IntPtr cb_data); // eldbus_object_manager_interfaces_removed(IntPtr obj, Eldbus_Signal_Cb cb, IntPtr cb_data);
} }
/// <summary>Represents a DBus object. (Since EFL 1.23)</summary> /// <summary>Represents a DBus object.
///
/// Since EFL 1.23.
/// </summary>
public class Object : System.IDisposable public class Object : System.IDisposable
{ {

View File

@ -41,7 +41,10 @@ public static class EldbusPendingNativeFunctions
eldbus_pending_free_cb_del(IntPtr pending, IntPtr cb, IntPtr data); eldbus_pending_free_cb_del(IntPtr pending, IntPtr cb, IntPtr data);
} }
/// <summary>Represents a DBus pending. (Since EFL 1.23)</summary> /// <summary>Represents a DBus pending.
///
/// Since EFL 1.23.
/// </summary>
public class Pending public class Pending
{ {
public IntPtr Handle {get;set;} = IntPtr.Zero; public IntPtr Handle {get;set;} = IntPtr.Zero;

View File

@ -65,7 +65,10 @@ public static class EldbusProxyNativeFunctions
eldbus_proxy_event_callback_del(IntPtr proxy, int type, IntPtr cb, IntPtr cb_data); eldbus_proxy_event_callback_del(IntPtr proxy, int type, IntPtr cb, IntPtr cb_data);
} }
/// <summary>Represents a DBus proxy object. (Since EFL 1.23)</summary> /// <summary>Represents a DBus proxy object.
///
/// Since EFL 1.23.
/// </summary>
public class Proxy : IDisposable public class Proxy : IDisposable
{ {
public IntPtr Handle {get;set;} = IntPtr.Zero; public IntPtr Handle {get;set;} = IntPtr.Zero;

View File

@ -20,7 +20,7 @@ namespace Eo
public abstract class EoWrapper : IWrapper, IDisposable public abstract class EoWrapper : IWrapper, IDisposable
{ {
/// <summary>Object used to synchronize access to EFL events.</summary> /// <summary>Object used to synchronize access to EFL events.</summary>
protected readonly object eflBindingEventLock = new object(); private readonly object eflBindingEventLock = new object();
private bool generated = true; private bool generated = true;
private System.IntPtr handle = IntPtr.Zero; private System.IntPtr handle = IntPtr.Zero;
@ -215,30 +215,33 @@ public abstract class EoWrapper : IWrapper, IDisposable
/// <param name="evtDelegate">Managed delegate that will be called by evtCaller on event raising.</param> /// <param name="evtDelegate">Managed delegate that will be called by evtCaller on event raising.</param>
protected void AddNativeEventHandler(string lib, string key, Efl.EventCb evtCaller, object evtDelegate) protected void AddNativeEventHandler(string lib, string key, Efl.EventCb evtCaller, object evtDelegate)
{ {
IntPtr desc = Efl.EventDescription.GetNative(lib, key); lock (eflBindingEventLock)
if (desc == IntPtr.Zero)
{ {
Eina.Log.Error($"Failed to get native event {key}"); IntPtr desc = Efl.EventDescription.GetNative(lib, key);
return; if (desc == IntPtr.Zero)
} {
Eina.Log.Error($"Failed to get native event {key}");
return;
}
var wsPtr = Efl.Eo.Globals.efl_mono_wrapper_supervisor_get(handle); var wsPtr = Efl.Eo.Globals.efl_mono_wrapper_supervisor_get(handle);
var ws = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(wsPtr); var ws = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(wsPtr);
if (ws.EoEvents.ContainsKey((desc, evtDelegate))) if (ws.EoEvents.ContainsKey((desc, evtDelegate)))
{ {
Eina.Log.Warning($"Event proxy for event {key} already registered!"); Eina.Log.Warning($"Event proxy for event {key} already registered!");
return; return;
} }
IntPtr evtCallerPtr = Marshal.GetFunctionPointerForDelegate(evtCaller); IntPtr evtCallerPtr = Marshal.GetFunctionPointerForDelegate(evtCaller);
if (!Efl.Eo.Globals.efl_event_callback_priority_add(handle, desc, 0, evtCallerPtr, wsPtr)) if (!Efl.Eo.Globals.efl_event_callback_priority_add(handle, desc, 0, evtCallerPtr, wsPtr))
{ {
Eina.Log.Error($"Failed to add event proxy for event {key}"); Eina.Log.Error($"Failed to add event proxy for event {key}");
return; return;
} }
ws.EoEvents[(desc, evtDelegate)] = (evtCallerPtr, evtCaller); ws.EoEvents[(desc, evtDelegate)] = (evtCallerPtr, evtCaller);
Eina.Error.RaiseIfUnhandledException(); Eina.Error.RaiseIfUnhandledException();
}
} }
/// <summary>Removes the given event handler for the given event. For internal use only.</summary> /// <summary>Removes the given event handler for the given event. For internal use only.</summary>
@ -247,30 +250,33 @@ public abstract class EoWrapper : IWrapper, IDisposable
/// <param name="evtDelegate">The delegate to be removed.</param> /// <param name="evtDelegate">The delegate to be removed.</param>
protected void RemoveNativeEventHandler(string lib, string key, object evtDelegate) protected void RemoveNativeEventHandler(string lib, string key, object evtDelegate)
{ {
IntPtr desc = Efl.EventDescription.GetNative(lib, key); lock (eflBindingEventLock)
if (desc == IntPtr.Zero)
{ {
Eina.Log.Error($"Failed to get native event {key}"); IntPtr desc = Efl.EventDescription.GetNative(lib, key);
return; if (desc == IntPtr.Zero)
}
var wsPtr = Efl.Eo.Globals.efl_mono_wrapper_supervisor_get(handle);
var ws = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(wsPtr);
var evtPair = (desc, evtDelegate);
if (ws.EoEvents.TryGetValue(evtPair, out var caller))
{
if (!Efl.Eo.Globals.efl_event_callback_del(handle, desc, caller.evtCallerPtr, wsPtr))
{ {
Eina.Log.Error($"Failed to remove event proxy for event {key}"); Eina.Log.Error($"Failed to get native event {key}");
return; return;
} }
ws.EoEvents.Remove(evtPair); var wsPtr = Efl.Eo.Globals.efl_mono_wrapper_supervisor_get(handle);
Eina.Error.RaiseIfUnhandledException(); var ws = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(wsPtr);
} var evtPair = (desc, evtDelegate);
else if (ws.EoEvents.TryGetValue(evtPair, out var caller))
{ {
Eina.Log.Error($"Trying to remove proxy for event {key} when it is not registered."); if (!Efl.Eo.Globals.efl_event_callback_del(handle, desc, caller.evtCallerPtr, wsPtr))
{
Eina.Log.Error($"Failed to remove event proxy for event {key}");
return;
}
ws.EoEvents.Remove(evtPair);
Eina.Error.RaiseIfUnhandledException();
}
else
{
Eina.Log.Error($"Trying to remove proxy for event {key} when it is not registered.");
}
} }
} }

View File

@ -15,7 +15,7 @@ efl_main(void *data EINA_UNUSED, const Efl_Event *ev EINA_UNUSED)
efl::ui::Table table(instantiate, win); efl::ui::Table table(instantiate, win);
win.content_set(table); win.content_set(table);
table.content_padding_set(5, 5, true); table.content_padding_set(5, 5);
// FIXME // FIXME
// table.homogeneous_set(true); // table.homogeneous_set(true);

View File

@ -16,7 +16,7 @@ efl_main(void *data EINA_UNUSED, const Efl_Event *ev EINA_UNUSED)
efl::ui::Table table(instantiate, win); efl::ui::Table table(instantiate, win);
win.content_set(table); win.content_set(table);
table.content_padding_set(5, 5, true); table.content_padding_set(5, 5);
efl::canvas::Rectangle rect(instantiate, win); efl::canvas::Rectangle rect(instantiate, win);
rect.color_set(255, 0, 0, 255); rect.color_set(255, 0, 0, 255);

View File

@ -1878,6 +1878,17 @@ EAPI Eina_Bool edje_edit_part_mouse_events_get(Evas_Object *obj, const char *par
*/ */
EAPI Eina_Bool edje_edit_part_mouse_events_set(Evas_Object *obj, const char *part, Eina_Bool mouse_events); EAPI Eina_Bool edje_edit_part_mouse_events_set(Evas_Object *obj, const char *part, Eina_Bool mouse_events);
/**
* @brief Gets required value for part.
*
* @param obj Object being edited.
* @param part Part to get if the part is required by API.
*
* @return @c EINA_TRUE if part is required by the object's implementation, @c EINA_FALSE otherwise.
* @since 1.23
*/
EAPI Eina_Bool edje_edit_part_required_get(Evas_Object *obj, const char *part);
/** /**
* @brief Gets anti-aliasing for part. * @brief Gets anti-aliasing for part.
* *

View File

@ -3873,6 +3873,13 @@ edje_edit_part_mouse_events_set(Evas_Object *obj, const char *part, Eina_Bool mo
return EINA_TRUE; return EINA_TRUE;
} }
EAPI Eina_Bool
edje_edit_part_required_get(Evas_Object *obj, const char *part)
{
GET_RP_OR_RETURN(EINA_FALSE);
return rp->part->required;
}
EAPI Eina_Bool EAPI Eina_Bool
edje_edit_part_anti_alias_get(Evas_Object *obj, const char *part) edje_edit_part_anti_alias_get(Evas_Object *obj, const char *part)
{ {

View File

@ -40,9 +40,8 @@ interface @beta Efl.Gfx.Arrangement
set {} set {}
get {} get {}
values { values {
pad_horiz: double(0.0); [[Horizontal padding.]] pad_horiz: uint(0u); [[Horizontal padding.]]
pad_vert: double(0.0); [[Vertical padding.]] pad_vert: uint(0u); [[Vertical padding.]]
scalable: bool(false); [[$true if scalable.]]
} }
} }
} }

View File

@ -5,23 +5,21 @@ class @beta Efl.Text_Markup_Util {
methods { methods {
text_to_markup @static { text_to_markup @static {
[[Converts a given (UTF-8) text to a markup-compatible string. [[Converts a given (UTF-8) text to a markup-compatible string.
This is used mainly to set a plain text with the $.markup_set This is used mainly to set a plain text with @Efl.Text_Markup.markup.set.
property.
]] ]]
params { params {
@in text: string; [[The text (UTF-8) to convert to markup]] @in text: string; [[The text (UTF-8) to convert to markup.]]
} }
return: mstring @move; [[The markup representation of given text]] return: mstring @move; [[The markup representation of given text.]]
} }
markup_to_text @static { markup_to_text @static {
[[Converts a given (UTF-8) text to a markup-compatible string. [[Converts a markup string to a (UTF-8) plain text.
This is used mainly to set a plain text with the $.markup_set This is used mainly to set a markup text with the @Efl.Text.text.set.
property.
]] ]]
params { params {
@in text: string; [[The markup-text to convert to text (UTF-8)]] @in text: string; [[The markup-text to convert to text (UTF-8).]]
} }
return: mstring @move; [[The text representation of given format]] return: mstring @move; [[The text representation of given markup string.]]
} }
} }
} }

View File

@ -148,7 +148,7 @@ _efl_page_indicator_icon_efl_page_indicator_bind(Eo *obj,
if (spd->pager.obj) if (spd->pager.obj)
{ {
efl_ui_layout_orientation_set(spd->idbox, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL); efl_ui_layout_orientation_set(spd->idbox, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL);
efl_gfx_arrangement_content_padding_set(spd->idbox, 15, 15, EINA_TRUE); efl_gfx_arrangement_content_padding_set(spd->idbox, 15, 15);
pd->v = eina_value_float_new(0.0); pd->v = eina_value_float_new(0.0);

View File

@ -688,6 +688,11 @@ EOLIAN static void
_efl_ui_animation_view_efl_object_destructor(Eo *obj, _efl_ui_animation_view_efl_object_destructor(Eo *obj,
Efl_Ui_Animation_View_Data *pd EINA_UNUSED) Efl_Ui_Animation_View_Data *pd EINA_UNUSED)
{ {
Efl_Gfx_Vg_Value_Provider *vp;
EINA_LIST_FREE(pd->vp_list, vp)
efl_unref(vp);
eina_list_free(pd->vp_list);
efl_destructor(efl_super(obj, MY_CLASS)); efl_destructor(efl_super(obj, MY_CLASS));
} }
@ -1237,6 +1242,37 @@ _efl_ui_animation_view_efl_ui_widget_widget_sub_object_del(Eo *obj, Efl_Ui_Anima
efl_canvas_group_change(obj); efl_canvas_group_change(obj);
return EINA_TRUE; return EINA_TRUE;
EOLIAN static void
_efl_ui_animation_view_value_provider_override(Eo *obj EINA_UNUSED, Efl_Ui_Animation_View_Data *pd, Efl_Gfx_Vg_Value_Provider *value_provider)
{
if (!value_provider) return;
if (pd->vp_list)
{
const char *keypath1 = efl_gfx_vg_value_provider_keypath_get(value_provider);
if (!keypath1)
{
ERR("Couldn't override Value Provider(%p). Keypath is NULL.", value_provider);
return;
}
const Eina_List *l;
Efl_Gfx_Vg_Value_Provider *_vp;
EINA_LIST_FOREACH(pd->vp_list, l, _vp)
{
const char *keypath2 = efl_gfx_vg_value_provider_keypath_get(_vp);
if (!strcmp(keypath1, keypath2))
{
pd->vp_list = eina_list_remove(pd->vp_list, _vp);
efl_unref(_vp);
break;
}
}
}
efl_ref(value_provider);
pd->vp_list = eina_list_append(pd->vp_list, value_provider);
efl_key_data_set(pd->vg, "_vg_value_providers", pd->vp_list);
} }
EAPI Elm_Animation_View* EAPI Elm_Animation_View*

View File

@ -1,5 +1,5 @@
enum Efl.Ui.Animation_View_State enum @beta Efl.Ui.Animation_View_State
{ {
[[State of animation view]] [[State of animation view]]
not_ready, [[Animation is not ready to play. (Probably, it didn't file set yet or failed to read file.]] not_ready, [[Animation is not ready to play. (Probably, it didn't file set yet or failed to read file.]]
@ -256,7 +256,21 @@ class @beta Efl.Ui.Animation_View extends Efl.Ui.Widget implements Efl.Gfx.View,
]] ]]
} }
} }
value_provider_override{
[[Override each value of the animation object.
Values can be properties of Efl.Gfx.Vg.Value_provider such as color and matrix information.
Example:
Eo *vp = efl_add(EFL_GFX_VG_VALUE_PROVIDER_CLASS, NULL);
@Efl.Gfx.Vg.Value_Provider.keypath.set(vp, "SomeLayer:SomeObject:SomeContents");
// Set vp property
@.value_provider_override(target_animation_view, vg);
See @Efl.Gfx.Vg.Value_Provider
]]
params {
value_provider: Efl.Gfx.Vg.Value_Provider; [[ Override the values of the animation object. this should have keypath infomation. See @Efl.Gfx.Vg.Value_Provider ]]
}
}
} }
implements { implements {
Efl.Object.constructor; Efl.Object.constructor;

View File

@ -20,6 +20,7 @@ struct _Efl_Ui_Animation_View_Data
double min_progress; double min_progress;
double max_progress; double max_progress;
Eina_List *subs; Eina_List *subs;
Eina_List *vp_list;
Eina_Bool play_back : 1; Eina_Bool play_back : 1;
Eina_Bool auto_play : 1; Eina_Bool auto_play : 1;

View File

@ -3,10 +3,10 @@ class @beta Efl.Ui.Average_Model extends Efl.Ui.Exact_Model
[[Class to be used to store object item size for List/Grid View. [[Class to be used to store object item size for List/Grid View.
This model provide the same feature as @Efl.Ui.Exact_Model except for the This model provide the same feature as @Efl.Ui.Exact_Model except for the
@Efl.Model.property "$total.width" and "$total.height" which reflect an @Efl.Model.property $["total.width"] and $["total.height"] which reflect an
estimated value of the total size by using the currently know size from its estimated value of the total size by using the currently know size from its
children as an average size for all its children. As more children fill children as an average size for all its children. As more children fill
"$self.width" and "$self.height", this model will figure out a more precise $["self.width"] and $["self.height"], this model will figure out a more precise
answer. Once all children size is known, the result will be exact and the same answer. Once all children size is known, the result will be exact and the same
as @Efl.Ui.Exact_Model. as @Efl.Ui.Exact_Model.

View File

@ -292,7 +292,7 @@ _efl_ui_bg_legacy_efl_object_constructor(Eo *obj, void *_pd EINA_UNUSED)
efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY); efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY);
EFL_UI_BG_DATA_GET_OR_RETURN_VAL(obj, pd, obj); EFL_UI_BG_DATA_GET_OR_RETURN_VAL(obj, pd, obj);
efl_gfx_entity_scale_set(pd->img, 1.0); efl_gfx_entity_scale_set(pd->img, 1.0);
efl_ui_layout_finger_size_multiplier_set(obj, 0, 0);
return obj; return obj;
} }

View File

@ -406,27 +406,23 @@ _efl_ui_box_efl_ui_layout_orientable_orientation_get(const Eo *obj EINA_UNUSED,
} }
EOLIAN static void EOLIAN static void
_efl_ui_box_efl_gfx_arrangement_content_padding_set(Eo *obj, Efl_Ui_Box_Data *pd, double h, double v, Eina_Bool scalable) _efl_ui_box_efl_gfx_arrangement_content_padding_set(Eo *obj, Efl_Ui_Box_Data *pd, unsigned int h, unsigned int v)
{ {
scalable = !!scalable;
if (h < 0) h = 0; if (h < 0) h = 0;
if (v < 0) v = 0; if (v < 0) v = 0;
if (EINA_DBL_EQ(pd->pad.h, h) && EINA_DBL_EQ(pd->pad.v, v) && if (EINA_DBL_EQ(pd->pad.h, h) && EINA_DBL_EQ(pd->pad.v, v))
(pd->pad.scalable == scalable))
return; return;
pd->pad.h = h; pd->pad.h = h;
pd->pad.v = v; pd->pad.v = v;
pd->pad.scalable = scalable;
efl_pack_layout_request(obj); efl_pack_layout_request(obj);
} }
EOLIAN static void EOLIAN static void
_efl_ui_box_efl_gfx_arrangement_content_padding_get(const Eo *obj EINA_UNUSED, Efl_Ui_Box_Data *pd, double *h, double *v, Eina_Bool *scalable) _efl_ui_box_efl_gfx_arrangement_content_padding_get(const Eo *obj EINA_UNUSED, Efl_Ui_Box_Data *pd, unsigned int *h, unsigned int *v)
{ {
if (scalable) *scalable = pd->pad.scalable;
if (h) *h = pd->pad.h; if (h) *h = pd->pad.h;
if (v) *v = pd->pad.v; if (v) *v = pd->pad.v;
} }

View File

@ -19,8 +19,7 @@ struct _Efl_Ui_Box_Data
Eina_List *children; Eina_List *children;
struct { struct {
double h, v; unsigned int h, v;
Eina_Bool scalable: 1;
} pad; } pad;
struct { struct {

View File

@ -111,16 +111,12 @@ void
_efl_ui_container_layout_init(Eo* obj, Efl_Ui_Container_Layout_Calc *calc) _efl_ui_container_layout_init(Eo* obj, Efl_Ui_Container_Layout_Calc *calc)
{ {
Eina_Rect geom; Eina_Rect geom;
Eina_Bool pad_scalable;
geom = efl_gfx_entity_geometry_get(obj); geom = efl_gfx_entity_geometry_get(obj);
efl_gfx_hint_margin_get(obj, &calc[0].margin[0], &calc[0].margin[1], efl_gfx_hint_margin_get(obj, &calc[0].margin[0], &calc[0].margin[1],
&calc[1].margin[0], &calc[1].margin[1]); &calc[1].margin[0], &calc[1].margin[1]);
calc[0].scale = calc[1].scale = efl_gfx_entity_scale_get(obj);
efl_gfx_arrangement_content_padding_get(obj, &calc[0].pad, &calc[1].pad, &pad_scalable); efl_gfx_arrangement_content_padding_get(obj, &calc[0].pad, &calc[1].pad);
calc[0].pad = pad_scalable ? (calc[0].pad * calc[0].scale) : calc[0].pad;
calc[1].pad = pad_scalable ? (calc[1].pad * calc[1].scale) : calc[1].pad;
// pack align is used if "no item has a weight" // pack align is used if "no item has a weight"
efl_gfx_arrangement_content_align_get(obj, &calc[0].align, &calc[1].align); efl_gfx_arrangement_content_align_get(obj, &calc[0].align, &calc[1].align);

View File

@ -30,8 +30,7 @@ struct _Efl_Ui_Container_Layout_Calc
int size; int size;
int margin[2]; int margin[2];
double align; double align;
double scale; unsigned int pad;
double pad;
Eina_Bool fill : 1; Eina_Bool fill : 1;
}; };

View File

@ -2,13 +2,13 @@ class @beta Efl.Ui.Exact_Model extends Efl.Ui.Size_Model
{ {
[[Class to be used to store object item size for List/Grid View. [[Class to be used to store object item size for List/Grid View.
This model provide "$total.width" and "$total.height" as an accumulated size of all This model provide $["total.width"] and $["total.height"] as an accumulated size of all
its children "$self.width" and "$self.height" @Efl.Model.property. This is currently its children $["self.width"] and $["self.height"] @Efl.Model.property. This is currently
assuming a vertical list only. assuming a vertical list only.
This model will return an error code EAGAIN for "$item.width" and "$item.height" all This model will return an error code $EAGAIN for $["item.width"] and $["item.height"] all
the time and the View that use this Model should continue to get this value even after the time and the View that use this Model should continue to get this value even after
computing all the "$self.width" and "$self.height" of this object children.]] computing all the $["self.width"] and $["self.height"] of this object children.]]
implements { implements {
Efl.Object.constructor; Efl.Object.constructor;

View File

@ -2,16 +2,16 @@ class @beta Efl.Ui.Homogeneous_Model extends Efl.Ui.Size_Model
{ {
[[Class to be used to store object item size for List/Grid View. [[Class to be used to store object item size for List/Grid View.
This model provides the properties "$item.width" and "$item.height" which have the This model provides the properties $["item.width"] and $["item.height"] which have the
same value for all siblings of this object. The first sibling that defines "$self.width" same value for all siblings of this object. The first sibling that defines $["self.width"]
and "$self.height" set them for all other siblings and also set "$item.width" and and $["self.height"] set them for all other siblings and also set $["item.width"] and
"$item.height" for the parent (See @Efl.Ui.Size_Model). $["item.height"] for the parent (See @Efl.Ui.Size_Model).
Subsequent attempts to set "$self.width" or "$self.height" will fail with a Subsequent attempts to set $["self.width"] or $["self.height"] will fail with a
Read Only error code. Read Only error code.
The properties "$total.width" and "$total.height" are computed from the number of node, The properties $["total.width"] and $["total.height"] are computed from the number of node,
the "$self.width" and "$self.height" assuming that the View is a vertical list.]] the $["self.width"] and $["self.height"] assuming that the View is a vertical list.]]
implements { implements {
Efl.Object.constructor; Efl.Object.constructor;

View File

@ -1,13 +1,24 @@
class @beta Efl.Ui.Layout_Factory extends Efl.Ui.Caching_Factory class @beta Efl.Ui.Layout_Factory extends Efl.Ui.Caching_Factory
{ {
[[Efl Ui Layout Factory class]] [[@Efl.Ui.Factory that creates @Efl.Ui.Layout objects with caching.
This factory is meant to be used by @Efl.Ui.View objects that use
items with Layout and need the items to be created, updated,
their model set and connected automatically before the @Efl.Ui.View
receives the item instance.
This class inherits from @Efl.Ui.Caching_Factory and inherits
all its properties.
]]
methods { methods {
theme_config { theme_config {
[[]] [[Set the theme that will be applied to the created @Efl.Ui.Layout objects.
See @Efl.Ui.Layout_Base.theme for more details.
]]
params { params {
klass: string; [[The class of the group.]] klass: string; [[The class of the group.]]
group: string; [[The group.]] group: string; [[The group.]]
style: string; [[The style to used.]] style: string; [[The style to use.]]
} }
} }
} }

View File

@ -2,14 +2,14 @@ class @beta Efl.Ui.Size_Model extends Efl.Composite_Model
{ {
[[Class to be used to store object item size for List/Grid View. [[Class to be used to store object item size for List/Grid View.
This model provide the following properties that can be retrived by This model provide the following properties that can be retrieved by
@Efl.Model.properties.get : @Efl.Model.properties.get :
- "$self.width" and "$self.height" define the size of this object from the point of - $["self.width"] and $["self.height"] define the size of this object from the point of
view of the @Efl.Ui.View that use it. It only apply on children and not on the view of the @Efl.Ui.View that use it. They only apply to children and not to the
top root object. top root object.
- "$item.width" and "$item.height" define all the children size and is available - $["item.width"] and $["item.height"] define all the children size and are available
only on @Efl.Ui.Size_Model that do have children. only on @Efl.Ui.Size_Model that do have children.
- "$total.width" and "$total.height" define the accumulated size used by all the children. - $["total.width"] and $["total.height"] define the accumulated size used by all the children.
Only vertical list accumulation logic is implemented at this point.]] Only vertical list accumulation logic is implemented at this point.]]
data: null; data: null;

View File

@ -81,7 +81,7 @@ _efl_ui_spotlight_indicator_icon_efl_ui_spotlight_indicator_bind(Eo *obj, Efl_Ui
efl_content_set(efl_part(pd->container, "efl.indicator"), pd->indicator); efl_content_set(efl_part(pd->container, "efl.indicator"), pd->indicator);
efl_gfx_entity_visible_set(pd->indicator, EINA_TRUE); efl_gfx_entity_visible_set(pd->indicator, EINA_TRUE);
efl_ui_layout_orientation_set(pd->indicator, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL); efl_ui_layout_orientation_set(pd->indicator, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL);
efl_gfx_arrangement_content_padding_set(pd->indicator, 15, 15, EINA_TRUE); efl_gfx_arrangement_content_padding_set(pd->indicator, 15, 15);
for (int i = 0; i < efl_content_count(pd->container); ++i) for (int i = 0; i < efl_content_count(pd->container); ++i)
{ {

View File

@ -267,27 +267,23 @@ _efl_ui_table_efl_object_invalidate(Eo *obj, Efl_Ui_Table_Data *pd)
} }
EOLIAN static void EOLIAN static void
_efl_ui_table_efl_gfx_arrangement_content_padding_set(Eo *obj, Efl_Ui_Table_Data *pd, double h, double v, Eina_Bool scalable) _efl_ui_table_efl_gfx_arrangement_content_padding_set(Eo *obj, Efl_Ui_Table_Data *pd, unsigned int h, unsigned int v)
{ {
scalable = !!scalable;
if (h < 0) h = 0; if (h < 0) h = 0;
if (v < 0) v = 0; if (v < 0) v = 0;
if (EINA_DBL_EQ(pd->pad.h, h) && EINA_DBL_EQ(pd->pad.v, v) && if (EINA_DBL_EQ(pd->pad.h, h) && EINA_DBL_EQ(pd->pad.v, v))
(pd->pad.scalable == scalable))
return; return;
pd->pad.h = h; pd->pad.h = h;
pd->pad.v = v; pd->pad.v = v;
pd->pad.scalable = scalable;
efl_pack_layout_request(obj); efl_pack_layout_request(obj);
} }
EOLIAN static void EOLIAN static void
_efl_ui_table_efl_gfx_arrangement_content_padding_get(const Eo *obj EINA_UNUSED, Efl_Ui_Table_Data *pd, double *h, double *v, Eina_Bool *scalable) _efl_ui_table_efl_gfx_arrangement_content_padding_get(const Eo *obj EINA_UNUSED, Efl_Ui_Table_Data *pd, unsigned int *h, unsigned int *v)
{ {
if (scalable) *scalable = pd->pad.scalable;
if (h) *h = pd->pad.h; if (h) *h = pd->pad.h;
if (v) *v = pd->pad.v; if (v) *v = pd->pad.v;
} }

View File

@ -38,8 +38,7 @@ struct _Efl_Ui_Table_Data
int last_col, last_row; // only used by pack api int last_col, last_row; // only used by pack api
Efl_Ui_Layout_Orientation fill_dir; // direction in which cells are added when using pack() Efl_Ui_Layout_Orientation fill_dir; // direction in which cells are added when using pack()
struct { struct {
double h, v; unsigned int h, v;
Eina_Bool scalable: 1;
} pad; } pad;
struct { struct {
double h, v; double h, v;

View File

@ -50,10 +50,10 @@ _shrink_mode_set(Eo *obj,
if (shrink == EINA_TRUE) if (shrink == EINA_TRUE)
{ {
Evas_Coord w = 0; Evas_Coord w = 0;
double box_inner_item_width_padding = 0; unsigned int box_inner_item_width_padding = 0;
Eina_Value val; Eina_Value val;
efl_gfx_arrangement_content_padding_get(sd->box, &box_inner_item_width_padding, NULL, NULL); efl_gfx_arrangement_content_padding_get(sd->box, &box_inner_item_width_padding, NULL);
// unpack all items and entry // unpack all items and entry
efl_pack_unpack_all(sd->box); efl_pack_unpack_all(sd->box);
EINA_LIST_FOREACH(sd->layouts, l, layout) EINA_LIST_FOREACH(sd->layouts, l, layout)
@ -69,7 +69,7 @@ _shrink_mode_set(Eo *obj,
Eina_Size2D label_min = Eina_Size2D label_min =
efl_gfx_hint_size_combined_min_get(sd->label); efl_gfx_hint_size_combined_min_get(sd->label);
w -= label_min.w; w -= label_min.w;
w -= box_inner_item_width_padding; w -= (Evas_Coord)box_inner_item_width_padding;
} }
layout = NULL; layout = NULL;
@ -487,14 +487,14 @@ _box_resize_cb(void *data,
Eina_Rect r; Eina_Rect r;
Eina_List *l; Eina_List *l;
Eo *layout; Eo *layout;
double hpad; unsigned int hpad;
Efl_Ui_Tags_Data *sd = efl_data_scope_get(data, EFL_UI_TAGS_CLASS); Efl_Ui_Tags_Data *sd = efl_data_scope_get(data, EFL_UI_TAGS_CLASS);
r = efl_gfx_entity_geometry_get(sd->box); r = efl_gfx_entity_geometry_get(sd->box);
if ((r.w <= elm_config_finger_size_get()) || (r.h <= elm_config_finger_size_get())) return; if ((r.w <= elm_config_finger_size_get()) || (r.h <= elm_config_finger_size_get())) return;
efl_gfx_arrangement_content_padding_get(obj, &hpad, NULL, NULL); efl_gfx_arrangement_content_padding_get(obj, &hpad, NULL);
if (sd->h_box < r.h) if (sd->h_box < r.h)
efl_event_callback_call efl_event_callback_call
@ -511,9 +511,9 @@ _box_resize_cb(void *data,
min = efl_gfx_hint_size_combined_min_get(layout); min = efl_gfx_hint_size_combined_min_get(layout);
if (min.w > r.w - hpad) if (min.w > r.w - (int)hpad)
{ {
min.w = r.w - hpad; min.w = r.w - (int)hpad;
efl_gfx_hint_size_min_set(layout, EINA_SIZE2D(min.w, min.h)); efl_gfx_hint_size_min_set(layout, EINA_SIZE2D(min.w, min.h));
efl_gfx_entity_size_set(layout, EINA_SIZE2D(min.w, min.h)); efl_gfx_entity_size_set(layout, EINA_SIZE2D(min.w, min.h));
} }
@ -746,7 +746,7 @@ _view_init(Evas_Object *obj, Efl_Ui_Tags_Data *sd)
if (str) hpad = atoi(str); if (str) hpad = atoi(str);
str = elm_layout_data_get(obj, "vertical_pad"); str = elm_layout_data_get(obj, "vertical_pad");
if (str) vpad = atoi(str); if (str) vpad = atoi(str);
efl_gfx_arrangement_content_padding_set(sd->box, hpad, vpad, EINA_TRUE); efl_gfx_arrangement_content_padding_set(sd->box, hpad, vpad);
efl_content_set(efl_part(obj, "efl.box"), sd->box); efl_content_set(efl_part(obj, "efl.box"), sd->box);

View File

@ -1,5 +1,10 @@
typedef Eo Elm_Video; typedef Eo Elm_Video;
/**
* @defgroup Elm_Video Video
* @ingroup Elementary
*/
/** /**
* @brief Add a new Elm_Player object to the given parent Elementary (container) object. * @brief Add a new Elm_Player object to the given parent Elementary (container) object.
* *

View File

@ -81,6 +81,7 @@ extern "C" {
#include <canvas/efl_canvas_vg_image.eo.h> #include <canvas/efl_canvas_vg_image.eo.h>
#include <canvas/efl_canvas_vg_object.eo.h> #include <canvas/efl_canvas_vg_object.eo.h>
#include <canvas/efl_canvas_vg_shape.eo.h> #include <canvas/efl_canvas_vg_shape.eo.h>
#include <canvas/efl_gfx_vg_value_provider.eo.h>
#include <canvas/efl_gfx_mapping.eo.h> #include <canvas/efl_gfx_mapping.eo.h>
#include <canvas/efl_input_clickable.eo.h> #include <canvas/efl_input_clickable.eo.h>

View File

@ -439,6 +439,7 @@ typedef void (Evas_Canvas3D_Surface_Func)(Evas_Real *out_x,
#include "canvas/efl_canvas_proxy.eo.h" #include "canvas/efl_canvas_proxy.eo.h"
#include "canvas/efl_gfx_mapping.eo.h" #include "canvas/efl_gfx_mapping.eo.h"
#include "canvas/efl_gfx_vg_value_provider.eo.h"
/** /**
* @ingroup Evas_Object_VG * @ingroup Evas_Object_VG
* *

View File

@ -616,6 +616,8 @@ _cache_vg_entry_render(Evas_Object_Protected_Data *obj,
h = size.h; h = size.h;
} }
if (pd->vg_entry->vfd)
pd->vg_entry->vfd->vp_list = efl_key_data_get(obj->object, "_vg_value_providers");
root = evas_cache_vg_tree_get(vg_entry, pd->frame_idx); root = evas_cache_vg_tree_get(vg_entry, pd->frame_idx);
if (!root) return; if (!root) return;

View File

@ -0,0 +1,129 @@
#include "efl_gfx_vg_value_provider.h"
#define MY_CLASS EFL_GFX_VG_VALUE_PROVIDER_CLASS
EOLIAN static Eo *
_efl_gfx_vg_value_provider_efl_object_constructor(Eo *obj,
Efl_Gfx_Vg_Value_Provider_Data *pd EINA_UNUSED)
{
obj = efl_constructor(efl_super(obj, MY_CLASS));
pd->flag = EFL_GFX_VG_VALUE_PROVIDER_CHANGE_FLAG_NONE;
return obj;
}
EOLIAN static void
_efl_gfx_vg_value_provider_efl_object_destructor(Eo *obj,
Efl_Gfx_Vg_Value_Provider_Data *pd EINA_UNUSED)
{
if (pd->keypath) eina_stringshare_del(pd->keypath);
efl_destructor(efl_super(obj, MY_CLASS));
}
EOLIAN void
_efl_gfx_vg_value_provider_keypath_set(Eo *obj EINA_UNUSED, Efl_Gfx_Vg_Value_Provider_Data *pd, Eina_Stringshare *keypath)
{
if(!keypath) return;
eina_stringshare_replace(&pd->keypath, keypath);
}
EOLIAN Eina_Stringshare*
_efl_gfx_vg_value_provider_keypath_get(const Eo *obj EINA_UNUSED, Efl_Gfx_Vg_Value_Provider_Data *pd)
{
return pd->keypath;
}
EOLIAN void
_efl_gfx_vg_value_provider_transform_set(Eo *obj EINA_UNUSED, Efl_Gfx_Vg_Value_Provider_Data *pd, Eina_Matrix3 *m)
{
if (m)
{
if (!pd->m)
{
pd->m = malloc(sizeof (Eina_Matrix3));
if (!pd->m) return;
}
pd->flag = pd->flag | EFL_GFX_VG_VALUE_PROVIDER_CHANGE_FLAG_TRANSFORM_MATRIX;
memcpy(pd->m, m, sizeof (Eina_Matrix3));
}
else
{
free(pd->m);
pd->m = NULL;
}
}
EOLIAN Eina_Matrix3*
_efl_gfx_vg_value_provider_transform_get(const Eo *obj EINA_UNUSED, Efl_Gfx_Vg_Value_Provider_Data *pd)
{
return pd->m;
}
EOAPI void
_efl_gfx_vg_value_provider_fill_color_set(Eo *obj EINA_UNUSED, Efl_Gfx_Vg_Value_Provider_Data *pd, int r, int g, int b, int a)
{
pd->flag = pd->flag | EFL_GFX_VG_VALUE_PROVIDER_CHANGE_FLAG_FILL_COLOR;
pd->fill.r = r;
pd->fill.g = g;
pd->fill.b = b;
pd->fill.a = a;
}
EOAPI void
_efl_gfx_vg_value_provider_fill_color_get(const Eo *obj EINA_UNUSED, Efl_Gfx_Vg_Value_Provider_Data *pd, int *r, int *g, int *b, int *a)
{
if (r) *r = pd->fill.r;
if (g) *g = pd->fill.g;
if (b) *b = pd->fill.b;
if (a) *a = pd->fill.a;
}
EOAPI void
_efl_gfx_vg_value_provider_stroke_color_set(Eo *obj EINA_UNUSED, Efl_Gfx_Vg_Value_Provider_Data *pd, int r, int g, int b, int a)
{
pd->flag = pd->flag | EFL_GFX_VG_VALUE_PROVIDER_CHANGE_FLAG_STROKE_COLOR;
pd->stroke.r = r;
pd->stroke.g = g;
pd->stroke.b = b;
pd->stroke.a = a;
}
EOAPI void
_efl_gfx_vg_value_provider_stroke_color_get(const Eo *obj EINA_UNUSED, Efl_Gfx_Vg_Value_Provider_Data *pd, int *r, int *g, int *b, int *a)
{
if (r) *r = pd->stroke.r;
if (g) *g = pd->stroke.g;
if (b) *b = pd->stroke.b;
if (a) *a = pd->stroke.a;
}
EOAPI void
_efl_gfx_vg_value_provider_stroke_width_set(Eo *obj EINA_UNUSED, Efl_Gfx_Vg_Value_Provider_Data *pd, double w)
{
if (w < 0) return ;
pd->flag = pd->flag | EFL_GFX_VG_VALUE_PROVIDER_CHANGE_FLAG_STROKE_WIDTH;
pd->stroke.width = w;
}
EOAPI double
_efl_gfx_vg_value_provider_stroke_width_get(const Eo *obj EINA_UNUSED, Efl_Gfx_Vg_Value_Provider_Data *pd)
{
return pd->stroke.width;
}
/* This function only use in internal */
Efl_Gfx_Vg_Value_Provider_Change_Flag
efl_gfx_vg_value_provider_changed_flag_get(Eo *obj)
{
EINA_SAFETY_ON_FALSE_RETURN_VAL(efl_isa(obj, MY_CLASS), EFL_GFX_VG_VALUE_PROVIDER_CHANGE_FLAG_NONE);
Efl_Gfx_Vg_Value_Provider_Data *pd = efl_data_scope_get(obj, MY_CLASS);
if (!pd) return EFL_GFX_VG_VALUE_PROVIDER_CHANGE_FLAG_NONE;
return pd->flag;
}
#include "efl_gfx_vg_value_provider.eo.c"

View File

@ -0,0 +1,72 @@
class @beta Efl.Gfx.Vg.Value_Provider extends Efl.Object
{
[[Efl Vector Value Provider class.
This class is a set of that contain the value of several properties provided by content.
User can use this class to change the properties for the specific content specified by the keypath.
]]
methods {
@property keypath {
[[ Keypath is the target a specific content or a set of contents that will be updated.
It can include the specific name of the contents, wildcard(*) or Globstar(**).
]]
get {
}
set {
}
values {
keypath: stringshare; [[ The keypath of contents ]]
}
}
@property transform {
[[ User can adjust transform value of the content specified by the keypath. ]]
set {
}
get {
}
values {
m: ptr(Eina.Matrix3); [[ Matrix Value. ]]
}
}
@property fill_color {
[[ User can adjust color value of the fill content specified by the keypath. ]]
set {
}
get {
}
values {
r: int; [[ Red color value of fill. ]]
g: int; [[ Green color value of fill. ]]
b: int; [[ Blue color value of fill. ]]
a: int; [[ Alpha value of fill. ]]
}
}
@property stroke_color {
[[ User can adjust color value of the stroke content specified by the keypath. ]]
set {
}
get {
}
values {
r: int; [[ Red color value of stroke. ]]
g: int; [[ Green color value of stroke. ]]
b: int; [[ Blue color value of stroke. ]]
a: int; [[ Alpha value of stroke. ]]
}
}
@property stroke_width {
[[ User can adjust width value of the stroke content specified by the keypath. ]]
set {
}
get {
}
values {
width: double; [[ Width value of stroke. ]]
}
}
}
implements {
Efl.Object.constructor;
Efl.Object.destructor;
}
}

View File

@ -0,0 +1,33 @@
#ifndef EFL_GFX_VG_VALUE_PROVIDER_H
#define EFL_GFX_VG_VALUE_PROVIDER_H
#include "evas_common_private.h"
#include "evas_private.h"
#include "evas_vg_private.h"
struct _Efl_Gfx_Vg_Value_Provider_Data
{
Eo* obj;
Efl_Gfx_Vg_Value_Provider_Change_Flag flag;
Eina_Stringshare *keypath;
Eina_Matrix3 *m;
struct {
int r;
int g;
int b;
int a;
} fill;
struct {
int r;
int g;
int b;
int a;
double width;
} stroke;
};
typedef struct _Efl_Gfx_Vg_Value_Provider_Data Efl_Gfx_Vg_Value_Provider_Data;
#endif

View File

@ -9737,7 +9737,7 @@ _evas_textblock_cursor_cluster_pos_get(Evas_Textblock_Cursor *cur, Eina_Bool inc
Evas_Text_Props_Info *info = ti->text_props.info; Evas_Text_Props_Info *info = ti->text_props.info;
int it_index = ((inc) ? cur->pos : ret) - last_it->text_pos; int it_index = ((inc) ? cur->pos : ret) - last_it->text_pos;
Evas_Font_OT_Info ot; Evas_Font_OT_Info ot = {0};
if (ti->text_props.len != ti->text_props.text_len)/*if code point count same as glyph count skip it*/ if (ti->text_props.len != ti->text_props.text_len)/*if code point count same as glyph count skip it*/
{ {
Evas_BiDi_Direction itdir = ti->text_props.bidi_dir; Evas_BiDi_Direction itdir = ti->text_props.bidi_dir;

View File

@ -9,6 +9,8 @@ typedef struct _Efl_Canvas_Vg_Gradient_Data Efl_Canvas_Vg_Gradient_Data;
typedef struct _Efl_Canvas_Vg_Interpolation Efl_Canvas_Vg_Interpolation; typedef struct _Efl_Canvas_Vg_Interpolation Efl_Canvas_Vg_Interpolation;
typedef struct _Efl_Canvas_Vg_Object_Data Efl_Canvas_Vg_Object_Data; typedef struct _Efl_Canvas_Vg_Object_Data Efl_Canvas_Vg_Object_Data;
typedef enum _Efl_Gfx_Vg_Value_Provider_Change_Flag Efl_Gfx_Vg_Value_Provider_Change_Flag;
typedef struct _Vg_Cache typedef struct _Vg_Cache
{ {
Eina_Hash *vfd_hash; Eina_Hash *vfd_hash;
@ -128,6 +130,15 @@ struct _Efl_Canvas_Vg_Interpolation
Eina_Point_3D skew; Eina_Point_3D skew;
}; };
enum _Efl_Gfx_Vg_Value_Provider_Change_Flag
{
EFL_GFX_VG_VALUE_PROVIDER_CHANGE_FLAG_NONE = 0,
EFL_GFX_VG_VALUE_PROVIDER_CHANGE_FLAG_FILL_COLOR = 2,
EFL_GFX_VG_VALUE_PROVIDER_CHANGE_FLAG_STROKE_COLOR = 4,
EFL_GFX_VG_VALUE_PROVIDER_CHANGE_FLAG_STROKE_WIDTH = 8,
EFL_GFX_VG_VALUE_PROVIDER_CHANGE_FLAG_TRANSFORM_MATRIX = 16
};
Efl_Gfx_Vg_Value_Provider_Change_Flag efl_gfx_vg_value_provider_changed_flag_get(Eo *obj);
void evas_cache_vg_init(void); void evas_cache_vg_init(void);
void evas_cache_vg_shutdown(void); void evas_cache_vg_shutdown(void);

View File

@ -40,6 +40,7 @@ pub_eo_files = [
'efl_canvas_text_factory.eo', 'efl_canvas_text_factory.eo',
'efl_canvas_rectangle.eo', 'efl_canvas_rectangle.eo',
'efl_canvas_object.eo', 'efl_canvas_object.eo',
'efl_gfx_vg_value_provider.eo',
'efl_canvas_vg_object.eo', 'efl_canvas_vg_object.eo',
'efl_canvas_vg_node.eo', 'efl_canvas_vg_node.eo',
'efl_canvas_vg_container.eo', 'efl_canvas_vg_container.eo',
@ -179,6 +180,7 @@ evas_src += files([
'efl_canvas_animation_group_parallel.c', 'efl_canvas_animation_group_parallel.c',
'efl_canvas_animation_group_sequential.c', 'efl_canvas_animation_group_sequential.c',
'efl_canvas_animation_player.c', 'efl_canvas_animation_player.c',
'efl_gfx_vg_value_provider.c',
'efl_canvas_vg_object.c', 'efl_canvas_vg_object.c',
'efl_canvas_vg_node.c', 'efl_canvas_vg_node.c',
'efl_canvas_vg_container.c', 'efl_canvas_vg_container.c',

View File

@ -599,12 +599,27 @@ evas_module_find_type(Evas_Module_Type type, const char *name)
{ {
if (run_in_tree == 1) if (run_in_tree == 1)
{ {
char subsystem[PATH_MAX]; // special cases due to compleixty of meson build and
// putting these in odd places in the tree - do special
// name lookups for build in tree module lookups
if (type == EVAS_MODULE_TYPE_IMAGE_LOADER)
{
snprintf(buffer, sizeof(buffer),
PACKAGE_BUILD_DIR"/src/lib/evas_goal/libshared_loader_%s"MOD_SUFFIX, name);
}
else if (type == EVAS_MODULE_TYPE_IMAGE_SAVER)
{
snprintf(buffer, sizeof(buffer),
PACKAGE_BUILD_DIR"/src/lib/evas_goal/libshared_saver_%s"MOD_SUFFIX, name);
}
else
{
char subsystem[PATH_MAX];
snprintf(subsystem, sizeof(subsystem), "evas/%s", type_str); snprintf(subsystem, sizeof(subsystem), "evas/%s", type_str);
bs_mod_get(buffer, sizeof(buffer), subsystem, name); bs_mod_get(buffer, sizeof(buffer), subsystem, name);
if (!evas_file_path_exists(buffer)) }
buffer[0] = '\0'; if (!evas_file_path_exists(buffer)) buffer[0] = '\0';
} }
} }
#endif #endif

View File

@ -1541,6 +1541,7 @@ struct _Vg_File_Data
Vg_File_Anim_Data *anim_data; //only when animation supported. Vg_File_Anim_Data *anim_data; //only when animation supported.
int ref; int ref;
int w, h; //default size int w, h; //default size
Eina_List *vp_list; //Value providers.
void *loader_data; //loader specific local data void *loader_data; //loader specific local data

View File

@ -1,3 +1,98 @@
#fixed dependencies by efl
png = dependency('libpng')
tiff = dependency('libtiff-4', required: get_option('evas-loaders-disabler').contains('tiff') == false)
giflib = cc.find_library('gif')
webp = dependency('libwebp', required: get_option('evas-loaders-disabler').contains('webp') == false)
evas_loader_saver_mod_bmp = ['bmp', 'shared', []]
evas_loader_saver_mod_eet = ['eet', 'static', [eet]]
evas_loader_saver_mod_generic = ['generic', 'shared', [rt]]
evas_loader_saver_mod_gif = ['gif', 'shared', [giflib]]
evas_loader_saver_mod_ico = ['ico', 'shared', []]
evas_loader_saver_mod_jpeg = ['jpeg', 'static', [jpeg]]
evas_loader_saver_mod_pmaps = ['pmaps', 'shared', []]
evas_loader_saver_mod_png = ['png', 'static', [png]]
evas_loader_saver_mod_psd = ['psd', 'shared', []]
evas_loader_saver_mod_tga = ['tga', 'shared', []]
evas_loader_saver_mod_tgv = ['tgv', 'shared', [rg_etc, lz4]]
evas_loader_saver_mod_tiff = ['tiff', 'shared', [tiff]]
evas_loader_saver_mod_wbmp = ['wbmp', 'shared', []]
evas_loader_saver_mod_webp = ['webp', 'shared', [webp]]
evas_loader_saver_mod_xpm = ['xpm', 'shared', []]
evas_image_loaders_file = [
evas_loader_saver_mod_bmp,
evas_loader_saver_mod_eet,
evas_loader_saver_mod_generic,
evas_loader_saver_mod_gif,
evas_loader_saver_mod_ico,
evas_loader_saver_mod_jpeg,
evas_loader_saver_mod_pmaps,
evas_loader_saver_mod_png,
evas_loader_saver_mod_psd,
evas_loader_saver_mod_tga,
evas_loader_saver_mod_tgv,
evas_loader_saver_mod_tiff,
evas_loader_saver_mod_wbmp,
evas_loader_saver_mod_webp,
evas_loader_saver_mod_xpm
]
evas_image_savers_file = [
evas_loader_saver_mod_eet,
evas_loader_saver_mod_jpeg,
evas_loader_saver_mod_png,
evas_loader_saver_mod_tgv,
evas_loader_saver_mod_tiff,
evas_loader_saver_mod_webp
]
foreach loader_inst : evas_image_loaders_file
loader = loader_inst[0]
loader_type = loader_inst[1]
loader_deps = loader_inst[2]
if get_option('evas-loaders-disabler').contains(loader) == false
if loader_type == 'static'
config_h.set('BUILD_LOADER_'+loader.to_upper(), '1')
file = join_paths(meson.source_root(), 'src', 'modules', 'evas', 'image_loaders', loader, 'evas_image_load_'+loader+'.c')
config_h.set('EVAS_STATIC_BUILD_'+loader.to_upper(), '1')
tmp = static_library('image_loader_'+loader, file,
include_directories : config_dir,
dependencies : [evas_pre] + loader_deps
)
evas_static_list += [declare_dependency(
sources: file,
dependencies: loader_deps,
)]
endif
else
message('Image loader '+loader+' disabled')
endif
endforeach
foreach loader_inst : evas_image_savers_file
loader = loader_inst[0]
loader_type = loader_inst[1]
loader_deps = loader_inst[2]
if get_option('evas-loaders-disabler').contains(loader) == false
if loader_type == 'static'
config_h.set('BUILD_LOADER_'+loader.to_upper(), '1')
file = join_paths(meson.source_root(), 'src', 'modules', 'evas', 'image_savers', loader, 'evas_image_save_'+loader+'.c')
config_h.set('EVAS_STATIC_BUILD_'+loader.to_upper(), '1')
tmp = static_library('image_saver_'+loader, file,
include_directories : config_dir,
dependencies : [evas_pre] + loader_deps
)
evas_static_list += [declare_dependency(
sources: file,
dependencies: loader_deps,
)]
endif
else
message('Image saver '+loader+' disabled')
endif
endforeach
evas_lib = library('evas', evas_lib = library('evas',
'empty.c', 'empty.c',
#all the source code is coming from evas_pre_lib_dep #all the source code is coming from evas_pre_lib_dep
@ -34,3 +129,51 @@ pkgconfig.generate(evas_lib,
version : version_major + '.' + version_minor + '.' + version_micro, version : version_major + '.' + version_minor + '.' + version_micro,
libraries : [eina, ecore, ector, emile, lua], libraries : [eina, ecore, ector, emile, lua],
) )
foreach loader_inst : evas_image_loaders_file
loader = loader_inst[0]
loader_type = loader_inst[1]
loader_deps = loader_inst[2]
if get_option('evas-loaders-disabler').contains(loader) == false
if loader_type == 'shared'
config_h.set('BUILD_LOADER_'+loader.to_upper(), '1')
file = join_paths(meson.source_root(), 'src', 'modules', 'evas', 'image_loaders', loader, 'evas_image_load_'+loader+'.c')
evas_package_modules = join_paths(dir_lib, 'evas', 'modules')
mod_install_dir = join_paths(evas_package_modules, 'image_loaders', loader, version_name)
shared_module('shared_loader_'+loader, file,
include_directories : config_dir,
dependencies : [eina, evas] + loader_deps,
install : true,
install_dir : mod_install_dir,
name_suffix : sys_mod_extension
)
module_files += join_paths(mod_install_dir, 'libshared_loader_'+loader + '.' + sys_mod_extension)
endif
else
message('Image loader '+loader+' disabled')
endif
endforeach
foreach loader_inst : evas_image_savers_file
loader = loader_inst[0]
loader_type = loader_inst[1]
loader_deps = loader_inst[2]
if get_option('evas-loaders-disabler').contains(loader) == false
if loader_type == 'shared'
config_h.set('BUILD_LOADER_'+loader.to_upper(), '1')
file = join_paths(meson.source_root(), 'src', 'modules', 'evas', 'image_savers', loader, 'evas_image_save_'+loader+'.c')
evas_package_modules = join_paths(dir_lib, 'evas', 'modules')
mod_install_dir = join_paths(evas_package_modules, 'image_savers', loader, version_name)
shared_module('shared_saver_'+loader, file,
include_directories : config_dir,
dependencies : [eina, evas] + loader_deps,
install : true,
install_dir : mod_install_dir,
name_suffix : sys_mod_extension
)
module_files += join_paths(mod_install_dir, 'libshared_saver_'+loader + '.' + sys_mod_extension)
endif
else
message('Image saver '+loader+' disabled')
endif
endforeach

View File

@ -13,15 +13,11 @@ install_headers('Evas_Engine_Buffer.h',
install_dir : join_paths(dir_include, 'evas-'+version_major), install_dir : join_paths(dir_include, 'evas-'+version_major),
) )
if get_option('evas-modules') == 'shared' evas_engine_buffer_mod = shared_module(mod_full_name, engine_src,
evas_engine_buffer_mod = shared_module(mod_full_name, engine_src, include_directories : config_dir + [engine_include_dir],
include_directories : config_dir + [engine_include_dir], dependencies : [eina, evas] + engine_deps,
dependencies : [eina, evas] + engine_deps, install : true,
install : true, install_dir : mod_install_dir,
install_dir : mod_install_dir, name_suffix : sys_mod_extension
name_suffix : sys_mod_extension )
) module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
else
evas_engine_buffer_mod = []
endif

View File

@ -7,13 +7,11 @@ engine_src = files([
engine_deps = [ecore_drm2, libdrm] engine_deps = [ecore_drm2, libdrm]
if get_option('evas-modules') == 'shared' shared_module(mod_full_name, engine_src,
shared_module(mod_full_name, engine_src, include_directories : config_dir + [engine_include_dir],
include_directories : config_dir + [engine_include_dir], dependencies : [eina, evas] + engine_deps,
dependencies : [eina, evas] + engine_deps, install : true,
install : true, install_dir : mod_install_dir,
install_dir : mod_install_dir, name_suffix : sys_mod_extension
name_suffix : sys_mod_extension )
) module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
endif

View File

@ -9,13 +9,11 @@ engine_src = files([
engine_deps = [ecore_fb] engine_deps = [ecore_fb]
if get_option('evas-modules') == 'shared' shared_module(mod_full_name, engine_src,
shared_module(mod_full_name, engine_src, include_directories : config_dir + [engine_include_dir],
include_directories : config_dir + [engine_include_dir], dependencies : [eina, evas] + engine_deps,
dependencies : [eina, evas] + engine_deps, install : true,
install : true, install_dir : mod_install_dir,
install_dir : mod_install_dir, name_suffix : sys_mod_extension
name_suffix : sys_mod_extension )
) module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
endif

View File

@ -7,13 +7,11 @@ engine_src = files([
engine_deps = [ecore_cocoa, gl_deps] engine_deps = [ecore_cocoa, gl_deps]
if get_option('evas-modules') == 'shared' shared_module(mod_full_name, engine_src,
shared_module(mod_full_name, engine_src, include_directories : config_dir + [engine_include_dir],
include_directories : config_dir + [engine_include_dir], dependencies : [eina, evas] + engine_deps,
dependencies : [eina, evas] + engine_deps, install : true,
install : true, install_dir : mod_install_dir,
install_dir : mod_install_dir, name_suffix : sys_mod_extension
name_suffix : sys_mod_extension )
) module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
endif

View File

@ -7,13 +7,11 @@ engine_src = files([
engine_deps = [ecore_drm2, libdrm, gl_deps, dependency('gbm')] engine_deps = [ecore_drm2, libdrm, gl_deps, dependency('gbm')]
if get_option('evas-modules') == 'shared' shared_module(mod_full_name, engine_src,
shared_module(mod_full_name, engine_src, include_directories : config_dir + [engine_include_dir],
include_directories : config_dir + [engine_include_dir], dependencies : [eina, evas] + engine_deps,
dependencies : [eina, evas] + engine_deps, install : true,
install : true, install_dir : mod_install_dir,
install_dir : mod_install_dir, name_suffix : sys_mod_extension
name_suffix : sys_mod_extension )
) module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
endif

View File

@ -70,13 +70,11 @@ engine_deps = [gl_deps]
engine_include_dir = include_directories(join_paths('..','software_generic'), join_paths('..', 'gl_common')) engine_include_dir = include_directories(join_paths('..','software_generic'), join_paths('..', 'gl_common'))
if get_option('evas-modules') == 'shared' shared_module(mod_full_name, engine_src,
shared_module(mod_full_name, engine_src, include_directories : config_dir + [engine_include_dir],
include_directories : config_dir + [engine_include_dir], dependencies : [eina, evas] + engine_deps,
dependencies : [eina, evas] + engine_deps, install : true,
install : true, install_dir : mod_install_dir,
install_dir : mod_install_dir, name_suffix : sys_mod_extension
name_suffix : sys_mod_extension )
) module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
endif

View File

@ -7,13 +7,11 @@ engine_src = files([
engine_deps = [ecore_x_deps, gl_deps] engine_deps = [ecore_x_deps, gl_deps]
if get_option('evas-modules') == 'shared' shared_module(mod_full_name, engine_src,
shared_module(mod_full_name, engine_src, include_directories : config_dir + [engine_include_dir],
include_directories : config_dir + [engine_include_dir], dependencies : [eina, evas] + engine_deps,
dependencies : [eina, evas] + engine_deps, install : true,
install : true, install_dir : mod_install_dir,
install_dir : mod_install_dir, name_suffix : sys_mod_extension
name_suffix : sys_mod_extension )
) module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
endif

View File

@ -62,28 +62,6 @@ foreach engine_conf : engines
subdir(engine) subdir(engine)
if get_option('evas-modules') == 'static'
tmp = static_library(mod_full_name, engine_src,
include_directories : config_dir + [engine_include_dir],
dependencies : [eina, evas_pre] + engine_deps,
)
evas_static_list += declare_dependency(
include_directories: [include_directories('.')] + config_dir + [engine_include_dir],
link_with: tmp,
dependencies : [eina, evas_pre] + engine_deps,
sources : engine_src
)
if engine == 'gl_generic'
#special case, see evas_module.c
config_h.set('EVAS_STATIC_BUILD_GL_COMMON', '1')
else
config_h.set('EVAS_STATIC_BUILD_'+engine.to_upper(), '1')
endif
else
#nothing here shared building is handled directly on the engine configuration side
#reason for this is that the .so files have to be placed in the correct directory in order
# to make them discoverable by evas module code
endif
config_h.set('BUILD_ENGINE_'+engine.to_upper(), '1') config_h.set('BUILD_ENGINE_'+engine.to_upper(), '1')
endif endif
endforeach endforeach

View File

@ -7,14 +7,12 @@ engine_src = files([
engine_deps = [cc.find_library('ddraw')] engine_deps = [cc.find_library('ddraw')]
if get_option('evas-modules') == 'shared' shared_module(mod_full_name, engine_src,
shared_module(mod_full_name, engine_src, include_directories : config_dir + [engine_include_dir],
include_directories : config_dir + [engine_include_dir], cpp_args: ['-fno-rtti', '-fno-exceptions'],
cpp_args: ['-fno-rtti', '-fno-exceptions'], dependencies : [eina, evas] + engine_deps,
dependencies : [eina, evas] + engine_deps, install : true,
install : true, install_dir : mod_install_dir,
install_dir : mod_install_dir, name_suffix : sys_mod_extension
name_suffix : sys_mod_extension )
) module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
endif

View File

@ -7,13 +7,11 @@ engine_src = files([
engine_deps = [cc.find_library('gdi32')] engine_deps = [cc.find_library('gdi32')]
if get_option('evas-modules') == 'shared' shared_module(mod_full_name, engine_src,
shared_module(mod_full_name, engine_src, include_directories : config_dir + [engine_include_dir],
include_directories : config_dir + [engine_include_dir], dependencies : [eina, evas] + engine_deps,
dependencies : [eina, evas] + engine_deps, install : true,
install : true, install_dir : mod_install_dir,
install_dir : mod_install_dir, name_suffix : sys_mod_extension
name_suffix : sys_mod_extension )
) module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
endif

View File

@ -28,13 +28,11 @@ config_h.set('BUILD_ENGINE_SOFTWARE_XLIB', '1')
#it looks weird but is right, gl_deps is needed for evas_x_egl.c #it looks weird but is right, gl_deps is needed for evas_x_egl.c
engine_deps = [x11, ecore_x, ecore_x_deps, gl_deps] engine_deps = [x11, ecore_x, ecore_x_deps, gl_deps]
if get_option('evas-modules') == 'shared' shared_module(mod_full_name, engine_src,
shared_module(mod_full_name, engine_src, include_directories : config_dir + [engine_include_dir],
include_directories : config_dir + [engine_include_dir], dependencies : [eina, evas] + engine_deps,
dependencies : [eina, evas] + engine_deps, install : true,
install : true, install_dir : mod_install_dir,
install_dir : mod_install_dir, name_suffix : sys_mod_extension
name_suffix : sys_mod_extension )
) module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
endif

View File

@ -8,14 +8,11 @@ engine_deps = [ecore_wl2, dependency('wayland-egl'), gl_deps]
engine_include_dir = include_directories(join_paths('..','wayland_common')) engine_include_dir = include_directories(join_paths('..','wayland_common'))
shared_module(mod_full_name, engine_src,
if get_option('evas-modules') == 'shared' include_directories : config_dir + [engine_include_dir],
shared_module(mod_full_name, engine_src, dependencies : [eina, evas] + engine_deps,
include_directories : config_dir + [engine_include_dir], install : true,
dependencies : [eina, evas] + engine_deps, install_dir : mod_install_dir,
install : true, name_suffix : sys_mod_extension
install_dir : mod_install_dir, )
name_suffix : sys_mod_extension module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
)
module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
endif

View File

@ -8,13 +8,11 @@ engine_deps = [ecore_wl2]
engine_include_dir = include_directories(join_paths('..','wayland_common')) engine_include_dir = include_directories(join_paths('..','wayland_common'))
if get_option('evas-modules') == 'shared' shared_module(mod_full_name, engine_src,
shared_module(mod_full_name, engine_src, include_directories : config_dir + [engine_include_dir],
include_directories : config_dir + [engine_include_dir], dependencies : [eina, evas] + engine_deps,
dependencies : [eina, evas] + engine_deps, install : true,
install : true, install_dir : mod_install_dir,
install_dir : mod_install_dir, name_suffix : sys_mod_extension
name_suffix : sys_mod_extension )
) module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
endif

Some files were not shown because too many files have changed in this diff Show More