summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Gtk/Internal.dcl4
-rw-r--r--src/Gtk/Internal.icl20
-rw-r--r--src/Gtk/Types.dcl9
-rw-r--r--src/Gtk/Types.icl8
-rw-r--r--src/Gtk/Widgets.dcl5
-rw-r--r--src/Gtk/Widgets.icl8
6 files changed, 53 insertions, 1 deletions
diff --git a/src/Gtk/Internal.dcl b/src/Gtk/Internal.dcl
index ba30123..c07b71a 100644
--- a/src/Gtk/Internal.dcl
+++ b/src/Gtk/Internal.dcl
@@ -38,6 +38,10 @@ gtk_text_view_new :: !.a -> (!Pointer, !.a)
gtk_text_view_get_buffer :: !Pointer -> Pointer
gtk_text_view_set_editable :: !Pointer !Bool !.a -> .a
+gtk_widget_set_margin_bottom :: !Pointer !Int !.a -> .a
+gtk_widget_set_margin_left :: !Pointer !Int !.a -> .a
+gtk_widget_set_margin_right :: !Pointer !Int !.a -> .a
+gtk_widget_set_margin_top :: !Pointer !Int !.a -> .a
gtk_widget_set_size_request :: !Pointer !Int !Int !.a -> .a
gtk_widget_show :: !Pointer !.a -> .a
diff --git a/src/Gtk/Internal.icl b/src/Gtk/Internal.icl
index 5b49160..24e22cb 100644
--- a/src/Gtk/Internal.icl
+++ b/src/Gtk/Internal.icl
@@ -143,6 +143,26 @@ gtk_text_view_set_editable text_view setting env = code {
ccall gtk_text_view_set_editable "pI:V:A"
}
+gtk_widget_set_margin_bottom :: !Pointer !Int !.a -> .a
+gtk_widget_set_margin_bottom widget padding env = code {
+ ccall gtk_widget_set_margin_bottom "pI:V:A"
+}
+
+gtk_widget_set_margin_left :: !Pointer !Int !.a -> .a
+gtk_widget_set_margin_left widget padding env = code {
+ ccall gtk_widget_set_margin_left "pI:V:A"
+}
+
+gtk_widget_set_margin_right :: !Pointer !Int !.a -> .a
+gtk_widget_set_margin_right widget padding env = code {
+ ccall gtk_widget_set_margin_right "pI:V:A"
+}
+
+gtk_widget_set_margin_top :: !Pointer !Int !.a -> .a
+gtk_widget_set_margin_top widget padding env = code {
+ ccall gtk_widget_set_margin_top "pI:V:A"
+}
+
gtk_widget_set_size_request :: !Pointer !Int !Int !.a -> .a
gtk_widget_set_size_request widget hsize vsize env = code {
ccall gtk_widget_set_size_request "pII:V:A"
diff --git a/src/Gtk/Types.dcl b/src/Gtk/Types.dcl
index 5339bc3..b51f80e 100644
--- a/src/Gtk/Types.dcl
+++ b/src/Gtk/Types.dcl
@@ -12,6 +12,15 @@ definition module Gtk.Types
= Label !String
| NoLabel
+:: GtkMargins =
+ { left :: !Int
+ , top :: !Int
+ , right :: !Int
+ , bottom :: !Int
+ }
+
+margin :: !Int -> GtkMargins
+
:: GtkOrientation
= Horizontal
| Vertical
diff --git a/src/Gtk/Types.icl b/src/Gtk/Types.icl
index 55b6e28..aa03391 100644
--- a/src/Gtk/Types.icl
+++ b/src/Gtk/Types.icl
@@ -1 +1,9 @@
implementation module Gtk.Types
+
+margin :: !Int -> GtkMargins
+margin n =
+ { left = n
+ , top = n
+ , right = n
+ , bottom = n
+ }
diff --git a/src/Gtk/Widgets.dcl b/src/Gtk/Widgets.dcl
index 03b56b7..791796e 100644
--- a/src/Gtk/Widgets.dcl
+++ b/src/Gtk/Widgets.dcl
@@ -6,7 +6,8 @@ from System._Pointer import :: Pointer
from Gtk.State import :: State, :: StateT, :: Identity, :: GtkState
from Gtk.Types import :: GtkDirection, :: GtkExpand, :: GtkLabel,
- :: GtkOrientation, :: GtkPanedHandleWidth, :: GtkResize, :: GtkShrink
+ :: GtkMargins, :: GtkOrientation, :: GtkPanedHandleWidth, :: GtkResize,
+ :: GtkShrink
class ptr a :: !a -> Pointer
@@ -17,6 +18,8 @@ class gtkWidget a :: !a -> GtkWidget
instance gtkWidget GtkWidget
instance ptr GtkWidget
+setMargins :: !GtkMargins !w -> State GtkState () | gtkWidget w
+
:: GtkContainer
class gtkContainer a :: !a -> GtkContainer
diff --git a/src/Gtk/Widgets.icl b/src/Gtk/Widgets.icl
index d9f7a59..1a56764 100644
--- a/src/Gtk/Widgets.icl
+++ b/src/Gtk/Widgets.icl
@@ -19,6 +19,14 @@ import Gtk.Types
instance gtkWidget GtkWidget where gtkWidget w = w
instance ptr GtkWidget where ptr w = w
+setMargins :: !GtkMargins !w -> State GtkState () | gtkWidget w
+setMargins {left,top,right,bottom} widget` =
+ let widget = gtkWidget widget` in
+ toState ('I'.gtk_widget_set_margin_left widget left) >>|
+ toState ('I'.gtk_widget_set_margin_top widget top) >>|
+ toState ('I'.gtk_widget_set_margin_right widget right) >>|
+ toState ('I'.gtk_widget_set_margin_bottom widget bottom)
+
show :: !w -> State GtkState w | gtkWidget w
show widget = toState ('I'.gtk_widget_show (gtkWidget widget)) >>| pure widget