diff options
Diffstat (limited to 'src/Gtk/Widgets.icl')
-rw-r--r-- | src/Gtk/Widgets.icl | 10 |
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 |