forked from enlightenment/efl
276 lines
9.1 KiB
Plaintext
276 lines
9.1 KiB
Plaintext
|
import eina_types;
|
||
|
import efl_gfx_types;
|
||
|
|
||
|
mixin Efl.Gfx.Path
|
||
|
{
|
||
|
[[EFL graphics path object interface]]
|
||
|
methods {
|
||
|
@property path {
|
||
|
[[Set the list of commands and points to be used to create the
|
||
|
content of shape.
|
||
|
|
||
|
See \@ref efl_gfx_path interface for how to create a command list.
|
||
|
|
||
|
@since 1.18
|
||
|
]]
|
||
|
set {
|
||
|
}
|
||
|
get {
|
||
|
}
|
||
|
values {
|
||
|
op: ptr(const(Efl.Gfx.Path.Command_Type)); [[Command list]]
|
||
|
points: ptr(const(double)); [[Point list]]
|
||
|
}
|
||
|
}
|
||
|
@property length {
|
||
|
[[Path length property]]
|
||
|
get {
|
||
|
}
|
||
|
values {
|
||
|
commands: uint; [[Commands]]
|
||
|
points: uint; [[Points]]
|
||
|
}
|
||
|
}
|
||
|
@property current {
|
||
|
[[Current point coordinates]]
|
||
|
get {
|
||
|
}
|
||
|
values {
|
||
|
x: double; [[X co-ordinate of the current point.]]
|
||
|
y: double; [[Y co-ordinate of the current point.]]
|
||
|
}
|
||
|
}
|
||
|
@property current_ctrl {
|
||
|
[[Current control point coordinates]]
|
||
|
get {
|
||
|
}
|
||
|
values {
|
||
|
x: double; [[X co-ordinate of control point.]]
|
||
|
y: double; [[Y co-ordinate of control point.]]
|
||
|
}
|
||
|
}
|
||
|
dup {
|
||
|
[[Copy the shape data from the object specified.
|
||
|
|
||
|
@since 1.18
|
||
|
]]
|
||
|
params {
|
||
|
@in dup_from: const(Efl.Object); [[Shape object from where data will be copied.]]
|
||
|
}
|
||
|
}
|
||
|
bounds_get {
|
||
|
[[Compute and return the bounding box of the currently set path
|
||
|
|
||
|
@since 1.18
|
||
|
]]
|
||
|
params {
|
||
|
@out r: Eina.Rectangle; [[Contain the bounding box of the currently set path]]
|
||
|
}
|
||
|
}
|
||
|
reset {
|
||
|
[[Reset the shape data of the shape object.
|
||
|
|
||
|
@since 1.18
|
||
|
]]
|
||
|
}
|
||
|
append_move_to {
|
||
|
[[Moves the current point to the given point,
|
||
|
implicitly starting a new subpath and closing the previous one.
|
||
|
|
||
|
See also @.append_close.
|
||
|
|
||
|
@since 1.18
|
||
|
]]
|
||
|
params {
|
||
|
@in x: double; [[X co-ordinate of the current point.]]
|
||
|
@in y: double; [[Y co-ordinate of the current point.]]
|
||
|
}
|
||
|
}
|
||
|
append_line_to {
|
||
|
[[Adds a straight line from the current position to the given end point.
|
||
|
After the line is drawn, the current position is updated to be at the
|
||
|
end point of the line.
|
||
|
|
||
|
If no current position present, it draws a line to itself, basically
|
||
|
a point.
|
||
|
|
||
|
See also @.append_move_to.
|
||
|
|
||
|
@since 1.18
|
||
|
]]
|
||
|
params {
|
||
|
@in x: double; [[X co-ordinate of end point of the line.]]
|
||
|
@in y: double; [[Y co-ordinate of end point of the line.]]
|
||
|
}
|
||
|
}
|
||
|
append_quadratic_to {
|
||
|
[[Adds a quadratic Bezier curve between the current position and the
|
||
|
given end point (x,y) using the control points specified by (ctrl_x,
|
||
|
ctrl_y). After the path is drawn, the current position is updated to
|
||
|
be at the end point of the path.
|
||
|
|
||
|
@since 1.18
|
||
|
]]
|
||
|
params {
|
||
|
@in x: double; [[X co-ordinate of end point of the line.]]
|
||
|
@in y: double; [[Y co-ordinate of end point of the line.]]
|
||
|
@in ctrl_x: double; [[X co-ordinate of control point.]]
|
||
|
@in ctrl_y: double; [[Y co-ordinate of control point.]]
|
||
|
}
|
||
|
}
|
||
|
append_squadratic_to {
|
||
|
[[Same as efl_gfx_path_append_quadratic_to() api only difference is
|
||
|
that it uses the current control point to draw the bezier.
|
||
|
|
||
|
See also @.append_quadratic_to.
|
||
|
|
||
|
@since 1.18
|
||
|
]]
|
||
|
params {
|
||
|
@in x: double; [[X co-ordinate of end point of the line.]]
|
||
|
@in y: double; [[Y co-ordinate of end point of the line.]]
|
||
|
}
|
||
|
}
|
||
|
append_cubic_to {
|
||
|
[[Adds a cubic Bezier curve between the current position and the
|
||
|
given end point (x,y) using the control points specified by
|
||
|
(ctrl_x0, ctrl_y0), and (ctrl_x1, ctrl_y1). After the path is drawn,
|
||
|
the current position is updated to be at the end point of the path.
|
||
|
|
||
|
@since 1.18
|
||
|
]]
|
||
|
params {
|
||
|
@in ctrl_x0: double; [[X co-ordinate of 1st control point.]]
|
||
|
@in ctrl_y0: double; [[Y co-ordinate of 1st control point.]]
|
||
|
@in ctrl_x1: double; [[X co-ordinate of 2nd control point.]]
|
||
|
@in ctrl_y1: double; [[Y co-ordinate of 2nd control point.]]
|
||
|
@in x: double; [[X co-ordinate of end point of the line.]]
|
||
|
@in y: double; [[Y co-ordinate of end point of the line.]]
|
||
|
}
|
||
|
}
|
||
|
append_scubic_to {
|
||
|
[[Same as efl_gfx_path_append_cubic_to() api only difference is that it
|
||
|
uses the current control point to draw the bezier.
|
||
|
|
||
|
See also @.append_cubic_to.
|
||
|
|
||
|
@since 1.18
|
||
|
]]
|
||
|
params {
|
||
|
@in x: double; [[X co-ordinate of end point of the line.]]
|
||
|
@in y: double; [[Y co-ordinate of end point of the line.]]
|
||
|
@in ctrl_x: double; [[X co-ordinate of 2nd control point.]]
|
||
|
@in ctrl_y: double; [[Y co-ordinate of 2nd control point.]]
|
||
|
}
|
||
|
}
|
||
|
append_arc_to {
|
||
|
[[Append an arc that connects from the current point int the point list
|
||
|
to the given point (x,y). The arc is defined by the given radius in
|
||
|
x-direction (rx) and radius in y direction (ry).
|
||
|
|
||
|
Use this api if you know the end point's of the arc otherwise use
|
||
|
more convenient function @.append_arc.
|
||
|
|
||
|
@since 1.18
|
||
|
]]
|
||
|
params {
|
||
|
@in x: double; [[X co-ordinate of end point of the arc.]]
|
||
|
@in y: double; [[Y co-ordinate of end point of the arc.]]
|
||
|
@in rx: double; [[Radius of arc in x direction.]]
|
||
|
@in ry: double; [[Radius of arc in y direction.]]
|
||
|
@in angle: double; [[X-axis rotation , normally 0.]]
|
||
|
@in large_arc: bool; [[Defines whether to draw the larger arc or
|
||
|
smaller arc joining two point.]]
|
||
|
@in sweep: bool; [[Defines whether the arc will be drawn
|
||
|
counter-clockwise or clockwise from current point
|
||
|
to the end point taking into account the large_arc
|
||
|
property.]]
|
||
|
}
|
||
|
}
|
||
|
append_arc {
|
||
|
[[Append an arc that enclosed in the given rectangle (x, y, w, h).
|
||
|
The angle is defined in counter clock wise , use -ve angle for clockwise arc.
|
||
|
|
||
|
@since 1.18
|
||
|
]]
|
||
|
params {
|
||
|
@in x: double; [[X co-ordinate of the rect.]]
|
||
|
@in y: double; [[Y co-ordinate of the rect.]]
|
||
|
@in w: double; [[Width of the rect.]]
|
||
|
@in h: double; [[Height of the rect.]]
|
||
|
@in start_angle: double; [[Angle at which the arc will start]]
|
||
|
@in sweep_length: double; [[@ Length of the arc.]]
|
||
|
}
|
||
|
}
|
||
|
append_close {
|
||
|
[[Closes the current subpath by drawing a line to the beginning of the
|
||
|
subpath, automatically starting a new path. The current point of the
|
||
|
new path is (0, 0).
|
||
|
|
||
|
If the subpath does not contain any points, this function does nothing.
|
||
|
|
||
|
@since 1.18
|
||
|
]]
|
||
|
}
|
||
|
append_circle {
|
||
|
[[Append a circle with given center and radius.
|
||
|
|
||
|
@since 1.18
|
||
|
]]
|
||
|
params {
|
||
|
@in x: double; [[X co-ordinate of the center of the circle.]]
|
||
|
@in y: double; [[Y co-ordinate of the center of the circle.]]
|
||
|
@in radius: double; [[Radius of the circle.]]
|
||
|
}
|
||
|
}
|
||
|
append_rect {
|
||
|
[[Append the given rectangle with rounded corner to the path.
|
||
|
|
||
|
The xr and yr arguments specify the radii of the ellipses defining the
|
||
|
corners of the rounded rectangle.
|
||
|
|
||
|
xr and yr are specified in terms of width and height respectively.
|
||
|
|
||
|
If xr and yr are 0, then it will draw a rectangle without rounded
|
||
|
corner.
|
||
|
|
||
|
@since 1.18
|
||
|
]]
|
||
|
params {
|
||
|
@in x: double; [[X co-ordinate of the rectangle.]]
|
||
|
@in y: double; [[Y co-ordinate of the rectangle.]]
|
||
|
@in w: double; [[Width of the rectangle.]]
|
||
|
@in h: double; [[Height of the rectangle.]]
|
||
|
@in rx: double; [[The x radius of the rounded corner and should be
|
||
|
in range [ 0 to w/2 ]
|
||
|
]]
|
||
|
@in ry: double; [[The y radius of the rounded corner and should be
|
||
|
in range [ 0 to h/2 ]
|
||
|
]]
|
||
|
}
|
||
|
}
|
||
|
append_svg_path {
|
||
|
[[Append SVG path data]]
|
||
|
params {
|
||
|
@in svg_path_data: string; [[SVG path data to append]]
|
||
|
}
|
||
|
}
|
||
|
interpolate {
|
||
|
[[Interpolate object]]
|
||
|
return: bool; [[$true on success, $false otherwise]]
|
||
|
params {
|
||
|
@in from: const(Efl.Object); [[Source object]]
|
||
|
@in to: const(Efl.Object); [[Destination object]]
|
||
|
@in pos_map: double; [[Position map]]
|
||
|
}
|
||
|
}
|
||
|
equal_commands {
|
||
|
[[Equal commands in object]]
|
||
|
return: bool; [[True on success, $false otherwise]]
|
||
|
params {
|
||
|
@in with: const(Efl.Object); [[Object]]
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|