summaryrefslogtreecommitdiff
path: root/src/fltk-text_buffers.ads
diff options
context:
space:
mode:
authorJed Barber <jjbarber@y7mail.com>2017-06-17 11:28:39 +1000
committerJed Barber <jjbarber@y7mail.com>2017-06-17 11:28:39 +1000
commitfb37523537cdb69a31dede401a604981ce8b7b9d (patch)
tree9d8f8dc3a00ce27b69aa4b7d7696b49d659fcbe1 /src/fltk-text_buffers.ads
parent33c3691b571ce4b6a2aa6997b70c3bc5d991ca9d (diff)
Updated coding style, added progress log
Diffstat (limited to 'src/fltk-text_buffers.ads')
-rw-r--r--src/fltk-text_buffers.ads113
1 files changed, 64 insertions, 49 deletions
diff --git a/src/fltk-text_buffers.ads b/src/fltk-text_buffers.ads
index d3e1bab..1648915 100644
--- a/src/fltk-text_buffers.ads
+++ b/src/fltk-text_buffers.ads
@@ -1,20 +1,23 @@
-private with Ada.Containers.Vectors;
-private with System.Address_To_Access_Conversions;
+private with
+
+ Ada.Containers.Vectors,
+ System.Address_To_Access_Conversions,
+ Interfaces.C.Strings;
package FLTK.Text_Buffers is
type Text_Buffer is new Wrapper with private;
+
type Text_Buffer_Cursor (Data : access Text_Buffer'Class) is limited null record
with Implicit_Dereference => Data;
-
type Position is new Natural;
- type Modification is (Insert, Restyle, Delete, None);
+ type Modification is (Insert, Restyle, Delete, None);
type Modify_Callback is access procedure
(Action : in Modification;
@@ -22,72 +25,98 @@ package FLTK.Text_Buffers is
Length : in Natural;
Deleted_Text : in String);
-
type Predelete_Callback is access procedure
(Place : in Position;
Length : in Natural);
+
+
function Create
(Requested_Size : in Natural := 0;
Preferred_Gap_Size : in Natural := 1024)
return Text_Buffer;
+
+
procedure Add_Modify_Callback
(This : in out Text_Buffer;
Func : in Modify_Callback);
-
procedure Add_Predelete_Callback
(This : in out Text_Buffer;
Func : in Predelete_Callback);
-
procedure Call_Modify_Callbacks
(This : in out Text_Buffer);
-
procedure Call_Predelete_Callbacks
(This : in out Text_Buffer);
-
procedure Enable_Callbacks
(This : in out Text_Buffer);
-
procedure Disable_Callbacks
(This : in out Text_Buffer);
+
+
+ procedure Load_File
+ (This : in Text_Buffer;
+ Name : in String);
+
+ procedure Save_File
+ (This : in Text_Buffer;
+ Name : in String);
+
+
+
+
procedure Insert_Text
(This : in out Text_Buffer;
Pos : in Natural;
Item : in String);
-
procedure Remove_Text
(This : in out Text_Buffer;
Start, Finish : in Natural);
+ function Character_At
+ (This : in Text_Buffer;
+ Pos : in Natural)
+ return Character;
+
+ function Text_At
+ (This : in Text_Buffer;
+ Start, Finish : in Natural)
+ return String;
function Length
(This : in Text_Buffer)
return Natural;
- procedure Load_File
- (This : in Text_Buffer;
- Name : in String);
+ function Get_Selection
+ (This : in Text_Buffer;
+ Start, Finish : out Natural)
+ return Boolean;
+
+ procedure Set_Selection
+ (This : in out Text_Buffer;
+ Start, Finish : in Natural);
+
+ function Has_Selection
+ (This : in Text_Buffer)
+ return Boolean;
+
procedure Remove_Selected_Text
(This : in out Text_Buffer);
- procedure Save_File
- (This : in Text_Buffer;
- Name : in String);
function Search_Forward
@@ -98,7 +127,6 @@ package FLTK.Text_Buffers is
Match_Case : in Boolean)
return Boolean;
-
function Search_Backward
(This : in Text_Buffer;
Start_At : in Natural;
@@ -107,30 +135,12 @@ package FLTK.Text_Buffers is
Match_Case : in Boolean)
return Boolean;
-
- procedure Set_Selection
- (This : in out Text_Buffer;
- Start, Finish : in Natural);
-
-
- function Get_Selection
- (This : in Text_Buffer;
- Start, Finish : out Natural)
- return Boolean;
-
-
- function Has_Selection
- (This : in Text_Buffer)
- return Boolean;
-
-
-- only takes into account newline characters, not word wrap
function Skip_Lines
(This : in out Text_Buffer;
Start, Lines : in Natural)
return Natural;
-
-- only takes into account newline characters, not word wrap
function Rewind_Lines
(This : in out Text_Buffer;
@@ -138,18 +148,6 @@ package FLTK.Text_Buffers is
return Natural;
- function Character_At
- (This : in Text_Buffer;
- Pos : in Natural)
- return Character;
-
-
- function Text_At
- (This : in Text_Buffer;
- Start, Finish : in Natural)
- return String;
-
-
private
@@ -161,6 +159,8 @@ private
Element_Type => Predelete_Callback);
+
+
type Text_Buffer is new Wrapper with
record
CB_Active : Boolean;
@@ -168,11 +168,26 @@ private
Predelete_CBs : Predelete_Vectors.Vector;
end record;
-
overriding procedure Finalize
(This : in out Text_Buffer);
+
+
+ procedure Modify_Callback_Hook
+ (Pos, Inserted, Deleted, Restyled : in Interfaces.C.int;
+ Text : in Interfaces.C.Strings.chars_ptr;
+ UD : in System.Address);
+ pragma Convention (C, Modify_Callback_Hook);
+
+ procedure Predelete_Callback_Hook
+ (Pos, Deleted : in Interfaces.C.int;
+ UD : in System.Address);
+ pragma Convention (C, Predelete_Callback_Hook);
+
+
+
+
package Text_Buffer_Convert is new System.Address_To_Access_Conversions (Text_Buffer);