summaryrefslogtreecommitdiff
path: root/src/fltk-widgets-groups-text_displays.ads
blob: bcd83107c80634c62fdd62e77c095ee4cf3a4078 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132


with FLTK.Text_Buffers;
with FLTK.Enums; use FLTK.Enums;


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);


    function Create
           (X, Y, W, H : in Integer;
            Text       : in String)
        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 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);


    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);


    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 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)
        return Natural;


    --  takes into account word wrap as well as newline characters
    function Rewind_Lines
           (This         : in out Text_Display;
            Start, Lines : in     Natural)
        return Natural;


    procedure Set_Linenumber_Width
           (This  : in out Text_Display;
            Width : in     Natural);


    procedure Draw
           (This : in out Text_Display);


private


    type Text_Display is new Group with
        record
            Buffer : access FLTK.Text_Buffers.Text_Buffer;
        end record;


    overriding procedure Finalize
           (This : in out Text_Display);


    package Text_Display_Convert is new System.Address_To_Access_Conversions
           (Text_Display'Class);


end FLTK.Widgets.Groups.Text_Displays;