Merge branch 'master' into devs/hermet/lottie

This commit is contained in:
Hermet Park 2019-12-02 10:24:17 +09:00
commit a25e094cf0
21 changed files with 529 additions and 26 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

View File

@ -0,0 +1,477 @@
// gcc -o efl_ui_grid_view_example_1 efl_ui_grid_view_example_1.c `pkg-config --cflags --libs elementary`
#define EFL_BETA_API_SUPPORT 1
#include <Efl.h>
#include <Efl_Ui.h>
#include <Elementary.h>
#include "efl_ui_grid_view.eo.h"
static Efl_Model*
_make_model(Evas_Object *win)
{
Eina_Value vtext;
Efl_Generic_Model *model, *child;
model = efl_add(EFL_GENERIC_MODEL_CLASS, win);
eina_value_setup(&vtext, EINA_VALUE_TYPE_STRING);
#define IC(x) \
child = efl_model_child_add(model); \
eina_value_set(&vtext, x); \
efl_model_property_set(child, "title", &vtext);
IC("user-home")
IC("user-bookmarks")
IC("user-desktop")
IC("user-trash")
IC("folder")
IC("folder-drag-accept")
IC("folder-remote")
IC("folder-open")
IC("folder-home")
IC("folder-download")
IC("folder-recent")
IC("folder-documents")
IC("folder-pictures")
IC("folder-music")
IC("folder-videos")
IC("folder-visiting")
IC("network-server")
IC("network-workgroup")
IC("start-here")
IC("emblem-default")
IC("emblem-documents")
IC("emblem-downloads")
IC("emblem-favorite")
IC("emblem-important")
IC("emblem-mail")
IC("emblem-photos")
IC("emblem-readonly")
IC("emblem-shared")
IC("emblem-symbolic-link")
IC("emblem-unreadable")
IC("emblem-system")
IC("emblem-synchronized")
IC("emblem-synchronizing")
IC("address-book-new")
IC("application-exit")
IC("appointment-new")
IC("call-start")
IC("call-stop")
IC("contact-new")
IC("document-open")
IC("document-open-recent")
IC("document-page-setup")
IC("document-properties")
IC("document-save")
IC("document-save-as")
IC("document-send")
IC("document-close")
IC("document-new")
IC("document-print")
IC("document-print-preview")
IC("document-revert")
IC("document-export")
IC("document-import")
IC("edit-clear")
IC("edit-copy")
IC("edit-cut")
IC("edit-delete")
IC("edit-find")
IC("edit-find-replace")
IC("edit-paste")
IC("edit-redo")
IC("edit-undo")
IC("edit-select-all")
IC("folder-copy")
IC("folder-move")
IC("folder-new")
IC("format-indent-less")
IC("format-indent-more")
IC("format-justify-center")
IC("format-justify-fill")
IC("format-justify-left")
IC("format-justify-right")
IC("format-text-direction-ltr")
IC("format-text-direction-rtl")
IC("format-text-bold")
IC("format-text-italic")
IC("format-text-underline")
IC("format-text-strikethrough")
IC("go-home")
IC("go-bottom")
IC("go-down")
IC("go-first")
IC("go-jump")
IC("go-last")
IC("go-next")
IC("go-previous")
IC("go-top")
IC("go-up")
IC("insert-image")
IC("insert-link")
IC("insert-object")
IC("insert-text")
IC("list-add")
IC("list-remove")
IC("mail-forward")
IC("mail-mark-important")
IC("mail-mark-junk")
IC("mail-mark-notjunk")
IC("mail-mark-read")
IC("mail-mark-unread")
IC("mail-message-new")
IC("mail-reply-all")
IC("mail-reply-sender")
IC("mail-send")
IC("mail-send-receive")
IC("media-eject")
IC("media-playback-pause")
IC("media-playback-start")
IC("media-playback-stop")
IC("media-record")
IC("media-seek-backward")
IC("media-seek-forward")
IC("media-skip-backward")
IC("media-skip-forward")
IC("object-flip-horizontal")
IC("object-flip-vertical")
IC("object-rotate-left")
IC("object-rotate-right")
IC("process-stop")
IC("tools-check-spelling")
IC("view-list-compact")
IC("view-list-details")
IC("view-list-icons")
IC("view-fullscreen")
IC("view-refresh")
IC("view-restore")
IC("view-sort-ascending")
IC("view-sort-descending")
IC("view-close")
IC("window-close")
IC("window-new")
IC("system-run")
IC("system-shutdown")
IC("system-reboot")
IC("system-lock-screen")
IC("system-log-out")
IC("system-search")
IC("help-about")
IC("help-contents")
IC("help-faq")
IC("zoom-in")
IC("zoom-out")
IC("zoom-original")
IC("zoom-fit")
IC("zoom-fill")
IC("zoom-fit-best")
IC("appointment-missed")
IC("appointment-soon")
IC("audio-volume-high")
IC("audio-volume-low")
IC("audio-volume-medium")
IC("audio-volume-muted")
IC("audio-volume")
IC("battery-caution")
IC("battery-empty")
IC("battery-low")
IC("battery-good")
IC("battery-full")
IC("battery-caution-charging")
IC("battery-empty-charging")
IC("battery-low-charging")
IC("battery-good-charging")
IC("battery-full-charging")
IC("bluetooth-active")
IC("bluetooth-disabled")
IC("changes-allow")
IC("changes-prevent")
IC("dialog-error")
IC("dialog-information")
IC("dialog-password")
IC("dialog-question")
IC("dialog-warning")
IC("media-playlist-repeat")
IC("media-playlist-shuffle")
IC("network-cellular-3g")
IC("network-cellular-4g")
IC("network-cellular-edge")
IC("network-cellular-gprs")
IC("network-cellular-umts")
IC("network-cellular-connected")
IC("network-cellular-signal-excellent")
IC("network-cellular-signal-good")
IC("network-cellular-signal-none")
IC("network-cellular-signal-ok")
IC("network-cellular-signal-weak")
IC("network-cellular-signal-acquiring")
IC("network-error")
IC("network-offline")
IC("network-receive")
IC("network-transmit-receive")
IC("network-transmit")
IC("network-idle")
IC("network-vpn")
IC("network-vpn-acquiring")
IC("network-wireless-acquiring")
IC("network-wireless-encrypted")
IC("network-wireless-signal-excellent")
IC("network-wireless-signal-good")
IC("network-wireless-signal-none")
IC("network-wireless-signal-ok")
IC("network-wireless-signal-weak")
IC("printer-error")
IC("printer-printing")
IC("printer-warning")
IC("security-high")
IC("security-medium")
IC("security-low")
IC("software-update-available")
IC("software-update-urgent")
IC("task-due")
IC("task-past-due")
IC("user-available")
IC("user-away")
IC("user-busy")
IC("user-invisible")
IC("user-idle")
IC("user-offline")
IC("user-trash-full")
IC("weather-clear-night")
IC("weather-clear")
IC("weather-clouds-night")
IC("weather-clouds")
IC("weather-few-clouds-night")
IC("weather-few-clouds")
IC("weather-fog")
IC("weather-overcast")
IC("weather-severe-alert")
IC("weather-showers-scattered")
IC("weather-showers")
IC("weather-snow")
IC("weather-storm")
IC("mail-attachment")
IC("mail-unread")
IC("mail-read")
IC("mail-replied")
IC("mail-signed")
IC("mail-signed-verified")
IC("starred")
IC("non-starred")
IC("audio-card")
IC("audio-input-microphone")
IC("battery")
IC("camera")
IC("camera-photo")
IC("camera-web")
IC("camera-video")
IC("drive-harddisk")
IC("drive-harddisk-ieee1394")
IC("drive-harddisk-usb")
IC("drive-optical")
IC("drive-removable-media")
IC("drive-removable-media-ieee1394")
IC("drive-removable-media-usb")
IC("computer")
IC("computer-laptop")
IC("multimedia-player")
IC("media-optical")
IC("media-optical-cd")
IC("media-optical-audio")
IC("media-optical-dvd")
IC("media-optical-bd")
IC("media-flash")
IC("media-flash-cf")
IC("media-flash-ms")
IC("media-flash-sd")
IC("media-flash-sm")
IC("media-floppy")
IC("media-zip")
IC("media-tape")
IC("media-memory")
IC("processor")
IC("input-mouse")
IC("input-tablet")
IC("input-keyboard")
IC("input-gaming")
IC("pda")
IC("phone")
IC("printer")
IC("scanner")
IC("modem")
IC("video-display")
IC("network-wired")
IC("network-wireless")
IC("applications-accessories")
IC("applications-development")
IC("applications-games")
IC("applications-graphics")
IC("applications-internet")
IC("applications-multimedia")
IC("applications-office")
IC("applications-other")
IC("applications-science")
IC("applications-system")
IC("applications-utilities")
IC("preferences-desktop")
IC("preferences-system")
IC("preferences-other")
IC("preferences-color")
IC("preferences-profile")
IC("preferences-desktop-display")
IC("preferences-desktop-font")
IC("preferences-desktop-keyboard")
IC("preferences-desktop-locale")
IC("preferences-desktop-multimedia")
IC("preferences-desktop-screensaver")
IC("preferences-desktop-theme")
IC("preferences-desktop-wallpaper")
IC("system-file-manager")
IC("flag-ad")
IC("flag-af")
IC("flag-al")
IC("flag-am")
IC("flag-ar")
IC("flag-at")
IC("flag-au")
IC("flag-az")
IC("flag-ba")
IC("flag-bd")
IC("flag-be")
IC("flag-bg")
IC("flag-br")
IC("flag-bt")
IC("flag-bw")
IC("flag-by")
IC("flag-ca")
IC("flag-cd")
IC("flag-ch")
IC("flag-cm")
IC("flag-cn")
IC("flag-cz")
IC("flag-de")
IC("flag-dk")
IC("flag-ee")
IC("flag-es")
IC("flag-et")
IC("flag-fi")
IC("flag-fo")
IC("flag-fr")
IC("flag-gb")
IC("flag-ge")
IC("flag-gh")
IC("flag-gn")
IC("flag-gr")
IC("flag-hr")
IC("flag-hu")
IC("flag-ie")
IC("flag-il")
IC("flag-in")
IC("flag-iq")
IC("flag-ir")
IC("flag-is")
IC("flag-it")
IC("flag-jp")
IC("flag-ke")
IC("flag-kg")
IC("flag-kh")
IC("flag-kr")
IC("flag-ku")
IC("flag-kz")
IC("flag-la")
IC("flag-lk")
IC("flag-lt")
IC("flag-lv")
IC("flag-ma")
IC("flag-md")
IC("flag-me")
IC("flag-mk")
IC("flag-ml")
IC("flag-mm")
IC("flag-mn")
IC("flag-mt")
IC("flag-mv")
IC("flag-my")
IC("flag-ng")
IC("flag-nl")
IC("flag-no")
IC("flag-np")
IC("flag-ph")
IC("flag-pk")
IC("flag-pl")
IC("flag-pt")
IC("flag-ro")
IC("flag-rs")
IC("flag-ru")
IC("flag-se")
IC("flag-si")
IC("flag-sk")
IC("flag-sn")
IC("flag-sy")
IC("flag-th")
IC("flag-tj")
IC("flag-tm")
IC("flag-tr")
IC("flag-tw")
IC("flag-tz")
IC("flag-ua")
IC("flag-us")
IC("flag-uz")
IC("flag-vn")
IC("flag-za")
IC("inode-directory")
eina_value_flush(&vtext);
return model;
}
static void
_item_constructing(void *data EINA_UNUSED, const Efl_Event *ev)
{
Efl_Gfx_Entity *item = ev->info;
if (!efl_key_data_get(item, "efl.ui.widget.factory.size_set"))
efl_gfx_hint_size_min_set(item, EINA_SIZE2D(100, 100));
}
EAPI_MAIN void
efl_main(void *data EINA_UNUSED, const Efl_Event *ev EINA_UNUSED)
{
Efl_Ui_Factory *factory, *image_factory;
Efl_Ui_Win *win;
Efl_Ui_Grid_View *grid;
Eo *model;
elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
win = efl_add(EFL_UI_WIN_CLASS, efl_main_loop_get(),
efl_ui_win_type_set(efl_added, EFL_UI_WIN_TYPE_BASIC),
efl_text_set(efl_added, "Efl.Ui.Grid_View example"),
efl_ui_win_autodel_set(efl_added, EINA_TRUE)
);
model = _make_model(win);
image_factory = efl_add(EFL_UI_LAYOUT_FACTORY_CLASS, win);
efl_ui_widget_factory_item_class_set(image_factory, EFL_UI_IMAGE_CLASS);
efl_ui_property_bind(image_factory, "icon", "title");
factory = efl_add(EFL_UI_LAYOUT_FACTORY_CLASS, win);
efl_ui_widget_factory_item_class_set(factory, EFL_UI_GRID_DEFAULT_ITEM_CLASS);
efl_ui_property_bind(factory, "efl.text", "title");
efl_ui_factory_bind(factory, "icon", image_factory);
efl_event_callback_add(factory, EFL_UI_FACTORY_EVENT_ITEM_CONSTRUCTING, _item_constructing, NULL);
grid = efl_add(EFL_UI_GRID_VIEW_CLASS, win,
efl_ui_collection_view_factory_set(efl_added, factory),
efl_ui_view_model_set(efl_added, model)
);
evas_object_size_hint_weight_set(grid, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(grid, EVAS_HINT_FILL, EVAS_HINT_FILL);
efl_content_set(win, grid);
efl_gfx_entity_size_set(win, EINA_SIZE2D(320, 320));
}
EFL_MAIN()

View File

@ -120,7 +120,8 @@ examples = [
'efl_ui_theme_example_02',
'efl_ui_slideshow_example',
'efl_ui_radio_example_01',
'efl_ui_grid_example_1'
'efl_ui_grid_example_1',
'efl_ui_grid_view_example_1'
]
foreach example : examples

View File

@ -25,7 +25,7 @@ class @beta Efl.Boolean_Model extends Efl.Composite_Model
@in name: string; [[The name of the property to examine.]]
@in request: bool; [[The value to look for.]]
}
return: iterator<ptr(uint64)> @move; [[The iterator that is valid until any change is made on the model.]]
return: iterator<uint64> @move; [[The iterator that is valid until any change is made on the model.]]
}
}
implements {

View File

@ -36,7 +36,7 @@ struct @beta Efl.Net.Control.Agent_Request_Input {
access_point: Efl.Net.Control.Access_Point; [[The access point which triggered this request.]]
fields: Efl.Net.Control.Agent_Request_Input_Field; [[Bitwise OR of fields present in this request.]]
passphrase_type: string; [[Extra detail for the passphrase field, such as wep, psk, response (IEEE802.X GTC/OTP), string...]]
informational: list<ptr(Efl.Net.Control.Agent_Request_Input_Information)>; [[Such as the previous passphrase, VPN host]]
informational: list<Efl.Net.Control.Agent_Request_Input_Information>; [[Such as the previous passphrase, VPN host]]
}
struct @beta Efl.Net.Control.Agent_Error {

View File

@ -187,7 +187,7 @@ class @beta Efl.Net.Dialer_Http extends Efl.Loop_Consumer implements Efl.Net.Dia
request_headers_get {
[[Returns an iterator to the key-value pairs for request headers]]
return: iterator<ptr(Efl.Net.Http.Header)> @move @no_unused; [[Iterator for request headers]]
return: iterator<Efl.Net.Http.Header> @move @no_unused; [[Iterator for request headers]]
}
@property request_content_length {
@ -250,7 +250,7 @@ class @beta Efl.Net.Dialer_Http extends Efl.Loop_Consumer implements Efl.Net.Dia
This will be usable after the "headers,done" event is dispatched.
]]
return: iterator<ptr(Efl.Net.Http.Header)> @move @no_unused; [[Iterator for response headers]]
return: iterator<Efl.Net.Http.Header> @move @no_unused; [[Iterator for response headers]]
}
response_headers_all_get {
@ -275,7 +275,7 @@ class @beta Efl.Net.Dialer_Http extends Efl.Loop_Consumer implements Efl.Net.Dia
This will be usable after the "headers,done" event is dispatched.
]]
return: iterator<ptr(Efl.Net.Http.Header)> @move @no_unused; [[Iterator for all response headers]]
return: iterator<Efl.Net.Http.Header> @move @no_unused; [[Iterator for all response headers]]
}
response_headers_clear {

View File

@ -260,7 +260,7 @@ class @beta Efl.Net.Dialer_Websocket extends Efl.Loop_Consumer implements Efl.Ne
request_headers_get {
[[Returns an iterator to the key-value pairs for request headers]]
return: iterator<ptr(Efl.Net.Http.Header)> @move @no_unused; [[Iterator to key value pairs]]
return: iterator<Efl.Net.Http.Header> @move @no_unused; [[Iterator to key value pairs]]
}
@property cookie_jar {

View File

@ -92,7 +92,7 @@ abstract @beta Ector.Renderer extends Efl.Object
return: bool; [[$true on success, $false otherwise]]
params {
@in op: Efl.Gfx.Render_Op; [[Renderer operation]]
@in clips: array<ptr(Eina.Rect)>; [[Array of @Eina.Rect clip]]
@in clips: array<Eina.Rect>; [[Array of @Eina.Rect clip]]
@in mul_col: uint; [[Premultiplied color]]
}
}

View File

@ -27,7 +27,7 @@ class @beta Ector.GL.Surface extends Ector.GL.Buffer implements Ector.Surface
return: bool; [[$true on success, $false otherwise]]
params {
@in op: Efl.Gfx.Render_Op; [[Render operation]]
@in clips: array<ptr(Eina.Rect)>; [[Array of @Eina.Rect clip]]
@in clips: array<Eina.Rect>; [[Array of @Eina.Rect clip]]
}
}
}

View File

@ -1006,10 +1006,6 @@ _edje_recalc_do(Edje *ed)
Eina_Bool need_reinit_state = EINA_FALSE;
#endif
//Do nothing if the edje has no size,
if ((EINA_UNLIKELY(!ed->has_size)) && (!ed->calc_only) && (ed->w == 0) && (ed->h == 0))
return;
ed->has_size = EINA_TRUE;
need_calc = evas_object_smart_need_recalculate_get(ed->obj);

View File

@ -57,7 +57,7 @@ class @beta Efl.Observable extends Efl.Object {
iterator_tuple_new {
[[Return a new iterator associated to this observable.
]]
return: iterator<ptr(Efl.Observable_Tuple)> @move; [[Iterator for observer]]
return: iterator<Efl.Observable_Tuple> @move; [[Iterator for observer]]
}
}
implements {

View File

@ -17,7 +17,7 @@ function @beta EflIoPath {
function @beta EflIoDirectInfo {
[[EflIoDirectInfo function]]
params {
@in entries: array<ptr(Eina.File_Direct_Info)>; [[Accessor to an array of info.]]
@in entries: array<Eina.File_Direct_Info>; [[Accessor to an array of info.]]
}
};

View File

@ -11,7 +11,7 @@ class @beta Eldbus.Model.Arguments extends Eldbus.Model {
params {
@in proxy: ptr(Eldbus.Proxy); [[Eldbus proxy]]
@in name: string; [[Name]]
@in arguments: const(list<ptr(Eldbus.Introspection.Argument)>); [[The introspected arguments]]
@in arguments: const(list<Eldbus.Introspection.Argument>); [[The introspected arguments]]
}
}
@property arg_name {

View File

@ -86,6 +86,6 @@ struct @beta @extern Eldbus.Introspection.Signal
{
[[DBus Signal]]
name: stringshare; [[Signal name]]
arguments: list<ptr(Eldbus.Introspection.Argument)>; [[List with signal arguments]]
annotations: list<ptr(Eldbus.Introspection.Annotation)>; [[List with signal annotations]]
arguments: list<Eldbus.Introspection.Argument>; [[List with signal arguments]]
annotations: list<Eldbus.Introspection.Annotation>; [[List with signal annotations]]
}

View File

@ -47,7 +47,7 @@ mixin @beta Efl.Access.Action
get @pure_virtual {
}
values {
actions: list<ptr(Efl.Access.Action_Data)> @move;
actions: list<Efl.Access.Action_Data> @move;
[[Contains statically allocated strings.]]
}
}

View File

@ -263,7 +263,7 @@ mixin @beta Efl.Access.Object requires Efl.Object
}
relations_get @protected @beta @const {
[[Gets an all relations between accessible object and other accessible objects.]]
return: iterator<ptr(Efl.Access.Relation)> @move; [[Accessible relation set]]
return: iterator<Efl.Access.Relation> @move; [[Accessible relation set]]
}
@property role @beta {
[[The role of the object in accessibility domain.]]
@ -296,7 +296,7 @@ mixin @beta Efl.Access.Object requires Efl.Object
get {
}
values {
attributes: list<ptr(Efl.Access.Attribute) @move> @move; [[List of object attributes.
attributes: list<Efl.Access.Attribute> @move; [[List of object attributes.
Must be freed by the user]]
}
}

View File

@ -121,7 +121,7 @@ interface @beta Efl.Access.Text
end_offset: ptr(int); [[End offset]]
}
values {
attributes: list<ptr(Efl.Access.Text_Attribute) @move> @move; [[List of text attributes]]
attributes: list<Efl.Access.Text_Attribute> @move; [[List of text attributes]]
}
}
@property default_attributes @protected @beta {
@ -129,7 +129,7 @@ interface @beta Efl.Access.Text
get {
}
values {
attributes: list<ptr(Efl.Access.Text_Attribute) @move> @move; [[List of default attributes]]
attributes: list<Efl.Access.Text_Attribute> @move; [[List of default attributes]]
}
}
@property character_extents @protected @beta {
@ -180,7 +180,7 @@ interface @beta Efl.Access.Text
yclip: Efl.Access.Text_Clip_Type; [[yclip]]
}
values {
ranges: list<ptr(Efl.Access.Text_Range) @move> @move; [[List of ranges]]
ranges: list<Efl.Access.Text_Range> @move; [[List of ranges]]
}
}
@property range_extents @protected @beta {

View File

@ -706,6 +706,7 @@ _efl_ui_position_manager_grid_efl_ui_position_manager_entity_position_single_ite
EINA_SAFETY_ON_FALSE_RETURN_VAL(group_consumed_ids == 0, EINA_RECT(0, 0, 0, 0));
int columns = pd->viewport.w/pd->max_min_size.w;
if (columns == 0) return EINA_RECT(0, 0, 0, 0);
int sub_pos_id = idx - group_consumed_ids;
if (pd->dir == EFL_UI_LAYOUT_ORIENTATION_VERTICAL)

View File

@ -1,5 +1,5 @@
import efl_gfx_types;
class @beta Efl.Ui.Relative_Container extends Efl.Ui.Widget implements Efl.Pack_Layout, Efl.Pack
class Efl.Ui.Relative_Container extends Efl.Ui.Widget implements Efl.Pack_Layout, Efl.Pack
{
[[The relative container class.

View File

@ -347,6 +347,33 @@ EFL_START_TEST(wl2_window_activated)
}
EFL_END_TEST
EFL_START_TEST(wl2_window_available_rotation)
{
Ecore_Wl2_Display *disp;
Ecore_Wl2_Window *win;
Eina_Bool ret;
int rots[2] = { 90, 180 };
int *ret_rots;
unsigned int ret_count;
disp = _display_connect();
ck_assert(disp != NULL);
win = _window_create(disp);
ck_assert(win != NULL);
ecore_wl2_window_available_rotations_set(win, rots, 2);
ret = ecore_wl2_window_available_rotations_get(win, &ret_rots, &ret_count);
fail_if(ret != EINA_TRUE);
fail_if(ret_rots[0] != 90);
fail_if(ret_rots[1] != 180);
fail_if(ret_count != 2);
}
EFL_END_TEST
void
ecore_wl2_test_window(TCase *tc)
{
@ -371,5 +398,6 @@ ecore_wl2_test_window(TCase *tc)
tcase_add_test(tc, wl2_window_geometry);
tcase_add_test(tc, wl2_window_type);
tcase_add_test(tc, wl2_window_activated);
tcase_add_test(tc, wl2_window_available_rotation);
}
}

View File

@ -317,7 +317,7 @@ class Test.Object extends Efl.Object {
return: list<array<int> >;
}
method_list_with_opaque_elements_check {
return: const(list<ptr(Elm.Calendar.Mark)>);
return: const(list<Elm.Calendar.Mark>);
}
method_in_enum_return_enum_check {
params { e: Test.Enum_Ex; }