forked from enlightenment/efl
Merge branch 'master' into devs/hermet/lottie
This commit is contained in:
commit
7b3036a992
|
@ -25,7 +25,7 @@ if [ "$DISTRO" != "" ] ; then
|
|||
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 \
|
||||
-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 \
|
||||
-Decore-imf-loaders-disabler=xim,ibus,scim -Demotion-loaders-disabler=gstreamer,gstreamer1,libvlc,xine \
|
||||
-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 \
|
||||
-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 "
|
||||
|
||||
if [ "$1" = "options-enabled" ]; then
|
||||
|
|
|
@ -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":[]}
|
|
@ -133,7 +133,7 @@ foreach widget_preview : widget_previews
|
|||
dependencies: elementary,
|
||||
build_by_default: false,
|
||||
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_SRC_DIR="'+meson.current_source_dir()+'"',
|
||||
'-DDOCW_DIR="'+meson.current_build_dir()+'"']
|
||||
|
@ -182,8 +182,8 @@ doc_target += custom_target('doxygen',
|
|||
)
|
||||
|
||||
compress_target = custom_target('package_doc_tar',
|
||||
command: [tar, '-C', meson.build_root(), '-cf', 'efl-'+meson.project_version()+'.tar', 'html', 'man'],
|
||||
output: 'efl-'+meson.project_version()+'.tar',
|
||||
command: [tar, '-C', meson.build_root(), '--xz', '-cf', 'efl-'+meson.project_version()+'-doc.tar.xz', 'html', 'man'],
|
||||
output: 'efl-'+meson.project_version()+'-doc.tar.xz',
|
||||
depends: doc_target,
|
||||
build_by_default: false
|
||||
)
|
||||
|
|
|
@ -8,6 +8,7 @@ evas_object_show(bx);
|
|||
Evas_Object *o = elm_colorselector_add(win);
|
||||
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);;
|
||||
elm_colorselector_palette_item_selected_set(eina_list_data_get(elm_colorselector_palette_items_get(o)), EINA_TRUE);
|
||||
elm_box_pack_end(bx, o);
|
||||
evas_object_show(o);
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/**
|
||||
* @page elementary_main
|
||||
* @page elementary_main Elementary
|
||||
* @image html elementary.png
|
||||
* @version @VMAJ@.@VMIN@.@VMIC@
|
||||
* @date 2008-2014
|
||||
|
|
18
meson.build
18
meson.build
|
@ -247,26 +247,14 @@ endif
|
|||
|
||||
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_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_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_engines,
|
||||
evas_goal,
|
||||
]
|
||||
else
|
||||
evas_settings = [
|
||||
evas_lib,
|
||||
evas_img_modules,
|
||||
evas_goal,
|
||||
evas_engines,
|
||||
]
|
||||
endif
|
||||
evas_settings = [ evas_lib, evas_img_modules, evas_goal, evas_engines ]
|
||||
|
||||
subprojects = [
|
||||
# name | option | mod | lib | bin | bench | tests | examples | pkg-config options | name of static libs
|
||||
|
|
|
@ -192,13 +192,6 @@ option('unmount-path',
|
|||
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',
|
||||
type : 'array',
|
||||
description : 'List of modular image loaders to disable in efl',
|
||||
|
|
|
@ -161,6 +161,7 @@ elementary_test_src = [
|
|||
'test_ui_items.c',
|
||||
'test_ui_frame.c',
|
||||
'test_efl_ui_animation_view.c',
|
||||
'test_efl_gfx_vg_value_provider.c',
|
||||
'test.h'
|
||||
]
|
||||
|
||||
|
|
|
@ -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_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);
|
||||
|
||||
|
@ -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", "Value Provider", test_efl_gfx_vg_value_provider);
|
||||
|
||||
#undef ADD_TEST
|
||||
|
||||
|
|
|
@ -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
|
|
@ -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));
|
||||
|
||||
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);
|
||||
|
||||
// Objects below the snapshot
|
||||
|
|
|
@ -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_gfx_hint_weight_set(efl_added, 1.0, 0.0),
|
||||
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_arrangement_content_align_set(efl_added, 0, 0.5));
|
||||
efl_pack(box, box2);
|
||||
|
|
|
@ -72,11 +72,11 @@ user_min_slider_cb(void *data EINA_UNUSED, const Efl_Event *event)
|
|||
static void
|
||||
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;
|
||||
|
||||
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
|
||||
|
@ -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,
|
||||
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);
|
||||
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,
|
||||
efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL));
|
||||
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 */
|
||||
|
@ -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,
|
||||
efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL));
|
||||
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_weight_set(bx, 1, 1);
|
||||
efl_content_set(f, bx);
|
||||
|
|
|
@ -443,12 +443,12 @@ static void pack_cb(void *data,
|
|||
back_btn_cb, 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));
|
||||
|
||||
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));
|
||||
|
||||
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)));
|
||||
|
||||
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));
|
||||
|
||||
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));
|
||||
|
||||
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,
|
||||
efl_added, NULL));
|
||||
|
||||
|
@ -674,7 +674,7 @@ static void indicator_cb(void *data,
|
|||
back_btn_cb, 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,
|
||||
efl_added, NULL));
|
||||
|
||||
|
|
|
@ -495,7 +495,7 @@ static void padding_cb(void *data,
|
|||
back_btn_cb, 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,
|
||||
efl_added, NULL));
|
||||
|
||||
|
@ -522,7 +522,7 @@ static void side_page_num_cb(void *data,
|
|||
back_btn_cb, 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,
|
||||
efl_added, NULL));
|
||||
|
||||
|
@ -555,12 +555,12 @@ static void pack_cb(void *data,
|
|||
back_btn_cb, 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));
|
||||
|
||||
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));
|
||||
|
||||
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)));
|
||||
|
||||
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));
|
||||
|
||||
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));
|
||||
|
||||
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,
|
||||
efl_added, NULL));
|
||||
|
||||
|
@ -787,7 +787,7 @@ static void scroll_block_cb(void *data,
|
|||
back_btn_cb, 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,
|
||||
efl_added, NULL));
|
||||
|
||||
|
@ -826,7 +826,7 @@ static void loop_cb(void *data EINA_UNUSED,
|
|||
back_btn_cb, 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,
|
||||
efl_added, NULL));
|
||||
|
||||
|
@ -874,7 +874,7 @@ static void indicator_cb(void *data EINA_UNUSED,
|
|||
back_btn_cb, 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,
|
||||
efl_added, NULL));
|
||||
|
||||
|
|
|
@ -150,7 +150,7 @@ _setter_add(Eo *vbox, Eo *btn, Options option)
|
|||
|
||||
hbox = efl_add(EFL_UI_BOX_CLASS, vbox,
|
||||
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_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,
|
||||
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_content_set(f, efl_added));
|
||||
|
||||
hbox = efl_add(EFL_UI_BOX_CLASS, vbox,
|
||||
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_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,
|
||||
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_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,
|
||||
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_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,
|
||||
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_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,
|
||||
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));
|
||||
|
||||
/* contents */
|
||||
|
|
|
@ -594,12 +594,12 @@ pack_cb(void *data,
|
|||
back_btn_cb, 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));
|
||||
|
||||
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));
|
||||
|
||||
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);
|
||||
|
||||
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));
|
||||
|
||||
sp2 = efl_add(EFL_UI_SPIN_BUTTON_CLASS, in_box2);
|
||||
|
@ -781,7 +781,7 @@ active_index_cb(void *data,
|
|||
back_btn_cb, 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,
|
||||
efl_added, NULL));
|
||||
|
||||
|
@ -828,7 +828,7 @@ indicator_cb(void *data,
|
|||
back_btn_cb, 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,
|
||||
efl_added, NULL));
|
||||
|
||||
|
|
|
@ -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));
|
||||
|
||||
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));
|
||||
|
||||
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));
|
||||
|
||||
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));
|
||||
|
||||
/* Pack Begin */
|
||||
|
@ -329,7 +329,7 @@ _pack_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info)
|
|||
efl_pack_end(box, efl_added));
|
||||
|
||||
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_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));
|
||||
|
||||
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));
|
||||
|
||||
/* Clear */
|
||||
|
@ -430,7 +430,7 @@ _unpack_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info)
|
|||
efl_pack_end(box, efl_added));
|
||||
|
||||
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_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));
|
||||
|
||||
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));
|
||||
|
||||
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));
|
||||
|
||||
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));
|
||||
|
||||
btn = efl_add(EFL_UI_BUTTON_CLASS, box,
|
||||
|
|
|
@ -79,7 +79,7 @@ static void
|
|||
padding_slider_cb(void *data, const Efl_Event *event)
|
||||
{
|
||||
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
|
||||
|
@ -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,
|
||||
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_margin_set(vbox, 5, 5, 5, 5);
|
||||
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,
|
||||
efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL));
|
||||
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 */
|
||||
|
@ -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,
|
||||
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);
|
||||
elm_win_resize_object_add(win, vbox);
|
||||
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,
|
||||
efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL));
|
||||
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);
|
||||
|
||||
ico = elm_icon_add(win);
|
||||
|
|
|
@ -560,7 +560,7 @@ struct documentation_generator
|
|||
{
|
||||
std::string str = doc.full_text;
|
||||
if (!doc.since.empty())
|
||||
str += "\\<br/\\>Since EFL " + doc.since;
|
||||
str += "\\<br/\\>Since EFL " + doc.since + ".";
|
||||
str += tail_text;
|
||||
return generate_tag_summary(sink, str, context);
|
||||
}
|
||||
|
|
|
@ -447,36 +447,30 @@ struct event_definition_generator
|
|||
scope_tab << "{\n"
|
||||
<< scope_tab << scope_tab << "add\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 << 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 << scope_tab << "var obj = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(data).Target;\n"
|
||||
<< scope_tab << scope_tab << scope_tab << scope_tab << scope_tab << "if (obj != null)\n"
|
||||
<< scope_tab << scope_tab << scope_tab << scope_tab << scope_tab << event_args
|
||||
<< 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 << scope_tab << event_args
|
||||
<< 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 << scope_tab << "value?.Invoke(obj, args);\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 << "string key = \"_" << upper_c_name << "\";\n"
|
||||
<< scope_tab << scope_tab << scope_tab << scope_tab << "AddNativeEventHandler(" << library_name << ", key, callerCb, value);\n"
|
||||
<< scope_tab << scope_tab << scope_tab << "}\n" // End of lock block
|
||||
<< scope_tab << scope_tab << scope_tab << scope_tab << scope_tab << "catch (Exception e)\n"
|
||||
<< scope_tab << scope_tab << scope_tab << scope_tab << scope_tab << "{\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 << 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 << "remove\n"
|
||||
<< scope_tab << scope_tab << "{\n"
|
||||
<< scope_tab << scope_tab << scope_tab << "lock (eflBindingEventLock)\n"
|
||||
<< scope_tab << scope_tab << scope_tab << "{\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 << scope_tab << "string key = \"_" << upper_c_name << "\";\n"
|
||||
<< scope_tab << scope_tab << scope_tab << "RemoveNativeEventHandler(" << library_name << ", key, value);\n"
|
||||
<< scope_tab << scope_tab << "}\n"
|
||||
<< scope_tab << "}\n\n"
|
||||
).generate(sink, attributes::unused, context);
|
||||
|
|
|
@ -13,7 +13,7 @@ namespace Efl {
|
|||
///
|
||||
/// <para>It is internally instantiated and returned by generated extension methods.</para>
|
||||
///
|
||||
/// (Since EFL 1.23)
|
||||
/// Since EFL 1.23.
|
||||
/// </summary>
|
||||
public class BindableProperty<T>
|
||||
{
|
||||
|
@ -79,7 +79,7 @@ public class BindableProperty<T>
|
|||
///
|
||||
/// <para>It is internally instantiated and returned by generated extension methods.</para>
|
||||
///
|
||||
/// (Since EFL 1.23)
|
||||
/// Since EFL 1.23.
|
||||
/// </summary>
|
||||
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<T>" /> instances.
|
||||
///
|
||||
/// (Since EFL 1.23)
|
||||
/// Since EFL 1.23.
|
||||
/// </summary>
|
||||
public class BindableFactoryPart<T>
|
||||
{
|
||||
|
|
|
@ -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.
|
||||
/// </code>
|
||||
///
|
||||
/// (Since EFL 1.23)
|
||||
/// Since EFL 1.23.
|
||||
///
|
||||
/// </summary>
|
||||
public class ItemFactory<T> : Efl.Ui.LayoutFactory, IDisposable
|
||||
|
|
|
@ -11,7 +11,7 @@ namespace Efl {
|
|||
|
||||
/// <summary>Generic <see cref="Efl.IModel" /> implementation for MVVM models based on <see cref="Efl.UserModel<T>" />
|
||||
///
|
||||
/// (Since EFL 1.23)
|
||||
/// Since EFL 1.23.
|
||||
/// </summary>
|
||||
public class GenericModel<T> : Efl.Object, Efl.IModel, IDisposable
|
||||
{
|
||||
|
|
|
@ -65,7 +65,7 @@ internal class ModelHelper
|
|||
/// PersonModel p = await model.GetAtAsync(0);
|
||||
/// </code>
|
||||
///
|
||||
/// (Since EFL 1.23)
|
||||
/// Since EFL 1.23.
|
||||
/// </summary>
|
||||
[Efl.Eo.BindingEntity]
|
||||
public class UserModel<T> : Efl.MonoModelInternal, IDisposable
|
||||
|
|
|
@ -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
|
||||
{
|
||||
private static bool InitializedUi = false;
|
||||
|
@ -109,7 +112,10 @@ public static class All
|
|||
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 void Init()
|
||||
|
|
|
@ -9,7 +9,10 @@ namespace Efl
|
|||
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
|
||||
{
|
||||
///<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
|
||||
/// 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.
|
||||
///
|
||||
/// Since EFL 1.23.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Calls to efl outside those efl-callbacks or outside the mainloop are not allowed and will lead to issues
|
||||
/// </remarks>
|
||||
///
|
||||
/// (Since EFL 1.23)
|
||||
///
|
||||
/// <example>
|
||||
/// UserApp is the class that implements the Application abstract
|
||||
/// <code>
|
||||
|
|
|
@ -19,7 +19,10 @@ internal class AccessorNativeFunctions
|
|||
}
|
||||
|
||||
/// <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
|
||||
{
|
||||
/// <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>
|
||||
{
|
||||
/// <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>
|
||||
{
|
||||
/// <summary>Create a new accessor wrapping the given pointer.</summary>
|
||||
|
|
|
@ -45,7 +45,10 @@ public static class ArrayNativeFunctions
|
|||
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 static uint DefaultStep = 32;
|
||||
|
|
|
@ -7,7 +7,9 @@ namespace Eina
|
|||
{
|
||||
|
||||
/// <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>
|
||||
public class Binbuf : IDisposable
|
||||
{
|
||||
|
|
|
@ -41,7 +41,10 @@ internal static class NativeCustomExportFunctions
|
|||
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 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 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 IntPtr ManagedStringToNativeUtf8Alloc(string managedString)
|
||||
|
|
|
@ -6,6 +6,11 @@ using System.Runtime.InteropServices;
|
|||
namespace Eina
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Manage the initialization and cleanup for eina.
|
||||
///
|
||||
/// Since EFL 1.23.
|
||||
/// </summary>
|
||||
public class Config
|
||||
{
|
||||
[DllImport(efl.Libs.Eina)] private static extern int eina_init();
|
||||
|
@ -27,8 +32,9 @@ public class Config
|
|||
}
|
||||
|
||||
/// <summary>
|
||||
/// Wrapper class for pointers that need some cleanup afterwards
|
||||
/// like strings.
|
||||
/// Wrapper class for pointers that need some cleanup afterwards like strings
|
||||
///
|
||||
/// Since EFL 1.23.
|
||||
/// </summary>
|
||||
public class DisposableIntPtr : IDisposable
|
||||
{
|
||||
|
|
|
@ -6,7 +6,10 @@ using System.Runtime.InteropServices;
|
|||
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>
|
||||
{
|
||||
int code;
|
||||
|
|
|
@ -130,7 +130,10 @@ public static class HashNativeFunctions
|
|||
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 IntPtr Handle {get; set;} = IntPtr.Zero;
|
||||
|
|
|
@ -67,7 +67,10 @@ public static class InarrayNativeFunctions
|
|||
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 static uint DefaultStep = 0;
|
||||
|
|
|
@ -80,7 +80,10 @@ public static class InlistNativeFunctions
|
|||
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 IntPtr Handle {get;set;} = IntPtr.Zero;
|
||||
|
|
|
@ -29,7 +29,10 @@ public static class IteratorNativeFunctions
|
|||
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 IntPtr Handle {get;set;} = IntPtr.Zero;
|
||||
|
|
|
@ -106,7 +106,10 @@ public static class ListNativeFunctions
|
|||
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
|
||||
{
|
||||
|
||||
|
|
|
@ -9,7 +9,10 @@ namespace Eina
|
|||
{
|
||||
// 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
|
||||
{
|
||||
[DllImport(efl.Libs.Eina)] private static extern void eina_log_print(
|
||||
|
|
|
@ -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.
|
||||
///
|
||||
/// (Since Efl 1.23)
|
||||
/// Since Efl 1.23.
|
||||
/// </summary>
|
||||
public class Promise : IDisposable
|
||||
{
|
||||
|
|
|
@ -14,7 +14,10 @@ public interface ISliceBase
|
|||
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)]
|
||||
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)]
|
||||
public struct RwSlice : ISliceBase
|
||||
{
|
||||
|
|
|
@ -50,7 +50,10 @@ static internal class StrbufNativeMethods
|
|||
|
||||
} // 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
|
||||
{
|
||||
///<summary>Pointer to the underlying native handle.</summary>
|
||||
|
|
|
@ -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)]
|
||||
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]
|
||||
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]
|
||||
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
|
||||
{
|
||||
/// <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
|
||||
/// normally.</para>
|
||||
///
|
||||
/// (Since EFL 1.23)
|
||||
/// Since EFL 1.23.
|
||||
/// </summary>
|
||||
[EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public class ValueTypeBox
|
||||
|
@ -935,7 +947,7 @@ static class ValueTypeBridge
|
|||
/// blobs and structs. It is able to convert between data types, including
|
||||
/// to and from strings.</para>
|
||||
///
|
||||
/// (Since EFL 1.23)
|
||||
/// Since EFL 1.23.
|
||||
/// </summary>
|
||||
public class Value : IDisposable, IComparable<Value>, IEquatable<Value>
|
||||
{
|
||||
|
|
|
@ -6,7 +6,10 @@ using System.Runtime.InteropServices;
|
|||
namespace eldbus
|
||||
{
|
||||
|
||||
/// <summary>Initializes Eldbus. (Since EFL 1.23)</summary>
|
||||
/// <summary>Initializes Eldbus.
|
||||
///
|
||||
/// Since EFL 1.23.
|
||||
/// </summary>
|
||||
public static class Config
|
||||
{
|
||||
[DllImport(efl.Libs.Eldbus)] private static extern int eldbus_init();
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
/// <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 enum Type
|
||||
|
|
|
@ -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 IntPtr Handle {get;set;} = IntPtr.Zero;
|
||||
|
|
|
@ -82,7 +82,10 @@ public static class EldbusObjectNativeFunctions
|
|||
// 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
|
||||
{
|
||||
|
||||
|
|
|
@ -41,7 +41,10 @@ public static class EldbusPendingNativeFunctions
|
|||
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 IntPtr Handle {get;set;} = IntPtr.Zero;
|
||||
|
|
|
@ -65,7 +65,10 @@ public static class EldbusProxyNativeFunctions
|
|||
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 IntPtr Handle {get;set;} = IntPtr.Zero;
|
||||
|
|
|
@ -20,7 +20,7 @@ namespace Eo
|
|||
public abstract class EoWrapper : IWrapper, IDisposable
|
||||
{
|
||||
/// <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 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>
|
||||
protected void AddNativeEventHandler(string lib, string key, Efl.EventCb evtCaller, object evtDelegate)
|
||||
{
|
||||
IntPtr desc = Efl.EventDescription.GetNative(lib, key);
|
||||
if (desc == IntPtr.Zero)
|
||||
lock (eflBindingEventLock)
|
||||
{
|
||||
Eina.Log.Error($"Failed to get native event {key}");
|
||||
return;
|
||||
}
|
||||
IntPtr desc = Efl.EventDescription.GetNative(lib, key);
|
||||
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 ws = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(wsPtr);
|
||||
if (ws.EoEvents.ContainsKey((desc, evtDelegate)))
|
||||
{
|
||||
Eina.Log.Warning($"Event proxy for event {key} already registered!");
|
||||
return;
|
||||
}
|
||||
var wsPtr = Efl.Eo.Globals.efl_mono_wrapper_supervisor_get(handle);
|
||||
var ws = Efl.Eo.Globals.WrapperSupervisorPtrToManaged(wsPtr);
|
||||
if (ws.EoEvents.ContainsKey((desc, evtDelegate)))
|
||||
{
|
||||
Eina.Log.Warning($"Event proxy for event {key} already registered!");
|
||||
return;
|
||||
}
|
||||
|
||||
IntPtr evtCallerPtr = Marshal.GetFunctionPointerForDelegate(evtCaller);
|
||||
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}");
|
||||
return;
|
||||
}
|
||||
IntPtr evtCallerPtr = Marshal.GetFunctionPointerForDelegate(evtCaller);
|
||||
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}");
|
||||
return;
|
||||
}
|
||||
|
||||
ws.EoEvents[(desc, evtDelegate)] = (evtCallerPtr, evtCaller);
|
||||
Eina.Error.RaiseIfUnhandledException();
|
||||
ws.EoEvents[(desc, evtDelegate)] = (evtCallerPtr, evtCaller);
|
||||
Eina.Error.RaiseIfUnhandledException();
|
||||
}
|
||||
}
|
||||
|
||||
/// <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>
|
||||
protected void RemoveNativeEventHandler(string lib, string key, object evtDelegate)
|
||||
{
|
||||
IntPtr desc = Efl.EventDescription.GetNative(lib, key);
|
||||
if (desc == IntPtr.Zero)
|
||||
lock (eflBindingEventLock)
|
||||
{
|
||||
Eina.Log.Error($"Failed to get native event {key}");
|
||||
return;
|
||||
}
|
||||
|
||||
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))
|
||||
IntPtr desc = Efl.EventDescription.GetNative(lib, key);
|
||||
if (desc == IntPtr.Zero)
|
||||
{
|
||||
Eina.Log.Error($"Failed to remove event proxy for event {key}");
|
||||
Eina.Log.Error($"Failed to get native 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.");
|
||||
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}");
|
||||
return;
|
||||
}
|
||||
|
||||
ws.EoEvents.Remove(evtPair);
|
||||
Eina.Error.RaiseIfUnhandledException();
|
||||
}
|
||||
else
|
||||
{
|
||||
Eina.Log.Error($"Trying to remove proxy for event {key} when it is not registered.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@ efl_main(void *data EINA_UNUSED, const Efl_Event *ev EINA_UNUSED)
|
|||
|
||||
efl::ui::Table table(instantiate, win);
|
||||
win.content_set(table);
|
||||
table.content_padding_set(5, 5, true);
|
||||
table.content_padding_set(5, 5);
|
||||
// FIXME
|
||||
// table.homogeneous_set(true);
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@ efl_main(void *data EINA_UNUSED, const Efl_Event *ev EINA_UNUSED)
|
|||
|
||||
efl::ui::Table table(instantiate, win);
|
||||
win.content_set(table);
|
||||
table.content_padding_set(5, 5, true);
|
||||
table.content_padding_set(5, 5);
|
||||
|
||||
efl::canvas::Rectangle rect(instantiate, win);
|
||||
rect.color_set(255, 0, 0, 255);
|
||||
|
|
|
@ -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);
|
||||
|
||||
/**
|
||||
* @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.
|
||||
*
|
||||
|
|
|
@ -3873,6 +3873,13 @@ edje_edit_part_mouse_events_set(Evas_Object *obj, const char *part, Eina_Bool mo
|
|||
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
|
||||
edje_edit_part_anti_alias_get(Evas_Object *obj, const char *part)
|
||||
{
|
||||
|
|
|
@ -40,9 +40,8 @@ interface @beta Efl.Gfx.Arrangement
|
|||
set {}
|
||||
get {}
|
||||
values {
|
||||
pad_horiz: double(0.0); [[Horizontal padding.]]
|
||||
pad_vert: double(0.0); [[Vertical padding.]]
|
||||
scalable: bool(false); [[$true if scalable.]]
|
||||
pad_horiz: uint(0u); [[Horizontal padding.]]
|
||||
pad_vert: uint(0u); [[Vertical padding.]]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,23 +5,21 @@ class @beta Efl.Text_Markup_Util {
|
|||
methods {
|
||||
text_to_markup @static {
|
||||
[[Converts a given (UTF-8) text to a markup-compatible string.
|
||||
This is used mainly to set a plain text with the $.markup_set
|
||||
property.
|
||||
This is used mainly to set a plain text with @Efl.Text_Markup.markup.set.
|
||||
]]
|
||||
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 {
|
||||
[[Converts a given (UTF-8) text to a markup-compatible string.
|
||||
This is used mainly to set a plain text with the $.markup_set
|
||||
property.
|
||||
[[Converts a markup string to a (UTF-8) plain text.
|
||||
This is used mainly to set a markup text with the @Efl.Text.text.set.
|
||||
]]
|
||||
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.]]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -148,7 +148,7 @@ _efl_page_indicator_icon_efl_page_indicator_bind(Eo *obj,
|
|||
if (spd->pager.obj)
|
||||
{
|
||||
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);
|
||||
|
||||
|
|
|
@ -688,6 +688,11 @@ EOLIAN static void
|
|||
_efl_ui_animation_view_efl_object_destructor(Eo *obj,
|
||||
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));
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
|
||||
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*
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
|
||||
enum Efl.Ui.Animation_View_State
|
||||
enum @beta Efl.Ui.Animation_View_State
|
||||
{
|
||||
[[State of animation view]]
|
||||
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 {
|
||||
Efl.Object.constructor;
|
||||
|
|
|
@ -20,6 +20,7 @@ struct _Efl_Ui_Animation_View_Data
|
|||
double min_progress;
|
||||
double max_progress;
|
||||
Eina_List *subs;
|
||||
Eina_List *vp_list;
|
||||
|
||||
Eina_Bool play_back : 1;
|
||||
Eina_Bool auto_play : 1;
|
||||
|
|
|
@ -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.
|
||||
|
||||
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
|
||||
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
|
||||
as @Efl.Ui.Exact_Model.
|
||||
|
||||
|
|
|
@ -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_UI_BG_DATA_GET_OR_RETURN_VAL(obj, pd, obj);
|
||||
efl_gfx_entity_scale_set(pd->img, 1.0);
|
||||
|
||||
efl_ui_layout_finger_size_multiplier_set(obj, 0, 0);
|
||||
return obj;
|
||||
}
|
||||
|
||||
|
|
|
@ -406,27 +406,23 @@ _efl_ui_box_efl_ui_layout_orientable_orientation_get(const Eo *obj EINA_UNUSED,
|
|||
}
|
||||
|
||||
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 (v < 0) v = 0;
|
||||
|
||||
if (EINA_DBL_EQ(pd->pad.h, h) && EINA_DBL_EQ(pd->pad.v, v) &&
|
||||
(pd->pad.scalable == scalable))
|
||||
if (EINA_DBL_EQ(pd->pad.h, h) && EINA_DBL_EQ(pd->pad.v, v))
|
||||
return;
|
||||
|
||||
pd->pad.h = h;
|
||||
pd->pad.v = v;
|
||||
pd->pad.scalable = scalable;
|
||||
|
||||
efl_pack_layout_request(obj);
|
||||
}
|
||||
|
||||
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 (v) *v = pd->pad.v;
|
||||
}
|
||||
|
|
|
@ -19,8 +19,7 @@ struct _Efl_Ui_Box_Data
|
|||
Eina_List *children;
|
||||
|
||||
struct {
|
||||
double h, v;
|
||||
Eina_Bool scalable: 1;
|
||||
unsigned int h, v;
|
||||
} pad;
|
||||
|
||||
struct {
|
||||
|
|
|
@ -111,16 +111,12 @@ void
|
|||
_efl_ui_container_layout_init(Eo* obj, Efl_Ui_Container_Layout_Calc *calc)
|
||||
{
|
||||
Eina_Rect geom;
|
||||
Eina_Bool pad_scalable;
|
||||
|
||||
geom = efl_gfx_entity_geometry_get(obj);
|
||||
efl_gfx_hint_margin_get(obj, &calc[0].margin[0], &calc[0].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);
|
||||
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;
|
||||
efl_gfx_arrangement_content_padding_get(obj, &calc[0].pad, &calc[1].pad);
|
||||
|
||||
// pack align is used if "no item has a weight"
|
||||
efl_gfx_arrangement_content_align_get(obj, &calc[0].align, &calc[1].align);
|
||||
|
|
|
@ -30,8 +30,7 @@ struct _Efl_Ui_Container_Layout_Calc
|
|||
int size;
|
||||
int margin[2];
|
||||
double align;
|
||||
double scale;
|
||||
double pad;
|
||||
unsigned int pad;
|
||||
Eina_Bool fill : 1;
|
||||
};
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
||||
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
|
||||
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
|
||||
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
|
||||
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 {
|
||||
Efl.Object.constructor;
|
||||
|
|
|
@ -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.
|
||||
|
||||
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"
|
||||
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).
|
||||
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"]
|
||||
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).
|
||||
|
||||
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.
|
||||
|
||||
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 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.]]
|
||||
|
||||
implements {
|
||||
Efl.Object.constructor;
|
||||
|
|
|
@ -1,13 +1,24 @@
|
|||
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 {
|
||||
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 {
|
||||
klass: string; [[The class of the group.]]
|
||||
group: string; [[The group.]]
|
||||
style: string; [[The style to used.]]
|
||||
style: string; [[The style to use.]]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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.
|
||||
|
||||
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 :
|
||||
- "$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
|
||||
- $["self.width"] and $["self.height"] define the size of this object from the point of
|
||||
view of the @Efl.Ui.View that use it. They only apply to children and not to the
|
||||
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.
|
||||
- "$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.]]
|
||||
|
||||
data: null;
|
||||
|
|
|
@ -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_gfx_entity_visible_set(pd->indicator, EINA_TRUE);
|
||||
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)
|
||||
{
|
||||
|
|
|
@ -267,27 +267,23 @@ _efl_ui_table_efl_object_invalidate(Eo *obj, Efl_Ui_Table_Data *pd)
|
|||
}
|
||||
|
||||
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 (v < 0) v = 0;
|
||||
|
||||
if (EINA_DBL_EQ(pd->pad.h, h) && EINA_DBL_EQ(pd->pad.v, v) &&
|
||||
(pd->pad.scalable == scalable))
|
||||
if (EINA_DBL_EQ(pd->pad.h, h) && EINA_DBL_EQ(pd->pad.v, v))
|
||||
return;
|
||||
|
||||
pd->pad.h = h;
|
||||
pd->pad.v = v;
|
||||
pd->pad.scalable = scalable;
|
||||
|
||||
efl_pack_layout_request(obj);
|
||||
}
|
||||
|
||||
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 (v) *v = pd->pad.v;
|
||||
}
|
||||
|
|
|
@ -38,8 +38,7 @@ struct _Efl_Ui_Table_Data
|
|||
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()
|
||||
struct {
|
||||
double h, v;
|
||||
Eina_Bool scalable: 1;
|
||||
unsigned int h, v;
|
||||
} pad;
|
||||
struct {
|
||||
double h, v;
|
||||
|
|
|
@ -50,10 +50,10 @@ _shrink_mode_set(Eo *obj,
|
|||
if (shrink == EINA_TRUE)
|
||||
{
|
||||
Evas_Coord w = 0;
|
||||
double box_inner_item_width_padding = 0;
|
||||
unsigned int box_inner_item_width_padding = 0;
|
||||
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
|
||||
efl_pack_unpack_all(sd->box);
|
||||
EINA_LIST_FOREACH(sd->layouts, l, layout)
|
||||
|
@ -69,7 +69,7 @@ _shrink_mode_set(Eo *obj,
|
|||
Eina_Size2D label_min =
|
||||
efl_gfx_hint_size_combined_min_get(sd->label);
|
||||
w -= label_min.w;
|
||||
w -= box_inner_item_width_padding;
|
||||
w -= (Evas_Coord)box_inner_item_width_padding;
|
||||
}
|
||||
|
||||
layout = NULL;
|
||||
|
@ -487,14 +487,14 @@ _box_resize_cb(void *data,
|
|||
Eina_Rect r;
|
||||
Eina_List *l;
|
||||
Eo *layout;
|
||||
double hpad;
|
||||
unsigned int hpad;
|
||||
|
||||
Efl_Ui_Tags_Data *sd = efl_data_scope_get(data, EFL_UI_TAGS_CLASS);
|
||||
|
||||
r = efl_gfx_entity_geometry_get(sd->box);
|
||||
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)
|
||||
efl_event_callback_call
|
||||
|
@ -511,9 +511,9 @@ _box_resize_cb(void *data,
|
|||
|
||||
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_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);
|
||||
str = elm_layout_data_get(obj, "vertical_pad");
|
||||
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);
|
||||
|
||||
|
|
|
@ -1,5 +1,10 @@
|
|||
typedef Eo Elm_Video;
|
||||
|
||||
/**
|
||||
* @defgroup Elm_Video Video
|
||||
* @ingroup Elementary
|
||||
*/
|
||||
|
||||
/**
|
||||
* @brief Add a new Elm_Player object to the given parent Elementary (container) object.
|
||||
*
|
||||
|
|
|
@ -81,6 +81,7 @@ extern "C" {
|
|||
#include <canvas/efl_canvas_vg_image.eo.h>
|
||||
#include <canvas/efl_canvas_vg_object.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_input_clickable.eo.h>
|
||||
|
|
|
@ -439,6 +439,7 @@ typedef void (Evas_Canvas3D_Surface_Func)(Evas_Real *out_x,
|
|||
#include "canvas/efl_canvas_proxy.eo.h"
|
||||
#include "canvas/efl_gfx_mapping.eo.h"
|
||||
|
||||
#include "canvas/efl_gfx_vg_value_provider.eo.h"
|
||||
/**
|
||||
* @ingroup Evas_Object_VG
|
||||
*
|
||||
|
|
|
@ -616,6 +616,8 @@ _cache_vg_entry_render(Evas_Object_Protected_Data *obj,
|
|||
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);
|
||||
if (!root) return;
|
||||
|
||||
|
|
|
@ -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"
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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
|
|
@ -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;
|
||||
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*/
|
||||
{
|
||||
Evas_BiDi_Direction itdir = ti->text_props.bidi_dir;
|
||||
|
|
|
@ -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_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
|
||||
{
|
||||
Eina_Hash *vfd_hash;
|
||||
|
@ -128,6 +130,15 @@ struct _Efl_Canvas_Vg_Interpolation
|
|||
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_shutdown(void);
|
||||
|
|
|
@ -40,6 +40,7 @@ pub_eo_files = [
|
|||
'efl_canvas_text_factory.eo',
|
||||
'efl_canvas_rectangle.eo',
|
||||
'efl_canvas_object.eo',
|
||||
'efl_gfx_vg_value_provider.eo',
|
||||
'efl_canvas_vg_object.eo',
|
||||
'efl_canvas_vg_node.eo',
|
||||
'efl_canvas_vg_container.eo',
|
||||
|
@ -179,6 +180,7 @@ evas_src += files([
|
|||
'efl_canvas_animation_group_parallel.c',
|
||||
'efl_canvas_animation_group_sequential.c',
|
||||
'efl_canvas_animation_player.c',
|
||||
'efl_gfx_vg_value_provider.c',
|
||||
'efl_canvas_vg_object.c',
|
||||
'efl_canvas_vg_node.c',
|
||||
'efl_canvas_vg_container.c',
|
||||
|
|
|
@ -599,12 +599,27 @@ evas_module_find_type(Evas_Module_Type type, const char *name)
|
|||
{
|
||||
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);
|
||||
bs_mod_get(buffer, sizeof(buffer), subsystem, name);
|
||||
if (!evas_file_path_exists(buffer))
|
||||
buffer[0] = '\0';
|
||||
snprintf(subsystem, sizeof(subsystem), "evas/%s", type_str);
|
||||
bs_mod_get(buffer, sizeof(buffer), subsystem, name);
|
||||
}
|
||||
if (!evas_file_path_exists(buffer)) buffer[0] = '\0';
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -1541,6 +1541,7 @@ struct _Vg_File_Data
|
|||
Vg_File_Anim_Data *anim_data; //only when animation supported.
|
||||
int ref;
|
||||
int w, h; //default size
|
||||
Eina_List *vp_list; //Value providers.
|
||||
|
||||
void *loader_data; //loader specific local data
|
||||
|
||||
|
|
|
@ -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',
|
||||
'empty.c',
|
||||
#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,
|
||||
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
|
||||
|
|
|
@ -13,15 +13,11 @@ install_headers('Evas_Engine_Buffer.h',
|
|||
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,
|
||||
include_directories : config_dir + [engine_include_dir],
|
||||
dependencies : [eina, evas] + engine_deps,
|
||||
install : true,
|
||||
install_dir : mod_install_dir,
|
||||
name_suffix : sys_mod_extension
|
||||
)
|
||||
module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
|
||||
else
|
||||
evas_engine_buffer_mod = []
|
||||
endif
|
||||
evas_engine_buffer_mod = shared_module(mod_full_name, engine_src,
|
||||
include_directories : config_dir + [engine_include_dir],
|
||||
dependencies : [eina, evas] + engine_deps,
|
||||
install : true,
|
||||
install_dir : mod_install_dir,
|
||||
name_suffix : sys_mod_extension
|
||||
)
|
||||
module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
|
||||
|
|
|
@ -7,13 +7,11 @@ engine_src = files([
|
|||
|
||||
engine_deps = [ecore_drm2, libdrm]
|
||||
|
||||
if get_option('evas-modules') == 'shared'
|
||||
shared_module(mod_full_name, engine_src,
|
||||
include_directories : config_dir + [engine_include_dir],
|
||||
dependencies : [eina, evas] + engine_deps,
|
||||
install : true,
|
||||
install_dir : mod_install_dir,
|
||||
name_suffix : sys_mod_extension
|
||||
)
|
||||
module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
|
||||
endif
|
||||
shared_module(mod_full_name, engine_src,
|
||||
include_directories : config_dir + [engine_include_dir],
|
||||
dependencies : [eina, evas] + engine_deps,
|
||||
install : true,
|
||||
install_dir : mod_install_dir,
|
||||
name_suffix : sys_mod_extension
|
||||
)
|
||||
module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
|
||||
|
|
|
@ -9,13 +9,11 @@ engine_src = files([
|
|||
|
||||
engine_deps = [ecore_fb]
|
||||
|
||||
if get_option('evas-modules') == 'shared'
|
||||
shared_module(mod_full_name, engine_src,
|
||||
include_directories : config_dir + [engine_include_dir],
|
||||
dependencies : [eina, evas] + engine_deps,
|
||||
install : true,
|
||||
install_dir : mod_install_dir,
|
||||
name_suffix : sys_mod_extension
|
||||
)
|
||||
module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
|
||||
endif
|
||||
shared_module(mod_full_name, engine_src,
|
||||
include_directories : config_dir + [engine_include_dir],
|
||||
dependencies : [eina, evas] + engine_deps,
|
||||
install : true,
|
||||
install_dir : mod_install_dir,
|
||||
name_suffix : sys_mod_extension
|
||||
)
|
||||
module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
|
||||
|
|
|
@ -7,13 +7,11 @@ engine_src = files([
|
|||
|
||||
engine_deps = [ecore_cocoa, gl_deps]
|
||||
|
||||
if get_option('evas-modules') == 'shared'
|
||||
shared_module(mod_full_name, engine_src,
|
||||
include_directories : config_dir + [engine_include_dir],
|
||||
dependencies : [eina, evas] + engine_deps,
|
||||
install : true,
|
||||
install_dir : mod_install_dir,
|
||||
name_suffix : sys_mod_extension
|
||||
)
|
||||
module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
|
||||
endif
|
||||
shared_module(mod_full_name, engine_src,
|
||||
include_directories : config_dir + [engine_include_dir],
|
||||
dependencies : [eina, evas] + engine_deps,
|
||||
install : true,
|
||||
install_dir : mod_install_dir,
|
||||
name_suffix : sys_mod_extension
|
||||
)
|
||||
module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
|
||||
|
|
|
@ -7,13 +7,11 @@ engine_src = files([
|
|||
|
||||
engine_deps = [ecore_drm2, libdrm, gl_deps, dependency('gbm')]
|
||||
|
||||
if get_option('evas-modules') == 'shared'
|
||||
shared_module(mod_full_name, engine_src,
|
||||
include_directories : config_dir + [engine_include_dir],
|
||||
dependencies : [eina, evas] + engine_deps,
|
||||
install : true,
|
||||
install_dir : mod_install_dir,
|
||||
name_suffix : sys_mod_extension
|
||||
)
|
||||
module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
|
||||
endif
|
||||
shared_module(mod_full_name, engine_src,
|
||||
include_directories : config_dir + [engine_include_dir],
|
||||
dependencies : [eina, evas] + engine_deps,
|
||||
install : true,
|
||||
install_dir : mod_install_dir,
|
||||
name_suffix : sys_mod_extension
|
||||
)
|
||||
module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
|
||||
|
|
|
@ -70,13 +70,11 @@ engine_deps = [gl_deps]
|
|||
|
||||
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,
|
||||
include_directories : config_dir + [engine_include_dir],
|
||||
dependencies : [eina, evas] + engine_deps,
|
||||
install : true,
|
||||
install_dir : mod_install_dir,
|
||||
name_suffix : sys_mod_extension
|
||||
)
|
||||
module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
|
||||
endif
|
||||
shared_module(mod_full_name, engine_src,
|
||||
include_directories : config_dir + [engine_include_dir],
|
||||
dependencies : [eina, evas] + engine_deps,
|
||||
install : true,
|
||||
install_dir : mod_install_dir,
|
||||
name_suffix : sys_mod_extension
|
||||
)
|
||||
module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
|
||||
|
|
|
@ -7,13 +7,11 @@ engine_src = files([
|
|||
|
||||
engine_deps = [ecore_x_deps, gl_deps]
|
||||
|
||||
if get_option('evas-modules') == 'shared'
|
||||
shared_module(mod_full_name, engine_src,
|
||||
include_directories : config_dir + [engine_include_dir],
|
||||
dependencies : [eina, evas] + engine_deps,
|
||||
install : true,
|
||||
install_dir : mod_install_dir,
|
||||
name_suffix : sys_mod_extension
|
||||
)
|
||||
module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
|
||||
endif
|
||||
shared_module(mod_full_name, engine_src,
|
||||
include_directories : config_dir + [engine_include_dir],
|
||||
dependencies : [eina, evas] + engine_deps,
|
||||
install : true,
|
||||
install_dir : mod_install_dir,
|
||||
name_suffix : sys_mod_extension
|
||||
)
|
||||
module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
|
||||
|
|
|
@ -62,28 +62,6 @@ foreach engine_conf : engines
|
|||
|
||||
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')
|
||||
endif
|
||||
endforeach
|
||||
|
|
|
@ -7,14 +7,12 @@ engine_src = files([
|
|||
|
||||
engine_deps = [cc.find_library('ddraw')]
|
||||
|
||||
if get_option('evas-modules') == 'shared'
|
||||
shared_module(mod_full_name, engine_src,
|
||||
include_directories : config_dir + [engine_include_dir],
|
||||
cpp_args: ['-fno-rtti', '-fno-exceptions'],
|
||||
dependencies : [eina, evas] + engine_deps,
|
||||
install : true,
|
||||
install_dir : mod_install_dir,
|
||||
name_suffix : sys_mod_extension
|
||||
)
|
||||
module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
|
||||
endif
|
||||
shared_module(mod_full_name, engine_src,
|
||||
include_directories : config_dir + [engine_include_dir],
|
||||
cpp_args: ['-fno-rtti', '-fno-exceptions'],
|
||||
dependencies : [eina, evas] + engine_deps,
|
||||
install : true,
|
||||
install_dir : mod_install_dir,
|
||||
name_suffix : sys_mod_extension
|
||||
)
|
||||
module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
|
||||
|
|
|
@ -7,13 +7,11 @@ engine_src = files([
|
|||
|
||||
engine_deps = [cc.find_library('gdi32')]
|
||||
|
||||
if get_option('evas-modules') == 'shared'
|
||||
shared_module(mod_full_name, engine_src,
|
||||
include_directories : config_dir + [engine_include_dir],
|
||||
dependencies : [eina, evas] + engine_deps,
|
||||
install : true,
|
||||
install_dir : mod_install_dir,
|
||||
name_suffix : sys_mod_extension
|
||||
)
|
||||
module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
|
||||
endif
|
||||
shared_module(mod_full_name, engine_src,
|
||||
include_directories : config_dir + [engine_include_dir],
|
||||
dependencies : [eina, evas] + engine_deps,
|
||||
install : true,
|
||||
install_dir : mod_install_dir,
|
||||
name_suffix : sys_mod_extension
|
||||
)
|
||||
module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
|
||||
|
|
|
@ -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
|
||||
engine_deps = [x11, ecore_x, ecore_x_deps, gl_deps]
|
||||
|
||||
if get_option('evas-modules') == 'shared'
|
||||
shared_module(mod_full_name, engine_src,
|
||||
include_directories : config_dir + [engine_include_dir],
|
||||
dependencies : [eina, evas] + engine_deps,
|
||||
install : true,
|
||||
install_dir : mod_install_dir,
|
||||
name_suffix : sys_mod_extension
|
||||
)
|
||||
module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
|
||||
endif
|
||||
shared_module(mod_full_name, engine_src,
|
||||
include_directories : config_dir + [engine_include_dir],
|
||||
dependencies : [eina, evas] + engine_deps,
|
||||
install : true,
|
||||
install_dir : mod_install_dir,
|
||||
name_suffix : sys_mod_extension
|
||||
)
|
||||
module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
|
||||
|
|
|
@ -8,14 +8,11 @@ engine_deps = [ecore_wl2, dependency('wayland-egl'), gl_deps]
|
|||
|
||||
engine_include_dir = include_directories(join_paths('..','wayland_common'))
|
||||
|
||||
|
||||
if get_option('evas-modules') == 'shared'
|
||||
shared_module(mod_full_name, engine_src,
|
||||
include_directories : config_dir + [engine_include_dir],
|
||||
dependencies : [eina, evas] + engine_deps,
|
||||
install : true,
|
||||
install_dir : mod_install_dir,
|
||||
name_suffix : sys_mod_extension
|
||||
)
|
||||
module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
|
||||
endif
|
||||
shared_module(mod_full_name, engine_src,
|
||||
include_directories : config_dir + [engine_include_dir],
|
||||
dependencies : [eina, evas] + engine_deps,
|
||||
install : true,
|
||||
install_dir : mod_install_dir,
|
||||
name_suffix : sys_mod_extension
|
||||
)
|
||||
module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
|
||||
|
|
|
@ -8,13 +8,11 @@ engine_deps = [ecore_wl2]
|
|||
|
||||
engine_include_dir = include_directories(join_paths('..','wayland_common'))
|
||||
|
||||
if get_option('evas-modules') == 'shared'
|
||||
shared_module(mod_full_name, engine_src,
|
||||
include_directories : config_dir + [engine_include_dir],
|
||||
dependencies : [eina, evas] + engine_deps,
|
||||
install : true,
|
||||
install_dir : mod_install_dir,
|
||||
name_suffix : sys_mod_extension
|
||||
)
|
||||
module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
|
||||
endif
|
||||
shared_module(mod_full_name, engine_src,
|
||||
include_directories : config_dir + [engine_include_dir],
|
||||
dependencies : [eina, evas] + engine_deps,
|
||||
install : true,
|
||||
install_dir : mod_install_dir,
|
||||
name_suffix : sys_mod_extension
|
||||
)
|
||||
module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue