{- | 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.ToggleAction ( -- * Exported types ToggleAction(..) , ToggleActionK , toToggleAction , noToggleAction , -- * Methods -- ** toggleActionGetActive toggleActionGetActive , -- ** toggleActionGetDrawAsRadio toggleActionGetDrawAsRadio , -- ** toggleActionNew toggleActionNew , -- ** toggleActionSetActive toggleActionSetActive , -- ** toggleActionSetDrawAsRadio toggleActionSetDrawAsRadio , -- ** toggleActionToggled toggleActionToggled , -- * Properties -- ** Active ToggleActionActivePropertyInfo , constructToggleActionActive , getToggleActionActive , setToggleActionActive , -- ** DrawAsRadio ToggleActionDrawAsRadioPropertyInfo , constructToggleActionDrawAsRadio , getToggleActionDrawAsRadio , setToggleActionDrawAsRadio , -- * Signals -- ** Toggled ToggleActionToggledCallback , ToggleActionToggledCallbackC , ToggleActionToggledSignalInfo , afterToggleActionToggled , mkToggleActionToggledCallback , noToggleActionToggledCallback , onToggleActionToggled , toggleActionToggledCallbackWrapper , toggleActionToggledClosure , ) 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 ToggleAction = ToggleAction (ForeignPtr ToggleAction) foreign import ccall "gtk_toggle_action_get_type" c_gtk_toggle_action_get_type :: IO GType type instance ParentTypes ToggleAction = ToggleActionParentTypes type ToggleActionParentTypes = '[Action, GObject.Object, Buildable] instance GObject ToggleAction where gobjectIsInitiallyUnowned _ = False gobjectType _ = c_gtk_toggle_action_get_type class GObject o => ToggleActionK o instance (GObject o, IsDescendantOf ToggleAction o) => ToggleActionK o toToggleAction :: ToggleActionK o => o -> IO ToggleAction toToggleAction = unsafeCastTo ToggleAction noToggleAction :: Maybe ToggleAction noToggleAction = Nothing -- signal ToggleAction::toggled type ToggleActionToggledCallback = IO () noToggleActionToggledCallback :: Maybe ToggleActionToggledCallback noToggleActionToggledCallback = Nothing type ToggleActionToggledCallbackC = Ptr () -> -- object Ptr () -> -- user_data IO () foreign import ccall "wrapper" mkToggleActionToggledCallback :: ToggleActionToggledCallbackC -> IO (FunPtr ToggleActionToggledCallbackC) toggleActionToggledClosure :: ToggleActionToggledCallback -> IO Closure toggleActionToggledClosure cb = newCClosure =<< mkToggleActionToggledCallback wrapped where wrapped = toggleActionToggledCallbackWrapper cb toggleActionToggledCallbackWrapper :: ToggleActionToggledCallback -> Ptr () -> Ptr () -> IO () toggleActionToggledCallbackWrapper _cb _ _ = do _cb onToggleActionToggled :: (GObject a, MonadIO m) => a -> ToggleActionToggledCallback -> m SignalHandlerId onToggleActionToggled obj cb = liftIO $ connectToggleActionToggled obj cb SignalConnectBefore afterToggleActionToggled :: (GObject a, MonadIO m) => a -> ToggleActionToggledCallback -> m SignalHandlerId afterToggleActionToggled obj cb = connectToggleActionToggled obj cb SignalConnectAfter connectToggleActionToggled :: (GObject a, MonadIO m) => a -> ToggleActionToggledCallback -> SignalConnectMode -> m SignalHandlerId connectToggleActionToggled obj cb after = liftIO $ do cb' <- mkToggleActionToggledCallback (toggleActionToggledCallbackWrapper cb) connectSignalFunPtr obj "toggled" cb' after -- VVV Prop "active" -- Type: TBasicType TBoolean -- Flags: [PropertyReadable,PropertyWritable] getToggleActionActive :: (MonadIO m, ToggleActionK o) => o -> m Bool getToggleActionActive obj = liftIO $ getObjectPropertyBool obj "active" setToggleActionActive :: (MonadIO m, ToggleActionK o) => o -> Bool -> m () setToggleActionActive obj val = liftIO $ setObjectPropertyBool obj "active" val constructToggleActionActive :: Bool -> IO ([Char], GValue) constructToggleActionActive val = constructObjectPropertyBool "active" val data ToggleActionActivePropertyInfo instance AttrInfo ToggleActionActivePropertyInfo where type AttrAllowedOps ToggleActionActivePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet] type AttrSetTypeConstraint ToggleActionActivePropertyInfo = (~) Bool type AttrBaseTypeConstraint ToggleActionActivePropertyInfo = ToggleActionK type AttrGetType ToggleActionActivePropertyInfo = Bool type AttrLabel ToggleActionActivePropertyInfo = "ToggleAction::active" attrGet _ = getToggleActionActive attrSet _ = setToggleActionActive attrConstruct _ = constructToggleActionActive -- VVV Prop "draw-as-radio" -- Type: TBasicType TBoolean -- Flags: [PropertyReadable,PropertyWritable] getToggleActionDrawAsRadio :: (MonadIO m, ToggleActionK o) => o -> m Bool getToggleActionDrawAsRadio obj = liftIO $ getObjectPropertyBool obj "draw-as-radio" setToggleActionDrawAsRadio :: (MonadIO m, ToggleActionK o) => o -> Bool -> m () setToggleActionDrawAsRadio obj val = liftIO $ setObjectPropertyBool obj "draw-as-radio" val constructToggleActionDrawAsRadio :: Bool -> IO ([Char], GValue) constructToggleActionDrawAsRadio val = constructObjectPropertyBool "draw-as-radio" val data ToggleActionDrawAsRadioPropertyInfo instance AttrInfo ToggleActionDrawAsRadioPropertyInfo where type AttrAllowedOps ToggleActionDrawAsRadioPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet] type AttrSetTypeConstraint ToggleActionDrawAsRadioPropertyInfo = (~) Bool type AttrBaseTypeConstraint ToggleActionDrawAsRadioPropertyInfo = ToggleActionK type AttrGetType ToggleActionDrawAsRadioPropertyInfo = Bool type AttrLabel ToggleActionDrawAsRadioPropertyInfo = "ToggleAction::draw-as-radio" attrGet _ = getToggleActionDrawAsRadio attrSet _ = setToggleActionDrawAsRadio attrConstruct _ = constructToggleActionDrawAsRadio type instance AttributeList ToggleAction = ToggleActionAttributeList type ToggleActionAttributeList = ('[ '("action-group", ActionActionGroupPropertyInfo), '("active", ToggleActionActivePropertyInfo), '("always-show-image", ActionAlwaysShowImagePropertyInfo), '("draw-as-radio", ToggleActionDrawAsRadioPropertyInfo), '("gicon", ActionGiconPropertyInfo), '("hide-if-empty", ActionHideIfEmptyPropertyInfo), '("icon-name", ActionIconNamePropertyInfo), '("is-important", ActionIsImportantPropertyInfo), '("label", ActionLabelPropertyInfo), '("name", ActionNamePropertyInfo), '("sensitive", ActionSensitivePropertyInfo), '("short-label", ActionShortLabelPropertyInfo), '("stock-id", ActionStockIdPropertyInfo), '("tooltip", ActionTooltipPropertyInfo), '("visible", ActionVisiblePropertyInfo), '("visible-horizontal", ActionVisibleHorizontalPropertyInfo), '("visible-overflown", ActionVisibleOverflownPropertyInfo), '("visible-vertical", ActionVisibleVerticalPropertyInfo)] :: [(Symbol, *)]) data ToggleActionToggledSignalInfo instance SignalInfo ToggleActionToggledSignalInfo where type HaskellCallbackType ToggleActionToggledSignalInfo = ToggleActionToggledCallback connectSignal _ = connectToggleActionToggled type instance SignalList ToggleAction = ToggleActionSignalList type ToggleActionSignalList = ('[ '("activate", ActionActivateSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("toggled", ToggleActionToggledSignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)]) -- method ToggleAction::new -- method type : Constructor -- Args : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "label", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "tooltip", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "stock_id", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "label", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "tooltip", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "stock_id", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- returnType : TInterface "Gtk" "ToggleAction" -- throws : False -- Skip return : False foreign import ccall "gtk_toggle_action_new" gtk_toggle_action_new :: CString -> -- name : TBasicType TUTF8 CString -> -- label : TBasicType TUTF8 CString -> -- tooltip : TBasicType TUTF8 CString -> -- stock_id : TBasicType TUTF8 IO (Ptr ToggleAction) {-# DEPRECATED toggleActionNew ["(Since version 3.10)"]#-} toggleActionNew :: (MonadIO m) => T.Text -> -- name Maybe (T.Text) -> -- label Maybe (T.Text) -> -- tooltip Maybe (T.Text) -> -- stock_id m ToggleAction toggleActionNew name label tooltip stock_id = liftIO $ do name' <- textToCString name maybeLabel <- case label of Nothing -> return nullPtr Just jLabel -> do jLabel' <- textToCString jLabel return jLabel' maybeTooltip <- case tooltip of Nothing -> return nullPtr Just jTooltip -> do jTooltip' <- textToCString jTooltip return jTooltip' maybeStock_id <- case stock_id of Nothing -> return nullPtr Just jStock_id -> do jStock_id' <- textToCString jStock_id return jStock_id' result <- gtk_toggle_action_new name' maybeLabel maybeTooltip maybeStock_id checkUnexpectedReturnNULL "gtk_toggle_action_new" result result' <- (wrapObject ToggleAction) result freeMem name' freeMem maybeLabel freeMem maybeTooltip freeMem maybeStock_id return result' -- method ToggleAction::get_active -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "ToggleAction", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "ToggleAction", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- returnType : TBasicType TBoolean -- throws : False -- Skip return : False foreign import ccall "gtk_toggle_action_get_active" gtk_toggle_action_get_active :: Ptr ToggleAction -> -- _obj : TInterface "Gtk" "ToggleAction" IO CInt {-# DEPRECATED toggleActionGetActive ["(Since version 3.10)"]#-} toggleActionGetActive :: (MonadIO m, ToggleActionK a) => a -> -- _obj m Bool toggleActionGetActive _obj = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj result <- gtk_toggle_action_get_active _obj' let result' = (/= 0) result touchManagedPtr _obj return result' -- method ToggleAction::get_draw_as_radio -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "ToggleAction", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "ToggleAction", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- returnType : TBasicType TBoolean -- throws : False -- Skip return : False foreign import ccall "gtk_toggle_action_get_draw_as_radio" gtk_toggle_action_get_draw_as_radio :: Ptr ToggleAction -> -- _obj : TInterface "Gtk" "ToggleAction" IO CInt {-# DEPRECATED toggleActionGetDrawAsRadio ["(Since version 3.10)"]#-} toggleActionGetDrawAsRadio :: (MonadIO m, ToggleActionK a) => a -> -- _obj m Bool toggleActionGetDrawAsRadio _obj = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj result <- gtk_toggle_action_get_draw_as_radio _obj' let result' = (/= 0) result touchManagedPtr _obj return result' -- method ToggleAction::set_active -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "ToggleAction", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "is_active", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "ToggleAction", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "is_active", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- returnType : TBasicType TVoid -- throws : False -- Skip return : False foreign import ccall "gtk_toggle_action_set_active" gtk_toggle_action_set_active :: Ptr ToggleAction -> -- _obj : TInterface "Gtk" "ToggleAction" CInt -> -- is_active : TBasicType TBoolean IO () {-# DEPRECATED toggleActionSetActive ["(Since version 3.10)"]#-} toggleActionSetActive :: (MonadIO m, ToggleActionK a) => a -> -- _obj Bool -> -- is_active m () toggleActionSetActive _obj is_active = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj let is_active' = (fromIntegral . fromEnum) is_active gtk_toggle_action_set_active _obj' is_active' touchManagedPtr _obj return () -- method ToggleAction::set_draw_as_radio -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "ToggleAction", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "draw_as_radio", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "ToggleAction", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "draw_as_radio", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- returnType : TBasicType TVoid -- throws : False -- Skip return : False foreign import ccall "gtk_toggle_action_set_draw_as_radio" gtk_toggle_action_set_draw_as_radio :: Ptr ToggleAction -> -- _obj : TInterface "Gtk" "ToggleAction" CInt -> -- draw_as_radio : TBasicType TBoolean IO () {-# DEPRECATED toggleActionSetDrawAsRadio ["(Since version 3.10)"]#-} toggleActionSetDrawAsRadio :: (MonadIO m, ToggleActionK a) => a -> -- _obj Bool -> -- draw_as_radio m () toggleActionSetDrawAsRadio _obj draw_as_radio = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj let draw_as_radio' = (fromIntegral . fromEnum) draw_as_radio gtk_toggle_action_set_draw_as_radio _obj' draw_as_radio' touchManagedPtr _obj return () -- method ToggleAction::toggled -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "ToggleAction", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "ToggleAction", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- returnType : TBasicType TVoid -- throws : False -- Skip return : False foreign import ccall "gtk_toggle_action_toggled" gtk_toggle_action_toggled :: Ptr ToggleAction -> -- _obj : TInterface "Gtk" "ToggleAction" IO () {-# DEPRECATED toggleActionToggled ["(Since version 3.10)"]#-} toggleActionToggled :: (MonadIO m, ToggleActionK a) => a -> -- _obj m () toggleActionToggled _obj = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj gtk_toggle_action_toggled _obj' touchManagedPtr _obj return ()