packages feed

moffy-samples-gtk4-run-0.1.0.0: src/Stopgap/Graphics/UI/Gtk/ScrolledWindow.hsc

{-# LANGUAGE ImportQualifiedPost #-}
{-# LANGUAGE ViewPatterns #-}
{-# LANGUAGE TypeFamilies #-}
{-# OPTIONS_GHC -Wall -fno-warn-tabs #-}

module Stopgap.Graphics.UI.Gtk.ScrolledWindow where

import Foreign.Ptr
import Stopgap.Data.Ptr

import Stopgap.Graphics.UI.Gtk.Widget qualified as Gtk.Widget
import Stopgap.System.GLib.Object qualified as G.Object

data STag

newtype S = S (Ptr STag) deriving Show

instance IsPtr S where type Tag S = STag; fromPtr = S; toPtr (S p) = p
instance G.Object.IsO S where toO (S p) = G.Object.O $ castPtr p
instance Gtk.Widget.IsW S where toW (S p) = Gtk.Widget.W $ castPtr p

new :: IO S
new = S <$> c_gtk_scrolled_window_new

foreign import ccall "gtk_scrolled_window_new" c_gtk_scrolled_window_new ::
	IO (Ptr STag)

setChild :: Gtk.Widget.IsW w => S -> w -> IO ()
setChild (S s) (Gtk.Widget.toW -> Gtk.Widget.W w) =
	c_gtk_scrolled_window_set_child s w

foreign import ccall "gtk_scrolled_window_set_child"
	c_gtk_scrolled_window_set_child ::
	Ptr STag -> Ptr Gtk.Widget.WTag -> IO ()