moffy-samples-gtk4-run-0.1.0.0: src/Stopgap/Graphics/UI/Gtk/ApplicationWindow.hsc
{-# LANGUAGE ImportQualifiedPost #-}
{-# LANGUAGE CApiFFI #-}
{-# LANGUAGE TypeFamilies #-}
{-# OPTIONS_GHC -Wall -fno-warn-tabs #-}
module Stopgap.Graphics.UI.Gtk.ApplicationWindow where
import Foreign.Ptr
import Stopgap.Data.Ptr
import Stopgap.Graphics.UI.Gtk.Widget qualified as Gtk.Widget
import Stopgap.Graphics.UI.Gtk.Window qualified as Gtk.Window
import Stopgap.Graphics.UI.Gtk.Application qualified as Gtk.Application
import Stopgap.System.GLib.Object qualified as G.Object
data ATag
newtype A = A (Ptr ATag) deriving Show
instance IsPtr A where type Tag A = ATag; fromPtr = A; toPtr (A p) = p
instance G.Object.IsO A where toO (A a) = G.Object.O $ castPtr a
instance Gtk.Widget.IsW A where toW (A a) = Gtk.Widget.W $ castPtr a
instance Gtk.Window.IsW A where toW = window
new :: Gtk.Application.A s -> IO A
new (Gtk.Application.A a) = A <$> c_gtk_application_window_new a
foreign import ccall "gtk_application_window_new"
c_gtk_application_window_new ::
Ptr Gtk.Application.ATag -> IO (Ptr ATag)
window :: A -> Gtk.Window.W
window (A a) = Gtk.Window.W $ c_GTK_WINDOW a
foreign import capi "gtk/gtk.h GTK_WINDOW" c_GTK_WINDOW ::
Ptr ATag -> Ptr Gtk.Window.WTag