moffy-samples-gtk3-run-0.1.0.6: src/Stopgap/Graphics/UI/Gtk/Window.hsc
{-# LANGUAGE ImportQualifiedPost #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE PatternSynonyms #-}
{-# OPTIONS_GHC -Wall -fno-warn-tabs #-}
module Stopgap.Graphics.UI.Gtk.Window where
import Foreign.Ptr
import Foreign.C.Enum
import Data.Word
import Stopgap.Data.Ptr
import Stopgap.System.GLib.Object qualified as G.Object
import Stopgap.Graphics.UI.Gtk.Widget qualified as Widget
import Stopgap.Graphics.UI.Gtk.Container qualified as Container
import Stopgap.Graphics.UI.Gdk.Window qualified as Gdk.Window
#include <gtk/gtk.h>
enum "Type" ''#{type GtkWindowType} [''Show, ''Read, ''Eq] [
("Toplevel", #{const GTK_WINDOW_TOPLEVEL}),
("Popup", #{const GTK_WINDOW_POPUP}) ]
data WTag
newtype W = W (Ptr WTag) deriving Show
instance IsPtr W where type Tag W = WTag; toPtr (W p) = p; fromPtr = W
instance G.Object.IsO W where toO (W p) = G.Object.O $ castPtr p
instance Widget.IsW W where toW (W p) = Widget.W $ castPtr p
instance Container.IsC W where toC (W p) = Container.C $ castPtr p
new :: Type -> IO W
new = c_gtk_window_new
foreign import ccall "gtk_window_new" c_gtk_window_new :: Type -> IO W
close :: W -> IO ()
close = c_gtk_window_close
foreign import ccall "gtk_window_close" c_gtk_window_close :: W -> IO ()