Add missing documentation

Add missing documentation

{-# LANGUAGE CPP #-}
-- -*-haskell-*-
--  libappindicator widget AppIndicator
--
--  Author : Andrew Miller
--
--  Created: 1st October 2011
--
--  Copyright (C) 2011 Andrew Miller
--
--  This library is free software; you can redistribute it and/or
--  modify it under the terms of the GNU Lesser General Public
--  License as published by the Free Software Foundation; either
--  version 2.1 of the License, or (at your option) any later version.
--
--  This library is distributed in the hope that it will be useful,
--  but WITHOUT ANY WARRANTY; without even the implied warranty of
--  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
--  Lesser General Public License for more details.
--
-- |
-- Stability   : provisional
-- Portability : portable (depends on GHC)
--
-- Create and manipulate menus and icons in the app indications area (as used in
-- Unity). This code will fall back on using a status icon.
--
module Graphics.UI.AppIndicator.AppIndicator (

-- * Detail
--
-- | The applications indication area is used for menus that provide some
-- kind of status about the system; there are several predefined menus (for
-- example, relating to sound, mail), and additional ones can be added. On
-- platforms not supporting this functionality, the library will fallback
-- to using a status icon (see Graphics.UI.Gtk.Display.StatusIcon in the
-- gtk package).

-- * Class Hierarchy
--
-- |
-- @
-- |  'GObject'
-- |   +----AppIndicator
-- @

-- * Types
  AppIndicator,
  AppIndicatorClass,
  castToAppIndicator, gTypeAppIndicator,
  toAppIndicator,

-- * Constructors
  appIndicatorNew,
  appIndicatorNewWithPath,

-- * Methods
  appIndicatorBuildMenuFromDesktop,
  appIndicatorGetMenu,
  appIndicatorSetMenu,
  appIndicatorGetStatus,
  appIndicatorSetStatus,
  appIndicatorGetCategory,

-- * Attributes
  appIndicatorAttentionIconDesc,
  appIndicatorAttentionIconName,
  appIndicatorCategory,
  appIndicatorConnected,
  appIndicatorIconDesc,
  appIndicatorIconName,
  appIndicatorIconThemePath,
  appIndicatorId,
  appIndicatorLabel,
  appIndicatorLabelGuide,
  appIndicatorOrderingIndex,
  appIndicatorStatus,

-- * Signals
  appIndicatorNewIcon,
  appIndicatorNewAttentionIcon,
  appIndicatorNewStatus,
  appIndicatorNewLabel,
  appIndicatorConnectionChanged,
  appIndicatorNewIconThemePath,
  appIndicatorScrollEvent,
  ) where

import Control.Monad	(liftM)

import System.Glib.FFI
import System.Glib.UTFString
import System.Glib.Attributes
import System.Glib.Properties
import System.Glib.GObject		(wrapNewGObject,makeNewGObject)
{#import Graphics.UI.AppIndicator.Types#}
{#import Graphics.UI.AppIndicator.Enums#}
{#import Graphics.UI.AppIndicator.Signals#}
{#import Graphics.UI.Gtk#}
{#import Graphics.UI.GtkInternals#}

{# context lib="appindicator" prefix="app_indicator" #}

--------------------
-- Constructors

-- | Creates an empty AppIndicator object, setting the properties: "id" with id,
-- | "category" with category and "icon-name" with icon_name.
appIndicatorNew :: String -> String -> AppIndicatorCategory -> IO AppIndicator
appIndicatorNew id iconName  cat =
  wrapNewGObject mkAppIndicator $ withUTFString id $ \idPtr ->
    withUTFString iconName $ \iconNamePtr ->
      {# call app_indicator_new #}
        idPtr iconNamePtr ((fromIntegral . fromEnum) cat)

-- | Creates a new AppIndicator setting the properties: "id" with id, "category"
-- | with category, "icon-name" with icon_name and "icon-theme-path" with
-- | icon_theme_path.
appIndicatorNewWithPath :: String -> String -> AppIndicatorCategory -> String -> IO AppIndicator
appIndicatorNewWithPath id iconName category iconThemePath =
  wrapNewGObject mkAppIndicator $ withUTFString id $ \idPtr ->
    withUTFString iconName $ \iconNamePtr -> withUTFString iconThemePath $
      \iconThemePathPtr ->
        {# call app_indicator_new_with_path #}
          idPtr iconNamePtr ((fromIntegral . fromEnum)category) iconThemePathPtr

-- | This function allows for building the Application Indicator menu from a static
-- | desktop file.
appIndicatorBuildMenuFromDesktop :: AppIndicatorClass self => self -> String -> String -> IO ()
appIndicatorBuildMenuFromDesktop self desktopFile desktopProfile =
  withUTFString desktopFile $ \desktopFilePtr ->
    withUTFString desktopProfile $ \desktopProfilePtr ->
     {# call app_indicator_build_menu_from_desktop #}
       (toAppIndicator self) desktopFilePtr desktopProfilePtr

-- | This function retrieves the Application Indicator menu.
appIndicatorGetMenu :: AppIndicatorClass self => self -> IO Menu
appIndicatorGetMenu self =
  makeNewGObject mkMenu $ {# call app_indicator_get_menu #} (toAppIndicator self)

-- | This function sets the Application Indicator menu.
appIndicatorSetMenu :: (AppIndicatorClass self, MenuClass menu) => self -> menu -> IO ()
appIndicatorSetMenu self menu =
  {# call app_indicator_set_menu #}
    (toAppIndicator self) (toMenu menu)

-- | This function retrieves the current status of the Application Indicator.
appIndicatorGetStatus :: AppIndicatorClass self => self -> IO AppIndicatorStatus
appIndicatorGetStatus self =
  liftM (toEnum . fromIntegral) $ {# call app_indicator_get_status #} (toAppIndicator self)

-- | This function set the status of the Application Indicator.
appIndicatorSetStatus :: AppIndicatorClass self => self -> AppIndicatorStatus -> IO ()
appIndicatorSetStatus self stat =
  {# call app_indicator_set_status #}
    (toAppIndicator self) ((fromIntegral . fromEnum) stat)

-- | This function retrieves the category of the Application Indicator.
appIndicatorGetCategory :: AppIndicatorClass self => self -> IO AppIndicatorCategory
appIndicatorGetCategory self =
  liftM (toEnum . fromIntegral) $ {# call app_indicator_get_category #} (toAppIndicator self)

-- * Attributes

-- | If the indicator sets it's status to APP_INDICATOR_STATUS_ATTENTION then this textual description of the icon shown.
appIndicatorAttentionIconDesc :: AppIndicatorClass self => Attr self (Maybe String)
appIndicatorAttentionIconDesc = newAttrFromMaybeStringProperty "attention-icon-desc"

-- | If the indicator sets it's status to APP_INDICATOR_STATUS_ATTENTION then this icon is shown.
appIndicatorAttentionIconName :: AppIndicatorClass self => Attr self (Maybe String)
appIndicatorAttentionIconName = newAttrFromMaybeStringProperty "attention-icon-name"

-- | The type of indicator that this represents. Please don't use 'Other'. Defaults to 'ApplicationStatus'.
appIndicatorCategory :: AppIndicatorClass self => Attr self (Maybe String)
appIndicatorCategory = newAttrFromMaybeStringProperty "category"

-- | Pretty simple, TRUE if we have a reasonable expectation of being displayed through this object. You should hide your TrayIcon if so.
appIndicatorConnected :: AppIndicatorClass self => ReadAttr self Bool
appIndicatorConnected = readAttrFromBoolProperty "connected"

-- | The description of the regular icon that is shown for the indicator.
appIndicatorIconDesc :: AppIndicatorClass self => Attr self (Maybe String)
appIndicatorIconDesc = newAttrFromMaybeStringProperty "icon-desc"

-- | The name of the regular icon that is shown for the indicator.
appIndicatorIconName :: AppIndicatorClass self => Attr self (Maybe String)
appIndicatorIconName = newAttrFromMaybeStringProperty "icon-name"

-- | An additional place to look for icon names that may be installed by the application.
appIndicatorIconThemePath :: AppIndicatorClass self => Attr self (Maybe String)
appIndicatorIconThemePath = newAttrFromMaybeStringProperty "icon-theme-path"

-- | The ID for this indicator, which should be unique, but used consistently by this program and its indicator.
appIndicatorId :: AppIndicatorClass self => Attr self (Maybe String)
appIndicatorId = newAttrFromMaybeStringProperty "id"

-- | A label that can be shown next to the string in the application indicator. The label will not be shown unless there is an icon as well. The label is useful for numerical and other frequently updated information. In general, it shouldn't be shown unless a user requests it as it can take up a significant amount of space on the user's panel. This may not be shown in all visualizations.
appIndicatorLabel :: AppIndicatorClass self => Attr self (Maybe String)
appIndicatorLabel = newAttrFromMaybeStringProperty "label"

-- | An optional string to provide guidance to the panel on how big the "label" string could get. If this is set correctly then the panel should never 'jiggle' as the string adjusts through out the range of options. For instance, if you were providing a percentage like "54% thrust" in "label" you'd want to set this string to "100% thrust" to ensure space when Scotty can get you enough power.
appIndicatorLabelGuide :: AppIndicatorClass self => Attr self (Maybe String)
appIndicatorLabelGuide = newAttrFromMaybeStringProperty "label-guide"

-- | The ordering index is an odd parameter, and if you think you don't need it you're probably right. In general, the application indicator try to place the applications in a recreatable place taking into account which category they're in to try and group them. But, there are some cases where you'd want to ensure indicators are next to each other. To do that you can override the generated ordering index and replace it with a new one. Again, you probably don't want to be doing this, but in case you do, this is the way.
appIndicatorOrderingIndex :: AppIndicatorClass self => Attr self Int
appIndicatorOrderingIndex = newAttrFromUIntProperty "ordering-index"

-- | Whether the indicator is shown or requests attention. Defaults to 'Passive'.
appIndicatorStatus :: AppIndicatorClass self => Attr self (Maybe String)
appIndicatorStatus = newAttrFromMaybeStringProperty "status"

-- * Signals

-- | Emitted when "icon-name" is changed
appIndicatorNewIcon :: AppIndicatorClass self => Signal self (IO ())
appIndicatorNewIcon = Signal (connect_NONE__NONE "new-icon")

-- | Emitted when "attention-icon-name" is changed
appIndicatorNewAttentionIcon :: AppIndicatorClass self => Signal self (IO ())
appIndicatorNewAttentionIcon = Signal (connect_NONE__NONE "new-attention-icon")

-- | Emitted when "status" is changed
appIndicatorNewStatus :: AppIndicatorClass self => Signal self (String -> IO ())
appIndicatorNewStatus = Signal (connect_STRING__NONE "new-status")

-- | Emitted when either "label" or "label-guide" are changed.
appIndicatorNewLabel :: AppIndicatorClass self => Signal self (String -> String -> IO ())
appIndicatorNewLabel = Signal (connect_STRING_STRING__NONE "new-label")

-- | Emitted when we connect to a watcher, or when it drops away.
appIndicatorConnectionChanged :: AppIndicatorClass self => Signal self (Bool -> IO ())
appIndicatorConnectionChanged = Signal (connect_BOOL__NONE "connection-changed")

-- | Emitted when there is a new icon set for the object.
appIndicatorNewIconThemePath :: AppIndicatorClass self => Signal self (String -> IO ())
appIndicatorNewIconThemePath = Signal (connect_STRING__NONE "new-icon-theme-path")

-- | Emitted when the AppIndicator receives a scroll event.
appIndicatorScrollEvent :: AppIndicatorClass self => Signal self (Int -> Int -> IO ())
appIndicatorScrollEvent = Signal (connect_INT_INT__NONE "scroll-event")

{-# LANGUAGE CPP #-}
-- -*-haskell-*-
--  libappindicator widget AppIndicator
--
--  Author : Andrew Miller
--
--  Created: 1st October 2011
--
--  Copyright (C) 2011 Andrew Miller
--
--  This library is free software; you can redistribute it and/or
--  modify it under the terms of the GNU Lesser General Public
--  License as published by the Free Software Foundation; either
--  version 2.1 of the License, or (at your option) any later version.
--
--  This library is distributed in the hope that it will be useful,
--  but WITHOUT ANY WARRANTY; without even the implied warranty of
--  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
--  Lesser General Public License for more details.
--
-- |
-- Stability   : provisional
-- Portability : portable (depends on GHC)
--
-- Create and manipulate menus and icons in the app indications area (as used in
-- Unity). This code will fall back on using a status icon.
--
module Graphics.UI.AppIndicator.AppIndicator (

-- * Detail
--
-- | The applications indication area is used for menus that provide some
-- kind of status about the system; there are several predefined menus (for
-- example, relating to sound, mail), and additional ones can be added. On
-- platforms not supporting this functionality, the library will fallback
-- to using a status icon (see Graphics.UI.Gtk.Display.StatusIcon in the
-- gtk package).

-- * Class Hierarchy
--
-- |
-- @
-- |  'GObject'
-- |   +----AppIndicator
-- @

-- * Types
  AppIndicator,
  AppIndicatorClass,
  castToAppIndicator, gTypeAppIndicator,
  toAppIndicator,

-- * Constructors
  appIndicatorNew,
  appIndicatorNewWithPath,

-- * Methods
  appIndicatorBuildMenuFromDesktop,
  appIndicatorGetMenu,
  appIndicatorSetMenu,
  appIndicatorGetStatus,
  appIndicatorSetStatus,
  appIndicatorGetCategory,

-- * Attributes
  appIndicatorAttentionIconDesc,
  appIndicatorAttentionIconName,
  appIndicatorCategory,
  appIndicatorConnected,
  appIndicatorIconDesc,
  appIndicatorIconName,
  appIndicatorIconThemePath,
  appIndicatorId,
  appIndicatorLabel,
  appIndicatorLabelGuide,
  appIndicatorOrderingIndex,
  appIndicatorStatus,

-- * Signals
  appIndicatorNewIcon,
  appIndicatorNewAttentionIcon,
  appIndicatorNewStatus,
  appIndicatorNewLabel,
  appIndicatorConnectionChanged,
  appIndicatorNewIconThemePath,
  appIndicatorScrollEvent,
  ) where

import Control.Monad	(liftM)

import System.Glib.FFI
import System.Glib.UTFString
import System.Glib.Attributes
import System.Glib.Properties
import System.Glib.GObject		(wrapNewGObject,makeNewGObject)
{#import Graphics.UI.AppIndicator.Types#}
{#import Graphics.UI.AppIndicator.Enums#}
{#import Graphics.UI.AppIndicator.Signals#}
{#import Graphics.UI.Gtk#}
{#import Graphics.UI.GtkInternals#}

{# context lib="appindicator" prefix="app_indicator" #}

--------------------
-- Constructors

-- | Creates an empty AppIndicator object, setting the properties: "id" with id,
-- | "category" with category and "icon-name" with icon_name.
appIndicatorNew :: String -> String -> AppIndicatorCategory -> IO AppIndicator
appIndicatorNew id iconName  cat =
  wrapNewGObject mkAppIndicator $ withUTFString id $ \idPtr ->
    withUTFString iconName $ \iconNamePtr ->
      {# call app_indicator_new #}
        idPtr iconNamePtr ((fromIntegral . fromEnum) cat)

-- | Creates a new AppIndicator setting the properties: "id" with id, "category"
-- | with category, "icon-name" with icon_name and "icon-theme-path" with
-- | icon_theme_path.
appIndicatorNewWithPath :: String -> String -> AppIndicatorCategory -> String -> IO AppIndicator
appIndicatorNewWithPath id iconName category iconThemePath =
  wrapNewGObject mkAppIndicator $ withUTFString id $ \idPtr ->
    withUTFString iconName $ \iconNamePtr -> withUTFString iconThemePath $
      \iconThemePathPtr ->
        {# call app_indicator_new_with_path #}
          idPtr iconNamePtr ((fromIntegral . fromEnum)category) iconThemePathPtr

-- | This function allows for building the Application Indicator menu from a static
-- | desktop file.
appIndicatorBuildMenuFromDesktop :: AppIndicatorClass self => self -> String -> String -> IO ()
appIndicatorBuildMenuFromDesktop self desktopFile desktopProfile =
  withUTFString desktopFile $ \desktopFilePtr ->
    withUTFString desktopProfile $ \desktopProfilePtr ->
     {# call app_indicator_build_menu_from_desktop #}
       (toAppIndicator self) desktopFilePtr desktopProfilePtr

-- | This function retrieves the Application Indicator menu.
appIndicatorGetMenu :: AppIndicatorClass self => self -> IO Menu
appIndicatorGetMenu self =
  makeNewGObject mkMenu $ {# call app_indicator_get_menu #} (toAppIndicator self)

-- | This function sets the Application Indicator menu.
appIndicatorSetMenu :: (AppIndicatorClass self, MenuClass menu) => self -> menu -> IO ()
appIndicatorSetMenu self menu =
  {# call app_indicator_set_menu #}
    (toAppIndicator self) (toMenu menu)

appIndicatorGetStatus :: AppIndicatorClass self => self -> IO AppIndicatorStatus
appIndicatorGetStatus self =
  liftM (toEnum . fromIntegral) $ {# call app_indicator_get_status #} (toAppIndicator self)

appIndicatorSetStatus :: AppIndicatorClass self => self -> AppIndicatorStatus -> IO ()
appIndicatorSetStatus self stat =
  {# call app_indicator_set_status #}
    (toAppIndicator self) ((fromIntegral . fromEnum) stat)

appIndicatorGetCategory :: AppIndicatorClass self => self -> IO AppIndicatorCategory
appIndicatorGetCategory self =
  liftM (toEnum . fromIntegral) $ {# call app_indicator_get_category #} (toAppIndicator self)

-- * Attributes

-- | If the indicator sets it's status to APP_INDICATOR_STATUS_ATTENTION then this textual description of the icon shown.
appIndicatorAttentionIconDesc :: AppIndicatorClass self => Attr self (Maybe String)
appIndicatorAttentionIconDesc = newAttrFromMaybeStringProperty "attention-icon-desc"

-- | If the indicator sets it's status to APP_INDICATOR_STATUS_ATTENTION then this icon is shown.
appIndicatorAttentionIconName :: AppIndicatorClass self => Attr self (Maybe String)
appIndicatorAttentionIconName = newAttrFromMaybeStringProperty "attention-icon-name"

-- | The type of indicator that this represents. Please don't use 'Other'. Defaults to 'ApplicationStatus'.
appIndicatorCategory :: AppIndicatorClass self => Attr self (Maybe String)
appIndicatorCategory = newAttrFromMaybeStringProperty "category"

-- | Pretty simple, TRUE if we have a reasonable expectation of being displayed through this object. You should hide your TrayIcon if so.
appIndicatorConnected :: AppIndicatorClass self => ReadAttr self Bool
appIndicatorConnected = readAttrFromBoolProperty "connected"

-- | The description of the regular icon that is shown for the indicator.
appIndicatorIconDesc :: AppIndicatorClass self => Attr self (Maybe String)
appIndicatorIconDesc = newAttrFromMaybeStringProperty "icon-desc"

-- | The name of the regular icon that is shown for the indicator.
appIndicatorIconName :: AppIndicatorClass self => Attr self (Maybe String)
appIndicatorIconName = newAttrFromMaybeStringProperty "icon-name"

-- | An additional place to look for icon names that may be installed by the application.
appIndicatorIconThemePath :: AppIndicatorClass self => Attr self (Maybe String)
appIndicatorIconThemePath = newAttrFromMaybeStringProperty "icon-theme-path"

-- | The ID for this indicator, which should be unique, but used consistently by this program and its indicator.
appIndicatorId :: AppIndicatorClass self => Attr self (Maybe String)
appIndicatorId = newAttrFromMaybeStringProperty "id"

-- | A label that can be shown next to the string in the application indicator. The label will not be shown unless there is an icon as well. The label is useful for numerical and other frequently updated information. In general, it shouldn't be shown unless a user requests it as it can take up a significant amount of space on the user's panel. This may not be shown in all visualizations.
appIndicatorLabel :: AppIndicatorClass self => Attr self (Maybe String)
appIndicatorLabel = newAttrFromMaybeStringProperty "label"

-- | An optional string to provide guidance to the panel on how big the "label" string could get. If this is set correctly then the panel should never 'jiggle' as the string adjusts through out the range of options. For instance, if you were providing a percentage like "54% thrust" in "label" you'd want to set this string to "100% thrust" to ensure space when Scotty can get you enough power.
appIndicatorLabelGuide :: AppIndicatorClass self => Attr self (Maybe String)
appIndicatorLabelGuide = newAttrFromMaybeStringProperty "label-guide"

-- | The ordering index is an odd parameter, and if you think you don't need it you're probably right. In general, the application indicator try to place the applications in a recreatable place taking into account which category they're in to try and group them. But, there are some cases where you'd want to ensure indicators are next to each other. To do that you can override the generated ordering index and replace it with a new one. Again, you probably don't want to be doing this, but in case you do, this is the way.
appIndicatorOrderingIndex :: AppIndicatorClass self => Attr self Int
appIndicatorOrderingIndex = newAttrFromUIntProperty "ordering-index"

-- | Whether the indicator is shown or requests attention. Defaults to 'Passive'.
appIndicatorStatus :: AppIndicatorClass self => Attr self (Maybe String)
appIndicatorStatus = newAttrFromMaybeStringProperty "status"

-- * Signals

-- | Emitted when "icon-name" is changed
appIndicatorNewIcon :: AppIndicatorClass self => Signal self (IO ())
appIndicatorNewIcon = Signal (connect_NONE__NONE "new-icon")

-- | Emitted when "attention-icon-name" is changed
appIndicatorNewAttentionIcon :: AppIndicatorClass self => Signal self (IO ())
appIndicatorNewAttentionIcon = Signal (connect_NONE__NONE "new-attention-icon")

-- | Emitted when "status" is changed
appIndicatorNewStatus :: AppIndicatorClass self => Signal self (String -> IO ())
appIndicatorNewStatus = Signal (connect_STRING__NONE "new-status")

-- | Emitted when either "label" or "label-guide" are changed.
appIndicatorNewLabel :: AppIndicatorClass self => Signal self (String -> String -> IO ())
appIndicatorNewLabel = Signal (connect_STRING_STRING__NONE "new-label")

-- | Emitted when we connect to a watcher, or when it drops away.
appIndicatorConnectionChanged :: AppIndicatorClass self => Signal self (Bool -> IO ())
appIndicatorConnectionChanged = Signal (connect_BOOL__NONE "connection-changed")

-- | Emitted when there is a new icon set for the object.
appIndicatorNewIconThemePath :: AppIndicatorClass self => Signal self (String -> IO ())
appIndicatorNewIconThemePath = Signal (connect_STRING__NONE "new-icon-theme-path")

-- | Emitted when the AppIndicator receives a scroll event.
appIndicatorScrollEvent :: AppIndicatorClass self => Signal self (Int -> Int -> IO ())
appIndicatorScrollEvent = Signal (connect_INT_INT__NONE "scroll-event")


Tighten type constraints.

Tighten type constraints.

{-# LANGUAGE CPP #-}
module Graphics.UI.FLTK.LowLevel.Fl_Menu_Button
    (
     -- * Constructor
     menuButtonNew,
     menuButtonDestroy,
     -- * Fl_Widget specific
     menuButtonHandle,
     menuButtonParent,
     menuButtonSetParent,
     menuButtonType_,
     menuButtonSetType,
     menuButtonAsWindow,
     menuButtonX,
     menuButtonY,
     menuButtonW,
     menuButtonH,
     menuButtonSetAlign,
     menuButtonAlign,
     menuButtonBox,
     menuButtonSetBox,
     menuButtonColor,
     menuButtonSetColor,
     menuButtonSetColorWithBgSel,
     menuButtonSelectionColor,
     menuButtonSetSelectionColor,
     menuButtonLabel,
     menuButtonCopyLabel,
     menuButtonSetLabel,
     menuButtonLabeltype,
     menuButtonSetLabeltype,
     menuButtonLabelcolor,
     menuButtonSetLabelcolor,
     menuButtonLabelfont,
     menuButtonSetLabelfont,
     menuButtonLabelsize,
     menuButtonSetLabelsize,
     menuButtonImage,
     menuButtonSetImage,
     menuButtonDeimage,
     menuButtonSetDeimage,
     menuButtonTooltip,
     menuButtonCopyTooltip,
     menuButtonSetTooltip,
     menuButtonWhen,
     menuButtonSetWhen,
     menuButtonVisible,
     menuButtonVisibleR,
     menuButtonShow,
     menuButtonHide,
     menuButtonSetVisible,
     menuButtonClearVisible,
     menuButtonActive,
     menuButtonActiveR,
     menuButtonActivate,
     menuButtonDeactivate,
     menuButtonOutput,
     menuButtonSetOutput,
     menuButtonClearOutput,
     menuButtonTakesevents,
     menuButtonSetChanged,
     menuButtonClearChanged,
     menuButtonTakeFocus,
     menuButtonSetVisibleFocus,
     menuButtonClearVisibleFocus,
     menuButtonModifyVisibleFocus,
     menuButtonVisibleFocus,
     menuButtonContains,
     menuButtonInside,
     menuButtonRedraw,
     menuButtonRedrawLabel,
     menuButtonDamage,
     menuButtonClearDamageWithBitmask,
     menuButtonClearDamage,
     menuButtonDamageWithText,
     menuButtonDamageInsideWidget,
     menuButtonMeasureLabel,
     menuButtonWindow,
     menuButtonTopWindow,
     menuButtonTopWindowOffset,
     menuButtonAsGroup,
     menuButtonAsGlWindow,
     menuButtonResize,
     menuButtonSetCallback,
     menuButtonDrawLabel,
     menuButtonValue,
     menuButtonSetValue,
     menuButtonClear,
     menuButtonSetShortcut,
     menuButtonDownBox,
     menuButtonSetDownBox,
     menuButtonDownColor,
     menuButtonSetDownColor,
     menuButtonDrawBox,
     menuButtonDrawBoxWithBoxtype,
     menuButtonDrawBackdrop,
     menuButtonDrawFocus,
     menuButtonItemPathnameWithFinditem,
     menuButtonItemPathname,
     menuButtonPicked,
     menuButtonFind,
     menuButtonTestShortcut,
     menuButtonGlobal,
     menuButtonMenu,
     menuButtonsetMenu,
     menuButtonCopy,
     menuButtonInsert,
     menuButtonAdd,
     menuButtonSize,
     menuButtonSetSize,
     menuButtonClearSubmenu,
     menuButtonReplace,
     menuButtonRemove,
     menuButtonSetMode,
     menuButtonMode,
     menuButtonMvalue,
     menuButtonText,
     menuButtonTextWithIndex,
     menuButtonTextfont,
     menuButtonSetTextfont,
     menuButtonTextsize,
     menuButtonSetTextsize,
     menuButtonTextcolor,
     menuButtonSetTextcolor,
     menuButtonPopup
    )
where
#include "Fl_ExportMacros.h"
#include "Fl_Types.h"
#include "Fl_Menu_ButtonC.h"
#include "Fl_WidgetC.h"
import C2HS hiding (cFromEnum, cFromBool, cToBool,cToEnum)
import Foreign.C.Types
import Graphics.UI.FLTK.LowLevel.Fl_Menu_
import Graphics.UI.FLTK.LowLevel.Fl_Enumerations
import Graphics.UI.FLTK.LowLevel.Fl_Types
import Graphics.UI.FLTK.LowLevel.Utils

{# fun Fl_Menu_Button_New as menuButtonNew' { `Int',`Int',`Int',`Int' } -> `Ptr ()' id #}
{# fun Fl_Menu_Button_New_WithLabel as menuButtonNewWithLabel' { `Int',`Int',`Int',`Int',`String'} -> `Ptr ()' id #}
menuButtonNew :: Rectangle -> Maybe String -> IO (ValueInput ())
menuButtonNew rectangle l'=
    let (x_pos, y_pos, width, height) = fromRectangle rectangle
    in case l' of
        Nothing -> menuButtonNew' x_pos y_pos width height >>=
                             toObject
        Just l -> menuButtonNewWithLabel' x_pos y_pos width height l >>=
                               toObject

{# fun Fl_Menu_Button_Destroy as menuButtonDestroy' { id `Ptr ()' } -> `()' supressWarningAboutRes #}
menuButtonDestroy :: ValueInput a -> IO ()
menuButtonDestroy win = swapObject win $ \winPtr -> do
                                        menuButtonDestroy' winPtr
                                        return nullPtr

menuButtonAsGroup :: MenuButton a  ->  IO (Group ())
menuButtonAsGroup = menu_AsGroup
menuButtonAsGlWindow :: MenuButton a  ->  IO (GlWindow())
menuButtonAsGlWindow = menu_AsGlWindow
menuButtonResize :: MenuButton a  -> Rectangle -> IO (())
menuButtonResize = menu_Resize
menuButtonAsWindow :: MenuButton a  ->  IO (Window())
menuButtonAsWindow = menu_AsWindow
menuButtonHide :: MenuButton a  ->  IO (())
menuButtonHide = menu_Hide
menuButtonShow :: MenuButton a -> IO ()
menuButtonShow = menu_Show
menuButtonDrawBox :: MenuButton a -> IO ()
menuButtonDrawBox = menu_DrawBox
menuButtonDrawBoxWithBoxtype :: MenuButton a -> Boxtype -> Color -> Maybe Rectangle -> IO ()
menuButtonDrawBoxWithBoxtype = menu_DrawBoxWithBoxtype
menuButtonDrawBackdrop :: MenuButton a -> IO ()
menuButtonDrawBackdrop = menu_DrawBackdrop
menuButtonDrawFocus :: MenuButton a -> Maybe (Boxtype, Rectangle) -> IO ()
menuButtonDrawFocus = menu_DrawFocus
menuButtonSetCallback :: MenuButton a -> (MenuButton b -> IO ()) -> IO (())
menuButtonSetCallback = menu_SetCallback
menuButtonParent :: MenuButton a -> IO (Group ())
menuButtonParent = menu_Parent
menuButtonSetParent :: MenuButton a -> Group b -> IO ()
menuButtonSetParent = menu_SetParent
menuButtonType_ :: MenuButton a  ->  IO (Word8)
menuButtonType_ = menu_Type_
menuButtonSetType :: MenuButton a  -> Word8 ->  IO (())
menuButtonSetType = menu_SetType
menuButtonDrawLabel :: MenuButton a  -> Maybe (Rectangle,AlignType)->  IO (())
menuButtonDrawLabel = menu_DrawLabel
menuButtonX :: MenuButton a  ->  IO (Int)
menuButtonX = menu_X
menuButtonY :: MenuButton a  ->  IO (Int)
menuButtonY = menu_Y
menuButtonW :: MenuButton a  ->  IO (Int)
menuButtonW = menu_W
menuButtonH :: MenuButton a  ->  IO (Int)
menuButtonH = menu_H
menuButtonSetAlign :: MenuButton a  -> AlignType ->  IO (())
menuButtonSetAlign = menu_SetAlign
menuButtonAlign :: MenuButton a  ->  IO (AlignType)
menuButtonAlign = menu_Align
menuButtonBox :: MenuButton a  ->  IO (Boxtype)
menuButtonBox = menu_Box
menuButtonSetBox :: MenuButton a  -> Boxtype ->  IO (())
menuButtonSetBox = menu_SetBox
menuButtonColor :: MenuButton a  ->  IO (Color)
menuButtonColor = menu_Color
menuButtonSetColor :: MenuButton a  -> Color ->  IO (())
menuButtonSetColor = menu_SetColor
menuButtonSetColorWithBgSel :: MenuButton a  -> Color -> Color ->  IO (())
menuButtonSetColorWithBgSel = menu_SetColorWithBgSel
menuButtonSelectionColor :: MenuButton a  ->  IO (Color)
menuButtonSelectionColor = menu_SelectionColor
menuButtonSetSelectionColor :: MenuButton a  -> Color ->  IO (())
menuButtonSetSelectionColor = menu_SetSelectionColor
menuButtonLabel :: MenuButton a  ->  IO (String)
menuButtonLabel = menu_Label
menuButtonCopyLabel :: MenuButton a  -> String ->  IO (())
menuButtonCopyLabel = menu_CopyLabel
menuButtonSetLabel :: MenuButton a  -> String ->  IO (())
menuButtonSetLabel = menu_SetLabel
menuButtonLabeltype :: MenuButton a  ->  IO (Labeltype)
menuButtonLabeltype = menu_Labeltype
menuButtonSetLabeltype :: MenuButton a  -> Labeltype ->  IO (())
menuButtonSetLabeltype = menu_SetLabeltype
menuButtonLabelcolor :: MenuButton a  ->  IO (Color)
menuButtonLabelcolor = menu_Labelcolor
menuButtonSetLabelcolor :: MenuButton a  -> Color ->  IO (())
menuButtonSetLabelcolor = menu_SetLabelcolor
menuButtonLabelfont :: MenuButton a  ->  IO (Font)
menuButtonLabelfont = menu_Labelfont
menuButtonSetLabelfont :: MenuButton a  -> Font ->  IO (())
menuButtonSetLabelfont = menu_SetLabelfont
menuButtonLabelsize :: MenuButton a  ->  IO (FontSize)
menuButtonLabelsize = menu_Labelsize
menuButtonSetLabelsize :: MenuButton a  -> FontSize ->  IO (())
menuButtonSetLabelsize = menu_SetLabelsize
menuButtonImage :: MenuButton a  ->  IO (Image ())
menuButtonImage = menu_Image
menuButtonSetImage :: MenuButton a  -> Image b ->  IO (())
menuButtonSetImage = menu_SetImage
menuButtonDeimage :: MenuButton a  ->  IO (Image ())
menuButtonDeimage = menu_Deimage
menuButtonSetDeimage :: MenuButton a  -> Image b ->  IO (())
menuButtonSetDeimage = menu_SetDeimage
menuButtonTooltip :: MenuButton a  ->  IO (String)
menuButtonTooltip = menu_Tooltip
menuButtonCopyTooltip :: MenuButton a  -> String ->  IO (())
menuButtonCopyTooltip = menu_CopyTooltip
menuButtonSetTooltip :: MenuButton a  -> String ->  IO (())
menuButtonSetTooltip = menu_SetTooltip
menuButtonWhen :: MenuButton a  ->  IO (When)
menuButtonWhen = menu_When
menuButtonSetWhen :: MenuButton a  -> Word8 ->  IO (())
menuButtonSetWhen = menu_SetWhen
menuButtonVisible :: MenuButton a  ->  IO (Int)
menuButtonVisible = menu_Visible
menuButtonVisibleR :: MenuButton a  ->  IO (Int)
menuButtonVisibleR = menu_VisibleR
menuButtonSetVisible :: MenuButton a  ->  IO (())
menuButtonSetVisible = menu_SetVisible
menuButtonClearVisible :: MenuButton a  ->  IO (())
menuButtonClearVisible = menu_ClearVisible
menuButtonActive :: MenuButton a  ->  IO (Int)
menuButtonActive = menu_Active
menuButtonActiveR :: MenuButton a  ->  IO (Int)
menuButtonActiveR = menu_ActiveR
menuButtonActivate :: MenuButton a  ->  IO (())
menuButtonActivate = menu_Activate
menuButtonDeactivate :: MenuButton a  ->  IO (())
menuButtonDeactivate = menu_Deactivate
menuButtonOutput :: MenuButton a  ->  IO (Int)
menuButtonOutput = menu_Output
menuButtonSetOutput :: MenuButton a  ->  IO (())
menuButtonSetOutput = menu_SetOutput
menuButtonClearOutput :: MenuButton a  ->  IO (())
menuButtonClearOutput = menu_ClearOutput
menuButtonTakesevents :: MenuButton a  ->  IO (Int)
menuButtonTakesevents = menu_Takesevents
menuButtonSetChanged :: MenuButton a  ->  IO (())
menuButtonSetChanged = menu_SetChanged
menuButtonClearChanged :: MenuButton a  ->  IO (())
menuButtonClearChanged = menu_ClearChanged
menuButtonTakeFocus :: MenuButton a  ->  IO (Int)
menuButtonTakeFocus = menu_TakeFocus
menuButtonSetVisibleFocus :: MenuButton a  ->  IO (())
menuButtonSetVisibleFocus = menu_SetVisibleFocus
menuButtonClearVisibleFocus :: MenuButton a  ->  IO (())
menuButtonClearVisibleFocus = menu_ClearVisibleFocus
menuButtonModifyVisibleFocus :: MenuButton a  -> Int ->  IO (())
menuButtonModifyVisibleFocus = menu_ModifyVisibleFocus
menuButtonVisibleFocus :: MenuButton a  ->  IO (Int)
menuButtonVisibleFocus = menu_VisibleFocus
menuButtonContains :: MenuButton a  -> Widget b  ->  IO (Int)
menuButtonContains = menu_Contains
menuButtonInside :: MenuButton a  -> MenuButton a  ->  IO (Int)
menuButtonInside = menu_Inside
menuButtonRedraw :: MenuButton a  ->  IO (())
menuButtonRedraw = menu_Redraw
menuButtonRedrawLabel :: MenuButton a  ->  IO (())
menuButtonRedrawLabel = menu_RedrawLabel
menuButtonDamage :: MenuButton a  ->  IO (Word8)
menuButtonDamage = menu_Damage
menuButtonClearDamageWithBitmask :: MenuButton a  -> Word8 ->  IO (())
menuButtonClearDamageWithBitmask = menu_ClearDamageWithBitmask
menuButtonClearDamage :: MenuButton a  ->  IO (())
menuButtonClearDamage = menu_ClearDamage
menuButtonDamageWithText :: MenuButton a  -> Word8 ->  IO (())
menuButtonDamageWithText = menu_DamageWithText
menuButtonDamageInsideWidget :: MenuButton a  -> Word8 -> Rectangle ->  IO (())
menuButtonDamageInsideWidget = menu_DamageInsideWidget
menuButtonMeasureLabel :: MenuButton a  -> IO (Size)
menuButtonMeasureLabel = menu_MeasureLabel
menuButtonWindow :: MenuButton a  ->  IO (Window ())
menuButtonWindow = menu_Window
menuButtonTopWindow :: MenuButton a  ->  IO (Window ())
menuButtonTopWindow = menu_TopWindow
menuButtonTopWindowOffset :: MenuButton a -> IO (Position)
menuButtonTopWindowOffset = menu_TopWindowOffset
menuButtonItemPathnameWithFinditem :: MenuButton a  -> String -> Int -> MenuItem b  ->  IO (Int)
menuButtonItemPathnameWithFinditem = menu_ItemPathnameWithFinditem
menuButtonItemPathname :: MenuButton a  -> String -> Int ->  IO (Int)
menuButtonItemPathname = menu_ItemPathname
menuButtonPicked :: MenuButton a  -> MenuItem b ->  IO (MenuItem b)
menuButtonPicked = menu_Picked
menuButtonFind :: MenuButton a -> MenuItemLocator b -> IO (Int)
menuButtonFind = menu_Find
menuButtonTestShortcut :: MenuButton a  ->  IO (MenuItem b)
menuButtonTestShortcut = menu_TestShortcut
menuButtonGlobal :: MenuButton a  ->  IO ()
menuButtonGlobal = menu_Global
menuButtonMenu :: MenuButton a  ->  IO (MenuButton a)
menuButtonMenu = menu_Menu
menuButtonsetMenu :: MenuButton a -> [MenuItem b] -> IO ()
menuButtonsetMenu = menu_setMenu
menuButtonCopy :: MenuButton a  -> MenuItem b  ->  IO ()
menuButtonCopy = menu_Copy
menuButtonInsert :: MenuButton a -> Int -> String -> Shortcut -> (MenuButton a -> IO ()) -> [MenuProps] -> IO (Int)
menuButtonInsert = menu_Insert
menuButtonAdd :: MenuItem a -> String -> Shortcut -> (MenuButton b -> IO ()) -> [MenuProps] -> IO (Int)
menuButtonAdd = menu_Add
menuButtonSize :: MenuButton a  ->  IO (Int)
menuButtonSize = menu_Size
menuButtonSetSize :: MenuButton a  -> Int -> Int ->  IO ()
menuButtonSetSize = menu_SetSize
menuButtonClear :: MenuButton a  ->  IO ()
menuButtonClear = menu_Clear
menuButtonClearSubmenu :: MenuButton a  -> Int ->  IO (Int)
menuButtonClearSubmenu = menu_ClearSubmenu
menuButtonReplace :: MenuButton a  -> Int -> String ->  IO ()
menuButtonReplace = menu_Replace
menuButtonRemove :: MenuButton a  -> Int  ->  IO ()
menuButtonRemove = menu_Remove
menuButtonSetShortcut :: MenuButton a  -> Int -> ShortcutKeySequence ->  IO ()
menuButtonSetShortcut = menu_SetShortcut
menuButtonSetMode :: MenuButton a  -> Int -> Int ->  IO ()
menuButtonSetMode = menu_SetMode
menuButtonMode :: MenuButton a  -> Int ->  IO (Int)
menuButtonMode = menu_Mode
menuButtonMvalue :: MenuButton a  -> IO (MenuItem b)
menuButtonMvalue = menu_Mvalue
menuButtonValue :: MenuButton a  ->  IO (Int)
menuButtonValue = menu_Value
menuButtonSetValue :: MenuButton a -> MenuItemReference b -> IO (Int)
menuButtonSetValue = menu_SetValue
menuButtonText :: MenuButton a  ->  IO (String)
menuButtonText = menu_Text
menuButtonTextWithIndex :: MenuButton a  -> Int ->  IO (String)
menuButtonTextWithIndex = menu_TextWithIndex
menuButtonTextfont :: MenuButton a  ->  IO (Font)
menuButtonTextfont = menu_Textfont
menuButtonSetTextfont :: MenuButton a  -> Font ->  IO ()
menuButtonSetTextfont = menu_SetTextfont
menuButtonTextsize :: MenuButton a  ->  IO (FontSize)
menuButtonTextsize = menu_Textsize
menuButtonSetTextsize :: MenuButton a  -> FontSize ->  IO ()
menuButtonSetTextsize = menu_SetTextsize
menuButtonTextcolor :: MenuButton a  ->  IO (Color)
menuButtonTextcolor = menu_Textcolor
menuButtonSetTextcolor :: MenuButton a  -> Color ->  IO ()
menuButtonSetTextcolor = menu_SetTextcolor
menuButtonDownBox :: MenuButton a  ->  IO (Boxtype)
menuButtonDownBox = menu_DownBox
menuButtonSetDownBox :: MenuButton a  -> Boxtype ->  IO ()
menuButtonSetDownBox = menu_SetDownBox
menuButtonDownColor :: MenuButton a  ->  IO (Color)
menuButtonDownColor = menu_DownColor
menuButtonSetDownColor :: MenuButton a  -> Int ->  IO ()
menuButtonSetDownColor = menu_SetDownColor
{#fun Fl_Menu_Button_handle as menuButtonHandle' { id `Ptr ()', id `CInt' } -> `Int' #}
menuButtonHandle :: MenuButton a -> Event -> IO Int
menuButtonHandle menu_bar event = withObject menu_bar (\p -> menuButtonHandle' p (fromIntegral . fromEnum $ event))
{#fun Fl_Menu_Button_popup as menuButtonPopup' { id `Ptr ()' } -> `Ptr ()' id #}
menuButtonPopup :: MenuButton a -> IO (MenuItem ())
menuButtonPopup menu_bar = withObject menu_bar (\p -> menuButtonPopup' p >>= toObject)

{-# LANGUAGE CPP #-}
module Graphics.UI.FLTK.LowLevel.Fl_Menu_Button
    (
     -- * Constructor
     menuButtonNew,
     menuButtonDestroy,
     -- * Fl_Widget specific
     menuButtonHandle,
     menuButtonParent,
     menuButtonSetParent,
     menuButtonType_,
     menuButtonSetType,
     menuButtonAsWindow,
     menuButtonX,
     menuButtonY,
     menuButtonW,
     menuButtonH,
     menuButtonSetAlign,
     menuButtonAlign,
     menuButtonBox,
     menuButtonSetBox,
     menuButtonColor,
     menuButtonSetColor,
     menuButtonSetColorWithBgSel,
     menuButtonSelectionColor,
     menuButtonSetSelectionColor,
     menuButtonLabel,
     menuButtonCopyLabel,
     menuButtonSetLabel,
     menuButtonLabeltype,
     menuButtonSetLabeltype,
     menuButtonLabelcolor,
     menuButtonSetLabelcolor,
     menuButtonLabelfont,
     menuButtonSetLabelfont,
     menuButtonLabelsize,
     menuButtonSetLabelsize,
     menuButtonImage,
     menuButtonSetImage,
     menuButtonDeimage,
     menuButtonSetDeimage,
     menuButtonTooltip,
     menuButtonCopyTooltip,
     menuButtonSetTooltip,
     menuButtonWhen,
     menuButtonSetWhen,
     menuButtonVisible,
     menuButtonVisibleR,
     menuButtonShow,
     menuButtonHide,
     menuButtonSetVisible,
     menuButtonClearVisible,
     menuButtonActive,
     menuButtonActiveR,
     menuButtonActivate,
     menuButtonDeactivate,
     menuButtonOutput,
     menuButtonSetOutput,
     menuButtonClearOutput,
     menuButtonTakesevents,
     menuButtonSetChanged,
     menuButtonClearChanged,
     menuButtonTakeFocus,
     menuButtonSetVisibleFocus,
     menuButtonClearVisibleFocus,
     menuButtonModifyVisibleFocus,
     menuButtonVisibleFocus,
     menuButtonContains,
     menuButtonInside,
     menuButtonRedraw,
     menuButtonRedrawLabel,
     menuButtonDamage,
     menuButtonClearDamageWithBitmask,
     menuButtonClearDamage,
     menuButtonDamageWithText,
     menuButtonDamageInsideWidget,
     menuButtonMeasureLabel,
     menuButtonWindow,
     menuButtonTopWindow,
     menuButtonTopWindowOffset,
     menuButtonAsGroup,
     menuButtonAsGlWindow,
     menuButtonResize,
     menuButtonSetCallback,
     menuButtonDrawLabel,
     menuButtonValue,
     menuButtonSetValue,
     menuButtonClear,
     menuButtonSetShortcut,
     menuButtonDownBox,
     menuButtonSetDownBox,
     menuButtonDownColor,
     menuButtonSetDownColor,
     menuButtonDrawBox,
     menuButtonDrawBoxWithBoxtype,
     menuButtonDrawBackdrop,
     menuButtonDrawFocus,
     menuButtonItemPathnameWithFinditem,
     menuButtonItemPathname,
     menuButtonPicked,
     menuButtonFind,
     menuButtonTestShortcut,
     menuButtonGlobal,
     menuButtonMenu,
     menuButtonsetMenu,
     menuButtonCopy,
     menuButtonInsert,
     menuButtonAdd,
     menuButtonSize,
     menuButtonSetSize,
     menuButtonClearSubmenu,
     menuButtonReplace,
     menuButtonRemove,
     menuButtonSetMode,
     menuButtonMode,
     menuButtonMvalue,
     menuButtonText,
     menuButtonTextWithIndex,
     menuButtonTextfont,
     menuButtonSetTextfont,
     menuButtonTextsize,
     menuButtonSetTextsize,
     menuButtonTextcolor,
     menuButtonSetTextcolor,
     menuButtonPopup
    )
where
#include "Fl_ExportMacros.h"
#include "Fl_Types.h"
#include "Fl_Menu_ButtonC.h"
#include "Fl_WidgetC.h"
import C2HS hiding (cFromEnum, cFromBool, cToBool,cToEnum)
import Foreign.C.Types
import Graphics.UI.FLTK.LowLevel.Fl_Menu_
import Graphics.UI.FLTK.LowLevel.Fl_Enumerations
import Graphics.UI.FLTK.LowLevel.Fl_Types
import Graphics.UI.FLTK.LowLevel.Utils

{# fun Fl_Menu_Button_New as menuButtonNew' { `Int',`Int',`Int',`Int' } -> `Ptr ()' id #}
{# fun Fl_Menu_Button_New_WithLabel as menuButtonNewWithLabel' { `Int',`Int',`Int',`Int',`String'} -> `Ptr ()' id #}
menuButtonNew :: Rectangle -> Maybe String -> IO (ValueInput ())
menuButtonNew rectangle l'=
    let (x_pos, y_pos, width, height) = fromRectangle rectangle
    in case l' of
        Nothing -> menuButtonNew' x_pos y_pos width height >>=
                             toObject
        Just l -> menuButtonNewWithLabel' x_pos y_pos width height l >>=
                               toObject

{# fun Fl_Menu_Button_Destroy as menuButtonDestroy' { id `Ptr ()' } -> `()' supressWarningAboutRes #}
menuButtonDestroy :: ValueInput a -> IO ()
menuButtonDestroy win = swapObject win $ \winPtr -> do
                                        menuButtonDestroy' winPtr
                                        return nullPtr

menuButtonAsGroup :: SysMenuBar a  ->  IO (Group ())
menuButtonAsGroup = menu_AsGroup
menuButtonAsGlWindow :: SysMenuBar a  ->  IO (GlWindow())
menuButtonAsGlWindow = menu_AsGlWindow
menuButtonResize :: SysMenuBar a  -> Rectangle -> IO (())
menuButtonResize = menu_Resize
menuButtonAsWindow :: SysMenuBar a  ->  IO (Window())
menuButtonAsWindow = menu_AsWindow
menuButtonHide :: SysMenuBar a  ->  IO (())
menuButtonHide = menu_Hide
menuButtonShow :: SysMenuBar a -> IO ()
menuButtonShow = menu_Show
menuButtonDrawBox :: SysMenuBar a -> IO ()
menuButtonDrawBox = menu_DrawBox
menuButtonDrawBoxWithBoxtype :: SysMenuBar a -> Boxtype -> Color -> Maybe Rectangle -> IO ()
menuButtonDrawBoxWithBoxtype = menu_DrawBoxWithBoxtype
menuButtonDrawBackdrop :: SysMenuBar a -> IO ()
menuButtonDrawBackdrop = menu_DrawBackdrop
menuButtonDrawFocus :: SysMenuBar a -> Maybe (Boxtype, Rectangle) -> IO ()
menuButtonDrawFocus = menu_DrawFocus
menuButtonSetCallback :: SysMenuBar a -> (SysMenuBar b -> IO ()) -> IO (())
menuButtonSetCallback = menu_SetCallback
menuButtonParent :: SysMenuBar a -> IO (Group ())
menuButtonParent = menu_Parent
menuButtonSetParent :: SysMenuBar a -> Group b -> IO ()
menuButtonSetParent = menu_SetParent
menuButtonType_ :: SysMenuBar a  ->  IO (Word8)
menuButtonType_ = menu_Type_
menuButtonSetType :: SysMenuBar a  -> Word8 ->  IO (())
menuButtonSetType = menu_SetType
menuButtonDrawLabel :: SysMenuBar a  -> Maybe (Rectangle,AlignType)->  IO (())
menuButtonDrawLabel = menu_DrawLabel
menuButtonX :: SysMenuBar a  ->  IO (Int)
menuButtonX = menu_X
menuButtonY :: SysMenuBar a  ->  IO (Int)
menuButtonY = menu_Y
menuButtonW :: SysMenuBar a  ->  IO (Int)
menuButtonW = menu_W
menuButtonH :: SysMenuBar a  ->  IO (Int)
menuButtonH = menu_H
menuButtonSetAlign :: SysMenuBar a  -> AlignType ->  IO (())
menuButtonSetAlign = menu_SetAlign
menuButtonAlign :: SysMenuBar a  ->  IO (AlignType)
menuButtonAlign = menu_Align
menuButtonBox :: SysMenuBar a  ->  IO (Boxtype)
menuButtonBox = menu_Box
menuButtonSetBox :: SysMenuBar a  -> Boxtype ->  IO (())
menuButtonSetBox = menu_SetBox
menuButtonColor :: SysMenuBar a  ->  IO (Color)
menuButtonColor = menu_Color
menuButtonSetColor :: SysMenuBar a  -> Color ->  IO (())
menuButtonSetColor = menu_SetColor
menuButtonSetColorWithBgSel :: SysMenuBar a  -> Color -> Color ->  IO (())
menuButtonSetColorWithBgSel = menu_SetColorWithBgSel
menuButtonSelectionColor :: SysMenuBar a  ->  IO (Color)
menuButtonSelectionColor = menu_SelectionColor
menuButtonSetSelectionColor :: SysMenuBar a  -> Color ->  IO (())
menuButtonSetSelectionColor = menu_SetSelectionColor
menuButtonLabel :: SysMenuBar a  ->  IO (String)
menuButtonLabel = menu_Label
menuButtonCopyLabel :: SysMenuBar a  -> String ->  IO (())
menuButtonCopyLabel = menu_CopyLabel
menuButtonSetLabel :: SysMenuBar a  -> String ->  IO (())
menuButtonSetLabel = menu_SetLabel
menuButtonLabeltype :: SysMenuBar a  ->  IO (Labeltype)
menuButtonLabeltype = menu_Labeltype
menuButtonSetLabeltype :: SysMenuBar a  -> Labeltype ->  IO (())
menuButtonSetLabeltype = menu_SetLabeltype
menuButtonLabelcolor :: SysMenuBar a  ->  IO (Color)
menuButtonLabelcolor = menu_Labelcolor
menuButtonSetLabelcolor :: SysMenuBar a  -> Color ->  IO (())
menuButtonSetLabelcolor = menu_SetLabelcolor
menuButtonLabelfont :: SysMenuBar a  ->  IO (Font)
menuButtonLabelfont = menu_Labelfont
menuButtonSetLabelfont :: SysMenuBar a  -> Font ->  IO (())
menuButtonSetLabelfont = menu_SetLabelfont
menuButtonLabelsize :: SysMenuBar a  ->  IO (FontSize)
menuButtonLabelsize = menu_Labelsize
menuButtonSetLabelsize :: SysMenuBar a  -> FontSize ->  IO (())
menuButtonSetLabelsize = menu_SetLabelsize
menuButtonImage :: SysMenuBar a  ->  IO (Image ())
menuButtonImage = menu_Image
menuButtonSetImage :: SysMenuBar a  -> Image b ->  IO (())
menuButtonSetImage = menu_SetImage
menuButtonDeimage :: SysMenuBar a  ->  IO (Image ())
menuButtonDeimage = menu_Deimage
menuButtonSetDeimage :: SysMenuBar a  -> Image b ->  IO (())
menuButtonSetDeimage = menu_SetDeimage
menuButtonTooltip :: SysMenuBar a  ->  IO (String)
menuButtonTooltip = menu_Tooltip
menuButtonCopyTooltip :: SysMenuBar a  -> String ->  IO (())
menuButtonCopyTooltip = menu_CopyTooltip
menuButtonSetTooltip :: SysMenuBar a  -> String ->  IO (())
menuButtonSetTooltip = menu_SetTooltip
menuButtonWhen :: SysMenuBar a  ->  IO (When)
menuButtonWhen = menu_When
menuButtonSetWhen :: SysMenuBar a  -> Word8 ->  IO (())
menuButtonSetWhen = menu_SetWhen
menuButtonVisible :: SysMenuBar a  ->  IO (Int)
menuButtonVisible = menu_Visible
menuButtonVisibleR :: SysMenuBar a  ->  IO (Int)
menuButtonVisibleR = menu_VisibleR
menuButtonSetVisible :: SysMenuBar a  ->  IO (())
menuButtonSetVisible = menu_SetVisible
menuButtonClearVisible :: SysMenuBar a  ->  IO (())
menuButtonClearVisible = menu_ClearVisible
menuButtonActive :: SysMenuBar a  ->  IO (Int)
menuButtonActive = menu_Active
menuButtonActiveR :: SysMenuBar a  ->  IO (Int)
menuButtonActiveR = menu_ActiveR
menuButtonActivate :: SysMenuBar a  ->  IO (())
menuButtonActivate = menu_Activate
menuButtonDeactivate :: SysMenuBar a  ->  IO (())
menuButtonDeactivate = menu_Deactivate
menuButtonOutput :: SysMenuBar a  ->  IO (Int)
menuButtonOutput = menu_Output
menuButtonSetOutput :: SysMenuBar a  ->  IO (())
menuButtonSetOutput = menu_SetOutput
menuButtonClearOutput :: SysMenuBar a  ->  IO (())
menuButtonClearOutput = menu_ClearOutput
menuButtonTakesevents :: SysMenuBar a  ->  IO (Int)
menuButtonTakesevents = menu_Takesevents
menuButtonSetChanged :: SysMenuBar a  ->  IO (())
menuButtonSetChanged = menu_SetChanged
menuButtonClearChanged :: SysMenuBar a  ->  IO (())
menuButtonClearChanged = menu_ClearChanged
menuButtonTakeFocus :: SysMenuBar a  ->  IO (Int)
menuButtonTakeFocus = menu_TakeFocus
menuButtonSetVisibleFocus :: SysMenuBar a  ->  IO (())
menuButtonSetVisibleFocus = menu_SetVisibleFocus
menuButtonClearVisibleFocus :: SysMenuBar a  ->  IO (())
menuButtonClearVisibleFocus = menu_ClearVisibleFocus
menuButtonModifyVisibleFocus :: SysMenuBar a  -> Int ->  IO (())
menuButtonModifyVisibleFocus = menu_ModifyVisibleFocus
menuButtonVisibleFocus :: SysMenuBar a  ->  IO (Int)
menuButtonVisibleFocus = menu_VisibleFocus
menuButtonContains :: SysMenuBar a  -> Widget b  ->  IO (Int)
menuButtonContains = menu_Contains
menuButtonInside :: SysMenuBar a  -> SysMenuBar a  ->  IO (Int)
menuButtonInside = menu_Inside
menuButtonRedraw :: SysMenuBar a  ->  IO (())
menuButtonRedraw = menu_Redraw
menuButtonRedrawLabel :: SysMenuBar a  ->  IO (())
menuButtonRedrawLabel = menu_RedrawLabel
menuButtonDamage :: SysMenuBar a  ->  IO (Word8)
menuButtonDamage = menu_Damage
menuButtonClearDamageWithBitmask :: SysMenuBar a  -> Word8 ->  IO (())
menuButtonClearDamageWithBitmask = menu_ClearDamageWithBitmask
menuButtonClearDamage :: SysMenuBar a  ->  IO (())
menuButtonClearDamage = menu_ClearDamage
menuButtonDamageWithText :: SysMenuBar a  -> Word8 ->  IO (())
menuButtonDamageWithText = menu_DamageWithText
menuButtonDamageInsideWidget :: SysMenuBar a  -> Word8 -> Rectangle ->  IO (())
menuButtonDamageInsideWidget = menu_DamageInsideWidget
menuButtonMeasureLabel :: SysMenuBar a  -> IO (Size)
menuButtonMeasureLabel = menu_MeasureLabel
menuButtonWindow :: SysMenuBar a  ->  IO (Window ())
menuButtonWindow = menu_Window
menuButtonTopWindow :: SysMenuBar a  ->  IO (Window ())
menuButtonTopWindow = menu_TopWindow
menuButtonTopWindowOffset :: SysMenuBar a -> IO (Position)
menuButtonTopWindowOffset = menu_TopWindowOffset
menuButtonItemPathnameWithFinditem :: SysMenuBar a  -> String -> Int -> MenuItem b  ->  IO (Int)
menuButtonItemPathnameWithFinditem = menu_ItemPathnameWithFinditem
menuButtonItemPathname :: SysMenuBar a  -> String -> Int ->  IO (Int)
menuButtonItemPathname = menu_ItemPathname
menuButtonPicked :: SysMenuBar a  -> MenuItem b ->  IO (MenuItem b)
menuButtonPicked = menu_Picked
menuButtonFind :: SysMenuBar a -> MenuItemLocator b -> IO (Int)
menuButtonFind = menu_Find
menuButtonTestShortcut :: SysMenuBar a  ->  IO (MenuItem b)
menuButtonTestShortcut = menu_TestShortcut
menuButtonGlobal :: SysMenuBar a  ->  IO ()
menuButtonGlobal = menu_Global
menuButtonMenu :: SysMenuBar a  ->  IO (SysMenuBar a)
menuButtonMenu = menu_Menu
menuButtonsetMenu :: SysMenuBar a -> [MenuItem b] -> IO ()
menuButtonsetMenu = menu_setMenu
menuButtonCopy :: SysMenuBar a  -> MenuItem b  ->  IO ()
menuButtonCopy = menu_Copy
menuButtonInsert :: SysMenuBar a -> Int -> String -> Shortcut -> (SysMenuBar a -> IO ()) -> [MenuProps] -> IO (Int)
menuButtonInsert = menu_Insert
menuButtonAdd :: MenuItem a -> String -> Shortcut -> (SysMenuBar b -> IO ()) -> [MenuProps] -> IO (Int)
menuButtonAdd = menu_Add
menuButtonSize :: SysMenuBar a  ->  IO (Int)
menuButtonSize = menu_Size
menuButtonSetSize :: SysMenuBar a  -> Int -> Int ->  IO ()
menuButtonSetSize = menu_SetSize
menuButtonClear :: SysMenuBar a  ->  IO ()
menuButtonClear = menu_Clear
menuButtonClearSubmenu :: SysMenuBar a  -> Int ->  IO (Int)
menuButtonClearSubmenu = menu_ClearSubmenu
menuButtonReplace :: SysMenuBar a  -> Int -> String ->  IO ()
menuButtonReplace = menu_Replace
menuButtonRemove :: SysMenuBar a  -> Int  ->  IO ()
menuButtonRemove = menu_Remove
menuButtonSetShortcut :: SysMenuBar a  -> Int -> ShortcutKeySequence ->  IO ()
menuButtonSetShortcut = menu_SetShortcut
menuButtonSetMode :: SysMenuBar a  -> Int -> Int ->  IO ()
menuButtonSetMode = menu_SetMode
menuButtonMode :: SysMenuBar a  -> Int ->  IO (Int)
menuButtonMode = menu_Mode
menuButtonMvalue :: SysMenuBar a  -> IO (MenuItem b)
menuButtonMvalue = menu_Mvalue
menuButtonValue :: SysMenuBar a  ->  IO (Int)
menuButtonValue = menu_Value
menuButtonSetValue :: SysMenuBar a -> MenuItemReference b -> IO (Int)
menuButtonSetValue = menu_SetValue
menuButtonText :: SysMenuBar a  ->  IO (String)
menuButtonText = menu_Text
menuButtonTextWithIndex :: SysMenuBar a  -> Int ->  IO (String)
menuButtonTextWithIndex = menu_TextWithIndex
menuButtonTextfont :: SysMenuBar a  ->  IO (Font)
menuButtonTextfont = menu_Textfont
menuButtonSetTextfont :: SysMenuBar a  -> Font ->  IO ()
menuButtonSetTextfont = menu_SetTextfont
menuButtonTextsize :: SysMenuBar a  ->  IO (FontSize)
menuButtonTextsize = menu_Textsize
menuButtonSetTextsize :: SysMenuBar a  -> FontSize ->  IO ()
menuButtonSetTextsize = menu_SetTextsize
menuButtonTextcolor :: SysMenuBar a  ->  IO (Color)
menuButtonTextcolor = menu_Textcolor
menuButtonSetTextcolor :: SysMenuBar a  -> Color ->  IO ()
menuButtonSetTextcolor = menu_SetTextcolor
menuButtonDownBox :: SysMenuBar a  ->  IO (Boxtype)
menuButtonDownBox = menu_DownBox
menuButtonSetDownBox :: SysMenuBar a  -> Boxtype ->  IO ()
menuButtonSetDownBox = menu_SetDownBox
menuButtonDownColor :: SysMenuBar a  ->  IO (Color)
menuButtonDownColor = menu_DownColor
menuButtonSetDownColor :: SysMenuBar a  -> Int ->  IO ()
menuButtonSetDownColor = menu_SetDownColor
{#fun Fl_Menu_Button_handle as menuButtonHandle' { id `Ptr ()', id `CInt' } -> `Int' #}
menuButtonHandle :: SysMenuBar a -> Event -> IO Int
menuButtonHandle menu_bar event = withObject menu_bar (\p -> menuButtonHandle' p (fromIntegral . fromEnum $ event))
{#fun Fl_Menu_Button_popup as menuButtonPopup' { id `Ptr ()' } -> `Ptr ()' id #}
menuButtonPopup :: SysMenuBar a -> IO (MenuItem ())
menuButtonPopup menu_bar = withObject menu_bar (\p -> menuButtonPopup' p >>= toObject)