{-# 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.Gtk.Interfaces.ToolShell.ToolShell' interface allows container widgets to provide additional
-- information when embedding t'GI.Gtk.Objects.ToolItem.ToolItem' widgets.

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

module GI.Gtk.Interfaces.ToolShell
    ( 

-- * Exported types
    ToolShell(..)                           ,
    noToolShell                             ,
    IsToolShell                             ,
    toToolShell                             ,


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

#if defined(ENABLE_OVERLOADING)
    ResolveToolShellMethod                  ,
#endif


-- ** getEllipsizeMode #method:getEllipsizeMode#

#if defined(ENABLE_OVERLOADING)
    ToolShellGetEllipsizeModeMethodInfo     ,
#endif
    toolShellGetEllipsizeMode               ,


-- ** getOrientation #method:getOrientation#

#if defined(ENABLE_OVERLOADING)
    ToolShellGetOrientationMethodInfo       ,
#endif
    toolShellGetOrientation                 ,


-- ** getStyle #method:getStyle#

#if defined(ENABLE_OVERLOADING)
    ToolShellGetStyleMethodInfo             ,
#endif
    toolShellGetStyle                       ,


-- ** getTextAlignment #method:getTextAlignment#

#if defined(ENABLE_OVERLOADING)
    ToolShellGetTextAlignmentMethodInfo     ,
#endif
    toolShellGetTextAlignment               ,


-- ** getTextOrientation #method:getTextOrientation#

#if defined(ENABLE_OVERLOADING)
    ToolShellGetTextOrientationMethodInfo   ,
#endif
    toolShellGetTextOrientation             ,


-- ** getTextSizeGroup #method:getTextSizeGroup#

#if defined(ENABLE_OVERLOADING)
    ToolShellGetTextSizeGroupMethodInfo     ,
#endif
    toolShellGetTextSizeGroup               ,


-- ** rebuildMenu #method:rebuildMenu#

#if defined(ENABLE_OVERLOADING)
    ToolShellRebuildMenuMethodInfo          ,
#endif
    toolShellRebuildMenu                    ,




    ) 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.GObject.Objects.Object as GObject.Object
import {-# SOURCE #-} qualified GI.Gtk.Enums as Gtk.Enums
import {-# SOURCE #-} qualified GI.Gtk.Interfaces.Buildable as Gtk.Buildable
import {-# SOURCE #-} qualified GI.Gtk.Objects.SizeGroup as Gtk.SizeGroup
import {-# SOURCE #-} qualified GI.Gtk.Objects.Widget as Gtk.Widget
import qualified GI.Pango.Enums as Pango.Enums

-- interface ToolShell 
-- | Memory-managed wrapper type.
newtype ToolShell = ToolShell (ManagedPtr ToolShell)
    deriving (ToolShell -> ToolShell -> Bool
(ToolShell -> ToolShell -> Bool)
-> (ToolShell -> ToolShell -> Bool) -> Eq ToolShell
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ToolShell -> ToolShell -> Bool
$c/= :: ToolShell -> ToolShell -> Bool
== :: ToolShell -> ToolShell -> Bool
$c== :: ToolShell -> ToolShell -> Bool
Eq)
-- | A convenience alias for `Nothing` :: `Maybe` `ToolShell`.
noToolShell :: Maybe ToolShell
noToolShell :: Maybe ToolShell
noToolShell = Maybe ToolShell
forall a. Maybe a
Nothing

#if defined(ENABLE_OVERLOADING)
type instance O.SignalList ToolShell = ToolShellSignalList
type ToolShellSignalList = ('[ '("accelClosuresChanged", Gtk.Widget.WidgetAccelClosuresChangedSignalInfo), '("canActivateAccel", Gtk.Widget.WidgetCanActivateAccelSignalInfo), '("destroy", Gtk.Widget.WidgetDestroySignalInfo), '("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), '("grabNotify", Gtk.Widget.WidgetGrabNotifySignalInfo), '("hide", Gtk.Widget.WidgetHideSignalInfo), '("keynavFailed", Gtk.Widget.WidgetKeynavFailedSignalInfo), '("map", Gtk.Widget.WidgetMapSignalInfo), '("mnemonicActivate", Gtk.Widget.WidgetMnemonicActivateSignalInfo), '("moveFocus", Gtk.Widget.WidgetMoveFocusSignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo), '("popupMenu", Gtk.Widget.WidgetPopupMenuSignalInfo), '("queryTooltip", Gtk.Widget.WidgetQueryTooltipSignalInfo), '("realize", Gtk.Widget.WidgetRealizeSignalInfo), '("show", Gtk.Widget.WidgetShowSignalInfo), '("sizeAllocate", Gtk.Widget.WidgetSizeAllocateSignalInfo), '("stateFlagsChanged", Gtk.Widget.WidgetStateFlagsChangedSignalInfo), '("styleUpdated", Gtk.Widget.WidgetStyleUpdatedSignalInfo), '("unmap", Gtk.Widget.WidgetUnmapSignalInfo), '("unrealize", Gtk.Widget.WidgetUnrealizeSignalInfo)] :: [(Symbol, *)])

#endif

foreign import ccall "gtk_tool_shell_get_type"
    c_gtk_tool_shell_get_type :: IO GType

instance GObject ToolShell where
    gobjectType :: IO GType
gobjectType = IO GType
c_gtk_tool_shell_get_type
    

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

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

instance O.HasParentTypes ToolShell
type instance O.ParentTypes ToolShell = '[Gtk.Widget.Widget, GObject.Object.Object]

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

#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList ToolShell
type instance O.AttributeList ToolShell = ToolShellAttributeList
type ToolShellAttributeList = ('[ '("canFocus", Gtk.Widget.WidgetCanFocusPropertyInfo), '("canTarget", Gtk.Widget.WidgetCanTargetPropertyInfo), '("cssName", Gtk.Widget.WidgetCssNamePropertyInfo), '("cursor", Gtk.Widget.WidgetCursorPropertyInfo), '("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), '("layoutManager", Gtk.Widget.WidgetLayoutManagerPropertyInfo), '("margin", Gtk.Widget.WidgetMarginPropertyInfo), '("marginBottom", Gtk.Widget.WidgetMarginBottomPropertyInfo), '("marginEnd", Gtk.Widget.WidgetMarginEndPropertyInfo), '("marginStart", Gtk.Widget.WidgetMarginStartPropertyInfo), '("marginTop", Gtk.Widget.WidgetMarginTopPropertyInfo), '("name", Gtk.Widget.WidgetNamePropertyInfo), '("opacity", Gtk.Widget.WidgetOpacityPropertyInfo), '("overflow", Gtk.Widget.WidgetOverflowPropertyInfo), '("parent", Gtk.Widget.WidgetParentPropertyInfo), '("receivesDefault", Gtk.Widget.WidgetReceivesDefaultPropertyInfo), '("root", Gtk.Widget.WidgetRootPropertyInfo), '("scaleFactor", Gtk.Widget.WidgetScaleFactorPropertyInfo), '("sensitive", Gtk.Widget.WidgetSensitivePropertyInfo), '("surface", Gtk.Widget.WidgetSurfacePropertyInfo), '("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)] :: [(Symbol, *)])
#endif

#if defined(ENABLE_OVERLOADING)
#endif

#if defined(ENABLE_OVERLOADING)
type family ResolveToolShellMethod (t :: Symbol) (o :: *) :: * where
    ResolveToolShellMethod "activate" o = Gtk.Widget.WidgetActivateMethodInfo
    ResolveToolShellMethod "activateAction" o = Gtk.Widget.WidgetActivateActionMethodInfo
    ResolveToolShellMethod "activateDefault" o = Gtk.Widget.WidgetActivateDefaultMethodInfo
    ResolveToolShellMethod "addAccelerator" o = Gtk.Widget.WidgetAddAcceleratorMethodInfo
    ResolveToolShellMethod "addChild" o = Gtk.Buildable.BuildableAddChildMethodInfo
    ResolveToolShellMethod "addController" o = Gtk.Widget.WidgetAddControllerMethodInfo
    ResolveToolShellMethod "addMnemonicLabel" o = Gtk.Widget.WidgetAddMnemonicLabelMethodInfo
    ResolveToolShellMethod "addTickCallback" o = Gtk.Widget.WidgetAddTickCallbackMethodInfo
    ResolveToolShellMethod "allocate" o = Gtk.Widget.WidgetAllocateMethodInfo
    ResolveToolShellMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveToolShellMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveToolShellMethod "canActivateAccel" o = Gtk.Widget.WidgetCanActivateAccelMethodInfo
    ResolveToolShellMethod "childFocus" o = Gtk.Widget.WidgetChildFocusMethodInfo
    ResolveToolShellMethod "computeBounds" o = Gtk.Widget.WidgetComputeBoundsMethodInfo
    ResolveToolShellMethod "computeExpand" o = Gtk.Widget.WidgetComputeExpandMethodInfo
    ResolveToolShellMethod "computePoint" o = Gtk.Widget.WidgetComputePointMethodInfo
    ResolveToolShellMethod "computeTransform" o = Gtk.Widget.WidgetComputeTransformMethodInfo
    ResolveToolShellMethod "constructChild" o = Gtk.Buildable.BuildableConstructChildMethodInfo
    ResolveToolShellMethod "contains" o = Gtk.Widget.WidgetContainsMethodInfo
    ResolveToolShellMethod "createPangoContext" o = Gtk.Widget.WidgetCreatePangoContextMethodInfo
    ResolveToolShellMethod "createPangoLayout" o = Gtk.Widget.WidgetCreatePangoLayoutMethodInfo
    ResolveToolShellMethod "customFinished" o = Gtk.Buildable.BuildableCustomFinishedMethodInfo
    ResolveToolShellMethod "customTagEnd" o = Gtk.Buildable.BuildableCustomTagEndMethodInfo
    ResolveToolShellMethod "customTagStart" o = Gtk.Buildable.BuildableCustomTagStartMethodInfo
    ResolveToolShellMethod "destroy" o = Gtk.Widget.WidgetDestroyMethodInfo
    ResolveToolShellMethod "destroyed" o = Gtk.Widget.WidgetDestroyedMethodInfo
    ResolveToolShellMethod "deviceIsShadowed" o = Gtk.Widget.WidgetDeviceIsShadowedMethodInfo
    ResolveToolShellMethod "dragBegin" o = Gtk.Widget.WidgetDragBeginMethodInfo
    ResolveToolShellMethod "dragCheckThreshold" o = Gtk.Widget.WidgetDragCheckThresholdMethodInfo
    ResolveToolShellMethod "dragDestAddImageTargets" o = Gtk.Widget.WidgetDragDestAddImageTargetsMethodInfo
    ResolveToolShellMethod "dragDestAddTextTargets" o = Gtk.Widget.WidgetDragDestAddTextTargetsMethodInfo
    ResolveToolShellMethod "dragDestAddUriTargets" o = Gtk.Widget.WidgetDragDestAddUriTargetsMethodInfo
    ResolveToolShellMethod "dragDestFindTarget" o = Gtk.Widget.WidgetDragDestFindTargetMethodInfo
    ResolveToolShellMethod "dragDestGetTargetList" o = Gtk.Widget.WidgetDragDestGetTargetListMethodInfo
    ResolveToolShellMethod "dragDestGetTrackMotion" o = Gtk.Widget.WidgetDragDestGetTrackMotionMethodInfo
    ResolveToolShellMethod "dragDestSet" o = Gtk.Widget.WidgetDragDestSetMethodInfo
    ResolveToolShellMethod "dragDestSetTargetList" o = Gtk.Widget.WidgetDragDestSetTargetListMethodInfo
    ResolveToolShellMethod "dragDestSetTrackMotion" o = Gtk.Widget.WidgetDragDestSetTrackMotionMethodInfo
    ResolveToolShellMethod "dragDestUnset" o = Gtk.Widget.WidgetDragDestUnsetMethodInfo
    ResolveToolShellMethod "dragGetData" o = Gtk.Widget.WidgetDragGetDataMethodInfo
    ResolveToolShellMethod "dragHighlight" o = Gtk.Widget.WidgetDragHighlightMethodInfo
    ResolveToolShellMethod "dragSourceAddImageTargets" o = Gtk.Widget.WidgetDragSourceAddImageTargetsMethodInfo
    ResolveToolShellMethod "dragSourceAddTextTargets" o = Gtk.Widget.WidgetDragSourceAddTextTargetsMethodInfo
    ResolveToolShellMethod "dragSourceAddUriTargets" o = Gtk.Widget.WidgetDragSourceAddUriTargetsMethodInfo
    ResolveToolShellMethod "dragSourceGetTargetList" o = Gtk.Widget.WidgetDragSourceGetTargetListMethodInfo
    ResolveToolShellMethod "dragSourceSet" o = Gtk.Widget.WidgetDragSourceSetMethodInfo
    ResolveToolShellMethod "dragSourceSetIconGicon" o = Gtk.Widget.WidgetDragSourceSetIconGiconMethodInfo
    ResolveToolShellMethod "dragSourceSetIconName" o = Gtk.Widget.WidgetDragSourceSetIconNameMethodInfo
    ResolveToolShellMethod "dragSourceSetIconPaintable" o = Gtk.Widget.WidgetDragSourceSetIconPaintableMethodInfo
    ResolveToolShellMethod "dragSourceSetTargetList" o = Gtk.Widget.WidgetDragSourceSetTargetListMethodInfo
    ResolveToolShellMethod "dragSourceUnset" o = Gtk.Widget.WidgetDragSourceUnsetMethodInfo
    ResolveToolShellMethod "dragUnhighlight" o = Gtk.Widget.WidgetDragUnhighlightMethodInfo
    ResolveToolShellMethod "errorBell" o = Gtk.Widget.WidgetErrorBellMethodInfo
    ResolveToolShellMethod "event" o = Gtk.Widget.WidgetEventMethodInfo
    ResolveToolShellMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveToolShellMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveToolShellMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
    ResolveToolShellMethod "grabAdd" o = Gtk.Widget.WidgetGrabAddMethodInfo
    ResolveToolShellMethod "grabFocus" o = Gtk.Widget.WidgetGrabFocusMethodInfo
    ResolveToolShellMethod "grabRemove" o = Gtk.Widget.WidgetGrabRemoveMethodInfo
    ResolveToolShellMethod "hasDefault" o = Gtk.Widget.WidgetHasDefaultMethodInfo
    ResolveToolShellMethod "hasFocus" o = Gtk.Widget.WidgetHasFocusMethodInfo
    ResolveToolShellMethod "hasGrab" o = Gtk.Widget.WidgetHasGrabMethodInfo
    ResolveToolShellMethod "hasVisibleFocus" o = Gtk.Widget.WidgetHasVisibleFocusMethodInfo
    ResolveToolShellMethod "hide" o = Gtk.Widget.WidgetHideMethodInfo
    ResolveToolShellMethod "inDestruction" o = Gtk.Widget.WidgetInDestructionMethodInfo
    ResolveToolShellMethod "initTemplate" o = Gtk.Widget.WidgetInitTemplateMethodInfo
    ResolveToolShellMethod "inputShapeCombineRegion" o = Gtk.Widget.WidgetInputShapeCombineRegionMethodInfo
    ResolveToolShellMethod "insertActionGroup" o = Gtk.Widget.WidgetInsertActionGroupMethodInfo
    ResolveToolShellMethod "insertAfter" o = Gtk.Widget.WidgetInsertAfterMethodInfo
    ResolveToolShellMethod "insertBefore" o = Gtk.Widget.WidgetInsertBeforeMethodInfo
    ResolveToolShellMethod "isAncestor" o = Gtk.Widget.WidgetIsAncestorMethodInfo
    ResolveToolShellMethod "isDrawable" o = Gtk.Widget.WidgetIsDrawableMethodInfo
    ResolveToolShellMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveToolShellMethod "isFocus" o = Gtk.Widget.WidgetIsFocusMethodInfo
    ResolveToolShellMethod "isSensitive" o = Gtk.Widget.WidgetIsSensitiveMethodInfo
    ResolveToolShellMethod "isToplevel" o = Gtk.Widget.WidgetIsToplevelMethodInfo
    ResolveToolShellMethod "isVisible" o = Gtk.Widget.WidgetIsVisibleMethodInfo
    ResolveToolShellMethod "keynavFailed" o = Gtk.Widget.WidgetKeynavFailedMethodInfo
    ResolveToolShellMethod "listAccelClosures" o = Gtk.Widget.WidgetListAccelClosuresMethodInfo
    ResolveToolShellMethod "listActionPrefixes" o = Gtk.Widget.WidgetListActionPrefixesMethodInfo
    ResolveToolShellMethod "listMnemonicLabels" o = Gtk.Widget.WidgetListMnemonicLabelsMethodInfo
    ResolveToolShellMethod "map" o = Gtk.Widget.WidgetMapMethodInfo
    ResolveToolShellMethod "measure" o = Gtk.Widget.WidgetMeasureMethodInfo
    ResolveToolShellMethod "mnemonicActivate" o = Gtk.Widget.WidgetMnemonicActivateMethodInfo
    ResolveToolShellMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveToolShellMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveToolShellMethod "observeChildren" o = Gtk.Widget.WidgetObserveChildrenMethodInfo
    ResolveToolShellMethod "observeControllers" o = Gtk.Widget.WidgetObserveControllersMethodInfo
    ResolveToolShellMethod "parserFinished" o = Gtk.Buildable.BuildableParserFinishedMethodInfo
    ResolveToolShellMethod "pick" o = Gtk.Widget.WidgetPickMethodInfo
    ResolveToolShellMethod "queueAllocate" o = Gtk.Widget.WidgetQueueAllocateMethodInfo
    ResolveToolShellMethod "queueComputeExpand" o = Gtk.Widget.WidgetQueueComputeExpandMethodInfo
    ResolveToolShellMethod "queueDraw" o = Gtk.Widget.WidgetQueueDrawMethodInfo
    ResolveToolShellMethod "queueResize" o = Gtk.Widget.WidgetQueueResizeMethodInfo
    ResolveToolShellMethod "queueResizeNoRedraw" o = Gtk.Widget.WidgetQueueResizeNoRedrawMethodInfo
    ResolveToolShellMethod "realize" o = Gtk.Widget.WidgetRealizeMethodInfo
    ResolveToolShellMethod "rebuildMenu" o = ToolShellRebuildMenuMethodInfo
    ResolveToolShellMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveToolShellMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveToolShellMethod "registerSurface" o = Gtk.Widget.WidgetRegisterSurfaceMethodInfo
    ResolveToolShellMethod "removeAccelerator" o = Gtk.Widget.WidgetRemoveAcceleratorMethodInfo
    ResolveToolShellMethod "removeController" o = Gtk.Widget.WidgetRemoveControllerMethodInfo
    ResolveToolShellMethod "removeMnemonicLabel" o = Gtk.Widget.WidgetRemoveMnemonicLabelMethodInfo
    ResolveToolShellMethod "removeTickCallback" o = Gtk.Widget.WidgetRemoveTickCallbackMethodInfo
    ResolveToolShellMethod "resetStyle" o = Gtk.Widget.WidgetResetStyleMethodInfo
    ResolveToolShellMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveToolShellMethod "show" o = Gtk.Widget.WidgetShowMethodInfo
    ResolveToolShellMethod "sizeAllocate" o = Gtk.Widget.WidgetSizeAllocateMethodInfo
    ResolveToolShellMethod "snapshotChild" o = Gtk.Widget.WidgetSnapshotChildMethodInfo
    ResolveToolShellMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveToolShellMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveToolShellMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveToolShellMethod "translateCoordinates" o = Gtk.Widget.WidgetTranslateCoordinatesMethodInfo
    ResolveToolShellMethod "triggerTooltipQuery" o = Gtk.Widget.WidgetTriggerTooltipQueryMethodInfo
    ResolveToolShellMethod "unmap" o = Gtk.Widget.WidgetUnmapMethodInfo
    ResolveToolShellMethod "unparent" o = Gtk.Widget.WidgetUnparentMethodInfo
    ResolveToolShellMethod "unrealize" o = Gtk.Widget.WidgetUnrealizeMethodInfo
    ResolveToolShellMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolveToolShellMethod "unregisterSurface" o = Gtk.Widget.WidgetUnregisterSurfaceMethodInfo
    ResolveToolShellMethod "unsetStateFlags" o = Gtk.Widget.WidgetUnsetStateFlagsMethodInfo
    ResolveToolShellMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveToolShellMethod "getAccessible" o = Gtk.Widget.WidgetGetAccessibleMethodInfo
    ResolveToolShellMethod "getActionGroup" o = Gtk.Widget.WidgetGetActionGroupMethodInfo
    ResolveToolShellMethod "getAllocatedBaseline" o = Gtk.Widget.WidgetGetAllocatedBaselineMethodInfo
    ResolveToolShellMethod "getAllocatedHeight" o = Gtk.Widget.WidgetGetAllocatedHeightMethodInfo
    ResolveToolShellMethod "getAllocatedWidth" o = Gtk.Widget.WidgetGetAllocatedWidthMethodInfo
    ResolveToolShellMethod "getAllocation" o = Gtk.Widget.WidgetGetAllocationMethodInfo
    ResolveToolShellMethod "getAncestor" o = Gtk.Widget.WidgetGetAncestorMethodInfo
    ResolveToolShellMethod "getCanFocus" o = Gtk.Widget.WidgetGetCanFocusMethodInfo
    ResolveToolShellMethod "getCanTarget" o = Gtk.Widget.WidgetGetCanTargetMethodInfo
    ResolveToolShellMethod "getChildVisible" o = Gtk.Widget.WidgetGetChildVisibleMethodInfo
    ResolveToolShellMethod "getClipboard" o = Gtk.Widget.WidgetGetClipboardMethodInfo
    ResolveToolShellMethod "getCursor" o = Gtk.Widget.WidgetGetCursorMethodInfo
    ResolveToolShellMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveToolShellMethod "getDirection" o = Gtk.Widget.WidgetGetDirectionMethodInfo
    ResolveToolShellMethod "getDisplay" o = Gtk.Widget.WidgetGetDisplayMethodInfo
    ResolveToolShellMethod "getEllipsizeMode" o = ToolShellGetEllipsizeModeMethodInfo
    ResolveToolShellMethod "getFirstChild" o = Gtk.Widget.WidgetGetFirstChildMethodInfo
    ResolveToolShellMethod "getFocusChild" o = Gtk.Widget.WidgetGetFocusChildMethodInfo
    ResolveToolShellMethod "getFocusOnClick" o = Gtk.Widget.WidgetGetFocusOnClickMethodInfo
    ResolveToolShellMethod "getFontMap" o = Gtk.Widget.WidgetGetFontMapMethodInfo
    ResolveToolShellMethod "getFontOptions" o = Gtk.Widget.WidgetGetFontOptionsMethodInfo
    ResolveToolShellMethod "getFrameClock" o = Gtk.Widget.WidgetGetFrameClockMethodInfo
    ResolveToolShellMethod "getHalign" o = Gtk.Widget.WidgetGetHalignMethodInfo
    ResolveToolShellMethod "getHasSurface" o = Gtk.Widget.WidgetGetHasSurfaceMethodInfo
    ResolveToolShellMethod "getHasTooltip" o = Gtk.Widget.WidgetGetHasTooltipMethodInfo
    ResolveToolShellMethod "getHeight" o = Gtk.Widget.WidgetGetHeightMethodInfo
    ResolveToolShellMethod "getHexpand" o = Gtk.Widget.WidgetGetHexpandMethodInfo
    ResolveToolShellMethod "getHexpandSet" o = Gtk.Widget.WidgetGetHexpandSetMethodInfo
    ResolveToolShellMethod "getInternalChild" o = Gtk.Buildable.BuildableGetInternalChildMethodInfo
    ResolveToolShellMethod "getLastChild" o = Gtk.Widget.WidgetGetLastChildMethodInfo
    ResolveToolShellMethod "getLayoutManager" o = Gtk.Widget.WidgetGetLayoutManagerMethodInfo
    ResolveToolShellMethod "getMapped" o = Gtk.Widget.WidgetGetMappedMethodInfo
    ResolveToolShellMethod "getMarginBottom" o = Gtk.Widget.WidgetGetMarginBottomMethodInfo
    ResolveToolShellMethod "getMarginEnd" o = Gtk.Widget.WidgetGetMarginEndMethodInfo
    ResolveToolShellMethod "getMarginStart" o = Gtk.Widget.WidgetGetMarginStartMethodInfo
    ResolveToolShellMethod "getMarginTop" o = Gtk.Widget.WidgetGetMarginTopMethodInfo
    ResolveToolShellMethod "getModifierMask" o = Gtk.Widget.WidgetGetModifierMaskMethodInfo
    ResolveToolShellMethod "getName" o = Gtk.Widget.WidgetGetNameMethodInfo
    ResolveToolShellMethod "getNextSibling" o = Gtk.Widget.WidgetGetNextSiblingMethodInfo
    ResolveToolShellMethod "getOpacity" o = Gtk.Widget.WidgetGetOpacityMethodInfo
    ResolveToolShellMethod "getOrientation" o = ToolShellGetOrientationMethodInfo
    ResolveToolShellMethod "getOverflow" o = Gtk.Widget.WidgetGetOverflowMethodInfo
    ResolveToolShellMethod "getPangoContext" o = Gtk.Widget.WidgetGetPangoContextMethodInfo
    ResolveToolShellMethod "getParent" o = Gtk.Widget.WidgetGetParentMethodInfo
    ResolveToolShellMethod "getPath" o = Gtk.Widget.WidgetGetPathMethodInfo
    ResolveToolShellMethod "getPreferredSize" o = Gtk.Widget.WidgetGetPreferredSizeMethodInfo
    ResolveToolShellMethod "getPrevSibling" o = Gtk.Widget.WidgetGetPrevSiblingMethodInfo
    ResolveToolShellMethod "getPrimaryClipboard" o = Gtk.Widget.WidgetGetPrimaryClipboardMethodInfo
    ResolveToolShellMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveToolShellMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveToolShellMethod "getRealized" o = Gtk.Widget.WidgetGetRealizedMethodInfo
    ResolveToolShellMethod "getReceivesDefault" o = Gtk.Widget.WidgetGetReceivesDefaultMethodInfo
    ResolveToolShellMethod "getRequestMode" o = Gtk.Widget.WidgetGetRequestModeMethodInfo
    ResolveToolShellMethod "getRoot" o = Gtk.Widget.WidgetGetRootMethodInfo
    ResolveToolShellMethod "getScaleFactor" o = Gtk.Widget.WidgetGetScaleFactorMethodInfo
    ResolveToolShellMethod "getSensitive" o = Gtk.Widget.WidgetGetSensitiveMethodInfo
    ResolveToolShellMethod "getSettings" o = Gtk.Widget.WidgetGetSettingsMethodInfo
    ResolveToolShellMethod "getSizeRequest" o = Gtk.Widget.WidgetGetSizeRequestMethodInfo
    ResolveToolShellMethod "getStateFlags" o = Gtk.Widget.WidgetGetStateFlagsMethodInfo
    ResolveToolShellMethod "getStyle" o = ToolShellGetStyleMethodInfo
    ResolveToolShellMethod "getStyleContext" o = Gtk.Widget.WidgetGetStyleContextMethodInfo
    ResolveToolShellMethod "getSupportMultidevice" o = Gtk.Widget.WidgetGetSupportMultideviceMethodInfo
    ResolveToolShellMethod "getSurface" o = Gtk.Widget.WidgetGetSurfaceMethodInfo
    ResolveToolShellMethod "getTemplateChild" o = Gtk.Widget.WidgetGetTemplateChildMethodInfo
    ResolveToolShellMethod "getTextAlignment" o = ToolShellGetTextAlignmentMethodInfo
    ResolveToolShellMethod "getTextOrientation" o = ToolShellGetTextOrientationMethodInfo
    ResolveToolShellMethod "getTextSizeGroup" o = ToolShellGetTextSizeGroupMethodInfo
    ResolveToolShellMethod "getTooltipMarkup" o = Gtk.Widget.WidgetGetTooltipMarkupMethodInfo
    ResolveToolShellMethod "getTooltipText" o = Gtk.Widget.WidgetGetTooltipTextMethodInfo
    ResolveToolShellMethod "getTooltipWindow" o = Gtk.Widget.WidgetGetTooltipWindowMethodInfo
    ResolveToolShellMethod "getToplevel" o = Gtk.Widget.WidgetGetToplevelMethodInfo
    ResolveToolShellMethod "getValign" o = Gtk.Widget.WidgetGetValignMethodInfo
    ResolveToolShellMethod "getVexpand" o = Gtk.Widget.WidgetGetVexpandMethodInfo
    ResolveToolShellMethod "getVexpandSet" o = Gtk.Widget.WidgetGetVexpandSetMethodInfo
    ResolveToolShellMethod "getVisible" o = Gtk.Widget.WidgetGetVisibleMethodInfo
    ResolveToolShellMethod "getWidth" o = Gtk.Widget.WidgetGetWidthMethodInfo
    ResolveToolShellMethod "setAccelPath" o = Gtk.Widget.WidgetSetAccelPathMethodInfo
    ResolveToolShellMethod "setBuildableProperty" o = Gtk.Buildable.BuildableSetBuildablePropertyMethodInfo
    ResolveToolShellMethod "setCanFocus" o = Gtk.Widget.WidgetSetCanFocusMethodInfo
    ResolveToolShellMethod "setCanTarget" o = Gtk.Widget.WidgetSetCanTargetMethodInfo
    ResolveToolShellMethod "setChildVisible" o = Gtk.Widget.WidgetSetChildVisibleMethodInfo
    ResolveToolShellMethod "setCursor" o = Gtk.Widget.WidgetSetCursorMethodInfo
    ResolveToolShellMethod "setCursorFromName" o = Gtk.Widget.WidgetSetCursorFromNameMethodInfo
    ResolveToolShellMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveToolShellMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
    ResolveToolShellMethod "setDirection" o = Gtk.Widget.WidgetSetDirectionMethodInfo
    ResolveToolShellMethod "setFocusChild" o = Gtk.Widget.WidgetSetFocusChildMethodInfo
    ResolveToolShellMethod "setFocusOnClick" o = Gtk.Widget.WidgetSetFocusOnClickMethodInfo
    ResolveToolShellMethod "setFontMap" o = Gtk.Widget.WidgetSetFontMapMethodInfo
    ResolveToolShellMethod "setFontOptions" o = Gtk.Widget.WidgetSetFontOptionsMethodInfo
    ResolveToolShellMethod "setHalign" o = Gtk.Widget.WidgetSetHalignMethodInfo
    ResolveToolShellMethod "setHasSurface" o = Gtk.Widget.WidgetSetHasSurfaceMethodInfo
    ResolveToolShellMethod "setHasTooltip" o = Gtk.Widget.WidgetSetHasTooltipMethodInfo
    ResolveToolShellMethod "setHexpand" o = Gtk.Widget.WidgetSetHexpandMethodInfo
    ResolveToolShellMethod "setHexpandSet" o = Gtk.Widget.WidgetSetHexpandSetMethodInfo
    ResolveToolShellMethod "setLayoutManager" o = Gtk.Widget.WidgetSetLayoutManagerMethodInfo
    ResolveToolShellMethod "setMarginBottom" o = Gtk.Widget.WidgetSetMarginBottomMethodInfo
    ResolveToolShellMethod "setMarginEnd" o = Gtk.Widget.WidgetSetMarginEndMethodInfo
    ResolveToolShellMethod "setMarginStart" o = Gtk.Widget.WidgetSetMarginStartMethodInfo
    ResolveToolShellMethod "setMarginTop" o = Gtk.Widget.WidgetSetMarginTopMethodInfo
    ResolveToolShellMethod "setName" o = Gtk.Widget.WidgetSetNameMethodInfo
    ResolveToolShellMethod "setOpacity" o = Gtk.Widget.WidgetSetOpacityMethodInfo
    ResolveToolShellMethod "setOverflow" o = Gtk.Widget.WidgetSetOverflowMethodInfo
    ResolveToolShellMethod "setParent" o = Gtk.Widget.WidgetSetParentMethodInfo
    ResolveToolShellMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveToolShellMethod "setReceivesDefault" o = Gtk.Widget.WidgetSetReceivesDefaultMethodInfo
    ResolveToolShellMethod "setSensitive" o = Gtk.Widget.WidgetSetSensitiveMethodInfo
    ResolveToolShellMethod "setSizeRequest" o = Gtk.Widget.WidgetSetSizeRequestMethodInfo
    ResolveToolShellMethod "setStateFlags" o = Gtk.Widget.WidgetSetStateFlagsMethodInfo
    ResolveToolShellMethod "setSupportMultidevice" o = Gtk.Widget.WidgetSetSupportMultideviceMethodInfo
    ResolveToolShellMethod "setSurface" o = Gtk.Widget.WidgetSetSurfaceMethodInfo
    ResolveToolShellMethod "setTooltipMarkup" o = Gtk.Widget.WidgetSetTooltipMarkupMethodInfo
    ResolveToolShellMethod "setTooltipText" o = Gtk.Widget.WidgetSetTooltipTextMethodInfo
    ResolveToolShellMethod "setTooltipWindow" o = Gtk.Widget.WidgetSetTooltipWindowMethodInfo
    ResolveToolShellMethod "setValign" o = Gtk.Widget.WidgetSetValignMethodInfo
    ResolveToolShellMethod "setVexpand" o = Gtk.Widget.WidgetSetVexpandMethodInfo
    ResolveToolShellMethod "setVexpandSet" o = Gtk.Widget.WidgetSetVexpandSetMethodInfo
    ResolveToolShellMethod "setVisible" o = Gtk.Widget.WidgetSetVisibleMethodInfo
    ResolveToolShellMethod l o = O.MethodResolutionFailed l o

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

#endif

-- method ToolShell::get_ellipsize_mode
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "shell"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "ToolShell" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkToolShell" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just
--               (TInterface Name { namespace = "Pango" , name = "EllipsizeMode" })
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tool_shell_get_ellipsize_mode" gtk_tool_shell_get_ellipsize_mode :: 
    Ptr ToolShell ->                        -- shell : TInterface (Name {namespace = "Gtk", name = "ToolShell"})
    IO CUInt

-- | Retrieves the current ellipsize mode for the tool shell. Tool items must not
-- call this function directly, but rely on 'GI.Gtk.Objects.ToolItem.toolItemGetEllipsizeMode'
-- instead.
toolShellGetEllipsizeMode ::
    (B.CallStack.HasCallStack, MonadIO m, IsToolShell a) =>
    a
    -- ^ /@shell@/: a t'GI.Gtk.Interfaces.ToolShell.ToolShell'
    -> m Pango.Enums.EllipsizeMode
    -- ^ __Returns:__ the current ellipsize mode of /@shell@/
toolShellGetEllipsizeMode :: a -> m EllipsizeMode
toolShellGetEllipsizeMode shell :: a
shell = IO EllipsizeMode -> m EllipsizeMode
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO EllipsizeMode -> m EllipsizeMode)
-> IO EllipsizeMode -> m EllipsizeMode
forall a b. (a -> b) -> a -> b
$ do
    Ptr ToolShell
shell' <- a -> IO (Ptr ToolShell)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
shell
    CUInt
result <- Ptr ToolShell -> IO CUInt
gtk_tool_shell_get_ellipsize_mode Ptr ToolShell
shell'
    let result' :: EllipsizeMode
result' = (Int -> EllipsizeMode
forall a. Enum a => Int -> a
toEnum (Int -> EllipsizeMode) -> (CUInt -> Int) -> CUInt -> EllipsizeMode
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CUInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral) CUInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
shell
    EllipsizeMode -> IO EllipsizeMode
forall (m :: * -> *) a. Monad m => a -> m a
return EllipsizeMode
result'

#if defined(ENABLE_OVERLOADING)
data ToolShellGetEllipsizeModeMethodInfo
instance (signature ~ (m Pango.Enums.EllipsizeMode), MonadIO m, IsToolShell a) => O.MethodInfo ToolShellGetEllipsizeModeMethodInfo a signature where
    overloadedMethod = toolShellGetEllipsizeMode

#endif

-- method ToolShell::get_orientation
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "shell"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "ToolShell" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkToolShell" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TInterface Name { namespace = "Gtk" , name = "Orientation" })
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tool_shell_get_orientation" gtk_tool_shell_get_orientation :: 
    Ptr ToolShell ->                        -- shell : TInterface (Name {namespace = "Gtk", name = "ToolShell"})
    IO CUInt

-- | Retrieves the current orientation for the tool shell. Tool items must not
-- call this function directly, but rely on 'GI.Gtk.Objects.ToolItem.toolItemGetOrientation'
-- instead.
toolShellGetOrientation ::
    (B.CallStack.HasCallStack, MonadIO m, IsToolShell a) =>
    a
    -- ^ /@shell@/: a t'GI.Gtk.Interfaces.ToolShell.ToolShell'
    -> m Gtk.Enums.Orientation
    -- ^ __Returns:__ the current orientation of /@shell@/
toolShellGetOrientation :: a -> m Orientation
toolShellGetOrientation shell :: a
shell = IO Orientation -> m Orientation
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Orientation -> m Orientation)
-> IO Orientation -> m Orientation
forall a b. (a -> b) -> a -> b
$ do
    Ptr ToolShell
shell' <- a -> IO (Ptr ToolShell)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
shell
    CUInt
result <- Ptr ToolShell -> IO CUInt
gtk_tool_shell_get_orientation Ptr ToolShell
shell'
    let result' :: Orientation
result' = (Int -> Orientation
forall a. Enum a => Int -> a
toEnum (Int -> Orientation) -> (CUInt -> Int) -> CUInt -> Orientation
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CUInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral) CUInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
shell
    Orientation -> IO Orientation
forall (m :: * -> *) a. Monad m => a -> m a
return Orientation
result'

#if defined(ENABLE_OVERLOADING)
data ToolShellGetOrientationMethodInfo
instance (signature ~ (m Gtk.Enums.Orientation), MonadIO m, IsToolShell a) => O.MethodInfo ToolShellGetOrientationMethodInfo a signature where
    overloadedMethod = toolShellGetOrientation

#endif

-- method ToolShell::get_style
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "shell"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "ToolShell" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkToolShell" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just
--               (TInterface Name { namespace = "Gtk" , name = "ToolbarStyle" })
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tool_shell_get_style" gtk_tool_shell_get_style :: 
    Ptr ToolShell ->                        -- shell : TInterface (Name {namespace = "Gtk", name = "ToolShell"})
    IO CUInt

-- | Retrieves whether the tool shell has text, icons, or both. Tool items must
-- not call this function directly, but rely on 'GI.Gtk.Objects.ToolItem.toolItemGetToolbarStyle'
-- instead.
toolShellGetStyle ::
    (B.CallStack.HasCallStack, MonadIO m, IsToolShell a) =>
    a
    -- ^ /@shell@/: a t'GI.Gtk.Interfaces.ToolShell.ToolShell'
    -> m Gtk.Enums.ToolbarStyle
    -- ^ __Returns:__ the current style of /@shell@/
toolShellGetStyle :: a -> m ToolbarStyle
toolShellGetStyle shell :: a
shell = IO ToolbarStyle -> m ToolbarStyle
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO ToolbarStyle -> m ToolbarStyle)
-> IO ToolbarStyle -> m ToolbarStyle
forall a b. (a -> b) -> a -> b
$ do
    Ptr ToolShell
shell' <- a -> IO (Ptr ToolShell)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
shell
    CUInt
result <- Ptr ToolShell -> IO CUInt
gtk_tool_shell_get_style Ptr ToolShell
shell'
    let result' :: ToolbarStyle
result' = (Int -> ToolbarStyle
forall a. Enum a => Int -> a
toEnum (Int -> ToolbarStyle) -> (CUInt -> Int) -> CUInt -> ToolbarStyle
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CUInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral) CUInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
shell
    ToolbarStyle -> IO ToolbarStyle
forall (m :: * -> *) a. Monad m => a -> m a
return ToolbarStyle
result'

#if defined(ENABLE_OVERLOADING)
data ToolShellGetStyleMethodInfo
instance (signature ~ (m Gtk.Enums.ToolbarStyle), MonadIO m, IsToolShell a) => O.MethodInfo ToolShellGetStyleMethodInfo a signature where
    overloadedMethod = toolShellGetStyle

#endif

-- method ToolShell::get_text_alignment
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "shell"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "ToolShell" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkToolShell" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TFloat)
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tool_shell_get_text_alignment" gtk_tool_shell_get_text_alignment :: 
    Ptr ToolShell ->                        -- shell : TInterface (Name {namespace = "Gtk", name = "ToolShell"})
    IO CFloat

-- | Retrieves the current text alignment for the tool shell. Tool items must not
-- call this function directly, but rely on 'GI.Gtk.Objects.ToolItem.toolItemGetTextAlignment'
-- instead.
toolShellGetTextAlignment ::
    (B.CallStack.HasCallStack, MonadIO m, IsToolShell a) =>
    a
    -- ^ /@shell@/: a t'GI.Gtk.Interfaces.ToolShell.ToolShell'
    -> m Float
    -- ^ __Returns:__ the current text alignment of /@shell@/
toolShellGetTextAlignment :: a -> m Float
toolShellGetTextAlignment shell :: a
shell = IO Float -> m Float
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Float -> m Float) -> IO Float -> m Float
forall a b. (a -> b) -> a -> b
$ do
    Ptr ToolShell
shell' <- a -> IO (Ptr ToolShell)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
shell
    CFloat
result <- Ptr ToolShell -> IO CFloat
gtk_tool_shell_get_text_alignment Ptr ToolShell
shell'
    let result' :: Float
result' = CFloat -> Float
forall a b. (Real a, Fractional b) => a -> b
realToFrac CFloat
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
shell
    Float -> IO Float
forall (m :: * -> *) a. Monad m => a -> m a
return Float
result'

#if defined(ENABLE_OVERLOADING)
data ToolShellGetTextAlignmentMethodInfo
instance (signature ~ (m Float), MonadIO m, IsToolShell a) => O.MethodInfo ToolShellGetTextAlignmentMethodInfo a signature where
    overloadedMethod = toolShellGetTextAlignment

#endif

-- method ToolShell::get_text_orientation
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "shell"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "ToolShell" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkToolShell" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TInterface Name { namespace = "Gtk" , name = "Orientation" })
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tool_shell_get_text_orientation" gtk_tool_shell_get_text_orientation :: 
    Ptr ToolShell ->                        -- shell : TInterface (Name {namespace = "Gtk", name = "ToolShell"})
    IO CUInt

-- | Retrieves the current text orientation for the tool shell. Tool items must not
-- call this function directly, but rely on 'GI.Gtk.Objects.ToolItem.toolItemGetTextOrientation'
-- instead.
toolShellGetTextOrientation ::
    (B.CallStack.HasCallStack, MonadIO m, IsToolShell a) =>
    a
    -- ^ /@shell@/: a t'GI.Gtk.Interfaces.ToolShell.ToolShell'
    -> m Gtk.Enums.Orientation
    -- ^ __Returns:__ the current text orientation of /@shell@/
toolShellGetTextOrientation :: a -> m Orientation
toolShellGetTextOrientation shell :: a
shell = IO Orientation -> m Orientation
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Orientation -> m Orientation)
-> IO Orientation -> m Orientation
forall a b. (a -> b) -> a -> b
$ do
    Ptr ToolShell
shell' <- a -> IO (Ptr ToolShell)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
shell
    CUInt
result <- Ptr ToolShell -> IO CUInt
gtk_tool_shell_get_text_orientation Ptr ToolShell
shell'
    let result' :: Orientation
result' = (Int -> Orientation
forall a. Enum a => Int -> a
toEnum (Int -> Orientation) -> (CUInt -> Int) -> CUInt -> Orientation
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CUInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral) CUInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
shell
    Orientation -> IO Orientation
forall (m :: * -> *) a. Monad m => a -> m a
return Orientation
result'

#if defined(ENABLE_OVERLOADING)
data ToolShellGetTextOrientationMethodInfo
instance (signature ~ (m Gtk.Enums.Orientation), MonadIO m, IsToolShell a) => O.MethodInfo ToolShellGetTextOrientationMethodInfo a signature where
    overloadedMethod = toolShellGetTextOrientation

#endif

-- method ToolShell::get_text_size_group
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "shell"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "ToolShell" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkToolShell" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TInterface Name { namespace = "Gtk" , name = "SizeGroup" })
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tool_shell_get_text_size_group" gtk_tool_shell_get_text_size_group :: 
    Ptr ToolShell ->                        -- shell : TInterface (Name {namespace = "Gtk", name = "ToolShell"})
    IO (Ptr Gtk.SizeGroup.SizeGroup)

-- | Retrieves the current text size group for the tool shell. Tool items must not
-- call this function directly, but rely on 'GI.Gtk.Objects.ToolItem.toolItemGetTextSizeGroup'
-- instead.
toolShellGetTextSizeGroup ::
    (B.CallStack.HasCallStack, MonadIO m, IsToolShell a) =>
    a
    -- ^ /@shell@/: a t'GI.Gtk.Interfaces.ToolShell.ToolShell'
    -> m Gtk.SizeGroup.SizeGroup
    -- ^ __Returns:__ the current text size group of /@shell@/
toolShellGetTextSizeGroup :: a -> m SizeGroup
toolShellGetTextSizeGroup shell :: a
shell = IO SizeGroup -> m SizeGroup
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SizeGroup -> m SizeGroup) -> IO SizeGroup -> m SizeGroup
forall a b. (a -> b) -> a -> b
$ do
    Ptr ToolShell
shell' <- a -> IO (Ptr ToolShell)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
shell
    Ptr SizeGroup
result <- Ptr ToolShell -> IO (Ptr SizeGroup)
gtk_tool_shell_get_text_size_group Ptr ToolShell
shell'
    Text -> Ptr SizeGroup -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "toolShellGetTextSizeGroup" Ptr SizeGroup
result
    SizeGroup
result' <- ((ManagedPtr SizeGroup -> SizeGroup)
-> Ptr SizeGroup -> IO SizeGroup
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr SizeGroup -> SizeGroup
Gtk.SizeGroup.SizeGroup) Ptr SizeGroup
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
shell
    SizeGroup -> IO SizeGroup
forall (m :: * -> *) a. Monad m => a -> m a
return SizeGroup
result'

#if defined(ENABLE_OVERLOADING)
data ToolShellGetTextSizeGroupMethodInfo
instance (signature ~ (m Gtk.SizeGroup.SizeGroup), MonadIO m, IsToolShell a) => O.MethodInfo ToolShellGetTextSizeGroupMethodInfo a signature where
    overloadedMethod = toolShellGetTextSizeGroup

#endif

-- method ToolShell::rebuild_menu
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "shell"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "ToolShell" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkToolShell" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tool_shell_rebuild_menu" gtk_tool_shell_rebuild_menu :: 
    Ptr ToolShell ->                        -- shell : TInterface (Name {namespace = "Gtk", name = "ToolShell"})
    IO ()

-- | Calling this function signals the tool shell that the overflow menu item for
-- tool items have changed. If there is an overflow menu and if it is visible
-- when this function it called, the menu will be rebuilt.
-- 
-- Tool items must not call this function directly, but rely on
-- 'GI.Gtk.Objects.ToolItem.toolItemRebuildMenu' instead.
toolShellRebuildMenu ::
    (B.CallStack.HasCallStack, MonadIO m, IsToolShell a) =>
    a
    -- ^ /@shell@/: a t'GI.Gtk.Interfaces.ToolShell.ToolShell'
    -> m ()
toolShellRebuildMenu :: a -> m ()
toolShellRebuildMenu shell :: a
shell = 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 ToolShell
shell' <- a -> IO (Ptr ToolShell)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
shell
    Ptr ToolShell -> IO ()
gtk_tool_shell_rebuild_menu Ptr ToolShell
shell'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
shell
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data ToolShellRebuildMenuMethodInfo
instance (signature ~ (m ()), MonadIO m, IsToolShell a) => O.MethodInfo ToolShellRebuildMenuMethodInfo a signature where
    overloadedMethod = toolShellRebuildMenu

#endif