diff options
Diffstat (limited to 'src/fltk-widgets-groups-text_displays.ads')
-rw-r--r-- | src/fltk-widgets-groups-text_displays.ads | 178 |
1 files changed, 154 insertions, 24 deletions
diff --git a/src/fltk-widgets-groups-text_displays.ads b/src/fltk-widgets-groups-text_displays.ads index c1c3ea8..09cf31c 100644 --- a/src/fltk-widgets-groups-text_displays.ads +++ b/src/fltk-widgets-groups-text_displays.ads @@ -8,10 +8,13 @@ package FLTK.Widgets.Groups.Text_Displays is type Text_Display is new Group with private; - - type Wrap_Mode is (Wrap_None, Wrap_At_Column, Wrap_At_Pixel, Wrap_At_Bounds); + type Wrap_Mode is (None, Column, Pixel, Bounds); type Cursor_Style is (Normal, Caret, Dim, Block, Heavy, Simple); + Bounds_Error : exception; + + + function Create (X, Y, W, H : in Integer; @@ -19,132 +22,260 @@ package FLTK.Widgets.Groups.Text_Displays is return Text_Display; + + function Get_Buffer (This : in Text_Display) return FLTK.Text_Buffers.Text_Buffer_Cursor; - procedure Set_Buffer (This : in out Text_Display; Buff : in out FLTK.Text_Buffers.Text_Buffer); + + function Col_To_X (This : in Text_Display; Col_Num : in Integer) return Integer; - function X_To_Col (This : in Text_Display; X_Pos : in Integer) return Integer; + function In_Selection + (This : in Text_Display; + X, Y : in Integer) + return Boolean; + + procedure Position_To_XY + (This : in Text_Display; + Pos : in Integer; + X, Y : out Integer; + Vert_Out : out Boolean); + + + function Get_Cursor_Color (This : in Text_Display) return Color; - procedure Set_Cursor_Color (This : in out Text_Display; Col : in Color); - procedure Set_Cursor_Style (This : in out Text_Display; Style : in Cursor_Style); + procedure Hide_Cursor + (This : in out Text_Display); + + procedure Show_Cursor + (This : in out Text_Display); + + + function Get_Text_Color (This : in Text_Display) return Color; - procedure Set_Text_Color (This : in out Text_Display; Col : in Color); - function Get_Text_Font (This : in Text_Display) return Font_Kind; - procedure Set_Text_Font (This : in out Text_Display; Font : in Font_Kind); - function Get_Text_Size (This : in Text_Display) return Font_Size; - procedure Set_Text_Size (This : in out Text_Display; Size : in Font_Size); + + + procedure Insert_Text + (This : in out Text_Display; + Item : in String); + function Get_Insert_Position (This : in Text_Display) return Natural; - procedure Set_Insert_Position (This : in out Text_Display; Pos : in Natural); - procedure Show_Insert_Position (This : in out Text_Display); + + + function Word_Start + (This : in out Text_Display; + Pos : in Natural) + return Natural; + + function Word_End + (This : in out Text_Display; + Pos : in Natural) + return Natural; + procedure Next_Word (This : in out Text_Display); - procedure Previous_Word (This : in out Text_Display); - procedure Set_Wrap_Mode (This : in out Text_Display; Mode : in Wrap_Mode; Margin : in Natural := 0); + + + -- takes into account word wrap + function Line_Start + (This : in Text_Display; + Pos : in Natural) + return Natural; + + -- takes into account word wrap + function Line_End + (This : in Text_Display; + Pos : in Natural; + Start_Pos_Is_Line_Start : in Boolean := False) + return Natural; + function Count_Lines (This : in Text_Display; Start, Finish : in Natural; Start_Pos_Is_Line_Start : in Boolean := False) return Natural; - -- takes into account word wrap as well as newline characters function Skip_Lines - (This : in out Text_Display; - Start, Lines : in Natural; - Start_Pos_Is_Line_Start : in Boolean := False) + (This : in Text_Display; + Start, Lines : in Natural; + Start_Pos_Is_Line_Start : in Boolean := False) return Natural; - -- takes into account word wrap as well as newline characters function Rewind_Lines - (This : in out Text_Display; - Start, Lines : in Natural) + (This : in Text_Display; + Start, Lines : in Natural) return Natural; + + + function Get_Linenumber_Alignment + (This : in Text_Display) + return Alignment; + + procedure Set_Linenumber_Alignment + (This : in out Text_Display; + To : in Alignment); + + function Get_Linenumber_Back_Color + (This : in Text_Display) + return Color; + + procedure Set_Linenumber_Back_Color + (This : in out Text_Display; + To : in Color); + + function Get_Linenumber_Fore_Color + (This : in Text_Display) + return Color; + + procedure Set_Linenumber_Fore_Color + (This : in out Text_Display; + To : in Color); + + function Get_Linenumber_Font + (This : in Text_Display) + return Font_Kind; + + procedure Set_Linenumber_Font + (This : in out Text_Display; + To : in Font_Kind); + + function Get_Linenumber_Size + (This : in Text_Display) + return Font_Size; + + procedure Set_Linenumber_Size + (This : in out Text_Display; + To : in Font_Size); + + function Get_Linenumber_Width + (This : in Text_Display) + return Natural; + procedure Set_Linenumber_Width (This : in out Text_Display; Width : in Natural); - procedure Draw + + + procedure Move_Down + (This : in out Text_Display); + + procedure Move_Left + (This : in out Text_Display); + + procedure Move_Right + (This : in out Text_Display); + + procedure Move_Up (This : in out Text_Display); + + + procedure Scroll_To + (This : in out Text_Display; + Line : in Natural); + + function Get_Scrollbar_Alignment + (This : in Text_Display) + return Alignment; + + procedure Set_Scrollbar_Alignment + (This : in out Text_Display; + Align : in Alignment); + + function Get_Scrollbar_Width + (This : in Text_Display) + return Natural; + + procedure Set_Scrollbar_Width + (This : in out Text_Display; + Width : in Natural); + + + + + procedure Draw + (This : in out Text_Display); + function Handle (This : in out Text_Display; Event : in Event_Kind) @@ -159,7 +290,6 @@ private Buffer : access FLTK.Text_Buffers.Text_Buffer; end record; - overriding procedure Finalize (This : in out Text_Display); |