forked from enlightenment/efl
eolian: mark pure virtual funcs outside of implements
This is a better syntax and should've been like this in the first place.
This commit is contained in:
parent
6cacef2503
commit
7e94eb22b4
|
@ -58,7 +58,7 @@ class Ecore.Audio (Eo.Base)
|
||||||
volume: double; [[The volume]]
|
volume: double; [[The volume]]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@property source {
|
@property source @virtual_pure {
|
||||||
[[Source of the object
|
[[Source of the object
|
||||||
|
|
||||||
What sources are supported depends on the actual object.
|
What sources are supported depends on the actual object.
|
||||||
|
@ -78,7 +78,7 @@ class Ecore.Audio (Eo.Base)
|
||||||
source: const(char)*; [[the source to set to (i.e. file, URL, device)]]
|
source: const(char)*; [[the source to set to (i.e. file, URL, device)]]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@property format {
|
@property format @virtual_pure {
|
||||||
[[Format of the object.]]
|
[[Format of the object.]]
|
||||||
set {
|
set {
|
||||||
[[Set the format of the object
|
[[Set the format of the object
|
||||||
|
@ -103,7 +103,7 @@ class Ecore.Audio (Eo.Base)
|
||||||
format: Ecore.Audio.Format; [[the format of the object]]
|
format: Ecore.Audio.Format; [[the format of the object]]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
vio_set {
|
vio_set @virtual_pure {
|
||||||
[[Set the virtual IO functions
|
[[Set the virtual IO functions
|
||||||
|
|
||||||
@since 1.8
|
@since 1.8
|
||||||
|
@ -123,10 +123,5 @@ class Ecore.Audio (Eo.Base)
|
||||||
}
|
}
|
||||||
implements {
|
implements {
|
||||||
Eo.Base.constructor;
|
Eo.Base.constructor;
|
||||||
@virtual .source.get;
|
|
||||||
@virtual .source.set;
|
|
||||||
@virtual .format.get;
|
|
||||||
@virtual .format.set;
|
|
||||||
@virtual .vio_set;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,7 +44,7 @@ class Ecore.Audio.In (Ecore.Audio)
|
||||||
channels: int; [[The number of channels]]
|
channels: int; [[The number of channels]]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@property preloaded {
|
@property preloaded @virtual_pure {
|
||||||
[[Preloaded state of the input
|
[[Preloaded state of the input
|
||||||
|
|
||||||
@since 1.8
|
@since 1.8
|
||||||
|
@ -82,7 +82,7 @@ class Ecore.Audio.In (Ecore.Audio)
|
||||||
|
|
||||||
@since 1.8
|
@since 1.8
|
||||||
]]
|
]]
|
||||||
set {
|
set @virtual_pure {
|
||||||
}
|
}
|
||||||
get {
|
get {
|
||||||
}
|
}
|
||||||
|
@ -134,7 +134,7 @@ class Ecore.Audio.In (Ecore.Audio)
|
||||||
@in len: size; [[The amount of samples to read]]
|
@in len: size; [[The amount of samples to read]]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
seek {
|
seek @virtual_pure {
|
||||||
[[Seek within the input
|
[[Seek within the input
|
||||||
|
|
||||||
@since 1.8
|
@since 1.8
|
||||||
|
@ -153,10 +153,6 @@ class Ecore.Audio.In (Ecore.Audio)
|
||||||
Eo.Base.constructor;
|
Eo.Base.constructor;
|
||||||
Eo.Base.destructor;
|
Eo.Base.destructor;
|
||||||
Ecore.Audio.vio_set;
|
Ecore.Audio.vio_set;
|
||||||
@virtual .preloaded.get;
|
|
||||||
@virtual .preloaded.set;
|
|
||||||
@virtual .seek;
|
|
||||||
@virtual .length.set;
|
|
||||||
}
|
}
|
||||||
events {
|
events {
|
||||||
in,looped; [[Called when an input has looped.]]
|
in,looped; [[Called when an input has looped.]]
|
||||||
|
|
|
@ -45,7 +45,7 @@ abstract Efl.Network (Eo.Base) {
|
||||||
valid after deletion for the svr object. If no IP is known
|
valid after deletion for the svr object. If no IP is known
|
||||||
null is returned.
|
null is returned.
|
||||||
]]
|
]]
|
||||||
get {
|
get @virtual_pure {
|
||||||
legacy: null;
|
legacy: null;
|
||||||
}
|
}
|
||||||
values {
|
values {
|
||||||
|
@ -58,14 +58,14 @@ abstract Efl.Network (Eo.Base) {
|
||||||
This function is used to find out how long a client has been
|
This function is used to find out how long a client has been
|
||||||
connected.
|
connected.
|
||||||
]]
|
]]
|
||||||
get {
|
get @virtual_pure {
|
||||||
legacy: null;
|
legacy: null;
|
||||||
}
|
}
|
||||||
values {
|
values {
|
||||||
uptime: double; [[The total time, in seconds, that the object has been connected.]]
|
uptime: double; [[The total time, in seconds, that the object has been connected.]]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@property port {
|
@property port @virtual_pure {
|
||||||
[[The port that the obj is connected to]]
|
[[The port that the obj is connected to]]
|
||||||
set {
|
set {
|
||||||
legacy: null;
|
legacy: null;
|
||||||
|
@ -91,7 +91,7 @@ abstract Efl.Network (Eo.Base) {
|
||||||
|
|
||||||
@since 1.1
|
@since 1.1
|
||||||
]]
|
]]
|
||||||
get {
|
get @virtual_pure {
|
||||||
legacy: null;
|
legacy: null;
|
||||||
}
|
}
|
||||||
values {
|
values {
|
||||||
|
@ -100,14 +100,14 @@ abstract Efl.Network (Eo.Base) {
|
||||||
}
|
}
|
||||||
@property connected {
|
@property connected {
|
||||||
[[Returns whether the client is still connected]]
|
[[Returns whether the client is still connected]]
|
||||||
get {
|
get @virtual_pure {
|
||||||
legacy: null;
|
legacy: null;
|
||||||
}
|
}
|
||||||
values {
|
values {
|
||||||
connected: bool; [[Returns true if connected, false otherwise.]]
|
connected: bool; [[Returns true if connected, false otherwise.]]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@property timeout {
|
@property timeout @virtual_pure {
|
||||||
[[Control the default time after which an inactive client will be
|
[[Control the default time after which an inactive client will be
|
||||||
disconnected.
|
disconnected.
|
||||||
|
|
||||||
|
@ -131,14 +131,14 @@ abstract Efl.Network (Eo.Base) {
|
||||||
timeout: double; [[The timeout, in seconds, to disconnect after.]]
|
timeout: double; [[The timeout, in seconds, to disconnect after.]]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
flush {
|
flush @virtual_pure {
|
||||||
[[Flushes all pending data to the given server.
|
[[Flushes all pending data to the given server.
|
||||||
|
|
||||||
This function will block until all data is sent to the server.
|
This function will block until all data is sent to the server.
|
||||||
]]
|
]]
|
||||||
legacy: null;
|
legacy: null;
|
||||||
}
|
}
|
||||||
send {
|
send @virtual_pure {
|
||||||
[[Sends the given data to the given server.
|
[[Sends the given data to the given server.
|
||||||
|
|
||||||
This function will send the given data to the server as soon as the
|
This function will send the given data to the server as soon as the
|
||||||
|
@ -175,18 +175,6 @@ abstract Efl.Network (Eo.Base) {
|
||||||
return: bool; [[true if the request did not fail to be set up, false otherwise.]]
|
return: bool; [[true if the request did not fail to be set up, false otherwise.]]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
implements {
|
|
||||||
@virtual .ip.get;
|
|
||||||
@virtual .uptime.get;
|
|
||||||
@virtual .port.set;
|
|
||||||
@virtual .port.get;
|
|
||||||
@virtual .fd.get;
|
|
||||||
@virtual .connected.get;
|
|
||||||
@virtual .timeout.set;
|
|
||||||
@virtual .timeout.get;
|
|
||||||
@virtual .flush;
|
|
||||||
@virtual .send;
|
|
||||||
}
|
|
||||||
events {
|
events {
|
||||||
data,received: Ecore.Con.Event_Data.Received; [[Data received on connection]]
|
data,received: Ecore.Con.Event_Data.Received; [[Data received on connection]]
|
||||||
connection,upgraded;
|
connection,upgraded;
|
||||||
|
|
|
@ -2,7 +2,7 @@ abstract Ector.Renderer.Cairo (Ector.Renderer)
|
||||||
{
|
{
|
||||||
legacy_prefix: null;
|
legacy_prefix: null;
|
||||||
methods {
|
methods {
|
||||||
fill {
|
fill @virtual_pure {
|
||||||
return: bool;
|
return: bool;
|
||||||
params {
|
params {
|
||||||
@in mul_col: uint;
|
@in mul_col: uint;
|
||||||
|
@ -10,7 +10,6 @@ abstract Ector.Renderer.Cairo (Ector.Renderer)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
implements {
|
implements {
|
||||||
@virtual .fill;
|
|
||||||
Ector.Renderer.prepare;
|
Ector.Renderer.prepare;
|
||||||
Ector.Renderer.draw;
|
Ector.Renderer.draw;
|
||||||
Ector.Renderer.color.set;
|
Ector.Renderer.color.set;
|
||||||
|
|
|
@ -44,7 +44,7 @@ mixin Ector.Buffer
|
||||||
cspace: Efl.Gfx.Colorspace; [[Colorspace]]
|
cspace: Efl.Gfx.Colorspace; [[Colorspace]]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
map {
|
map @virtual_pure {
|
||||||
[[Map a region of this buffer for read or write access by the CPU,
|
[[Map a region of this buffer for read or write access by the CPU,
|
||||||
fetch data from the GPU if needed. This operation may be slow if
|
fetch data from the GPU if needed. This operation may be slow if
|
||||||
cpu_readable_fast or cpu_writeable_fast are not true, or if the
|
cpu_readable_fast or cpu_writeable_fast are not true, or if the
|
||||||
|
@ -64,14 +64,14 @@ mixin Ector.Buffer
|
||||||
}
|
}
|
||||||
return: void* @warn_unused; [[Pointer to the top-left pixel data. Returns $null in case of failure]]
|
return: void* @warn_unused; [[Pointer to the top-left pixel data. Returns $null in case of failure]]
|
||||||
}
|
}
|
||||||
unmap {
|
unmap @virtual_pure {
|
||||||
[[Unmap a region of this buffer, and upload data to the GPU (if needed).]]
|
[[Unmap a region of this buffer, and upload data to the GPU (if needed).]]
|
||||||
params {
|
params {
|
||||||
@in data: void*; [[Data pointer returned by a previous call to map]]
|
@in data: void*; [[Data pointer returned by a previous call to map]]
|
||||||
@in length: uint; [[Must be the same as returned by map.]]
|
@in length: uint; [[Must be the same as returned by map.]]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
pixels_set {
|
pixels_set @virtual_pure {
|
||||||
[[Set the source pixels for this buffer, or allocate a new memory region]]
|
[[Set the source pixels for this buffer, or allocate a new memory region]]
|
||||||
params {
|
params {
|
||||||
@in pixels: void*; [[If $null, allocates an empty buffer]]
|
@in pixels: void*; [[If $null, allocates an empty buffer]]
|
||||||
|
@ -87,7 +87,7 @@ mixin Ector.Buffer
|
||||||
}
|
}
|
||||||
return: bool; [[True if pixels_set was successful]]
|
return: bool; [[True if pixels_set was successful]]
|
||||||
}
|
}
|
||||||
span_get {
|
span_get @virtual_pure {
|
||||||
[[Get a single horizontal span of length w starting from (x,y)
|
[[Get a single horizontal span of length w starting from (x,y)
|
||||||
|
|
||||||
Call span_free() to release it. This function will try not to
|
Call span_free() to release it. This function will try not to
|
||||||
|
@ -103,7 +103,7 @@ mixin Ector.Buffer
|
||||||
}
|
}
|
||||||
return: uint8*; [[A temporary memory buffer containing the pixels requested.]]
|
return: uint8*; [[A temporary memory buffer containing the pixels requested.]]
|
||||||
}
|
}
|
||||||
span_free {
|
span_free @virtual_pure {
|
||||||
[[Must be called as soon as possible after span_get]]
|
[[Must be called as soon as possible after span_get]]
|
||||||
params {
|
params {
|
||||||
data: uint8*; [[Data to be freed]]
|
data: uint8*; [[Data to be freed]]
|
||||||
|
@ -130,11 +130,4 @@ mixin Ector.Buffer
|
||||||
events {
|
events {
|
||||||
detached; [[Emitted whenever the previously attached pixels are detached during pixels_set]]
|
detached; [[Emitted whenever the previously attached pixels are detached during pixels_set]]
|
||||||
}
|
}
|
||||||
implements {
|
|
||||||
@virtual .pixels_set;
|
|
||||||
@virtual .span_get;
|
|
||||||
@virtual .span_free;
|
|
||||||
@virtual .map;
|
|
||||||
@virtual .unmap;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -105,13 +105,13 @@ abstract Ector.Renderer (Eo.Base)
|
||||||
return: uint; [[CRC value]]
|
return: uint; [[CRC value]]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
bounds_get {
|
bounds_get @virtual_pure {
|
||||||
[[Retrieve the bounds of the renderer]]
|
[[Retrieve the bounds of the renderer]]
|
||||||
params {
|
params {
|
||||||
@out r: Eina.Rectangle; [[Bounds as @Eina.Rectangle]]
|
@out r: Eina.Rectangle; [[Bounds as @Eina.Rectangle]]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
draw {
|
draw @virtual_pure {
|
||||||
return: bool @warn_unused;
|
return: bool @warn_unused;
|
||||||
params {
|
params {
|
||||||
@in op: Efl.Gfx.Render_Op;
|
@in op: Efl.Gfx.Render_Op;
|
||||||
|
@ -124,15 +124,12 @@ abstract Ector.Renderer (Eo.Base)
|
||||||
params {
|
params {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
done {
|
done @virtual_pure {
|
||||||
return: bool @warn_unused;
|
return: bool @warn_unused;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
implements {
|
implements {
|
||||||
Eo.Base.destructor;
|
Eo.Base.destructor;
|
||||||
Eo.Base.finalize;
|
Eo.Base.finalize;
|
||||||
@virtual .draw;
|
|
||||||
@virtual .bounds_get;
|
|
||||||
@virtual .done;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,14 +8,14 @@ mixin Ector.Surface (Ector.Buffer)
|
||||||
methods {
|
methods {
|
||||||
@property reference_point {
|
@property reference_point {
|
||||||
[[This define where is (0,0) in pixels coordinate inside the surface]]
|
[[This define where is (0,0) in pixels coordinate inside the surface]]
|
||||||
set {
|
set @virtual_pure {
|
||||||
}
|
}
|
||||||
values {
|
values {
|
||||||
x: int; [[X coordinate for reference point]]
|
x: int; [[X coordinate for reference point]]
|
||||||
y: int; [[Y coordinate for reference point]]
|
y: int; [[Y coordinate for reference point]]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
renderer_factory_new {
|
renderer_factory_new @virtual_pure {
|
||||||
[[Create a new renderer factory for the given type]]
|
[[Create a new renderer factory for the given type]]
|
||||||
return: Eo.Base *; /* FIXME: Should be a more restricted type, only here for cyclic. */
|
return: Eo.Base *; /* FIXME: Should be a more restricted type, only here for cyclic. */
|
||||||
params {
|
params {
|
||||||
|
@ -23,8 +23,4 @@ mixin Ector.Surface (Ector.Buffer)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
implements {
|
|
||||||
@virtual .renderer_factory_new;
|
|
||||||
@virtual .reference_point.set;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,7 @@ abstract Ector.Renderer.GL (Ector.Renderer)
|
||||||
{
|
{
|
||||||
legacy_prefix: null;
|
legacy_prefix: null;
|
||||||
methods {
|
methods {
|
||||||
fill {
|
fill @virtual_pure {
|
||||||
return: bool;
|
return: bool;
|
||||||
params {
|
params {
|
||||||
@in flags: uint64;
|
@in flags: uint64;
|
||||||
|
@ -15,7 +15,6 @@ abstract Ector.Renderer.GL (Ector.Renderer)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
implements {
|
implements {
|
||||||
@virtual .fill;
|
|
||||||
Ector.Renderer.prepare;
|
Ector.Renderer.prepare;
|
||||||
Ector.Renderer.draw;
|
Ector.Renderer.draw;
|
||||||
Eo.Base.constructor;
|
Eo.Base.constructor;
|
||||||
|
|
|
@ -3,11 +3,8 @@ class Ector.Renderer.Software (Ector.Renderer)
|
||||||
legacy_prefix: null;
|
legacy_prefix: null;
|
||||||
data: null;
|
data: null;
|
||||||
methods {
|
methods {
|
||||||
fill {
|
fill @virtual_pure {
|
||||||
return: bool;
|
return: bool;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
implements {
|
|
||||||
@virtual .fill;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,7 @@ mixin Elm.Interface.Atspi_Action ()
|
||||||
eo_prefix: elm_interface_atspi_action;
|
eo_prefix: elm_interface_atspi_action;
|
||||||
data: null;
|
data: null;
|
||||||
methods {
|
methods {
|
||||||
@property name @protected {
|
@property name @protected @virtual_pure {
|
||||||
get {
|
get {
|
||||||
[[Gets action name for given id]]
|
[[Gets action name for given id]]
|
||||||
}
|
}
|
||||||
|
@ -26,7 +26,7 @@ mixin Elm.Interface.Atspi_Action ()
|
||||||
id: int;
|
id: int;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@property description @protected {
|
@property description @protected @virtual_pure {
|
||||||
get {
|
get {
|
||||||
[[Gets action description for given id]]
|
[[Gets action description for given id]]
|
||||||
}
|
}
|
||||||
|
@ -42,21 +42,21 @@ mixin Elm.Interface.Atspi_Action ()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@property actions @protected {
|
@property actions @protected {
|
||||||
get {
|
get @virtual_pure {
|
||||||
[[Get list of available widget actions]]
|
[[Get list of available widget actions]]
|
||||||
}
|
}
|
||||||
values {
|
values {
|
||||||
actions: list<Elm_Atspi_Action> *; [[contains statically allocated strings]]
|
actions: list<Elm_Atspi_Action> *; [[contains statically allocated strings]]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
action_do @protected {
|
action_do @protected @virtual_pure {
|
||||||
[[Performs action on given widget.]]
|
[[Performs action on given widget.]]
|
||||||
params {
|
params {
|
||||||
@in id: int;
|
@in id: int;
|
||||||
}
|
}
|
||||||
return: bool;
|
return: bool;
|
||||||
}
|
}
|
||||||
keybinding_get @protected {
|
keybinding_get @protected @virtual_pure {
|
||||||
[[Gets configured keybinding for specific action and widget.]]
|
[[Gets configured keybinding for specific action and widget.]]
|
||||||
params {
|
params {
|
||||||
@in id: int;
|
@in id: int;
|
||||||
|
@ -64,13 +64,4 @@ mixin Elm.Interface.Atspi_Action ()
|
||||||
return: own(char *) @warn_unused; [[Should be freed by the user.]]
|
return: own(char *) @warn_unused; [[Should be freed by the user.]]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
implements {
|
|
||||||
@virtual .action_do;
|
|
||||||
@virtual .keybinding_get;
|
|
||||||
@virtual .name.get;
|
|
||||||
@virtual .name.set;
|
|
||||||
@virtual .description.get;
|
|
||||||
@virtual .description.set;
|
|
||||||
@virtual .actions.get;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,7 @@ mixin Elm.Interface.Atspi_Image ()
|
||||||
data: null;
|
data: null;
|
||||||
methods {
|
methods {
|
||||||
@property extents @protected {
|
@property extents @protected {
|
||||||
get {
|
get @virtual_pure {
|
||||||
[[Gets an image extents.]]
|
[[Gets an image extents.]]
|
||||||
}
|
}
|
||||||
keys {
|
keys {
|
||||||
|
@ -37,7 +37,4 @@ mixin Elm.Interface.Atspi_Image ()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
implements {
|
|
||||||
@virtual .extents.get;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ mixin Elm.Interface.Atspi_Widget_Action (Elm.Interface.Atspi_Action)
|
||||||
data: null;
|
data: null;
|
||||||
methods {
|
methods {
|
||||||
@property elm_actions @protected {
|
@property elm_actions @protected {
|
||||||
get {
|
get @virtual_pure {
|
||||||
}
|
}
|
||||||
values {
|
values {
|
||||||
actions: const(Elm_Atspi_Action)*; [[NULL-terminated array of Elm_Atspi_Action]]
|
actions: const(Elm_Atspi_Action)*; [[NULL-terminated array of Elm_Atspi_Action]]
|
||||||
|
@ -21,6 +21,5 @@ mixin Elm.Interface.Atspi_Widget_Action (Elm.Interface.Atspi_Action)
|
||||||
Elm.Interface.Atspi_Action.description.set;
|
Elm.Interface.Atspi_Action.description.set;
|
||||||
Elm.Interface.Atspi_Action.description.get;
|
Elm.Interface.Atspi_Action.description.get;
|
||||||
Elm.Interface.Atspi_Action.actions.get;
|
Elm.Interface.Atspi_Action.actions.get;
|
||||||
@virtual .elm_actions.get;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,7 +18,7 @@ class Elm.Web (Elm.Widget)
|
||||||
{
|
{
|
||||||
eo_prefix: elm_obj_web;
|
eo_prefix: elm_obj_web;
|
||||||
methods {
|
methods {
|
||||||
@property text_matches_highlight {
|
@property text_matches_highlight @virtual_pure {
|
||||||
set {
|
set {
|
||||||
[[Sets whether to highlight the matched marks.
|
[[Sets whether to highlight the matched marks.
|
||||||
|
|
||||||
|
@ -34,7 +34,7 @@ class Elm.Web (Elm.Widget)
|
||||||
highlight: bool; [[Whether to highlight the marks or not.]]
|
highlight: bool; [[Whether to highlight the marks or not.]]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@property useragent {
|
@property useragent @virtual_pure {
|
||||||
set {
|
set {
|
||||||
[[Change useragent of a elm_web object.]]
|
[[Change useragent of a elm_web object.]]
|
||||||
}
|
}
|
||||||
|
@ -45,7 +45,7 @@ class Elm.Web (Elm.Widget)
|
||||||
user_agent: const(char)*; [[String for useragent.]]
|
user_agent: const(char)*; [[String for useragent.]]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@property url {
|
@property url @virtual_pure {
|
||||||
set {
|
set {
|
||||||
[[Sets the URL for the web object.
|
[[Sets the URL for the web object.
|
||||||
|
|
||||||
|
@ -65,7 +65,7 @@ class Elm.Web (Elm.Widget)
|
||||||
url: const(char)*; [[The URL to set.]]
|
url: const(char)*; [[The URL to set.]]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@property bg_color {
|
@property bg_color @virtual_pure {
|
||||||
set {
|
set {
|
||||||
[[Sets the background color to be used by the web object.
|
[[Sets the background color to be used by the web object.
|
||||||
|
|
||||||
|
@ -89,7 +89,7 @@ class Elm.Web (Elm.Widget)
|
||||||
a: int; [[Alpha component.]]
|
a: int; [[Alpha component.]]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@property inwin_mode {
|
@property inwin_mode @virtual_pure {
|
||||||
set {
|
set {
|
||||||
[[Sets the default dialogs to use an Inwin instead of a
|
[[Sets the default dialogs to use an Inwin instead of a
|
||||||
normal window.
|
normal window.
|
||||||
|
@ -106,7 +106,7 @@ class Elm.Web (Elm.Widget)
|
||||||
value: bool;
|
value: bool;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@property tab_propagate {
|
@property tab_propagate @virtual_pure {
|
||||||
set {
|
set {
|
||||||
[[Sets whether to use tab propagation.
|
[[Sets whether to use tab propagation.
|
||||||
|
|
||||||
|
@ -124,7 +124,7 @@ class Elm.Web (Elm.Widget)
|
||||||
propagate: bool; [[Whether to propagate Tab keys to Elementary or not.]]
|
propagate: bool; [[Whether to propagate Tab keys to Elementary or not.]]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@property history_enabled {
|
@property history_enabled @virtual_pure {
|
||||||
set {
|
set {
|
||||||
[[Enables or disables the browsing history.]]
|
[[Enables or disables the browsing history.]]
|
||||||
}
|
}
|
||||||
|
@ -135,7 +135,7 @@ class Elm.Web (Elm.Widget)
|
||||||
enable: bool; [[Whether to enable or disable the browsing history.]]
|
enable: bool; [[Whether to enable or disable the browsing history.]]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@property zoom_mode {
|
@property zoom_mode @virtual_pure {
|
||||||
set {
|
set {
|
||||||
[[Sets the zoom mode to use.
|
[[Sets the zoom mode to use.
|
||||||
|
|
||||||
|
@ -162,7 +162,7 @@ class Elm.Web (Elm.Widget)
|
||||||
mode: Elm.Web.Zoom_Mode; [[The mode to set.]]
|
mode: Elm.Web.Zoom_Mode; [[The mode to set.]]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@property zoom {
|
@property zoom @virtual_pure {
|
||||||
set {
|
set {
|
||||||
[[Sets the zoom level of the web object.
|
[[Sets the zoom level of the web object.
|
||||||
|
|
||||||
|
@ -188,7 +188,7 @@ class Elm.Web (Elm.Widget)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@property console_message_hook {
|
@property console_message_hook {
|
||||||
set {
|
set @virtual_pure {
|
||||||
[[Sets the function to call when a console message is emitted
|
[[Sets the function to call when a console message is emitted
|
||||||
from JS.
|
from JS.
|
||||||
|
|
||||||
|
@ -203,7 +203,7 @@ class Elm.Web (Elm.Widget)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@property window_create_hook {
|
@property window_create_hook {
|
||||||
set {
|
set @virtual_pure {
|
||||||
[[Sets the function to call when a new window is requested.
|
[[Sets the function to call when a new window is requested.
|
||||||
|
|
||||||
This hook will be called when a request to create a new
|
This hook will be called when a request to create a new
|
||||||
|
@ -219,7 +219,7 @@ class Elm.Web (Elm.Widget)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@property dialog_file_selector_hook {
|
@property dialog_file_selector_hook {
|
||||||
set {
|
set @virtual_pure {
|
||||||
[[Sets the function to call when an file selector dialog.
|
[[Sets the function to call when an file selector dialog.
|
||||||
|
|
||||||
This hook will be called when a JavaScript file selector
|
This hook will be called when a JavaScript file selector
|
||||||
|
@ -234,7 +234,7 @@ class Elm.Web (Elm.Widget)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@property dialog_confirm_hook {
|
@property dialog_confirm_hook {
|
||||||
set {
|
set @virtual_pure {
|
||||||
[[Sets the function to call when an confirm dialog.
|
[[Sets the function to call when an confirm dialog.
|
||||||
|
|
||||||
This hook will be called when a JavaScript confirm dialog is
|
This hook will be called when a JavaScript confirm dialog is
|
||||||
|
@ -248,7 +248,7 @@ class Elm.Web (Elm.Widget)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@property popup_selected {
|
@property popup_selected {
|
||||||
set {
|
set @virtual_pure {
|
||||||
[[Tells the web object which index in the currently open popup
|
[[Tells the web object which index in the currently open popup
|
||||||
was selected.
|
was selected.
|
||||||
|
|
||||||
|
@ -263,7 +263,7 @@ class Elm.Web (Elm.Widget)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@property dialog_prompt_hook {
|
@property dialog_prompt_hook {
|
||||||
set {
|
set @virtual_pure {
|
||||||
[[Sets the function to call when an prompt dialog.
|
[[Sets the function to call when an prompt dialog.
|
||||||
|
|
||||||
This hook will be called when a JavaScript prompt dialog is
|
This hook will be called when a JavaScript prompt dialog is
|
||||||
|
@ -277,7 +277,7 @@ class Elm.Web (Elm.Widget)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@property dialog_alert_hook {
|
@property dialog_alert_hook {
|
||||||
set {
|
set @virtual_pure {
|
||||||
[[Sets the function to call when an alert dialog.
|
[[Sets the function to call when an alert dialog.
|
||||||
|
|
||||||
This hook will be called when a JavaScript alert dialog is
|
This hook will be called when a JavaScript alert dialog is
|
||||||
|
@ -291,13 +291,13 @@ class Elm.Web (Elm.Widget)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@property forward_possible {
|
@property forward_possible {
|
||||||
get {
|
get @virtual_pure {
|
||||||
[[Queries whether it's possible to go forward in history.]]
|
[[Queries whether it's possible to go forward in history.]]
|
||||||
return: bool;
|
return: bool;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@property webkit_view {
|
@property webkit_view {
|
||||||
get {
|
get @virtual_pure {
|
||||||
[[Get internal ewk_view object from web object.
|
[[Get internal ewk_view object from web object.
|
||||||
|
|
||||||
Elementary may not provide some low level features of EWebKit,
|
Elementary may not provide some low level features of EWebKit,
|
||||||
|
@ -312,13 +312,13 @@ class Elm.Web (Elm.Widget)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@property back_possible {
|
@property back_possible {
|
||||||
get {
|
get @virtual_pure {
|
||||||
[[Queries whether it's possible to go back in history.]]
|
[[Queries whether it's possible to go back in history.]]
|
||||||
return: bool;
|
return: bool;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@property load_progress {
|
@property load_progress {
|
||||||
get {
|
get @virtual_pure {
|
||||||
[[Get the overall loading progress of the page.
|
[[Get the overall loading progress of the page.
|
||||||
|
|
||||||
Returns the estimated loading progress of the page, with a
|
Returns the estimated loading progress of the page, with a
|
||||||
|
@ -330,7 +330,7 @@ class Elm.Web (Elm.Widget)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@property selection {
|
@property selection {
|
||||||
get {
|
get @virtual_pure {
|
||||||
[[Get a copy of the currently selected text.
|
[[Get a copy of the currently selected text.
|
||||||
|
|
||||||
The string returned must be freed by the user when it's done
|
The string returned must be freed by the user when it's done
|
||||||
|
@ -342,7 +342,7 @@ class Elm.Web (Elm.Widget)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@property title {
|
@property title {
|
||||||
get {
|
get @virtual_pure {
|
||||||
[[Get the current title.
|
[[Get the current title.
|
||||||
|
|
||||||
The returned string must not be freed and is guaranteed to be
|
The returned string must not be freed and is guaranteed to be
|
||||||
|
@ -354,7 +354,7 @@ class Elm.Web (Elm.Widget)
|
||||||
]]
|
]]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
navigate {
|
navigate @virtual_pure {
|
||||||
[[Jumps the given number of steps in the browsing history.
|
[[Jumps the given number of steps in the browsing history.
|
||||||
|
|
||||||
The $steps value can be a negative integer to back in history,
|
The $steps value can be a negative integer to back in history,
|
||||||
|
@ -366,14 +366,14 @@ class Elm.Web (Elm.Widget)
|
||||||
@in steps: int; [[The number of steps to jump.]]
|
@in steps: int; [[The number of steps to jump.]]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
back {
|
back @virtual_pure {
|
||||||
[[Goes back one step in the browsing history.
|
[[Goes back one step in the browsing history.
|
||||||
|
|
||||||
This is equivalent to calling elm_web_object_navigate(obj, -1);
|
This is equivalent to calling elm_web_object_navigate(obj, -1);
|
||||||
]]
|
]]
|
||||||
return: bool;
|
return: bool;
|
||||||
}
|
}
|
||||||
html_string_load {
|
html_string_load @virtual_pure {
|
||||||
[[Loads the specified $html string as the content of the web
|
[[Loads the specified $html string as the content of the web
|
||||||
object.
|
object.
|
||||||
|
|
||||||
|
@ -393,7 +393,7 @@ class Elm.Web (Elm.Widget)
|
||||||
@in unreachable_url: const(char)* @optional; [[URL that could not be reached (optional).]]
|
@in unreachable_url: const(char)* @optional; [[URL that could not be reached (optional).]]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
text_search @const {
|
text_search @const @virtual_pure {
|
||||||
[[Searches the given string in a document.]]
|
[[Searches the given string in a document.]]
|
||||||
return: bool; [[$true if the given string was found, $false if not
|
return: bool; [[$true if the given string was found, $false if not
|
||||||
or failure.]]
|
or failure.]]
|
||||||
|
@ -404,7 +404,7 @@ class Elm.Web (Elm.Widget)
|
||||||
@in wrap: bool; [[If search should wrap at the end.]]
|
@in wrap: bool; [[If search should wrap at the end.]]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
popup_destroy {
|
popup_destroy @virtual_pure {
|
||||||
[[Dismisses an open dropdown popup
|
[[Dismisses an open dropdown popup
|
||||||
|
|
||||||
When the popup from a dropdown widget is to be dismissed, either
|
When the popup from a dropdown widget is to be dismissed, either
|
||||||
|
@ -416,7 +416,7 @@ class Elm.Web (Elm.Widget)
|
||||||
return: bool; [[$true if the menu was successfully destroyed, or
|
return: bool; [[$true if the menu was successfully destroyed, or
|
||||||
$false if there was no menu to destroy.]]
|
$false if there was no menu to destroy.]]
|
||||||
}
|
}
|
||||||
region_show {
|
region_show @virtual_pure {
|
||||||
[[Shows the given region in the web object.]]
|
[[Shows the given region in the web object.]]
|
||||||
params {
|
params {
|
||||||
@in x: int; [[The x coordinate of the region to show.]]
|
@in x: int; [[The x coordinate of the region to show.]]
|
||||||
|
@ -425,7 +425,7 @@ class Elm.Web (Elm.Widget)
|
||||||
@in h: int; [[The height of the region to show.]]
|
@in h: int; [[The height of the region to show.]]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
forward {
|
forward @virtual_pure {
|
||||||
[[Goes forward one step in the browsing history.
|
[[Goes forward one step in the browsing history.
|
||||||
|
|
||||||
This is equivalent to calling elm_web_object_navigate(obj, 1);
|
This is equivalent to calling elm_web_object_navigate(obj, 1);
|
||||||
|
@ -435,7 +435,7 @@ class Elm.Web (Elm.Widget)
|
||||||
]]
|
]]
|
||||||
return: bool; [[$true on success, $false otherwise.]]
|
return: bool; [[$true on success, $false otherwise.]]
|
||||||
}
|
}
|
||||||
text_matches_mark {
|
text_matches_mark @virtual_pure {
|
||||||
[[Marks matches of the given string in a document.]]
|
[[Marks matches of the given string in a document.]]
|
||||||
return: uint; [[Number of matched $string.]]
|
return: uint; [[Number of matched $string.]]
|
||||||
params {
|
params {
|
||||||
|
@ -445,7 +445,7 @@ class Elm.Web (Elm.Widget)
|
||||||
@in limit: uint; [[Maximum amount of matches, or zero to unlimited.]]
|
@in limit: uint; [[Maximum amount of matches, or zero to unlimited.]]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
region_bring_in {
|
region_bring_in @virtual_pure {
|
||||||
[[Brings in the region to the visible area.
|
[[Brings in the region to the visible area.
|
||||||
|
|
||||||
Like @.region_show, but it animates the scrolling of the object
|
Like @.region_show, but it animates the scrolling of the object
|
||||||
|
@ -458,7 +458,7 @@ class Elm.Web (Elm.Widget)
|
||||||
@in h: int; [[The height of the region to show.]]
|
@in h: int; [[The height of the region to show.]]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
stop {
|
stop @virtual_pure {
|
||||||
[[Stops loading the current page.
|
[[Stops loading the current page.
|
||||||
|
|
||||||
Cancels the loading of the current page in the web object. This
|
Cancels the loading of the current page in the web object. This
|
||||||
|
@ -467,7 +467,7 @@ class Elm.Web (Elm.Widget)
|
||||||
]]
|
]]
|
||||||
return: bool; [[$true if the cancel was successful, $false otherwise.]]
|
return: bool; [[$true if the cancel was successful, $false otherwise.]]
|
||||||
}
|
}
|
||||||
navigate_possible_get {
|
navigate_possible_get @virtual_pure {
|
||||||
[[Queries whether it's possible to jump the given number of steps.
|
[[Queries whether it's possible to jump the given number of steps.
|
||||||
|
|
||||||
The $steps value can be a negative integer to back in history,
|
The $steps value can be a negative integer to back in history,
|
||||||
|
@ -479,17 +479,17 @@ class Elm.Web (Elm.Widget)
|
||||||
@in steps: int; [[The number of steps to check for.]]
|
@in steps: int; [[The number of steps to check for.]]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
reload_full {
|
reload_full @virtual_pure {
|
||||||
[[Requests a reload of the current document, avoiding any
|
[[Requests a reload of the current document, avoiding any
|
||||||
existing caches.
|
existing caches.
|
||||||
]]
|
]]
|
||||||
return: bool; [[$true on success, $false otherwise.]]
|
return: bool; [[$true on success, $false otherwise.]]
|
||||||
}
|
}
|
||||||
text_matches_unmark_all {
|
text_matches_unmark_all @virtual_pure {
|
||||||
[[Clears all marked matches in the document.]]
|
[[Clears all marked matches in the document.]]
|
||||||
return: bool; [[$true on success, $false otherwise.]]
|
return: bool; [[$true on success, $false otherwise.]]
|
||||||
}
|
}
|
||||||
reload {
|
reload @virtual_pure {
|
||||||
[[Requests a reload of the current document in the object.]]
|
[[Requests a reload of the current document in the object.]]
|
||||||
return: bool; [[$true on success, $false otherwise.]]
|
return: bool; [[$true on success, $false otherwise.]]
|
||||||
}
|
}
|
||||||
|
@ -497,51 +497,6 @@ class Elm.Web (Elm.Widget)
|
||||||
implements {
|
implements {
|
||||||
class.constructor;
|
class.constructor;
|
||||||
Eo.Base.constructor;
|
Eo.Base.constructor;
|
||||||
@virtual .tab_propagate.get;
|
|
||||||
@virtual .tab_propagate.set;
|
|
||||||
@virtual .webkit_view.get;
|
|
||||||
@virtual .window_create_hook.set;
|
|
||||||
@virtual .dialog_alert_hook.set;
|
|
||||||
@virtual .dialog_confirm_hook.set;
|
|
||||||
@virtual .dialog_prompt_hook.set;
|
|
||||||
@virtual .dialog_file_selector_hook.set;
|
|
||||||
@virtual .console_message_hook.set;
|
|
||||||
@virtual .useragent.set;
|
|
||||||
@virtual .useragent.get;
|
|
||||||
@virtual .url.set;
|
|
||||||
@virtual .url.get;
|
|
||||||
@virtual .html_string_load;
|
|
||||||
@virtual .title.get;
|
|
||||||
@virtual .bg_color.set;
|
|
||||||
@virtual .bg_color.get;
|
|
||||||
@virtual .selection.get;
|
|
||||||
@virtual .popup_selected.set;
|
|
||||||
@virtual .popup_destroy;
|
|
||||||
@virtual .text_search;
|
|
||||||
@virtual .text_matches_mark;
|
|
||||||
@virtual .text_matches_unmark_all;
|
|
||||||
@virtual .text_matches_highlight.set;
|
|
||||||
@virtual .text_matches_highlight.get;
|
|
||||||
@virtual .load_progress.get;
|
|
||||||
@virtual .stop;
|
|
||||||
@virtual .reload;
|
|
||||||
@virtual .reload_full;
|
|
||||||
@virtual .back;
|
|
||||||
@virtual .forward;
|
|
||||||
@virtual .navigate;
|
|
||||||
@virtual .back_possible.get;
|
|
||||||
@virtual .forward_possible.get;
|
|
||||||
@virtual .navigate_possible_get;
|
|
||||||
@virtual .history_enabled.get;
|
|
||||||
@virtual .history_enabled.set;
|
|
||||||
@virtual .zoom.set;
|
|
||||||
@virtual .zoom.get;
|
|
||||||
@virtual .zoom_mode.set;
|
|
||||||
@virtual .zoom_mode.get;
|
|
||||||
@virtual .region_show;
|
|
||||||
@virtual .region_bring_in;
|
|
||||||
@virtual .inwin_mode.set;
|
|
||||||
@virtual .inwin_mode.get;
|
|
||||||
}
|
}
|
||||||
events {
|
events {
|
||||||
uri,changed;
|
uri,changed;
|
||||||
|
|
|
@ -417,7 +417,7 @@ abstract Elm.Widget (Evas.Object.Smart, Elm.Interface.Atspi_Accessible, Elm.Inte
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@property parent_widget {
|
@property parent_widget {
|
||||||
get {
|
get @virtual_pure {
|
||||||
return: Evas.Object *;
|
return: Evas.Object *;
|
||||||
legacy: null;
|
legacy: null;
|
||||||
}
|
}
|
||||||
|
@ -612,7 +612,7 @@ abstract Elm.Widget (Evas.Object.Smart, Elm.Interface.Atspi_Accessible, Elm.Inte
|
||||||
@in dir: Elm.Focus_Direction; [[Direction to move the focus.]]
|
@in dir: Elm.Focus_Direction; [[Direction to move the focus.]]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
focus_direction {
|
focus_direction @virtual_pure {
|
||||||
[['Virtual' function handling passing focus to sub-objects given a direction, in degrees.]]
|
[['Virtual' function handling passing focus to sub-objects given a direction, in degrees.]]
|
||||||
params {
|
params {
|
||||||
@in base: const(Evas.Object)*;
|
@in base: const(Evas.Object)*;
|
||||||
|
@ -736,7 +736,7 @@ abstract Elm.Widget (Evas.Object.Smart, Elm.Interface.Atspi_Accessible, Elm.Inte
|
||||||
}
|
}
|
||||||
focus_hide_handle {
|
focus_hide_handle {
|
||||||
}
|
}
|
||||||
focus_next {
|
focus_next @virtual_pure {
|
||||||
[['Virtual' function handling passing focus to sub-objects.]]
|
[['Virtual' function handling passing focus to sub-objects.]]
|
||||||
params {
|
params {
|
||||||
@in dir: Elm.Focus_Direction;
|
@in dir: Elm.Focus_Direction;
|
||||||
|
@ -860,9 +860,6 @@ abstract Elm.Widget (Evas.Object.Smart, Elm.Interface.Atspi_Accessible, Elm.Inte
|
||||||
Evas.Object.Smart.member_add;
|
Evas.Object.Smart.member_add;
|
||||||
Evas.Object.Smart.resize;
|
Evas.Object.Smart.resize;
|
||||||
Evas.Object.Smart.smart_no_render.set;
|
Evas.Object.Smart.smart_no_render.set;
|
||||||
@virtual .focus_direction;
|
|
||||||
@virtual .focus_next;
|
|
||||||
@virtual .parent_widget.get;
|
|
||||||
Elm.Interface.Atspi_Accessible.name.get;
|
Elm.Interface.Atspi_Accessible.name.get;
|
||||||
Elm.Interface.Atspi_Accessible.state_set.get;
|
Elm.Interface.Atspi_Accessible.state_set.get;
|
||||||
Elm.Interface.Atspi_Accessible.children.get;
|
Elm.Interface.Atspi_Accessible.children.get;
|
||||||
|
|
|
@ -62,25 +62,7 @@ _db_fill_implement(Eolian_Class *cl, Eolian_Implement *impl)
|
||||||
else if (impl->is_prop_set)
|
else if (impl->is_prop_set)
|
||||||
ftype = EOLIAN_PROP_SET;
|
ftype = EOLIAN_PROP_SET;
|
||||||
|
|
||||||
if (impl->is_virtual)
|
if (impl->is_auto)
|
||||||
{
|
|
||||||
foo_id = (Eolian_Function*)eolian_class_function_get_by_name(cl,
|
|
||||||
impl_name, ftype);
|
|
||||||
if (!foo_id)
|
|
||||||
return _func_error(cl, impl);
|
|
||||||
if (impl->is_prop_set)
|
|
||||||
foo_id->set_virtual_pure = EINA_TRUE;
|
|
||||||
else
|
|
||||||
foo_id->get_virtual_pure = EINA_TRUE;
|
|
||||||
|
|
||||||
impl->full_name = eina_stringshare_printf("%s.%s", cl->full_name,
|
|
||||||
impl_name);
|
|
||||||
eina_stringshare_del(impl_name);
|
|
||||||
impl_name = impl->full_name;
|
|
||||||
|
|
||||||
_write_impl(foo_id, impl);
|
|
||||||
}
|
|
||||||
else if (impl->is_auto)
|
|
||||||
{
|
{
|
||||||
if (!_get_impl_func(cl, impl, ftype, &foo_id))
|
if (!_get_impl_func(cl, impl, ftype, &foo_id))
|
||||||
return _func_error(cl, impl);
|
return _func_error(cl, impl);
|
||||||
|
@ -109,6 +91,14 @@ _db_fill_implement(Eolian_Class *cl, Eolian_Implement *impl)
|
||||||
else if (!_get_impl_func(cl, impl, ftype, &foo_id))
|
else if (!_get_impl_func(cl, impl, ftype, &foo_id))
|
||||||
return _func_error(cl, impl);
|
return _func_error(cl, impl);
|
||||||
|
|
||||||
|
if (foo_id && foo_id->klass == cl && eolian_function_is_virtual_pure(foo_id, ftype))
|
||||||
|
{
|
||||||
|
fprintf(stderr, "eolian:%s:%d:%d: impl of pure virtual '%s%s'\n",
|
||||||
|
impl->base.file, impl->base.line, impl->base.column, impl->full_name,
|
||||||
|
(impl->is_prop_get ? ".get" : (impl->is_prop_set ? ".set" : "")));
|
||||||
|
return EINA_FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
pasttags:
|
pasttags:
|
||||||
if (impl_name[0] == '.')
|
if (impl_name[0] == '.')
|
||||||
{
|
{
|
||||||
|
@ -148,9 +138,31 @@ _db_build_implement(Eolian_Class *cl, Eolian_Function *foo_id)
|
||||||
|
|
||||||
if (foo_id->type == EOLIAN_PROPERTY)
|
if (foo_id->type == EOLIAN_PROPERTY)
|
||||||
{
|
{
|
||||||
|
/* FIXME fugly hack, ideally rework the whole implements api altogether */
|
||||||
|
if (foo_id->get_virtual_pure && !foo_id->get_impl)
|
||||||
|
{
|
||||||
|
impl->is_virtual = EINA_TRUE;
|
||||||
|
impl->is_prop_get = EINA_TRUE;
|
||||||
|
foo_id->get_impl = impl;
|
||||||
|
cl->implements = eina_list_append(cl->implements, impl);
|
||||||
|
/* repeat for set */
|
||||||
|
_db_build_implement(cl, foo_id);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else if (foo_id->set_virtual_pure && !foo_id->set_impl)
|
||||||
|
{
|
||||||
|
impl->is_virtual = EINA_TRUE;
|
||||||
|
impl->is_prop_set = EINA_TRUE;
|
||||||
|
foo_id->set_impl = impl;
|
||||||
|
cl->implements = eina_list_append(cl->implements, impl);
|
||||||
|
/* repeat for get */
|
||||||
|
_db_build_implement(cl, foo_id);
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (foo_id->get_impl)
|
if (foo_id->get_impl)
|
||||||
{
|
{
|
||||||
impl->is_prop_set = EINA_TRUE;
|
impl->is_prop_set = EINA_TRUE;
|
||||||
|
impl->is_virtual = foo_id->set_virtual_pure;
|
||||||
foo_id->set_impl = impl;
|
foo_id->set_impl = impl;
|
||||||
}
|
}
|
||||||
else if (foo_id->set_impl)
|
else if (foo_id->set_impl)
|
||||||
|
@ -164,15 +176,20 @@ _db_build_implement(Eolian_Class *cl, Eolian_Function *foo_id)
|
||||||
else if (foo_id->type == EOLIAN_PROP_SET)
|
else if (foo_id->type == EOLIAN_PROP_SET)
|
||||||
{
|
{
|
||||||
impl->is_prop_set = EINA_TRUE;
|
impl->is_prop_set = EINA_TRUE;
|
||||||
|
impl->is_virtual = foo_id->get_virtual_pure;
|
||||||
foo_id->set_impl = impl;
|
foo_id->set_impl = impl;
|
||||||
}
|
}
|
||||||
else if (foo_id->type == EOLIAN_PROP_GET)
|
else if (foo_id->type == EOLIAN_PROP_GET)
|
||||||
{
|
{
|
||||||
impl->is_prop_get = EINA_TRUE;
|
impl->is_prop_get = EINA_TRUE;
|
||||||
|
impl->is_virtual = foo_id->set_virtual_pure;
|
||||||
foo_id->get_impl = impl;
|
foo_id->get_impl = impl;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
foo_id->get_impl = foo_id->set_impl = impl;
|
{
|
||||||
|
impl->is_virtual = foo_id->get_virtual_pure;
|
||||||
|
foo_id->get_impl = foo_id->set_impl = impl;
|
||||||
|
}
|
||||||
|
|
||||||
cl->implements = eina_list_append(cl->implements, impl);
|
cl->implements = eina_list_append(cl->implements, impl);
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,7 +32,7 @@ enum Tokens
|
||||||
KWAT(c_only), KWAT(class), KWAT(const), KWAT(empty), KWAT(extern), \
|
KWAT(c_only), KWAT(class), KWAT(const), KWAT(empty), KWAT(extern), \
|
||||||
KWAT(free), KWAT(hot), KWAT(restart), KWAT(in), KWAT(inout), KWAT(nonull), KWAT(nullable), \
|
KWAT(free), KWAT(hot), KWAT(restart), KWAT(in), KWAT(inout), KWAT(nonull), KWAT(nullable), \
|
||||||
KWAT(optional), KWAT(out), KWAT(private), KWAT(property), \
|
KWAT(optional), KWAT(out), KWAT(private), KWAT(property), \
|
||||||
KWAT(protected), KWAT(virtual), KWAT(warn_unused), \
|
KWAT(protected), KWAT(virtual_pure), KWAT(warn_unused), \
|
||||||
\
|
\
|
||||||
KW(byte), KW(ubyte), KW(char), KW(short), KW(ushort), KW(int), KW(uint), \
|
KW(byte), KW(ubyte), KW(char), KW(short), KW(ushort), KW(int), KW(uint), \
|
||||||
KW(long), KW(ulong), KW(llong), KW(ullong), \
|
KW(long), KW(ulong), KW(llong), KW(ullong), \
|
||||||
|
|
|
@ -1105,6 +1105,12 @@ parse_accessor(Eo_Lexer *ls, Eolian_Function *prop)
|
||||||
prop->type = EOLIAN_PROP_SET;
|
prop->type = EOLIAN_PROP_SET;
|
||||||
}
|
}
|
||||||
eo_lexer_get(ls);
|
eo_lexer_get(ls);
|
||||||
|
if (ls->t.kw == KW_at_virtual_pure)
|
||||||
|
{
|
||||||
|
if (is_get) prop->get_virtual_pure = EINA_TRUE;
|
||||||
|
else prop->set_virtual_pure = EINA_TRUE;
|
||||||
|
eo_lexer_get(ls);
|
||||||
|
}
|
||||||
line = ls->line_number;
|
line = ls->line_number;
|
||||||
col = ls->column;
|
col = ls->column;
|
||||||
check_next(ls, '{');
|
check_next(ls, '{');
|
||||||
|
@ -1181,9 +1187,9 @@ end:
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_interface_virtual_set(Eo_Lexer *ls, Eolian_Function *foo_id)
|
_func_virtual_set(Eo_Lexer *ls, Eolian_Function *foo_id, Eina_Bool virt)
|
||||||
{
|
{
|
||||||
if (ls->tmp.kls->type != EOLIAN_CLASS_INTERFACE)
|
if (ls->tmp.kls->type != EOLIAN_CLASS_INTERFACE && !virt)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (foo_id->type == EOLIAN_PROP_GET || foo_id->type == EOLIAN_METHOD)
|
if (foo_id->type == EOLIAN_PROP_GET || foo_id->type == EOLIAN_METHOD)
|
||||||
|
@ -1202,7 +1208,8 @@ parse_property(Eo_Lexer *ls)
|
||||||
Eina_Bool has_get = EINA_FALSE, has_set = EINA_FALSE,
|
Eina_Bool has_get = EINA_FALSE, has_set = EINA_FALSE,
|
||||||
has_keys = EINA_FALSE, has_values = EINA_FALSE,
|
has_keys = EINA_FALSE, has_values = EINA_FALSE,
|
||||||
has_protected = EINA_FALSE, has_class = EINA_FALSE,
|
has_protected = EINA_FALSE, has_class = EINA_FALSE,
|
||||||
has_c_only = EINA_FALSE, has_beta = EINA_FALSE;
|
has_c_only = EINA_FALSE, has_beta = EINA_FALSE,
|
||||||
|
has_virtp = EINA_FALSE;
|
||||||
prop = calloc(1, sizeof(Eolian_Function));
|
prop = calloc(1, sizeof(Eolian_Function));
|
||||||
prop->klass = ls->tmp.kls;
|
prop->klass = ls->tmp.kls;
|
||||||
prop->type = EOLIAN_UNRESOLVED;
|
prop->type = EOLIAN_UNRESOLVED;
|
||||||
|
@ -1233,6 +1240,10 @@ parse_property(Eo_Lexer *ls)
|
||||||
prop->is_beta = EINA_TRUE;
|
prop->is_beta = EINA_TRUE;
|
||||||
eo_lexer_get(ls);
|
eo_lexer_get(ls);
|
||||||
break;
|
break;
|
||||||
|
case KW_at_virtual_pure:
|
||||||
|
CASE_LOCK(ls, virtp, "virtual_pure qualifier");
|
||||||
|
eo_lexer_get(ls);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
goto body;
|
goto body;
|
||||||
}
|
}
|
||||||
|
@ -1266,7 +1277,7 @@ end:
|
||||||
check_match(ls, '}', '{', line, col);
|
check_match(ls, '}', '{', line, col);
|
||||||
if (!has_get && !has_set)
|
if (!has_get && !has_set)
|
||||||
prop->type = EOLIAN_PROPERTY;
|
prop->type = EOLIAN_PROPERTY;
|
||||||
_interface_virtual_set(ls, prop);
|
_func_virtual_set(ls, prop, has_virtp);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -1278,7 +1289,7 @@ parse_method(Eo_Lexer *ls)
|
||||||
has_return = EINA_FALSE, has_legacy = EINA_FALSE,
|
has_return = EINA_FALSE, has_legacy = EINA_FALSE,
|
||||||
has_protected = EINA_FALSE, has_class = EINA_FALSE,
|
has_protected = EINA_FALSE, has_class = EINA_FALSE,
|
||||||
has_eo = EINA_FALSE, has_c_only = EINA_FALSE,
|
has_eo = EINA_FALSE, has_c_only = EINA_FALSE,
|
||||||
has_beta = EINA_FALSE;
|
has_beta = EINA_FALSE, has_virtp = EINA_FALSE;
|
||||||
meth = calloc(1, sizeof(Eolian_Function));
|
meth = calloc(1, sizeof(Eolian_Function));
|
||||||
meth->klass = ls->tmp.kls;
|
meth->klass = ls->tmp.kls;
|
||||||
meth->type = EOLIAN_METHOD;
|
meth->type = EOLIAN_METHOD;
|
||||||
|
@ -1314,6 +1325,10 @@ parse_method(Eo_Lexer *ls)
|
||||||
meth->is_beta = EINA_TRUE;
|
meth->is_beta = EINA_TRUE;
|
||||||
eo_lexer_get(ls);
|
eo_lexer_get(ls);
|
||||||
break;
|
break;
|
||||||
|
case KW_at_virtual_pure:
|
||||||
|
CASE_LOCK(ls, virtp, "virtual_pure qualifier");
|
||||||
|
eo_lexer_get(ls);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
goto body;
|
goto body;
|
||||||
}
|
}
|
||||||
|
@ -1356,7 +1371,7 @@ body:
|
||||||
}
|
}
|
||||||
end:
|
end:
|
||||||
check_match(ls, '}', '{', line, col);
|
check_match(ls, '}', '{', line, col);
|
||||||
_interface_virtual_set(ls, meth);
|
_func_virtual_set(ls, meth, has_virtp);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -1389,10 +1404,6 @@ parse_implement(Eo_Lexer *ls, Eina_Bool iface)
|
||||||
ls->tmp.kls->implements = eina_list_append(ls->tmp.kls->implements, impl);
|
ls->tmp.kls->implements = eina_list_append(ls->tmp.kls->implements, impl);
|
||||||
switch (ls->t.kw)
|
switch (ls->t.kw)
|
||||||
{
|
{
|
||||||
case KW_at_virtual:
|
|
||||||
impl->is_virtual = EINA_TRUE;
|
|
||||||
eo_lexer_get(ls);
|
|
||||||
break;
|
|
||||||
case KW_at_auto:
|
case KW_at_auto:
|
||||||
impl->is_auto = EINA_TRUE;
|
impl->is_auto = EINA_TRUE;
|
||||||
eo_lexer_get(ls);
|
eo_lexer_get(ls);
|
||||||
|
@ -1406,15 +1417,12 @@ parse_implement(Eo_Lexer *ls, Eina_Bool iface)
|
||||||
}
|
}
|
||||||
if (ls->t.token == '.')
|
if (ls->t.token == '.')
|
||||||
{
|
{
|
||||||
if (!impl->is_virtual && !impl->is_auto && !impl->is_empty)
|
if (!impl->is_auto && !impl->is_empty)
|
||||||
goto fullclass;
|
goto fullclass;
|
||||||
check_next(ls, '.');
|
check_next(ls, '.');
|
||||||
if ((ls->t.token != TOK_VALUE) || (ls->t.kw == KW_get || ls->t.kw == KW_set))
|
if ((ls->t.token != TOK_VALUE) || (ls->t.kw == KW_get || ls->t.kw == KW_set))
|
||||||
eo_lexer_syntax_error(ls, "name expected");
|
eo_lexer_syntax_error(ls, "name expected");
|
||||||
if (impl->is_virtual)
|
impl->full_name = eina_stringshare_printf(".%s", ls->t.value.s);
|
||||||
impl->full_name = eina_stringshare_ref(ls->t.value.s);
|
|
||||||
else
|
|
||||||
impl->full_name = eina_stringshare_printf(".%s", ls->t.value.s);
|
|
||||||
eo_lexer_get(ls);
|
eo_lexer_get(ls);
|
||||||
if (ls->t.token == '.')
|
if (ls->t.token == '.')
|
||||||
{
|
{
|
||||||
|
|
|
@ -16,7 +16,7 @@ mixin Efl.Canvas.Surface (Evas.Image)
|
||||||
Set to $null to detach this surface from the external buffer.
|
Set to $null to detach this surface from the external buffer.
|
||||||
]]
|
]]
|
||||||
get {}
|
get {}
|
||||||
set {
|
set @virtual_pure {
|
||||||
[[Set the buffer. If this fails, this function returns $false,
|
[[Set the buffer. If this fails, this function returns $false,
|
||||||
and the surface is left without any attached buffer.
|
and the surface is left without any attached buffer.
|
||||||
]]
|
]]
|
||||||
|
@ -29,6 +29,5 @@ mixin Efl.Canvas.Surface (Evas.Image)
|
||||||
}
|
}
|
||||||
implements {
|
implements {
|
||||||
Eo.Base.constructor;
|
Eo.Base.constructor;
|
||||||
@virtual .native_buffer.set;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -80,7 +80,7 @@ abstract Efl.VG (Eo.Base, Efl.Gfx, Efl.Gfx.Stack)
|
||||||
Evas_VG_Quality q;
|
Evas_VG_Quality q;
|
||||||
}
|
}
|
||||||
} */
|
} */
|
||||||
bounds_get {
|
bounds_get @virtual_pure {
|
||||||
[[Give the bounding box in screen coordinate as being drawn.
|
[[Give the bounding box in screen coordinate as being drawn.
|
||||||
|
|
||||||
It will start as the control box until it is refined once the shape
|
It will start as the control box until it is refined once the shape
|
||||||
|
@ -124,6 +124,5 @@ abstract Efl.VG (Eo.Base, Efl.Gfx, Efl.Gfx.Stack)
|
||||||
Efl.Gfx.Stack.stack_above;
|
Efl.Gfx.Stack.stack_above;
|
||||||
Efl.Gfx.Stack.raise;
|
Efl.Gfx.Stack.raise;
|
||||||
Efl.Gfx.Stack.lower;
|
Efl.Gfx.Stack.lower;
|
||||||
@virtual .bounds_get;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,13 +35,13 @@ class Evas.Canvas3D.Object (Eo.Base, Evas.Common_Interface)
|
||||||
update {
|
update {
|
||||||
[[Update request for the object.]]
|
[[Update request for the object.]]
|
||||||
}
|
}
|
||||||
update_notify {
|
update_notify @virtual_pure {
|
||||||
[[Pure virtual update_notify function.
|
[[Pure virtual update_notify function.
|
||||||
|
|
||||||
Update request for the object.]]
|
Update request for the object.]]
|
||||||
}
|
}
|
||||||
|
|
||||||
change_notify {
|
change_notify @virtual_pure {
|
||||||
[[Pure virtual change_notify function.
|
[[Pure virtual change_notify function.
|
||||||
|
|
||||||
Update request for the object.]]
|
Update request for the object.]]
|
||||||
|
@ -50,14 +50,14 @@ class Evas.Canvas3D.Object (Eo.Base, Evas.Common_Interface)
|
||||||
@in ref: Evas.Canvas3D.Object *; [[The Object that caused the change.]]
|
@in ref: Evas.Canvas3D.Object *; [[The Object that caused the change.]]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
callback_register {
|
callback_register @virtual_pure {
|
||||||
[[Pure virtual register samrt callback function.]]
|
[[Pure virtual register samrt callback function.]]
|
||||||
params {
|
params {
|
||||||
@in event: const(char)*; [[Event type.]]
|
@in event: const(char)*; [[Event type.]]
|
||||||
@in data: const(void)*; [[User data.]]
|
@in data: const(void)*; [[User data.]]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
callback_unregister {
|
callback_unregister @virtual_pure {
|
||||||
[[Pure virtual unregister smart callback function.]]
|
[[Pure virtual unregister smart callback function.]]
|
||||||
params {
|
params {
|
||||||
@in event: const(char)*; [[Event type.]]
|
@in event: const(char)*; [[Event type.]]
|
||||||
|
@ -70,10 +70,6 @@ class Evas.Canvas3D.Object (Eo.Base, Evas.Common_Interface)
|
||||||
Eo.Base.event_callback_priority_add;
|
Eo.Base.event_callback_priority_add;
|
||||||
Eo.Base.event_callback_del;
|
Eo.Base.event_callback_del;
|
||||||
Evas.Common_Interface.evas.get;
|
Evas.Common_Interface.evas.get;
|
||||||
@virtual .update_notify;
|
|
||||||
@virtual .change_notify;
|
|
||||||
@virtual .callback_register;
|
|
||||||
@virtual .callback_unregister;
|
|
||||||
}
|
}
|
||||||
events {
|
events {
|
||||||
clicked; [[Clicked Event.]]
|
clicked; [[Clicked Event.]]
|
||||||
|
|
|
@ -22,11 +22,11 @@ mixin Evas.Filter (Efl.Gfx.Filter, Eo.Base)
|
||||||
val: bool;
|
val: bool;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
filter_input_alpha @protected {
|
filter_input_alpha @protected @virtual_pure {
|
||||||
[[Called by Evas.Filter to determine whether the input is alpha or rgba.]]
|
[[Called by Evas.Filter to determine whether the input is alpha or rgba.]]
|
||||||
return: bool;
|
return: bool;
|
||||||
}
|
}
|
||||||
filter_input_render @protected {
|
filter_input_render @protected @virtual_pure {
|
||||||
[[Called by Evas.Filter when the parent class must render the input.
|
[[Called by Evas.Filter when the parent class must render the input.
|
||||||
;
|
;
|
||||||
]]
|
]]
|
||||||
|
@ -41,7 +41,7 @@ mixin Evas.Filter (Efl.Gfx.Filter, Eo.Base)
|
||||||
do_async: bool;
|
do_async: bool;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
filter_dirty @protected {
|
filter_dirty @protected @virtual_pure {
|
||||||
[[Called when the filter changes must trigger a redraw of the object.
|
[[Called when the filter changes must trigger a redraw of the object.
|
||||||
|
|
||||||
Virtual, to be implemented in the parent class.
|
Virtual, to be implemented in the parent class.
|
||||||
|
@ -71,8 +71,5 @@ mixin Evas.Filter (Efl.Gfx.Filter, Eo.Base)
|
||||||
Efl.Gfx.Filter.filter_source.get;
|
Efl.Gfx.Filter.filter_source.get;
|
||||||
Efl.Gfx.Filter.filter_data.get;
|
Efl.Gfx.Filter.filter_data.get;
|
||||||
Efl.Gfx.Filter.filter_data.set;
|
Efl.Gfx.Filter.filter_data.set;
|
||||||
@virtual .filter_input_alpha;
|
|
||||||
@virtual .filter_input_render;
|
|
||||||
@virtual .filter_dirty;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,14 +7,11 @@ class Base {
|
||||||
c: float;
|
c: float;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
constructor {
|
constructor @virtual_pure {
|
||||||
}
|
}
|
||||||
destructor {
|
destructor {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
implements {
|
|
||||||
@virtual .constructor;
|
|
||||||
}
|
|
||||||
constructors {
|
constructors {
|
||||||
.constructor;
|
.constructor;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,11 +2,8 @@ class nmsp1.nmsp11.class2
|
||||||
{
|
{
|
||||||
methods {
|
methods {
|
||||||
@property a {
|
@property a {
|
||||||
set {
|
set @virtual_pure {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
implements {
|
|
||||||
@virtual .a.set;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,7 +19,7 @@ class Object_Impl (Base) {
|
||||||
@property b {
|
@property b {
|
||||||
set {
|
set {
|
||||||
}
|
}
|
||||||
get {
|
get @virtual_pure {
|
||||||
/* set as virtual pure - no implementation expected */
|
/* set as virtual pure - no implementation expected */
|
||||||
}
|
}
|
||||||
values {
|
values {
|
||||||
|
@ -50,7 +50,7 @@ class Object_Impl (Base) {
|
||||||
@in b: const(char)*;
|
@in b: const(char)*;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
pure_foo3 {
|
pure_foo3 @virtual_pure {
|
||||||
/* set as virtual pure - no implementation expected */
|
/* set as virtual pure - no implementation expected */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -59,8 +59,6 @@ class Object_Impl (Base) {
|
||||||
class.destructor;
|
class.destructor;
|
||||||
Base.constructor;
|
Base.constructor;
|
||||||
Base.destructor;
|
Base.destructor;
|
||||||
@virtual .pure_foo3;
|
|
||||||
@virtual .b.get;
|
|
||||||
}
|
}
|
||||||
constructors {
|
constructors {
|
||||||
.constructor_1;
|
.constructor_1;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
class Override (Base) {
|
class Override (Base) {
|
||||||
methods {
|
methods {
|
||||||
@property a {
|
@property a {
|
||||||
set {
|
set @virtual_pure {
|
||||||
}
|
}
|
||||||
get {
|
get {
|
||||||
}
|
}
|
||||||
|
@ -32,7 +32,7 @@ class Override (Base) {
|
||||||
c: int(50);
|
c: int(50);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
foo {
|
foo @virtual_pure {
|
||||||
}
|
}
|
||||||
bar {
|
bar {
|
||||||
params {
|
params {
|
||||||
|
@ -44,8 +44,6 @@ class Override (Base) {
|
||||||
}
|
}
|
||||||
implements {
|
implements {
|
||||||
Base.constructor;
|
Base.constructor;
|
||||||
@virtual .a.set;
|
|
||||||
@virtual .foo;
|
|
||||||
@auto .b.set;
|
@auto .b.set;
|
||||||
@empty .bar;
|
@empty .bar;
|
||||||
@auto .c.get;
|
@auto .c.get;
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
EOAPI EO_VOID_FUNC_BODY(override_a_set);
|
|
||||||
EOAPI EO_VOID_FUNC_BODY(override_foo);
|
|
||||||
|
|
||||||
static void __eolian_override_b_set(Eo *obj EINA_UNUSED, Override_Data *pd, int idx EINA_UNUSED, float a, char b, int c)
|
static void __eolian_override_b_set(Eo *obj EINA_UNUSED, Override_Data *pd, int idx EINA_UNUSED, float a, char b, int c)
|
||||||
{
|
{
|
||||||
|
@ -24,6 +22,7 @@ static int __eolian_override_c_get(Eo *obj EINA_UNUSED, Override_Data *pd EINA_U
|
||||||
}
|
}
|
||||||
|
|
||||||
EOAPI EO_FUNC_BODYV_CONST(override_c_get, int, 50, EO_FUNC_CALL(idx), int idx);
|
EOAPI EO_FUNC_BODYV_CONST(override_c_get, int, 50, EO_FUNC_CALL(idx), int idx);
|
||||||
|
EOAPI EO_VOID_FUNC_BODY(override_a_set);
|
||||||
|
|
||||||
void _override_a_get(Eo *obj, Override_Data *pd);
|
void _override_a_get(Eo *obj, Override_Data *pd);
|
||||||
|
|
||||||
|
@ -36,6 +35,7 @@ EOAPI EO_VOID_FUNC_BODYV_CONST(override_b_get, EO_FUNC_CALL(idx, a, b, c), int i
|
||||||
void _override_c_set(Eo *obj, Override_Data *pd, int idx, int c);
|
void _override_c_set(Eo *obj, Override_Data *pd, int idx, int c);
|
||||||
|
|
||||||
EOAPI EO_VOID_FUNC_BODYV(override_c_set, EO_FUNC_CALL(idx, c), int idx, int c);
|
EOAPI EO_VOID_FUNC_BODYV(override_c_set, EO_FUNC_CALL(idx, c), int idx, int c);
|
||||||
|
EOAPI EO_VOID_FUNC_BODY(override_foo);
|
||||||
|
|
||||||
void _override_base_constructor(Eo *obj, Override_Data *pd);
|
void _override_base_constructor(Eo *obj, Override_Data *pd);
|
||||||
|
|
||||||
|
@ -57,14 +57,14 @@ static const Eo_Op_Description _override_op_desc[] = {
|
||||||
EO_OP_FUNC_OVERRIDE(base_constructor, _override_base_constructor),
|
EO_OP_FUNC_OVERRIDE(base_constructor, _override_base_constructor),
|
||||||
EO_OP_FUNC_OVERRIDE(base_z_get, __eolian_override_base_z_get),
|
EO_OP_FUNC_OVERRIDE(base_z_get, __eolian_override_base_z_get),
|
||||||
EO_OP_FUNC_OVERRIDE(base_z_set, __eolian_override_base_z_set),
|
EO_OP_FUNC_OVERRIDE(base_z_set, __eolian_override_base_z_set),
|
||||||
EO_OP_FUNC(override_a_set, NULL),
|
|
||||||
EO_OP_FUNC(override_foo, NULL),
|
|
||||||
EO_OP_FUNC(override_b_set, __eolian_override_b_set),
|
EO_OP_FUNC(override_b_set, __eolian_override_b_set),
|
||||||
EO_OP_FUNC(override_bar, __eolian_override_bar),
|
EO_OP_FUNC(override_bar, __eolian_override_bar),
|
||||||
EO_OP_FUNC(override_c_get, __eolian_override_c_get),
|
EO_OP_FUNC(override_c_get, __eolian_override_c_get),
|
||||||
|
EO_OP_FUNC(override_a_set, NULL),
|
||||||
EO_OP_FUNC(override_a_get, _override_a_get),
|
EO_OP_FUNC(override_a_get, _override_a_get),
|
||||||
EO_OP_FUNC(override_b_get, _override_b_get),
|
EO_OP_FUNC(override_b_get, _override_b_get),
|
||||||
EO_OP_FUNC(override_c_set, _override_c_set),
|
EO_OP_FUNC(override_c_set, _override_c_set),
|
||||||
|
EO_OP_FUNC(override_foo, NULL),
|
||||||
};
|
};
|
||||||
|
|
||||||
static const Eo_Class_Description _override_class_desc = {
|
static const Eo_Class_Description _override_class_desc = {
|
||||||
|
@ -78,4 +78,4 @@ static const Eo_Class_Description _override_class_desc = {
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
EO_DEFINE_CLASS(override_class_get, &_override_class_desc, BASE_CLASS, NULL);
|
EO_DEFINE_CLASS(override_class_get, &_override_class_desc, BASE_CLASS, NULL);
|
|
@ -221,33 +221,6 @@ START_TEST(eolian_override)
|
||||||
fail_if(impl_class != base);
|
fail_if(impl_class != base);
|
||||||
fail_if(strcmp(eolian_function_name_get(impl_func), "constructor"));
|
fail_if(strcmp(eolian_function_name_get(impl_func), "constructor"));
|
||||||
|
|
||||||
fail_if(!(eina_iterator_next(iter, (void**)&impl)));
|
|
||||||
fail_if(eolian_implement_is_auto(impl));
|
|
||||||
fail_if(eolian_implement_is_empty(impl));
|
|
||||||
fail_if(!eolian_implement_is_virtual(impl));
|
|
||||||
fail_if(!(impl_class = eolian_implement_class_get(impl)));
|
|
||||||
fail_if(!(impl_func = eolian_implement_function_get(impl, NULL)));
|
|
||||||
fail_if(impl_class != class);
|
|
||||||
fail_if(strcmp(eolian_function_name_get(impl_func), "a"));
|
|
||||||
fail_if(eolian_function_is_auto(impl_func, EOLIAN_PROP_SET));
|
|
||||||
fail_if(eolian_function_is_auto(impl_func, EOLIAN_PROP_GET));
|
|
||||||
fail_if(eolian_function_is_empty(impl_func, EOLIAN_PROP_SET));
|
|
||||||
fail_if(eolian_function_is_empty(impl_func, EOLIAN_PROP_GET));
|
|
||||||
fail_if(!eolian_function_is_virtual_pure(impl_func, EOLIAN_PROP_SET));
|
|
||||||
fail_if(eolian_function_is_virtual_pure(impl_func, EOLIAN_PROP_GET));
|
|
||||||
|
|
||||||
fail_if(!(eina_iterator_next(iter, (void**)&impl)));
|
|
||||||
fail_if(eolian_implement_is_auto(impl));
|
|
||||||
fail_if(eolian_implement_is_empty(impl));
|
|
||||||
fail_if(!eolian_implement_is_virtual(impl));
|
|
||||||
fail_if(!(impl_class = eolian_implement_class_get(impl)));
|
|
||||||
fail_if(!(impl_func = eolian_implement_function_get(impl, NULL)));
|
|
||||||
fail_if(impl_class != class);
|
|
||||||
fail_if(strcmp(eolian_function_name_get(impl_func), "foo"));
|
|
||||||
fail_if(eolian_function_is_auto(impl_func, EOLIAN_METHOD));
|
|
||||||
fail_if(eolian_function_is_empty(impl_func, EOLIAN_METHOD));
|
|
||||||
fail_if(!eolian_function_is_virtual_pure(impl_func, EOLIAN_METHOD));
|
|
||||||
|
|
||||||
fail_if(!(eina_iterator_next(iter, (void**)&impl)));
|
fail_if(!(eina_iterator_next(iter, (void**)&impl)));
|
||||||
fail_if(!eolian_implement_is_auto(impl));
|
fail_if(!eolian_implement_is_auto(impl));
|
||||||
fail_if(eolian_implement_is_empty(impl));
|
fail_if(eolian_implement_is_empty(impl));
|
||||||
|
|
Loading…
Reference in New Issue