~~Title: Efl.Gfx.Shape~~
====== Efl.Gfx.Shape (mixin) ======
===== Description =====
%%EFL graphics shape object interface%%
{{page>:develop:api-include:efl:gfx:shape:description&nouser&nolink&nodate}}
===== Inheritance =====
=> [[:develop:api:efl:gfx:path|Efl.Gfx.Path]] //(mixin)//
++++ Full hierarchy |
* [[:develop:api:efl:gfx:path|Efl.Gfx.Path]] //(mixin)//
++++
===== Members =====
**[[:develop:api:efl:gfx:shape:method:copy_from|copy_from]]**// [Overridden from [[:develop:api:efl:gfx:path|Efl.Gfx.Path]]]//\\
> %%Copy the path data from the object specified.%%
void efl_gfx_path_copy_from(Eo *obj, const Efl_Object *dup_from);
\\
**[[:develop:api:efl:gfx:shape:property:fill_rule|fill_rule]]** //**(get, set)**//\\
> %%The fill rule of the given shape object. %%[[:develop:api:efl:gfx:fill_rule|Efl.Gfx.Fill_Rule.winding]]%% or %%[[:develop:api:efl:gfx:fill_rule|Efl.Gfx.Fill_Rule.odd_even]]%%.%%
Efl_Gfx_Fill_Rule efl_gfx_shape_fill_rule_get(const Eo *obj);
void efl_gfx_shape_fill_rule_set(Eo *obj, Efl_Gfx_Fill_Rule fill_rule);
\\
**[[:develop:api:efl:gfx:shape:method:interpolate|interpolate]]**// [Overridden from [[:develop:api:efl:gfx:path|Efl.Gfx.Path]]]//\\
> %%Creates intermediary path part-way between two paths%%
Eina_Bool efl_gfx_path_interpolate(Eo *obj, const Efl_Object *from, const Efl_Object *to, double pos_map);
\\
**[[:develop:api:efl:gfx:shape:property:stroke_cap|stroke_cap]]** //**(get, set)**//\\
> %%The cap style to be used for stroking the path. The cap will be used for capping the end point of a open subpath.%%
Efl_Gfx_Cap efl_gfx_shape_stroke_cap_get(const Eo *obj);
void efl_gfx_shape_stroke_cap_set(Eo *obj, Efl_Gfx_Cap c);
\\
**[[:develop:api:efl:gfx:shape:property:stroke_color|stroke_color]]** //**(get, set)**//\\
> %%The color to be used for stroking the path.%%
void efl_gfx_shape_stroke_color_get(const Eo *obj, int *r, int *g, int *b, int *a);
void efl_gfx_shape_stroke_color_set(Eo *obj, int r, int g, int b, int a);
\\
**[[:develop:api:efl:gfx:shape:property:stroke_dash|stroke_dash]]** //**(get, set)**//\\
> %%Set stroke dash pattern. A dash pattern is specified by dashes, an array of %%[[:develop:api:efl:gfx:dash|Efl.Gfx.Dash]]%%. %%[[:develop:api:efl:gfx:dash|Efl.Gfx.Dash]]%% values(length, gap) must be positive.%%
void efl_gfx_shape_stroke_dash_get(const Eo *obj, const Efl_Gfx_Dash **dash, unsigned int *length);
void efl_gfx_shape_stroke_dash_set(Eo *obj, const Efl_Gfx_Dash *dash, unsigned int length);
\\
**[[:develop:api:efl:gfx:shape:property:stroke_join|stroke_join]]** //**(get, set)**//\\
> %%The join style to be used for stroking the path. The join style will be used for joining the two line segment while stroking the path.%%
Efl_Gfx_Join efl_gfx_shape_stroke_join_get(const Eo *obj);
void efl_gfx_shape_stroke_join_set(Eo *obj, Efl_Gfx_Join j);
\\
**[[:develop:api:efl:gfx:shape:property:stroke_location|stroke_location]]** //**(get, set)**//\\
> %%Not implemented%%
double efl_gfx_shape_stroke_location_get(const Eo *obj);
void efl_gfx_shape_stroke_location_set(Eo *obj, double centered);
\\
**[[:develop:api:efl:gfx:shape:property:stroke_miterlimit|stroke_miterlimit]]** //**(get, set)**//\\
> %%The stroke_miterlimit is a presentation defining a limit on the ratio of the miter length to the stroke-width used to draw a miter join.%%
double efl_gfx_shape_stroke_miterlimit_get(const Eo *obj);
void efl_gfx_shape_stroke_miterlimit_set(Eo *obj, double miterlimit);
\\
**[[:develop:api:efl:gfx:shape:property:stroke_scale|stroke_scale]]** //**(get, set)**//\\
> %%The stroke scale to be used for stroking the path. Will be used along with stroke width property.%%
double efl_gfx_shape_stroke_scale_get(const Eo *obj);
void efl_gfx_shape_stroke_scale_set(Eo *obj, double s);
\\
**[[:develop:api:efl:gfx:shape:property:stroke_width|stroke_width]]** //**(get, set)**//\\
> %%The stroke width to be used for stroking the path.%%
double efl_gfx_shape_stroke_width_get(const Eo *obj);
void efl_gfx_shape_stroke_width_set(Eo *obj, double w);
\\
==== Inherited ====
^ [[:develop:api:efl:gfx:path|Efl.Gfx.Path]] ^^^
| | **[[:develop:api:efl:gfx:path:method:append_arc|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.%% |
| | **[[:develop:api:efl:gfx:path:method:append_arc_to|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).%% |
| | **[[:develop:api:efl:gfx:path:method:append_circle|append_circle]]** | %%Append a circle with given center and radius.%% |
| | **[[:develop:api:efl:gfx:path:method:append_close|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).%% |
| | **[[:develop:api:efl:gfx:path:method:append_cubic_to|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.%% |
| | **[[:develop:api:efl:gfx:path:method:append_line_to|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.%% |
| | **[[:develop:api:efl:gfx:path:method:append_move_to|append_move_to]]** | %%Moves the current point to the given point, implicitly starting a new subpath and closing the previous one.%% |
| | **[[:develop:api:efl:gfx:path:method:append_quadratic_to|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.%% |
| | **[[:develop:api:efl:gfx:path:method:append_rect|append_rect]]** | %%Append the given rectangle with rounded corner to the path.%% |
| | **[[:develop:api:efl:gfx:path:method:append_scubic_to|append_scubic_to]]** | %%Same as %%[[:develop:api:efl:gfx:path:method:append_cubic_to|Efl.Gfx.Path.append_cubic_to]]%% api only difference is that it uses the current control point to draw the bezier.%% |
| | **[[:develop:api:efl:gfx:path:method:append_squadratic_to|append_squadratic_to]]** | %%Same as %%[[:develop:api:efl:gfx:path:method:append_quadratic_to|Efl.Gfx.Path.append_quadratic_to]]%% api only difference is that it uses the current control point to draw the bezier.%% |
| | **[[:develop:api:efl:gfx:path:method:append_svg_path|append_svg_path]]** | %%Append SVG path data%% |
| | **[[:develop:api:efl:gfx:path:method:bounds_get|bounds_get]]** | %%Compute and return the bounding box of the currently set path%% |
| | **[[:develop:api:efl:gfx:path:method:commit|commit]]** | %%Request to update the path object.%% |
| | **[[:develop:api:efl:gfx:path:property:current|current]]** //**(get)**// | |
| | **[[:develop:api:efl:gfx:path:property:current_ctrl|current_ctrl]]** //**(get)**// | |
| | **[[:develop:api:efl:gfx:path:method:destructor|destructor]]** | |
| | **[[:develop:api:efl:gfx:path:method:equal_commands|equal_commands]]** | %%Equal commands in object%% |
| | **[[:develop:api:efl:gfx:path:property:length|length]]** //**(get)**// | |
| | **[[:develop:api:efl:gfx:path:property:path|path]]** //**(get, set)**// | %%Set the list of commands and points to be used to create the content of path.%% |
| | **[[:develop:api:efl:gfx:path:method:reserve|reserve]]** | %%Reserve path commands buffer in advance. If you know the count of path commands coming, you can reserve commands buffer in advance to avoid buffer growing job.%% |
| | **[[:develop:api:efl:gfx:path:method:reset|reset]]** | %%Reset the path data of the path object.%% |
===== Events =====