Copyright | Will Thompson Iñaki García Etxebarria and Jonas Platte |
---|---|
License | LGPL-2.1 |
Maintainer | Iñaki García Etxebarria (inaki@blueleaf.cc) |
Safe Haskell | None |
Language | Haskell2010 |
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, IsDescendantOf AppInfoMonitor 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 :: MonadIO m => AppInfoMonitorChangedCallback -> m (GClosure C_AppInfoMonitorChangedCallback)
- 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.
Instances
GObject AppInfoMonitor Source # | |
Defined in GI.Gio.Objects.AppInfoMonitor gobjectType :: IO GType # | |
HasParentTypes AppInfoMonitor Source # | |
Defined in GI.Gio.Objects.AppInfoMonitor | |
type ParentTypes AppInfoMonitor Source # | |
Defined in GI.Gio.Objects.AppInfoMonitor |
class (GObject o, IsDescendantOf AppInfoMonitor o) => IsAppInfoMonitor o Source #
Type class for types which can be safely cast to AppInfoMonitor
, for instance with toAppInfoMonitor
.
Instances
(GObject o, IsDescendantOf AppInfoMonitor o) => IsAppInfoMonitor o Source # | |
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
:: (HasCallStack, MonadIO m) | |
=> m AppInfoMonitor | Returns: a reference to a |
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 :: MonadIO m => AppInfoMonitorChangedCallback -> m (GClosure C_AppInfoMonitorChangedCallback) Source #
Wrap the callback into a GClosure
.
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