{-# LANGUAGE TypeApplications #-}


-- | Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
-- License    : LGPL-2.1
-- Maintainer : Iñaki García Etxebarria
-- 
-- GtkMediaControls is a widget to show controls for a t'GI.Gtk.Objects.MediaStream.MediaStream'
-- and giving users a way to use it.

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

module GI.Gtk.Objects.MediaControls
    ( 

-- * Exported types
    MediaControls(..)                       ,
    IsMediaControls                         ,
    toMediaControls                         ,


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

#if defined(ENABLE_OVERLOADING)
    ResolveMediaControlsMethod              ,
#endif


-- ** getMediaStream #method:getMediaStream#

#if defined(ENABLE_OVERLOADING)
    MediaControlsGetMediaStreamMethodInfo   ,
#endif
    mediaControlsGetMediaStream             ,


-- ** new #method:new#

    mediaControlsNew                        ,


-- ** setMediaStream #method:setMediaStream#

#if defined(ENABLE_OVERLOADING)
    MediaControlsSetMediaStreamMethodInfo   ,
#endif
    mediaControlsSetMediaStream             ,




 -- * Properties
-- ** mediaStream #attr:mediaStream#
-- | The media-stream managed by this object or 'P.Nothing' if none.

#if defined(ENABLE_OVERLOADING)
    MediaControlsMediaStreamPropertyInfo    ,
#endif
    clearMediaControlsMediaStream           ,
    constructMediaControlsMediaStream       ,
    getMediaControlsMediaStream             ,
#if defined(ENABLE_OVERLOADING)
    mediaControlsMediaStream                ,
#endif
    setMediaControlsMediaStream             ,




    ) 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.BasicTypes as B.Types
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 Control.Monad.IO.Class as MIO
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 {-# SOURCE #-} qualified GI.Gtk.Interfaces.Buildable as Gtk.Buildable
import {-# SOURCE #-} qualified GI.Gtk.Interfaces.ConstraintTarget as Gtk.ConstraintTarget
import {-# SOURCE #-} qualified GI.Gtk.Objects.MediaStream as Gtk.MediaStream
import {-# SOURCE #-} qualified GI.Gtk.Objects.Widget as Gtk.Widget

-- | Memory-managed wrapper type.
newtype MediaControls = MediaControls (SP.ManagedPtr MediaControls)
    deriving (MediaControls -> MediaControls -> Bool
(MediaControls -> MediaControls -> Bool)
-> (MediaControls -> MediaControls -> Bool) -> Eq MediaControls
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: MediaControls -> MediaControls -> Bool
$c/= :: MediaControls -> MediaControls -> Bool
== :: MediaControls -> MediaControls -> Bool
$c== :: MediaControls -> MediaControls -> Bool
Eq)

instance SP.ManagedPtrNewtype MediaControls where
    toManagedPtr :: MediaControls -> ManagedPtr MediaControls
toManagedPtr (MediaControls ManagedPtr MediaControls
p) = ManagedPtr MediaControls
p

foreign import ccall "gtk_media_controls_get_type"
    c_gtk_media_controls_get_type :: IO B.Types.GType

instance B.Types.TypedObject MediaControls where
    glibType :: IO GType
glibType = IO GType
c_gtk_media_controls_get_type

instance B.Types.GObject MediaControls

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

-- | Type class for types which can be safely cast to `MediaControls`, for instance with `toMediaControls`.
class (SP.GObject o, O.IsDescendantOf MediaControls o) => IsMediaControls o
instance (SP.GObject o, O.IsDescendantOf MediaControls o) => IsMediaControls o

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

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

#if defined(ENABLE_OVERLOADING)
type family ResolveMediaControlsMethod (t :: Symbol) (o :: *) :: * where
    ResolveMediaControlsMethod "actionSetEnabled" o = Gtk.Widget.WidgetActionSetEnabledMethodInfo
    ResolveMediaControlsMethod "activate" o = Gtk.Widget.WidgetActivateMethodInfo
    ResolveMediaControlsMethod "activateAction" o = Gtk.Widget.WidgetActivateActionMethodInfo
    ResolveMediaControlsMethod "activateDefault" o = Gtk.Widget.WidgetActivateDefaultMethodInfo
    ResolveMediaControlsMethod "addChild" o = Gtk.Buildable.BuildableAddChildMethodInfo
    ResolveMediaControlsMethod "addController" o = Gtk.Widget.WidgetAddControllerMethodInfo
    ResolveMediaControlsMethod "addCssClass" o = Gtk.Widget.WidgetAddCssClassMethodInfo
    ResolveMediaControlsMethod "addMnemonicLabel" o = Gtk.Widget.WidgetAddMnemonicLabelMethodInfo
    ResolveMediaControlsMethod "addTickCallback" o = Gtk.Widget.WidgetAddTickCallbackMethodInfo
    ResolveMediaControlsMethod "allocate" o = Gtk.Widget.WidgetAllocateMethodInfo
    ResolveMediaControlsMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveMediaControlsMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveMediaControlsMethod "childFocus" o = Gtk.Widget.WidgetChildFocusMethodInfo
    ResolveMediaControlsMethod "computeBounds" o = Gtk.Widget.WidgetComputeBoundsMethodInfo
    ResolveMediaControlsMethod "computeExpand" o = Gtk.Widget.WidgetComputeExpandMethodInfo
    ResolveMediaControlsMethod "computePoint" o = Gtk.Widget.WidgetComputePointMethodInfo
    ResolveMediaControlsMethod "computeTransform" o = Gtk.Widget.WidgetComputeTransformMethodInfo
    ResolveMediaControlsMethod "constructChild" o = Gtk.Buildable.BuildableConstructChildMethodInfo
    ResolveMediaControlsMethod "contains" o = Gtk.Widget.WidgetContainsMethodInfo
    ResolveMediaControlsMethod "createPangoContext" o = Gtk.Widget.WidgetCreatePangoContextMethodInfo
    ResolveMediaControlsMethod "createPangoLayout" o = Gtk.Widget.WidgetCreatePangoLayoutMethodInfo
    ResolveMediaControlsMethod "customFinished" o = Gtk.Buildable.BuildableCustomFinishedMethodInfo
    ResolveMediaControlsMethod "customTagEnd" o = Gtk.Buildable.BuildableCustomTagEndMethodInfo
    ResolveMediaControlsMethod "customTagStart" o = Gtk.Buildable.BuildableCustomTagStartMethodInfo
    ResolveMediaControlsMethod "deviceIsShadowed" o = Gtk.Widget.WidgetDeviceIsShadowedMethodInfo
    ResolveMediaControlsMethod "dragCheckThreshold" o = Gtk.Widget.WidgetDragCheckThresholdMethodInfo
    ResolveMediaControlsMethod "errorBell" o = Gtk.Widget.WidgetErrorBellMethodInfo
    ResolveMediaControlsMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveMediaControlsMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveMediaControlsMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
    ResolveMediaControlsMethod "grabFocus" o = Gtk.Widget.WidgetGrabFocusMethodInfo
    ResolveMediaControlsMethod "hasCssClass" o = Gtk.Widget.WidgetHasCssClassMethodInfo
    ResolveMediaControlsMethod "hasDefault" o = Gtk.Widget.WidgetHasDefaultMethodInfo
    ResolveMediaControlsMethod "hasFocus" o = Gtk.Widget.WidgetHasFocusMethodInfo
    ResolveMediaControlsMethod "hasVisibleFocus" o = Gtk.Widget.WidgetHasVisibleFocusMethodInfo
    ResolveMediaControlsMethod "hide" o = Gtk.Widget.WidgetHideMethodInfo
    ResolveMediaControlsMethod "inDestruction" o = Gtk.Widget.WidgetInDestructionMethodInfo
    ResolveMediaControlsMethod "initTemplate" o = Gtk.Widget.WidgetInitTemplateMethodInfo
    ResolveMediaControlsMethod "insertActionGroup" o = Gtk.Widget.WidgetInsertActionGroupMethodInfo
    ResolveMediaControlsMethod "insertAfter" o = Gtk.Widget.WidgetInsertAfterMethodInfo
    ResolveMediaControlsMethod "insertBefore" o = Gtk.Widget.WidgetInsertBeforeMethodInfo
    ResolveMediaControlsMethod "isAncestor" o = Gtk.Widget.WidgetIsAncestorMethodInfo
    ResolveMediaControlsMethod "isDrawable" o = Gtk.Widget.WidgetIsDrawableMethodInfo
    ResolveMediaControlsMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveMediaControlsMethod "isFocus" o = Gtk.Widget.WidgetIsFocusMethodInfo
    ResolveMediaControlsMethod "isSensitive" o = Gtk.Widget.WidgetIsSensitiveMethodInfo
    ResolveMediaControlsMethod "isVisible" o = Gtk.Widget.WidgetIsVisibleMethodInfo
    ResolveMediaControlsMethod "keynavFailed" o = Gtk.Widget.WidgetKeynavFailedMethodInfo
    ResolveMediaControlsMethod "listMnemonicLabels" o = Gtk.Widget.WidgetListMnemonicLabelsMethodInfo
    ResolveMediaControlsMethod "map" o = Gtk.Widget.WidgetMapMethodInfo
    ResolveMediaControlsMethod "measure" o = Gtk.Widget.WidgetMeasureMethodInfo
    ResolveMediaControlsMethod "mnemonicActivate" o = Gtk.Widget.WidgetMnemonicActivateMethodInfo
    ResolveMediaControlsMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveMediaControlsMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveMediaControlsMethod "observeChildren" o = Gtk.Widget.WidgetObserveChildrenMethodInfo
    ResolveMediaControlsMethod "observeControllers" o = Gtk.Widget.WidgetObserveControllersMethodInfo
    ResolveMediaControlsMethod "parserFinished" o = Gtk.Buildable.BuildableParserFinishedMethodInfo
    ResolveMediaControlsMethod "pick" o = Gtk.Widget.WidgetPickMethodInfo
    ResolveMediaControlsMethod "queueAllocate" o = Gtk.Widget.WidgetQueueAllocateMethodInfo
    ResolveMediaControlsMethod "queueDraw" o = Gtk.Widget.WidgetQueueDrawMethodInfo
    ResolveMediaControlsMethod "queueResize" o = Gtk.Widget.WidgetQueueResizeMethodInfo
    ResolveMediaControlsMethod "realize" o = Gtk.Widget.WidgetRealizeMethodInfo
    ResolveMediaControlsMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveMediaControlsMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveMediaControlsMethod "removeController" o = Gtk.Widget.WidgetRemoveControllerMethodInfo
    ResolveMediaControlsMethod "removeCssClass" o = Gtk.Widget.WidgetRemoveCssClassMethodInfo
    ResolveMediaControlsMethod "removeMnemonicLabel" o = Gtk.Widget.WidgetRemoveMnemonicLabelMethodInfo
    ResolveMediaControlsMethod "removeTickCallback" o = Gtk.Widget.WidgetRemoveTickCallbackMethodInfo
    ResolveMediaControlsMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveMediaControlsMethod "shouldLayout" o = Gtk.Widget.WidgetShouldLayoutMethodInfo
    ResolveMediaControlsMethod "show" o = Gtk.Widget.WidgetShowMethodInfo
    ResolveMediaControlsMethod "sizeAllocate" o = Gtk.Widget.WidgetSizeAllocateMethodInfo
    ResolveMediaControlsMethod "snapshotChild" o = Gtk.Widget.WidgetSnapshotChildMethodInfo
    ResolveMediaControlsMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveMediaControlsMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveMediaControlsMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveMediaControlsMethod "translateCoordinates" o = Gtk.Widget.WidgetTranslateCoordinatesMethodInfo
    ResolveMediaControlsMethod "triggerTooltipQuery" o = Gtk.Widget.WidgetTriggerTooltipQueryMethodInfo
    ResolveMediaControlsMethod "unmap" o = Gtk.Widget.WidgetUnmapMethodInfo
    ResolveMediaControlsMethod "unparent" o = Gtk.Widget.WidgetUnparentMethodInfo
    ResolveMediaControlsMethod "unrealize" o = Gtk.Widget.WidgetUnrealizeMethodInfo
    ResolveMediaControlsMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolveMediaControlsMethod "unsetStateFlags" o = Gtk.Widget.WidgetUnsetStateFlagsMethodInfo
    ResolveMediaControlsMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveMediaControlsMethod "getAccessible" o = Gtk.Widget.WidgetGetAccessibleMethodInfo
    ResolveMediaControlsMethod "getAllocatedBaseline" o = Gtk.Widget.WidgetGetAllocatedBaselineMethodInfo
    ResolveMediaControlsMethod "getAllocatedHeight" o = Gtk.Widget.WidgetGetAllocatedHeightMethodInfo
    ResolveMediaControlsMethod "getAllocatedWidth" o = Gtk.Widget.WidgetGetAllocatedWidthMethodInfo
    ResolveMediaControlsMethod "getAllocation" o = Gtk.Widget.WidgetGetAllocationMethodInfo
    ResolveMediaControlsMethod "getAncestor" o = Gtk.Widget.WidgetGetAncestorMethodInfo
    ResolveMediaControlsMethod "getCanFocus" o = Gtk.Widget.WidgetGetCanFocusMethodInfo
    ResolveMediaControlsMethod "getCanTarget" o = Gtk.Widget.WidgetGetCanTargetMethodInfo
    ResolveMediaControlsMethod "getChildVisible" o = Gtk.Widget.WidgetGetChildVisibleMethodInfo
    ResolveMediaControlsMethod "getClipboard" o = Gtk.Widget.WidgetGetClipboardMethodInfo
    ResolveMediaControlsMethod "getCssClasses" o = Gtk.Widget.WidgetGetCssClassesMethodInfo
    ResolveMediaControlsMethod "getCssName" o = Gtk.Widget.WidgetGetCssNameMethodInfo
    ResolveMediaControlsMethod "getCursor" o = Gtk.Widget.WidgetGetCursorMethodInfo
    ResolveMediaControlsMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveMediaControlsMethod "getDirection" o = Gtk.Widget.WidgetGetDirectionMethodInfo
    ResolveMediaControlsMethod "getDisplay" o = Gtk.Widget.WidgetGetDisplayMethodInfo
    ResolveMediaControlsMethod "getFirstChild" o = Gtk.Widget.WidgetGetFirstChildMethodInfo
    ResolveMediaControlsMethod "getFocusChild" o = Gtk.Widget.WidgetGetFocusChildMethodInfo
    ResolveMediaControlsMethod "getFocusOnClick" o = Gtk.Widget.WidgetGetFocusOnClickMethodInfo
    ResolveMediaControlsMethod "getFocusable" o = Gtk.Widget.WidgetGetFocusableMethodInfo
    ResolveMediaControlsMethod "getFontMap" o = Gtk.Widget.WidgetGetFontMapMethodInfo
    ResolveMediaControlsMethod "getFontOptions" o = Gtk.Widget.WidgetGetFontOptionsMethodInfo
    ResolveMediaControlsMethod "getFrameClock" o = Gtk.Widget.WidgetGetFrameClockMethodInfo
    ResolveMediaControlsMethod "getHalign" o = Gtk.Widget.WidgetGetHalignMethodInfo
    ResolveMediaControlsMethod "getHasTooltip" o = Gtk.Widget.WidgetGetHasTooltipMethodInfo
    ResolveMediaControlsMethod "getHeight" o = Gtk.Widget.WidgetGetHeightMethodInfo
    ResolveMediaControlsMethod "getHexpand" o = Gtk.Widget.WidgetGetHexpandMethodInfo
    ResolveMediaControlsMethod "getHexpandSet" o = Gtk.Widget.WidgetGetHexpandSetMethodInfo
    ResolveMediaControlsMethod "getInternalChild" o = Gtk.Buildable.BuildableGetInternalChildMethodInfo
    ResolveMediaControlsMethod "getLastChild" o = Gtk.Widget.WidgetGetLastChildMethodInfo
    ResolveMediaControlsMethod "getLayoutManager" o = Gtk.Widget.WidgetGetLayoutManagerMethodInfo
    ResolveMediaControlsMethod "getMapped" o = Gtk.Widget.WidgetGetMappedMethodInfo
    ResolveMediaControlsMethod "getMarginBottom" o = Gtk.Widget.WidgetGetMarginBottomMethodInfo
    ResolveMediaControlsMethod "getMarginEnd" o = Gtk.Widget.WidgetGetMarginEndMethodInfo
    ResolveMediaControlsMethod "getMarginStart" o = Gtk.Widget.WidgetGetMarginStartMethodInfo
    ResolveMediaControlsMethod "getMarginTop" o = Gtk.Widget.WidgetGetMarginTopMethodInfo
    ResolveMediaControlsMethod "getMediaStream" o = MediaControlsGetMediaStreamMethodInfo
    ResolveMediaControlsMethod "getName" o = Gtk.Widget.WidgetGetNameMethodInfo
    ResolveMediaControlsMethod "getNative" o = Gtk.Widget.WidgetGetNativeMethodInfo
    ResolveMediaControlsMethod "getNextSibling" o = Gtk.Widget.WidgetGetNextSiblingMethodInfo
    ResolveMediaControlsMethod "getOpacity" o = Gtk.Widget.WidgetGetOpacityMethodInfo
    ResolveMediaControlsMethod "getOverflow" o = Gtk.Widget.WidgetGetOverflowMethodInfo
    ResolveMediaControlsMethod "getPangoContext" o = Gtk.Widget.WidgetGetPangoContextMethodInfo
    ResolveMediaControlsMethod "getParent" o = Gtk.Widget.WidgetGetParentMethodInfo
    ResolveMediaControlsMethod "getPreferredSize" o = Gtk.Widget.WidgetGetPreferredSizeMethodInfo
    ResolveMediaControlsMethod "getPrevSibling" o = Gtk.Widget.WidgetGetPrevSiblingMethodInfo
    ResolveMediaControlsMethod "getPrimaryClipboard" o = Gtk.Widget.WidgetGetPrimaryClipboardMethodInfo
    ResolveMediaControlsMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveMediaControlsMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveMediaControlsMethod "getRealized" o = Gtk.Widget.WidgetGetRealizedMethodInfo
    ResolveMediaControlsMethod "getReceivesDefault" o = Gtk.Widget.WidgetGetReceivesDefaultMethodInfo
    ResolveMediaControlsMethod "getRequestMode" o = Gtk.Widget.WidgetGetRequestModeMethodInfo
    ResolveMediaControlsMethod "getRoot" o = Gtk.Widget.WidgetGetRootMethodInfo
    ResolveMediaControlsMethod "getScaleFactor" o = Gtk.Widget.WidgetGetScaleFactorMethodInfo
    ResolveMediaControlsMethod "getSensitive" o = Gtk.Widget.WidgetGetSensitiveMethodInfo
    ResolveMediaControlsMethod "getSettings" o = Gtk.Widget.WidgetGetSettingsMethodInfo
    ResolveMediaControlsMethod "getSizeRequest" o = Gtk.Widget.WidgetGetSizeRequestMethodInfo
    ResolveMediaControlsMethod "getStateFlags" o = Gtk.Widget.WidgetGetStateFlagsMethodInfo
    ResolveMediaControlsMethod "getStyleContext" o = Gtk.Widget.WidgetGetStyleContextMethodInfo
    ResolveMediaControlsMethod "getSupportMultidevice" o = Gtk.Widget.WidgetGetSupportMultideviceMethodInfo
    ResolveMediaControlsMethod "getTemplateChild" o = Gtk.Widget.WidgetGetTemplateChildMethodInfo
    ResolveMediaControlsMethod "getTooltipMarkup" o = Gtk.Widget.WidgetGetTooltipMarkupMethodInfo
    ResolveMediaControlsMethod "getTooltipText" o = Gtk.Widget.WidgetGetTooltipTextMethodInfo
    ResolveMediaControlsMethod "getValign" o = Gtk.Widget.WidgetGetValignMethodInfo
    ResolveMediaControlsMethod "getVexpand" o = Gtk.Widget.WidgetGetVexpandMethodInfo
    ResolveMediaControlsMethod "getVexpandSet" o = Gtk.Widget.WidgetGetVexpandSetMethodInfo
    ResolveMediaControlsMethod "getVisible" o = Gtk.Widget.WidgetGetVisibleMethodInfo
    ResolveMediaControlsMethod "getWidth" o = Gtk.Widget.WidgetGetWidthMethodInfo
    ResolveMediaControlsMethod "setBuildableProperty" o = Gtk.Buildable.BuildableSetBuildablePropertyMethodInfo
    ResolveMediaControlsMethod "setCanFocus" o = Gtk.Widget.WidgetSetCanFocusMethodInfo
    ResolveMediaControlsMethod "setCanTarget" o = Gtk.Widget.WidgetSetCanTargetMethodInfo
    ResolveMediaControlsMethod "setChildVisible" o = Gtk.Widget.WidgetSetChildVisibleMethodInfo
    ResolveMediaControlsMethod "setCssClasses" o = Gtk.Widget.WidgetSetCssClassesMethodInfo
    ResolveMediaControlsMethod "setCursor" o = Gtk.Widget.WidgetSetCursorMethodInfo
    ResolveMediaControlsMethod "setCursorFromName" o = Gtk.Widget.WidgetSetCursorFromNameMethodInfo
    ResolveMediaControlsMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveMediaControlsMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
    ResolveMediaControlsMethod "setDirection" o = Gtk.Widget.WidgetSetDirectionMethodInfo
    ResolveMediaControlsMethod "setFocusChild" o = Gtk.Widget.WidgetSetFocusChildMethodInfo
    ResolveMediaControlsMethod "setFocusOnClick" o = Gtk.Widget.WidgetSetFocusOnClickMethodInfo
    ResolveMediaControlsMethod "setFocusable" o = Gtk.Widget.WidgetSetFocusableMethodInfo
    ResolveMediaControlsMethod "setFontMap" o = Gtk.Widget.WidgetSetFontMapMethodInfo
    ResolveMediaControlsMethod "setFontOptions" o = Gtk.Widget.WidgetSetFontOptionsMethodInfo
    ResolveMediaControlsMethod "setHalign" o = Gtk.Widget.WidgetSetHalignMethodInfo
    ResolveMediaControlsMethod "setHasTooltip" o = Gtk.Widget.WidgetSetHasTooltipMethodInfo
    ResolveMediaControlsMethod "setHexpand" o = Gtk.Widget.WidgetSetHexpandMethodInfo
    ResolveMediaControlsMethod "setHexpandSet" o = Gtk.Widget.WidgetSetHexpandSetMethodInfo
    ResolveMediaControlsMethod "setLayoutManager" o = Gtk.Widget.WidgetSetLayoutManagerMethodInfo
    ResolveMediaControlsMethod "setMarginBottom" o = Gtk.Widget.WidgetSetMarginBottomMethodInfo
    ResolveMediaControlsMethod "setMarginEnd" o = Gtk.Widget.WidgetSetMarginEndMethodInfo
    ResolveMediaControlsMethod "setMarginStart" o = Gtk.Widget.WidgetSetMarginStartMethodInfo
    ResolveMediaControlsMethod "setMarginTop" o = Gtk.Widget.WidgetSetMarginTopMethodInfo
    ResolveMediaControlsMethod "setMediaStream" o = MediaControlsSetMediaStreamMethodInfo
    ResolveMediaControlsMethod "setName" o = Gtk.Widget.WidgetSetNameMethodInfo
    ResolveMediaControlsMethod "setOpacity" o = Gtk.Widget.WidgetSetOpacityMethodInfo
    ResolveMediaControlsMethod "setOverflow" o = Gtk.Widget.WidgetSetOverflowMethodInfo
    ResolveMediaControlsMethod "setParent" o = Gtk.Widget.WidgetSetParentMethodInfo
    ResolveMediaControlsMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveMediaControlsMethod "setReceivesDefault" o = Gtk.Widget.WidgetSetReceivesDefaultMethodInfo
    ResolveMediaControlsMethod "setSensitive" o = Gtk.Widget.WidgetSetSensitiveMethodInfo
    ResolveMediaControlsMethod "setSizeRequest" o = Gtk.Widget.WidgetSetSizeRequestMethodInfo
    ResolveMediaControlsMethod "setStateFlags" o = Gtk.Widget.WidgetSetStateFlagsMethodInfo
    ResolveMediaControlsMethod "setSupportMultidevice" o = Gtk.Widget.WidgetSetSupportMultideviceMethodInfo
    ResolveMediaControlsMethod "setTooltipMarkup" o = Gtk.Widget.WidgetSetTooltipMarkupMethodInfo
    ResolveMediaControlsMethod "setTooltipText" o = Gtk.Widget.WidgetSetTooltipTextMethodInfo
    ResolveMediaControlsMethod "setValign" o = Gtk.Widget.WidgetSetValignMethodInfo
    ResolveMediaControlsMethod "setVexpand" o = Gtk.Widget.WidgetSetVexpandMethodInfo
    ResolveMediaControlsMethod "setVexpandSet" o = Gtk.Widget.WidgetSetVexpandSetMethodInfo
    ResolveMediaControlsMethod "setVisible" o = Gtk.Widget.WidgetSetVisibleMethodInfo
    ResolveMediaControlsMethod l o = O.MethodResolutionFailed l o

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

#endif

-- VVV Prop "media-stream"
   -- Type: TInterface (Name {namespace = "Gtk", name = "MediaStream"})
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just True,Just True)

-- | Get the value of the “@media-stream@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' mediaControls #mediaStream
-- @
getMediaControlsMediaStream :: (MonadIO m, IsMediaControls o) => o -> m (Maybe Gtk.MediaStream.MediaStream)
getMediaControlsMediaStream :: o -> m (Maybe MediaStream)
getMediaControlsMediaStream o
obj = IO (Maybe MediaStream) -> m (Maybe MediaStream)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe MediaStream) -> m (Maybe MediaStream))
-> IO (Maybe MediaStream) -> m (Maybe MediaStream)
forall a b. (a -> b) -> a -> b
$ o
-> String
-> (ManagedPtr MediaStream -> MediaStream)
-> IO (Maybe MediaStream)
forall a b.
(GObject a, GObject b) =>
a -> String -> (ManagedPtr b -> b) -> IO (Maybe b)
B.Properties.getObjectPropertyObject o
obj String
"media-stream" ManagedPtr MediaStream -> MediaStream
Gtk.MediaStream.MediaStream

-- | Set the value of the “@media-stream@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' mediaControls [ #mediaStream 'Data.GI.Base.Attributes.:=' value ]
-- @
setMediaControlsMediaStream :: (MonadIO m, IsMediaControls o, Gtk.MediaStream.IsMediaStream a) => o -> a -> m ()
setMediaControlsMediaStream :: o -> a -> m ()
setMediaControlsMediaStream o
obj a
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ o -> String -> Maybe a -> IO ()
forall a b.
(GObject a, GObject b) =>
a -> String -> Maybe b -> IO ()
B.Properties.setObjectPropertyObject o
obj String
"media-stream" (a -> Maybe a
forall a. a -> Maybe a
Just a
val)

-- | Construct a `GValueConstruct` with valid value for the “@media-stream@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructMediaControlsMediaStream :: (IsMediaControls o, MIO.MonadIO m, Gtk.MediaStream.IsMediaStream a) => a -> m (GValueConstruct o)
constructMediaControlsMediaStream :: a -> m (GValueConstruct o)
constructMediaControlsMediaStream a
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Maybe a -> IO (GValueConstruct o)
forall a o.
GObject a =>
String -> Maybe a -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyObject String
"media-stream" (a -> Maybe a
forall a. a -> Maybe a
P.Just a
val)

-- | Set the value of the “@media-stream@” property to `Nothing`.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.clear' #mediaStream
-- @
clearMediaControlsMediaStream :: (MonadIO m, IsMediaControls o) => o -> m ()
clearMediaControlsMediaStream :: o -> m ()
clearMediaControlsMediaStream o
obj = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ o -> String -> Maybe MediaStream -> IO ()
forall a b.
(GObject a, GObject b) =>
a -> String -> Maybe b -> IO ()
B.Properties.setObjectPropertyObject o
obj String
"media-stream" (Maybe MediaStream
forall a. Maybe a
Nothing :: Maybe Gtk.MediaStream.MediaStream)

#if defined(ENABLE_OVERLOADING)
data MediaControlsMediaStreamPropertyInfo
instance AttrInfo MediaControlsMediaStreamPropertyInfo where
    type AttrAllowedOps MediaControlsMediaStreamPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
    type AttrBaseTypeConstraint MediaControlsMediaStreamPropertyInfo = IsMediaControls
    type AttrSetTypeConstraint MediaControlsMediaStreamPropertyInfo = Gtk.MediaStream.IsMediaStream
    type AttrTransferTypeConstraint MediaControlsMediaStreamPropertyInfo = Gtk.MediaStream.IsMediaStream
    type AttrTransferType MediaControlsMediaStreamPropertyInfo = Gtk.MediaStream.MediaStream
    type AttrGetType MediaControlsMediaStreamPropertyInfo = (Maybe Gtk.MediaStream.MediaStream)
    type AttrLabel MediaControlsMediaStreamPropertyInfo = "media-stream"
    type AttrOrigin MediaControlsMediaStreamPropertyInfo = MediaControls
    attrGet = getMediaControlsMediaStream
    attrSet = setMediaControlsMediaStream
    attrTransfer _ v = do
        unsafeCastTo Gtk.MediaStream.MediaStream v
    attrConstruct = constructMediaControlsMediaStream
    attrClear = clearMediaControlsMediaStream
#endif

#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList MediaControls
type instance O.AttributeList MediaControls = MediaControlsAttributeList
type MediaControlsAttributeList = ('[ '("canFocus", Gtk.Widget.WidgetCanFocusPropertyInfo), '("canTarget", Gtk.Widget.WidgetCanTargetPropertyInfo), '("cssClasses", Gtk.Widget.WidgetCssClassesPropertyInfo), '("cssName", Gtk.Widget.WidgetCssNamePropertyInfo), '("cursor", Gtk.Widget.WidgetCursorPropertyInfo), '("focusOnClick", Gtk.Widget.WidgetFocusOnClickPropertyInfo), '("focusable", Gtk.Widget.WidgetFocusablePropertyInfo), '("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), '("layoutManager", Gtk.Widget.WidgetLayoutManagerPropertyInfo), '("marginBottom", Gtk.Widget.WidgetMarginBottomPropertyInfo), '("marginEnd", Gtk.Widget.WidgetMarginEndPropertyInfo), '("marginStart", Gtk.Widget.WidgetMarginStartPropertyInfo), '("marginTop", Gtk.Widget.WidgetMarginTopPropertyInfo), '("mediaStream", MediaControlsMediaStreamPropertyInfo), '("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), '("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)
mediaControlsMediaStream :: AttrLabelProxy "mediaStream"
mediaControlsMediaStream = AttrLabelProxy

#endif

#if defined(ENABLE_OVERLOADING)
type instance O.SignalList MediaControls = MediaControlsSignalList
type MediaControlsSignalList = ('[ '("destroy", Gtk.Widget.WidgetDestroySignalInfo), '("directionChanged", Gtk.Widget.WidgetDirectionChangedSignalInfo), '("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), '("queryTooltip", Gtk.Widget.WidgetQueryTooltipSignalInfo), '("realize", Gtk.Widget.WidgetRealizeSignalInfo), '("show", Gtk.Widget.WidgetShowSignalInfo), '("stateFlagsChanged", Gtk.Widget.WidgetStateFlagsChangedSignalInfo), '("unmap", Gtk.Widget.WidgetUnmapSignalInfo), '("unrealize", Gtk.Widget.WidgetUnrealizeSignalInfo)] :: [(Symbol, *)])

#endif

-- method MediaControls::new
-- method type : Constructor
-- Args: [ Arg
--           { argCName = "stream"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "MediaStream" }
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "a #GtkMediaStream to\n    manage or %NULL for none."
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just
--               (TInterface Name { namespace = "Gtk" , name = "MediaControls" })
-- throws : False
-- Skip return : False

foreign import ccall "gtk_media_controls_new" gtk_media_controls_new :: 
    Ptr Gtk.MediaStream.MediaStream ->      -- stream : TInterface (Name {namespace = "Gtk", name = "MediaStream"})
    IO (Ptr MediaControls)

-- | Creates a new t'GI.Gtk.Objects.MediaControls.MediaControls' managing the /@stream@/ passed to it.
mediaControlsNew ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.MediaStream.IsMediaStream a) =>
    Maybe (a)
    -- ^ /@stream@/: a t'GI.Gtk.Objects.MediaStream.MediaStream' to
    --     manage or 'P.Nothing' for none.
    -> m MediaControls
    -- ^ __Returns:__ a new t'GI.Gtk.Objects.MediaControls.MediaControls'
mediaControlsNew :: Maybe a -> m MediaControls
mediaControlsNew Maybe a
stream = IO MediaControls -> m MediaControls
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO MediaControls -> m MediaControls)
-> IO MediaControls -> m MediaControls
forall a b. (a -> b) -> a -> b
$ do
    Ptr MediaStream
maybeStream <- case Maybe a
stream of
        Maybe a
Nothing -> Ptr MediaStream -> IO (Ptr MediaStream)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr MediaStream
forall a. Ptr a
nullPtr
        Just a
jStream -> do
            Ptr MediaStream
jStream' <- a -> IO (Ptr MediaStream)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
jStream
            Ptr MediaStream -> IO (Ptr MediaStream)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr MediaStream
jStream'
    Ptr MediaControls
result <- Ptr MediaStream -> IO (Ptr MediaControls)
gtk_media_controls_new Ptr MediaStream
maybeStream
    Text -> Ptr MediaControls -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"mediaControlsNew" Ptr MediaControls
result
    MediaControls
result' <- ((ManagedPtr MediaControls -> MediaControls)
-> Ptr MediaControls -> IO MediaControls
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr MediaControls -> MediaControls
MediaControls) Ptr MediaControls
result
    Maybe a -> (a -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe a
stream a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
    MediaControls -> IO MediaControls
forall (m :: * -> *) a. Monad m => a -> m a
return MediaControls
result'

#if defined(ENABLE_OVERLOADING)
#endif

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

foreign import ccall "gtk_media_controls_get_media_stream" gtk_media_controls_get_media_stream :: 
    Ptr MediaControls ->                    -- controls : TInterface (Name {namespace = "Gtk", name = "MediaControls"})
    IO (Ptr Gtk.MediaStream.MediaStream)

-- | Gets the media stream managed by /@controls@/ or 'P.Nothing' if none.
mediaControlsGetMediaStream ::
    (B.CallStack.HasCallStack, MonadIO m, IsMediaControls a) =>
    a
    -- ^ /@controls@/: a t'GI.Gtk.Objects.MediaControls.MediaControls'
    -> m (Maybe Gtk.MediaStream.MediaStream)
    -- ^ __Returns:__ The media stream managed by /@controls@/
mediaControlsGetMediaStream :: a -> m (Maybe MediaStream)
mediaControlsGetMediaStream a
controls = IO (Maybe MediaStream) -> m (Maybe MediaStream)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe MediaStream) -> m (Maybe MediaStream))
-> IO (Maybe MediaStream) -> m (Maybe MediaStream)
forall a b. (a -> b) -> a -> b
$ do
    Ptr MediaControls
controls' <- a -> IO (Ptr MediaControls)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
controls
    Ptr MediaStream
result <- Ptr MediaControls -> IO (Ptr MediaStream)
gtk_media_controls_get_media_stream Ptr MediaControls
controls'
    Maybe MediaStream
maybeResult <- Ptr MediaStream
-> (Ptr MediaStream -> IO MediaStream) -> IO (Maybe MediaStream)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull Ptr MediaStream
result ((Ptr MediaStream -> IO MediaStream) -> IO (Maybe MediaStream))
-> (Ptr MediaStream -> IO MediaStream) -> IO (Maybe MediaStream)
forall a b. (a -> b) -> a -> b
$ \Ptr MediaStream
result' -> do
        MediaStream
result'' <- ((ManagedPtr MediaStream -> MediaStream)
-> Ptr MediaStream -> IO MediaStream
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr MediaStream -> MediaStream
Gtk.MediaStream.MediaStream) Ptr MediaStream
result'
        MediaStream -> IO MediaStream
forall (m :: * -> *) a. Monad m => a -> m a
return MediaStream
result''
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
controls
    Maybe MediaStream -> IO (Maybe MediaStream)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe MediaStream
maybeResult

#if defined(ENABLE_OVERLOADING)
data MediaControlsGetMediaStreamMethodInfo
instance (signature ~ (m (Maybe Gtk.MediaStream.MediaStream)), MonadIO m, IsMediaControls a) => O.MethodInfo MediaControlsGetMediaStreamMethodInfo a signature where
    overloadedMethod = mediaControlsGetMediaStream

#endif

-- method MediaControls::set_media_stream
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "controls"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "MediaControls" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkMediaControls widget"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "stream"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "MediaStream" }
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkMediaStream, or %NULL"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_media_controls_set_media_stream" gtk_media_controls_set_media_stream :: 
    Ptr MediaControls ->                    -- controls : TInterface (Name {namespace = "Gtk", name = "MediaControls"})
    Ptr Gtk.MediaStream.MediaStream ->      -- stream : TInterface (Name {namespace = "Gtk", name = "MediaStream"})
    IO ()

-- | Sets the stream that is controlled by /@controls@/.
mediaControlsSetMediaStream ::
    (B.CallStack.HasCallStack, MonadIO m, IsMediaControls a, Gtk.MediaStream.IsMediaStream b) =>
    a
    -- ^ /@controls@/: a t'GI.Gtk.Objects.MediaControls.MediaControls' widget
    -> Maybe (b)
    -- ^ /@stream@/: a t'GI.Gtk.Objects.MediaStream.MediaStream', or 'P.Nothing'
    -> m ()
mediaControlsSetMediaStream :: a -> Maybe b -> m ()
mediaControlsSetMediaStream a
controls Maybe b
stream = 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 MediaControls
controls' <- a -> IO (Ptr MediaControls)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
controls
    Ptr MediaStream
maybeStream <- case Maybe b
stream of
        Maybe b
Nothing -> Ptr MediaStream -> IO (Ptr MediaStream)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr MediaStream
forall a. Ptr a
nullPtr
        Just b
jStream -> do
            Ptr MediaStream
jStream' <- b -> IO (Ptr MediaStream)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
jStream
            Ptr MediaStream -> IO (Ptr MediaStream)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr MediaStream
jStream'
    Ptr MediaControls -> Ptr MediaStream -> IO ()
gtk_media_controls_set_media_stream Ptr MediaControls
controls' Ptr MediaStream
maybeStream
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
controls
    Maybe b -> (b -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe b
stream b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data MediaControlsSetMediaStreamMethodInfo
instance (signature ~ (Maybe (b) -> m ()), MonadIO m, IsMediaControls a, Gtk.MediaStream.IsMediaStream b) => O.MethodInfo MediaControlsSetMediaStreamMethodInfo a signature where
    overloadedMethod = mediaControlsSetMediaStream

#endif