{-# LINE 1 "src/Stopgap/Graphics/UI/Gtk/Widget.hsc" #-}
{-# LANGUAGE ImportQualifiedPost #-}
{-# OPTIONS_GHC -Wall -fno-warn-tabs #-}

module Stopgap.Graphics.UI.Gtk.Widget where

import Foreign.Ptr
import Stopgap.System.GLib.Object qualified as G.Object
import Stopgap.Graphics.UI.Gdk.Event qualified as Gdk.Event
import Stopgap.Graphics.UI.Gdk.Window qualified as Gdk.Window

class G.Object.IsO w => IsW w where toW :: w -> W

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

showAll :: IsW w => w -> IO ()
showAll :: forall w. IsW w => w -> IO ()
showAll = W -> IO ()
c_gtk_widget_show_all (W -> IO ()) -> (w -> W) -> w -> IO ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. w -> W
forall w. IsW w => w -> W
toW

foreign import ccall "gtk_widget_show_all" c_gtk_widget_show_all :: W -> IO ()

addEvents :: IsW w => w -> Gdk.Event.Mask -> IO ()
addEvents :: forall w. IsW w => w -> Mask -> IO ()
addEvents = W -> Mask -> IO ()
c_gtk_widget_add_events (W -> Mask -> IO ()) -> (w -> W) -> w -> Mask -> IO ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. w -> W
forall w. IsW w => w -> W
toW

foreign import ccall "gtk_widget_add_events" c_gtk_widget_add_events ::
	W -> Gdk.Event.Mask -> IO ()

queueDraw :: IsW w => w -> IO ()
queueDraw :: forall w. IsW w => w -> IO ()
queueDraw = W -> IO ()
c_gtk_widget_queue_draw (W -> IO ()) -> (w -> W) -> w -> IO ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. w -> W
forall w. IsW w => w -> W
toW

foreign import ccall "gtk_widget_queue_draw" c_gtk_widget_queue_draw ::
	W -> IO ()

getWindow :: IsW w => w -> IO Gdk.Window.W
getWindow :: forall w. IsW w => w -> IO W
getWindow = W -> IO W
c_gtk_widget_get_window (W -> IO W) -> (w -> W) -> w -> IO W
forall b c a. (b -> c) -> (a -> b) -> a -> c
. w -> W
forall w. IsW w => w -> W
toW

foreign import ccall "gtk_widget_get_window" c_gtk_widget_get_window ::
	W -> IO Gdk.Window.W