{- |
Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License    : LGPL-2.1
Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
-}

module GI.Gtk.Objects.MessageDialog
    ( 

-- * Exported types
    MessageDialog(..)                       ,
    MessageDialogK                          ,
    toMessageDialog                         ,
    noMessageDialog                         ,


 -- * Methods
-- ** messageDialogGetImage
    messageDialogGetImage                   ,


-- ** messageDialogGetMessageArea
    messageDialogGetMessageArea             ,


-- ** messageDialogSetImage
    messageDialogSetImage                   ,


-- ** messageDialogSetMarkup
    messageDialogSetMarkup                  ,




 -- * Properties
-- ** Buttons
    MessageDialogButtonsPropertyInfo        ,
    constructMessageDialogButtons           ,


-- ** Image
    MessageDialogImagePropertyInfo          ,
    constructMessageDialogImage             ,
    getMessageDialogImage                   ,
    setMessageDialogImage                   ,


-- ** MessageArea
    MessageDialogMessageAreaPropertyInfo    ,
    getMessageDialogMessageArea             ,


-- ** MessageType
    MessageDialogMessageTypePropertyInfo    ,
    constructMessageDialogMessageType       ,
    getMessageDialogMessageType             ,
    setMessageDialogMessageType             ,


-- ** SecondaryText
    MessageDialogSecondaryTextPropertyInfo  ,
    constructMessageDialogSecondaryText     ,
    getMessageDialogSecondaryText           ,
    setMessageDialogSecondaryText           ,


-- ** SecondaryUseMarkup
    MessageDialogSecondaryUseMarkupPropertyInfo,
    constructMessageDialogSecondaryUseMarkup,
    getMessageDialogSecondaryUseMarkup      ,
    setMessageDialogSecondaryUseMarkup      ,


-- ** Text
    MessageDialogTextPropertyInfo           ,
    constructMessageDialogText              ,
    getMessageDialogText                    ,
    setMessageDialogText                    ,


-- ** UseMarkup
    MessageDialogUseMarkupPropertyInfo      ,
    constructMessageDialogUseMarkup         ,
    getMessageDialogUseMarkup               ,
    setMessageDialogUseMarkup               ,




    ) where

import Prelude ()
import Data.GI.Base.ShortPrelude

import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map

import GI.Gtk.Types
import GI.Gtk.Callbacks
import qualified GI.Atk as Atk
import qualified GI.GObject as GObject

newtype MessageDialog = MessageDialog (ForeignPtr MessageDialog)
foreign import ccall "gtk_message_dialog_get_type"
    c_gtk_message_dialog_get_type :: IO GType

type instance ParentTypes MessageDialog = MessageDialogParentTypes
type MessageDialogParentTypes = '[Dialog, Window, Bin, Container, Widget, GObject.Object, Atk.ImplementorIface, Buildable]

instance GObject MessageDialog where
    gobjectIsInitiallyUnowned _ = True
    gobjectType _ = c_gtk_message_dialog_get_type
    

class GObject o => MessageDialogK o
instance (GObject o, IsDescendantOf MessageDialog o) => MessageDialogK o

toMessageDialog :: MessageDialogK o => o -> IO MessageDialog
toMessageDialog = unsafeCastTo MessageDialog

noMessageDialog :: Maybe MessageDialog
noMessageDialog = Nothing

-- VVV Prop "buttons"
   -- Type: TInterface "Gtk" "ButtonsType"
   -- Flags: [PropertyWritable,PropertyConstructOnly]

constructMessageDialogButtons :: ButtonsType -> IO ([Char], GValue)
constructMessageDialogButtons val = constructObjectPropertyEnum "buttons" val

data MessageDialogButtonsPropertyInfo
instance AttrInfo MessageDialogButtonsPropertyInfo where
    type AttrAllowedOps MessageDialogButtonsPropertyInfo = '[ 'AttrConstruct]
    type AttrSetTypeConstraint MessageDialogButtonsPropertyInfo = (~) ButtonsType
    type AttrBaseTypeConstraint MessageDialogButtonsPropertyInfo = MessageDialogK
    type AttrGetType MessageDialogButtonsPropertyInfo = ()
    type AttrLabel MessageDialogButtonsPropertyInfo = "MessageDialog::buttons"
    attrGet _ = undefined
    attrSet _ = undefined
    attrConstruct _ = constructMessageDialogButtons

-- VVV Prop "image"
   -- Type: TInterface "Gtk" "Widget"
   -- Flags: [PropertyReadable,PropertyWritable]

getMessageDialogImage :: (MonadIO m, MessageDialogK o) => o -> m Widget
getMessageDialogImage obj = liftIO $ getObjectPropertyObject obj "image" Widget

setMessageDialogImage :: (MonadIO m, MessageDialogK o, WidgetK a) => o -> a -> m ()
setMessageDialogImage obj val = liftIO $ setObjectPropertyObject obj "image" val

constructMessageDialogImage :: (WidgetK a) => a -> IO ([Char], GValue)
constructMessageDialogImage val = constructObjectPropertyObject "image" val

data MessageDialogImagePropertyInfo
instance AttrInfo MessageDialogImagePropertyInfo where
    type AttrAllowedOps MessageDialogImagePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint MessageDialogImagePropertyInfo = WidgetK
    type AttrBaseTypeConstraint MessageDialogImagePropertyInfo = MessageDialogK
    type AttrGetType MessageDialogImagePropertyInfo = Widget
    type AttrLabel MessageDialogImagePropertyInfo = "MessageDialog::image"
    attrGet _ = getMessageDialogImage
    attrSet _ = setMessageDialogImage
    attrConstruct _ = constructMessageDialogImage

-- VVV Prop "message-area"
   -- Type: TInterface "Gtk" "Widget"
   -- Flags: [PropertyReadable]

getMessageDialogMessageArea :: (MonadIO m, MessageDialogK o) => o -> m Widget
getMessageDialogMessageArea obj = liftIO $ getObjectPropertyObject obj "message-area" Widget

data MessageDialogMessageAreaPropertyInfo
instance AttrInfo MessageDialogMessageAreaPropertyInfo where
    type AttrAllowedOps MessageDialogMessageAreaPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint MessageDialogMessageAreaPropertyInfo = (~) ()
    type AttrBaseTypeConstraint MessageDialogMessageAreaPropertyInfo = MessageDialogK
    type AttrGetType MessageDialogMessageAreaPropertyInfo = Widget
    type AttrLabel MessageDialogMessageAreaPropertyInfo = "MessageDialog::message-area"
    attrGet _ = getMessageDialogMessageArea
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "message-type"
   -- Type: TInterface "Gtk" "MessageType"
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstruct]

getMessageDialogMessageType :: (MonadIO m, MessageDialogK o) => o -> m MessageType
getMessageDialogMessageType obj = liftIO $ getObjectPropertyEnum obj "message-type"

setMessageDialogMessageType :: (MonadIO m, MessageDialogK o) => o -> MessageType -> m ()
setMessageDialogMessageType obj val = liftIO $ setObjectPropertyEnum obj "message-type" val

constructMessageDialogMessageType :: MessageType -> IO ([Char], GValue)
constructMessageDialogMessageType val = constructObjectPropertyEnum "message-type" val

data MessageDialogMessageTypePropertyInfo
instance AttrInfo MessageDialogMessageTypePropertyInfo where
    type AttrAllowedOps MessageDialogMessageTypePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint MessageDialogMessageTypePropertyInfo = (~) MessageType
    type AttrBaseTypeConstraint MessageDialogMessageTypePropertyInfo = MessageDialogK
    type AttrGetType MessageDialogMessageTypePropertyInfo = MessageType
    type AttrLabel MessageDialogMessageTypePropertyInfo = "MessageDialog::message-type"
    attrGet _ = getMessageDialogMessageType
    attrSet _ = setMessageDialogMessageType
    attrConstruct _ = constructMessageDialogMessageType

-- VVV Prop "secondary-text"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyReadable,PropertyWritable]

getMessageDialogSecondaryText :: (MonadIO m, MessageDialogK o) => o -> m T.Text
getMessageDialogSecondaryText obj = liftIO $ getObjectPropertyString obj "secondary-text"

setMessageDialogSecondaryText :: (MonadIO m, MessageDialogK o) => o -> T.Text -> m ()
setMessageDialogSecondaryText obj val = liftIO $ setObjectPropertyString obj "secondary-text" val

constructMessageDialogSecondaryText :: T.Text -> IO ([Char], GValue)
constructMessageDialogSecondaryText val = constructObjectPropertyString "secondary-text" val

data MessageDialogSecondaryTextPropertyInfo
instance AttrInfo MessageDialogSecondaryTextPropertyInfo where
    type AttrAllowedOps MessageDialogSecondaryTextPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint MessageDialogSecondaryTextPropertyInfo = (~) T.Text
    type AttrBaseTypeConstraint MessageDialogSecondaryTextPropertyInfo = MessageDialogK
    type AttrGetType MessageDialogSecondaryTextPropertyInfo = T.Text
    type AttrLabel MessageDialogSecondaryTextPropertyInfo = "MessageDialog::secondary-text"
    attrGet _ = getMessageDialogSecondaryText
    attrSet _ = setMessageDialogSecondaryText
    attrConstruct _ = constructMessageDialogSecondaryText

-- VVV Prop "secondary-use-markup"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getMessageDialogSecondaryUseMarkup :: (MonadIO m, MessageDialogK o) => o -> m Bool
getMessageDialogSecondaryUseMarkup obj = liftIO $ getObjectPropertyBool obj "secondary-use-markup"

setMessageDialogSecondaryUseMarkup :: (MonadIO m, MessageDialogK o) => o -> Bool -> m ()
setMessageDialogSecondaryUseMarkup obj val = liftIO $ setObjectPropertyBool obj "secondary-use-markup" val

constructMessageDialogSecondaryUseMarkup :: Bool -> IO ([Char], GValue)
constructMessageDialogSecondaryUseMarkup val = constructObjectPropertyBool "secondary-use-markup" val

data MessageDialogSecondaryUseMarkupPropertyInfo
instance AttrInfo MessageDialogSecondaryUseMarkupPropertyInfo where
    type AttrAllowedOps MessageDialogSecondaryUseMarkupPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint MessageDialogSecondaryUseMarkupPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint MessageDialogSecondaryUseMarkupPropertyInfo = MessageDialogK
    type AttrGetType MessageDialogSecondaryUseMarkupPropertyInfo = Bool
    type AttrLabel MessageDialogSecondaryUseMarkupPropertyInfo = "MessageDialog::secondary-use-markup"
    attrGet _ = getMessageDialogSecondaryUseMarkup
    attrSet _ = setMessageDialogSecondaryUseMarkup
    attrConstruct _ = constructMessageDialogSecondaryUseMarkup

-- VVV Prop "text"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyReadable,PropertyWritable]

getMessageDialogText :: (MonadIO m, MessageDialogK o) => o -> m T.Text
getMessageDialogText obj = liftIO $ getObjectPropertyString obj "text"

setMessageDialogText :: (MonadIO m, MessageDialogK o) => o -> T.Text -> m ()
setMessageDialogText obj val = liftIO $ setObjectPropertyString obj "text" val

constructMessageDialogText :: T.Text -> IO ([Char], GValue)
constructMessageDialogText val = constructObjectPropertyString "text" val

data MessageDialogTextPropertyInfo
instance AttrInfo MessageDialogTextPropertyInfo where
    type AttrAllowedOps MessageDialogTextPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint MessageDialogTextPropertyInfo = (~) T.Text
    type AttrBaseTypeConstraint MessageDialogTextPropertyInfo = MessageDialogK
    type AttrGetType MessageDialogTextPropertyInfo = T.Text
    type AttrLabel MessageDialogTextPropertyInfo = "MessageDialog::text"
    attrGet _ = getMessageDialogText
    attrSet _ = setMessageDialogText
    attrConstruct _ = constructMessageDialogText

-- VVV Prop "use-markup"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getMessageDialogUseMarkup :: (MonadIO m, MessageDialogK o) => o -> m Bool
getMessageDialogUseMarkup obj = liftIO $ getObjectPropertyBool obj "use-markup"

setMessageDialogUseMarkup :: (MonadIO m, MessageDialogK o) => o -> Bool -> m ()
setMessageDialogUseMarkup obj val = liftIO $ setObjectPropertyBool obj "use-markup" val

constructMessageDialogUseMarkup :: Bool -> IO ([Char], GValue)
constructMessageDialogUseMarkup val = constructObjectPropertyBool "use-markup" val

data MessageDialogUseMarkupPropertyInfo
instance AttrInfo MessageDialogUseMarkupPropertyInfo where
    type AttrAllowedOps MessageDialogUseMarkupPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint MessageDialogUseMarkupPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint MessageDialogUseMarkupPropertyInfo = MessageDialogK
    type AttrGetType MessageDialogUseMarkupPropertyInfo = Bool
    type AttrLabel MessageDialogUseMarkupPropertyInfo = "MessageDialog::use-markup"
    attrGet _ = getMessageDialogUseMarkup
    attrSet _ = setMessageDialogUseMarkup
    attrConstruct _ = constructMessageDialogUseMarkup

type instance AttributeList MessageDialog = MessageDialogAttributeList
type MessageDialogAttributeList = ('[ '("accept-focus", WindowAcceptFocusPropertyInfo), '("app-paintable", WidgetAppPaintablePropertyInfo), '("application", WindowApplicationPropertyInfo), '("attached-to", WindowAttachedToPropertyInfo), '("border-width", ContainerBorderWidthPropertyInfo), '("buttons", MessageDialogButtonsPropertyInfo), '("can-default", WidgetCanDefaultPropertyInfo), '("can-focus", WidgetCanFocusPropertyInfo), '("child", ContainerChildPropertyInfo), '("composite-child", WidgetCompositeChildPropertyInfo), '("decorated", WindowDecoratedPropertyInfo), '("default-height", WindowDefaultHeightPropertyInfo), '("default-width", WindowDefaultWidthPropertyInfo), '("deletable", WindowDeletablePropertyInfo), '("destroy-with-parent", WindowDestroyWithParentPropertyInfo), '("double-buffered", WidgetDoubleBufferedPropertyInfo), '("events", WidgetEventsPropertyInfo), '("expand", WidgetExpandPropertyInfo), '("focus-on-map", WindowFocusOnMapPropertyInfo), '("focus-visible", WindowFocusVisiblePropertyInfo), '("gravity", WindowGravityPropertyInfo), '("halign", WidgetHalignPropertyInfo), '("has-default", WidgetHasDefaultPropertyInfo), '("has-focus", WidgetHasFocusPropertyInfo), '("has-resize-grip", WindowHasResizeGripPropertyInfo), '("has-tooltip", WidgetHasTooltipPropertyInfo), '("has-toplevel-focus", WindowHasToplevelFocusPropertyInfo), '("height-request", WidgetHeightRequestPropertyInfo), '("hexpand", WidgetHexpandPropertyInfo), '("hexpand-set", WidgetHexpandSetPropertyInfo), '("hide-titlebar-when-maximized", WindowHideTitlebarWhenMaximizedPropertyInfo), '("icon", WindowIconPropertyInfo), '("icon-name", WindowIconNamePropertyInfo), '("image", MessageDialogImagePropertyInfo), '("is-active", WindowIsActivePropertyInfo), '("is-focus", WidgetIsFocusPropertyInfo), '("is-maximized", WindowIsMaximizedPropertyInfo), '("margin", WidgetMarginPropertyInfo), '("margin-bottom", WidgetMarginBottomPropertyInfo), '("margin-end", WidgetMarginEndPropertyInfo), '("margin-left", WidgetMarginLeftPropertyInfo), '("margin-right", WidgetMarginRightPropertyInfo), '("margin-start", WidgetMarginStartPropertyInfo), '("margin-top", WidgetMarginTopPropertyInfo), '("message-area", MessageDialogMessageAreaPropertyInfo), '("message-type", MessageDialogMessageTypePropertyInfo), '("mnemonics-visible", WindowMnemonicsVisiblePropertyInfo), '("modal", WindowModalPropertyInfo), '("name", WidgetNamePropertyInfo), '("no-show-all", WidgetNoShowAllPropertyInfo), '("opacity", WidgetOpacityPropertyInfo), '("parent", WidgetParentPropertyInfo), '("receives-default", WidgetReceivesDefaultPropertyInfo), '("resizable", WindowResizablePropertyInfo), '("resize-grip-visible", WindowResizeGripVisiblePropertyInfo), '("resize-mode", ContainerResizeModePropertyInfo), '("role", WindowRolePropertyInfo), '("scale-factor", WidgetScaleFactorPropertyInfo), '("screen", WindowScreenPropertyInfo), '("secondary-text", MessageDialogSecondaryTextPropertyInfo), '("secondary-use-markup", MessageDialogSecondaryUseMarkupPropertyInfo), '("sensitive", WidgetSensitivePropertyInfo), '("skip-pager-hint", WindowSkipPagerHintPropertyInfo), '("skip-taskbar-hint", WindowSkipTaskbarHintPropertyInfo), '("startup-id", WindowStartupIdPropertyInfo), '("style", WidgetStylePropertyInfo), '("text", MessageDialogTextPropertyInfo), '("title", WindowTitlePropertyInfo), '("tooltip-markup", WidgetTooltipMarkupPropertyInfo), '("tooltip-text", WidgetTooltipTextPropertyInfo), '("transient-for", WindowTransientForPropertyInfo), '("type", WindowTypePropertyInfo), '("type-hint", WindowTypeHintPropertyInfo), '("urgency-hint", WindowUrgencyHintPropertyInfo), '("use-header-bar", DialogUseHeaderBarPropertyInfo), '("use-markup", MessageDialogUseMarkupPropertyInfo), '("valign", WidgetValignPropertyInfo), '("vexpand", WidgetVexpandPropertyInfo), '("vexpand-set", WidgetVexpandSetPropertyInfo), '("visible", WidgetVisiblePropertyInfo), '("width-request", WidgetWidthRequestPropertyInfo), '("window", WidgetWindowPropertyInfo), '("window-position", WindowWindowPositionPropertyInfo)] :: [(Symbol, *)])

type instance SignalList MessageDialog = MessageDialogSignalList
type MessageDialogSignalList = ('[ '("accel-closures-changed", WidgetAccelClosuresChangedSignalInfo), '("activate-default", WindowActivateDefaultSignalInfo), '("activate-focus", WindowActivateFocusSignalInfo), '("add", ContainerAddSignalInfo), '("button-press-event", WidgetButtonPressEventSignalInfo), '("button-release-event", WidgetButtonReleaseEventSignalInfo), '("can-activate-accel", WidgetCanActivateAccelSignalInfo), '("check-resize", ContainerCheckResizeSignalInfo), '("child-notify", WidgetChildNotifySignalInfo), '("close", DialogCloseSignalInfo), '("composited-changed", WidgetCompositedChangedSignalInfo), '("configure-event", WidgetConfigureEventSignalInfo), '("damage-event", WidgetDamageEventSignalInfo), '("delete-event", WidgetDeleteEventSignalInfo), '("destroy", WidgetDestroySignalInfo), '("destroy-event", WidgetDestroyEventSignalInfo), '("direction-changed", WidgetDirectionChangedSignalInfo), '("drag-begin", WidgetDragBeginSignalInfo), '("drag-data-delete", WidgetDragDataDeleteSignalInfo), '("drag-data-get", WidgetDragDataGetSignalInfo), '("drag-data-received", WidgetDragDataReceivedSignalInfo), '("drag-drop", WidgetDragDropSignalInfo), '("drag-end", WidgetDragEndSignalInfo), '("drag-failed", WidgetDragFailedSignalInfo), '("drag-leave", WidgetDragLeaveSignalInfo), '("drag-motion", WidgetDragMotionSignalInfo), '("draw", WidgetDrawSignalInfo), '("enable-debugging", WindowEnableDebuggingSignalInfo), '("enter-notify-event", WidgetEnterNotifyEventSignalInfo), '("event", WidgetEventSignalInfo), '("event-after", WidgetEventAfterSignalInfo), '("focus", WidgetFocusSignalInfo), '("focus-in-event", WidgetFocusInEventSignalInfo), '("focus-out-event", WidgetFocusOutEventSignalInfo), '("grab-broken-event", WidgetGrabBrokenEventSignalInfo), '("grab-focus", WidgetGrabFocusSignalInfo), '("grab-notify", WidgetGrabNotifySignalInfo), '("hide", WidgetHideSignalInfo), '("hierarchy-changed", WidgetHierarchyChangedSignalInfo), '("key-press-event", WidgetKeyPressEventSignalInfo), '("key-release-event", WidgetKeyReleaseEventSignalInfo), '("keynav-failed", WidgetKeynavFailedSignalInfo), '("keys-changed", WindowKeysChangedSignalInfo), '("leave-notify-event", WidgetLeaveNotifyEventSignalInfo), '("map", WidgetMapSignalInfo), '("map-event", WidgetMapEventSignalInfo), '("mnemonic-activate", WidgetMnemonicActivateSignalInfo), '("motion-notify-event", WidgetMotionNotifyEventSignalInfo), '("move-focus", WidgetMoveFocusSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("parent-set", WidgetParentSetSignalInfo), '("popup-menu", WidgetPopupMenuSignalInfo), '("property-notify-event", WidgetPropertyNotifyEventSignalInfo), '("proximity-in-event", WidgetProximityInEventSignalInfo), '("proximity-out-event", WidgetProximityOutEventSignalInfo), '("query-tooltip", WidgetQueryTooltipSignalInfo), '("realize", WidgetRealizeSignalInfo), '("remove", ContainerRemoveSignalInfo), '("response", DialogResponseSignalInfo), '("screen-changed", WidgetScreenChangedSignalInfo), '("scroll-event", WidgetScrollEventSignalInfo), '("selection-clear-event", WidgetSelectionClearEventSignalInfo), '("selection-get", WidgetSelectionGetSignalInfo), '("selection-notify-event", WidgetSelectionNotifyEventSignalInfo), '("selection-received", WidgetSelectionReceivedSignalInfo), '("selection-request-event", WidgetSelectionRequestEventSignalInfo), '("set-focus", WindowSetFocusSignalInfo), '("set-focus-child", ContainerSetFocusChildSignalInfo), '("show", WidgetShowSignalInfo), '("show-help", WidgetShowHelpSignalInfo), '("size-allocate", WidgetSizeAllocateSignalInfo), '("state-changed", WidgetStateChangedSignalInfo), '("state-flags-changed", WidgetStateFlagsChangedSignalInfo), '("style-set", WidgetStyleSetSignalInfo), '("style-updated", WidgetStyleUpdatedSignalInfo), '("touch-event", WidgetTouchEventSignalInfo), '("unmap", WidgetUnmapSignalInfo), '("unmap-event", WidgetUnmapEventSignalInfo), '("unrealize", WidgetUnrealizeSignalInfo), '("visibility-notify-event", WidgetVisibilityNotifyEventSignalInfo), '("window-state-event", WidgetWindowStateEventSignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])

-- method MessageDialog::get_image
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "MessageDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "MessageDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "Gtk" "Widget"
-- throws : False
-- Skip return : False

foreign import ccall "gtk_message_dialog_get_image" gtk_message_dialog_get_image :: 
    Ptr MessageDialog ->                    -- _obj : TInterface "Gtk" "MessageDialog"
    IO (Ptr Widget)

{-# DEPRECATED messageDialogGetImage ["(Since version 3.12)","Use #GtkDialog for dialogs with images"]#-}
messageDialogGetImage ::
    (MonadIO m, MessageDialogK a) =>
    a ->                                    -- _obj
    m Widget
messageDialogGetImage _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_message_dialog_get_image _obj'
    checkUnexpectedReturnNULL "gtk_message_dialog_get_image" result
    result' <- (newObject Widget) result
    touchManagedPtr _obj
    return result'

-- method MessageDialog::get_message_area
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "MessageDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "MessageDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "Gtk" "Widget"
-- throws : False
-- Skip return : False

foreign import ccall "gtk_message_dialog_get_message_area" gtk_message_dialog_get_message_area :: 
    Ptr MessageDialog ->                    -- _obj : TInterface "Gtk" "MessageDialog"
    IO (Ptr Widget)


messageDialogGetMessageArea ::
    (MonadIO m, MessageDialogK a) =>
    a ->                                    -- _obj
    m Widget
messageDialogGetMessageArea _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_message_dialog_get_message_area _obj'
    checkUnexpectedReturnNULL "gtk_message_dialog_get_message_area" result
    result' <- (newObject Widget) result
    touchManagedPtr _obj
    return result'

-- method MessageDialog::set_image
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "MessageDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "image", argType = TInterface "Gtk" "Widget", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "MessageDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "image", argType = TInterface "Gtk" "Widget", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_message_dialog_set_image" gtk_message_dialog_set_image :: 
    Ptr MessageDialog ->                    -- _obj : TInterface "Gtk" "MessageDialog"
    Ptr Widget ->                           -- image : TInterface "Gtk" "Widget"
    IO ()

{-# DEPRECATED messageDialogSetImage ["(Since version 3.12)","Use #GtkDialog to create dialogs with images"]#-}
messageDialogSetImage ::
    (MonadIO m, MessageDialogK a, WidgetK b) =>
    a ->                                    -- _obj
    b ->                                    -- image
    m ()
messageDialogSetImage _obj image = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let image' = unsafeManagedPtrCastPtr image
    gtk_message_dialog_set_image _obj' image'
    touchManagedPtr _obj
    touchManagedPtr image
    return ()

-- method MessageDialog::set_markup
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "MessageDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "MessageDialog", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_message_dialog_set_markup" gtk_message_dialog_set_markup :: 
    Ptr MessageDialog ->                    -- _obj : TInterface "Gtk" "MessageDialog"
    CString ->                              -- str : TBasicType TUTF8
    IO ()


messageDialogSetMarkup ::
    (MonadIO m, MessageDialogK a) =>
    a ->                                    -- _obj
    T.Text ->                               -- str
    m ()
messageDialogSetMarkup _obj str = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    str' <- textToCString str
    gtk_message_dialog_set_markup _obj' str'
    touchManagedPtr _obj
    freeMem str'
    return ()