{- |
Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License    : LGPL-2.1
Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)

The 'GI.Wnck.Objects.Tasklist.Tasklist' struct contains only private fields and should not be
directly accessed.
-}

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

module GI.Wnck.Objects.Tasklist
    (

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


 -- * Methods
-- ** getScrollEnabled #method:getScrollEnabled#

#if ENABLE_OVERLOADING
    TasklistGetScrollEnabledMethodInfo      ,
#endif
    tasklistGetScrollEnabled                ,


-- ** getSizeHintList #method:getSizeHintList#

#if ENABLE_OVERLOADING
    TasklistGetSizeHintListMethodInfo       ,
#endif
    tasklistGetSizeHintList                 ,


-- ** new #method:new#

    tasklistNew                             ,


-- ** setButtonRelief #method:setButtonRelief#

#if ENABLE_OVERLOADING
    TasklistSetButtonReliefMethodInfo       ,
#endif
    tasklistSetButtonRelief                 ,


-- ** setGrouping #method:setGrouping#

#if ENABLE_OVERLOADING
    TasklistSetGroupingMethodInfo           ,
#endif
    tasklistSetGrouping                     ,


-- ** setGroupingLimit #method:setGroupingLimit#

#if ENABLE_OVERLOADING
    TasklistSetGroupingLimitMethodInfo      ,
#endif
    tasklistSetGroupingLimit                ,


-- ** setIncludeAllWorkspaces #method:setIncludeAllWorkspaces#

#if ENABLE_OVERLOADING
    TasklistSetIncludeAllWorkspacesMethodInfo,
#endif
    tasklistSetIncludeAllWorkspaces         ,


-- ** setMiddleClickClose #method:setMiddleClickClose#

#if ENABLE_OVERLOADING
    TasklistSetMiddleClickCloseMethodInfo   ,
#endif
    tasklistSetMiddleClickClose             ,


-- ** setOrientation #method:setOrientation#

#if ENABLE_OVERLOADING
    TasklistSetOrientationMethodInfo        ,
#endif
    tasklistSetOrientation                  ,


-- ** setScrollEnabled #method:setScrollEnabled#

#if ENABLE_OVERLOADING
    TasklistSetScrollEnabledMethodInfo      ,
#endif
    tasklistSetScrollEnabled                ,


-- ** setSwitchWorkspaceOnUnminimize #method:setSwitchWorkspaceOnUnminimize#

#if ENABLE_OVERLOADING
    TasklistSetSwitchWorkspaceOnUnminimizeMethodInfo,
#endif
    tasklistSetSwitchWorkspaceOnUnminimize  ,




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

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


-- ** taskLeaveNotify #signal:taskLeaveNotify#

    C_TasklistTaskLeaveNotifyCallback       ,
    TasklistTaskLeaveNotifyCallback         ,
#if 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.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)
foreign import ccall "wnck_tasklist_get_type"
    c_wnck_tasklist_get_type :: IO GType

instance GObject Tasklist where
    gobjectType = c_wnck_tasklist_get_type


-- | 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 = liftIO . unsafeCastTo Tasklist

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

#if 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 "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 (O.MethodProxy :: O.MethodProxy info)
#else
    fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#endif

#endif

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

-- | A convenience synonym for @`Nothing` :: `Maybe` `TasklistTaskEnterNotifyCallback`@.
noTasklistTaskEnterNotifyCallback :: Maybe TasklistTaskEnterNotifyCallback
noTasklistTaskEnterNotifyCallback = 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 cb = liftIO $ do
    let cb' = wrap_TasklistTaskEnterNotifyCallback cb
    mk_TasklistTaskEnterNotifyCallback cb' >>= B.GClosure.newGClosure


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


{- |
Connect a signal handler for the “@task-enter-notify@” 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 obj cb = liftIO $ do
    let cb' = wrap_TasklistTaskEnterNotifyCallback cb
    cb'' <- mk_TasklistTaskEnterNotifyCallback cb'
    connectSignalFunPtr obj "task-enter-notify" cb'' SignalConnectBefore

{- |
Connect a signal handler for the “@task-enter-notify@” 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 obj cb = liftIO $ do
    let cb' = wrap_TasklistTaskEnterNotifyCallback cb
    cb'' <- mk_TasklistTaskEnterNotifyCallback cb'
    connectSignalFunPtr obj "task-enter-notify" cb'' SignalConnectAfter


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

-- | A convenience synonym for @`Nothing` :: `Maybe` `TasklistTaskLeaveNotifyCallback`@.
noTasklistTaskLeaveNotifyCallback :: Maybe TasklistTaskLeaveNotifyCallback
noTasklistTaskLeaveNotifyCallback = 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 cb = liftIO $ do
    let cb' = wrap_TasklistTaskLeaveNotifyCallback cb
    mk_TasklistTaskLeaveNotifyCallback cb' >>= B.GClosure.newGClosure


-- | Wrap a `TasklistTaskLeaveNotifyCallback` into a `C_TasklistTaskLeaveNotifyCallback`.
wrap_TasklistTaskLeaveNotifyCallback ::
    TasklistTaskLeaveNotifyCallback ->
    C_TasklistTaskLeaveNotifyCallback
wrap_TasklistTaskLeaveNotifyCallback _cb _ windows _ = do
    _cb  windows


{- |
Connect a signal handler for the “@task-leave-notify@” 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 obj cb = liftIO $ do
    let cb' = wrap_TasklistTaskLeaveNotifyCallback cb
    cb'' <- mk_TasklistTaskLeaveNotifyCallback cb'
    connectSignalFunPtr obj "task-leave-notify" cb'' SignalConnectBefore

{- |
Connect a signal handler for the “@task-leave-notify@” 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 obj cb = liftIO $ do
    let cb' = wrap_TasklistTaskLeaveNotifyCallback cb
    cb'' <- mk_TasklistTaskLeaveNotifyCallback cb'
    connectSignalFunPtr obj "task-leave-notify" cb'' SignalConnectAfter


#if 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 ENABLE_OVERLOADING
#endif

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

data TasklistTaskLeaveNotifySignalInfo
instance SignalInfo TasklistTaskLeaveNotifySignalInfo where
    type HaskellCallbackType TasklistTaskLeaveNotifySignalInfo = TasklistTaskLeaveNotifyCallback
    connectSignal _ obj cb connectMode = do
        let cb' = wrap_TasklistTaskLeaveNotifyCallback cb
        cb'' <- mk_TasklistTaskLeaveNotifyCallback cb'
        connectSignalFunPtr obj "task-leave-notify" cb'' connectMode

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 'GI.Wnck.Objects.Tasklist.Tasklist'. The 'GI.Wnck.Objects.Tasklist.Tasklist' will list 'GI.Wnck.Objects.Window.Window' of the
'GI.Wnck.Objects.Screen.Screen' it is on.
-}
tasklistNew ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    m Tasklist
    {- ^ __Returns:__ a newly created 'GI.Wnck.Objects.Tasklist.Tasklist'. -}
tasklistNew  = liftIO $ do
    result <- wnck_tasklist_new
    checkUnexpectedReturnNULL "tasklistNew" result
    result' <- (newObject Tasklist) result
    return result'

#if 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 'GI.Wnck.Objects.Tasklist.Tasklist'. -}
    -> m Bool
tasklistGetScrollEnabled tasklist = liftIO $ do
    tasklist' <- unsafeManagedPtrCastPtr tasklist
    result <- wnck_tasklist_get_scroll_enabled tasklist'
    let result' = (/= 0) result
    touchManagedPtr tasklist
    return result'

#if 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 'GI.Wnck.Objects.Tasklist.Tasklist' does not have a fixed size ('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 '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 tasklist nElements = liftIO $ do
    tasklist' <- unsafeManagedPtrCastPtr tasklist
    result <- wnck_tasklist_get_size_hint_list tasklist' nElements
    touchManagedPtr tasklist
    return result

#if 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 '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 'GI.Wnck.Objects.Tasklist.Tasklist'. -}
    -> Gtk.Enums.ReliefStyle
    {- ^ /@relief@/: a relief type. -}
    -> m ()
tasklistSetButtonRelief tasklist relief = liftIO $ do
    tasklist' <- unsafeManagedPtrCastPtr tasklist
    let relief' = (fromIntegral . fromEnum) relief
    wnck_tasklist_set_button_relief tasklist' relief'
    touchManagedPtr tasklist
    return ()

#if 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 'GI.Wnck.Objects.Tasklist.Tasklist'. -}
    -> Wnck.Enums.TasklistGroupingType
    {- ^ /@grouping@/: a grouping policy. -}
    -> m ()
tasklistSetGrouping tasklist grouping = liftIO $ do
    tasklist' <- unsafeManagedPtrCastPtr tasklist
    let grouping' = (fromIntegral . fromEnum) grouping
    wnck_tasklist_set_grouping tasklist' grouping'
    touchManagedPtr tasklist
    return ()

#if 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 'GI.Wnck.Objects.Window.Window' in the same '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 'GI.Wnck.Objects.Tasklist.Tasklist'. -}
    -> Int32
    {- ^ /@limit@/: a size in pixels. -}
    -> m ()
tasklistSetGroupingLimit tasklist limit = liftIO $ do
    tasklist' <- unsafeManagedPtrCastPtr tasklist
    wnck_tasklist_set_grouping_limit tasklist' limit
    touchManagedPtr tasklist
    return ()

#if 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 'GI.Wnck.Objects.Window.Window' from all 'GI.Wnck.Objects.Workspace.Workspace' or not,
according to /@includeAllWorkspaces@/.

Note that if the active 'GI.Wnck.Objects.Workspace.Workspace' has a viewport and if
/@includeAllWorkspaces@/ is 'False', then only the '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 'GI.Wnck.Objects.Workspace.Workspace' with
viewport, it is not possible to show all 'GI.Wnck.Objects.Window.Window' from a 'GI.Wnck.Objects.Workspace.Workspace'
(even those that are not visible in the viewport) in /@tasklist@/ without
showing all 'GI.Wnck.Objects.Window.Window' from all 'GI.Wnck.Objects.Workspace.Workspace'.
-}
tasklistSetIncludeAllWorkspaces ::
    (B.CallStack.HasCallStack, MonadIO m, IsTasklist a) =>
    a
    {- ^ /@tasklist@/: a 'GI.Wnck.Objects.Tasklist.Tasklist'. -}
    -> Bool
    {- ^ /@includeAllWorkspaces@/: whether to display 'GI.Wnck.Objects.Window.Window' from all
'GI.Wnck.Objects.Workspace.Workspace' in /@tasklist@/. -}
    -> m ()
tasklistSetIncludeAllWorkspaces tasklist includeAllWorkspaces = liftIO $ do
    tasklist' <- unsafeManagedPtrCastPtr tasklist
    let includeAllWorkspaces' = (fromIntegral . fromEnum) includeAllWorkspaces
    wnck_tasklist_set_include_all_workspaces tasklist' includeAllWorkspaces'
    touchManagedPtr tasklist
    return ()

#if 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 'GI.Wnck.Objects.Tasklist.Tasklist'. -}
    -> Bool
    {- ^ /@middleClickClose@/: whether to close windows with middle click on
button. -}
    -> m ()
tasklistSetMiddleClickClose tasklist middleClickClose = liftIO $ do
    tasklist' <- unsafeManagedPtrCastPtr tasklist
    let middleClickClose' = (fromIntegral . fromEnum) middleClickClose
    wnck_tasklist_set_middle_click_close tasklist' middleClickClose'
    touchManagedPtr tasklist
    return ()

#if 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 'GI.Wnck.Objects.Tasklist.Tasklist' in vertical panels.

/Since: 3.4.6/
-}
tasklistSetOrientation ::
    (B.CallStack.HasCallStack, MonadIO m, IsTasklist a) =>
    a
    {- ^ /@tasklist@/: a 'GI.Wnck.Objects.Tasklist.Tasklist'. -}
    -> Gtk.Enums.Orientation
    {- ^ /@orient@/: a GtkOrientation. -}
    -> m ()
tasklistSetOrientation tasklist orient = liftIO $ do
    tasklist' <- unsafeManagedPtrCastPtr tasklist
    let orient' = (fromIntegral . fromEnum) orient
    wnck_tasklist_set_orientation tasklist' orient'
    touchManagedPtr tasklist
    return ()

#if 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 '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 'GI.Wnck.Objects.Tasklist.Tasklist'. -}
    -> Bool
    {- ^ /@scrollEnabled@/: a boolean. -}
    -> m ()
tasklistSetScrollEnabled tasklist scrollEnabled = liftIO $ do
    tasklist' <- unsafeManagedPtrCastPtr tasklist
    let scrollEnabled' = (fromIntegral . fromEnum) scrollEnabled
    wnck_tasklist_set_scroll_enabled tasklist' scrollEnabled'
    touchManagedPtr tasklist
    return ()

#if 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 'GI.Wnck.Objects.Workspace.Workspace' a '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 'GI.Wnck.Objects.Tasklist.Tasklist'. -}
    -> Bool
    {- ^ /@switchWorkspaceOnUnminimize@/: whether to activate the 'GI.Wnck.Objects.Workspace.Workspace' a
'GI.Wnck.Objects.Window.Window' is on when unminimizing it. -}
    -> m ()
tasklistSetSwitchWorkspaceOnUnminimize tasklist switchWorkspaceOnUnminimize = liftIO $ do
    tasklist' <- unsafeManagedPtrCastPtr tasklist
    let switchWorkspaceOnUnminimize' = (fromIntegral . fromEnum) switchWorkspaceOnUnminimize
    wnck_tasklist_set_switch_workspace_on_unminimize tasklist' switchWorkspaceOnUnminimize'
    touchManagedPtr tasklist
    return ()

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

#endif