efl/src/lib/elementary/efl_ui_image_zoomable.eo

87 lines
2.9 KiB
Plaintext
Raw Normal View History

class Efl.Ui.Image_Zoomable (Efl.Ui.Widget, Efl.Ui.Image, Efl.Ui.Zoom,
Efl.Ui.Scrollable_Interactive,
scroller: Introducing Efl.Ui.Scroller Summary: scrollable widgets had a interface_scrollable as a mixin so that the widgets had a 'is-a' relation with interface_scrollabe. however, new scroller concept don't have 'is-a' relationship, but 'has-a' relationship. scrollable widgets should have a scroll manager inside them, then scroll manager handles event from user and api implementations. and also we cut the features such as paging because there will be aka 'elm_pager'. we are expecting that the new concept make us to maintain the scroller easier. please excuse for many unorganized code and logics. : ( [contained commit] scrollable: add efl_ui_scroller example scrollable: refactoring for behavior in case of multiple scroller scrollable: remove repetitive scrollbar code. scrollable: combine calculating bounce distance code. scroll_manager: mouse up function refactoring scroll_manager: mouse move function refactoring scroll_manager: warp animator wip scroll_manager: fix denominator value when calculating flicking behavior. Fix to disconnect bounce animator once animation is done gather duplicated animator drop logics gather duplicated conditions Rearrange prototypes and append comment Add manipulate functions for animators scroll_manager: change member_add function. scroll_manger: apply mirroring logic scroll_manager: apply scrollbar apply API to scroller widget scroll_manager: apply scroll event callback Change logics for all about scroll animating efl_ui_pan: add efl_ui_pan scrollable: change content_min_limit to match_content scroll theme: apply overlapped scrollbar + many others! Reviewers: akanad, woohyun, cedric, jpeg Subscribers: jenkins, cedric, jpeg Differential Revision: https://phab.enlightenment.org/D5222 Note by @jpeg: Unfortunately this patch comes in a massive single blob, after too many rebase operations. It has now come to a point where I think the API is nice and it works as I'd expect. Now I only wonder how applicable this will be for Efl.Ui.List. As we can see Photocam (legacy and unified API) could be transformed to use this new API.
2017-12-18 04:08:25 -08:00
Efl.Ui.Scrollbar)
{
[[Elementary Image Zoomable class]]
legacy_prefix: elm_photocam;
2015-05-07 09:32:53 -07:00
methods {
@property gesture_enabled {
set {
2015-07-31 07:12:30 -07:00
[[Set the gesture state for photocam.
2015-07-31 07:12:30 -07:00
This sets the gesture state to on or off for photocam. The
default is off. This will start multi touch zooming.
]]
}
get {
2015-07-31 07:12:30 -07:00
[[Get the gesture state for photocam.
2015-07-31 07:12:30 -07:00
This gets the current gesture state for the photocam object.
]]
}
values {
2015-07-31 07:12:30 -07:00
gesture: bool; [[The gesture state.]]
}
}
2015-05-07 09:32:53 -07:00
@property image_region {
get {
2015-07-31 07:12:30 -07:00
[[Get the region of the image that is currently shown
See also @.image_region.set.
]]
legacy: null;
}
set {
[[Set the viewed region of the image
This shows the region of the image without using animation.
@since 1.20
2015-07-31 07:12:30 -07:00
]]
legacy: null;
}
values {
region: Eina.Rect; [[The region in the original image pixels.]]
}
}
}
implements {
class.constructor;
Efl.Object.constructor;
Efl.Gfx.Entity.position { set; }
Efl.Gfx.Entity.size { set; }
Efl.Gfx.View.view_size { get; }
Efl.Gfx.Image.image_size { get; }
Efl.Ui.Image.icon { set; get; }
Efl.Player.playable { get; }
Efl.Player.play { get; set; }
Efl.Ui.Zoom.zoom_animation { set; get; }
2018-02-14 18:14:52 -08:00
Efl.Ui.Zoom.zoom_level { set; get; }
Efl.Ui.Zoom.zoom_mode { set; get; }
Efl.Canvas.Group.group_member_add;
Efl.Ui.Widget.theme_apply;
Efl.Ui.Focus.Object.on_focus_update;
Efl.Ui.Widget.widget_event;
Efl.Ui.Scrollable_Interactive.scroll;
Efl.Access.Widget.Action.elm_actions { get; }
Efl.File.file { get; set; }
Efl.Orientation.orientation { get; set; }
Efl.Orientation.flip { get; set; }
Efl.Layout.Group.group_size_min { get; }
Efl.Layout.Group.group_size_max { get; }
Efl.Layout.Signal.signal_callback_add;
Efl.Layout.Signal.signal_callback_del;
//Efl.Canvas.Layout_Group.group_data { get; }
}
events {
press; [[Called when photocam got pressed]]
load; [[Called when photocam loading started]]
loaded; [[Called when photocam loading finished]]
load,detail; [[Called when photocal detail loading started]]
loaded,detail; [[Called when photocam detail loading finished]]
download,start; [[Called when photocam download started]]
download,progress; [[Called when photocam download progress updated]]
download,done; [[Called when photocam download finished]]
download,error; [[Called when photocam download failed]]
}
}