module Graphics.UI.AppIndicator.Types ( AppIndicator (..), AppIndicatorClass, unAppIndicator, mkAppIndicator, toAppIndicator ) where import Foreign.ForeignPtr (ForeignPtr, castForeignPtr) import Graphics.UI.GtkInternals (objectUnrefFromMainloop) import System.Glib.FFI (FinalizerPtr) import System.Glib.GObject (GObject (..), GObjectClass, toGObject, unGObject, unsafeCastGObject) newtype AppIndicator = AppIndicator (ForeignPtr AppIndicator) deriving (Eq,Ord) unAppIndicator :: AppIndicator -> ForeignPtr AppIndicator unAppIndicator (AppIndicator o) = o mkAppIndicator :: (ForeignPtr AppIndicator -> AppIndicator, FinalizerPtr a) mkAppIndicator = (AppIndicator, objectUnrefFromMainloop) class GObjectClass o => AppIndicatorClass o instance AppIndicatorClass AppIndicator instance GObjectClass AppIndicator where toGObject = GObject . castForeignPtr . unAppIndicator unsafeCastGObject = AppIndicator . castForeignPtr . unGObject toAppIndicator :: AppIndicatorClass o => o -> AppIndicator toAppIndicator = unsafeCastGObject . toGObject