{- | Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte License : LGPL-2.1 Maintainer : Iñaki García Etxebarria (garetxe@gmail.com) -} module GI.Gtk.Objects.TextTagTable ( -- * Exported types TextTagTable(..) , TextTagTableK , toTextTagTable , noTextTagTable , -- * Methods -- ** textTagTableAdd textTagTableAdd , -- ** textTagTableForeach textTagTableForeach , -- ** textTagTableGetSize textTagTableGetSize , -- ** textTagTableLookup textTagTableLookup , -- ** textTagTableNew textTagTableNew , -- ** textTagTableRemove textTagTableRemove , -- * Signals -- ** TagAdded TextTagTableTagAddedCallback , TextTagTableTagAddedCallbackC , TextTagTableTagAddedSignalInfo , afterTextTagTableTagAdded , mkTextTagTableTagAddedCallback , noTextTagTableTagAddedCallback , onTextTagTableTagAdded , textTagTableTagAddedCallbackWrapper , textTagTableTagAddedClosure , -- ** TagChanged TextTagTableTagChangedCallback , TextTagTableTagChangedCallbackC , TextTagTableTagChangedSignalInfo , afterTextTagTableTagChanged , mkTextTagTableTagChangedCallback , noTextTagTableTagChangedCallback , onTextTagTableTagChanged , textTagTableTagChangedCallbackWrapper , textTagTableTagChangedClosure , -- ** TagRemoved TextTagTableTagRemovedCallback , TextTagTableTagRemovedCallbackC , TextTagTableTagRemovedSignalInfo , afterTextTagTableTagRemoved , mkTextTagTableTagRemovedCallback , noTextTagTableTagRemovedCallback , onTextTagTableTagRemoved , textTagTableTagRemovedCallbackWrapper , textTagTableTagRemovedClosure , ) where import Prelude () import Data.GI.Base.ShortPrelude import qualified Data.Text as T import qualified Data.ByteString.Char8 as B import qualified Data.Map as Map import GI.Gtk.Types import GI.Gtk.Callbacks import qualified GI.GObject as GObject newtype TextTagTable = TextTagTable (ForeignPtr TextTagTable) foreign import ccall "gtk_text_tag_table_get_type" c_gtk_text_tag_table_get_type :: IO GType type instance ParentTypes TextTagTable = TextTagTableParentTypes type TextTagTableParentTypes = '[GObject.Object, Buildable] instance GObject TextTagTable where gobjectIsInitiallyUnowned _ = False gobjectType _ = c_gtk_text_tag_table_get_type class GObject o => TextTagTableK o instance (GObject o, IsDescendantOf TextTagTable o) => TextTagTableK o toTextTagTable :: TextTagTableK o => o -> IO TextTagTable toTextTagTable = unsafeCastTo TextTagTable noTextTagTable :: Maybe TextTagTable noTextTagTable = Nothing -- signal TextTagTable::tag-added type TextTagTableTagAddedCallback = TextTag -> IO () noTextTagTableTagAddedCallback :: Maybe TextTagTableTagAddedCallback noTextTagTableTagAddedCallback = Nothing type TextTagTableTagAddedCallbackC = Ptr () -> -- object Ptr TextTag -> Ptr () -> -- user_data IO () foreign import ccall "wrapper" mkTextTagTableTagAddedCallback :: TextTagTableTagAddedCallbackC -> IO (FunPtr TextTagTableTagAddedCallbackC) textTagTableTagAddedClosure :: TextTagTableTagAddedCallback -> IO Closure textTagTableTagAddedClosure cb = newCClosure =<< mkTextTagTableTagAddedCallback wrapped where wrapped = textTagTableTagAddedCallbackWrapper cb textTagTableTagAddedCallbackWrapper :: TextTagTableTagAddedCallback -> Ptr () -> Ptr TextTag -> Ptr () -> IO () textTagTableTagAddedCallbackWrapper _cb _ tag _ = do tag' <- (newObject TextTag) tag _cb tag' onTextTagTableTagAdded :: (GObject a, MonadIO m) => a -> TextTagTableTagAddedCallback -> m SignalHandlerId onTextTagTableTagAdded obj cb = liftIO $ connectTextTagTableTagAdded obj cb SignalConnectBefore afterTextTagTableTagAdded :: (GObject a, MonadIO m) => a -> TextTagTableTagAddedCallback -> m SignalHandlerId afterTextTagTableTagAdded obj cb = connectTextTagTableTagAdded obj cb SignalConnectAfter connectTextTagTableTagAdded :: (GObject a, MonadIO m) => a -> TextTagTableTagAddedCallback -> SignalConnectMode -> m SignalHandlerId connectTextTagTableTagAdded obj cb after = liftIO $ do cb' <- mkTextTagTableTagAddedCallback (textTagTableTagAddedCallbackWrapper cb) connectSignalFunPtr obj "tag-added" cb' after -- signal TextTagTable::tag-changed type TextTagTableTagChangedCallback = TextTag -> Bool -> IO () noTextTagTableTagChangedCallback :: Maybe TextTagTableTagChangedCallback noTextTagTableTagChangedCallback = Nothing type TextTagTableTagChangedCallbackC = Ptr () -> -- object Ptr TextTag -> CInt -> Ptr () -> -- user_data IO () foreign import ccall "wrapper" mkTextTagTableTagChangedCallback :: TextTagTableTagChangedCallbackC -> IO (FunPtr TextTagTableTagChangedCallbackC) textTagTableTagChangedClosure :: TextTagTableTagChangedCallback -> IO Closure textTagTableTagChangedClosure cb = newCClosure =<< mkTextTagTableTagChangedCallback wrapped where wrapped = textTagTableTagChangedCallbackWrapper cb textTagTableTagChangedCallbackWrapper :: TextTagTableTagChangedCallback -> Ptr () -> Ptr TextTag -> CInt -> Ptr () -> IO () textTagTableTagChangedCallbackWrapper _cb _ tag size_changed _ = do tag' <- (newObject TextTag) tag let size_changed' = (/= 0) size_changed _cb tag' size_changed' onTextTagTableTagChanged :: (GObject a, MonadIO m) => a -> TextTagTableTagChangedCallback -> m SignalHandlerId onTextTagTableTagChanged obj cb = liftIO $ connectTextTagTableTagChanged obj cb SignalConnectBefore afterTextTagTableTagChanged :: (GObject a, MonadIO m) => a -> TextTagTableTagChangedCallback -> m SignalHandlerId afterTextTagTableTagChanged obj cb = connectTextTagTableTagChanged obj cb SignalConnectAfter connectTextTagTableTagChanged :: (GObject a, MonadIO m) => a -> TextTagTableTagChangedCallback -> SignalConnectMode -> m SignalHandlerId connectTextTagTableTagChanged obj cb after = liftIO $ do cb' <- mkTextTagTableTagChangedCallback (textTagTableTagChangedCallbackWrapper cb) connectSignalFunPtr obj "tag-changed" cb' after -- signal TextTagTable::tag-removed type TextTagTableTagRemovedCallback = TextTag -> IO () noTextTagTableTagRemovedCallback :: Maybe TextTagTableTagRemovedCallback noTextTagTableTagRemovedCallback = Nothing type TextTagTableTagRemovedCallbackC = Ptr () -> -- object Ptr TextTag -> Ptr () -> -- user_data IO () foreign import ccall "wrapper" mkTextTagTableTagRemovedCallback :: TextTagTableTagRemovedCallbackC -> IO (FunPtr TextTagTableTagRemovedCallbackC) textTagTableTagRemovedClosure :: TextTagTableTagRemovedCallback -> IO Closure textTagTableTagRemovedClosure cb = newCClosure =<< mkTextTagTableTagRemovedCallback wrapped where wrapped = textTagTableTagRemovedCallbackWrapper cb textTagTableTagRemovedCallbackWrapper :: TextTagTableTagRemovedCallback -> Ptr () -> Ptr TextTag -> Ptr () -> IO () textTagTableTagRemovedCallbackWrapper _cb _ tag _ = do tag' <- (newObject TextTag) tag _cb tag' onTextTagTableTagRemoved :: (GObject a, MonadIO m) => a -> TextTagTableTagRemovedCallback -> m SignalHandlerId onTextTagTableTagRemoved obj cb = liftIO $ connectTextTagTableTagRemoved obj cb SignalConnectBefore afterTextTagTableTagRemoved :: (GObject a, MonadIO m) => a -> TextTagTableTagRemovedCallback -> m SignalHandlerId afterTextTagTableTagRemoved obj cb = connectTextTagTableTagRemoved obj cb SignalConnectAfter connectTextTagTableTagRemoved :: (GObject a, MonadIO m) => a -> TextTagTableTagRemovedCallback -> SignalConnectMode -> m SignalHandlerId connectTextTagTableTagRemoved obj cb after = liftIO $ do cb' <- mkTextTagTableTagRemovedCallback (textTagTableTagRemovedCallbackWrapper cb) connectSignalFunPtr obj "tag-removed" cb' after type instance AttributeList TextTagTable = TextTagTableAttributeList type TextTagTableAttributeList = ('[ ] :: [(Symbol, *)]) data TextTagTableTagAddedSignalInfo instance SignalInfo TextTagTableTagAddedSignalInfo where type HaskellCallbackType TextTagTableTagAddedSignalInfo = TextTagTableTagAddedCallback connectSignal _ = connectTextTagTableTagAdded data TextTagTableTagChangedSignalInfo instance SignalInfo TextTagTableTagChangedSignalInfo where type HaskellCallbackType TextTagTableTagChangedSignalInfo = TextTagTableTagChangedCallback connectSignal _ = connectTextTagTableTagChanged data TextTagTableTagRemovedSignalInfo instance SignalInfo TextTagTableTagRemovedSignalInfo where type HaskellCallbackType TextTagTableTagRemovedSignalInfo = TextTagTableTagRemovedCallback connectSignal _ = connectTextTagTableTagRemoved type instance SignalList TextTagTable = TextTagTableSignalList type TextTagTableSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo), '("tag-added", TextTagTableTagAddedSignalInfo), '("tag-changed", TextTagTableTagChangedSignalInfo), '("tag-removed", TextTagTableTagRemovedSignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)]) -- method TextTagTable::new -- method type : Constructor -- Args : [] -- Lengths : [] -- hInArgs : [] -- returnType : TInterface "Gtk" "TextTagTable" -- throws : False -- Skip return : False foreign import ccall "gtk_text_tag_table_new" gtk_text_tag_table_new :: IO (Ptr TextTagTable) textTagTableNew :: (MonadIO m) => m TextTagTable textTagTableNew = liftIO $ do result <- gtk_text_tag_table_new checkUnexpectedReturnNULL "gtk_text_tag_table_new" result result' <- (wrapObject TextTagTable) result return result' -- method TextTagTable::add -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TextTagTable", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "tag", argType = TInterface "Gtk" "TextTag", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TextTagTable", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "tag", argType = TInterface "Gtk" "TextTag", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- returnType : TBasicType TBoolean -- throws : False -- Skip return : False foreign import ccall "gtk_text_tag_table_add" gtk_text_tag_table_add :: Ptr TextTagTable -> -- _obj : TInterface "Gtk" "TextTagTable" Ptr TextTag -> -- tag : TInterface "Gtk" "TextTag" IO CInt textTagTableAdd :: (MonadIO m, TextTagTableK a, TextTagK b) => a -> -- _obj b -> -- tag m Bool textTagTableAdd _obj tag = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj let tag' = unsafeManagedPtrCastPtr tag result <- gtk_text_tag_table_add _obj' tag' let result' = (/= 0) result touchManagedPtr _obj touchManagedPtr tag return result' -- method TextTagTable::foreach -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TextTagTable", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "func", argType = TInterface "Gtk" "TextTagTableForeach", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeCall, argClosure = 2, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TextTagTable", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "func", argType = TInterface "Gtk" "TextTagTableForeach", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeCall, argClosure = 2, argDestroy = -1, transfer = TransferNothing}] -- returnType : TBasicType TVoid -- throws : False -- Skip return : False foreign import ccall "gtk_text_tag_table_foreach" gtk_text_tag_table_foreach :: Ptr TextTagTable -> -- _obj : TInterface "Gtk" "TextTagTable" FunPtr TextTagTableForeachC -> -- func : TInterface "Gtk" "TextTagTableForeach" Ptr () -> -- data : TBasicType TVoid IO () textTagTableForeach :: (MonadIO m, TextTagTableK a) => a -> -- _obj TextTagTableForeach -> -- func m () textTagTableForeach _obj func = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj func' <- mkTextTagTableForeach (textTagTableForeachWrapper Nothing func) let data_ = nullPtr gtk_text_tag_table_foreach _obj' func' data_ safeFreeFunPtr $ castFunPtrToPtr func' touchManagedPtr _obj return () -- method TextTagTable::get_size -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TextTagTable", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TextTagTable", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- returnType : TBasicType TInt32 -- throws : False -- Skip return : False foreign import ccall "gtk_text_tag_table_get_size" gtk_text_tag_table_get_size :: Ptr TextTagTable -> -- _obj : TInterface "Gtk" "TextTagTable" IO Int32 textTagTableGetSize :: (MonadIO m, TextTagTableK a) => a -> -- _obj m Int32 textTagTableGetSize _obj = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj result <- gtk_text_tag_table_get_size _obj' touchManagedPtr _obj return result -- method TextTagTable::lookup -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TextTagTable", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TextTagTable", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- returnType : TInterface "Gtk" "TextTag" -- throws : False -- Skip return : False foreign import ccall "gtk_text_tag_table_lookup" gtk_text_tag_table_lookup :: Ptr TextTagTable -> -- _obj : TInterface "Gtk" "TextTagTable" CString -> -- name : TBasicType TUTF8 IO (Ptr TextTag) textTagTableLookup :: (MonadIO m, TextTagTableK a) => a -> -- _obj T.Text -> -- name m TextTag textTagTableLookup _obj name = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj name' <- textToCString name result <- gtk_text_tag_table_lookup _obj' name' checkUnexpectedReturnNULL "gtk_text_tag_table_lookup" result result' <- (newObject TextTag) result touchManagedPtr _obj freeMem name' return result' -- method TextTagTable::remove -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TextTagTable", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "tag", argType = TInterface "Gtk" "TextTag", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TextTagTable", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "tag", argType = TInterface "Gtk" "TextTag", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- returnType : TBasicType TVoid -- throws : False -- Skip return : False foreign import ccall "gtk_text_tag_table_remove" gtk_text_tag_table_remove :: Ptr TextTagTable -> -- _obj : TInterface "Gtk" "TextTagTable" Ptr TextTag -> -- tag : TInterface "Gtk" "TextTag" IO () textTagTableRemove :: (MonadIO m, TextTagTableK a, TextTagK b) => a -> -- _obj b -> -- tag m () textTagTableRemove _obj tag = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj let tag' = unsafeManagedPtrCastPtr tag gtk_text_tag_table_remove _obj' tag' touchManagedPtr _obj touchManagedPtr tag return ()