module GI.Gtk.Objects.Menu
(
Menu(..) ,
MenuK ,
toMenu ,
noMenu ,
menuAttach ,
menuAttachToWidget ,
menuDetach ,
menuGetAccelGroup ,
menuGetAccelPath ,
menuGetActive ,
menuGetAttachWidget ,
menuGetForAttachWidget ,
menuGetMonitor ,
menuGetReserveToggleSize ,
menuGetTearoffState ,
menuGetTitle ,
menuNew ,
menuNewFromModel ,
menuPopdown ,
menuPopup ,
menuPopupForDevice ,
menuReorderChild ,
menuReposition ,
menuSetAccelGroup ,
menuSetAccelPath ,
menuSetActive ,
menuSetMonitor ,
menuSetReserveToggleSize ,
menuSetScreen ,
menuSetTearoffState ,
menuSetTitle ,
MenuAccelGroupPropertyInfo ,
constructMenuAccelGroup ,
getMenuAccelGroup ,
setMenuAccelGroup ,
MenuAccelPathPropertyInfo ,
constructMenuAccelPath ,
getMenuAccelPath ,
setMenuAccelPath ,
MenuActivePropertyInfo ,
constructMenuActive ,
getMenuActive ,
setMenuActive ,
MenuAttachWidgetPropertyInfo ,
constructMenuAttachWidget ,
getMenuAttachWidget ,
setMenuAttachWidget ,
MenuMonitorPropertyInfo ,
constructMenuMonitor ,
getMenuMonitor ,
setMenuMonitor ,
MenuReserveToggleSizePropertyInfo ,
constructMenuReserveToggleSize ,
getMenuReserveToggleSize ,
setMenuReserveToggleSize ,
MenuTearoffStatePropertyInfo ,
constructMenuTearoffState ,
getMenuTearoffState ,
setMenuTearoffState ,
MenuTearoffTitlePropertyInfo ,
constructMenuTearoffTitle ,
getMenuTearoffTitle ,
setMenuTearoffTitle ,
MenuMoveScrollCallback ,
MenuMoveScrollCallbackC ,
MenuMoveScrollSignalInfo ,
afterMenuMoveScroll ,
menuMoveScrollCallbackWrapper ,
menuMoveScrollClosure ,
mkMenuMoveScrollCallback ,
noMenuMoveScrollCallback ,
onMenuMoveScroll ,
) 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.GLib as GLib
import qualified GI.GObject as GObject
import qualified GI.Gdk as Gdk
import qualified GI.Gio as Gio
newtype Menu = Menu (ForeignPtr Menu)
foreign import ccall "gtk_menu_get_type"
c_gtk_menu_get_type :: IO GType
type instance ParentTypes Menu = MenuParentTypes
type MenuParentTypes = '[MenuShell, Container, Widget, GObject.Object, Atk.ImplementorIface, Buildable]
instance GObject Menu where
gobjectIsInitiallyUnowned _ = True
gobjectType _ = c_gtk_menu_get_type
class GObject o => MenuK o
instance (GObject o, IsDescendantOf Menu o) => MenuK o
toMenu :: MenuK o => o -> IO Menu
toMenu = unsafeCastTo Menu
noMenu :: Maybe Menu
noMenu = Nothing
type MenuMoveScrollCallback =
ScrollType ->
IO ()
noMenuMoveScrollCallback :: Maybe MenuMoveScrollCallback
noMenuMoveScrollCallback = Nothing
type MenuMoveScrollCallbackC =
Ptr () ->
CUInt ->
Ptr () ->
IO ()
foreign import ccall "wrapper"
mkMenuMoveScrollCallback :: MenuMoveScrollCallbackC -> IO (FunPtr MenuMoveScrollCallbackC)
menuMoveScrollClosure :: MenuMoveScrollCallback -> IO Closure
menuMoveScrollClosure cb = newCClosure =<< mkMenuMoveScrollCallback wrapped
where wrapped = menuMoveScrollCallbackWrapper cb
menuMoveScrollCallbackWrapper ::
MenuMoveScrollCallback ->
Ptr () ->
CUInt ->
Ptr () ->
IO ()
menuMoveScrollCallbackWrapper _cb _ scroll_type _ = do
let scroll_type' = (toEnum . fromIntegral) scroll_type
_cb scroll_type'
onMenuMoveScroll :: (GObject a, MonadIO m) => a -> MenuMoveScrollCallback -> m SignalHandlerId
onMenuMoveScroll obj cb = liftIO $ connectMenuMoveScroll obj cb SignalConnectBefore
afterMenuMoveScroll :: (GObject a, MonadIO m) => a -> MenuMoveScrollCallback -> m SignalHandlerId
afterMenuMoveScroll obj cb = connectMenuMoveScroll obj cb SignalConnectAfter
connectMenuMoveScroll :: (GObject a, MonadIO m) =>
a -> MenuMoveScrollCallback -> SignalConnectMode -> m SignalHandlerId
connectMenuMoveScroll obj cb after = liftIO $ do
cb' <- mkMenuMoveScrollCallback (menuMoveScrollCallbackWrapper cb)
connectSignalFunPtr obj "move-scroll" cb' after
getMenuAccelGroup :: (MonadIO m, MenuK o) => o -> m AccelGroup
getMenuAccelGroup obj = liftIO $ getObjectPropertyObject obj "accel-group" AccelGroup
setMenuAccelGroup :: (MonadIO m, MenuK o, AccelGroupK a) => o -> a -> m ()
setMenuAccelGroup obj val = liftIO $ setObjectPropertyObject obj "accel-group" val
constructMenuAccelGroup :: (AccelGroupK a) => a -> IO ([Char], GValue)
constructMenuAccelGroup val = constructObjectPropertyObject "accel-group" val
data MenuAccelGroupPropertyInfo
instance AttrInfo MenuAccelGroupPropertyInfo where
type AttrAllowedOps MenuAccelGroupPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
type AttrSetTypeConstraint MenuAccelGroupPropertyInfo = AccelGroupK
type AttrBaseTypeConstraint MenuAccelGroupPropertyInfo = MenuK
type AttrGetType MenuAccelGroupPropertyInfo = AccelGroup
type AttrLabel MenuAccelGroupPropertyInfo = "Menu::accel-group"
attrGet _ = getMenuAccelGroup
attrSet _ = setMenuAccelGroup
attrConstruct _ = constructMenuAccelGroup
getMenuAccelPath :: (MonadIO m, MenuK o) => o -> m T.Text
getMenuAccelPath obj = liftIO $ getObjectPropertyString obj "accel-path"
setMenuAccelPath :: (MonadIO m, MenuK o) => o -> T.Text -> m ()
setMenuAccelPath obj val = liftIO $ setObjectPropertyString obj "accel-path" val
constructMenuAccelPath :: T.Text -> IO ([Char], GValue)
constructMenuAccelPath val = constructObjectPropertyString "accel-path" val
data MenuAccelPathPropertyInfo
instance AttrInfo MenuAccelPathPropertyInfo where
type AttrAllowedOps MenuAccelPathPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
type AttrSetTypeConstraint MenuAccelPathPropertyInfo = (~) T.Text
type AttrBaseTypeConstraint MenuAccelPathPropertyInfo = MenuK
type AttrGetType MenuAccelPathPropertyInfo = T.Text
type AttrLabel MenuAccelPathPropertyInfo = "Menu::accel-path"
attrGet _ = getMenuAccelPath
attrSet _ = setMenuAccelPath
attrConstruct _ = constructMenuAccelPath
getMenuActive :: (MonadIO m, MenuK o) => o -> m Int32
getMenuActive obj = liftIO $ getObjectPropertyCInt obj "active"
setMenuActive :: (MonadIO m, MenuK o) => o -> Int32 -> m ()
setMenuActive obj val = liftIO $ setObjectPropertyCInt obj "active" val
constructMenuActive :: Int32 -> IO ([Char], GValue)
constructMenuActive val = constructObjectPropertyCInt "active" val
data MenuActivePropertyInfo
instance AttrInfo MenuActivePropertyInfo where
type AttrAllowedOps MenuActivePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
type AttrSetTypeConstraint MenuActivePropertyInfo = (~) Int32
type AttrBaseTypeConstraint MenuActivePropertyInfo = MenuK
type AttrGetType MenuActivePropertyInfo = Int32
type AttrLabel MenuActivePropertyInfo = "Menu::active"
attrGet _ = getMenuActive
attrSet _ = setMenuActive
attrConstruct _ = constructMenuActive
getMenuAttachWidget :: (MonadIO m, MenuK o) => o -> m Widget
getMenuAttachWidget obj = liftIO $ getObjectPropertyObject obj "attach-widget" Widget
setMenuAttachWidget :: (MonadIO m, MenuK o, WidgetK a) => o -> a -> m ()
setMenuAttachWidget obj val = liftIO $ setObjectPropertyObject obj "attach-widget" val
constructMenuAttachWidget :: (WidgetK a) => a -> IO ([Char], GValue)
constructMenuAttachWidget val = constructObjectPropertyObject "attach-widget" val
data MenuAttachWidgetPropertyInfo
instance AttrInfo MenuAttachWidgetPropertyInfo where
type AttrAllowedOps MenuAttachWidgetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
type AttrSetTypeConstraint MenuAttachWidgetPropertyInfo = WidgetK
type AttrBaseTypeConstraint MenuAttachWidgetPropertyInfo = MenuK
type AttrGetType MenuAttachWidgetPropertyInfo = Widget
type AttrLabel MenuAttachWidgetPropertyInfo = "Menu::attach-widget"
attrGet _ = getMenuAttachWidget
attrSet _ = setMenuAttachWidget
attrConstruct _ = constructMenuAttachWidget
getMenuMonitor :: (MonadIO m, MenuK o) => o -> m Int32
getMenuMonitor obj = liftIO $ getObjectPropertyCInt obj "monitor"
setMenuMonitor :: (MonadIO m, MenuK o) => o -> Int32 -> m ()
setMenuMonitor obj val = liftIO $ setObjectPropertyCInt obj "monitor" val
constructMenuMonitor :: Int32 -> IO ([Char], GValue)
constructMenuMonitor val = constructObjectPropertyCInt "monitor" val
data MenuMonitorPropertyInfo
instance AttrInfo MenuMonitorPropertyInfo where
type AttrAllowedOps MenuMonitorPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
type AttrSetTypeConstraint MenuMonitorPropertyInfo = (~) Int32
type AttrBaseTypeConstraint MenuMonitorPropertyInfo = MenuK
type AttrGetType MenuMonitorPropertyInfo = Int32
type AttrLabel MenuMonitorPropertyInfo = "Menu::monitor"
attrGet _ = getMenuMonitor
attrSet _ = setMenuMonitor
attrConstruct _ = constructMenuMonitor
getMenuReserveToggleSize :: (MonadIO m, MenuK o) => o -> m Bool
getMenuReserveToggleSize obj = liftIO $ getObjectPropertyBool obj "reserve-toggle-size"
setMenuReserveToggleSize :: (MonadIO m, MenuK o) => o -> Bool -> m ()
setMenuReserveToggleSize obj val = liftIO $ setObjectPropertyBool obj "reserve-toggle-size" val
constructMenuReserveToggleSize :: Bool -> IO ([Char], GValue)
constructMenuReserveToggleSize val = constructObjectPropertyBool "reserve-toggle-size" val
data MenuReserveToggleSizePropertyInfo
instance AttrInfo MenuReserveToggleSizePropertyInfo where
type AttrAllowedOps MenuReserveToggleSizePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
type AttrSetTypeConstraint MenuReserveToggleSizePropertyInfo = (~) Bool
type AttrBaseTypeConstraint MenuReserveToggleSizePropertyInfo = MenuK
type AttrGetType MenuReserveToggleSizePropertyInfo = Bool
type AttrLabel MenuReserveToggleSizePropertyInfo = "Menu::reserve-toggle-size"
attrGet _ = getMenuReserveToggleSize
attrSet _ = setMenuReserveToggleSize
attrConstruct _ = constructMenuReserveToggleSize
getMenuTearoffState :: (MonadIO m, MenuK o) => o -> m Bool
getMenuTearoffState obj = liftIO $ getObjectPropertyBool obj "tearoff-state"
setMenuTearoffState :: (MonadIO m, MenuK o) => o -> Bool -> m ()
setMenuTearoffState obj val = liftIO $ setObjectPropertyBool obj "tearoff-state" val
constructMenuTearoffState :: Bool -> IO ([Char], GValue)
constructMenuTearoffState val = constructObjectPropertyBool "tearoff-state" val
data MenuTearoffStatePropertyInfo
instance AttrInfo MenuTearoffStatePropertyInfo where
type AttrAllowedOps MenuTearoffStatePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
type AttrSetTypeConstraint MenuTearoffStatePropertyInfo = (~) Bool
type AttrBaseTypeConstraint MenuTearoffStatePropertyInfo = MenuK
type AttrGetType MenuTearoffStatePropertyInfo = Bool
type AttrLabel MenuTearoffStatePropertyInfo = "Menu::tearoff-state"
attrGet _ = getMenuTearoffState
attrSet _ = setMenuTearoffState
attrConstruct _ = constructMenuTearoffState
getMenuTearoffTitle :: (MonadIO m, MenuK o) => o -> m T.Text
getMenuTearoffTitle obj = liftIO $ getObjectPropertyString obj "tearoff-title"
setMenuTearoffTitle :: (MonadIO m, MenuK o) => o -> T.Text -> m ()
setMenuTearoffTitle obj val = liftIO $ setObjectPropertyString obj "tearoff-title" val
constructMenuTearoffTitle :: T.Text -> IO ([Char], GValue)
constructMenuTearoffTitle val = constructObjectPropertyString "tearoff-title" val
data MenuTearoffTitlePropertyInfo
instance AttrInfo MenuTearoffTitlePropertyInfo where
type AttrAllowedOps MenuTearoffTitlePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
type AttrSetTypeConstraint MenuTearoffTitlePropertyInfo = (~) T.Text
type AttrBaseTypeConstraint MenuTearoffTitlePropertyInfo = MenuK
type AttrGetType MenuTearoffTitlePropertyInfo = T.Text
type AttrLabel MenuTearoffTitlePropertyInfo = "Menu::tearoff-title"
attrGet _ = getMenuTearoffTitle
attrSet _ = setMenuTearoffTitle
attrConstruct _ = constructMenuTearoffTitle
type instance AttributeList Menu = MenuAttributeList
type MenuAttributeList = ('[ '("accel-group", MenuAccelGroupPropertyInfo), '("accel-path", MenuAccelPathPropertyInfo), '("active", MenuActivePropertyInfo), '("app-paintable", WidgetAppPaintablePropertyInfo), '("attach-widget", MenuAttachWidgetPropertyInfo), '("border-width", ContainerBorderWidthPropertyInfo), '("can-default", WidgetCanDefaultPropertyInfo), '("can-focus", WidgetCanFocusPropertyInfo), '("child", ContainerChildPropertyInfo), '("composite-child", WidgetCompositeChildPropertyInfo), '("double-buffered", WidgetDoubleBufferedPropertyInfo), '("events", WidgetEventsPropertyInfo), '("expand", WidgetExpandPropertyInfo), '("halign", WidgetHalignPropertyInfo), '("has-default", WidgetHasDefaultPropertyInfo), '("has-focus", WidgetHasFocusPropertyInfo), '("has-tooltip", WidgetHasTooltipPropertyInfo), '("height-request", WidgetHeightRequestPropertyInfo), '("hexpand", WidgetHexpandPropertyInfo), '("hexpand-set", WidgetHexpandSetPropertyInfo), '("is-focus", WidgetIsFocusPropertyInfo), '("margin", WidgetMarginPropertyInfo), '("margin-bottom", WidgetMarginBottomPropertyInfo), '("margin-end", WidgetMarginEndPropertyInfo), '("margin-left", WidgetMarginLeftPropertyInfo), '("margin-right", WidgetMarginRightPropertyInfo), '("margin-start", WidgetMarginStartPropertyInfo), '("margin-top", WidgetMarginTopPropertyInfo), '("monitor", MenuMonitorPropertyInfo), '("name", WidgetNamePropertyInfo), '("no-show-all", WidgetNoShowAllPropertyInfo), '("opacity", WidgetOpacityPropertyInfo), '("parent", WidgetParentPropertyInfo), '("receives-default", WidgetReceivesDefaultPropertyInfo), '("reserve-toggle-size", MenuReserveToggleSizePropertyInfo), '("resize-mode", ContainerResizeModePropertyInfo), '("scale-factor", WidgetScaleFactorPropertyInfo), '("sensitive", WidgetSensitivePropertyInfo), '("style", WidgetStylePropertyInfo), '("take-focus", MenuShellTakeFocusPropertyInfo), '("tearoff-state", MenuTearoffStatePropertyInfo), '("tearoff-title", MenuTearoffTitlePropertyInfo), '("tooltip-markup", WidgetTooltipMarkupPropertyInfo), '("tooltip-text", WidgetTooltipTextPropertyInfo), '("valign", WidgetValignPropertyInfo), '("vexpand", WidgetVexpandPropertyInfo), '("vexpand-set", WidgetVexpandSetPropertyInfo), '("visible", WidgetVisiblePropertyInfo), '("width-request", WidgetWidthRequestPropertyInfo), '("window", WidgetWindowPropertyInfo)] :: [(Symbol, *)])
data MenuMoveScrollSignalInfo
instance SignalInfo MenuMoveScrollSignalInfo where
type HaskellCallbackType MenuMoveScrollSignalInfo = MenuMoveScrollCallback
connectSignal _ = connectMenuMoveScroll
type instance SignalList Menu = MenuSignalList
type MenuSignalList = ('[ '("accel-closures-changed", WidgetAccelClosuresChangedSignalInfo), '("activate-current", MenuShellActivateCurrentSignalInfo), '("add", ContainerAddSignalInfo), '("button-press-event", WidgetButtonPressEventSignalInfo), '("button-release-event", WidgetButtonReleaseEventSignalInfo), '("can-activate-accel", WidgetCanActivateAccelSignalInfo), '("cancel", MenuShellCancelSignalInfo), '("check-resize", ContainerCheckResizeSignalInfo), '("child-notify", WidgetChildNotifySignalInfo), '("composited-changed", WidgetCompositedChangedSignalInfo), '("configure-event", WidgetConfigureEventSignalInfo), '("cycle-focus", MenuShellCycleFocusSignalInfo), '("damage-event", WidgetDamageEventSignalInfo), '("deactivate", MenuShellDeactivateSignalInfo), '("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), '("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), '("insert", MenuShellInsertSignalInfo), '("key-press-event", WidgetKeyPressEventSignalInfo), '("key-release-event", WidgetKeyReleaseEventSignalInfo), '("keynav-failed", WidgetKeynavFailedSignalInfo), '("leave-notify-event", WidgetLeaveNotifyEventSignalInfo), '("map", WidgetMapSignalInfo), '("map-event", WidgetMapEventSignalInfo), '("mnemonic-activate", WidgetMnemonicActivateSignalInfo), '("motion-notify-event", WidgetMotionNotifyEventSignalInfo), '("move-current", MenuShellMoveCurrentSignalInfo), '("move-focus", WidgetMoveFocusSignalInfo), '("move-scroll", MenuMoveScrollSignalInfo), '("move-selected", MenuShellMoveSelectedSignalInfo), '("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), '("screen-changed", WidgetScreenChangedSignalInfo), '("scroll-event", WidgetScrollEventSignalInfo), '("selection-clear-event", WidgetSelectionClearEventSignalInfo), '("selection-done", MenuShellSelectionDoneSignalInfo), '("selection-get", WidgetSelectionGetSignalInfo), '("selection-notify-event", WidgetSelectionNotifyEventSignalInfo), '("selection-received", WidgetSelectionReceivedSignalInfo), '("selection-request-event", WidgetSelectionRequestEventSignalInfo), '("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, *)])
foreign import ccall "gtk_menu_new" gtk_menu_new ::
IO (Ptr Menu)
menuNew ::
(MonadIO m) =>
m Menu
menuNew = liftIO $ do
result <- gtk_menu_new
checkUnexpectedReturnNULL "gtk_menu_new" result
result' <- (newObject Menu) result
return result'
foreign import ccall "gtk_menu_new_from_model" gtk_menu_new_from_model ::
Ptr Gio.MenuModel ->
IO (Ptr Menu)
menuNewFromModel ::
(MonadIO m, Gio.MenuModelK a) =>
a ->
m Menu
menuNewFromModel model = liftIO $ do
let model' = unsafeManagedPtrCastPtr model
result <- gtk_menu_new_from_model model'
checkUnexpectedReturnNULL "gtk_menu_new_from_model" result
result' <- (newObject Menu) result
touchManagedPtr model
return result'
foreign import ccall "gtk_menu_attach" gtk_menu_attach ::
Ptr Menu ->
Ptr Widget ->
Word32 ->
Word32 ->
Word32 ->
Word32 ->
IO ()
menuAttach ::
(MonadIO m, MenuK a, WidgetK b) =>
a ->
b ->
Word32 ->
Word32 ->
Word32 ->
Word32 ->
m ()
menuAttach _obj child left_attach right_attach top_attach bottom_attach = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
let child' = unsafeManagedPtrCastPtr child
gtk_menu_attach _obj' child' left_attach right_attach top_attach bottom_attach
touchManagedPtr _obj
touchManagedPtr child
return ()
foreign import ccall "gtk_menu_attach_to_widget" gtk_menu_attach_to_widget ::
Ptr Menu ->
Ptr Widget ->
FunPtr MenuDetachFuncC ->
IO ()
menuAttachToWidget ::
(MonadIO m, MenuK a, WidgetK b) =>
a ->
b ->
Maybe (MenuDetachFunc) ->
m ()
menuAttachToWidget _obj attach_widget detacher = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
let attach_widget' = unsafeManagedPtrCastPtr attach_widget
ptrdetacher <- callocMem :: IO (Ptr (FunPtr MenuDetachFuncC))
maybeDetacher <- case detacher of
Nothing -> return (castPtrToFunPtr nullPtr)
Just jDetacher -> do
jDetacher' <- mkMenuDetachFunc (menuDetachFuncWrapper (Just ptrdetacher) jDetacher)
poke ptrdetacher jDetacher'
return jDetacher'
gtk_menu_attach_to_widget _obj' attach_widget' maybeDetacher
touchManagedPtr _obj
touchManagedPtr attach_widget
return ()
foreign import ccall "gtk_menu_detach" gtk_menu_detach ::
Ptr Menu ->
IO ()
menuDetach ::
(MonadIO m, MenuK a) =>
a ->
m ()
menuDetach _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
gtk_menu_detach _obj'
touchManagedPtr _obj
return ()
foreign import ccall "gtk_menu_get_accel_group" gtk_menu_get_accel_group ::
Ptr Menu ->
IO (Ptr AccelGroup)
menuGetAccelGroup ::
(MonadIO m, MenuK a) =>
a ->
m AccelGroup
menuGetAccelGroup _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- gtk_menu_get_accel_group _obj'
checkUnexpectedReturnNULL "gtk_menu_get_accel_group" result
result' <- (newObject AccelGroup) result
touchManagedPtr _obj
return result'
foreign import ccall "gtk_menu_get_accel_path" gtk_menu_get_accel_path ::
Ptr Menu ->
IO CString
menuGetAccelPath ::
(MonadIO m, MenuK a) =>
a ->
m T.Text
menuGetAccelPath _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- gtk_menu_get_accel_path _obj'
checkUnexpectedReturnNULL "gtk_menu_get_accel_path" result
result' <- cstringToText result
touchManagedPtr _obj
return result'
foreign import ccall "gtk_menu_get_active" gtk_menu_get_active ::
Ptr Menu ->
IO (Ptr Widget)
menuGetActive ::
(MonadIO m, MenuK a) =>
a ->
m Widget
menuGetActive _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- gtk_menu_get_active _obj'
checkUnexpectedReturnNULL "gtk_menu_get_active" result
result' <- (newObject Widget) result
touchManagedPtr _obj
return result'
foreign import ccall "gtk_menu_get_attach_widget" gtk_menu_get_attach_widget ::
Ptr Menu ->
IO (Ptr Widget)
menuGetAttachWidget ::
(MonadIO m, MenuK a) =>
a ->
m Widget
menuGetAttachWidget _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- gtk_menu_get_attach_widget _obj'
checkUnexpectedReturnNULL "gtk_menu_get_attach_widget" result
result' <- (newObject Widget) result
touchManagedPtr _obj
return result'
foreign import ccall "gtk_menu_get_monitor" gtk_menu_get_monitor ::
Ptr Menu ->
IO Int32
menuGetMonitor ::
(MonadIO m, MenuK a) =>
a ->
m Int32
menuGetMonitor _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- gtk_menu_get_monitor _obj'
touchManagedPtr _obj
return result
foreign import ccall "gtk_menu_get_reserve_toggle_size" gtk_menu_get_reserve_toggle_size ::
Ptr Menu ->
IO CInt
menuGetReserveToggleSize ::
(MonadIO m, MenuK a) =>
a ->
m Bool
menuGetReserveToggleSize _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- gtk_menu_get_reserve_toggle_size _obj'
let result' = (/= 0) result
touchManagedPtr _obj
return result'
foreign import ccall "gtk_menu_get_tearoff_state" gtk_menu_get_tearoff_state ::
Ptr Menu ->
IO CInt
menuGetTearoffState ::
(MonadIO m, MenuK a) =>
a ->
m Bool
menuGetTearoffState _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- gtk_menu_get_tearoff_state _obj'
let result' = (/= 0) result
touchManagedPtr _obj
return result'
foreign import ccall "gtk_menu_get_title" gtk_menu_get_title ::
Ptr Menu ->
IO CString
menuGetTitle ::
(MonadIO m, MenuK a) =>
a ->
m T.Text
menuGetTitle _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- gtk_menu_get_title _obj'
checkUnexpectedReturnNULL "gtk_menu_get_title" result
result' <- cstringToText result
touchManagedPtr _obj
return result'
foreign import ccall "gtk_menu_popdown" gtk_menu_popdown ::
Ptr Menu ->
IO ()
menuPopdown ::
(MonadIO m, MenuK a) =>
a ->
m ()
menuPopdown _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
gtk_menu_popdown _obj'
touchManagedPtr _obj
return ()
foreign import ccall "gtk_menu_popup" gtk_menu_popup ::
Ptr Menu ->
Ptr Widget ->
Ptr Widget ->
FunPtr MenuPositionFuncC ->
Ptr () ->
Word32 ->
Word32 ->
IO ()
menuPopup ::
(MonadIO m, MenuK a, WidgetK b, WidgetK c) =>
a ->
Maybe (b) ->
Maybe (c) ->
Maybe (MenuPositionFunc) ->
Word32 ->
Word32 ->
m ()
menuPopup _obj parent_menu_shell parent_menu_item func button activate_time = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
maybeParent_menu_shell <- case parent_menu_shell of
Nothing -> return nullPtr
Just jParent_menu_shell -> do
let jParent_menu_shell' = unsafeManagedPtrCastPtr jParent_menu_shell
return jParent_menu_shell'
maybeParent_menu_item <- case parent_menu_item of
Nothing -> return nullPtr
Just jParent_menu_item -> do
let jParent_menu_item' = unsafeManagedPtrCastPtr jParent_menu_item
return jParent_menu_item'
ptrfunc <- callocMem :: IO (Ptr (FunPtr MenuPositionFuncC))
maybeFunc <- case func of
Nothing -> return (castPtrToFunPtr nullPtr)
Just jFunc -> do
jFunc' <- mkMenuPositionFunc (menuPositionFuncWrapper (Just ptrfunc) jFunc)
poke ptrfunc jFunc'
return jFunc'
let data_ = nullPtr
gtk_menu_popup _obj' maybeParent_menu_shell maybeParent_menu_item maybeFunc data_ button activate_time
touchManagedPtr _obj
whenJust parent_menu_shell touchManagedPtr
whenJust parent_menu_item touchManagedPtr
return ()
foreign import ccall "gtk_menu_popup_for_device" gtk_menu_popup_for_device ::
Ptr Menu ->
Ptr Gdk.Device ->
Ptr Widget ->
Ptr Widget ->
FunPtr MenuPositionFuncC ->
Ptr () ->
FunPtr GLib.DestroyNotifyC ->
Word32 ->
Word32 ->
IO ()
menuPopupForDevice ::
(MonadIO m, MenuK a, Gdk.DeviceK b, WidgetK c, WidgetK d) =>
a ->
Maybe (b) ->
Maybe (c) ->
Maybe (d) ->
Maybe (MenuPositionFunc) ->
Word32 ->
Word32 ->
m ()
menuPopupForDevice _obj device parent_menu_shell parent_menu_item func button activate_time = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
maybeDevice <- case device of
Nothing -> return nullPtr
Just jDevice -> do
let jDevice' = unsafeManagedPtrCastPtr jDevice
return jDevice'
maybeParent_menu_shell <- case parent_menu_shell of
Nothing -> return nullPtr
Just jParent_menu_shell -> do
let jParent_menu_shell' = unsafeManagedPtrCastPtr jParent_menu_shell
return jParent_menu_shell'
maybeParent_menu_item <- case parent_menu_item of
Nothing -> return nullPtr
Just jParent_menu_item -> do
let jParent_menu_item' = unsafeManagedPtrCastPtr jParent_menu_item
return jParent_menu_item'
maybeFunc <- case func of
Nothing -> return (castPtrToFunPtr nullPtr)
Just jFunc -> do
jFunc' <- mkMenuPositionFunc (menuPositionFuncWrapper Nothing jFunc)
return jFunc'
let data_ = castFunPtrToPtr maybeFunc
let destroy = safeFreeFunPtrPtr
gtk_menu_popup_for_device _obj' maybeDevice maybeParent_menu_shell maybeParent_menu_item maybeFunc data_ destroy button activate_time
touchManagedPtr _obj
whenJust device touchManagedPtr
whenJust parent_menu_shell touchManagedPtr
whenJust parent_menu_item touchManagedPtr
return ()
foreign import ccall "gtk_menu_reorder_child" gtk_menu_reorder_child ::
Ptr Menu ->
Ptr Widget ->
Int32 ->
IO ()
menuReorderChild ::
(MonadIO m, MenuK a, WidgetK b) =>
a ->
b ->
Int32 ->
m ()
menuReorderChild _obj child position = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
let child' = unsafeManagedPtrCastPtr child
gtk_menu_reorder_child _obj' child' position
touchManagedPtr _obj
touchManagedPtr child
return ()
foreign import ccall "gtk_menu_reposition" gtk_menu_reposition ::
Ptr Menu ->
IO ()
menuReposition ::
(MonadIO m, MenuK a) =>
a ->
m ()
menuReposition _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
gtk_menu_reposition _obj'
touchManagedPtr _obj
return ()
foreign import ccall "gtk_menu_set_accel_group" gtk_menu_set_accel_group ::
Ptr Menu ->
Ptr AccelGroup ->
IO ()
menuSetAccelGroup ::
(MonadIO m, MenuK a, AccelGroupK b) =>
a ->
Maybe (b) ->
m ()
menuSetAccelGroup _obj accel_group = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
maybeAccel_group <- case accel_group of
Nothing -> return nullPtr
Just jAccel_group -> do
let jAccel_group' = unsafeManagedPtrCastPtr jAccel_group
return jAccel_group'
gtk_menu_set_accel_group _obj' maybeAccel_group
touchManagedPtr _obj
whenJust accel_group touchManagedPtr
return ()
foreign import ccall "gtk_menu_set_accel_path" gtk_menu_set_accel_path ::
Ptr Menu ->
CString ->
IO ()
menuSetAccelPath ::
(MonadIO m, MenuK a) =>
a ->
Maybe (T.Text) ->
m ()
menuSetAccelPath _obj accel_path = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
maybeAccel_path <- case accel_path of
Nothing -> return nullPtr
Just jAccel_path -> do
jAccel_path' <- textToCString jAccel_path
return jAccel_path'
gtk_menu_set_accel_path _obj' maybeAccel_path
touchManagedPtr _obj
freeMem maybeAccel_path
return ()
foreign import ccall "gtk_menu_set_active" gtk_menu_set_active ::
Ptr Menu ->
Word32 ->
IO ()
menuSetActive ::
(MonadIO m, MenuK a) =>
a ->
Word32 ->
m ()
menuSetActive _obj index = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
gtk_menu_set_active _obj' index
touchManagedPtr _obj
return ()
foreign import ccall "gtk_menu_set_monitor" gtk_menu_set_monitor ::
Ptr Menu ->
Int32 ->
IO ()
menuSetMonitor ::
(MonadIO m, MenuK a) =>
a ->
Int32 ->
m ()
menuSetMonitor _obj monitor_num = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
gtk_menu_set_monitor _obj' monitor_num
touchManagedPtr _obj
return ()
foreign import ccall "gtk_menu_set_reserve_toggle_size" gtk_menu_set_reserve_toggle_size ::
Ptr Menu ->
CInt ->
IO ()
menuSetReserveToggleSize ::
(MonadIO m, MenuK a) =>
a ->
Bool ->
m ()
menuSetReserveToggleSize _obj reserve_toggle_size = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
let reserve_toggle_size' = (fromIntegral . fromEnum) reserve_toggle_size
gtk_menu_set_reserve_toggle_size _obj' reserve_toggle_size'
touchManagedPtr _obj
return ()
foreign import ccall "gtk_menu_set_screen" gtk_menu_set_screen ::
Ptr Menu ->
Ptr Gdk.Screen ->
IO ()
menuSetScreen ::
(MonadIO m, MenuK a, Gdk.ScreenK b) =>
a ->
Maybe (b) ->
m ()
menuSetScreen _obj screen = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
maybeScreen <- case screen of
Nothing -> return nullPtr
Just jScreen -> do
let jScreen' = unsafeManagedPtrCastPtr jScreen
return jScreen'
gtk_menu_set_screen _obj' maybeScreen
touchManagedPtr _obj
whenJust screen touchManagedPtr
return ()
foreign import ccall "gtk_menu_set_tearoff_state" gtk_menu_set_tearoff_state ::
Ptr Menu ->
CInt ->
IO ()
menuSetTearoffState ::
(MonadIO m, MenuK a) =>
a ->
Bool ->
m ()
menuSetTearoffState _obj torn_off = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
let torn_off' = (fromIntegral . fromEnum) torn_off
gtk_menu_set_tearoff_state _obj' torn_off'
touchManagedPtr _obj
return ()
foreign import ccall "gtk_menu_set_title" gtk_menu_set_title ::
Ptr Menu ->
CString ->
IO ()
menuSetTitle ::
(MonadIO m, MenuK a) =>
a ->
T.Text ->
m ()
menuSetTitle _obj title = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
title' <- textToCString title
gtk_menu_set_title _obj' title'
touchManagedPtr _obj
freeMem title'
return ()
foreign import ccall "gtk_menu_get_for_attach_widget" gtk_menu_get_for_attach_widget ::
Ptr Widget ->
IO (Ptr (GList (Ptr Widget)))
menuGetForAttachWidget ::
(MonadIO m, WidgetK a) =>
a ->
m [Widget]
menuGetForAttachWidget widget = liftIO $ do
let widget' = unsafeManagedPtrCastPtr widget
result <- gtk_menu_get_for_attach_widget widget'
checkUnexpectedReturnNULL "gtk_menu_get_for_attach_widget" result
result' <- unpackGList result
result'' <- mapM (newObject Widget) result'
touchManagedPtr widget
return result''