summaryrefslogtreecommitdiff
path: root/src/Gtk/Widgets.icl
diff options
context:
space:
mode:
authorCamil Staps2019-10-20 13:37:33 +0200
committerCamil Staps2019-10-20 13:37:33 +0200
commit182eac71699784d3e2a44437452546a4b0c2d995 (patch)
treea0c82a0eea2dd0e023e458ea3f56fcdc4ac43804 /src/Gtk/Widgets.icl
parentMake GtkTextView not editable (diff)
Move position of GtkFrame label; add framed helper combinator
Diffstat (limited to 'src/Gtk/Widgets.icl')
-rw-r--r--src/Gtk/Widgets.icl10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/Gtk/Widgets.icl b/src/Gtk/Widgets.icl
index 5413dd5..d9f7a59 100644
--- a/src/Gtk/Widgets.icl
+++ b/src/Gtk/Widgets.icl
@@ -6,6 +6,8 @@ import StdMaybe
import Control.Monad
import Control.Monad.Identity
import Control.Monad.State
+import Data.Functor
+import Data.Tuple
import System._Pointer
import qualified Gtk.Internal as I
@@ -52,9 +54,17 @@ instance gtkContainer GtkFrame where gtkContainer f = f
newFrame :: !GtkLabel !w -> State GtkState GtkFrame | gtkWidget w
newFrame label widget =
toStateR ('I'.gtk_frame_new (case label of Label l -> Just l; _ -> Nothing)) >>= \frame ->
+ (case label of
+ Label _ -> toState ('I'.gtk_frame_set_label_align frame 0.02 0.5)
+ NoLabel -> pure ()) >>|
addToContainer widget frame >>|
show frame
+framed :: !GtkLabel !(State GtkState w) -> State GtkState (w, GtkFrame) | gtkWidget w
+framed label widgetf =
+ widgetf >>= \widget ->
+ tuple widget <$> newFrame label widget
+
:: GtkPaned :== Pointer
instance gtkWidget GtkPaned where gtkWidget p = p