{-# LANGUAGE TypeApplications #-}


-- | Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
-- License    : LGPL-2.1
-- Maintainer : Iñaki García Etxebarria
-- 
-- The t'GI.Wnck.Objects.Tasklist.Tasklist' struct contains only private fields and should not be
-- directly accessed.

#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif

module GI.Wnck.Objects.Tasklist
    ( 

-- * Exported types
    Tasklist(..)                            ,
    IsTasklist                              ,
    toTasklist                              ,
    noTasklist                              ,


 -- * Methods
-- ** Overloaded methods #method:Overloaded methods#

#if defined(ENABLE_OVERLOADING)
    ResolveTasklistMethod                   ,
#endif


-- ** getScrollEnabled #method:getScrollEnabled#

#if defined(ENABLE_OVERLOADING)
    TasklistGetScrollEnabledMethodInfo      ,
#endif
    tasklistGetScrollEnabled                ,


-- ** getSizeHintList #method:getSizeHintList#

#if defined(ENABLE_OVERLOADING)
    TasklistGetSizeHintListMethodInfo       ,
#endif
    tasklistGetSizeHintList                 ,


-- ** new #method:new#

    tasklistNew                             ,


-- ** setButtonRelief #method:setButtonRelief#

#if defined(ENABLE_OVERLOADING)
    TasklistSetButtonReliefMethodInfo       ,
#endif
    tasklistSetButtonRelief                 ,


-- ** setGrouping #method:setGrouping#

#if defined(ENABLE_OVERLOADING)
    TasklistSetGroupingMethodInfo           ,
#endif
    tasklistSetGrouping                     ,


-- ** setGroupingLimit #method:setGroupingLimit#

#if defined(ENABLE_OVERLOADING)
    TasklistSetGroupingLimitMethodInfo      ,
#endif
    tasklistSetGroupingLimit                ,


-- ** setIncludeAllWorkspaces #method:setIncludeAllWorkspaces#

#if defined(ENABLE_OVERLOADING)
    TasklistSetIncludeAllWorkspacesMethodInfo,
#endif
    tasklistSetIncludeAllWorkspaces         ,


-- ** setMiddleClickClose #method:setMiddleClickClose#

#if defined(ENABLE_OVERLOADING)
    TasklistSetMiddleClickCloseMethodInfo   ,
#endif
    tasklistSetMiddleClickClose             ,


-- ** setOrientation #method:setOrientation#

#if defined(ENABLE_OVERLOADING)
    TasklistSetOrientationMethodInfo        ,
#endif
    tasklistSetOrientation                  ,


-- ** setScrollEnabled #method:setScrollEnabled#

#if defined(ENABLE_OVERLOADING)
    TasklistSetScrollEnabledMethodInfo      ,
#endif
    tasklistSetScrollEnabled                ,


-- ** setSwitchWorkspaceOnUnminimize #method:setSwitchWorkspaceOnUnminimize#

#if defined(ENABLE_OVERLOADING)
    TasklistSetSwitchWorkspaceOnUnminimizeMethodInfo,
#endif
    tasklistSetSwitchWorkspaceOnUnminimize  ,




 -- * Signals
-- ** taskEnterNotify #signal:taskEnterNotify#

    C_TasklistTaskEnterNotifyCallback       ,
    TasklistTaskEnterNotifyCallback         ,
#if defined(ENABLE_OVERLOADING)
    TasklistTaskEnterNotifySignalInfo       ,
#endif
    afterTasklistTaskEnterNotify            ,
    genClosure_TasklistTaskEnterNotify      ,
    mk_TasklistTaskEnterNotifyCallback      ,
    noTasklistTaskEnterNotifyCallback       ,
    onTasklistTaskEnterNotify               ,
    wrap_TasklistTaskEnterNotifyCallback    ,


-- ** taskLeaveNotify #signal:taskLeaveNotify#

    C_TasklistTaskLeaveNotifyCallback       ,
    TasklistTaskLeaveNotifyCallback         ,
#if defined(ENABLE_OVERLOADING)
    TasklistTaskLeaveNotifySignalInfo       ,
#endif
    afterTasklistTaskLeaveNotify            ,
    genClosure_TasklistTaskLeaveNotify      ,
    mk_TasklistTaskLeaveNotifyCallback      ,
    noTasklistTaskLeaveNotifyCallback       ,
    onTasklistTaskLeaveNotify               ,
    wrap_TasklistTaskLeaveNotifyCallback    ,




    ) 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.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GValue as B.GValue
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.GI.Base.Properties as B.Properties
import qualified Data.GI.Base.Signals as B.Signals
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 GHC.OverloadedLabels as OL

import qualified GI.Atk.Interfaces.ImplementorIface as Atk.ImplementorIface
import qualified GI.GObject.Objects.Object as GObject.Object
import qualified GI.Gtk.Enums as Gtk.Enums
import qualified GI.Gtk.Interfaces.Buildable as Gtk.Buildable
import qualified GI.Gtk.Objects.Container as Gtk.Container
import qualified GI.Gtk.Objects.Widget as Gtk.Widget
import {-# SOURCE #-} qualified GI.Wnck.Enums as Wnck.Enums

-- | Memory-managed wrapper type.
newtype Tasklist = Tasklist (ManagedPtr Tasklist)
    deriving (Tasklist -> Tasklist -> Bool
(Tasklist -> Tasklist -> Bool)
-> (Tasklist -> Tasklist -> Bool) -> Eq Tasklist
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Tasklist -> Tasklist -> Bool
$c/= :: Tasklist -> Tasklist -> Bool
== :: Tasklist -> Tasklist -> Bool
$c== :: Tasklist -> Tasklist -> Bool
Eq)
foreign import ccall "wnck_tasklist_get_type"
    c_wnck_tasklist_get_type :: IO GType

instance GObject Tasklist where
    gobjectType :: IO GType
gobjectType = IO GType
c_wnck_tasklist_get_type
    

-- | Convert 'Tasklist' to and from 'Data.GI.Base.GValue.GValue' with 'Data.GI.Base.GValue.toGValue' and 'Data.GI.Base.GValue.fromGValue'.
instance B.GValue.IsGValue Tasklist where
    toGValue :: Tasklist -> IO GValue
toGValue o :: Tasklist
o = do
        GType
gtype <- IO GType
c_wnck_tasklist_get_type
        Tasklist -> (Ptr Tasklist -> IO GValue) -> IO GValue
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr Tasklist
o (GType
-> (GValue -> Ptr Tasklist -> IO ()) -> Ptr Tasklist -> IO GValue
forall a. GType -> (GValue -> a -> IO ()) -> a -> IO GValue
B.GValue.buildGValue GType
gtype GValue -> Ptr Tasklist -> IO ()
forall a. GObject a => GValue -> Ptr a -> IO ()
B.GValue.set_object)
        
    fromGValue :: GValue -> IO Tasklist
fromGValue gv :: GValue
gv = do
        Ptr Tasklist
ptr <- GValue -> IO (Ptr Tasklist)
forall b. GObject b => GValue -> IO (Ptr b)
B.GValue.get_object GValue
gv :: IO (Ptr Tasklist)
        (ManagedPtr Tasklist -> Tasklist) -> Ptr Tasklist -> IO Tasklist
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
B.ManagedPtr.newObject ManagedPtr Tasklist -> Tasklist
Tasklist Ptr Tasklist
ptr
        
    

-- | Type class for types which can be safely cast to `Tasklist`, for instance with `toTasklist`.
class (GObject o, O.IsDescendantOf Tasklist o) => IsTasklist o
instance (GObject o, O.IsDescendantOf Tasklist o) => IsTasklist o

instance O.HasParentTypes Tasklist
type instance O.ParentTypes Tasklist = '[Gtk.Container.Container, Gtk.Widget.Widget, GObject.Object.Object, Atk.ImplementorIface.ImplementorIface, Gtk.Buildable.Buildable]

-- | Cast to `Tasklist`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`.
toTasklist :: (MonadIO m, IsTasklist o) => o -> m Tasklist
toTasklist :: o -> m Tasklist
toTasklist = IO Tasklist -> m Tasklist
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Tasklist -> m Tasklist)
-> (o -> IO Tasklist) -> o -> m Tasklist
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ManagedPtr Tasklist -> Tasklist) -> o -> IO Tasklist
forall o o'.
(HasCallStack, GObject o, GObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
unsafeCastTo ManagedPtr Tasklist -> Tasklist
Tasklist

-- | A convenience alias for `Nothing` :: `Maybe` `Tasklist`.
noTasklist :: Maybe Tasklist
noTasklist :: Maybe Tasklist
noTasklist = Maybe Tasklist
forall a. Maybe a
Nothing

#if defined(ENABLE_OVERLOADING)
type family ResolveTasklistMethod (t :: Symbol) (o :: *) :: * where
    ResolveTasklistMethod "activate" o = Gtk.Widget.WidgetActivateMethodInfo
    ResolveTasklistMethod "add" o = Gtk.Container.ContainerAddMethodInfo
    ResolveTasklistMethod "addAccelerator" o = Gtk.Widget.WidgetAddAcceleratorMethodInfo
    ResolveTasklistMethod "addChild" o = Gtk.Buildable.BuildableAddChildMethodInfo
    ResolveTasklistMethod "addDeviceEvents" o = Gtk.Widget.WidgetAddDeviceEventsMethodInfo
    ResolveTasklistMethod "addEvents" o = Gtk.Widget.WidgetAddEventsMethodInfo
    ResolveTasklistMethod "addMnemonicLabel" o = Gtk.Widget.WidgetAddMnemonicLabelMethodInfo
    ResolveTasklistMethod "addTickCallback" o = Gtk.Widget.WidgetAddTickCallbackMethodInfo
    ResolveTasklistMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveTasklistMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveTasklistMethod "canActivateAccel" o = Gtk.Widget.WidgetCanActivateAccelMethodInfo
    ResolveTasklistMethod "checkResize" o = Gtk.Container.ContainerCheckResizeMethodInfo
    ResolveTasklistMethod "childFocus" o = Gtk.Widget.WidgetChildFocusMethodInfo
    ResolveTasklistMethod "childGetProperty" o = Gtk.Container.ContainerChildGetPropertyMethodInfo
    ResolveTasklistMethod "childNotify" o = Gtk.Container.ContainerChildNotifyMethodInfo
    ResolveTasklistMethod "childNotifyByPspec" o = Gtk.Container.ContainerChildNotifyByPspecMethodInfo
    ResolveTasklistMethod "childSetProperty" o = Gtk.Container.ContainerChildSetPropertyMethodInfo
    ResolveTasklistMethod "childType" o = Gtk.Container.ContainerChildTypeMethodInfo
    ResolveTasklistMethod "classPath" o = Gtk.Widget.WidgetClassPathMethodInfo
    ResolveTasklistMethod "computeExpand" o = Gtk.Widget.WidgetComputeExpandMethodInfo
    ResolveTasklistMethod "constructChild" o = Gtk.Buildable.BuildableConstructChildMethodInfo
    ResolveTasklistMethod "createPangoContext" o = Gtk.Widget.WidgetCreatePangoContextMethodInfo
    ResolveTasklistMethod "createPangoLayout" o = Gtk.Widget.WidgetCreatePangoLayoutMethodInfo
    ResolveTasklistMethod "customFinished" o = Gtk.Buildable.BuildableCustomFinishedMethodInfo
    ResolveTasklistMethod "customTagEnd" o = Gtk.Buildable.BuildableCustomTagEndMethodInfo
    ResolveTasklistMethod "customTagStart" o = Gtk.Buildable.BuildableCustomTagStartMethodInfo
    ResolveTasklistMethod "destroy" o = Gtk.Widget.WidgetDestroyMethodInfo
    ResolveTasklistMethod "destroyed" o = Gtk.Widget.WidgetDestroyedMethodInfo
    ResolveTasklistMethod "deviceIsShadowed" o = Gtk.Widget.WidgetDeviceIsShadowedMethodInfo
    ResolveTasklistMethod "dragBegin" o = Gtk.Widget.WidgetDragBeginMethodInfo
    ResolveTasklistMethod "dragBeginWithCoordinates" o = Gtk.Widget.WidgetDragBeginWithCoordinatesMethodInfo
    ResolveTasklistMethod "dragCheckThreshold" o = Gtk.Widget.WidgetDragCheckThresholdMethodInfo
    ResolveTasklistMethod "dragDestAddImageTargets" o = Gtk.Widget.WidgetDragDestAddImageTargetsMethodInfo
    ResolveTasklistMethod "dragDestAddTextTargets" o = Gtk.Widget.WidgetDragDestAddTextTargetsMethodInfo
    ResolveTasklistMethod "dragDestAddUriTargets" o = Gtk.Widget.WidgetDragDestAddUriTargetsMethodInfo
    ResolveTasklistMethod "dragDestFindTarget" o = Gtk.Widget.WidgetDragDestFindTargetMethodInfo
    ResolveTasklistMethod "dragDestGetTargetList" o = Gtk.Widget.WidgetDragDestGetTargetListMethodInfo
    ResolveTasklistMethod "dragDestGetTrackMotion" o = Gtk.Widget.WidgetDragDestGetTrackMotionMethodInfo
    ResolveTasklistMethod "dragDestSet" o = Gtk.Widget.WidgetDragDestSetMethodInfo
    ResolveTasklistMethod "dragDestSetProxy" o = Gtk.Widget.WidgetDragDestSetProxyMethodInfo
    ResolveTasklistMethod "dragDestSetTargetList" o = Gtk.Widget.WidgetDragDestSetTargetListMethodInfo
    ResolveTasklistMethod "dragDestSetTrackMotion" o = Gtk.Widget.WidgetDragDestSetTrackMotionMethodInfo
    ResolveTasklistMethod "dragDestUnset" o = Gtk.Widget.WidgetDragDestUnsetMethodInfo
    ResolveTasklistMethod "dragGetData" o = Gtk.Widget.WidgetDragGetDataMethodInfo
    ResolveTasklistMethod "dragHighlight" o = Gtk.Widget.WidgetDragHighlightMethodInfo
    ResolveTasklistMethod "dragSourceAddImageTargets" o = Gtk.Widget.WidgetDragSourceAddImageTargetsMethodInfo
    ResolveTasklistMethod "dragSourceAddTextTargets" o = Gtk.Widget.WidgetDragSourceAddTextTargetsMethodInfo
    ResolveTasklistMethod "dragSourceAddUriTargets" o = Gtk.Widget.WidgetDragSourceAddUriTargetsMethodInfo
    ResolveTasklistMethod "dragSourceGetTargetList" o = Gtk.Widget.WidgetDragSourceGetTargetListMethodInfo
    ResolveTasklistMethod "dragSourceSet" o = Gtk.Widget.WidgetDragSourceSetMethodInfo
    ResolveTasklistMethod "dragSourceSetIconGicon" o = Gtk.Widget.WidgetDragSourceSetIconGiconMethodInfo
    ResolveTasklistMethod "dragSourceSetIconName" o = Gtk.Widget.WidgetDragSourceSetIconNameMethodInfo
    ResolveTasklistMethod "dragSourceSetIconPixbuf" o = Gtk.Widget.WidgetDragSourceSetIconPixbufMethodInfo
    ResolveTasklistMethod "dragSourceSetIconStock" o = Gtk.Widget.WidgetDragSourceSetIconStockMethodInfo
    ResolveTasklistMethod "dragSourceSetTargetList" o = Gtk.Widget.WidgetDragSourceSetTargetListMethodInfo
    ResolveTasklistMethod "dragSourceUnset" o = Gtk.Widget.WidgetDragSourceUnsetMethodInfo
    ResolveTasklistMethod "dragUnhighlight" o = Gtk.Widget.WidgetDragUnhighlightMethodInfo
    ResolveTasklistMethod "draw" o = Gtk.Widget.WidgetDrawMethodInfo
    ResolveTasklistMethod "ensureStyle" o = Gtk.Widget.WidgetEnsureStyleMethodInfo
    ResolveTasklistMethod "errorBell" o = Gtk.Widget.WidgetErrorBellMethodInfo
    ResolveTasklistMethod "event" o = Gtk.Widget.WidgetEventMethodInfo
    ResolveTasklistMethod "forall" o = Gtk.Container.ContainerForallMethodInfo
    ResolveTasklistMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveTasklistMethod "foreach" o = Gtk.Container.ContainerForeachMethodInfo
    ResolveTasklistMethod "freezeChildNotify" o = Gtk.Widget.WidgetFreezeChildNotifyMethodInfo
    ResolveTasklistMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveTasklistMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
    ResolveTasklistMethod "grabAdd" o = Gtk.Widget.WidgetGrabAddMethodInfo
    ResolveTasklistMethod "grabDefault" o = Gtk.Widget.WidgetGrabDefaultMethodInfo
    ResolveTasklistMethod "grabFocus" o = Gtk.Widget.WidgetGrabFocusMethodInfo
    ResolveTasklistMethod "grabRemove" o = Gtk.Widget.WidgetGrabRemoveMethodInfo
    ResolveTasklistMethod "hasDefault" o = Gtk.Widget.WidgetHasDefaultMethodInfo
    ResolveTasklistMethod "hasFocus" o = Gtk.Widget.WidgetHasFocusMethodInfo
    ResolveTasklistMethod "hasGrab" o = Gtk.Widget.WidgetHasGrabMethodInfo
    ResolveTasklistMethod "hasRcStyle" o = Gtk.Widget.WidgetHasRcStyleMethodInfo
    ResolveTasklistMethod "hasScreen" o = Gtk.Widget.WidgetHasScreenMethodInfo
    ResolveTasklistMethod "hasVisibleFocus" o = Gtk.Widget.WidgetHasVisibleFocusMethodInfo
    ResolveTasklistMethod "hide" o = Gtk.Widget.WidgetHideMethodInfo
    ResolveTasklistMethod "hideOnDelete" o = Gtk.Widget.WidgetHideOnDeleteMethodInfo
    ResolveTasklistMethod "inDestruction" o = Gtk.Widget.WidgetInDestructionMethodInfo
    ResolveTasklistMethod "initTemplate" o = Gtk.Widget.WidgetInitTemplateMethodInfo
    ResolveTasklistMethod "inputShapeCombineRegion" o = Gtk.Widget.WidgetInputShapeCombineRegionMethodInfo
    ResolveTasklistMethod "insertActionGroup" o = Gtk.Widget.WidgetInsertActionGroupMethodInfo
    ResolveTasklistMethod "intersect" o = Gtk.Widget.WidgetIntersectMethodInfo
    ResolveTasklistMethod "isAncestor" o = Gtk.Widget.WidgetIsAncestorMethodInfo
    ResolveTasklistMethod "isComposited" o = Gtk.Widget.WidgetIsCompositedMethodInfo
    ResolveTasklistMethod "isDrawable" o = Gtk.Widget.WidgetIsDrawableMethodInfo
    ResolveTasklistMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveTasklistMethod "isFocus" o = Gtk.Widget.WidgetIsFocusMethodInfo
    ResolveTasklistMethod "isSensitive" o = Gtk.Widget.WidgetIsSensitiveMethodInfo
    ResolveTasklistMethod "isToplevel" o = Gtk.Widget.WidgetIsToplevelMethodInfo
    ResolveTasklistMethod "isVisible" o = Gtk.Widget.WidgetIsVisibleMethodInfo
    ResolveTasklistMethod "keynavFailed" o = Gtk.Widget.WidgetKeynavFailedMethodInfo
    ResolveTasklistMethod "listAccelClosures" o = Gtk.Widget.WidgetListAccelClosuresMethodInfo
    ResolveTasklistMethod "listActionPrefixes" o = Gtk.Widget.WidgetListActionPrefixesMethodInfo
    ResolveTasklistMethod "listMnemonicLabels" o = Gtk.Widget.WidgetListMnemonicLabelsMethodInfo
    ResolveTasklistMethod "map" o = Gtk.Widget.WidgetMapMethodInfo
    ResolveTasklistMethod "mnemonicActivate" o = Gtk.Widget.WidgetMnemonicActivateMethodInfo
    ResolveTasklistMethod "modifyBase" o = Gtk.Widget.WidgetModifyBaseMethodInfo
    ResolveTasklistMethod "modifyBg" o = Gtk.Widget.WidgetModifyBgMethodInfo
    ResolveTasklistMethod "modifyCursor" o = Gtk.Widget.WidgetModifyCursorMethodInfo
    ResolveTasklistMethod "modifyFg" o = Gtk.Widget.WidgetModifyFgMethodInfo
    ResolveTasklistMethod "modifyFont" o = Gtk.Widget.WidgetModifyFontMethodInfo
    ResolveTasklistMethod "modifyStyle" o = Gtk.Widget.WidgetModifyStyleMethodInfo
    ResolveTasklistMethod "modifyText" o = Gtk.Widget.WidgetModifyTextMethodInfo
    ResolveTasklistMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveTasklistMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveTasklistMethod "overrideBackgroundColor" o = Gtk.Widget.WidgetOverrideBackgroundColorMethodInfo
    ResolveTasklistMethod "overrideColor" o = Gtk.Widget.WidgetOverrideColorMethodInfo
    ResolveTasklistMethod "overrideCursor" o = Gtk.Widget.WidgetOverrideCursorMethodInfo
    ResolveTasklistMethod "overrideFont" o = Gtk.Widget.WidgetOverrideFontMethodInfo
    ResolveTasklistMethod "overrideSymbolicColor" o = Gtk.Widget.WidgetOverrideSymbolicColorMethodInfo
    ResolveTasklistMethod "parserFinished" o = Gtk.Buildable.BuildableParserFinishedMethodInfo
    ResolveTasklistMethod "path" o = Gtk.Widget.WidgetPathMethodInfo
    ResolveTasklistMethod "propagateDraw" o = Gtk.Container.ContainerPropagateDrawMethodInfo
    ResolveTasklistMethod "queueAllocate" o = Gtk.Widget.WidgetQueueAllocateMethodInfo
    ResolveTasklistMethod "queueComputeExpand" o = Gtk.Widget.WidgetQueueComputeExpandMethodInfo
    ResolveTasklistMethod "queueDraw" o = Gtk.Widget.WidgetQueueDrawMethodInfo
    ResolveTasklistMethod "queueDrawArea" o = Gtk.Widget.WidgetQueueDrawAreaMethodInfo
    ResolveTasklistMethod "queueDrawRegion" o = Gtk.Widget.WidgetQueueDrawRegionMethodInfo
    ResolveTasklistMethod "queueResize" o = Gtk.Widget.WidgetQueueResizeMethodInfo
    ResolveTasklistMethod "queueResizeNoRedraw" o = Gtk.Widget.WidgetQueueResizeNoRedrawMethodInfo
    ResolveTasklistMethod "realize" o = Gtk.Widget.WidgetRealizeMethodInfo
    ResolveTasklistMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveTasklistMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveTasklistMethod "regionIntersect" o = Gtk.Widget.WidgetRegionIntersectMethodInfo
    ResolveTasklistMethod "registerWindow" o = Gtk.Widget.WidgetRegisterWindowMethodInfo
    ResolveTasklistMethod "remove" o = Gtk.Container.ContainerRemoveMethodInfo
    ResolveTasklistMethod "removeAccelerator" o = Gtk.Widget.WidgetRemoveAcceleratorMethodInfo
    ResolveTasklistMethod "removeMnemonicLabel" o = Gtk.Widget.WidgetRemoveMnemonicLabelMethodInfo
    ResolveTasklistMethod "removeTickCallback" o = Gtk.Widget.WidgetRemoveTickCallbackMethodInfo
    ResolveTasklistMethod "renderIcon" o = Gtk.Widget.WidgetRenderIconMethodInfo
    ResolveTasklistMethod "renderIconPixbuf" o = Gtk.Widget.WidgetRenderIconPixbufMethodInfo
    ResolveTasklistMethod "reparent" o = Gtk.Widget.WidgetReparentMethodInfo
    ResolveTasklistMethod "resetRcStyles" o = Gtk.Widget.WidgetResetRcStylesMethodInfo
    ResolveTasklistMethod "resetStyle" o = Gtk.Widget.WidgetResetStyleMethodInfo
    ResolveTasklistMethod "resizeChildren" o = Gtk.Container.ContainerResizeChildrenMethodInfo
    ResolveTasklistMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveTasklistMethod "sendExpose" o = Gtk.Widget.WidgetSendExposeMethodInfo
    ResolveTasklistMethod "sendFocusChange" o = Gtk.Widget.WidgetSendFocusChangeMethodInfo
    ResolveTasklistMethod "shapeCombineRegion" o = Gtk.Widget.WidgetShapeCombineRegionMethodInfo
    ResolveTasklistMethod "show" o = Gtk.Widget.WidgetShowMethodInfo
    ResolveTasklistMethod "showAll" o = Gtk.Widget.WidgetShowAllMethodInfo
    ResolveTasklistMethod "showNow" o = Gtk.Widget.WidgetShowNowMethodInfo
    ResolveTasklistMethod "sizeAllocate" o = Gtk.Widget.WidgetSizeAllocateMethodInfo
    ResolveTasklistMethod "sizeAllocateWithBaseline" o = Gtk.Widget.WidgetSizeAllocateWithBaselineMethodInfo
    ResolveTasklistMethod "sizeRequest" o = Gtk.Widget.WidgetSizeRequestMethodInfo
    ResolveTasklistMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveTasklistMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveTasklistMethod "styleAttach" o = Gtk.Widget.WidgetStyleAttachMethodInfo
    ResolveTasklistMethod "styleGetProperty" o = Gtk.Widget.WidgetStyleGetPropertyMethodInfo
    ResolveTasklistMethod "thawChildNotify" o = Gtk.Widget.WidgetThawChildNotifyMethodInfo
    ResolveTasklistMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveTasklistMethod "translateCoordinates" o = Gtk.Widget.WidgetTranslateCoordinatesMethodInfo
    ResolveTasklistMethod "triggerTooltipQuery" o = Gtk.Widget.WidgetTriggerTooltipQueryMethodInfo
    ResolveTasklistMethod "unmap" o = Gtk.Widget.WidgetUnmapMethodInfo
    ResolveTasklistMethod "unparent" o = Gtk.Widget.WidgetUnparentMethodInfo
    ResolveTasklistMethod "unrealize" o = Gtk.Widget.WidgetUnrealizeMethodInfo
    ResolveTasklistMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolveTasklistMethod "unregisterWindow" o = Gtk.Widget.WidgetUnregisterWindowMethodInfo
    ResolveTasklistMethod "unsetFocusChain" o = Gtk.Container.ContainerUnsetFocusChainMethodInfo
    ResolveTasklistMethod "unsetStateFlags" o = Gtk.Widget.WidgetUnsetStateFlagsMethodInfo
    ResolveTasklistMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveTasklistMethod "getAccessible" o = Gtk.Widget.WidgetGetAccessibleMethodInfo
    ResolveTasklistMethod "getActionGroup" o = Gtk.Widget.WidgetGetActionGroupMethodInfo
    ResolveTasklistMethod "getAllocatedBaseline" o = Gtk.Widget.WidgetGetAllocatedBaselineMethodInfo
    ResolveTasklistMethod "getAllocatedHeight" o = Gtk.Widget.WidgetGetAllocatedHeightMethodInfo
    ResolveTasklistMethod "getAllocatedSize" o = Gtk.Widget.WidgetGetAllocatedSizeMethodInfo
    ResolveTasklistMethod "getAllocatedWidth" o = Gtk.Widget.WidgetGetAllocatedWidthMethodInfo
    ResolveTasklistMethod "getAllocation" o = Gtk.Widget.WidgetGetAllocationMethodInfo
    ResolveTasklistMethod "getAncestor" o = Gtk.Widget.WidgetGetAncestorMethodInfo
    ResolveTasklistMethod "getAppPaintable" o = Gtk.Widget.WidgetGetAppPaintableMethodInfo
    ResolveTasklistMethod "getBorderWidth" o = Gtk.Container.ContainerGetBorderWidthMethodInfo
    ResolveTasklistMethod "getCanDefault" o = Gtk.Widget.WidgetGetCanDefaultMethodInfo
    ResolveTasklistMethod "getCanFocus" o = Gtk.Widget.WidgetGetCanFocusMethodInfo
    ResolveTasklistMethod "getChildRequisition" o = Gtk.Widget.WidgetGetChildRequisitionMethodInfo
    ResolveTasklistMethod "getChildVisible" o = Gtk.Widget.WidgetGetChildVisibleMethodInfo
    ResolveTasklistMethod "getChildren" o = Gtk.Container.ContainerGetChildrenMethodInfo
    ResolveTasklistMethod "getClip" o = Gtk.Widget.WidgetGetClipMethodInfo
    ResolveTasklistMethod "getClipboard" o = Gtk.Widget.WidgetGetClipboardMethodInfo
    ResolveTasklistMethod "getCompositeName" o = Gtk.Widget.WidgetGetCompositeNameMethodInfo
    ResolveTasklistMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveTasklistMethod "getDeviceEnabled" o = Gtk.Widget.WidgetGetDeviceEnabledMethodInfo
    ResolveTasklistMethod "getDeviceEvents" o = Gtk.Widget.WidgetGetDeviceEventsMethodInfo
    ResolveTasklistMethod "getDirection" o = Gtk.Widget.WidgetGetDirectionMethodInfo
    ResolveTasklistMethod "getDisplay" o = Gtk.Widget.WidgetGetDisplayMethodInfo
    ResolveTasklistMethod "getDoubleBuffered" o = Gtk.Widget.WidgetGetDoubleBufferedMethodInfo
    ResolveTasklistMethod "getEvents" o = Gtk.Widget.WidgetGetEventsMethodInfo
    ResolveTasklistMethod "getFocusChain" o = Gtk.Container.ContainerGetFocusChainMethodInfo
    ResolveTasklistMethod "getFocusChild" o = Gtk.Container.ContainerGetFocusChildMethodInfo
    ResolveTasklistMethod "getFocusHadjustment" o = Gtk.Container.ContainerGetFocusHadjustmentMethodInfo
    ResolveTasklistMethod "getFocusOnClick" o = Gtk.Widget.WidgetGetFocusOnClickMethodInfo
    ResolveTasklistMethod "getFocusVadjustment" o = Gtk.Container.ContainerGetFocusVadjustmentMethodInfo
    ResolveTasklistMethod "getFontMap" o = Gtk.Widget.WidgetGetFontMapMethodInfo
    ResolveTasklistMethod "getFontOptions" o = Gtk.Widget.WidgetGetFontOptionsMethodInfo
    ResolveTasklistMethod "getFrameClock" o = Gtk.Widget.WidgetGetFrameClockMethodInfo
    ResolveTasklistMethod "getHalign" o = Gtk.Widget.WidgetGetHalignMethodInfo
    ResolveTasklistMethod "getHasTooltip" o = Gtk.Widget.WidgetGetHasTooltipMethodInfo
    ResolveTasklistMethod "getHasWindow" o = Gtk.Widget.WidgetGetHasWindowMethodInfo
    ResolveTasklistMethod "getHexpand" o = Gtk.Widget.WidgetGetHexpandMethodInfo
    ResolveTasklistMethod "getHexpandSet" o = Gtk.Widget.WidgetGetHexpandSetMethodInfo
    ResolveTasklistMethod "getInternalChild" o = Gtk.Buildable.BuildableGetInternalChildMethodInfo
    ResolveTasklistMethod "getMapped" o = Gtk.Widget.WidgetGetMappedMethodInfo
    ResolveTasklistMethod "getMarginBottom" o = Gtk.Widget.WidgetGetMarginBottomMethodInfo
    ResolveTasklistMethod "getMarginEnd" o = Gtk.Widget.WidgetGetMarginEndMethodInfo
    ResolveTasklistMethod "getMarginLeft" o = Gtk.Widget.WidgetGetMarginLeftMethodInfo
    ResolveTasklistMethod "getMarginRight" o = Gtk.Widget.WidgetGetMarginRightMethodInfo
    ResolveTasklistMethod "getMarginStart" o = Gtk.Widget.WidgetGetMarginStartMethodInfo
    ResolveTasklistMethod "getMarginTop" o = Gtk.Widget.WidgetGetMarginTopMethodInfo
    ResolveTasklistMethod "getModifierMask" o = Gtk.Widget.WidgetGetModifierMaskMethodInfo
    ResolveTasklistMethod "getModifierStyle" o = Gtk.Widget.WidgetGetModifierStyleMethodInfo
    ResolveTasklistMethod "getName" o = Gtk.Widget.WidgetGetNameMethodInfo
    ResolveTasklistMethod "getNoShowAll" o = Gtk.Widget.WidgetGetNoShowAllMethodInfo
    ResolveTasklistMethod "getOpacity" o = Gtk.Widget.WidgetGetOpacityMethodInfo
    ResolveTasklistMethod "getPangoContext" o = Gtk.Widget.WidgetGetPangoContextMethodInfo
    ResolveTasklistMethod "getParent" o = Gtk.Widget.WidgetGetParentMethodInfo
    ResolveTasklistMethod "getParentWindow" o = Gtk.Widget.WidgetGetParentWindowMethodInfo
    ResolveTasklistMethod "getPath" o = Gtk.Widget.WidgetGetPathMethodInfo
    ResolveTasklistMethod "getPathForChild" o = Gtk.Container.ContainerGetPathForChildMethodInfo
    ResolveTasklistMethod "getPointer" o = Gtk.Widget.WidgetGetPointerMethodInfo
    ResolveTasklistMethod "getPreferredHeight" o = Gtk.Widget.WidgetGetPreferredHeightMethodInfo
    ResolveTasklistMethod "getPreferredHeightAndBaselineForWidth" o = Gtk.Widget.WidgetGetPreferredHeightAndBaselineForWidthMethodInfo
    ResolveTasklistMethod "getPreferredHeightForWidth" o = Gtk.Widget.WidgetGetPreferredHeightForWidthMethodInfo
    ResolveTasklistMethod "getPreferredSize" o = Gtk.Widget.WidgetGetPreferredSizeMethodInfo
    ResolveTasklistMethod "getPreferredWidth" o = Gtk.Widget.WidgetGetPreferredWidthMethodInfo
    ResolveTasklistMethod "getPreferredWidthForHeight" o = Gtk.Widget.WidgetGetPreferredWidthForHeightMethodInfo
    ResolveTasklistMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveTasklistMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveTasklistMethod "getRealized" o = Gtk.Widget.WidgetGetRealizedMethodInfo
    ResolveTasklistMethod "getReceivesDefault" o = Gtk.Widget.WidgetGetReceivesDefaultMethodInfo
    ResolveTasklistMethod "getRequestMode" o = Gtk.Widget.WidgetGetRequestModeMethodInfo
    ResolveTasklistMethod "getRequisition" o = Gtk.Widget.WidgetGetRequisitionMethodInfo
    ResolveTasklistMethod "getResizeMode" o = Gtk.Container.ContainerGetResizeModeMethodInfo
    ResolveTasklistMethod "getRootWindow" o = Gtk.Widget.WidgetGetRootWindowMethodInfo
    ResolveTasklistMethod "getScaleFactor" o = Gtk.Widget.WidgetGetScaleFactorMethodInfo
    ResolveTasklistMethod "getScreen" o = Gtk.Widget.WidgetGetScreenMethodInfo
    ResolveTasklistMethod "getScrollEnabled" o = TasklistGetScrollEnabledMethodInfo
    ResolveTasklistMethod "getSensitive" o = Gtk.Widget.WidgetGetSensitiveMethodInfo
    ResolveTasklistMethod "getSettings" o = Gtk.Widget.WidgetGetSettingsMethodInfo
    ResolveTasklistMethod "getSizeHintList" o = TasklistGetSizeHintListMethodInfo
    ResolveTasklistMethod "getSizeRequest" o = Gtk.Widget.WidgetGetSizeRequestMethodInfo
    ResolveTasklistMethod "getState" o = Gtk.Widget.WidgetGetStateMethodInfo
    ResolveTasklistMethod "getStateFlags" o = Gtk.Widget.WidgetGetStateFlagsMethodInfo
    ResolveTasklistMethod "getStyle" o = Gtk.Widget.WidgetGetStyleMethodInfo
    ResolveTasklistMethod "getStyleContext" o = Gtk.Widget.WidgetGetStyleContextMethodInfo
    ResolveTasklistMethod "getSupportMultidevice" o = Gtk.Widget.WidgetGetSupportMultideviceMethodInfo
    ResolveTasklistMethod "getTemplateChild" o = Gtk.Widget.WidgetGetTemplateChildMethodInfo
    ResolveTasklistMethod "getTooltipMarkup" o = Gtk.Widget.WidgetGetTooltipMarkupMethodInfo
    ResolveTasklistMethod "getTooltipText" o = Gtk.Widget.WidgetGetTooltipTextMethodInfo
    ResolveTasklistMethod "getTooltipWindow" o = Gtk.Widget.WidgetGetTooltipWindowMethodInfo
    ResolveTasklistMethod "getToplevel" o = Gtk.Widget.WidgetGetToplevelMethodInfo
    ResolveTasklistMethod "getValign" o = Gtk.Widget.WidgetGetValignMethodInfo
    ResolveTasklistMethod "getValignWithBaseline" o = Gtk.Widget.WidgetGetValignWithBaselineMethodInfo
    ResolveTasklistMethod "getVexpand" o = Gtk.Widget.WidgetGetVexpandMethodInfo
    ResolveTasklistMethod "getVexpandSet" o = Gtk.Widget.WidgetGetVexpandSetMethodInfo
    ResolveTasklistMethod "getVisible" o = Gtk.Widget.WidgetGetVisibleMethodInfo
    ResolveTasklistMethod "getVisual" o = Gtk.Widget.WidgetGetVisualMethodInfo
    ResolveTasklistMethod "getWindow" o = Gtk.Widget.WidgetGetWindowMethodInfo
    ResolveTasklistMethod "setAccelPath" o = Gtk.Widget.WidgetSetAccelPathMethodInfo
    ResolveTasklistMethod "setAllocation" o = Gtk.Widget.WidgetSetAllocationMethodInfo
    ResolveTasklistMethod "setAppPaintable" o = Gtk.Widget.WidgetSetAppPaintableMethodInfo
    ResolveTasklistMethod "setBorderWidth" o = Gtk.Container.ContainerSetBorderWidthMethodInfo
    ResolveTasklistMethod "setBuildableProperty" o = Gtk.Buildable.BuildableSetBuildablePropertyMethodInfo
    ResolveTasklistMethod "setButtonRelief" o = TasklistSetButtonReliefMethodInfo
    ResolveTasklistMethod "setCanDefault" o = Gtk.Widget.WidgetSetCanDefaultMethodInfo
    ResolveTasklistMethod "setCanFocus" o = Gtk.Widget.WidgetSetCanFocusMethodInfo
    ResolveTasklistMethod "setChildVisible" o = Gtk.Widget.WidgetSetChildVisibleMethodInfo
    ResolveTasklistMethod "setClip" o = Gtk.Widget.WidgetSetClipMethodInfo
    ResolveTasklistMethod "setCompositeName" o = Gtk.Widget.WidgetSetCompositeNameMethodInfo
    ResolveTasklistMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveTasklistMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
    ResolveTasklistMethod "setDeviceEnabled" o = Gtk.Widget.WidgetSetDeviceEnabledMethodInfo
    ResolveTasklistMethod "setDeviceEvents" o = Gtk.Widget.WidgetSetDeviceEventsMethodInfo
    ResolveTasklistMethod "setDirection" o = Gtk.Widget.WidgetSetDirectionMethodInfo
    ResolveTasklistMethod "setDoubleBuffered" o = Gtk.Widget.WidgetSetDoubleBufferedMethodInfo
    ResolveTasklistMethod "setEvents" o = Gtk.Widget.WidgetSetEventsMethodInfo
    ResolveTasklistMethod "setFocusChain" o = Gtk.Container.ContainerSetFocusChainMethodInfo
    ResolveTasklistMethod "setFocusChild" o = Gtk.Container.ContainerSetFocusChildMethodInfo
    ResolveTasklistMethod "setFocusHadjustment" o = Gtk.Container.ContainerSetFocusHadjustmentMethodInfo
    ResolveTasklistMethod "setFocusOnClick" o = Gtk.Widget.WidgetSetFocusOnClickMethodInfo
    ResolveTasklistMethod "setFocusVadjustment" o = Gtk.Container.ContainerSetFocusVadjustmentMethodInfo
    ResolveTasklistMethod "setFontMap" o = Gtk.Widget.WidgetSetFontMapMethodInfo
    ResolveTasklistMethod "setFontOptions" o = Gtk.Widget.WidgetSetFontOptionsMethodInfo
    ResolveTasklistMethod "setGrouping" o = TasklistSetGroupingMethodInfo
    ResolveTasklistMethod "setGroupingLimit" o = TasklistSetGroupingLimitMethodInfo
    ResolveTasklistMethod "setHalign" o = Gtk.Widget.WidgetSetHalignMethodInfo
    ResolveTasklistMethod "setHasTooltip" o = Gtk.Widget.WidgetSetHasTooltipMethodInfo
    ResolveTasklistMethod "setHasWindow" o = Gtk.Widget.WidgetSetHasWindowMethodInfo
    ResolveTasklistMethod "setHexpand" o = Gtk.Widget.WidgetSetHexpandMethodInfo
    ResolveTasklistMethod "setHexpandSet" o = Gtk.Widget.WidgetSetHexpandSetMethodInfo
    ResolveTasklistMethod "setIncludeAllWorkspaces" o = TasklistSetIncludeAllWorkspacesMethodInfo
    ResolveTasklistMethod "setMapped" o = Gtk.Widget.WidgetSetMappedMethodInfo
    ResolveTasklistMethod "setMarginBottom" o = Gtk.Widget.WidgetSetMarginBottomMethodInfo
    ResolveTasklistMethod "setMarginEnd" o = Gtk.Widget.WidgetSetMarginEndMethodInfo
    ResolveTasklistMethod "setMarginLeft" o = Gtk.Widget.WidgetSetMarginLeftMethodInfo
    ResolveTasklistMethod "setMarginRight" o = Gtk.Widget.WidgetSetMarginRightMethodInfo
    ResolveTasklistMethod "setMarginStart" o = Gtk.Widget.WidgetSetMarginStartMethodInfo
    ResolveTasklistMethod "setMarginTop" o = Gtk.Widget.WidgetSetMarginTopMethodInfo
    ResolveTasklistMethod "setMiddleClickClose" o = TasklistSetMiddleClickCloseMethodInfo
    ResolveTasklistMethod "setName" o = Gtk.Widget.WidgetSetNameMethodInfo
    ResolveTasklistMethod "setNoShowAll" o = Gtk.Widget.WidgetSetNoShowAllMethodInfo
    ResolveTasklistMethod "setOpacity" o = Gtk.Widget.WidgetSetOpacityMethodInfo
    ResolveTasklistMethod "setOrientation" o = TasklistSetOrientationMethodInfo
    ResolveTasklistMethod "setParent" o = Gtk.Widget.WidgetSetParentMethodInfo
    ResolveTasklistMethod "setParentWindow" o = Gtk.Widget.WidgetSetParentWindowMethodInfo
    ResolveTasklistMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveTasklistMethod "setRealized" o = Gtk.Widget.WidgetSetRealizedMethodInfo
    ResolveTasklistMethod "setReallocateRedraws" o = Gtk.Container.ContainerSetReallocateRedrawsMethodInfo
    ResolveTasklistMethod "setReceivesDefault" o = Gtk.Widget.WidgetSetReceivesDefaultMethodInfo
    ResolveTasklistMethod "setRedrawOnAllocate" o = Gtk.Widget.WidgetSetRedrawOnAllocateMethodInfo
    ResolveTasklistMethod "setResizeMode" o = Gtk.Container.ContainerSetResizeModeMethodInfo
    ResolveTasklistMethod "setScrollEnabled" o = TasklistSetScrollEnabledMethodInfo
    ResolveTasklistMethod "setSensitive" o = Gtk.Widget.WidgetSetSensitiveMethodInfo
    ResolveTasklistMethod "setSizeRequest" o = Gtk.Widget.WidgetSetSizeRequestMethodInfo
    ResolveTasklistMethod "setState" o = Gtk.Widget.WidgetSetStateMethodInfo
    ResolveTasklistMethod "setStateFlags" o = Gtk.Widget.WidgetSetStateFlagsMethodInfo
    ResolveTasklistMethod "setStyle" o = Gtk.Widget.WidgetSetStyleMethodInfo
    ResolveTasklistMethod "setSupportMultidevice" o = Gtk.Widget.WidgetSetSupportMultideviceMethodInfo
    ResolveTasklistMethod "setSwitchWorkspaceOnUnminimize" o = TasklistSetSwitchWorkspaceOnUnminimizeMethodInfo
    ResolveTasklistMethod "setTooltipMarkup" o = Gtk.Widget.WidgetSetTooltipMarkupMethodInfo
    ResolveTasklistMethod "setTooltipText" o = Gtk.Widget.WidgetSetTooltipTextMethodInfo
    ResolveTasklistMethod "setTooltipWindow" o = Gtk.Widget.WidgetSetTooltipWindowMethodInfo
    ResolveTasklistMethod "setValign" o = Gtk.Widget.WidgetSetValignMethodInfo
    ResolveTasklistMethod "setVexpand" o = Gtk.Widget.WidgetSetVexpandMethodInfo
    ResolveTasklistMethod "setVexpandSet" o = Gtk.Widget.WidgetSetVexpandSetMethodInfo
    ResolveTasklistMethod "setVisible" o = Gtk.Widget.WidgetSetVisibleMethodInfo
    ResolveTasklistMethod "setVisual" o = Gtk.Widget.WidgetSetVisualMethodInfo
    ResolveTasklistMethod "setWindow" o = Gtk.Widget.WidgetSetWindowMethodInfo
    ResolveTasklistMethod l o = O.MethodResolutionFailed l o

instance (info ~ ResolveTasklistMethod t Tasklist, O.MethodInfo info Tasklist p) => OL.IsLabel t (Tasklist -> p) where
#if MIN_VERSION_base(4,10,0)
    fromLabel = O.overloadedMethod @info
#else
    fromLabel _ = O.overloadedMethod @info
#endif

#endif

-- signal Tasklist::task-enter-notify
-- | Emitted when the task is entered.
type TasklistTaskEnterNotifyCallback =
    Ptr ()
    -- ^ /@windows@/: the t'GI.GLib.Structs.List.List' with all the t'GI.Wnck.Objects.Window.Window' belonging to the task.
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `TasklistTaskEnterNotifyCallback`@.
noTasklistTaskEnterNotifyCallback :: Maybe TasklistTaskEnterNotifyCallback
noTasklistTaskEnterNotifyCallback :: Maybe TasklistTaskEnterNotifyCallback
noTasklistTaskEnterNotifyCallback = Maybe TasklistTaskEnterNotifyCallback
forall a. Maybe a
Nothing

-- | Type for the callback on the (unwrapped) C side.
type C_TasklistTaskEnterNotifyCallback =
    Ptr () ->                               -- object
    Ptr () ->
    Ptr () ->                               -- user_data
    IO ()

-- | Generate a function pointer callable from C code, from a `C_TasklistTaskEnterNotifyCallback`.
foreign import ccall "wrapper"
    mk_TasklistTaskEnterNotifyCallback :: C_TasklistTaskEnterNotifyCallback -> IO (FunPtr C_TasklistTaskEnterNotifyCallback)

-- | Wrap the callback into a `GClosure`.
genClosure_TasklistTaskEnterNotify :: MonadIO m => TasklistTaskEnterNotifyCallback -> m (GClosure C_TasklistTaskEnterNotifyCallback)
genClosure_TasklistTaskEnterNotify :: TasklistTaskEnterNotifyCallback
-> m (GClosure C_TasklistTaskEnterNotifyCallback)
genClosure_TasklistTaskEnterNotify cb :: TasklistTaskEnterNotifyCallback
cb = IO (GClosure C_TasklistTaskEnterNotifyCallback)
-> m (GClosure C_TasklistTaskEnterNotifyCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_TasklistTaskEnterNotifyCallback)
 -> m (GClosure C_TasklistTaskEnterNotifyCallback))
-> IO (GClosure C_TasklistTaskEnterNotifyCallback)
-> m (GClosure C_TasklistTaskEnterNotifyCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_TasklistTaskEnterNotifyCallback
cb' = TasklistTaskEnterNotifyCallback
-> C_TasklistTaskEnterNotifyCallback
wrap_TasklistTaskEnterNotifyCallback TasklistTaskEnterNotifyCallback
cb
    C_TasklistTaskEnterNotifyCallback
-> IO (FunPtr C_TasklistTaskEnterNotifyCallback)
mk_TasklistTaskEnterNotifyCallback C_TasklistTaskEnterNotifyCallback
cb' IO (FunPtr C_TasklistTaskEnterNotifyCallback)
-> (FunPtr C_TasklistTaskEnterNotifyCallback
    -> IO (GClosure C_TasklistTaskEnterNotifyCallback))
-> IO (GClosure C_TasklistTaskEnterNotifyCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_TasklistTaskEnterNotifyCallback
-> IO (GClosure C_TasklistTaskEnterNotifyCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `TasklistTaskEnterNotifyCallback` into a `C_TasklistTaskEnterNotifyCallback`.
wrap_TasklistTaskEnterNotifyCallback ::
    TasklistTaskEnterNotifyCallback ->
    C_TasklistTaskEnterNotifyCallback
wrap_TasklistTaskEnterNotifyCallback :: TasklistTaskEnterNotifyCallback
-> C_TasklistTaskEnterNotifyCallback
wrap_TasklistTaskEnterNotifyCallback _cb :: TasklistTaskEnterNotifyCallback
_cb _ windows :: Ptr ()
windows _ = do
    TasklistTaskEnterNotifyCallback
_cb  Ptr ()
windows


-- | Connect a signal handler for the [taskEnterNotify](#signal:taskEnterNotify) signal, to be run before the default handler.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Signals.on' tasklist #taskEnterNotify callback
-- @
-- 
-- 
onTasklistTaskEnterNotify :: (IsTasklist a, MonadIO m) => a -> TasklistTaskEnterNotifyCallback -> m SignalHandlerId
onTasklistTaskEnterNotify :: a -> TasklistTaskEnterNotifyCallback -> m SignalHandlerId
onTasklistTaskEnterNotify obj :: a
obj cb :: TasklistTaskEnterNotifyCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_TasklistTaskEnterNotifyCallback
cb' = TasklistTaskEnterNotifyCallback
-> C_TasklistTaskEnterNotifyCallback
wrap_TasklistTaskEnterNotifyCallback TasklistTaskEnterNotifyCallback
cb
    FunPtr C_TasklistTaskEnterNotifyCallback
cb'' <- C_TasklistTaskEnterNotifyCallback
-> IO (FunPtr C_TasklistTaskEnterNotifyCallback)
mk_TasklistTaskEnterNotifyCallback C_TasklistTaskEnterNotifyCallback
cb'
    a
-> Text
-> FunPtr C_TasklistTaskEnterNotifyCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj "task-enter-notify" FunPtr C_TasklistTaskEnterNotifyCallback
cb'' SignalConnectMode
SignalConnectBefore Maybe Text
forall a. Maybe a
Nothing

-- | Connect a signal handler for the [taskEnterNotify](#signal:taskEnterNotify) signal, to be run after the default handler.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Signals.after' tasklist #taskEnterNotify callback
-- @
-- 
-- 
afterTasklistTaskEnterNotify :: (IsTasklist a, MonadIO m) => a -> TasklistTaskEnterNotifyCallback -> m SignalHandlerId
afterTasklistTaskEnterNotify :: a -> TasklistTaskEnterNotifyCallback -> m SignalHandlerId
afterTasklistTaskEnterNotify obj :: a
obj cb :: TasklistTaskEnterNotifyCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_TasklistTaskEnterNotifyCallback
cb' = TasklistTaskEnterNotifyCallback
-> C_TasklistTaskEnterNotifyCallback
wrap_TasklistTaskEnterNotifyCallback TasklistTaskEnterNotifyCallback
cb
    FunPtr C_TasklistTaskEnterNotifyCallback
cb'' <- C_TasklistTaskEnterNotifyCallback
-> IO (FunPtr C_TasklistTaskEnterNotifyCallback)
mk_TasklistTaskEnterNotifyCallback C_TasklistTaskEnterNotifyCallback
cb'
    a
-> Text
-> FunPtr C_TasklistTaskEnterNotifyCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj "task-enter-notify" FunPtr C_TasklistTaskEnterNotifyCallback
cb'' SignalConnectMode
SignalConnectAfter Maybe Text
forall a. Maybe a
Nothing


#if defined(ENABLE_OVERLOADING)
data TasklistTaskEnterNotifySignalInfo
instance SignalInfo TasklistTaskEnterNotifySignalInfo where
    type HaskellCallbackType TasklistTaskEnterNotifySignalInfo = TasklistTaskEnterNotifyCallback
    connectSignal obj cb connectMode detail = do
        let cb' = wrap_TasklistTaskEnterNotifyCallback cb
        cb'' <- mk_TasklistTaskEnterNotifyCallback cb'
        connectSignalFunPtr obj "task-enter-notify" cb'' connectMode detail

#endif

-- signal Tasklist::task-leave-notify
-- | Emitted when the task is entered.
type TasklistTaskLeaveNotifyCallback =
    Ptr ()
    -- ^ /@windows@/: the t'GI.GLib.Structs.List.List' with all the t'GI.Wnck.Objects.Window.Window' belonging to the task.
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `TasklistTaskLeaveNotifyCallback`@.
noTasklistTaskLeaveNotifyCallback :: Maybe TasklistTaskLeaveNotifyCallback
noTasklistTaskLeaveNotifyCallback :: Maybe TasklistTaskEnterNotifyCallback
noTasklistTaskLeaveNotifyCallback = Maybe TasklistTaskEnterNotifyCallback
forall a. Maybe a
Nothing

-- | Type for the callback on the (unwrapped) C side.
type C_TasklistTaskLeaveNotifyCallback =
    Ptr () ->                               -- object
    Ptr () ->
    Ptr () ->                               -- user_data
    IO ()

-- | Generate a function pointer callable from C code, from a `C_TasklistTaskLeaveNotifyCallback`.
foreign import ccall "wrapper"
    mk_TasklistTaskLeaveNotifyCallback :: C_TasklistTaskLeaveNotifyCallback -> IO (FunPtr C_TasklistTaskLeaveNotifyCallback)

-- | Wrap the callback into a `GClosure`.
genClosure_TasklistTaskLeaveNotify :: MonadIO m => TasklistTaskLeaveNotifyCallback -> m (GClosure C_TasklistTaskLeaveNotifyCallback)
genClosure_TasklistTaskLeaveNotify :: TasklistTaskEnterNotifyCallback
-> m (GClosure C_TasklistTaskEnterNotifyCallback)
genClosure_TasklistTaskLeaveNotify cb :: TasklistTaskEnterNotifyCallback
cb = IO (GClosure C_TasklistTaskEnterNotifyCallback)
-> m (GClosure C_TasklistTaskEnterNotifyCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_TasklistTaskEnterNotifyCallback)
 -> m (GClosure C_TasklistTaskEnterNotifyCallback))
-> IO (GClosure C_TasklistTaskEnterNotifyCallback)
-> m (GClosure C_TasklistTaskEnterNotifyCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_TasklistTaskEnterNotifyCallback
cb' = TasklistTaskEnterNotifyCallback
-> C_TasklistTaskEnterNotifyCallback
wrap_TasklistTaskLeaveNotifyCallback TasklistTaskEnterNotifyCallback
cb
    C_TasklistTaskEnterNotifyCallback
-> IO (FunPtr C_TasklistTaskEnterNotifyCallback)
mk_TasklistTaskLeaveNotifyCallback C_TasklistTaskEnterNotifyCallback
cb' IO (FunPtr C_TasklistTaskEnterNotifyCallback)
-> (FunPtr C_TasklistTaskEnterNotifyCallback
    -> IO (GClosure C_TasklistTaskEnterNotifyCallback))
-> IO (GClosure C_TasklistTaskEnterNotifyCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_TasklistTaskEnterNotifyCallback
-> IO (GClosure C_TasklistTaskEnterNotifyCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `TasklistTaskLeaveNotifyCallback` into a `C_TasklistTaskLeaveNotifyCallback`.
wrap_TasklistTaskLeaveNotifyCallback ::
    TasklistTaskLeaveNotifyCallback ->
    C_TasklistTaskLeaveNotifyCallback
wrap_TasklistTaskLeaveNotifyCallback :: TasklistTaskEnterNotifyCallback
-> C_TasklistTaskEnterNotifyCallback
wrap_TasklistTaskLeaveNotifyCallback _cb :: TasklistTaskEnterNotifyCallback
_cb _ windows :: Ptr ()
windows _ = do
    TasklistTaskEnterNotifyCallback
_cb  Ptr ()
windows


-- | Connect a signal handler for the [taskLeaveNotify](#signal:taskLeaveNotify) signal, to be run before the default handler.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Signals.on' tasklist #taskLeaveNotify callback
-- @
-- 
-- 
onTasklistTaskLeaveNotify :: (IsTasklist a, MonadIO m) => a -> TasklistTaskLeaveNotifyCallback -> m SignalHandlerId
onTasklistTaskLeaveNotify :: a -> TasklistTaskEnterNotifyCallback -> m SignalHandlerId
onTasklistTaskLeaveNotify obj :: a
obj cb :: TasklistTaskEnterNotifyCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_TasklistTaskEnterNotifyCallback
cb' = TasklistTaskEnterNotifyCallback
-> C_TasklistTaskEnterNotifyCallback
wrap_TasklistTaskLeaveNotifyCallback TasklistTaskEnterNotifyCallback
cb
    FunPtr C_TasklistTaskEnterNotifyCallback
cb'' <- C_TasklistTaskEnterNotifyCallback
-> IO (FunPtr C_TasklistTaskEnterNotifyCallback)
mk_TasklistTaskLeaveNotifyCallback C_TasklistTaskEnterNotifyCallback
cb'
    a
-> Text
-> FunPtr C_TasklistTaskEnterNotifyCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj "task-leave-notify" FunPtr C_TasklistTaskEnterNotifyCallback
cb'' SignalConnectMode
SignalConnectBefore Maybe Text
forall a. Maybe a
Nothing

-- | Connect a signal handler for the [taskLeaveNotify](#signal:taskLeaveNotify) signal, to be run after the default handler.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Signals.after' tasklist #taskLeaveNotify callback
-- @
-- 
-- 
afterTasklistTaskLeaveNotify :: (IsTasklist a, MonadIO m) => a -> TasklistTaskLeaveNotifyCallback -> m SignalHandlerId
afterTasklistTaskLeaveNotify :: a -> TasklistTaskEnterNotifyCallback -> m SignalHandlerId
afterTasklistTaskLeaveNotify obj :: a
obj cb :: TasklistTaskEnterNotifyCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_TasklistTaskEnterNotifyCallback
cb' = TasklistTaskEnterNotifyCallback
-> C_TasklistTaskEnterNotifyCallback
wrap_TasklistTaskLeaveNotifyCallback TasklistTaskEnterNotifyCallback
cb
    FunPtr C_TasklistTaskEnterNotifyCallback
cb'' <- C_TasklistTaskEnterNotifyCallback
-> IO (FunPtr C_TasklistTaskEnterNotifyCallback)
mk_TasklistTaskLeaveNotifyCallback C_TasklistTaskEnterNotifyCallback
cb'
    a
-> Text
-> FunPtr C_TasklistTaskEnterNotifyCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj "task-leave-notify" FunPtr C_TasklistTaskEnterNotifyCallback
cb'' SignalConnectMode
SignalConnectAfter Maybe Text
forall a. Maybe a
Nothing


#if defined(ENABLE_OVERLOADING)
data TasklistTaskLeaveNotifySignalInfo
instance SignalInfo TasklistTaskLeaveNotifySignalInfo where
    type HaskellCallbackType TasklistTaskLeaveNotifySignalInfo = TasklistTaskLeaveNotifyCallback
    connectSignal obj cb connectMode detail = do
        let cb' = wrap_TasklistTaskLeaveNotifyCallback cb
        cb'' <- mk_TasklistTaskLeaveNotifyCallback cb'
        connectSignalFunPtr obj "task-leave-notify" cb'' connectMode detail

#endif

#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList Tasklist
type instance O.AttributeList Tasklist = TasklistAttributeList
type TasklistAttributeList = ('[ '("appPaintable", Gtk.Widget.WidgetAppPaintablePropertyInfo), '("borderWidth", Gtk.Container.ContainerBorderWidthPropertyInfo), '("canDefault", Gtk.Widget.WidgetCanDefaultPropertyInfo), '("canFocus", Gtk.Widget.WidgetCanFocusPropertyInfo), '("child", Gtk.Container.ContainerChildPropertyInfo), '("compositeChild", Gtk.Widget.WidgetCompositeChildPropertyInfo), '("doubleBuffered", Gtk.Widget.WidgetDoubleBufferedPropertyInfo), '("events", Gtk.Widget.WidgetEventsPropertyInfo), '("expand", Gtk.Widget.WidgetExpandPropertyInfo), '("focusOnClick", Gtk.Widget.WidgetFocusOnClickPropertyInfo), '("halign", Gtk.Widget.WidgetHalignPropertyInfo), '("hasDefault", Gtk.Widget.WidgetHasDefaultPropertyInfo), '("hasFocus", Gtk.Widget.WidgetHasFocusPropertyInfo), '("hasTooltip", Gtk.Widget.WidgetHasTooltipPropertyInfo), '("heightRequest", Gtk.Widget.WidgetHeightRequestPropertyInfo), '("hexpand", Gtk.Widget.WidgetHexpandPropertyInfo), '("hexpandSet", Gtk.Widget.WidgetHexpandSetPropertyInfo), '("isFocus", Gtk.Widget.WidgetIsFocusPropertyInfo), '("margin", Gtk.Widget.WidgetMarginPropertyInfo), '("marginBottom", Gtk.Widget.WidgetMarginBottomPropertyInfo), '("marginEnd", Gtk.Widget.WidgetMarginEndPropertyInfo), '("marginLeft", Gtk.Widget.WidgetMarginLeftPropertyInfo), '("marginRight", Gtk.Widget.WidgetMarginRightPropertyInfo), '("marginStart", Gtk.Widget.WidgetMarginStartPropertyInfo), '("marginTop", Gtk.Widget.WidgetMarginTopPropertyInfo), '("name", Gtk.Widget.WidgetNamePropertyInfo), '("noShowAll", Gtk.Widget.WidgetNoShowAllPropertyInfo), '("opacity", Gtk.Widget.WidgetOpacityPropertyInfo), '("parent", Gtk.Widget.WidgetParentPropertyInfo), '("receivesDefault", Gtk.Widget.WidgetReceivesDefaultPropertyInfo), '("resizeMode", Gtk.Container.ContainerResizeModePropertyInfo), '("scaleFactor", Gtk.Widget.WidgetScaleFactorPropertyInfo), '("sensitive", Gtk.Widget.WidgetSensitivePropertyInfo), '("style", Gtk.Widget.WidgetStylePropertyInfo), '("tooltipMarkup", Gtk.Widget.WidgetTooltipMarkupPropertyInfo), '("tooltipText", Gtk.Widget.WidgetTooltipTextPropertyInfo), '("valign", Gtk.Widget.WidgetValignPropertyInfo), '("vexpand", Gtk.Widget.WidgetVexpandPropertyInfo), '("vexpandSet", Gtk.Widget.WidgetVexpandSetPropertyInfo), '("visible", Gtk.Widget.WidgetVisiblePropertyInfo), '("widthRequest", Gtk.Widget.WidgetWidthRequestPropertyInfo), '("window", Gtk.Widget.WidgetWindowPropertyInfo)] :: [(Symbol, *)])
#endif

#if defined(ENABLE_OVERLOADING)
#endif

#if defined(ENABLE_OVERLOADING)
type instance O.SignalList Tasklist = TasklistSignalList
type TasklistSignalList = ('[ '("accelClosuresChanged", Gtk.Widget.WidgetAccelClosuresChangedSignalInfo), '("add", Gtk.Container.ContainerAddSignalInfo), '("buttonPressEvent", Gtk.Widget.WidgetButtonPressEventSignalInfo), '("buttonReleaseEvent", Gtk.Widget.WidgetButtonReleaseEventSignalInfo), '("canActivateAccel", Gtk.Widget.WidgetCanActivateAccelSignalInfo), '("checkResize", Gtk.Container.ContainerCheckResizeSignalInfo), '("childNotify", Gtk.Widget.WidgetChildNotifySignalInfo), '("compositedChanged", Gtk.Widget.WidgetCompositedChangedSignalInfo), '("configureEvent", Gtk.Widget.WidgetConfigureEventSignalInfo), '("damageEvent", Gtk.Widget.WidgetDamageEventSignalInfo), '("deleteEvent", Gtk.Widget.WidgetDeleteEventSignalInfo), '("destroy", Gtk.Widget.WidgetDestroySignalInfo), '("destroyEvent", Gtk.Widget.WidgetDestroyEventSignalInfo), '("directionChanged", Gtk.Widget.WidgetDirectionChangedSignalInfo), '("dragBegin", Gtk.Widget.WidgetDragBeginSignalInfo), '("dragDataDelete", Gtk.Widget.WidgetDragDataDeleteSignalInfo), '("dragDataGet", Gtk.Widget.WidgetDragDataGetSignalInfo), '("dragDataReceived", Gtk.Widget.WidgetDragDataReceivedSignalInfo), '("dragDrop", Gtk.Widget.WidgetDragDropSignalInfo), '("dragEnd", Gtk.Widget.WidgetDragEndSignalInfo), '("dragFailed", Gtk.Widget.WidgetDragFailedSignalInfo), '("dragLeave", Gtk.Widget.WidgetDragLeaveSignalInfo), '("dragMotion", Gtk.Widget.WidgetDragMotionSignalInfo), '("draw", Gtk.Widget.WidgetDrawSignalInfo), '("enterNotifyEvent", Gtk.Widget.WidgetEnterNotifyEventSignalInfo), '("event", Gtk.Widget.WidgetEventSignalInfo), '("eventAfter", Gtk.Widget.WidgetEventAfterSignalInfo), '("focus", Gtk.Widget.WidgetFocusSignalInfo), '("focusInEvent", Gtk.Widget.WidgetFocusInEventSignalInfo), '("focusOutEvent", Gtk.Widget.WidgetFocusOutEventSignalInfo), '("grabBrokenEvent", Gtk.Widget.WidgetGrabBrokenEventSignalInfo), '("grabFocus", Gtk.Widget.WidgetGrabFocusSignalInfo), '("grabNotify", Gtk.Widget.WidgetGrabNotifySignalInfo), '("hide", Gtk.Widget.WidgetHideSignalInfo), '("hierarchyChanged", Gtk.Widget.WidgetHierarchyChangedSignalInfo), '("keyPressEvent", Gtk.Widget.WidgetKeyPressEventSignalInfo), '("keyReleaseEvent", Gtk.Widget.WidgetKeyReleaseEventSignalInfo), '("keynavFailed", Gtk.Widget.WidgetKeynavFailedSignalInfo), '("leaveNotifyEvent", Gtk.Widget.WidgetLeaveNotifyEventSignalInfo), '("map", Gtk.Widget.WidgetMapSignalInfo), '("mapEvent", Gtk.Widget.WidgetMapEventSignalInfo), '("mnemonicActivate", Gtk.Widget.WidgetMnemonicActivateSignalInfo), '("motionNotifyEvent", Gtk.Widget.WidgetMotionNotifyEventSignalInfo), '("moveFocus", Gtk.Widget.WidgetMoveFocusSignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo), '("parentSet", Gtk.Widget.WidgetParentSetSignalInfo), '("popupMenu", Gtk.Widget.WidgetPopupMenuSignalInfo), '("propertyNotifyEvent", Gtk.Widget.WidgetPropertyNotifyEventSignalInfo), '("proximityInEvent", Gtk.Widget.WidgetProximityInEventSignalInfo), '("proximityOutEvent", Gtk.Widget.WidgetProximityOutEventSignalInfo), '("queryTooltip", Gtk.Widget.WidgetQueryTooltipSignalInfo), '("realize", Gtk.Widget.WidgetRealizeSignalInfo), '("remove", Gtk.Container.ContainerRemoveSignalInfo), '("screenChanged", Gtk.Widget.WidgetScreenChangedSignalInfo), '("scrollEvent", Gtk.Widget.WidgetScrollEventSignalInfo), '("selectionClearEvent", Gtk.Widget.WidgetSelectionClearEventSignalInfo), '("selectionGet", Gtk.Widget.WidgetSelectionGetSignalInfo), '("selectionNotifyEvent", Gtk.Widget.WidgetSelectionNotifyEventSignalInfo), '("selectionReceived", Gtk.Widget.WidgetSelectionReceivedSignalInfo), '("selectionRequestEvent", Gtk.Widget.WidgetSelectionRequestEventSignalInfo), '("setFocusChild", Gtk.Container.ContainerSetFocusChildSignalInfo), '("show", Gtk.Widget.WidgetShowSignalInfo), '("showHelp", Gtk.Widget.WidgetShowHelpSignalInfo), '("sizeAllocate", Gtk.Widget.WidgetSizeAllocateSignalInfo), '("stateChanged", Gtk.Widget.WidgetStateChangedSignalInfo), '("stateFlagsChanged", Gtk.Widget.WidgetStateFlagsChangedSignalInfo), '("styleSet", Gtk.Widget.WidgetStyleSetSignalInfo), '("styleUpdated", Gtk.Widget.WidgetStyleUpdatedSignalInfo), '("taskEnterNotify", TasklistTaskEnterNotifySignalInfo), '("taskLeaveNotify", TasklistTaskLeaveNotifySignalInfo), '("touchEvent", Gtk.Widget.WidgetTouchEventSignalInfo), '("unmap", Gtk.Widget.WidgetUnmapSignalInfo), '("unmapEvent", Gtk.Widget.WidgetUnmapEventSignalInfo), '("unrealize", Gtk.Widget.WidgetUnrealizeSignalInfo), '("visibilityNotifyEvent", Gtk.Widget.WidgetVisibilityNotifyEventSignalInfo), '("windowStateEvent", Gtk.Widget.WidgetWindowStateEventSignalInfo)] :: [(Symbol, *)])

#endif

-- method Tasklist::new
-- method type : Constructor
-- Args: []
-- Lengths: []
-- returnType: Just (TInterface Name { namespace = "Wnck" , name = "Tasklist" })
-- throws : False
-- Skip return : False

foreign import ccall "wnck_tasklist_new" wnck_tasklist_new :: 
    IO (Ptr Tasklist)

-- | Creates a new t'GI.Wnck.Objects.Tasklist.Tasklist'. The t'GI.Wnck.Objects.Tasklist.Tasklist' will list t'GI.Wnck.Objects.Window.Window' of the
-- t'GI.Wnck.Objects.Screen.Screen' it is on.
tasklistNew ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    m Tasklist
    -- ^ __Returns:__ a newly created t'GI.Wnck.Objects.Tasklist.Tasklist'.
tasklistNew :: m Tasklist
tasklistNew  = IO Tasklist -> m Tasklist
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Tasklist -> m Tasklist) -> IO Tasklist -> m Tasklist
forall a b. (a -> b) -> a -> b
$ do
    Ptr Tasklist
result <- IO (Ptr Tasklist)
wnck_tasklist_new
    Text -> Ptr Tasklist -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "tasklistNew" Ptr Tasklist
result
    Tasklist
result' <- ((ManagedPtr Tasklist -> Tasklist) -> Ptr Tasklist -> IO Tasklist
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Tasklist -> Tasklist
Tasklist) Ptr Tasklist
result
    Tasklist -> IO Tasklist
forall (m :: * -> *) a. Monad m => a -> m a
return Tasklist
result'

#if defined(ENABLE_OVERLOADING)
#endif

-- method Tasklist::get_scroll_enabled
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "tasklist"
--           , argType =
--               TInterface Name { namespace = "Wnck" , name = "Tasklist" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #WnckTasklist." , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "wnck_tasklist_get_scroll_enabled" wnck_tasklist_get_scroll_enabled :: 
    Ptr Tasklist ->                         -- tasklist : TInterface (Name {namespace = "Wnck", name = "Tasklist"})
    IO CInt

-- | Gets the scroll behavior of the /@tasklist@/.
-- 
-- /Since: 3.24.0/
tasklistGetScrollEnabled ::
    (B.CallStack.HasCallStack, MonadIO m, IsTasklist a) =>
    a
    -- ^ /@tasklist@/: a t'GI.Wnck.Objects.Tasklist.Tasklist'.
    -> m Bool
tasklistGetScrollEnabled :: a -> m Bool
tasklistGetScrollEnabled tasklist :: a
tasklist = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr Tasklist
tasklist' <- a -> IO (Ptr Tasklist)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
tasklist
    CInt
result <- Ptr Tasklist -> IO CInt
wnck_tasklist_get_scroll_enabled Ptr Tasklist
tasklist'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= 0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
tasklist
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

#if defined(ENABLE_OVERLOADING)
data TasklistGetScrollEnabledMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsTasklist a) => O.MethodInfo TasklistGetScrollEnabledMethodInfo a signature where
    overloadedMethod = tasklistGetScrollEnabled

#endif

-- method Tasklist::get_size_hint_list
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "tasklist"
--           , argType =
--               TInterface Name { namespace = "Wnck" , name = "Tasklist" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #WnckTasklist." , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "n_elements"
--           , argType = TBasicType TInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just
--                       "return location for the number of elements in the array\nreturned by this function. This number should always be pair."
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TInt)
-- throws : False
-- Skip return : False

foreign import ccall "wnck_tasklist_get_size_hint_list" wnck_tasklist_get_size_hint_list :: 
    Ptr Tasklist ->                         -- tasklist : TInterface (Name {namespace = "Wnck", name = "Tasklist"})
    Int32 ->                                -- n_elements : TBasicType TInt
    IO Int32

-- | Since a t'GI.Wnck.Objects.Tasklist.Tasklist' does not have a fixed size (t'GI.Wnck.Objects.Window.Window' can be grouped
-- when needed, for example), the standard size request mechanism in GTK+ is
-- not enough to announce what sizes can be used by /@tasklist@/. The size hints
-- mechanism is a solution for this. See @/panel_applet_set_size_hints()/@ for more
-- information.
tasklistGetSizeHintList ::
    (B.CallStack.HasCallStack, MonadIO m, IsTasklist a) =>
    a
    -- ^ /@tasklist@/: a t'GI.Wnck.Objects.Tasklist.Tasklist'.
    -> Int32
    -- ^ /@nElements@/: return location for the number of elements in the array
    -- returned by this function. This number should always be pair.
    -> m Int32
    -- ^ __Returns:__ a list of size hints that can be used to allocate an
    -- appropriate size for /@tasklist@/.
tasklistGetSizeHintList :: a -> Int32 -> m Int32
tasklistGetSizeHintList tasklist :: a
tasklist nElements :: Int32
nElements = IO Int32 -> m Int32
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Int32 -> m Int32) -> IO Int32 -> m Int32
forall a b. (a -> b) -> a -> b
$ do
    Ptr Tasklist
tasklist' <- a -> IO (Ptr Tasklist)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
tasklist
    Int32
result <- Ptr Tasklist -> Int32 -> IO Int32
wnck_tasklist_get_size_hint_list Ptr Tasklist
tasklist' Int32
nElements
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
tasklist
    Int32 -> IO Int32
forall (m :: * -> *) a. Monad m => a -> m a
return Int32
result

#if defined(ENABLE_OVERLOADING)
data TasklistGetSizeHintListMethodInfo
instance (signature ~ (Int32 -> m Int32), MonadIO m, IsTasklist a) => O.MethodInfo TasklistGetSizeHintListMethodInfo a signature where
    overloadedMethod = tasklistGetSizeHintList

#endif

-- method Tasklist::set_button_relief
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "tasklist"
--           , argType =
--               TInterface Name { namespace = "Wnck" , name = "Tasklist" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #WnckTasklist." , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "relief"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "ReliefStyle" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a relief type." , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "wnck_tasklist_set_button_relief" wnck_tasklist_set_button_relief :: 
    Ptr Tasklist ->                         -- tasklist : TInterface (Name {namespace = "Wnck", name = "Tasklist"})
    CUInt ->                                -- relief : TInterface (Name {namespace = "Gtk", name = "ReliefStyle"})
    IO ()

-- | Sets the relief type of the buttons in /@tasklist@/ to /@relief@/. The main use of
-- this function is proper integration of t'GI.Wnck.Objects.Tasklist.Tasklist' in panels with
-- non-system backgrounds.
-- 
-- /Since: 2.12/
tasklistSetButtonRelief ::
    (B.CallStack.HasCallStack, MonadIO m, IsTasklist a) =>
    a
    -- ^ /@tasklist@/: a t'GI.Wnck.Objects.Tasklist.Tasklist'.
    -> Gtk.Enums.ReliefStyle
    -- ^ /@relief@/: a relief type.
    -> m ()
tasklistSetButtonRelief :: a -> ReliefStyle -> m ()
tasklistSetButtonRelief tasklist :: a
tasklist relief :: ReliefStyle
relief = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Tasklist
tasklist' <- a -> IO (Ptr Tasklist)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
tasklist
    let relief' :: CUInt
relief' = (Int -> CUInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CUInt) -> (ReliefStyle -> Int) -> ReliefStyle -> CUInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ReliefStyle -> Int
forall a. Enum a => a -> Int
fromEnum) ReliefStyle
relief
    Ptr Tasklist -> CUInt -> IO ()
wnck_tasklist_set_button_relief Ptr Tasklist
tasklist' CUInt
relief'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
tasklist
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data TasklistSetButtonReliefMethodInfo
instance (signature ~ (Gtk.Enums.ReliefStyle -> m ()), MonadIO m, IsTasklist a) => O.MethodInfo TasklistSetButtonReliefMethodInfo a signature where
    overloadedMethod = tasklistSetButtonRelief

#endif

-- method Tasklist::set_grouping
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "tasklist"
--           , argType =
--               TInterface Name { namespace = "Wnck" , name = "Tasklist" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #WnckTasklist." , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "grouping"
--           , argType =
--               TInterface
--                 Name { namespace = "Wnck" , name = "TasklistGroupingType" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a grouping policy." , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "wnck_tasklist_set_grouping" wnck_tasklist_set_grouping :: 
    Ptr Tasklist ->                         -- tasklist : TInterface (Name {namespace = "Wnck", name = "Tasklist"})
    CUInt ->                                -- grouping : TInterface (Name {namespace = "Wnck", name = "TasklistGroupingType"})
    IO ()

-- | Sets the grouping policy for /@tasklist@/ to /@grouping@/.
tasklistSetGrouping ::
    (B.CallStack.HasCallStack, MonadIO m, IsTasklist a) =>
    a
    -- ^ /@tasklist@/: a t'GI.Wnck.Objects.Tasklist.Tasklist'.
    -> Wnck.Enums.TasklistGroupingType
    -- ^ /@grouping@/: a grouping policy.
    -> m ()
tasklistSetGrouping :: a -> TasklistGroupingType -> m ()
tasklistSetGrouping tasklist :: a
tasklist grouping :: TasklistGroupingType
grouping = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Tasklist
tasklist' <- a -> IO (Ptr Tasklist)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
tasklist
    let grouping' :: CUInt
grouping' = (Int -> CUInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CUInt)
-> (TasklistGroupingType -> Int) -> TasklistGroupingType -> CUInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. TasklistGroupingType -> Int
forall a. Enum a => a -> Int
fromEnum) TasklistGroupingType
grouping
    Ptr Tasklist -> CUInt -> IO ()
wnck_tasklist_set_grouping Ptr Tasklist
tasklist' CUInt
grouping'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
tasklist
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data TasklistSetGroupingMethodInfo
instance (signature ~ (Wnck.Enums.TasklistGroupingType -> m ()), MonadIO m, IsTasklist a) => O.MethodInfo TasklistSetGroupingMethodInfo a signature where
    overloadedMethod = tasklistSetGrouping

#endif

-- method Tasklist::set_grouping_limit
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "tasklist"
--           , argType =
--               TInterface Name { namespace = "Wnck" , name = "Tasklist" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #WnckTasklist." , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "limit"
--           , argType = TBasicType TInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a size in pixels." , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "wnck_tasklist_set_grouping_limit" wnck_tasklist_set_grouping_limit :: 
    Ptr Tasklist ->                         -- tasklist : TInterface (Name {namespace = "Wnck", name = "Tasklist"})
    Int32 ->                                -- limit : TBasicType TInt
    IO ()

-- | Sets the maximum size of buttons in /@tasklist@/ before /@tasklist@/ tries to
-- group t'GI.Wnck.Objects.Window.Window' in the same t'GI.Wnck.Objects.Application.Application' in only one button. This
-- limit is valid only when the grouping policy of /@tasklist@/ is
-- 'GI.Wnck.Enums.TasklistGroupingTypeAutoGroup'.
tasklistSetGroupingLimit ::
    (B.CallStack.HasCallStack, MonadIO m, IsTasklist a) =>
    a
    -- ^ /@tasklist@/: a t'GI.Wnck.Objects.Tasklist.Tasklist'.
    -> Int32
    -- ^ /@limit@/: a size in pixels.
    -> m ()
tasklistSetGroupingLimit :: a -> Int32 -> m ()
tasklistSetGroupingLimit tasklist :: a
tasklist limit :: Int32
limit = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Tasklist
tasklist' <- a -> IO (Ptr Tasklist)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
tasklist
    Ptr Tasklist -> Int32 -> IO ()
wnck_tasklist_set_grouping_limit Ptr Tasklist
tasklist' Int32
limit
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
tasklist
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data TasklistSetGroupingLimitMethodInfo
instance (signature ~ (Int32 -> m ()), MonadIO m, IsTasklist a) => O.MethodInfo TasklistSetGroupingLimitMethodInfo a signature where
    overloadedMethod = tasklistSetGroupingLimit

#endif

-- method Tasklist::set_include_all_workspaces
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "tasklist"
--           , argType =
--               TInterface Name { namespace = "Wnck" , name = "Tasklist" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #WnckTasklist." , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "include_all_workspaces"
--           , argType = TBasicType TBoolean
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just
--                       "whether to display #WnckWindow from all\n#WnckWorkspace in @tasklist."
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "wnck_tasklist_set_include_all_workspaces" wnck_tasklist_set_include_all_workspaces :: 
    Ptr Tasklist ->                         -- tasklist : TInterface (Name {namespace = "Wnck", name = "Tasklist"})
    CInt ->                                 -- include_all_workspaces : TBasicType TBoolean
    IO ()

-- | Sets /@tasklist@/ to display t'GI.Wnck.Objects.Window.Window' from all t'GI.Wnck.Objects.Workspace.Workspace' or not,
-- according to /@includeAllWorkspaces@/.
-- 
-- Note that if the active t'GI.Wnck.Objects.Workspace.Workspace' has a viewport and if
-- /@includeAllWorkspaces@/ is 'P.False', then only the t'GI.Wnck.Objects.Window.Window' visible in the
-- viewport are displayed in /@tasklist@/. The rationale for this is that the
-- viewport is generally used to implement workspace-like behavior. A
-- side-effect of this is that, when using multiple t'GI.Wnck.Objects.Workspace.Workspace' with
-- viewport, it is not possible to show all t'GI.Wnck.Objects.Window.Window' from a t'GI.Wnck.Objects.Workspace.Workspace'
-- (even those that are not visible in the viewport) in /@tasklist@/ without
-- showing all t'GI.Wnck.Objects.Window.Window' from all t'GI.Wnck.Objects.Workspace.Workspace'.
tasklistSetIncludeAllWorkspaces ::
    (B.CallStack.HasCallStack, MonadIO m, IsTasklist a) =>
    a
    -- ^ /@tasklist@/: a t'GI.Wnck.Objects.Tasklist.Tasklist'.
    -> Bool
    -- ^ /@includeAllWorkspaces@/: whether to display t'GI.Wnck.Objects.Window.Window' from all
    -- t'GI.Wnck.Objects.Workspace.Workspace' in /@tasklist@/.
    -> m ()
tasklistSetIncludeAllWorkspaces :: a -> Bool -> m ()
tasklistSetIncludeAllWorkspaces tasklist :: a
tasklist includeAllWorkspaces :: Bool
includeAllWorkspaces = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Tasklist
tasklist' <- a -> IO (Ptr Tasklist)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
tasklist
    let includeAllWorkspaces' :: CInt
includeAllWorkspaces' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
includeAllWorkspaces
    Ptr Tasklist -> CInt -> IO ()
wnck_tasklist_set_include_all_workspaces Ptr Tasklist
tasklist' CInt
includeAllWorkspaces'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
tasklist
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data TasklistSetIncludeAllWorkspacesMethodInfo
instance (signature ~ (Bool -> m ()), MonadIO m, IsTasklist a) => O.MethodInfo TasklistSetIncludeAllWorkspacesMethodInfo a signature where
    overloadedMethod = tasklistSetIncludeAllWorkspaces

#endif

-- method Tasklist::set_middle_click_close
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "tasklist"
--           , argType =
--               TInterface Name { namespace = "Wnck" , name = "Tasklist" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #WnckTasklist." , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "middle_click_close"
--           , argType = TBasicType TBoolean
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "whether to close windows with middle click on\nbutton."
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "wnck_tasklist_set_middle_click_close" wnck_tasklist_set_middle_click_close :: 
    Ptr Tasklist ->                         -- tasklist : TInterface (Name {namespace = "Wnck", name = "Tasklist"})
    CInt ->                                 -- middle_click_close : TBasicType TBoolean
    IO ()

-- | Sets /@tasklist@/ to close windows with mouse middle click on button,
-- according to /@middleClickClose@/.
-- 
-- /Since: 3.4.6/
tasklistSetMiddleClickClose ::
    (B.CallStack.HasCallStack, MonadIO m, IsTasklist a) =>
    a
    -- ^ /@tasklist@/: a t'GI.Wnck.Objects.Tasklist.Tasklist'.
    -> Bool
    -- ^ /@middleClickClose@/: whether to close windows with middle click on
    -- button.
    -> m ()
tasklistSetMiddleClickClose :: a -> Bool -> m ()
tasklistSetMiddleClickClose tasklist :: a
tasklist middleClickClose :: Bool
middleClickClose = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Tasklist
tasklist' <- a -> IO (Ptr Tasklist)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
tasklist
    let middleClickClose' :: CInt
middleClickClose' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
middleClickClose
    Ptr Tasklist -> CInt -> IO ()
wnck_tasklist_set_middle_click_close Ptr Tasklist
tasklist' CInt
middleClickClose'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
tasklist
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data TasklistSetMiddleClickCloseMethodInfo
instance (signature ~ (Bool -> m ()), MonadIO m, IsTasklist a) => O.MethodInfo TasklistSetMiddleClickCloseMethodInfo a signature where
    overloadedMethod = tasklistSetMiddleClickClose

#endif

-- method Tasklist::set_orientation
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "tasklist"
--           , argType =
--               TInterface Name { namespace = "Wnck" , name = "Tasklist" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #WnckTasklist." , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "orient"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "Orientation" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a GtkOrientation." , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "wnck_tasklist_set_orientation" wnck_tasklist_set_orientation :: 
    Ptr Tasklist ->                         -- tasklist : TInterface (Name {namespace = "Wnck", name = "Tasklist"})
    CUInt ->                                -- orient : TInterface (Name {namespace = "Gtk", name = "Orientation"})
    IO ()

-- | Set the orientation of the /@tasklist@/ to match /@orient@/.
-- This function can be used to integrate a t'GI.Wnck.Objects.Tasklist.Tasklist' in vertical panels.
-- 
-- /Since: 3.4.6/
tasklistSetOrientation ::
    (B.CallStack.HasCallStack, MonadIO m, IsTasklist a) =>
    a
    -- ^ /@tasklist@/: a t'GI.Wnck.Objects.Tasklist.Tasklist'.
    -> Gtk.Enums.Orientation
    -- ^ /@orient@/: a GtkOrientation.
    -> m ()
tasklistSetOrientation :: a -> Orientation -> m ()
tasklistSetOrientation tasklist :: a
tasklist orient :: Orientation
orient = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Tasklist
tasklist' <- a -> IO (Ptr Tasklist)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
tasklist
    let orient' :: CUInt
orient' = (Int -> CUInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CUInt) -> (Orientation -> Int) -> Orientation -> CUInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Orientation -> Int
forall a. Enum a => a -> Int
fromEnum) Orientation
orient
    Ptr Tasklist -> CUInt -> IO ()
wnck_tasklist_set_orientation Ptr Tasklist
tasklist' CUInt
orient'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
tasklist
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data TasklistSetOrientationMethodInfo
instance (signature ~ (Gtk.Enums.Orientation -> m ()), MonadIO m, IsTasklist a) => O.MethodInfo TasklistSetOrientationMethodInfo a signature where
    overloadedMethod = tasklistSetOrientation

#endif

-- method Tasklist::set_scroll_enabled
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "tasklist"
--           , argType =
--               TInterface Name { namespace = "Wnck" , name = "Tasklist" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #WnckTasklist." , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "scroll_enabled"
--           , argType = TBasicType TBoolean
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a boolean." , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "wnck_tasklist_set_scroll_enabled" wnck_tasklist_set_scroll_enabled :: 
    Ptr Tasklist ->                         -- tasklist : TInterface (Name {namespace = "Wnck", name = "Tasklist"})
    CInt ->                                 -- scroll_enabled : TBasicType TBoolean
    IO ()

-- | Sets the scroll behavior of the /@tasklist@/. When set to 'P.True', a scroll
-- event over the tasklist will change the current window accordingly.
-- 
-- /Since: 3.24.0/
tasklistSetScrollEnabled ::
    (B.CallStack.HasCallStack, MonadIO m, IsTasklist a) =>
    a
    -- ^ /@tasklist@/: a t'GI.Wnck.Objects.Tasklist.Tasklist'.
    -> Bool
    -- ^ /@scrollEnabled@/: a boolean.
    -> m ()
tasklistSetScrollEnabled :: a -> Bool -> m ()
tasklistSetScrollEnabled tasklist :: a
tasklist scrollEnabled :: Bool
scrollEnabled = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Tasklist
tasklist' <- a -> IO (Ptr Tasklist)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
tasklist
    let scrollEnabled' :: CInt
scrollEnabled' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
scrollEnabled
    Ptr Tasklist -> CInt -> IO ()
wnck_tasklist_set_scroll_enabled Ptr Tasklist
tasklist' CInt
scrollEnabled'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
tasklist
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data TasklistSetScrollEnabledMethodInfo
instance (signature ~ (Bool -> m ()), MonadIO m, IsTasklist a) => O.MethodInfo TasklistSetScrollEnabledMethodInfo a signature where
    overloadedMethod = tasklistSetScrollEnabled

#endif

-- method Tasklist::set_switch_workspace_on_unminimize
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "tasklist"
--           , argType =
--               TInterface Name { namespace = "Wnck" , name = "Tasklist" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #WnckTasklist." , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "switch_workspace_on_unminimize"
--           , argType = TBasicType TBoolean
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just
--                       "whether to activate the #WnckWorkspace a\n#WnckWindow is on when unminimizing it."
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "wnck_tasklist_set_switch_workspace_on_unminimize" wnck_tasklist_set_switch_workspace_on_unminimize :: 
    Ptr Tasklist ->                         -- tasklist : TInterface (Name {namespace = "Wnck", name = "Tasklist"})
    CInt ->                                 -- switch_workspace_on_unminimize : TBasicType TBoolean
    IO ()

-- | Sets /@tasklist@/ to activate or not the t'GI.Wnck.Objects.Workspace.Workspace' a t'GI.Wnck.Objects.Window.Window' is on
-- when unminimizing it, according to /@switchWorkspaceOnUnminimize@/.
-- 
-- FIXME: does it still work?
tasklistSetSwitchWorkspaceOnUnminimize ::
    (B.CallStack.HasCallStack, MonadIO m, IsTasklist a) =>
    a
    -- ^ /@tasklist@/: a t'GI.Wnck.Objects.Tasklist.Tasklist'.
    -> Bool
    -- ^ /@switchWorkspaceOnUnminimize@/: whether to activate the t'GI.Wnck.Objects.Workspace.Workspace' a
    -- t'GI.Wnck.Objects.Window.Window' is on when unminimizing it.
    -> m ()
tasklistSetSwitchWorkspaceOnUnminimize :: a -> Bool -> m ()
tasklistSetSwitchWorkspaceOnUnminimize tasklist :: a
tasklist switchWorkspaceOnUnminimize :: Bool
switchWorkspaceOnUnminimize = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Tasklist
tasklist' <- a -> IO (Ptr Tasklist)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
tasklist
    let switchWorkspaceOnUnminimize' :: CInt
switchWorkspaceOnUnminimize' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
switchWorkspaceOnUnminimize
    Ptr Tasklist -> CInt -> IO ()
wnck_tasklist_set_switch_workspace_on_unminimize Ptr Tasklist
tasklist' CInt
switchWorkspaceOnUnminimize'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
tasklist
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data TasklistSetSwitchWorkspaceOnUnminimizeMethodInfo
instance (signature ~ (Bool -> m ()), MonadIO m, IsTasklist a) => O.MethodInfo TasklistSetSwitchWorkspaceOnUnminimizeMethodInfo a signature where
    overloadedMethod = tasklistSetSwitchWorkspaceOnUnminimize

#endif