efl/legacy/elm_code/src/lib/widget/elm_code_widget.eo

225 lines
6.6 KiB
Plaintext
Raw Normal View History

2015-05-11 15:17:44 -07:00
class Elm_Code_Widget (Elm.Layout, Elm_Interface_Atspi_Text)
{
eo_prefix: elm_code_widget;
methods {
@property code {
set {
2015-01-26 15:09:22 -08:00
/*@
Set the underlying code object that this widget renders.
This can only be set during construction, once the widget is created the
backing code object cannot be changed.
2015-01-26 15:09:22 -08:00
@ingroup Data */
}
get {
2015-01-26 15:09:22 -08:00
/*@
Get the underlying code object we are rendering
@ingroup Data */
}
values {
2015-05-18 11:24:01 -07:00
code: Elm_Code *; /*@ Our underlying Elm_Code object */
}
}
@property font_size {
set {
2015-01-26 15:09:22 -08:00
/*@
Set the font size that this widget uses, the font will always be a system monospaced font
@ingroup Style */
}
get {
2015-01-26 15:09:22 -08:00
/*@
Get the font size currently in use
@ingroup Style */
}
values {
2015-05-18 11:24:01 -07:00
font_size: Evas_Font_Size; /*@ The font size of the widgget */
}
}
@property gravity {
set {
/*@
Set how this widget's scroller should respond to new lines being added.
An x value of 0.0 will maintain the distance from the left edge, 1.0 will ensure the rightmost edge (of the longest line) is respected
With 0.0 for y the view will keep it's position relative to the top whereas 1.0 will scroll downward as lines are added.
@ingroup Layout */
}
get {
/*@
Get the current x and y gravity of the widget's scroller
@ingroup Layout */
}
values {
2015-05-18 11:24:01 -07:00
x: double; /*@ The horizontal value of the scroller gravity - valid values are 0.0 and 1.0 */
y: double; /*@ The vertical gravity of the widget's scroller - valid values are 0.0 and 1.0 */
}
}
@property tabstop {
set {
/*@
Set the width of a tab stop, used purely for visual layout of tab characters.
Recommended value is between 2 and 8.
@ingroup Layout */
}
get {
/*@
Get the current width of a tab stop.
This is used to determine where characters after a tab should appear in the line..
@ingroup Layout */
}
values {
2015-05-18 11:24:01 -07:00
tabstop: uint; /*@ Maximum width of a tab character */
}
}
@property editable {
set {
2015-01-26 15:09:22 -08:00
/*@
Set whether this widget allows editing
If @a editable then the widget will allow user input to manipulate
the underlying Elm_Code_File of this Elm_Code instance.
Any other Elm_Code_Widget's connected to this Elm_Code will
update to reflect the changes.
@ingroup Features */
}
get {
2015-01-26 15:09:22 -08:00
/*@
Get the current editable state of this widget
@return EINA_TRUE if the widget is editable, EINA_FALSE otherwise.
If this widget is not editable the underlying Elm_Code_File could
still be manipulated by a different widget or the filesystem.
@ingroup Features */
}
values {
2015-05-18 11:24:01 -07:00
editable: Eina_Bool; /*@ The editable state of the widget */
}
}
@property line_numbers {
2015-01-28 16:36:28 -08:00
set {
/*@
Set whether line numbers should be displayed in the left gutter.
Passing EINA_TRUE will reserve a space for showing line numbers,
EINA_FALSE will turn this off.
@ingroup Features */
}
get {
/*@
Get the status of line number display for this widget.
@ingroup Features */
}
values {
2015-05-18 11:24:01 -07:00
line_numbers: Eina_Bool; /*@ Whether or not line numbers (or their placeholder) should be shown */
2015-01-28 16:36:28 -08:00
}
}
@property line_width_marker {
set {
/*@
Set where the line width market should be shown.
Passing a non-zero value will set which line width to mark with a vertical line.
Passing 0 will hide this marker.
@ingroup Features */
}
get {
/*@
Get the position of the line width marker, any positive return indicates where the marker appears.
@ingroup Features */
}
values {
2015-05-18 11:24:01 -07:00
line_width_marker: uint; /*@ Where to display a line width marker, if at all */
}
}
@property show_whitespace {
set {
/*@
Set where white space should be shown.
@ingroup Features */
}
get {
/*@
Get whether or not white space will be visible.
@ingroup Features */
}
values {
2015-05-18 11:24:01 -07:00
show_whitespace: Eina_Bool; /*@ Whether or not we show whitespace characters */
}
}
@property cursor_position {
set {
/*@
Set the current location of the text cursor.
@ingroup Editing */
}
get {
/*@
Get the current x and y position of the widget's cursor
@ingroup Editing */
}
values {
2015-05-18 11:24:01 -07:00
col: uint; /*@ The horizontal position of the cursor, starting from column 1 */
line: uint; /*@ The vertical position of the cursor - the top row is 1 an */
}
}
line_refresh {
params {
2015-05-18 11:24:01 -07:00
line: Elm_Code_Line *; /*@ @in The line to refresh. */
}
}
line_visible_get {
params {
2015-05-18 11:24:01 -07:00
line: Elm_Code_Line *; /*@ @in The line to test for visibility. */
}
return: bool; /*@ true if the line specified is currently visible within the scroll region. */
}
lines_visible_get {
return: uint; /*@ the number of lines currently visible in the widget. */
}
/* text functions */
text_left_gutter_width_get {
return: int; /*@ the current column width of the gutter for the widget. */
}
text_line_number_width_get {
return: int; /*@ the column width required to represent the number of lines in the widget. */
}
}
implements {
class.constructor;
Eo.Base.constructor;
Eo.Base.finalize;
Evas.Object_Smart.add;
Elm.Widget.event;
Elm.Widget.focus_next_manager_is;
Elm.Widget.focus_direction_manager_is;
}
events {
line,clicked;
line,gutter,clicked;
cursor,changed;
changed,user;
selection,changed;
selection,cleared;
}
}