| Copyright | Will Thompson Iñaki García Etxebarria and Jonas Platte | 
|---|---|
| License | LGPL-2.1 | 
| Maintainer | Iñaki García Etxebarria | 
| Safe Haskell | Safe-Inferred | 
| Language | Haskell2010 | 
GI.Gtk.Objects.Application
Description
Application is a class that handles many important aspects
 of a GTK+ application in a convenient fashion, without enforcing
 a one-size-fits-all application model.
Currently, GtkApplication handles GTK initialization, application uniqueness, session management, provides some basic scriptability and desktop shell integration by exporting actions and menus and manages a list of toplevel windows whose life-cycle is automatically tied to the life-cycle of your application.
While GtkApplication works fine with plain GtkWindows, it is recommended
 to use it together with ApplicationWindow.
When GDK threads are enabled, GtkApplication will acquire the GDK
 lock when invoking actions that arrive from other processes.  The GDK
 lock is not touched for local action invocations.  In order to have
 actions invoked in a predictable context it is therefore recommended
 that the GDK lock be held while invoking actions locally with
 actionGroupActivateAction.  The same applies to actions
 associated with ApplicationWindow and to the “activate” and
 “open” Application methods.
## Automatic resources ## {automatic-resources}
Application will automatically load menus from the Builder
 resource located at "gtk/menus.ui", relative to the application's
 resource base path (see applicationSetResourceBasePath).
 The menu with the ID "menubar" is taken as the application's
 menubar.  Additional menus (most interesting submenus) can be named
 and accessed via applicationGetMenuById which allows for
 dynamic population of a part of the menu structure.
It is also possible to provide the menubar manually using
 applicationSetMenubar.
Application will also automatically setup an icon search path for
 the default icon theme by appending "icons" to the resource base
 path.  This allows your application to easily store its icons as
 resources.  See iconThemeAddResourcePath for more
 information.
If there is a resource located at "gtk/help-overlay.ui" which
 defines a ShortcutsWindow with ID "help_overlay" then GtkApplication
 associates an instance of this shortcuts window with each
 ApplicationWindow and sets up the keyboard accelerator Control-?
 to open it. To create a menu item that displays the
 shortcuts window, associate the item with the action win.show-help-overlay.
## A simple application ## {gtkapplication}
GtkApplication optionally registers with a session manager
 of the users session (if you set the Application:register-session
 property) and offers various functionality related to the session
 life-cycle.
An application can block various ways to end the session with
 the applicationInhibit function. Typical use cases for
 this kind of inhibiting are long-running, uninterruptible operations,
 such as burning a CD or performing a disk backup. The session
 manager may not honor the inhibitor, but it can be expected to
 inform the user about the negative consequences of ending the
 session while inhibitors are present.
## See Also ## {seealso}
 HowDoI: Using GtkApplication,
 Getting Started with GTK: Basics
Synopsis
- newtype Application = Application (ManagedPtr Application)
- class (GObject o, IsDescendantOf Application o) => IsApplication o
- toApplication :: (MonadIO m, IsApplication o) => o -> m Application
- applicationAddWindow :: (HasCallStack, MonadIO m, IsApplication a, IsWindow b) => a -> b -> m ()
- applicationGetAccelsForAction :: (HasCallStack, MonadIO m, IsApplication a) => a -> Text -> m [Text]
- applicationGetActionsForAccel :: (HasCallStack, MonadIO m, IsApplication a) => a -> Text -> m [Text]
- applicationGetActiveWindow :: (HasCallStack, MonadIO m, IsApplication a) => a -> m (Maybe Window)
- applicationGetMenuById :: (HasCallStack, MonadIO m, IsApplication a) => a -> Text -> m (Maybe Menu)
- applicationGetMenubar :: (HasCallStack, MonadIO m, IsApplication a) => a -> m (Maybe MenuModel)
- applicationGetWindowById :: (HasCallStack, MonadIO m, IsApplication a) => a -> Word32 -> m (Maybe Window)
- applicationGetWindows :: (HasCallStack, MonadIO m, IsApplication a) => a -> m [Window]
- applicationInhibit :: (HasCallStack, MonadIO m, IsApplication a, IsWindow b) => a -> Maybe b -> [ApplicationInhibitFlags] -> Maybe Text -> m Word32
- applicationListActionDescriptions :: (HasCallStack, MonadIO m, IsApplication a) => a -> m [Text]
- applicationNew :: (HasCallStack, MonadIO m) => Maybe Text -> [ApplicationFlags] -> m Application
- applicationRemoveWindow :: (HasCallStack, MonadIO m, IsApplication a, IsWindow b) => a -> b -> m ()
- applicationSetAccelsForAction :: (HasCallStack, MonadIO m, IsApplication a) => a -> Text -> [Text] -> m ()
- applicationSetMenubar :: (HasCallStack, MonadIO m, IsApplication a, IsMenuModel b) => a -> Maybe b -> m ()
- applicationUninhibit :: (HasCallStack, MonadIO m, IsApplication a) => a -> Word32 -> m ()
- getApplicationActiveWindow :: (MonadIO m, IsApplication o) => o -> m (Maybe Window)
- clearApplicationMenubar :: (MonadIO m, IsApplication o) => o -> m ()
- constructApplicationMenubar :: (IsApplication o, MonadIO m, IsMenuModel a) => a -> m (GValueConstruct o)
- getApplicationMenubar :: (MonadIO m, IsApplication o) => o -> m (Maybe MenuModel)
- setApplicationMenubar :: (MonadIO m, IsApplication o, IsMenuModel a) => o -> a -> m ()
- constructApplicationRegisterSession :: (IsApplication o, MonadIO m) => Bool -> m (GValueConstruct o)
- getApplicationRegisterSession :: (MonadIO m, IsApplication o) => o -> m Bool
- setApplicationRegisterSession :: (MonadIO m, IsApplication o) => o -> Bool -> m ()
- getApplicationScreensaverActive :: (MonadIO m, IsApplication o) => o -> m Bool
- type ApplicationQueryEndCallback = IO ()
- type C_ApplicationQueryEndCallback = Ptr () -> Ptr () -> IO ()
- afterApplicationQueryEnd :: (IsApplication a, MonadIO m) => a -> ApplicationQueryEndCallback -> m SignalHandlerId
- genClosure_ApplicationQueryEnd :: MonadIO m => ApplicationQueryEndCallback -> m (GClosure C_ApplicationQueryEndCallback)
- mk_ApplicationQueryEndCallback :: C_ApplicationQueryEndCallback -> IO (FunPtr C_ApplicationQueryEndCallback)
- noApplicationQueryEndCallback :: Maybe ApplicationQueryEndCallback
- onApplicationQueryEnd :: (IsApplication a, MonadIO m) => a -> ApplicationQueryEndCallback -> m SignalHandlerId
- wrap_ApplicationQueryEndCallback :: ApplicationQueryEndCallback -> C_ApplicationQueryEndCallback
- type ApplicationWindowAddedCallback = Window -> IO ()
- type C_ApplicationWindowAddedCallback = Ptr () -> Ptr Window -> Ptr () -> IO ()
- afterApplicationWindowAdded :: (IsApplication a, MonadIO m) => a -> ApplicationWindowAddedCallback -> m SignalHandlerId
- genClosure_ApplicationWindowAdded :: MonadIO m => ApplicationWindowAddedCallback -> m (GClosure C_ApplicationWindowAddedCallback)
- mk_ApplicationWindowAddedCallback :: C_ApplicationWindowAddedCallback -> IO (FunPtr C_ApplicationWindowAddedCallback)
- noApplicationWindowAddedCallback :: Maybe ApplicationWindowAddedCallback
- onApplicationWindowAdded :: (IsApplication a, MonadIO m) => a -> ApplicationWindowAddedCallback -> m SignalHandlerId
- wrap_ApplicationWindowAddedCallback :: ApplicationWindowAddedCallback -> C_ApplicationWindowAddedCallback
- type ApplicationWindowRemovedCallback = Window -> IO ()
- type C_ApplicationWindowRemovedCallback = Ptr () -> Ptr Window -> Ptr () -> IO ()
- afterApplicationWindowRemoved :: (IsApplication a, MonadIO m) => a -> ApplicationWindowRemovedCallback -> m SignalHandlerId
- genClosure_ApplicationWindowRemoved :: MonadIO m => ApplicationWindowRemovedCallback -> m (GClosure C_ApplicationWindowRemovedCallback)
- mk_ApplicationWindowRemovedCallback :: C_ApplicationWindowRemovedCallback -> IO (FunPtr C_ApplicationWindowRemovedCallback)
- noApplicationWindowRemovedCallback :: Maybe ApplicationWindowRemovedCallback
- onApplicationWindowRemoved :: (IsApplication a, MonadIO m) => a -> ApplicationWindowRemovedCallback -> m SignalHandlerId
- wrap_ApplicationWindowRemovedCallback :: ApplicationWindowRemovedCallback -> C_ApplicationWindowRemovedCallback
Exported types
newtype Application Source #
Memory-managed wrapper type.
Constructors
| Application (ManagedPtr Application) | 
Instances
| Eq Application Source # | |
| Defined in GI.Gtk.Objects.Application | |
| GObject Application Source # | |
| Defined in GI.Gtk.Objects.Application | |
| ManagedPtrNewtype Application Source # | |
| Defined in GI.Gtk.Objects.Application Methods toManagedPtr :: Application -> ManagedPtr Application | |
| TypedObject Application Source # | |
| Defined in GI.Gtk.Objects.Application | |
| HasParentTypes Application Source # | |
| Defined in GI.Gtk.Objects.Application | |
| IsGValue (Maybe Application) Source # | Convert  | 
| Defined in GI.Gtk.Objects.Application Methods gvalueGType_ :: IO GType gvalueSet_ :: Ptr GValue -> Maybe Application -> IO () gvalueGet_ :: Ptr GValue -> IO (Maybe Application) | |
| type ParentTypes Application Source # | |
| Defined in GI.Gtk.Objects.Application | |
class (GObject o, IsDescendantOf Application o) => IsApplication o Source #
Type class for types which can be safely cast to Application, for instance with toApplication.
Instances
| (GObject o, IsDescendantOf Application o) => IsApplication o Source # | |
| Defined in GI.Gtk.Objects.Application | |
toApplication :: (MonadIO m, IsApplication o) => o -> m Application Source #
Cast to Application, for types for which this is known to be safe. For general casts, use castTo.
Methods
Click to display all available methods, including inherited ones
Methods
actionAdded, actionEnabledChanged, actionRemoved, actionStateChanged, activate, activateAction, addAction, addActionEntries, addMainOption, addMainOptionEntries, addOptionGroup, addWindow, bindBusyProperty, bindProperty, bindPropertyFull, changeActionState, forceFloating, freezeNotify, getv, hasAction, hold, inhibit, isFloating, listActionDescriptions, listActions, lookupAction, markBusy, notify, notifyByPspec, open, queryAction, quit, ref, refSink, register, release, removeAction, removeWindow, run, runDispose, sendNotification, stealData, stealQdata, thawNotify, unbindBusyProperty, uninhibit, unmarkBusy, unref, watchClosure, withdrawNotification.
Getters
getAccelsForAction, getActionEnabled, getActionParameterType, getActionState, getActionStateHint, getActionStateType, getActionsForAccel, getActiveWindow, getApplicationId, getData, getDbusConnection, getDbusObjectPath, getFlags, getInactivityTimeout, getIsBusy, getIsRegistered, getIsRemote, getMenuById, getMenubar, getProperty, getQdata, getResourceBasePath, getWindowById, getWindows.
Setters
setAccelsForAction, setActionGroup, setApplicationId, setData, setDataFull, setDefault, setFlags, setInactivityTimeout, setMenubar, setOptionContextDescription, setOptionContextParameterString, setOptionContextSummary, setProperty, setResourceBasePath.
addWindow
Arguments
| :: (HasCallStack, MonadIO m, IsApplication a, IsWindow b) | |
| => a | 
 | 
| -> b | 
 | 
| -> m () | 
Adds a window to application.
This call can only happen after the application has started;
 typically, you should add new application windows in response
 to the emission of the activate signal.
This call is equivalent to setting the Window:application
 property of window to application.
Normally, the connection between the application and the window
 will remain until the window is destroyed, but you can explicitly
 remove it with applicationRemoveWindow.
GTK+ will keep the application running as long as it has
 any windows.
getAccelsForAction
applicationGetAccelsForAction Source #
Arguments
| :: (HasCallStack, MonadIO m, IsApplication a) | |
| => a | 
 | 
| -> Text | 
 | 
| -> m [Text] | Returns: accelerators for  | 
Gets the accelerators that are currently associated with the given action.
getActionsForAccel
applicationGetActionsForAccel Source #
Arguments
| :: (HasCallStack, MonadIO m, IsApplication a) | |
| => a | 
 | 
| -> Text | 
 | 
| -> m [Text] | Returns: a  | 
Returns the list of actions (possibly empty) that accel maps to.
 Each item in the list is a detailed action name in the usual form.
This might be useful to discover if an accel already exists in order to prevent installation of a conflicting accelerator (from an accelerator editor or a plugin system, for example). Note that having more than one action per accelerator may not be a bad thing and might make sense in cases where the actions never appear in the same context.
In case there are no actions for a given accelerator, an empty array
 is returned.  Nothing is never returned.
It is a programmer error to pass an invalid accelerator string.
 If you are unsure, check it with acceleratorParse first.
getActiveWindow
applicationGetActiveWindow Source #
Arguments
| :: (HasCallStack, MonadIO m, IsApplication a) | |
| => a | 
 | 
| -> m (Maybe Window) | Returns: the active window, or  | 
Gets the “active” window for the application.
The active window is the one that was most recently focused (within the application). This window may not have the focus at the moment if another application has it — this is just the most recently-focused window within this application.
getMenuById
applicationGetMenuById Source #
Arguments
| :: (HasCallStack, MonadIO m, IsApplication a) | |
| => a | 
 | 
| -> Text | 
 | 
| -> m (Maybe Menu) | Returns: Gets the menu with the given id from the automatically loaded resources | 
Gets a menu from automatically loaded resources. See [Automatic resources][automatic-resources] for more information.
getMenubar
applicationGetMenubar Source #
Arguments
| :: (HasCallStack, MonadIO m, IsApplication a) | |
| => a | 
 | 
| -> m (Maybe MenuModel) | Returns: the menubar for windows of  | 
Returns the menu model that has been set with
 applicationSetMenubar.
getWindowById
applicationGetWindowById Source #
Arguments
| :: (HasCallStack, MonadIO m, IsApplication a) | |
| => a | 
 | 
| -> Word32 | 
 | 
| -> m (Maybe Window) | Returns: the window with ID  | 
Returns the ApplicationWindow with the given ID.
The ID of a ApplicationWindow can be retrieved with
 applicationWindowGetId.
getWindows
applicationGetWindows Source #
Arguments
| :: (HasCallStack, MonadIO m, IsApplication a) | |
| => a | 
 | 
| -> m [Window] | 
Gets a list of the GtkWindows associated with application.
The list is sorted by most recently focused window, such that the first element is the currently focused window. (Useful for choosing a parent for a transient window.)
The list that is returned should not be modified in any way. It will only remain valid until the next focus change or window creation or deletion.
inhibit
Arguments
| :: (HasCallStack, MonadIO m, IsApplication a, IsWindow b) | |
| => a | 
 | 
| -> Maybe b | |
| -> [ApplicationInhibitFlags] | 
 | 
| -> Maybe Text | 
 | 
| -> m Word32 | Returns: A non-zero cookie that is used to uniquely identify this
     request. It should be used as an argument to  | 
Inform the session manager that certain types of actions should be inhibited. This is not guaranteed to work on all platforms and for all types of actions.
Applications should invoke this method when they begin an operation
 that should not be interrupted, such as creating a CD or DVD. The
 types of actions that may be blocked are specified by the flags
 parameter. When the application completes the operation it should
 call applicationUninhibit to remove the inhibitor. Note that
 an application can have multiple inhibitors, and all of them must
 be individually removed. Inhibitors are also cleared when the
 application exits.
Applications should not expect that they will always be able to block the action. In most cases, users will be given the option to force the action to take place.
Reasons should be short and to the point.
If window is given, the session manager may point the user to
 this window to find out more about why the action is inhibited.
listActionDescriptions
applicationListActionDescriptions Source #
Arguments
| :: (HasCallStack, MonadIO m, IsApplication a) | |
| => a | 
 | 
| -> m [Text] | Returns: a  | 
Lists the detailed action names which have associated accelerators.
 See applicationSetAccelsForAction.
new
Arguments
| :: (HasCallStack, MonadIO m) | |
| => Maybe Text | 
 | 
| -> [ApplicationFlags] | 
 | 
| -> m Application | Returns: a new  | 
Creates a new Application instance.
When using Application, it is not necessary to call init
 manually. It is called as soon as the application gets registered as
 the primary instance.
Concretely, init is called in the default handler for the
 startup signal. Therefore, Application subclasses should
 chain up in their startup handler before using any GTK+ API.
Note that commandline arguments are not passed to init.
 All GTK+ functionality that is available via commandline arguments
 can also be achieved by setting suitable environment variables
 such as G_DEBUG, so this should not be a big
 problem. If you absolutely must support GTK+ commandline arguments,
 you can explicitly call init before creating the application
 instance.
If non-Nothing, the application ID must be valid.  See
 applicationIdIsValid.
If no application ID is given then some features (most notably application uniqueness) will be disabled.
removeWindow
applicationRemoveWindow Source #
Arguments
| :: (HasCallStack, MonadIO m, IsApplication a, IsWindow b) | |
| => a | 
 | 
| -> b | 
 | 
| -> m () | 
setAccelsForAction
applicationSetAccelsForAction Source #
Arguments
| :: (HasCallStack, MonadIO m, IsApplication a) | |
| => a | 
 | 
| -> Text | 
 | 
| -> [Text] | 
 | 
| -> m () | 
Sets zero or more keyboard accelerators that will trigger the
 given action. The first item in accels will be the primary
 accelerator, which may be displayed in the UI.
To remove all accelerators for an action, use an empty, zero-terminated
 array for accels.
For the detailedActionName, see actionParseDetailedName and
 actionPrintDetailedName.
setMenubar
applicationSetMenubar Source #
Arguments
| :: (HasCallStack, MonadIO m, IsApplication a, IsMenuModel b) | |
| => a | 
 | 
| -> Maybe b | |
| -> m () | 
Sets or unsets the menubar for windows of application.
This is a menubar in the traditional sense.
This can only be done in the primary instance of the application, after it has been registered. startup is a good place to call this.
Depending on the desktop environment, this may appear at the top of each window, or at the top of the screen. In some environments, if both the application menu and the menubar are set, the application menu will be presented as if it were the first item of the menubar. Other environments treat the two as completely separate — for example, the application menu may be rendered by the desktop shell while the menubar (if set) remains in each individual window.
Use the base ActionMap interface to add actions, to respond to the
 user selecting these menu items.
uninhibit
Arguments
| :: (HasCallStack, MonadIO m, IsApplication a) | |
| => a | 
 | 
| -> Word32 | 
 | 
| -> m () | 
Removes an inhibitor that has been established with applicationInhibit.
 Inhibitors are also cleared when the application exits.
Properties
activeWindow
No description available in the introspection data.
getApplicationActiveWindow :: (MonadIO m, IsApplication o) => o -> m (Maybe Window) Source #
Get the value of the “active-window” property.
 When overloading is enabled, this is equivalent to
get application #activeWindow
menubar
No description available in the introspection data.
clearApplicationMenubar :: (MonadIO m, IsApplication o) => o -> m () Source #
Set the value of the “menubar” property to Nothing.
 When overloading is enabled, this is equivalent to
clear #menubar
constructApplicationMenubar :: (IsApplication o, MonadIO m, IsMenuModel a) => a -> m (GValueConstruct o) Source #
Construct a GValueConstruct with valid value for the “menubar” property. This is rarely needed directly, but it is used by new.
getApplicationMenubar :: (MonadIO m, IsApplication o) => o -> m (Maybe MenuModel) Source #
Get the value of the “menubar” property.
 When overloading is enabled, this is equivalent to
get application #menubar
setApplicationMenubar :: (MonadIO m, IsApplication o, IsMenuModel a) => o -> a -> m () Source #
Set the value of the “menubar” property.
 When overloading is enabled, this is equivalent to
setapplication [ #menubar:=value ]
registerSession
Set this property to True to register with the session manager.
 This will make GTK+ track the session state (such as the
 Application:screensaver-active property).
constructApplicationRegisterSession :: (IsApplication o, MonadIO m) => Bool -> m (GValueConstruct o) Source #
Construct a GValueConstruct with valid value for the “register-session” property. This is rarely needed directly, but it is used by new.
getApplicationRegisterSession :: (MonadIO m, IsApplication o) => o -> m Bool Source #
Get the value of the “register-session” property.
 When overloading is enabled, this is equivalent to
get application #registerSession
setApplicationRegisterSession :: (MonadIO m, IsApplication o) => o -> Bool -> m () Source #
Set the value of the “register-session” property.
 When overloading is enabled, this is equivalent to
setapplication [ #registerSession:=value ]
screensaverActive
This property is True if GTK+ believes that the screensaver is
 currently active. GTK+ only tracks session state (including this)
 when Application:register-session is set to True.
Tracking the screensaver state is supported on Linux.
getApplicationScreensaverActive :: (MonadIO m, IsApplication o) => o -> m Bool Source #
Get the value of the “screensaver-active” property.
 When overloading is enabled, this is equivalent to
get application #screensaverActive
Signals
queryEnd
type ApplicationQueryEndCallback = IO () Source #
Emitted when the session manager is about to end the session, only
 if Application:register-session is True. Applications can
 connect to this signal and call applicationInhibit with
 ApplicationInhibitFlagsLogout to delay the end of the session
 until state has been saved.
type C_ApplicationQueryEndCallback = Ptr () -> Ptr () -> IO () Source #
Type for the callback on the (unwrapped) C side.
afterApplicationQueryEnd :: (IsApplication a, MonadIO m) => a -> ApplicationQueryEndCallback -> m SignalHandlerId Source #
Connect a signal handler for the queryEnd signal, to be run after the default handler. When overloading is enabled, this is equivalent to
after application #queryEnd callback
genClosure_ApplicationQueryEnd :: MonadIO m => ApplicationQueryEndCallback -> m (GClosure C_ApplicationQueryEndCallback) Source #
Wrap the callback into a GClosure.
mk_ApplicationQueryEndCallback :: C_ApplicationQueryEndCallback -> IO (FunPtr C_ApplicationQueryEndCallback) Source #
Generate a function pointer callable from C code, from a C_ApplicationQueryEndCallback.
noApplicationQueryEndCallback :: Maybe ApplicationQueryEndCallback Source #
A convenience synonym for Nothing :: Maybe ApplicationQueryEndCallback
onApplicationQueryEnd :: (IsApplication a, MonadIO m) => a -> ApplicationQueryEndCallback -> m SignalHandlerId Source #
Connect a signal handler for the queryEnd signal, to be run before the default handler. When overloading is enabled, this is equivalent to
on application #queryEnd callback
wrap_ApplicationQueryEndCallback :: ApplicationQueryEndCallback -> C_ApplicationQueryEndCallback Source #
Wrap a ApplicationQueryEndCallback into a C_ApplicationQueryEndCallback.
windowAdded
type ApplicationWindowAddedCallback Source #
Emitted when a Window is added to application through
 applicationAddWindow.
type C_ApplicationWindowAddedCallback = Ptr () -> Ptr Window -> Ptr () -> IO () Source #
Type for the callback on the (unwrapped) C side.
afterApplicationWindowAdded :: (IsApplication a, MonadIO m) => a -> ApplicationWindowAddedCallback -> m SignalHandlerId Source #
Connect a signal handler for the windowAdded signal, to be run after the default handler. When overloading is enabled, this is equivalent to
after application #windowAdded callback
genClosure_ApplicationWindowAdded :: MonadIO m => ApplicationWindowAddedCallback -> m (GClosure C_ApplicationWindowAddedCallback) Source #
Wrap the callback into a GClosure.
mk_ApplicationWindowAddedCallback :: C_ApplicationWindowAddedCallback -> IO (FunPtr C_ApplicationWindowAddedCallback) Source #
Generate a function pointer callable from C code, from a C_ApplicationWindowAddedCallback.
noApplicationWindowAddedCallback :: Maybe ApplicationWindowAddedCallback Source #
A convenience synonym for Nothing :: Maybe ApplicationWindowAddedCallback
onApplicationWindowAdded :: (IsApplication a, MonadIO m) => a -> ApplicationWindowAddedCallback -> m SignalHandlerId Source #
Connect a signal handler for the windowAdded signal, to be run before the default handler. When overloading is enabled, this is equivalent to
on application #windowAdded callback
wrap_ApplicationWindowAddedCallback :: ApplicationWindowAddedCallback -> C_ApplicationWindowAddedCallback Source #
Wrap a ApplicationWindowAddedCallback into a C_ApplicationWindowAddedCallback.
windowRemoved
type ApplicationWindowRemovedCallback Source #
Emitted when a Window is removed from application,
 either as a side-effect of being destroyed or explicitly
 through applicationRemoveWindow.
type C_ApplicationWindowRemovedCallback = Ptr () -> Ptr Window -> Ptr () -> IO () Source #
Type for the callback on the (unwrapped) C side.
afterApplicationWindowRemoved :: (IsApplication a, MonadIO m) => a -> ApplicationWindowRemovedCallback -> m SignalHandlerId Source #
Connect a signal handler for the windowRemoved signal, to be run after the default handler. When overloading is enabled, this is equivalent to
after application #windowRemoved callback
genClosure_ApplicationWindowRemoved :: MonadIO m => ApplicationWindowRemovedCallback -> m (GClosure C_ApplicationWindowRemovedCallback) Source #
Wrap the callback into a GClosure.
mk_ApplicationWindowRemovedCallback :: C_ApplicationWindowRemovedCallback -> IO (FunPtr C_ApplicationWindowRemovedCallback) Source #
Generate a function pointer callable from C code, from a C_ApplicationWindowRemovedCallback.
noApplicationWindowRemovedCallback :: Maybe ApplicationWindowRemovedCallback Source #
A convenience synonym for Nothing :: Maybe ApplicationWindowRemovedCallback
onApplicationWindowRemoved :: (IsApplication a, MonadIO m) => a -> ApplicationWindowRemovedCallback -> m SignalHandlerId Source #
Connect a signal handler for the windowRemoved signal, to be run before the default handler. When overloading is enabled, this is equivalent to
on application #windowRemoved callback