class Elm_Code_Widget (Elm_Layout, Elm_Interface_Atspi_Text) { eo_prefix: elm_code_widget; properties { code { set { /*@ 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. @ingroup Data */ } get { /*@ Get the underlying code object we are rendering @ingroup Data */ } values { Elm_Code *code; /*@ Our underlying Elm_Code object */ } } font_size { set { /*@ Set the font size that this widget uses, the font will always be a system monospaced font @ingroup Style */ } get { /*@ Get the font size currently in use @ingroup Style */ } values { Evas_Font_Size font_size; /*@ The font size of the widgget */ } } 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 { double x; /*@ The horizontal value of the scroller gravity - valid values are 0.0 and 1.0 */ double y; /*@ The vertical gravity of the widget's scroller - valid values are 0.0 and 1.0 */ } } 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 { uint tabstop; /*@ Maximum width of a tab character */ } } editable { set { /*@ 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 { /*@ 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 { Eina_Bool editable; /*@ The editable state of the widget */ } } line_numbers { 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 { Eina_Bool line_numbers; /*@ Whether or not line numbers (or their placeholder) should be shown */ } } 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 { uint line_width_marker; /*@ Where to display a line width marker, if at all */ } } 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 { Eina_Bool show_whitespace; /*@ Whether or not we show whitespace characters */ } } 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 { uint col; /*@ The horizontal position of the cursor, starting from column 1 */ uint line; /*@ The vertical position of the cursor - the top row is 1 an */ } } } methods { line_refresh { params { Elm_Code_Line *line; /*@ @in The line to refresh. */ } } line_visible_get { params { Elm_Code_Line *line; /*@ @in The line to test for visibility. */ } return: bool; /*@ true if the line specified is currently visible within the scroll region. */ } /* 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; } }