aboutsummaryrefslogtreecommitdiff
path: root/src/fltk-widgets-groups-text_displays.ads
diff options
context:
space:
mode:
Diffstat (limited to 'src/fltk-widgets-groups-text_displays.ads')
-rw-r--r--src/fltk-widgets-groups-text_displays.ads16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/fltk-widgets-groups-text_displays.ads b/src/fltk-widgets-groups-text_displays.ads
index 609561e..76cff42 100644
--- a/src/fltk-widgets-groups-text_displays.ads
+++ b/src/fltk-widgets-groups-text_displays.ads
@@ -359,6 +359,7 @@ private
type Text_Display is new Group with
record
Buffer : access FLTK.Text_Buffers.Text_Buffer;
+ Raw_Buffer : Storage.Integer_Address := Null_Pointer;
Style_Callback : Styles.Unfinished_Style_Callback;
end record;
@@ -373,6 +374,21 @@ private
+ -- Adds some basic reference counting on the C side to help ensure any Text_Buffers
+ -- do not get deallocated before all Text_Displays they might be attached to.
+ procedure upref_fl_text_buffer
+ (TB : in Storage.Integer_Address);
+ pragma Import (C, upref_fl_text_buffer, "upref_fl_text_buffer");
+ pragma Inline (upref_fl_text_buffer);
+
+ procedure free_fl_text_buffer
+ (TB : in Storage.Integer_Address);
+ pragma Import (C, free_fl_text_buffer, "free_fl_text_buffer");
+ pragma Inline (free_fl_text_buffer);
+
+
+
+
pragma Inline (Get_Buffer);
pragma Inline (Set_Buffer);