gi-gio-2.0.19: Gio bindings

Copyright | Will Thompson Iñaki García Etxebarria and Jonas Platte
License | LGPL-2.1
Maintainer | Iñaki García Etxebarria (garetxe@gmail.com)
Safe Haskell | None
Language | Haskell2010

GI.Gio.Objects.AppInfoMonitor

Contents

- Exported types
- Methods
  - get
- Signals
  - changed

Description

`AppInfoMonitor` is a very simple object used for monitoring the app info database for changes (ie: newly installed or removed applications).

Call `appInfoMonitorGet` to get a `AppInfoMonitor` and connect to the "changed" signal.

In the usual case, applications should try to make note of the change (doing things like invalidating caches) but not act on it. In particular, applications should avoid making calls to `AppInfo` APIs in response to the change signal, deferring these until the time that the data is actually required. The exception to this case is when application information is actually being displayed on the screen (eg: during a search or when the list of all applications is shown). The reason for this is that changes to the list of installed applications often come in groups (like during system updates) and rescanning the list on every change is pointless and expensive.

Since: 2.40

Synopsis

- newtype AppInfoMonitor = AppInfoMonitor (ManagedPtr AppInfoMonitor)
- class GObject o => IsAppInfoMonitor o
- toAppInfoMonitor :: (MonadIO m, IsAppInfoMonitor o) => o -> m AppInfoMonitor
- noAppInfoMonitor :: Maybe AppInfoMonitor
- appInfoMonitorGet :: (HasCallStack, MonadIO m) => m AppInfoMonitor
- type AppInfoMonitorChangedCallback = IO ()
- type C_AppInfoMonitorChangedCallback = Ptr () -> Ptr () -> IO ()
- afterAppInfoMonitorChanged :: (IsAppInfoMonitor a, MonadIO m) => a -> AppInfoMonitorChangedCallback -> m SignalHandlerId
- genClosure_AppInfoMonitorChanged :: AppInfoMonitorChangedCallback -> IO Closure
- mk_AppInfoMonitorChangedCallback :: C_AppInfoMonitorChangedCallback -> IO (FunPtr C_AppInfoMonitorChangedCallback)
- noAppInfoMonitorChangedCallback :: Maybe AppInfoMonitorChangedCallback
- onAppInfoMonitorChanged :: (IsAppInfoMonitor a, MonadIO m) => a -> AppInfoMonitorChangedCallback -> m SignalHandlerId
- wrap_AppInfoMonitorChangedCallback :: AppInfoMonitorChangedCallback -> C_AppInfoMonitorChangedCallback

# Exported types

newtype AppInfoMonitor Source #

Memory-managed wrapper type.

Constructors

AppInfoMonitor (ManagedPtr AppInfoMonitor) |

Instances

GObject AppInfoMonitor Source # |
Instance details Defined in GI.Gio.Objects.AppInfoMonitor Methods gobjectType :: AppInfoMonitor -> IO GType Source #
IsObject AppInfoMonitor Source # |
Instance details Defined in GI.Gio.Objects.AppInfoMonitor
IsAppInfoMonitor AppInfoMonitor Source # |
Instance details Defined in GI.Gio.Objects.AppInfoMonitor

class GObject o => IsAppInfoMonitor o Source #

Type class for types which can be safely cast to `AppInfoMonitor`, for instance with `toAppInfoMonitor`.

Instances

(GObject a, (UnknownAncestorError AppInfoMonitor a :: Constraint)) => IsAppInfoMonitor a Source # |
Instance details Defined in GI.Gio.Objects.AppInfoMonitor
IsAppInfoMonitor AppInfoMonitor Source # |
Instance details Defined in GI.Gio.Objects.AppInfoMonitor

toAppInfoMonitor :: (MonadIO m, IsAppInfoMonitor o) => o -> m AppInfoMonitor Source #

Cast to `AppInfoMonitor`, for types for which this is known to be safe. For general casts, use `castTo`.

noAppInfoMonitor :: Maybe AppInfoMonitor Source #

A convenience alias for `Nothing` :: `Maybe` `AppInfoMonitor`.

# Methods

## get

appInfoMonitorGet Source #

Arguments

:: (HasCallStack, MonadIO m) |
=> m AppInfoMonitor | Returns: a reference to a `AppInfoMonitor`

Gets the `AppInfoMonitor` for the current thread-default main context.

The `AppInfoMonitor` will emit a "changed" signal in the thread-default main context whenever the list of installed applications (as reported by `appInfoGetAll`) may have changed.

You must only call `objectUnref` on the return value from under the same main context as you created it.

Since: 2.40

# Signals

## changed

type AppInfoMonitorChangedCallback = IO () Source #

Signal emitted when the app info database for changes (ie: newly installed or removed applications).

type C_AppInfoMonitorChangedCallback = Ptr () -> Ptr () -> IO () Source #

Type for the callback on the (unwrapped) C side.

afterAppInfoMonitorChanged :: (IsAppInfoMonitor a, MonadIO m) => a -> AppInfoMonitorChangedCallback -> m SignalHandlerId Source #

Connect a signal handler for the “`changed`” signal, to be run after the default handler. When overloading is enabled, this is equivalent to

    after appInfoMonitor #changed callback

genClosure_AppInfoMonitorChanged :: AppInfoMonitorChangedCallback -> IO Closure Source #

Wrap the callback into a `Closure`.

mk_AppInfoMonitorChangedCallback :: C_AppInfoMonitorChangedCallback -> IO (FunPtr C_AppInfoMonitorChangedCallback) Source #

Generate a function pointer callable from C code, from a `C_AppInfoMonitorChangedCallback`.

noAppInfoMonitorChangedCallback :: Maybe AppInfoMonitorChangedCallback Source #

A convenience synonym for ``Nothing` :: `Maybe` `AppInfoMonitorChangedCallback``.

onAppInfoMonitorChanged :: (IsAppInfoMonitor a, MonadIO m) => a -> AppInfoMonitorChangedCallback -> m SignalHandlerId Source #

Connect a signal handler for the “`changed`” signal, to be run before the default handler. When overloading is enabled, this is equivalent to

    on appInfoMonitor #changed callback

wrap_AppInfoMonitorChangedCallback :: AppInfoMonitorChangedCallback -> C_AppInfoMonitorChangedCallback Source #

Wrap a `AppInfoMonitorChangedCallback` into a `C_AppInfoMonitorChangedCallback`.