-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | DbusmenuGtk bindings
--   
--   Bindings for libdbusgtk3, autogenerated by haskell-gi.
@package gi-dbusmenugtk3
@version 0.4.16


-- | Build time configuration used during code generation.
module GI.DbusmenuGtk3.Config

-- | Overrides used when generating these bindings.
overrides :: Text

-- | Modules in this package
modules :: [Text]


module GI.DbusmenuGtk3.Constants

-- | <i>No description available in the introspection data.</i>
pattern GTK_MENUITEM_H__ :: Int32


module GI.DbusmenuGtk3.Functions

-- | The Dbusmenu GTK parser adds cached items on the various menu items
--   throughout the tree. Sometimes it can be useful to get that cached
--   item to use directly. This function will retrieve it for you.
gtkParseGetCachedItem :: (HasCallStack, MonadIO m, IsWidget a) => a -> m Menuitem

-- | Goes through the GTK structures and turns them into the appropraite
--   Dbusmenu structures along with setting up all the relationships
--   between the objects. It also stores the dbusmenu items as a cache on
--   the GTK items so that they'll be reused if necissary.
gtkParseMenuStructure :: (HasCallStack, MonadIO m, IsWidget a) => a -> m Menuitem

-- | This function looks on the menu item for a property by the name of
--   <i><tt>property</tt></i>. If one exists it tries to turn it into a
--   <a>Pixbuf</a>. It assumes that the property is a base64 encoded PNG
--   file like the one created by
--   <tt><i>dbusmenu_menuite_property_set_image</i></tt>.
menuitemPropertyGetImage :: (HasCallStack, MonadIO m, IsMenuitem a) => a -> Text -> m Pixbuf

-- | This function gets a GTK shortcut as a key and a mask for use to set
--   the accelerators.
menuitemPropertyGetShortcut :: (HasCallStack, MonadIO m, IsMenuitem a) => a -> m (Word32, [ModifierType])

-- | This function takes the pixbuf that is stored in <i><tt>data</tt></i>
--   and turns it into a base64 encoded PNG so that it can be placed onto a
--   standard <a>Menuitem</a> property.
menuitemPropertySetImage :: (HasCallStack, MonadIO m, IsMenuitem a, IsPixbuf b) => a -> Text -> b -> m Bool

-- | Takes the modifer described by <i><tt>key</tt></i> and
--   <i><tt>modifier</tt></i> and places that into the format sending
--   across Dbus for shortcuts.
menuitemPropertySetShortcut :: (HasCallStack, MonadIO m, IsMenuitem a) => a -> Word32 -> [ModifierType] -> m Bool

-- | Takes the shortcut that is installed on a menu item and calls
--   <tt><i>dbusmenu_menuitem_property_set_shortcut</i></tt> with it. It
--   also sets up listeners to watch it change.
menuitemPropertySetShortcutMenuitem :: (HasCallStack, MonadIO m, IsMenuitem a, IsMenuItem b) => a -> b -> m Bool

-- | This function takes a GTK shortcut string as defined in
--   <tt><i>gtk_accelerator_parse</i></tt> and turns that into the
--   information required to send it over DBusmenu.
menuitemPropertySetShortcutString :: (HasCallStack, MonadIO m, IsMenuitem a) => a -> Text -> m Bool


-- | A subclass of <a>Client</a> to add functionality with regarding
--   building GTK items out of the abstract tree.
module GI.DbusmenuGtk3.Objects.Client

-- | Memory-managed wrapper type.
newtype Client
Client :: ManagedPtr Client -> Client

-- | Type class for types which can be safely cast to <a>Client</a>, for
--   instance with <a>toClient</a>.
class (GObject o, IsDescendantOf Client o) => IsClient o

-- | Cast to <a>Client</a>, for types for which this is known to be safe.
--   For general casts, use <a>castTo</a>.
toClient :: (MonadIO m, IsClient o) => o -> m Client

-- | Gets the accel group for this client.
clientGetAccelGroup :: (HasCallStack, MonadIO m, IsClient a) => a -> m AccelGroup

-- | This grabs the <a>MenuItem</a> that is associated with the
--   <a>Menuitem</a>.
clientMenuitemGet :: (HasCallStack, MonadIO m, IsClient a, IsMenuitem b) => a -> b -> m MenuItem

-- | This grabs the submenu associated with the menuitem.
clientMenuitemGetSubmenu :: (HasCallStack, MonadIO m, IsClient a, IsMenuitem b) => a -> b -> m Menu

-- | Creates a new <a>Client</a> object and creates a <a>Client</a> that
--   connects across DBus to a <a>Server</a>.
clientNew :: (HasCallStack, MonadIO m) => Text -> Text -> m Client

-- | This function provides some of the basic connectivity for being in the
--   GTK world. Things like visibility and sensitivity of the item are
--   handled here so that the subclasses don't have to. If you're building
--   your on GTK menu item you can use this function to apply those basic
--   attributes so that you don't have to deal with them either.
--   
--   This also handles passing the "activate" signal back to the
--   <a>Menuitem</a> side of thing.
clientNewitemBase :: (HasCallStack, MonadIO m, IsClient a, IsMenuitem b, IsMenuItem c, IsMenuitem d) => a -> b -> c -> d -> m ()

-- | Sets the acceleration group for the menu items with accelerators on
--   this client.
clientSetAccelGroup :: (HasCallStack, MonadIO m, IsClient a, IsAccelGroup b) => a -> b -> m ()
instance GHC.Classes.Eq GI.DbusmenuGtk3.Objects.Client.Client
instance Data.GI.Base.BasicTypes.GObject GI.DbusmenuGtk3.Objects.Client.Client
instance Data.GI.Base.Overloading.HasParentTypes GI.DbusmenuGtk3.Objects.Client.Client
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.DbusmenuGtk3.Objects.Client.Client o) => GI.DbusmenuGtk3.Objects.Client.IsClient o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.DbusmenuGtk3.Objects.Client.Client)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.DbusmenuGtk3.Objects.Client.Client
instance Data.GI.Base.BasicTypes.TypedObject GI.DbusmenuGtk3.Objects.Client.Client


-- | A <a>Menu</a> that is built using an abstract tree built from a
--   <a>Client</a>.
module GI.DbusmenuGtk3.Objects.Menu

-- | Memory-managed wrapper type.
newtype Menu
Menu :: ManagedPtr Menu -> Menu

-- | Type class for types which can be safely cast to <a>Menu</a>, for
--   instance with <a>toMenu</a>.
class (GObject o, IsDescendantOf Menu o) => IsMenu o

-- | Cast to <a>Menu</a>, for types for which this is known to be safe. For
--   general casts, use <a>castTo</a>.
toMenu :: (MonadIO m, IsMenu o) => o -> m Menu

-- | An accessor for the client that this menu is using to communicate with
--   the server.
menuGetClient :: (HasCallStack, MonadIO m, IsMenu a) => a -> m Client

-- | Creates a new <a>Menu</a> object and creates a <a>Client</a> that
--   connects across DBus to a <a>Server</a>.
menuNew :: (HasCallStack, MonadIO m) => Text -> Text -> m Menu

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>dbus-name</tt>” property. This is rarely needed directly, but it
--   is used by <a>new</a>.
constructMenuDbusName :: (IsMenu o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “<tt>dbus-name</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> menu #dbusName
--   </pre>
getMenuDbusName :: (MonadIO m, IsMenu o) => o -> m (Maybe Text)

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>dbus-object</tt>” property. This is rarely needed directly, but
--   it is used by <a>new</a>.
constructMenuDbusObject :: (IsMenu o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “<tt>dbus-object</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> menu #dbusObject
--   </pre>
getMenuDbusObject :: (MonadIO m, IsMenu o) => o -> m (Maybe Text)
instance GHC.Classes.Eq GI.DbusmenuGtk3.Objects.Menu.Menu
instance Data.GI.Base.BasicTypes.GObject GI.DbusmenuGtk3.Objects.Menu.Menu
instance Data.GI.Base.Overloading.HasParentTypes GI.DbusmenuGtk3.Objects.Menu.Menu
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.DbusmenuGtk3.Objects.Menu.Menu)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.DbusmenuGtk3.Objects.Menu.Menu o) => GI.DbusmenuGtk3.Objects.Menu.IsMenu o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.DbusmenuGtk3.Objects.Menu.Menu
instance Data.GI.Base.BasicTypes.TypedObject GI.DbusmenuGtk3.Objects.Menu.Menu


module GI.DbusmenuGtk3.Objects


module GI.DbusmenuGtk3
