{-# LINE 1 "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
{-# LINE 23 "src/Stopgap/Graphics/UI/Gtk/Window.hsc" #-}
data WTag
newtype W = W (Ptr WTag) deriving Int -> W -> ShowS
[W] -> ShowS
W -> String
(Int -> W -> ShowS) -> (W -> String) -> ([W] -> ShowS) -> Show W
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> W -> ShowS
showsPrec :: Int -> W -> ShowS
$cshow :: W -> String
show :: W -> String
$cshowList :: [W] -> ShowS
showList :: [W] -> ShowS
Show
instance IsPtr W where type Tag W = WTag; toPtr :: W -> Ptr (Tag W)
toPtr (W Ptr WTag
p) = Ptr (Tag W)
Ptr WTag
p; fromPtr :: Ptr (Tag W) -> W
fromPtr = Ptr (Tag W) -> W
Ptr WTag -> W
W
instance G.Object.IsO W where toO :: W -> O
toO (W Ptr WTag
p) = Ptr OTag -> O
G.Object.O (Ptr OTag -> O) -> Ptr OTag -> O
forall a b. (a -> b) -> a -> b
$ Ptr WTag -> Ptr OTag
forall a b. Ptr a -> Ptr b
castPtr Ptr WTag
p
instance Widget.IsW W where toW :: W -> W
toW (W Ptr WTag
p) = Ptr WTag -> W
Widget.W (Ptr WTag -> W) -> Ptr WTag -> W
forall a b. (a -> b) -> a -> b
$ Ptr WTag -> Ptr WTag
forall a b. Ptr a -> Ptr b
castPtr Ptr WTag
p
instance Container.IsC W where toC :: W -> C
toC (W Ptr WTag
p) = Ptr CTag -> C
Container.C (Ptr CTag -> C) -> Ptr CTag -> C
forall a b. (a -> b) -> a -> b
$ Ptr WTag -> Ptr CTag
forall a b. Ptr a -> Ptr b
castPtr Ptr WTag
p
new :: Type -> IO W
new :: Type -> IO W
new = Type -> IO W
c_gtk_window_new
foreign import ccall "gtk_window_new" c_gtk_window_new :: Type -> IO W
close :: W -> IO ()
close :: W -> IO ()
close = W -> IO ()
c_gtk_window_close
foreign import ccall "gtk_window_close" c_gtk_window_close :: W -> IO ()