summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCamil Staps2019-10-29 17:29:09 +0100
committerCamil Staps2019-10-29 17:29:09 +0100
commitcf8252abf24fa76c0a6eba362f66b1f1f3358fa3 (patch)
treec6e15e96c2a1da9ced93de41082bb02aa0de2461
parentFix toInt and fromInt for GtkResponse (diff)
Add general instance tune w GtkSizeRequest | gtkWidget w, remove size parameter on windows and popups
-rw-r--r--src/Gtk/Types.dcl2
-rw-r--r--src/Gtk/Widgets.dcl8
-rw-r--r--src/Gtk/Widgets.icl22
3 files changed, 20 insertions, 12 deletions
diff --git a/src/Gtk/Types.dcl b/src/Gtk/Types.dcl
index eaaa5a8..2c18c8f 100644
--- a/src/Gtk/Types.dcl
+++ b/src/Gtk/Types.dcl
@@ -163,6 +163,8 @@ instance toInt GtkScrollbarPolicy
= Shrink
| NoShrink
+:: GtkSizeRequest =: GtkSizeRequest (Int,Int)
+
:: GtkSpacing =: Spacing Int
:: GtkStylePriority
diff --git a/src/Gtk/Widgets.dcl b/src/Gtk/Widgets.dcl
index 4d684ef..cbc8148 100644
--- a/src/Gtk/Widgets.dcl
+++ b/src/Gtk/Widgets.dcl
@@ -14,7 +14,8 @@ from Gtk.Types import
:: GtkExpand, :: GtkFileChooserAction, :: GtkMargins, :: GtkMessageType,
:: GtkModal, :: GtkOrientation, :: GtkPanedHandleWidth, :: GtkResize,
:: GtkResponse, :: GtkScrollbarPolicy, :: GtkSensitivity, :: GtkShrink,
- :: GtkSpacing, :: GtkStylePriority, :: GtkText, :: GtkTitle, :: GtkWrapMode
+ :: GtkSizeRequest, :: GtkSpacing, :: GtkStylePriority, :: GtkText,
+ :: GtkTitle, :: GtkWrapMode
:: GtkAccelGroup =: GtkAccelGroup Pointer
@@ -226,6 +227,7 @@ instance tune w GtkSensitivity | gtkWidget w
instance tune w (GtkAlign,GtkAlign) | gtkWidget w
instance tune w (GtkExpand,GtkExpand) | gtkWidget w
instance tune w GtkAccelerator | gtkWidget w
+instance tune w GtkSizeRequest | gtkWidget w
:: GtkWindow =: GtkWindow Pointer
@@ -235,8 +237,8 @@ instance gtkWidget GtkWindow
instance gtkContainer GtkWindow
instance gtkWindow GtkWindow
-newPopup :: !(Maybe (Int,Int)) -> GtkM GtkWindow
-newWindow :: !(Maybe (Int,Int)) -> GtkM GtkWindow
+newPopup :: GtkM GtkWindow
+newWindow :: GtkM GtkWindow
addCSSFromFile :: !GtkStylePriority !FilePath !GtkWindow -> GtkM Bool
instance tune w GtkTitle | gtkWindow w
diff --git a/src/Gtk/Widgets.icl b/src/Gtk/Widgets.icl
index 9500b5f..b59006e 100644
--- a/src/Gtk/Widgets.icl
+++ b/src/Gtk/Widgets.icl
@@ -534,22 +534,26 @@ where
toState (gtk_widget_add_accelerator w "activate" ag (gdk_keyval_from_name key) (toInt mask) 1) >>|
pure widget
+instance tune w GtkSizeRequest | gtkWidget w
+where
+ tune (GtkSizeRequest (width,height)) widget =
+ let (GtkWidget w) = gtkWidget widget in
+ toState (gtk_widget_set_size_request w width height) >>|
+ pure widget
+
instance gtkWidget GtkWindow where gtkWidget (GtkWindow w) = GtkWidget w
instance gtkContainer GtkWindow where gtkContainer (GtkWindow w) = GtkContainer w
instance gtkWindow GtkWindow where gtkWindow w = w
-newPopup :: !(Maybe (Int,Int)) -> GtkM GtkWindow
-newPopup size = new_window_or_popup True size
+newPopup :: -> GtkM GtkWindow
+newPopup = new_window_or_popup True
-newWindow :: !(Maybe (Int,Int)) -> GtkM GtkWindow
-newWindow size = new_window_or_popup False size
+newWindow :: GtkM GtkWindow
+newWindow = new_window_or_popup False
-new_window_or_popup :: !Bool !(Maybe (Int,Int)) -> GtkM GtkWindow
-new_window_or_popup is_popup size =
+new_window_or_popup :: !Bool -> GtkM GtkWindow
+new_window_or_popup is_popup =
toStateR (gtk_window_new is_popup) >>= \w ->
- (case size of
- Nothing -> pure ()
- Just (h,v) -> toState (gtk_widget_set_size_request w h v)) >>|
show (GtkWindow w)
instance tune w GtkTitle | gtkWindow w