module GI.Gtk.Objects.PadController
(
PadController(..) ,
IsPadController ,
toPadController ,
noPadController ,
padControllerNew ,
PadControllerSetActionMethodInfo ,
padControllerSetAction ,
PadControllerSetActionEntriesMethodInfo ,
padControllerSetActionEntries ,
PadControllerActionGroupPropertyInfo ,
constructPadControllerActionGroup ,
getPadControllerActionGroup ,
padControllerActionGroup ,
PadControllerPadPropertyInfo ,
constructPadControllerPad ,
getPadControllerPad ,
padControllerPad ,
) where
import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P
import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GI.GObject.Objects.Object as GObject.Object
import qualified GI.Gdk.Objects.Device as Gdk.Device
import qualified GI.Gio.Interfaces.ActionGroup as Gio.ActionGroup
import qualified GI.Gtk.Enums as Gtk.Enums
import qualified GI.Gtk.Objects.EventController as Gtk.EventController
import qualified GI.Gtk.Objects.Window as Gtk.Window
import qualified GI.Gtk.Structs.PadActionEntry as Gtk.PadActionEntry
newtype PadController = PadController (ManagedPtr PadController)
foreign import ccall "gtk_pad_controller_get_type"
c_gtk_pad_controller_get_type :: IO GType
instance GObject PadController where
gobjectType _ = c_gtk_pad_controller_get_type
class GObject o => IsPadController o
#if MIN_VERSION_base(4,9,0)
instance (GObject a, O.UnknownAncestorError PadController a) =>
IsPadController a
#endif
instance IsPadController PadController
instance Gtk.EventController.IsEventController PadController
instance GObject.Object.IsObject PadController
toPadController :: IsPadController o => o -> IO PadController
toPadController = unsafeCastTo PadController
noPadController :: Maybe PadController
noPadController = Nothing
type family ResolvePadControllerMethod (t :: Symbol) (o :: *) :: * where
ResolvePadControllerMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
ResolvePadControllerMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
ResolvePadControllerMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
ResolvePadControllerMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
ResolvePadControllerMethod "handleEvent" o = Gtk.EventController.EventControllerHandleEventMethodInfo
ResolvePadControllerMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
ResolvePadControllerMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
ResolvePadControllerMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
ResolvePadControllerMethod "ref" o = GObject.Object.ObjectRefMethodInfo
ResolvePadControllerMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
ResolvePadControllerMethod "replaceData" o = GObject.Object.ObjectReplaceDataMethodInfo
ResolvePadControllerMethod "replaceQdata" o = GObject.Object.ObjectReplaceQdataMethodInfo
ResolvePadControllerMethod "reset" o = Gtk.EventController.EventControllerResetMethodInfo
ResolvePadControllerMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
ResolvePadControllerMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
ResolvePadControllerMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
ResolvePadControllerMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
ResolvePadControllerMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
ResolvePadControllerMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
ResolvePadControllerMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
ResolvePadControllerMethod "getPropagationPhase" o = Gtk.EventController.EventControllerGetPropagationPhaseMethodInfo
ResolvePadControllerMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
ResolvePadControllerMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
ResolvePadControllerMethod "getWidget" o = Gtk.EventController.EventControllerGetWidgetMethodInfo
ResolvePadControllerMethod "setAction" o = PadControllerSetActionMethodInfo
ResolvePadControllerMethod "setActionEntries" o = PadControllerSetActionEntriesMethodInfo
ResolvePadControllerMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
ResolvePadControllerMethod "setPropagationPhase" o = Gtk.EventController.EventControllerSetPropagationPhaseMethodInfo
ResolvePadControllerMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
ResolvePadControllerMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolvePadControllerMethod t PadController, O.MethodInfo info PadController p) => O.IsLabelProxy t (PadController -> p) where
fromLabelProxy _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolvePadControllerMethod t PadController, O.MethodInfo info PadController p) => O.IsLabel t (PadController -> p) where
fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#endif
getPadControllerActionGroup :: (MonadIO m, IsPadController o) => o -> m (Maybe Gio.ActionGroup.ActionGroup)
getPadControllerActionGroup obj = liftIO $ getObjectPropertyObject obj "action-group" Gio.ActionGroup.ActionGroup
constructPadControllerActionGroup :: (IsPadController o, Gio.ActionGroup.IsActionGroup a) => a -> IO (GValueConstruct o)
constructPadControllerActionGroup val = constructObjectPropertyObject "action-group" (Just val)
data PadControllerActionGroupPropertyInfo
instance AttrInfo PadControllerActionGroupPropertyInfo where
type AttrAllowedOps PadControllerActionGroupPropertyInfo = '[ 'AttrConstruct, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint PadControllerActionGroupPropertyInfo = Gio.ActionGroup.IsActionGroup
type AttrBaseTypeConstraint PadControllerActionGroupPropertyInfo = IsPadController
type AttrGetType PadControllerActionGroupPropertyInfo = (Maybe Gio.ActionGroup.ActionGroup)
type AttrLabel PadControllerActionGroupPropertyInfo = "action-group"
type AttrOrigin PadControllerActionGroupPropertyInfo = PadController
attrGet _ = getPadControllerActionGroup
attrSet _ = undefined
attrConstruct _ = constructPadControllerActionGroup
attrClear _ = undefined
getPadControllerPad :: (MonadIO m, IsPadController o) => o -> m (Maybe Gdk.Device.Device)
getPadControllerPad obj = liftIO $ getObjectPropertyObject obj "pad" Gdk.Device.Device
constructPadControllerPad :: (IsPadController o, Gdk.Device.IsDevice a) => a -> IO (GValueConstruct o)
constructPadControllerPad val = constructObjectPropertyObject "pad" (Just val)
data PadControllerPadPropertyInfo
instance AttrInfo PadControllerPadPropertyInfo where
type AttrAllowedOps PadControllerPadPropertyInfo = '[ 'AttrConstruct, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint PadControllerPadPropertyInfo = Gdk.Device.IsDevice
type AttrBaseTypeConstraint PadControllerPadPropertyInfo = IsPadController
type AttrGetType PadControllerPadPropertyInfo = (Maybe Gdk.Device.Device)
type AttrLabel PadControllerPadPropertyInfo = "pad"
type AttrOrigin PadControllerPadPropertyInfo = PadController
attrGet _ = getPadControllerPad
attrSet _ = undefined
attrConstruct _ = constructPadControllerPad
attrClear _ = undefined
instance O.HasAttributeList PadController
type instance O.AttributeList PadController = PadControllerAttributeList
type PadControllerAttributeList = ('[ '("actionGroup", PadControllerActionGroupPropertyInfo), '("pad", PadControllerPadPropertyInfo), '("propagationPhase", Gtk.EventController.EventControllerPropagationPhasePropertyInfo), '("widget", Gtk.EventController.EventControllerWidgetPropertyInfo)] :: [(Symbol, *)])
padControllerActionGroup :: AttrLabelProxy "actionGroup"
padControllerActionGroup = AttrLabelProxy
padControllerPad :: AttrLabelProxy "pad"
padControllerPad = AttrLabelProxy
type instance O.SignalList PadController = PadControllerSignalList
type PadControllerSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])
foreign import ccall "gtk_pad_controller_new" gtk_pad_controller_new ::
Ptr Gtk.Window.Window ->
Ptr Gio.ActionGroup.ActionGroup ->
Ptr Gdk.Device.Device ->
IO (Ptr PadController)
padControllerNew ::
(B.CallStack.HasCallStack, MonadIO m, Gtk.Window.IsWindow a, Gio.ActionGroup.IsActionGroup b, Gdk.Device.IsDevice c) =>
a
-> b
-> Maybe (c)
-> m PadController
padControllerNew window group pad = liftIO $ do
window' <- unsafeManagedPtrCastPtr window
group' <- unsafeManagedPtrCastPtr group
maybePad <- case pad of
Nothing -> return nullPtr
Just jPad -> do
jPad' <- unsafeManagedPtrCastPtr jPad
return jPad'
result <- gtk_pad_controller_new window' group' maybePad
checkUnexpectedReturnNULL "padControllerNew" result
result' <- (wrapObject PadController) result
touchManagedPtr window
touchManagedPtr group
whenJust pad touchManagedPtr
return result'
foreign import ccall "gtk_pad_controller_set_action" gtk_pad_controller_set_action ::
Ptr PadController ->
CUInt ->
Int32 ->
Int32 ->
CString ->
CString ->
IO ()
padControllerSetAction ::
(B.CallStack.HasCallStack, MonadIO m, IsPadController a) =>
a
-> Gtk.Enums.PadActionType
-> Int32
-> Int32
-> T.Text
-> T.Text
-> m ()
padControllerSetAction controller type_ index mode label actionName = liftIO $ do
controller' <- unsafeManagedPtrCastPtr controller
let type_' = (fromIntegral . fromEnum) type_
label' <- textToCString label
actionName' <- textToCString actionName
gtk_pad_controller_set_action controller' type_' index mode label' actionName'
touchManagedPtr controller
freeMem label'
freeMem actionName'
return ()
data PadControllerSetActionMethodInfo
instance (signature ~ (Gtk.Enums.PadActionType -> Int32 -> Int32 -> T.Text -> T.Text -> m ()), MonadIO m, IsPadController a) => O.MethodInfo PadControllerSetActionMethodInfo a signature where
overloadedMethod _ = padControllerSetAction
foreign import ccall "gtk_pad_controller_set_action_entries" gtk_pad_controller_set_action_entries ::
Ptr PadController ->
Ptr Gtk.PadActionEntry.PadActionEntry ->
Int32 ->
IO ()
padControllerSetActionEntries ::
(B.CallStack.HasCallStack, MonadIO m, IsPadController a) =>
a
-> [Gtk.PadActionEntry.PadActionEntry]
-> m ()
padControllerSetActionEntries controller entries = liftIO $ do
let nEntries = fromIntegral $ length entries
controller' <- unsafeManagedPtrCastPtr controller
entries' <- mapM unsafeManagedPtrGetPtr entries
entries'' <- packBlockArray 32 entries'
gtk_pad_controller_set_action_entries controller' entries'' nEntries
touchManagedPtr controller
mapM_ touchManagedPtr entries
freeMem entries''
return ()
data PadControllerSetActionEntriesMethodInfo
instance (signature ~ ([Gtk.PadActionEntry.PadActionEntry] -> m ()), MonadIO m, IsPadController a) => O.MethodInfo PadControllerSetActionEntriesMethodInfo a signature where
overloadedMethod _ = padControllerSetActionEntries