diff options
Diffstat (limited to 'src/fltk-widgets-groups-windows.adb')
-rw-r--r-- | src/fltk-widgets-groups-windows.adb | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/src/fltk-widgets-groups-windows.adb b/src/fltk-widgets-groups-windows.adb index a4da35b..590c915 100644 --- a/src/fltk-widgets-groups-windows.adb +++ b/src/fltk-widgets-groups-windows.adb @@ -10,6 +10,7 @@ use type Interfaces.C.int, Interfaces.C.unsigned, + Interfaces.C.Strings.chars_ptr, System.Address; @@ -490,10 +491,16 @@ package body FLTK.Widgets.Groups.Windows is function Get_Icon_Label (This : in Window) - return String is + return String + is + Ptr : Interfaces.C.Strings.chars_ptr := fl_window_get_iconlabel (This.Void_Ptr); begin - -- pointer to internal buffer only, so no Free required - return Interfaces.C.Strings.Value (fl_window_get_iconlabel (This.Void_Ptr)); + if Ptr = Interfaces.C.Strings.Null_Ptr then + return ""; + else + -- pointer to internal buffer only, so no Free required + return Interfaces.C.Strings.Value (Ptr); + end if; end Get_Icon_Label; @@ -600,10 +607,16 @@ package body FLTK.Widgets.Groups.Windows is function Get_Label (This : in Window) - return String is + return String + is + Ptr : Interfaces.C.Strings.chars_ptr := fl_window_get_label (This.Void_Ptr); begin - -- pointer to internal buffer only, so no Free required - return Interfaces.C.Strings.Value (fl_window_get_label (This.Void_Ptr)); + if Ptr = Interfaces.C.Strings.Null_Ptr then + return ""; + else + -- pointer to internal buffer only, so no Free required + return Interfaces.C.Strings.Value (Ptr); + end if; end Get_Label; |