summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJed Barber <jjbarber@y7mail.com>2017-05-30 19:39:56 +1000
committerJed Barber <jjbarber@y7mail.com>2017-05-30 19:39:56 +1000
commit76f20d2f2f7e9ffb99c3ef94021cd9181e31c0cf (patch)
treebdeb0a35712753301b29a74375fc7d1ec7055045
parentdbb118c28e8348797ce3ccc1a6c7f1ec4f1f4968 (diff)
Added window border methods to Window widget
-rw-r--r--src/c_fl_window.cpp10
-rw-r--r--src/c_fl_window.h2
-rw-r--r--src/fltk-widgets-groups-windows.adb29
-rw-r--r--src/fltk-widgets-groups-windows.ads13
4 files changed, 54 insertions, 0 deletions
diff --git a/src/c_fl_window.cpp b/src/c_fl_window.cpp
index dba9ac1..fcaf6b0 100644
--- a/src/c_fl_window.cpp
+++ b/src/c_fl_window.cpp
@@ -96,6 +96,16 @@ void fl_window_hide(WINDOW n) {
}
+unsigned int fl_window_get_border(WINDOW n) {
+ return reinterpret_cast<Fl_Window*>(n)->border();
+}
+
+
+void fl_window_set_border(WINDOW n, int b) {
+ reinterpret_cast<Fl_Window*>(n)->border(b);
+}
+
+
void fl_window_set_label(WINDOW n, char* text) {
reinterpret_cast<Fl_Window*>(n)->copy_label(text);
}
diff --git a/src/c_fl_window.h b/src/c_fl_window.h
index 6ac2e1a..bd2cf53 100644
--- a/src/c_fl_window.h
+++ b/src/c_fl_window.h
@@ -20,6 +20,8 @@ extern "C" void free_fl_window(WINDOW n);
extern "C" void fl_window_show(WINDOW n);
extern "C" void fl_window_hide(WINDOW n);
+extern "C" unsigned int fl_window_get_border(WINDOW n);
+extern "C" void fl_window_set_border(WINDOW n, int b);
extern "C" void fl_window_set_label(WINDOW n, char* text);
extern "C" void fl_window_size_range(WINDOW n, int lw, int lh, int hw, int hh, int dw, int dh, int a);
extern "C" void fl_window_set_icon(WINDOW n, void * img);
diff --git a/src/fltk-widgets-groups-windows.adb b/src/fltk-widgets-groups-windows.adb
index 130b87a..5e399e2 100644
--- a/src/fltk-widgets-groups-windows.adb
+++ b/src/fltk-widgets-groups-windows.adb
@@ -42,6 +42,16 @@ package body FLTK.Widgets.Groups.Windows is
(W : in System.Address);
pragma Import (C, fl_window_hide, "fl_window_hide");
+ function fl_window_get_border
+ (W : in System.Address)
+ return Interfaces.C.unsigned;
+ pragma Import (C, fl_window_get_border, "fl_window_get_border");
+
+ procedure fl_window_set_border
+ (W : in System.Address;
+ S : in Interfaces.C.int);
+ pragma Import (C, fl_window_set_border, "fl_window_set_border");
+
procedure fl_window_set_label
(W : in System.Address;
T : in Interfaces.C.char_array);
@@ -154,6 +164,25 @@ package body FLTK.Widgets.Groups.Windows is
+ function Get_Border
+ (This : in Window)
+ return Border_State is
+ begin
+ return Border_State'Val (fl_window_get_border (This.Void_Ptr));
+ end Get_Border;
+
+
+
+ procedure Set_Border
+ (This : in out Window;
+ To : in Border_State) is
+ begin
+ fl_window_set_border (This.Void_Ptr, Border_State'Pos (To));
+ end Set_Border;
+
+
+
+
procedure Set_Label
(This : in out Window;
Text : in String) is
diff --git a/src/fltk-widgets-groups-windows.ads b/src/fltk-widgets-groups-windows.ads
index 2963c4e..eea2a6e 100644
--- a/src/fltk-widgets-groups-windows.ads
+++ b/src/fltk-widgets-groups-windows.ads
@@ -9,6 +9,9 @@ package FLTK.Widgets.Groups.Windows is
type Window is new Group with private;
+ type Border_State is (None, Visible);
+
+
function Create
(X, Y, W, H : in Integer;
Text : in String)
@@ -28,6 +31,16 @@ package FLTK.Widgets.Groups.Windows is
(This : in Window);
+ function Get_Border
+ (This : in Window)
+ return Border_State;
+
+
+ procedure Set_Border
+ (This : in out Window;
+ To : in Border_State);
+
+
procedure Set_Label
(This : in out Window;
Text : in String);