Merge branch 'master' into devs/hermet/lottie

This commit is contained in:
Hermet Park 2019-09-17 10:17:52 +09:00
commit cdce6c3e4e
73 changed files with 314 additions and 320 deletions

View File

@ -57,10 +57,10 @@ if [ "$DISTRO" != "" ] ; then
fi
if [ "$1" = "coverity" ]; then
if [ $(date +%A) != "Saturday" ]; then
echo "Not Saturday so we are not running our weekly Coverity scan build."
exit 0
fi
# if [ $(date +%A) != "Saturday" ]; then
# echo "Not Saturday so we are not running our weekly Coverity scan build."
# exit 0
# fi
OPTS="$OPTS $WAYLAND_LINUX_COPTS"
travis_fold cov-download cov-download
docker exec --env COVERITY_SCAN_TOKEN=$COVERITY_SCAN_TOKEN $(cat $HOME/cid) sh -c '.ci/coverity-tools-install.sh'

View File

@ -8,9 +8,9 @@ fi
travis_fold ninja ninja
if [ "$DISTRO" != "" ] ; then
if [ "$1" = "coverity" ] ; then
if [ $(date +%A) != "Saturday" ]; then
exit 0
fi
# if [ $(date +%A) != "Saturday" ]; then
# exit 0
# fi
docker exec --env EIO_MONITOR_POLL=1 --env PATH="/src/cov-analysis-linux64-2019.03/bin:$PATH" $(cat $HOME/cid) sh -c "cov-build --dir cov-int ninja -C build"
docker exec --env EIO_MONITOR_POLL=1 $(cat $HOME/cid) sh -c "tar caf efl-$(git rev-parse --short HEAD).xz cov-int"
docker exec --env EIO_MONITOR_POLL=1 --env COVERITY_SCAN_TOKEN=$COVERITY_SCAN_TOKEN $(cat $HOME/cid) sh -c ".ci/coverity-upload.sh"

7
NEWS
View File

@ -7,7 +7,6 @@ Changes since 1.22.0:
Features:
* eolian: remove support for inlist/inarray
* ecore-drm2: Add API function to return output rotation (T7690)
* ecore-drm2: Add background_color to crtc atomic properties
* ecore-drm2: Fill in crtc background color (if supported) during atomic commits
@ -30,10 +29,6 @@ Features:
Fixes:
* Fix leak in elm atspi
* eina_file: set errno on open fail for win32 build
* evas-gl-drm: Fix issue of rotation not actually rotating (T7690)
* solve neon rotation issue by moving to the tiled rotator
* eo: Fix missing varags cleanup (CID1399080)
* efl_core_command_line: Fix logically dead code (CID1399106)
* efl_ui_widget_common: Fix potential resource leak (CID1399088)
@ -232,6 +227,8 @@ Fixes:
* vg_common_svg : Initialize "display" attribute
* fix a bunch of breaks that having a blind file unload has brought
* fix xpm loader to be threadable - fixes so much stuff...
* efl: check file's mtime in efl.file::file_set to determine if file is the same
* meson.build: allow to disable tiff evas loader
Changes since 1.21.0:
---------------------

View File

@ -318,7 +318,7 @@ _image_cb(void *data, const Efl_Event *ev)
{
efl_file_simple_get(ev->object, &f, &k);
o = efl_add(EFL_UI_IMAGE_CLASS, win,
efl_gfx_image_scale_type_set(efl_added, EFL_GFX_IMAGE_SCALE_TYPE_EXPAND),
efl_gfx_image_scale_method_set(efl_added, EFL_GFX_IMAGE_SCALE_METHOD_EXPAND),
efl_file_set(efl_added, f),
efl_file_key_set(efl_added, k)
);
@ -380,7 +380,7 @@ _cb_radio_changed_scale_type(void *data, const Efl_Event *ev)
int v = efl_ui_radio_group_selected_value_get(bx);
if (v == -1) v = 0;
efl_gfx_image_scale_type_set(o_bg, v);
efl_gfx_image_scale_method_set(o_bg, v);
}
static void
@ -437,48 +437,48 @@ test_bg_scale_type(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *e
efl_pack(box, efl_added));
rd = efl_add(EFL_UI_RADIO_CLASS, hbox);
efl_ui_radio_state_value_set(rd, EFL_GFX_IMAGE_SCALE_TYPE_FILL);
efl_ui_radio_state_value_set(rd, EFL_GFX_IMAGE_SCALE_METHOD_FILL);
efl_text_set(rd, "Fill");
efl_gfx_hint_weight_set(rd, EFL_GFX_HINT_EXPAND, 0.0);
efl_event_callback_add(rd, EFL_UI_EVENT_SELECTED_CHANGED, _cb_radio_changed_scale_type, o_bg);
efl_pack(hbox, rd);
rd = efl_add(EFL_UI_RADIO_CLASS, hbox);
efl_ui_radio_state_value_set(rd, EFL_GFX_IMAGE_SCALE_TYPE_FIT);
efl_ui_radio_state_value_set(rd, EFL_GFX_IMAGE_SCALE_METHOD_FIT);
efl_text_set(rd, "Fit");
efl_gfx_hint_weight_set(rd, EFL_GFX_HINT_EXPAND, 0.0);
efl_event_callback_add(rd, EFL_UI_EVENT_SELECTED_CHANGED, _cb_radio_changed_scale_type, o_bg);
efl_pack(hbox, rd);
rd = efl_add(EFL_UI_RADIO_CLASS, hbox);
efl_ui_radio_state_value_set(rd, EFL_GFX_IMAGE_SCALE_TYPE_FIT_WIDTH);
efl_ui_radio_state_value_set(rd, EFL_GFX_IMAGE_SCALE_METHOD_FIT_WIDTH);
efl_text_set(rd, "Fit Horizontally");
efl_gfx_hint_weight_set(rd, EFL_GFX_HINT_EXPAND, 0.0);
efl_event_callback_add(rd, EFL_UI_EVENT_SELECTED_CHANGED, _cb_radio_changed_scale_type, o_bg);
efl_pack(hbox, rd);
rd = efl_add(EFL_UI_RADIO_CLASS, hbox);
efl_ui_radio_state_value_set(rd, EFL_GFX_IMAGE_SCALE_TYPE_FIT_HEIGHT);
efl_ui_radio_state_value_set(rd, EFL_GFX_IMAGE_SCALE_METHOD_FIT_HEIGHT);
efl_text_set(rd, "Fit Verically");
efl_gfx_hint_weight_set(rd, EFL_GFX_HINT_EXPAND, 0.0);
efl_event_callback_add(rd, EFL_UI_EVENT_SELECTED_CHANGED, _cb_radio_changed_scale_type, o_bg);
efl_pack(hbox, rd);
rd = efl_add(EFL_UI_RADIO_CLASS, hbox);
efl_ui_radio_state_value_set(rd, EFL_GFX_IMAGE_SCALE_TYPE_EXPAND);
efl_ui_radio_state_value_set(rd, EFL_GFX_IMAGE_SCALE_METHOD_EXPAND);
efl_text_set(rd, "Expand");
efl_gfx_hint_weight_set(rd, EFL_GFX_HINT_EXPAND, 0.0);
efl_event_callback_add(rd, EFL_UI_EVENT_SELECTED_CHANGED, _cb_radio_changed_scale_type, o_bg);
efl_pack(hbox, rd);
rd = efl_add(EFL_UI_RADIO_CLASS, hbox);
efl_ui_radio_state_value_set(rd, EFL_GFX_IMAGE_SCALE_TYPE_TILE);
efl_ui_radio_state_value_set(rd, EFL_GFX_IMAGE_SCALE_METHOD_TILE);
efl_text_set(rd, "Tile");
efl_gfx_hint_weight_set(rd, EFL_GFX_HINT_EXPAND, 0.0);
efl_event_callback_add(rd, EFL_UI_EVENT_SELECTED_CHANGED, _cb_radio_changed_scale_type, o_bg);
efl_pack(hbox, rd);
efl_ui_radio_group_selected_value_set(hbox, EFL_GFX_IMAGE_SCALE_TYPE_FILL);
efl_ui_radio_group_selected_value_set(hbox, EFL_GFX_IMAGE_SCALE_METHOD_FILL);
c = efl_add(EFL_UI_CHECK_CLASS, box);
efl_text_set(c, "Bg Color");

View File

@ -55,7 +55,7 @@ test_efl_gfx_mapping(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
img = efl_add(EFL_UI_IMAGE_CLASS, win,
efl_gfx_hint_size_min_set(efl_added, EINA_SIZE2D(64, 64)),
efl_file_set(efl_added, buf));
efl_gfx_image_scale_type_set(img, EFL_GFX_IMAGE_SCALE_TYPE_FILL);
efl_gfx_image_scale_method_set(img, EFL_GFX_IMAGE_SCALE_METHOD_FILL);
evas_object_event_callback_add(img, EVAS_CALLBACK_RESIZE,
_image_resize_cb, NULL);

View File

@ -64,7 +64,7 @@ test_evas_map(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
efl_gfx_hint_size_min_set(efl_added, EINA_SIZE2D(64, 64)),
efl_file_set(efl_added, buf),
efl_file_load(efl_added));
efl_gfx_image_scale_type_set(img, EFL_GFX_IMAGE_SCALE_TYPE_FILL);
efl_gfx_image_scale_method_set(img, EFL_GFX_IMAGE_SCALE_METHOD_FILL);
evas_object_event_callback_add(img, EVAS_CALLBACK_RESIZE,
_image_resize_cb, NULL);

View File

@ -100,16 +100,16 @@ im_align_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUS
}
static const struct {
Efl_Gfx_Image_Scale_Type scale_type;
Efl_Gfx_Image_Scale_Method scale_type;
const char *name;
} images_scale_type[] = {
{ EFL_GFX_IMAGE_SCALE_TYPE_NONE, "None" },
{ EFL_GFX_IMAGE_SCALE_TYPE_FILL, "Fill" },
{ EFL_GFX_IMAGE_SCALE_TYPE_FIT, "Fit" },
{ EFL_GFX_IMAGE_SCALE_TYPE_FIT_WIDTH, "Fit Horizontally" },
{ EFL_GFX_IMAGE_SCALE_TYPE_FIT_HEIGHT, "Fit Vertically" },
{ EFL_GFX_IMAGE_SCALE_TYPE_EXPAND, "Expand" },
{ EFL_GFX_IMAGE_SCALE_TYPE_TILE, "Tile" },
{ EFL_GFX_IMAGE_SCALE_METHOD_NONE, "None" },
{ EFL_GFX_IMAGE_SCALE_METHOD_FILL, "Fill" },
{ EFL_GFX_IMAGE_SCALE_METHOD_FIT, "Fit" },
{ EFL_GFX_IMAGE_SCALE_METHOD_FIT_WIDTH, "Fit Horizontally" },
{ EFL_GFX_IMAGE_SCALE_METHOD_FIT_HEIGHT, "Fit Vertically" },
{ EFL_GFX_IMAGE_SCALE_METHOD_EXPAND, "Expand" },
{ EFL_GFX_IMAGE_SCALE_METHOD_TILE, "Tile" },
{ 0, NULL }
};
@ -121,9 +121,9 @@ my_im_scale_ch(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_U
Evas_Object *rdg = evas_object_data_get(win, "rdg");
int v = elm_radio_value_get(rdg);
efl_gfx_image_scale_type_set(im, images_scale_type[v].scale_type);
efl_gfx_image_scale_method_set(im, images_scale_type[v].scale_type);
fprintf(stderr, "Set %d[%s] and got %d\n",
images_scale_type[v].scale_type, images_scale_type[v].name, efl_gfx_image_scale_type_get(im));
images_scale_type[v].scale_type, images_scale_type[v].name, efl_gfx_image_scale_method_get(im));
}
void

View File

@ -40,7 +40,7 @@ _scale_type_cb(void *data, const Efl_Event *ev EINA_UNUSED)
{
Efl_Ui_Radio_Group *radio = data;
Evas_Object *target;
Efl_Gfx_Image_Scale_Type type;
Efl_Gfx_Image_Scale_Method type;
char buf[PATH_MAX];
radio = efl_ui_single_selectable_last_selected_get(radio);
@ -48,9 +48,9 @@ _scale_type_cb(void *data, const Efl_Event *ev EINA_UNUSED)
snprintf(buf, sizeof(buf), "%s/images/plant_01.jpg", elm_app_data_dir_get());
efl_file_simple_load(efl_part(target, "background"), buf, NULL);
type = efl_gfx_image_scale_type_get(efl_part(target, "background"));
type = efl_gfx_image_scale_method_get(efl_part(target, "background"));
type = (type + 1) % 6;
efl_gfx_image_scale_type_set(efl_part(target, "background"), type);
efl_gfx_image_scale_method_set(efl_part(target, "background"), type);
}
static Efl_Ui_Radio_Group *

View File

@ -107,16 +107,16 @@ im_align_cb(void *data, Eo *obj EINA_UNUSED, void *event_info EINA_UNUSED)
}
static const struct {
Efl_Gfx_Image_Scale_Type scale_type;
Efl_Gfx_Image_Scale_Method scale_type;
const char *name;
} images_scale_type[] = {
{ EFL_GFX_IMAGE_SCALE_TYPE_NONE, "None" },
{ EFL_GFX_IMAGE_SCALE_TYPE_FILL, "Fill" },
{ EFL_GFX_IMAGE_SCALE_TYPE_FIT, "Fit" },
{ EFL_GFX_IMAGE_SCALE_TYPE_FIT_WIDTH, "Fit Horizontally" },
{ EFL_GFX_IMAGE_SCALE_TYPE_FIT_HEIGHT, "Fit Vertically" },
{ EFL_GFX_IMAGE_SCALE_TYPE_EXPAND, "Expand" },
{ EFL_GFX_IMAGE_SCALE_TYPE_TILE, "Tile" },
{ EFL_GFX_IMAGE_SCALE_METHOD_NONE, "None" },
{ EFL_GFX_IMAGE_SCALE_METHOD_FILL, "Fill" },
{ EFL_GFX_IMAGE_SCALE_METHOD_FIT, "Fit" },
{ EFL_GFX_IMAGE_SCALE_METHOD_FIT_WIDTH, "Fit Horizontally" },
{ EFL_GFX_IMAGE_SCALE_METHOD_FIT_HEIGHT, "Fit Vertically" },
{ EFL_GFX_IMAGE_SCALE_METHOD_EXPAND, "Expand" },
{ EFL_GFX_IMAGE_SCALE_METHOD_TILE, "Tile" },
{ 0, NULL }
};
@ -128,9 +128,9 @@ my_im_scale_ch(void *data, const Efl_Event *ev EINA_UNUSED)
int v = efl_ui_radio_group_selected_value_get(ev->object);
if (v == -1) v = 0;
efl_gfx_image_scale_type_set(im, images_scale_type[v].scale_type);
efl_gfx_image_scale_method_set(im, images_scale_type[v].scale_type);
fprintf(stderr, "Set %d[%s] and got %d\n",
images_scale_type[v].scale_type, images_scale_type[v].name, efl_gfx_image_scale_type_get(im));
images_scale_type[v].scale_type, images_scale_type[v].name, efl_gfx_image_scale_method_get(im));
}
void

View File

@ -12,17 +12,17 @@ _bt_clicked(void *data EINA_UNUSED, const Efl_Event *ev)
}
static void
_scroll_start_cb(void *data EINA_UNUSED, const Efl_Event *ev)
_scroll_started_cb(void *data EINA_UNUSED, const Efl_Event *ev)
{
Eina_Position2D pos = efl_ui_scrollable_content_pos_get(ev->object);
printf("scroll start: %p x: %d y: %d\n", ev->object, pos.x, pos.y);
}
static void
_scroll_stop_cb(void *data EINA_UNUSED, const Efl_Event *ev)
_scroll_finished_cb(void *data EINA_UNUSED, const Efl_Event *ev)
{
Eina_Position2D pos = efl_ui_scrollable_content_pos_get(ev->object);
printf("scroll stop: %p x: %d y: %d\n", ev->object, pos.x, pos.y);
printf("scroll finish: %p x: %d y: %d\n", ev->object, pos.x, pos.y);
}
void
@ -39,8 +39,8 @@ test_efl_ui_scroller(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void
sc = efl_add(EFL_UI_SCROLLER_CLASS, win,
efl_gfx_hint_weight_set(efl_added, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND),
efl_event_callback_add(efl_added, EFL_UI_EVENT_SCROLL_START, _scroll_start_cb, NULL),
efl_event_callback_add(efl_added, EFL_UI_EVENT_SCROLL_STOP, _scroll_stop_cb, NULL),
efl_event_callback_add(efl_added, EFL_UI_EVENT_SCROLL_STARTED, _scroll_started_cb, NULL),
efl_event_callback_add(efl_added, EFL_UI_EVENT_SCROLL_FINISHED, _scroll_finished_cb, NULL),
efl_content_set(win, efl_added));
bx = efl_add(EFL_UI_BOX_CLASS, sc,
@ -144,8 +144,8 @@ test_efl_ui_scroller_simple(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED
sc = efl_add(EFL_UI_SCROLLER_CLASS, win,
efl_gfx_hint_weight_set(efl_added, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND),
efl_event_callback_add(efl_added, EFL_UI_EVENT_SCROLL_START, _scroll_start_cb, NULL),
efl_event_callback_add(efl_added, EFL_UI_EVENT_SCROLL_STOP, _scroll_stop_cb, NULL),
efl_event_callback_add(efl_added, EFL_UI_EVENT_SCROLL_STARTED, _scroll_started_cb, NULL),
efl_event_callback_add(efl_added, EFL_UI_EVENT_SCROLL_FINISHED, _scroll_finished_cb, NULL),
efl_content_set(win, efl_added));
bx = efl_add(EFL_UI_BOX_CLASS, sc,
@ -180,8 +180,8 @@ test_efl_ui_scroller_simple2(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSE
sc = efl_add(EFL_UI_SCROLLER_CLASS, win,
efl_gfx_hint_weight_set(efl_added, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND),
efl_event_callback_add(efl_added, EFL_UI_EVENT_SCROLL_START, _scroll_start_cb, NULL),
efl_event_callback_add(efl_added, EFL_UI_EVENT_SCROLL_STOP, _scroll_stop_cb, NULL),
efl_event_callback_add(efl_added, EFL_UI_EVENT_SCROLL_STARTED, _scroll_started_cb, NULL),
efl_event_callback_add(efl_added, EFL_UI_EVENT_SCROLL_FINISHED, _scroll_finished_cb, NULL),
efl_content_set(win, efl_added));
tb = efl_add(EFL_UI_TABLE_CLASS, sc,

View File

@ -394,7 +394,6 @@ ffi.cdef [[
const Eolian_Class *eolian_constructor_class_get(const Eolian_Constructor *ctor);
const Eolian_Function *eolian_constructor_function_get(const Eolian_Constructor *ctor);
Eina_Bool eolian_constructor_is_optional(const Eolian_Constructor *ctor);
Eina_Bool eolian_constructor_is_ctor_param(const Eolian_Constructor *ctor);
Eina_Iterator *eolian_class_constructors_get(const Eolian_Class *klass);
Eina_Iterator *eolian_class_events_get(const Eolian_Class *klass);
const Eolian_Type *eolian_event_type_get(const Eolian_Event *event);
@ -1382,10 +1381,6 @@ ffi.metatype("Eolian_Constructor", {
is_optional = function(self)
return eolian.eolian_constructor_is_optional(self) ~= 0
end,
is_ctor_param = function(self)
return eolian.eolian_constructor_is_ctor_param(self) ~= 0
end
}
})

View File

@ -33,7 +33,7 @@ efl_main(void *data EINA_UNUSED, const Efl_Event *ev)
path = "performance/background.png";
efl::ui::Bg bg(instantiate, win);
bg.scale_type_set(EFL_GFX_IMAGE_SCALE_TYPE_FILL);
bg.scale_method_set(EFL_GFX_IMAGE_SCALE_METHOD_FILL);
bg.file_set(path);
bg.load();
win.content_set(bg);

View File

@ -200,13 +200,13 @@ elm_main(int argc EINA_UNUSED, char **argv)
case 40:
efl_file_simple_load(efl_part(item, "background"), "./sky_01.jpg", NULL);
efl_gfx_image_scale_type_set(efl_part(item, "background"), EFL_GFX_IMAGE_SCALE_TYPE_EXPAND);
efl_gfx_image_scale_method_set(efl_part(item, "background"), EFL_GFX_IMAGE_SCALE_METHOD_EXPAND);
efl_pack_at(list, item, 39);
break;
case 50:
efl_file_simple_load(efl_part(item, "background"), "./sky_01.jpg", NULL);
efl_gfx_image_scale_type_set(efl_part(item, "background"), EFL_GFX_IMAGE_SCALE_TYPE_TILE);
efl_gfx_image_scale_method_set(efl_part(item, "background"), EFL_GFX_IMAGE_SCALE_METHOD_TILE);
efl_pack(list, item);
break;

View File

@ -20,7 +20,7 @@ elm_main (int argc EINA_UNUSED, char **argv EINA_UNUSED)
std::cout << ", name = " << icon.icon_get() << std::endl;
icon.scale_type_set(EFL_GFX_IMAGE_SCALE_TYPE_NONE);
icon.scale_method_set(EFL_GFX_IMAGE_SCALE_METHOD_NONE);
//icon.resizable_set(false, true);
//icon.smooth_set(false);
//icon.fill_outside_set(true);

View File

@ -221,7 +221,7 @@ main(void)
else
{
efl_gfx_image_border_set(d.clipper_border, 3, 3, 3, 3);
efl_gfx_image_border_center_fill_set(d.clipper_border, EFL_GFX_BORDER_FILL_MODE_NONE);
efl_gfx_image_center_fill_mode_set(d.clipper_border, EFL_GFX_CENTER_FILL_MODE_NONE);
efl_gfx_entity_position_set(d.clipper_border, EINA_POSITION2D((WIDTH / 4) -3, (HEIGHT / 4) - 3));
efl_gfx_entity_size_set(d.clipper_border, EINA_SIZE2D((WIDTH / 2) + 6, (HEIGHT / 2) + 6));
efl_gfx_entity_visible_set(d.clipper_border, EINA_TRUE);

View File

@ -18,9 +18,9 @@ enum @beta Efl.Gfx.Image_Scale_Hint
static = 2 [[Image will not be re-scaled over time, thus turning scaling cache ON for its data.]]
}
enum @beta Efl.Gfx.Image_Scale_Type
enum @beta Efl.Gfx.Image_Scale_Method
{
[[Enumeration that defines scale types of an image.]]
[[Enumeration that defines scaling methods to be used when rendering an image.]]
none, [[Use the image's natural size.]]
fill, [[Scale the image so that it matches
the object's area exactly.
@ -60,7 +60,12 @@ struct Efl.Gfx.Image_Stretch_Region
interface @beta Efl.Gfx.Image
{
[[Common APIs for all 2D images that can be rendered on the canvas.]]
[[This interface defines a set of common APIs which should be implemented by image objects.
These APIs provide the ability to manipulate how images will be rendered,
e.g., determining whether to allow upscaling and downscaling at render time,
as well as functionality for detecting errors during the loading process.
]]
methods {
@property smooth_scale {
@ -70,46 +75,48 @@ interface @beta Efl.Gfx.Image
when scaling images to sizes other than the source image's
original one. This gives better results but is more
computationally expensive.
$true by default
]]
set {}
get {}
values {
smooth_scale: bool; [[Whether to use smooth scale or not.]]
smooth_scale: bool; [[Whether to use smooth scale or not. The default value is $true.]]
}
}
@property scale_type {
[[Control how the image is scaled.]]
@property scale_method {
[[Determine how the image is scaled at render time.
This allows more granular controls for how an image object should display its internal
buffer. The underlying image data will not be modified.
]]
values {
scale_type: Efl.Gfx.Image_Scale_Type; [[Image scale type]]
scale_method: Efl.Gfx.Image_Scale_Method; [[Image scale type to use. The default value is
@Efl.Gfx.Image_Scale_Method.none.]]
}
}
@property can_upscale {
[[If $true, the image may be scaled to a larger size. If $false,
the image will never be resized larger than its native size.
This is set to $true by default.
]]
values {
upscale: bool; [[Allow image upscaling]]
upscale: bool; [[Whether to allow image upscaling. The default value is $true.]]
}
}
@property can_downscale {
[[If $true, the image may be scaled to a smaller size. If $false,
the image will never be resized smaller than its native size.
This is set to $true by default.
]]
values {
downscale: bool; [[Allow image downscaling]]
downscale: bool; [[Whether to allow image downscaling. The default value is $true.]]
}
}
@property ratio {
[[The native width/height ratio of the image.]]
[[The native width/height ratio of the image.
The ratio will be 1.0 if it cannot be calculated (e.g. height = 0).]]
get {
[[Returns 1.0 if not applicable (eg. height = 0).]]
}
values {
ratio: double; [[The image's ratio.]]
ratio: double; [[The image's ratio. The default value is $[1.0].]]
}
}
@property content_region {
@ -117,7 +124,7 @@ interface @beta Efl.Gfx.Image
We do expect content to be inside the limit defined by the border or inside the
stretch region. If a stretch region is provided, the content region will encompass the
non strechable area that are surrounded by stretchable area. If no border and no
non-stretchable area that are surrounded by stretchable area. If no border and no
stretch region is set, they are assumed to be zero and the full object geometry is
where content can be layout on top. The area size change with the object size.
@ -125,7 +132,9 @@ interface @beta Efl.Gfx.Image
]]
get { }
values {
region: Eina.Rect; [[A rectangle inside the object boundary that where content is expected.]]
region: Eina.Rect; [[A rectangle inside the object boundary where content is expected.
The default value is the image object's geometry with the @Efl.Gfx.Image.border
values subtracted.]]
}
}
@property border {
@ -152,10 +161,10 @@ interface @beta Efl.Gfx.Image
set {}
get {}
values {
l: int; [[The border's left width.]]
r: int; [[The border's right width.]]
t: int; [[The border's top height.]]
b: int; [[The border's bottom height.]]
l: int; [[The border's left width. The default value is $0.]]
r: int; [[The border's right width. The default value is $0.]]
t: int; [[The border's top height. The default value is $0.]]
b: int; [[The border's bottom height. The default value is $0.]]
}
}
@property border_scale {
@ -163,33 +172,30 @@ interface @beta Efl.Gfx.Image
This value multiplies the size of the @.border when scaling an
object.
Default value is 1.0 (no scaling).
]]
set {}
get {}
values {
scale: double; [[The scale factor.]]
scale: double; [[The scale factor. The default value is $[1.0].]]
}
}
@property border_center_fill {
@property center_fill_mode {
[[Specifies how the center part of the object (not the borders)
should be drawn when EFL is rendering it.
This function sets how the center part of the image object's
source image is to be drawn, which must be one of the values
in @Efl.Gfx.Border_Fill_Mode. By center we mean the complementary
in @Efl.Gfx.Center_Fill_Mode. By center we mean the complementary
part of that defined by @.border.set. This is very useful for
making frames and decorations. You would most probably also be
using a filled image (as in @Efl.Gfx.Fill.fill_auto) to use as a frame.
The default value is @Efl.Gfx.Border_Fill_Mode.default, i.e. render
and scale the center area, respecting its transparency.
]]
set {}
get {}
values {
fill: Efl.Gfx.Border_Fill_Mode; [[Fill mode of the center region.]]
fill: Efl.Gfx.Center_Fill_Mode; [[Fill mode of the center region.
The default value is @Efl.Gfx.Center_Fill_Mode.default, i.e. render
and scale the center area, respecting its transparency.]]
}
}
@property stretch_region {
@ -199,19 +205,21 @@ interface @beta Efl.Gfx.Image
once and then destroy them. When the regions are retrieved by the user,
it is his responsibility to destroy the iterators.. It will remember the
information for the lifetime of the object. It will ignore all value
of @.border, @.border_scale and @.border_center_fill . To reset the object
of @.border, @.border_scale and @.center_fill_mode . To reset the object
you can just pass $null to both horizontal and vertical at the same
time.
]]
set {
return: Eina.Error; [[return an error code if the stretch_region provided are incorrect.]]
return: Eina.Error; [[Return an error code if the provided values are incorrect.]]
}
get {}
values {
horizontal: iterator<ptr(Efl.Gfx.Image_Stretch_Region)>; [[Representation of areas that are stretchable in
the image horizontal space.]]
the image horizontal space. The default value
is $NULL.]]
vertical: iterator<ptr(Efl.Gfx.Image_Stretch_Region)>; [[Representation of areas that are stretchable in
the image vertical space.]]
the image vertical space. The default value
is $NULL.]]
}
}
@property image_size {
@ -221,15 +229,14 @@ interface @beta Efl.Gfx.Image
the size of the loaded pixel buffer. This is the size of the image
as stored in the original file.
This is a read-only property, and may return 0x0.
This is a read-only property and may return 0x0.
]]
get {}
values {
size: Eina.Size2D; [[The size in pixels.]]
size: Eina.Size2D; [[The size in pixels. The default value is the size of the image's internal buffer.]]
}
}
/* Note: those are obscure features of evas image. Expose in Efl.Gfx.Image? */
@property content_hint {
[[Content hint setting for the image. These hints might be used by EFL
to enable optimizations.
@ -244,13 +251,14 @@ interface @beta Efl.Gfx.Image
get {
}
values {
hint: Efl.Gfx.Image_Content_Hint; [[Dynamic or static content hint.]]
hint: Efl.Gfx.Image_Content_Hint; [[Dynamic or static content hint. The default value is
@Efl.Gfx.Image_Content_Hint.none.]]
}
}
@property scale_hint {
[[The scale hint of a given image of the canvas.
The scale hint affects how Evas is to cache
The scale hint affects how EFL is to cache
scaled versions of its original source image.
]]
set {
@ -258,22 +266,23 @@ interface @beta Efl.Gfx.Image
get {
}
values {
hint: Efl.Gfx.Image_Scale_Hint; [[Scalable or static size hint,
see @Efl.Gfx.Image_Scale_Hint]]
hint: Efl.Gfx.Image_Scale_Hint; [[Scalable or static size hint. The default value is
@Efl.Gfx.Image_Scale_Hint.none.]]
}
}
@property image_load_error {
[[The (last) file loading error for a given object.]]
[[The (last) file loading error for a given object.
This value is set to a nonzero value if an error has occurred.]]
get {
}
values {
error: Eina.Error; [[The load error code.]]
error: Eina.Error; [[The load error code. A value of $0 indicates no error.]]
}
}
}
events {
image,preload: void; [[Image data has been preloaded.]]
image,resize: void; [[Image was resized (its pixel data).]]
image,resized: Eina.Size2D; [[Image was resized (its pixel data). The event data is the image's new size.]]
image,unload: void; [[Image data has been unloaded (by some mechanism in
EFL that threw out the original image data).]]
}

View File

@ -21,8 +21,8 @@ interface @beta Efl.Gfx.Image_Load_Controller
load_async_start {
[[Begin preloading an image object's image data in the background.
Once the background task is complete the event $load,done will be
emitted.
Once the background task is complete the event @[.load,done] will be
emitted if loading succeeded, @[.load,error] otherwise.
]]
}
load_async_cancel {
@ -51,9 +51,9 @@ interface @beta Efl.Gfx.Image_Load_Controller
The image will be loaded into memory as if it was the specified
size instead of its original size. This can save a lot of memory
and is important for scalable types like svg.
and is important for scalable types like SVG.
By default, the load size is not specified, so it is 0x0.
By default, the load size is not specified, so it is $[0x0].
]]
set {
[[Requests the canvas to load the image at the given size.
@ -89,7 +89,7 @@ interface @beta Efl.Gfx.Image_Load_Controller
]]
get {}
values {
support: bool; [[$true if region load of the image is supported, $false otherwise]]
support: bool; [[$true if region load of the image is supported, $false otherwise.]]
}
}
@property load_region {
@ -101,7 +101,7 @@ interface @beta Efl.Gfx.Image_Load_Controller
Note: The image loader for the image format in question has
to support selective region loading in order for this function
to work.
to work (see @.load_region_support).
]]
set {
}
@ -137,7 +137,7 @@ interface @beta Efl.Gfx.Image_Load_Controller
image. Most useful for the SVG image loader but also applies
to JPEG, PNG and BMP.
Powers of two (2, 4, 8) are best supported (especially with JPEG)
Powers of two (2, 4, 8, ...) are best supported (especially with JPEG).
]]
set {
[[Requests the image loader to scale down by $div times.
@ -152,7 +152,7 @@ interface @beta Efl.Gfx.Image_Load_Controller
@property load_skip_header {
[[Initial load should skip header check and leave it all to data load.
If this is true, then future loads of images will defer header
If this is $true, then future loads of images will defer header
loading to a preload stage and/or data load later on rather than
at the start when the load begins (e.g. when file is set).
]]
@ -160,12 +160,12 @@ interface @beta Efl.Gfx.Image_Load_Controller
}
get {}
values {
skip: bool; [[Will be true if header is to be skipped. ]]
skip: bool; [[$true if header is to be skipped.]]
}
}
}
events {
load,done: void; [[Called when he image was loaded]]
load,error: Eina.Error; [[Called when an error happened during image loading]]
load,done: void; [[Emitted after the image has been loaded.]]
load,error: Eina.Error; [[Emitted if an error happened during image loading.]]
}
}

View File

@ -152,7 +152,7 @@ enum @beta Efl.Gfx.Vg_Composite_Method
mask_difference
}
enum @beta Efl.Gfx.Border_Fill_Mode
enum @beta Efl.Gfx.Center_Fill_Mode
{
[[How an image's center region (the complement to the border region) should be rendered by EFL]]
none = 0, [[Image's center region is $not to be rendered]]

View File

@ -1,8 +1,8 @@
interface @beta Efl.Pack_Layout
{
[[Low-level APIs for object that can lay their children out.
[[Low-level APIs for objects that can lay their children out.
Used for containers (box, grid).
Used for containers like @Efl.Ui.Box and @Efl.Ui.Table.
]]
c_prefix: efl_pack;
methods {
@ -19,7 +19,7 @@ interface @beta Efl.Pack_Layout
EFL will call this function whenever the contents of this
container need to be re-laid out on the canvas.
This can be overriden to implement custom layout behaviors.
This can be overridden to implement custom layout behaviors.
]]
}
}

View File

@ -3,9 +3,9 @@ interface @beta Efl.Ui.Scrollable
[[Efl UI scrollable interface]]
event_prefix: efl_ui;
events {
scroll,start: void; [[Called when scroll operation starts]]
scroll: void; [[Called when scrolling]]
scroll,stop: void; [[Called when scroll operation stops]]
scroll,started: void; [[Called when scroll operation starts]]
scroll,changed: void; [[Called when scrolling]]
scroll,finished: void; [[Called when scroll operation finishes]]
scroll,up: void; [[Called when scrolling upwards]]
scroll,down: void; [[Called when scrolling downwards]]
scroll,left: void; [[Called when scrolling left]]
@ -14,9 +14,9 @@ interface @beta Efl.Ui.Scrollable
edge,down: void; [[Called when hitting the bottom edge]]
edge,left: void; [[Called when hitting the left edge]]
edge,right: void; [[Called when hitting the right edge]]
scroll,anim,start: void; [[Called when scroll animation starts]]
scroll,anim,stop: void; [[Called when scroll animation stopps]]
scroll,drag,start: void; [[Called when scroll drag starts]]
scroll,drag,stop: void; [[Called when scroll drag stops]]
scroll,anim,started: void; [[Called when scroll animation starts]]
scroll,anim,finished: void; [[Called when scroll animation finishes]]
scroll,drag,started: void; [[Called when scroll drag starts]]
scroll,drag,finished: void; [[Called when scroll drag finishes]]
}
}

View File

@ -798,7 +798,7 @@ EAPI void eina_file_statgen_enable(void);
* @brief Disable stat generation count optimiziing to only stat/do file i/o between generation counts changing
* @since 1.23
*/
EAPI void eina_file_statgen_bisable(void);
EAPI void eina_file_statgen_disable(void);
/**
* @}

View File

@ -108,7 +108,7 @@ eina_file_statgen_enable(void)
}
EAPI void
eina_file_statgen_bisable(void)
eina_file_statgen_disable(void)
{
eina_spinlock_take(&_eina_statgen_lock);
_eina_statgen = 0;

View File

@ -44,7 +44,7 @@ _efl_ui_bg_efl_object_constructor(Eo *obj, Efl_Ui_Bg_Data *pd)
efl_content_set(efl_part(obj, "elm.swallow.rectangle"), efl_added));
pd->img = elm_image_add(obj);
efl_gfx_image_scale_type_set(pd->img, EFL_GFX_IMAGE_SCALE_TYPE_EXPAND);
efl_gfx_image_scale_method_set(pd->img, EFL_GFX_IMAGE_SCALE_METHOD_EXPAND);
elm_layout_content_set(obj, "elm.swallow.background", pd->img);
}
else
@ -54,7 +54,7 @@ _efl_ui_bg_efl_object_constructor(Eo *obj, Efl_Ui_Bg_Data *pd)
efl_content_set(efl_part(obj, "efl.rectangle"), efl_added));
pd->img = efl_add(EFL_UI_IMAGE_CLASS, obj,
efl_gfx_image_scale_type_set(efl_added, EFL_GFX_IMAGE_SCALE_TYPE_EXPAND),
efl_gfx_image_scale_method_set(efl_added, EFL_GFX_IMAGE_SCALE_METHOD_EXPAND),
efl_content_set(efl_part(obj, "efl.background"), efl_added));
}
pd->file = NULL;
@ -79,51 +79,51 @@ _efl_ui_bg_efl_object_destructor(Eo *obj, Efl_Ui_Bg_Data *sd)
EAPI void
elm_bg_option_set(Evas_Object *obj, Elm_Bg_Option option)
{
Efl_Gfx_Image_Scale_Type type;
Efl_Gfx_Image_Scale_Method type;
switch (option)
{
case ELM_BG_OPTION_CENTER:
type = EFL_GFX_IMAGE_SCALE_TYPE_NONE;
type = EFL_GFX_IMAGE_SCALE_METHOD_NONE;
break;
case ELM_BG_OPTION_SCALE:
type = EFL_GFX_IMAGE_SCALE_TYPE_EXPAND;
type = EFL_GFX_IMAGE_SCALE_METHOD_EXPAND;
break;
case ELM_BG_OPTION_TILE:
type = EFL_GFX_IMAGE_SCALE_TYPE_TILE;
type = EFL_GFX_IMAGE_SCALE_METHOD_TILE;
break;
case ELM_BG_OPTION_STRETCH:
type = EFL_GFX_IMAGE_SCALE_TYPE_FILL;
type = EFL_GFX_IMAGE_SCALE_METHOD_FILL;
break;
case ELM_BG_OPTION_LAST:
default:
type = EFL_GFX_IMAGE_SCALE_TYPE_EXPAND;
type = EFL_GFX_IMAGE_SCALE_METHOD_EXPAND;
}
efl_gfx_image_scale_type_set(obj, type);
efl_gfx_image_scale_method_set(obj, type);
}
EAPI Elm_Bg_Option
elm_bg_option_get(const Evas_Object *obj)
{
Efl_Gfx_Image_Scale_Type type;
Efl_Gfx_Image_Scale_Method type;
Elm_Bg_Option option = ELM_BG_OPTION_LAST;
type = efl_gfx_image_scale_type_get(obj);
type = efl_gfx_image_scale_method_get(obj);
switch (type)
{
case EFL_GFX_IMAGE_SCALE_TYPE_NONE:
case EFL_GFX_IMAGE_SCALE_METHOD_NONE:
option = ELM_BG_OPTION_CENTER;
break;
case EFL_GFX_IMAGE_SCALE_TYPE_EXPAND:
case EFL_GFX_IMAGE_SCALE_METHOD_EXPAND:
option = ELM_BG_OPTION_SCALE;
break;
case EFL_GFX_IMAGE_SCALE_TYPE_TILE:
case EFL_GFX_IMAGE_SCALE_METHOD_TILE:
option = ELM_BG_OPTION_TILE;
break;
case EFL_GFX_IMAGE_SCALE_TYPE_FILL:
case EFL_GFX_IMAGE_SCALE_METHOD_FILL:
option = ELM_BG_OPTION_STRETCH;
break;
case EFL_GFX_IMAGE_SCALE_TYPE_FIT:
case EFL_GFX_IMAGE_SCALE_METHOD_FIT:
default:
ERR("Scale type %d cannot be converted to Elm_Bg_Option", type);
break;
@ -133,15 +133,15 @@ elm_bg_option_get(const Evas_Object *obj)
}
EOLIAN static void
_efl_ui_bg_efl_gfx_image_scale_type_set(Eo *obj EINA_UNUSED, Efl_Ui_Bg_Data *sd, Efl_Gfx_Image_Scale_Type scale_type)
_efl_ui_bg_efl_gfx_image_scale_method_set(Eo *obj EINA_UNUSED, Efl_Ui_Bg_Data *sd, Efl_Gfx_Image_Scale_Method scale_type)
{
efl_gfx_image_scale_type_set(sd->img, scale_type);
efl_gfx_image_scale_method_set(sd->img, scale_type);
}
EOLIAN static Efl_Gfx_Image_Scale_Type
_efl_ui_bg_efl_gfx_image_scale_type_get(const Eo *obj EINA_UNUSED, Efl_Ui_Bg_Data *sd)
EOLIAN static Efl_Gfx_Image_Scale_Method
_efl_ui_bg_efl_gfx_image_scale_method_get(const Eo *obj EINA_UNUSED, Efl_Ui_Bg_Data *sd)
{
return efl_gfx_image_scale_type_get(sd->img);
return efl_gfx_image_scale_method_get(sd->img);
}
EAPI void

View File

@ -16,7 +16,7 @@ class @beta Efl.Ui.Bg extends Efl.Ui.Layout_Base
Efl.File.key { get; set; }
Efl.File.mmap { get; set; }
Efl.Gfx.Color.color { get; set; }
Efl.Gfx.Image.scale_type { get; set; }
Efl.Gfx.Image.scale_method { get; set; }
Efl.Gfx.Image_Load_Controller.load_size { get; set; }
}
}

View File

@ -2,7 +2,10 @@ class @beta Efl.Ui.Box_Stack extends Efl.Ui.Box
{
[[A custom layout engine for @Efl.Ui.Box that stacks items.
Items will be stacked on top of each other (in the Z direction).
Items will be stacked on top of each other (in the Z direction) meaning that, in the absence of transparency,
only the last item added through the @Efl.Pack interface will actually be visible.
This can be useful to display transparent objects on top of each other, for example.
]]
data: null;
implements {

View File

@ -6,6 +6,10 @@ class Efl.Ui.Button extends Efl.Ui.Layout_Base implements Efl.Input.Clickable, E
Press it and run some function. It can contain a simple label and icon
object and it also has an autorepeat feature.
The icon can be set using @Efl.Content.content, the text can be set using @Efl.Text.text.
The events of @Efl.Input.Clickable can be used to listen to a click event from the user.
]]
implements {
class.constructor;

View File

@ -2,12 +2,14 @@ class @beta Efl.Ui.Check extends Efl.Ui.Layout_Base
implements Efl.Access.Widget.Action, Efl.Text, Efl.Content, Efl.Input.Clickable,
Efl.Ui.Selectable
{
[[Check widget
[[Check widget.
The check widget allows for toggling a value between true and false.
Check objects are a lot like radio objects in layout and functionality,
The check widget allows for toggling a value between $true and $false.
Check objects are a lot like @Efl.Ui.Radio objects in layout and functionality,
except they do not work as a group, but independently, and only toggle
the value of a boolean between false and true.
the value of a boolean between $false and $true. The boolean value of the check can be retrieved using the
@Efl.Ui.Selectable.selected property.
Changes to @Efl.Ui.Selectable.selected can be listed to using the @[Efl.Ui.Selectable.selected,changed] event.
]]
methods {
}

View File

@ -23,7 +23,7 @@
#define DATE_SET() \
do { \
Efl_Time t; \
Efl_Time t = { 0 }; \
t.tm_year = pd->cur_date[DATEPICKER_YEAR] - 1900; \
t.tm_mon = pd->cur_date[DATEPICKER_MONTH] - 1; \
t.tm_mday = pd->cur_date[DATEPICKER_DAY] - 1; \

View File

@ -223,4 +223,5 @@ efl_ui_focus_graph_calc(Efl_Ui_Focus_Graph_Context *ctx, Eina_Iterator *nodes, O
cont:
continue;
}
eina_iterator_free(nodes);
}

View File

@ -1473,13 +1473,14 @@ _efl_ui_focus_manager_calc_efl_ui_focus_manager_manager_focus_set(Eo *obj, Efl_U
Node_Type node_type;
Eina_Array *old_chain = eina_array_new(5), *chain = eina_array_new(5);
EINA_SAFETY_ON_NULL_RETURN(focus);
EINA_SAFETY_ON_NULL_GOTO(focus, end);
_current_focused_parent_to_array(obj, pd, old_chain);
//check if node is part of this manager object
node = node_get(obj, pd, focus);
if (!node) return;
if (!node)
goto end;
if (node->type == NODE_TYPE_ONLY_LOGICAL && !node->redirect_manager)
{
@ -1500,7 +1501,7 @@ _efl_ui_focus_manager_calc_efl_ui_focus_manager_manager_focus_set(Eo *obj, Efl_U
else
{
ERR("Could not fetch a node located at %p", node->focusable);
return;
goto end;
}
}

View File

@ -110,14 +110,16 @@ _do_format_string(Efl_Ui_Format_Data *pd, Eina_Strbuf *str, const Eina_Value val
case FORMAT_TYPE_DOUBLE:
{
double v = 0.0;
eina_value_double_convert(&value, &v);
if (!eina_value_double_convert(&value, &v))
ERR("Format conversion failed");
eina_strbuf_append_printf(str, pd->format_string, v);
break;
}
case FORMAT_TYPE_INT:
{
int v = 0;
eina_value_int_convert(&value, &v);
if (!eina_value_int_convert(&value, &v))
ERR("Format conversion failed");
eina_strbuf_append_printf(str, pd->format_string, v);
break;
}
@ -269,7 +271,8 @@ _efl_ui_format_formatted_value_get(Eo *obj EINA_UNUSED, Efl_Ui_Format_Data *pd,
/* Search in the format_values array if we have one */
Efl_Ui_Format_Value val = { 0 };
int ndx;
eina_value_int_convert(&value, &val.value);
if (!eina_value_int_convert(&value, &val.value))
ERR("Format conversion failed");
ndx = eina_inarray_search_sorted(pd->format_values, &val, (Eina_Compare_Cb)_value_compare);
if (ndx > -1) {
Efl_Ui_Format_Value *entry = eina_inarray_nth(pd->format_values, ndx);

View File

@ -204,15 +204,15 @@ _image_sizing_eval(Eo *obj, Efl_Ui_Image_Data *sd, Evas_Object *img)
// according to (iw x ih), (ow x oh), and scale_type
switch (sd->scale_type)
{
case EFL_GFX_IMAGE_SCALE_TYPE_NONE:
case EFL_GFX_IMAGE_SCALE_METHOD_NONE:
w = iw;
h = ih;
break;
case EFL_GFX_IMAGE_SCALE_TYPE_FILL:
case EFL_GFX_IMAGE_SCALE_METHOD_FILL:
w = ow;
h = oh;
break;
case EFL_GFX_IMAGE_SCALE_TYPE_FIT:
case EFL_GFX_IMAGE_SCALE_METHOD_FIT:
w = ow;
h = ((double)ih * w) / (double)iw;
@ -224,17 +224,17 @@ _image_sizing_eval(Eo *obj, Efl_Ui_Image_Data *sd, Evas_Object *img)
break;
case EFL_GFX_IMAGE_SCALE_TYPE_FIT_WIDTH:
case EFL_GFX_IMAGE_SCALE_METHOD_FIT_WIDTH:
w = ow;
h = ((double)ih * w) / (double)iw;
break;
case EFL_GFX_IMAGE_SCALE_TYPE_FIT_HEIGHT:
case EFL_GFX_IMAGE_SCALE_METHOD_FIT_HEIGHT:
h = oh;
w = ((double)iw * h) / (double)ih;
break;
case EFL_GFX_IMAGE_SCALE_TYPE_EXPAND:
case EFL_GFX_IMAGE_SCALE_METHOD_EXPAND:
if (ow > oh)
{
w = ow;
@ -246,7 +246,7 @@ _image_sizing_eval(Eo *obj, Efl_Ui_Image_Data *sd, Evas_Object *img)
w = ((double)iw * h) / (double)ih;
}
break;
case EFL_GFX_IMAGE_SCALE_TYPE_TILE:
case EFL_GFX_IMAGE_SCALE_METHOD_TILE:
evas_object_geometry_get(obj, &x, &y, &w, &h);
evas_object_image_fill_set(img, x, y, iw, ih);
goto done;
@ -869,7 +869,7 @@ _efl_ui_image_efl_object_constructor(Eo *obj, Efl_Ui_Image_Data *pd)
evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks);
efl_access_object_role_set(obj, EFL_ACCESS_ROLE_IMAGE);
pd->scale_type = EFL_GFX_IMAGE_SCALE_TYPE_FIT;
pd->scale_type = EFL_GFX_IMAGE_SCALE_METHOD_FIT;
pd->self = obj;
return obj;
@ -1579,7 +1579,7 @@ _efl_ui_image_efl_player_play_get(const Eo *obj, Efl_Ui_Image_Data *sd)
}
EOLIAN static void
_efl_ui_image_efl_gfx_image_scale_type_set(Eo *obj EINA_UNUSED, Efl_Ui_Image_Data *sd EINA_UNUSED, Efl_Gfx_Image_Scale_Type scale_type)
_efl_ui_image_efl_gfx_image_scale_method_set(Eo *obj EINA_UNUSED, Efl_Ui_Image_Data *sd EINA_UNUSED, Efl_Gfx_Image_Scale_Method scale_type)
{
if (scale_type == sd->scale_type) return;
@ -1588,8 +1588,8 @@ _efl_ui_image_efl_gfx_image_scale_type_set(Eo *obj EINA_UNUSED, Efl_Ui_Image_Dat
efl_canvas_group_change(obj);
}
EOLIAN static Efl_Gfx_Image_Scale_Type
_efl_ui_image_efl_gfx_image_scale_type_get(const Eo *obj EINA_UNUSED, Efl_Ui_Image_Data *sd)
EOLIAN static Efl_Gfx_Image_Scale_Method
_efl_ui_image_efl_gfx_image_scale_method_get(const Eo *obj EINA_UNUSED, Efl_Ui_Image_Data *sd)
{
return sd->scale_type;
}
@ -2101,11 +2101,11 @@ elm_image_fill_outside_set(Evas_Object *obj, Eina_Bool fill_outside)
if (sd->aspect_fixed)
{
if (sd->fill_inside) sd->scale_type = EFL_GFX_IMAGE_SCALE_TYPE_FIT;
else sd->scale_type = EFL_GFX_IMAGE_SCALE_TYPE_EXPAND;
if (sd->fill_inside) sd->scale_type = EFL_GFX_IMAGE_SCALE_METHOD_FIT;
else sd->scale_type = EFL_GFX_IMAGE_SCALE_METHOD_EXPAND;
}
else
sd->scale_type = EFL_GFX_IMAGE_SCALE_TYPE_FILL;
sd->scale_type = EFL_GFX_IMAGE_SCALE_METHOD_FILL;
efl_canvas_group_change(obj);
}
@ -2246,11 +2246,11 @@ elm_image_aspect_fixed_set(Evas_Object *obj, Eina_Bool fixed)
if (sd->aspect_fixed)
{
if (sd->fill_inside) sd->scale_type = EFL_GFX_IMAGE_SCALE_TYPE_FIT;
else sd->scale_type = EFL_GFX_IMAGE_SCALE_TYPE_EXPAND;
if (sd->fill_inside) sd->scale_type = EFL_GFX_IMAGE_SCALE_METHOD_FIT;
else sd->scale_type = EFL_GFX_IMAGE_SCALE_METHOD_EXPAND;
}
else
sd->scale_type = EFL_GFX_IMAGE_SCALE_TYPE_FILL;
sd->scale_type = EFL_GFX_IMAGE_SCALE_METHOD_FILL;
efl_canvas_group_change(obj);
}

View File

@ -78,7 +78,7 @@ class @beta Efl.Ui.Image extends Efl.Ui.Widget implements Efl.Input.Clickable, E
Efl.Gfx.Image.image_size { get; }
Efl.Gfx.Image_Load_Controller.load_size { get; set; }
Efl.Gfx.Image.smooth_scale { get; set; }
Efl.Gfx.Image.scale_type { get; set; }
Efl.Gfx.Image.scale_method { get; set; }
Efl.Gfx.Image_Orientable.image_orientation { get; set; }
Efl.Player.playable { get; }
Efl.Player.play { get; set; }

View File

@ -1428,7 +1428,7 @@ _efl_ui_image_zoomable_edje_drag_start_cb(void *data,
sd->freeze_want = efl_ui_scrollable_scroll_freeze_get(sd->smanager);
efl_ui_scrollable_scroll_freeze_set(sd->smanager, EINA_TRUE);
efl_event_callback_call(data, EFL_UI_EVENT_SCROLL_DRAG_START, NULL);
efl_event_callback_call(data, EFL_UI_EVENT_SCROLL_DRAG_STARTED, NULL);
}
static void
@ -1442,7 +1442,7 @@ _efl_ui_image_zoomable_edje_drag_stop_cb(void *data,
_efl_ui_image_zoomable_bar_read_and_update(data);
efl_ui_scrollable_scroll_freeze_set(sd->smanager, sd->freeze_want);
efl_event_callback_call(data, EFL_UI_EVENT_SCROLL_DRAG_STOP, NULL);
efl_event_callback_call(data, EFL_UI_EVENT_SCROLL_DRAG_FINISHED, NULL);
}
static void
@ -1837,7 +1837,7 @@ _efl_ui_image_zoomable_efl_canvas_group_group_add(Eo *obj, Efl_Ui_Image_Zoomable
else
edje_object_part_swallow(edje, "efl.content", priv->pan_obj);
efl_event_callback_add(obj, EFL_UI_EVENT_SCROLL, _scroll_cb, obj);
efl_event_callback_add(obj, EFL_UI_EVENT_SCROLL_CHANGED, _scroll_cb, obj);
priv->g_layer_start = 1.0;
priv->zoom = 1;
@ -1902,7 +1902,7 @@ _efl_ui_image_zoomable_efl_canvas_group_group_del(Eo *obj, Efl_Ui_Image_Zoomable
ecore_timer_del(sd->scr_timer);
efl_event_callback_del(obj, EFL_CANVAS_OBJECT_EVENT_ANIMATOR_TICK, _zoom_anim_cb, obj);
efl_event_callback_del(obj, EFL_CANVAS_OBJECT_EVENT_ANIMATOR_TICK, _bounce_eval, obj);
efl_event_callback_del(obj, EFL_UI_EVENT_SCROLL, _scroll_cb, obj);
efl_event_callback_del(obj, EFL_UI_EVENT_SCROLL_CHANGED, _scroll_cb, obj);
_efl_ui_image_zoomable_edje_object_detach(obj);
efl_del(sd->pan_obj);

View File

@ -1803,6 +1803,7 @@ _elm_layout_efl_canvas_group_change(Eo *obj, Elm_Layout_Data *ld)
if (!efl_finalized_get(obj)) return;
sd = efl_data_scope_safe_get(obj, EFL_UI_LAYOUT_BASE_CLASS);
EINA_SAFETY_ON_NULL_RETURN(sd);
if (sd->frozen) return;
ld->needs_size_calc = EINA_TRUE;
efl_canvas_group_change(efl_super(obj, ELM_LAYOUT_MIXIN));

View File

@ -324,7 +324,7 @@ _efl_ui_list_view_edje_drag_start_cb(void *data,
pd->scrl_freeze = efl_ui_scrollable_scroll_freeze_get(pd->scrl_mgr);
efl_ui_scrollable_scroll_freeze_set(pd->scrl_mgr, EINA_TRUE);
efl_event_callback_call(data, EFL_UI_EVENT_SCROLL_DRAG_START, NULL);
efl_event_callback_call(data, EFL_UI_EVENT_SCROLL_DRAG_STARTED, NULL);
}
static void
@ -338,7 +338,7 @@ _efl_ui_list_view_edje_drag_stop_cb(void *data,
_efl_ui_list_view_bar_read_and_update(data);
efl_ui_scrollable_scroll_freeze_set(pd->scrl_mgr, pd->scrl_freeze);
efl_event_callback_call(data, EFL_UI_EVENT_SCROLL_DRAG_STOP, NULL);
efl_event_callback_call(data, EFL_UI_EVENT_SCROLL_DRAG_FINISHED, NULL);
}
static void

View File

@ -1227,8 +1227,8 @@ _efl_ui_panel_scrollable_set(Eo *obj, Efl_Ui_Panel_Data *sd, Eina_Bool scrollabl
sd->smanager = efl_add(EFL_UI_SCROLL_MANAGER_CLASS, obj);
efl_ui_mirrored_set(sd->smanager, efl_ui_mirrored_get(obj));
efl_event_callback_add(obj, EFL_UI_EVENT_SCROLL_ANIM_STOP, _anim_stop_cb, NULL);
efl_event_callback_add(obj, EFL_UI_EVENT_SCROLL, _scroll_cb, NULL);
efl_event_callback_add(obj, EFL_UI_EVENT_SCROLL_ANIM_FINISHED, _anim_stop_cb, NULL);
efl_event_callback_add(obj, EFL_UI_EVENT_SCROLL_CHANGED, _scroll_cb, NULL);
}
efl_composite_attach(obj, sd->smanager);

View File

@ -65,6 +65,8 @@ static void
_selected_cb(void *data, const Efl_Event *ev)
{
Efl_Ui_Radio_Group_Impl_Data *pd = efl_data_scope_safe_get(data, EFL_UI_RADIO_GROUP_IMPL_CLASS);
EINA_SAFETY_ON_NULL_RETURN(pd);
if (efl_ui_selectable_selected_get(ev->object))
{
if (pd->selected)

View File

@ -158,20 +158,20 @@ static void
_efl_ui_scroll_manager_scroll_start(Efl_Ui_Scroll_Manager_Data *sd)
{
sd->scrolling = EINA_TRUE;
efl_event_callback_call(sd->parent, EFL_UI_EVENT_SCROLL_START, NULL);
efl_event_callback_call(sd->parent, EFL_UI_EVENT_SCROLL_STARTED, NULL);
}
static void
_efl_ui_scroll_manager_scroll_stop(Efl_Ui_Scroll_Manager_Data *sd)
{
sd->scrolling = EINA_FALSE;
efl_event_callback_call(sd->parent, EFL_UI_EVENT_SCROLL_STOP, NULL);
efl_event_callback_call(sd->parent, EFL_UI_EVENT_SCROLL_FINISHED, NULL);
}
static void
_efl_ui_scroll_manager_drag_start(Efl_Ui_Scroll_Manager_Data *sd)
{
efl_event_callback_call(sd->parent, EFL_UI_EVENT_SCROLL_DRAG_START, NULL);
efl_event_callback_call(sd->parent, EFL_UI_EVENT_SCROLL_DRAG_STARTED, NULL);
if (!sd->scrolling)
_efl_ui_scroll_manager_scroll_start(sd);
}
@ -179,13 +179,13 @@ _efl_ui_scroll_manager_drag_start(Efl_Ui_Scroll_Manager_Data *sd)
static void
_efl_ui_scroll_manager_drag_stop(Efl_Ui_Scroll_Manager_Data *sd)
{
efl_event_callback_call(sd->parent, EFL_UI_EVENT_SCROLL_DRAG_STOP, NULL);
efl_event_callback_call(sd->parent, EFL_UI_EVENT_SCROLL_DRAG_FINISHED, NULL);
}
static void
_efl_ui_scroll_manager_anim_start(Efl_Ui_Scroll_Manager_Data *sd)
{
efl_event_callback_call(sd->parent, EFL_UI_EVENT_SCROLL_ANIM_START, NULL);
efl_event_callback_call(sd->parent, EFL_UI_EVENT_SCROLL_ANIM_STARTED, NULL);
if (!sd->scrolling)
_efl_ui_scroll_manager_scroll_start(sd);
}
@ -193,7 +193,7 @@ _efl_ui_scroll_manager_anim_start(Efl_Ui_Scroll_Manager_Data *sd)
static void
_efl_ui_scroll_manager_anim_stop(Efl_Ui_Scroll_Manager_Data *sd)
{
efl_event_callback_call(sd->parent, EFL_UI_EVENT_SCROLL_ANIM_STOP, NULL);
efl_event_callback_call(sd->parent, EFL_UI_EVENT_SCROLL_ANIM_FINISHED, NULL);
if (sd->scrolling)
_efl_ui_scroll_manager_scroll_stop(sd);
}
@ -201,7 +201,7 @@ _efl_ui_scroll_manager_anim_stop(Efl_Ui_Scroll_Manager_Data *sd)
static void
_efl_ui_scroll_manager_scroll(Efl_Ui_Scroll_Manager_Data *sd)
{
efl_event_callback_call(sd->parent, EFL_UI_EVENT_SCROLL, NULL);
efl_event_callback_call(sd->parent, EFL_UI_EVENT_SCROLL_CHANGED, NULL);
}
static void

View File

@ -81,7 +81,7 @@ _scroll_connector_edje_drag_start_cb(void *data,
ctx->freeze_want = efl_ui_scrollable_scroll_freeze_get(ctx->smanager);
efl_ui_scrollable_scroll_freeze_set(ctx->smanager, EINA_TRUE);
efl_event_callback_call(ctx->obj, EFL_UI_EVENT_SCROLL_DRAG_START, NULL);
efl_event_callback_call(ctx->obj, EFL_UI_EVENT_SCROLL_DRAG_STARTED, NULL);
}
static void
@ -96,7 +96,7 @@ _scroll_connector_edje_drag_stop_cb(void *data,
EINA_SAFETY_ON_TRUE_RETURN(ctx->freeze_want == -1);
efl_ui_scrollable_scroll_freeze_set(ctx->smanager, ctx->freeze_want);
ctx->freeze_want = -1;
efl_event_callback_call(ctx->obj, EFL_UI_EVENT_SCROLL_DRAG_STOP, NULL);
efl_event_callback_call(ctx->obj, EFL_UI_EVENT_SCROLL_DRAG_FINISHED, NULL);
}
static void

View File

@ -2,7 +2,14 @@ class @beta Efl.Ui.Slider extends Efl.Ui.Layout_Base implements Efl.Ui.Range_Int
Efl.Access.Value,
Efl.Access.Widget.Action
{
[[Elementary slider class]]
[[Elementary slider class
This lets the UI user select a numerical value inside the @Efl.Ui.Range_Display.range_limits limits.
The current value can be retrieved using the @Efl.Ui.Range_Interactive interface. Events monitoring its
changes are also available in that interface.
The visual representation of min and max can be swapped using @Efl.Ui.Layout_Orientable.orientation.
Normally the minimum of @Efl.Ui.Range_Display.range_limits is shown on the left side, the max on the right side.
]]
implements {
Efl.Object.constructor;
Efl.Object.destructor;

View File

@ -39,6 +39,8 @@ _selelction_change_cb(void *data, const Efl_Event *ev)
{
Efl_Ui_Tab_Bar_Data *pd = efl_data_scope_safe_get(data, MY_CLASS);
EINA_SAFETY_ON_NULL_RETURN(pd);
if (!efl_ui_selectable_selected_get(ev->object))
{
if (pd->selected == ev->object)

View File

@ -22,7 +22,7 @@
#define TIME_SET() \
do { \
Efl_Time t; \
Efl_Time t = { 0 }; \
t.tm_hour = pd->cur_time[TIMEPICKER_HOUR]; \
t.tm_min = pd->cur_time[TIMEPICKER_MIN]; \
efl_datetime_manager_value_set(pd->dt_manager, t); \

View File

@ -5760,19 +5760,19 @@ _efl_ui_widget_part_bg_efl_gfx_color_color_get(const Eo *obj, void *pd EINA_UNUS
}
EOLIAN static void
_efl_ui_widget_part_bg_efl_gfx_image_scale_type_set(Eo *obj, void *pd EINA_UNUSED, Efl_Gfx_Image_Scale_Type scale_type)
_efl_ui_widget_part_bg_efl_gfx_image_scale_method_set(Eo *obj, void *pd EINA_UNUSED, Efl_Gfx_Image_Scale_Method scale_type)
{
Evas_Object *bg_obj = efl_ui_widget_part_bg_get(obj);
efl_gfx_image_scale_type_set(bg_obj, scale_type);
efl_gfx_image_scale_method_set(bg_obj, scale_type);
}
EOLIAN static Efl_Gfx_Image_Scale_Type
_efl_ui_widget_part_bg_efl_gfx_image_scale_type_get(const Eo *obj, void *pd EINA_UNUSED)
EOLIAN static Efl_Gfx_Image_Scale_Method
_efl_ui_widget_part_bg_efl_gfx_image_scale_method_get(const Eo *obj, void *pd EINA_UNUSED)
{
Evas_Object *bg_obj = efl_ui_widget_part_bg_get(obj);
return efl_gfx_image_scale_type_get(bg_obj);
return efl_gfx_image_scale_method_get(bg_obj);
}
typedef struct _Efl_Ui_Property_Bound Efl_Ui_Property_Bound;

View File

@ -13,11 +13,18 @@ abstract Efl.Ui.Widget extends Efl.Canvas.Group implements Efl.Access.Object,
Efl.Ui.Selection, Efl.Ui.Dnd,
Efl.Ui.Property_Bind, Efl.Ui.View
{
[[Efl UI widget abstract class
[[Base class for all Efl.Ui.* widgets
The class here is designed in a way that widgets can be expressed as a tree.
The parent relation in the tree can be fetched via @.widget_parent .
The parent relation should never be modified directly, instead you should use the APIs of the widgets
(Typically @Efl.Pack_Linear, @Efl.Pack_Table or @Efl.Content).
Properties implemented here should be treated with extra care, some are defined for the sub-tree, others are
defined for the widget itself, additional information for this can be fetched from the documentation in the
implements section.
@since 1.22
]]
//c_prefix: efl_ui_widget;
event_prefix: efl_ui_widget;
data: Efl_Ui_Widget_Data;
methods {
@ -103,9 +110,6 @@ abstract Efl.Ui.Widget extends Efl.Canvas.Group implements Efl.Access.Object,
@property disabled {
[[Whether the widget is enabled (accepts and reacts to user inputs).
The property is counted, this is, if it is set n times to $true,
it has to be set n times to $false in order to get it out of the disabled state again.
Each widget may handle the disabled state differently, but overall
disabled widgets shall not respond to any input events. This is
$false by default, meaning the widget is enabled.
@ -174,7 +178,6 @@ abstract Efl.Ui.Widget extends Efl.Canvas.Group implements Efl.Access.Object,
}
return: bool; [[$true on success, $false otherwise]]
}
// FIXME: focus_allow? can_focus? focusable?
@property focus_allow {
[[The ability for a widget to be focused.
@ -248,8 +251,6 @@ abstract Efl.Ui.Widget extends Efl.Canvas.Group implements Efl.Access.Object,
@in enable: bool; [[$true if accessibility is enabled.]]
}
}
/* Internal hooks. */
widget_sub_object_add @protected {
[[Virtual function customizing sub objects being added.
@ -407,11 +408,14 @@ abstract Efl.Ui.Widget extends Efl.Canvas.Group implements Efl.Access.Object,
Efl.Object.destructor;
Efl.Object.provider_find;
Efl.Object.debug_name_override;
Efl.Gfx.Color.color { set; }
Efl.Gfx.Color.color { set; [[This will set the color on every object in the sub-tree including those that are not
@Efl.Ui.Widget (like simple @Efl.Canvas.Object objects that are added via
@Efl.Canvas.Group.group_member_add). ]] }
Efl.Gfx.Entity.visible { set; }
Efl.Gfx.Entity.position { set; }
Efl.Gfx.Entity.size { set; }
Efl.Gfx.Entity.scale { set; get; }
Efl.Gfx.Entity.scale { set; get; [[A change in this property will also apply the new scale to the whole sub-tree.
]] }
Efl.Canvas.Object.clipper { set; }
Efl.Canvas.Object.no_render { set; }
Efl.Canvas.Group.group_calculate;
@ -426,7 +430,7 @@ abstract Efl.Ui.Widget extends Efl.Canvas.Group implements Efl.Access.Object,
Efl.Ui.Focus.Object.focus_parent { get; }
Efl.Ui.Focus.Object.focus_geometry { get; }
Efl.Ui.Focus.Object.focus { set; }
Efl.Ui.I18n.mirrored { get; set; }
Efl.Ui.I18n.mirrored { get; set; [[This sets the mirror state of the whole sub-tree. ]] }
Efl.Ui.I18n.mirrored_automatic { get; set; }
Efl.Ui.Focus.Object.on_focus_update;
Efl.Ui.L10n.translation_update; [[This implements the calls to $gettext() and $text_set().]]

View File

@ -72,7 +72,7 @@ struct _Efl_Ui_Image_Data
} async;
Efl_Ui_Image_Preload_Status preload_status;
Efl_Gfx_Image_Scale_Type scale_type;
Efl_Gfx_Image_Scale_Method scale_type;
const char *stdicon;

View File

@ -9,6 +9,6 @@ class @beta Efl.Ui.Widget_Part_Bg extends Efl.Ui.Widget_Part implements Efl.File
Efl.File.load;
Efl.File.unload;
Efl.Gfx.Color.color { set; get; }
Efl.Gfx.Image.scale_type { get; set; }
Efl.Gfx.Image.scale_method { get; set; }
}
}

View File

@ -7736,7 +7736,7 @@ _efl_ui_win_part_file_load(Eo *obj, Efl_Ui_Win_Data *sd, Eo *part_obj, const cha
if (file)
{
bg = efl_add(EFL_UI_IMAGE_CLASS, obj);
efl_gfx_image_scale_type_set(bg, EFL_GFX_IMAGE_SCALE_TYPE_EXPAND);
efl_gfx_image_scale_method_set(bg, EFL_GFX_IMAGE_SCALE_METHOD_EXPAND);
ok = efl_file_simple_load(bg, file, key);
if (!ok) ELM_SAFE_DEL(bg);
_elm_win_bg_set(sd, bg);

View File

@ -2319,6 +2319,7 @@ _elm_key_bindings_copy_missing_bindings(Elm_Config *cfg, Elm_Config *syscfg)
{
printf("There have been missing Key bindings in the config, config is now adjusted\n");
}
eina_hash_free(safed_bindings);
}
static void

View File

@ -1049,7 +1049,7 @@ _scroll_animate_stop_cb(Evas_Object *obj,
if (!it) return;
_item_select(it);
efl_event_callback_legacy_call
(data, EFL_UI_EVENT_SCROLL_ANIM_STOP, EO_OBJ(it));
(data, EFL_UI_EVENT_SCROLL_ANIM_FINISHED, EO_OBJ(it));
}
static void
@ -1057,7 +1057,7 @@ _scroll_animate_start_cb(Evas_Object *obj,
void *data EINA_UNUSED)
{
efl_event_callback_legacy_call
(obj, EFL_UI_EVENT_SCROLL_ANIM_START, elm_diskselector_selected_item_get(obj));
(obj, EFL_UI_EVENT_SCROLL_ANIM_STARTED, elm_diskselector_selected_item_get(obj));
}
static void
@ -1065,7 +1065,7 @@ _scroll_drag_start_cb(Evas_Object *obj,
void *data EINA_UNUSED)
{
efl_event_callback_legacy_call
(obj, EFL_UI_EVENT_SCROLL_DRAG_START, elm_diskselector_selected_item_get(obj));
(obj, EFL_UI_EVENT_SCROLL_DRAG_STARTED, elm_diskselector_selected_item_get(obj));
}
static void
@ -1073,7 +1073,7 @@ _scroll_drag_stop_cb(Evas_Object *obj,
void *data EINA_UNUSED)
{
efl_event_callback_legacy_call
(obj, EFL_UI_EVENT_SCROLL_DRAG_STOP, elm_diskselector_selected_item_get(obj));
(obj, EFL_UI_EVENT_SCROLL_DRAG_FINISHED, elm_diskselector_selected_item_get(obj));
}
static void

View File

@ -5150,7 +5150,7 @@ _scroll_cb(Evas_Object *obj, void *data EINA_UNUSED)
ELM_ENTRY_DATA_GET(obj, sd);
/* here we need to emit the signal that the elm_scroller would have done */
efl_event_callback_legacy_call
(obj, EFL_UI_EVENT_SCROLL, NULL);
(obj, EFL_UI_EVENT_SCROLL_CHANGED, NULL);
if (sd->have_selection)
_update_selection_handler(obj);

View File

@ -3714,28 +3714,28 @@ static void
_scroll_animate_start_cb(Evas_Object *obj,
void *data EINA_UNUSED)
{
efl_event_callback_legacy_call(obj, EFL_UI_EVENT_SCROLL_ANIM_START, NULL);
efl_event_callback_legacy_call(obj, EFL_UI_EVENT_SCROLL_ANIM_STARTED, NULL);
}
static void
_scroll_animate_stop_cb(Evas_Object *obj,
void *data EINA_UNUSED)
{
efl_event_callback_legacy_call(obj, EFL_UI_EVENT_SCROLL_ANIM_STOP, NULL);
efl_event_callback_legacy_call(obj, EFL_UI_EVENT_SCROLL_ANIM_FINISHED, NULL);
}
static void
_scroll_drag_start_cb(Evas_Object *obj,
void *data EINA_UNUSED)
{
efl_event_callback_legacy_call(obj, EFL_UI_EVENT_SCROLL_DRAG_START, NULL);
efl_event_callback_legacy_call(obj, EFL_UI_EVENT_SCROLL_DRAG_STARTED, NULL);
}
static void
_scroll_drag_stop_cb(Evas_Object *obj,
void *data EINA_UNUSED)
{
efl_event_callback_legacy_call(obj, EFL_UI_EVENT_SCROLL_DRAG_STOP, NULL);
efl_event_callback_legacy_call(obj, EFL_UI_EVENT_SCROLL_DRAG_FINISHED, NULL);
}
static void
@ -3777,7 +3777,7 @@ static void
_scroll_cb(Evas_Object *obj,
void *data EINA_UNUSED)
{
efl_event_callback_legacy_call(obj, EFL_UI_EVENT_SCROLL, NULL);
efl_event_callback_legacy_call(obj, EFL_UI_EVENT_SCROLL_CHANGED, NULL);
}
static int

View File

@ -5541,35 +5541,35 @@ static void
_scroll_animate_start_cb(Evas_Object *obj,
void *data EINA_UNUSED)
{
efl_event_callback_legacy_call(obj, EFL_UI_EVENT_SCROLL_ANIM_START, NULL);
efl_event_callback_legacy_call(obj, EFL_UI_EVENT_SCROLL_ANIM_STARTED, NULL);
}
static void
_scroll_animate_stop_cb(Evas_Object *obj,
void *data EINA_UNUSED)
{
efl_event_callback_legacy_call(obj, EFL_UI_EVENT_SCROLL_ANIM_STOP, NULL);
efl_event_callback_legacy_call(obj, EFL_UI_EVENT_SCROLL_ANIM_FINISHED, NULL);
}
static void
_scroll_drag_start_cb(Evas_Object *obj,
void *data EINA_UNUSED)
{
efl_event_callback_legacy_call(obj, EFL_UI_EVENT_SCROLL_DRAG_START, NULL);
efl_event_callback_legacy_call(obj, EFL_UI_EVENT_SCROLL_DRAG_STARTED, NULL);
}
static void
_scroll_cb(Evas_Object *obj,
void *data EINA_UNUSED)
{
efl_event_callback_legacy_call(obj, EFL_UI_EVENT_SCROLL, NULL);
efl_event_callback_legacy_call(obj, EFL_UI_EVENT_SCROLL_CHANGED, NULL);
}
static void
_scroll_drag_stop_cb(Evas_Object *obj,
void *data EINA_UNUSED)
{
efl_event_callback_legacy_call(obj, EFL_UI_EVENT_SCROLL_DRAG_STOP, NULL);
efl_event_callback_legacy_call(obj, EFL_UI_EVENT_SCROLL_DRAG_FINISHED, NULL);
}
static void

View File

@ -1308,7 +1308,7 @@ _scr_timeout_cb(void *data)
_smooth_update(sd);
sd->scr_timer = NULL;
efl_event_callback_legacy_call
(sd->obj, EFL_UI_EVENT_SCROLL_DRAG_STOP, NULL);
(sd->obj, EFL_UI_EVENT_SCROLL_DRAG_FINISHED, NULL);
return ECORE_CALLBACK_CANCEL;
}
@ -1322,11 +1322,11 @@ _scroll_cb(Evas_Object *obj,
if (sd->scr_timer) ecore_timer_del(sd->scr_timer);
else
efl_event_callback_legacy_call
(sd->obj, EFL_UI_EVENT_SCROLL_DRAG_START, NULL);
(sd->obj, EFL_UI_EVENT_SCROLL_DRAG_STARTED, NULL);
ELM_SAFE_FREE(sd->long_timer, ecore_timer_del);
sd->scr_timer = ecore_timer_add(0.25, _scr_timeout_cb, obj);
efl_event_callback_legacy_call
(sd->obj, EFL_UI_EVENT_SCROLL, NULL);
(sd->obj, EFL_UI_EVENT_SCROLL_CHANGED, NULL);
}
static void
@ -1336,7 +1336,7 @@ _scroll_animate_start_cb(Evas_Object *obj,
ELM_MAP_DATA_GET(obj, sd);
efl_event_callback_legacy_call
(sd->obj, EFL_UI_EVENT_SCROLL_ANIM_START, NULL);
(sd->obj, EFL_UI_EVENT_SCROLL_ANIM_STARTED, NULL);
}
static void
@ -1346,7 +1346,7 @@ _scroll_animate_stop_cb(Evas_Object *obj,
ELM_MAP_DATA_GET(obj, sd);
efl_event_callback_legacy_call
(sd->obj, EFL_UI_EVENT_SCROLL_ANIM_STOP, NULL);
(sd->obj, EFL_UI_EVENT_SCROLL_ANIM_FINISHED, NULL);
}
static Eina_Bool

View File

@ -1233,7 +1233,7 @@ _scroll_cb(Evas_Object *obj, void *data EINA_UNUSED)
break;
}
efl_event_callback_legacy_call
(obj, EFL_UI_EVENT_SCROLL, (void *) &event);
(obj, EFL_UI_EVENT_SCROLL_CHANGED, (void *) &event);
}
EOLIAN static void

View File

@ -488,7 +488,7 @@ _scroll_cb(Evas_Object *obj,
void *data EINA_UNUSED)
{
efl_event_callback_legacy_call
(obj, EFL_UI_EVENT_SCROLL, NULL);
(obj, EFL_UI_EVENT_SCROLL_CHANGED, NULL);
}
static void
@ -524,7 +524,7 @@ _scroll_anim_start_cb(Evas_Object *obj,
void *data EINA_UNUSED)
{
efl_event_callback_legacy_call
(obj, EFL_UI_EVENT_SCROLL_ANIM_START, NULL);
(obj, EFL_UI_EVENT_SCROLL_ANIM_STARTED, NULL);
}
static void
@ -532,7 +532,7 @@ _scroll_anim_stop_cb(Evas_Object *obj,
void *data EINA_UNUSED)
{
efl_event_callback_legacy_call
(obj, EFL_UI_EVENT_SCROLL_ANIM_STOP, NULL);
(obj, EFL_UI_EVENT_SCROLL_ANIM_FINISHED, NULL);
}
static void
@ -540,7 +540,7 @@ _scroll_drag_start_cb(Evas_Object *obj,
void *data EINA_UNUSED)
{
efl_event_callback_legacy_call
(obj, EFL_UI_EVENT_SCROLL_DRAG_START, NULL);
(obj, EFL_UI_EVENT_SCROLL_DRAG_STARTED, NULL);
}
static void
@ -548,7 +548,7 @@ _scroll_drag_stop_cb(Evas_Object *obj,
void *data EINA_UNUSED)
{
efl_event_callback_legacy_call
(obj, EFL_UI_EVENT_SCROLL_DRAG_STOP, NULL);
(obj, EFL_UI_EVENT_SCROLL_DRAG_FINISHED, NULL);
}
static void

View File

@ -2235,21 +2235,21 @@ static void
_scroll_cb(Evas_Object *obj,
void *data EINA_UNUSED)
{
efl_event_callback_legacy_call(obj, EFL_UI_EVENT_SCROLL, NULL);
efl_event_callback_legacy_call(obj, EFL_UI_EVENT_SCROLL_CHANGED, NULL);
}
static void
_scroll_anim_start_cb(Evas_Object *obj,
void *data EINA_UNUSED)
{
efl_event_callback_legacy_call(obj, EFL_UI_EVENT_SCROLL_ANIM_START, NULL);
efl_event_callback_legacy_call(obj, EFL_UI_EVENT_SCROLL_ANIM_STARTED, NULL);
}
static void
_scroll_anim_stop_cb(Evas_Object *obj,
void *data EINA_UNUSED)
{
efl_event_callback_legacy_call(obj, EFL_UI_EVENT_SCROLL_ANIM_STOP, NULL);
efl_event_callback_legacy_call(obj, EFL_UI_EVENT_SCROLL_ANIM_FINISHED, NULL);
}
static void
@ -2259,14 +2259,14 @@ _scroll_drag_start_cb(Evas_Object *obj,
ELM_TOOLBAR_DATA_GET(obj, sd);
ELM_SAFE_FREE(sd->long_timer, ecore_timer_del);
efl_event_callback_legacy_call(obj, EFL_UI_EVENT_SCROLL_DRAG_START, NULL);
efl_event_callback_legacy_call(obj, EFL_UI_EVENT_SCROLL_DRAG_STARTED, NULL);
}
static void
_scroll_drag_stop_cb(Evas_Object *obj,
void *data EINA_UNUSED)
{
efl_event_callback_legacy_call(obj, EFL_UI_EVENT_SCROLL_DRAG_STOP, NULL);
efl_event_callback_legacy_call(obj, EFL_UI_EVENT_SCROLL_DRAG_FINISHED, NULL);
}
static void

View File

@ -2232,16 +2232,6 @@ EAPI const Eolian_Function *eolian_constructor_function_get(const Eolian_Constru
*/
EAPI Eina_Bool eolian_constructor_is_optional(const Eolian_Constructor *ctor);
/*
* @brief Checks if a constructor is tagged as a constructor parameter.
*
* @param[in] ctor the handle of the constructor
* @return EINA_TRUE if a constructor parameter, EINA_FALSE if not (or if input is NULL).
*
* @ingroup Eolian
*/
EAPI Eina_Bool eolian_constructor_is_ctor_param(const Eolian_Constructor *ctor);
/*
* @brief Get an iterator to the constructing functions defined in a class.
*

View File

@ -29,10 +29,3 @@ eolian_constructor_is_optional(const Eolian_Constructor *ctor)
EINA_SAFETY_ON_NULL_RETURN_VAL(ctor, EINA_FALSE);
return ctor->is_optional;
}
EAPI Eina_Bool
eolian_constructor_is_ctor_param(const Eolian_Constructor *ctor)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(ctor, EINA_FALSE);
return ctor->is_ctor_param;
}

View File

@ -67,7 +67,7 @@ enum Tokens
KW(function), \
KW(__undefined_type), \
\
KW(true), KW(false), KW(null), KWAT(ctor_param)
KW(true), KW(false), KW(null)
/* "regular" keyword and @ prefixed keyword */
#define KW(x) KW_##x

View File

@ -1810,16 +1810,12 @@ parse_constructor(Eo_Lexer *ls)
ls->klass->base.name,
ls->t.value.s);
eo_lexer_get(ls);
while (ls->t.kw == KW_at_optional || ls->t.kw == KW_at_ctor_param)
while (ls->t.kw == KW_at_optional)
{
if (ls->t.kw == KW_at_optional)
{
ctor->is_optional = EINA_TRUE;
}
if (ls->t.kw == KW_at_ctor_param)
{
ctor->is_ctor_param = EINA_TRUE;
}
eo_lexer_get(ls);
}
check_next(ls, ';');
@ -1841,16 +1837,12 @@ parse_constructor(Eo_Lexer *ls)
if (ls->t.token != '.') break;
eo_lexer_get(ls);
}
while (ls->t.kw == KW_at_optional || ls->t.kw == KW_at_ctor_param)
while (ls->t.kw == KW_at_optional)
{
if (ls->t.kw == KW_at_optional)
{
ctor->is_optional = EINA_TRUE;
}
if (ls->t.kw == KW_at_ctor_param)
{
ctor->is_ctor_param = EINA_TRUE;
}
eo_lexer_get(ls);
}
check_next(ls, ';');

View File

@ -329,7 +329,6 @@ struct _Eolian_Constructor
Eolian_Object base;
const Eolian_Class *klass;
Eina_Bool is_optional: 1;
Eina_Bool is_ctor_param : 1;
};
struct _Eolian_Event

View File

@ -1196,15 +1196,13 @@ struct constructor_def
klass_name klass;
function_def function;
bool is_optional;
bool is_ctor_param;
friend inline bool operator==(constructor_def const& lhs, constructor_def const& rhs)
{
return lhs.name == rhs.name
&& lhs.klass == rhs.klass
&& lhs.function == rhs.function
&& lhs.is_optional == rhs.is_optional
&& lhs.is_ctor_param == rhs.is_ctor_param;
&& lhs.is_optional == rhs.is_optional;
}
friend inline bool operator!=(constructor_def const& lhs, constructor_def const& rhs)
@ -1216,7 +1214,6 @@ struct constructor_def
: name(::eolian_constructor_name_get(constructor))
, klass(::eolian_constructor_class_get(constructor), {})
, is_optional(::eolian_constructor_is_optional(constructor))
, is_ctor_param(::eolian_constructor_is_ctor_param(constructor))
{
Eolian_Function const* eo_function = ::eolian_constructor_function_get(constructor);
Eolian_Function_Type eo_func_type = ::eolian_function_type_get(eo_function);

View File

@ -17,7 +17,7 @@ abstract @beta Efl.Canvas.Image_Internal extends Efl.Canvas.Object implements Ef
Efl.Gfx.Image.content_region { get; }
Efl.Gfx.Image.border { get; set; }
Efl.Gfx.Image.border_scale { get; set; }
Efl.Gfx.Image.border_center_fill { get; set; }
Efl.Gfx.Image.center_fill_mode { get; set; }
Efl.Gfx.Image.stretch_region { get; set; }
Efl.Gfx.Image.scale_hint { get; set; }
Efl.Gfx.Image.content_hint { get; set; }

View File

@ -66,7 +66,7 @@ DEFINE_EVAS_CALLBACKS(_legacy_evas_callback_table, EVAS_CALLBACK_LAST,
EFL_GFX_IMAGE_EVENT_IMAGE_UNLOAD,
EFL_CANVAS_SCENE_EVENT_RENDER_PRE,
EFL_CANVAS_SCENE_EVENT_RENDER_POST,
EFL_GFX_IMAGE_EVENT_IMAGE_RESIZE,
EFL_GFX_IMAGE_EVENT_IMAGE_RESIZED,
EFL_CANVAS_SCENE_EVENT_DEVICE_CHANGED,
EFL_EVENT_POINTER_AXIS,
EVAS_CANVAS_EVENT_VIEWPORT_RESIZE );

View File

@ -145,14 +145,14 @@ EAPI void
evas_object_image_border_center_fill_set(Evas_Object *obj, Evas_Border_Fill_Mode fill)
{
EVAS_IMAGE_API(obj);
efl_gfx_image_border_center_fill_set(obj, (Efl_Gfx_Border_Fill_Mode) fill);
efl_gfx_image_center_fill_mode_set(obj, (Efl_Gfx_Center_Fill_Mode) fill);
}
EAPI Evas_Border_Fill_Mode
evas_object_image_border_center_fill_get(const Evas_Object *obj)
{
EVAS_IMAGE_API(obj, EVAS_BORDER_FILL_NONE);
return (Evas_Border_Fill_Mode) efl_gfx_image_border_center_fill_get(obj);
return (Evas_Border_Fill_Mode) efl_gfx_image_center_fill_mode_get(obj);
}
EAPI void

View File

@ -626,7 +626,7 @@ _efl_canvas_image_internal_efl_gfx_image_border_get(const Eo *eo_obj EINA_UNUSED
}
EOLIAN static void
_efl_canvas_image_internal_efl_gfx_image_border_center_fill_set(Eo *eo_obj, Evas_Image_Data *o, Efl_Gfx_Border_Fill_Mode _fill)
_efl_canvas_image_internal_efl_gfx_image_center_fill_mode_set(Eo *eo_obj, Evas_Image_Data *o, Efl_Gfx_Center_Fill_Mode _fill)
{
Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS);
Evas_Border_Fill_Mode fill = (Evas_Border_Fill_Mode)_fill;
@ -641,10 +641,10 @@ _efl_canvas_image_internal_efl_gfx_image_border_center_fill_set(Eo *eo_obj, Evas
evas_object_change(eo_obj, obj);
}
EOLIAN static Efl_Gfx_Border_Fill_Mode
_efl_canvas_image_internal_efl_gfx_image_border_center_fill_get(const Eo *eo_obj EINA_UNUSED, Evas_Image_Data *o)
EOLIAN static Efl_Gfx_Center_Fill_Mode
_efl_canvas_image_internal_efl_gfx_image_center_fill_mode_get(const Eo *eo_obj EINA_UNUSED, Evas_Image_Data *o)
{
return (Efl_Gfx_Border_Fill_Mode)o->cur->border.fill;
return (Efl_Gfx_Center_Fill_Mode)o->cur->border.fill;
}
static void

View File

@ -115,7 +115,9 @@ evas_object_inform_call_image_resize(Evas_Object *eo_obj)
{
Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS);
int event_id = _evas_object_event_new();
Evas_Image_Data *o = efl_data_scope_get(eo_obj, EFL_CANVAS_IMAGE_INTERNAL_CLASS);
Eina_Size2D sz = EINA_SIZE2D(o->file_size.w, o->file_size.h);
evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_IMAGE_RESIZE, NULL, event_id, EFL_GFX_IMAGE_EVENT_IMAGE_RESIZE);
evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_IMAGE_RESIZE, &sz, event_id, EFL_GFX_IMAGE_EVENT_IMAGE_RESIZED);
_evas_post_event_callback_call(obj->layer->evas->evas, obj->layer->evas, event_id);
}

View File

@ -257,13 +257,13 @@ grid_timer_cb(void *data EINA_UNUSED, const Efl_Event *event)
}
static void
grid_scroll_start_cb(void *data EINA_UNUSED, const Efl_Event *event EINA_UNUSED)
grid_scroll_started_cb(void *data EINA_UNUSED, const Efl_Event *event EINA_UNUSED)
{
//printf("LSH :: scroll start!!!\n");
}
static void
grid_scroll_stop_cb(void *data, const Efl_Event *event EINA_UNUSED)
grid_scroll_finished_cb(void *data, const Efl_Event *event EINA_UNUSED)
{
Efl_Loop_Timer *timer = data;
efl_del(timer);
@ -271,8 +271,8 @@ grid_scroll_stop_cb(void *data, const Efl_Event *event EINA_UNUSED)
}
EFL_CALLBACKS_ARRAY_DEFINE(grid_scroll_callbacks,
{ EFL_UI_EVENT_SCROLL_START, grid_scroll_start_cb },
{ EFL_UI_EVENT_SCROLL_STOP, grid_scroll_stop_cb });
{ EFL_UI_EVENT_SCROLL_STARTED, grid_scroll_started_cb },
{ EFL_UI_EVENT_SCROLL_FINISHED, grid_scroll_finished_cb });
EFL_START_TEST(efl_ui_grid_scroll)
{

View File

@ -7,11 +7,11 @@
#include "efl_ui_suite.h"
static void
_startstop_event_cb(void *data, const Efl_Event *ev EINA_UNUSED)
_startfinish_event_cb(void *data, const Efl_Event *ev EINA_UNUSED)
{
int *called = data;
(*called)++;
/* start/stop always come in pairs */
/* start/finish always come in pairs */
if (*called == 2) ecore_main_loop_quit();
}
@ -24,8 +24,8 @@ EFL_START_TEST(efl_ui_test_scroller_events)
sc = efl_add(EFL_UI_SCROLLER_CLASS, win,
efl_event_callback_add(efl_added, EFL_UI_EVENT_SCROLL_START, _startstop_event_cb, &called),
efl_event_callback_add(efl_added, EFL_UI_EVENT_SCROLL_STOP, _startstop_event_cb, &called),
efl_event_callback_add(efl_added, EFL_UI_EVENT_SCROLL_STARTED, _startfinish_event_cb, &called),
efl_event_callback_add(efl_added, EFL_UI_EVENT_SCROLL_FINISHED, _startfinish_event_cb, &called),
efl_gfx_entity_size_set(efl_added, EINA_SIZE2D(500, 500))
);
@ -52,8 +52,8 @@ EFL_START_TEST(efl_ui_test_scroller_events)
sc2 = efl_add(EFL_UI_SCROLLER_CLASS, bx,
efl_ui_scrollable_match_content_set(efl_added, EINA_FALSE, EINA_TRUE),
efl_event_callback_add(efl_added, EFL_UI_EVENT_SCROLL_START, _startstop_event_cb, &called2),
efl_event_callback_add(efl_added, EFL_UI_EVENT_SCROLL_STOP, _startstop_event_cb, &called2),
efl_event_callback_add(efl_added, EFL_UI_EVENT_SCROLL_STARTED, _startfinish_event_cb, &called2),
efl_event_callback_add(efl_added, EFL_UI_EVENT_SCROLL_FINISHED, _startfinish_event_cb, &called2),
efl_pack(bx, efl_added));
bx2 = efl_add(EFL_UI_BOX_CLASS, sc2,
@ -91,8 +91,8 @@ EFL_START_TEST(efl_ui_test_scroller_events)
sc3 = efl_add(EFL_UI_SCROLLER_CLASS, win,
efl_gfx_hint_weight_set(efl_added, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND),
efl_gfx_hint_fill_set(efl_added, EINA_TRUE, EINA_TRUE),
efl_event_callback_add(efl_added, EFL_UI_EVENT_SCROLL_START, _startstop_event_cb, &called3),
efl_event_callback_add(efl_added, EFL_UI_EVENT_SCROLL_STOP, _startstop_event_cb, &called3),
efl_event_callback_add(efl_added, EFL_UI_EVENT_SCROLL_STARTED, _startfinish_event_cb, &called3),
efl_event_callback_add(efl_added, EFL_UI_EVENT_SCROLL_FINISHED, _startfinish_event_cb, &called3),
efl_pack_table(gd, efl_added, 0, 0, 1, 1));
gd2 = efl_add(EFL_UI_TABLE_CLASS, sc3,

View File

@ -23,6 +23,5 @@ class Ctor_Dtor extends Base {
constructors {
.custom_constructor_1;
.custom_constructor_2 @optional;
.custom_constructor_3 @ctor_param;
}
}

View File

@ -313,14 +313,6 @@ EFL_START_TEST(eolian_ctor_dtor)
fail_if(strcmp(eolian_function_name_get(impl_func), "custom_constructor_2"));
fail_if(!eolian_function_is_constructor(impl_func, class));
fail_if(eolian_function_is_constructor(impl_func, base));
fail_if(!(eina_iterator_next(iter, (void**)&ctor)));
fail_if(!eolian_constructor_is_ctor_param(ctor));
fail_if(!(impl_class = eolian_constructor_class_get(ctor)));
fail_if(!(impl_func = eolian_constructor_function_get(ctor)));
fail_if(impl_class != class);
fail_if(strcmp(eolian_function_name_get(impl_func), "custom_constructor_3"));
fail_if(!eolian_function_is_constructor(impl_func, class));
fail_if(eolian_function_is_constructor(impl_func, base));
fail_if(eina_iterator_next(iter, &dummy));
eina_iterator_free(iter);

View File

@ -292,7 +292,6 @@ EFL_START_TEST(eolian_cxx_test_constructors)
auto ctor = constructors[0];
ck_assert_str_eq("Generic.required_ctor_a", ctor.name.c_str());
ck_assert(!ctor.is_optional);
ck_assert(!ctor.is_ctor_param);
auto function = ctor.function;
ck_assert_str_eq("required_ctor_a", function.name.c_str());
@ -300,7 +299,6 @@ EFL_START_TEST(eolian_cxx_test_constructors)
ctor = constructors[2];
ck_assert_str_eq("Generic.optional_ctor_a", ctor.name.c_str());
ck_assert(ctor.is_optional);
ck_assert(!ctor.is_ctor_param);
function = ctor.function;
ck_assert_str_eq("optional_ctor_a", function.name.c_str());