gi-gtk-3.0.43: Gtk bindings
CopyrightWill Thompson and Iñaki García Etxebarria
LicenseLGPL-2.1
MaintainerIñaki García Etxebarria
Safe HaskellNone
LanguageHaskell2010

GI.Gtk.Objects.NativeDialog

Description

Native dialogs are platform dialogs that don't use Dialog or Window. They are used in order to integrate better with a platform, by looking the same as other native applications and supporting platform specific features.

The Dialog functions cannot be used on such objects, but we need a similar API in order to drive them. The NativeDialog object is an API that allows you to do this. It allows you to set various common properties on the dialog, as well as show and hide it and get a NativeDialog::response signal when the user finished with the dialog.

There is also a nativeDialogRun helper that makes it easy to run any native dialog in a modal way with a recursive mainloop, similar to dialogRun.

Synopsis

Exported types

newtype NativeDialog Source #

Memory-managed wrapper type.

Instances

Instances details
Eq NativeDialog Source # 
Instance details

Defined in GI.Gtk.Objects.NativeDialog

GObject NativeDialog Source # 
Instance details

Defined in GI.Gtk.Objects.NativeDialog

ManagedPtrNewtype NativeDialog Source # 
Instance details

Defined in GI.Gtk.Objects.NativeDialog

TypedObject NativeDialog Source # 
Instance details

Defined in GI.Gtk.Objects.NativeDialog

Methods

glibType :: IO GType #

HasParentTypes NativeDialog Source # 
Instance details

Defined in GI.Gtk.Objects.NativeDialog

IsGValue (Maybe NativeDialog) Source #

Convert NativeDialog to and from GValue. See toGValue and fromGValue.

Instance details

Defined in GI.Gtk.Objects.NativeDialog

type ParentTypes NativeDialog Source # 
Instance details

Defined in GI.Gtk.Objects.NativeDialog

type ParentTypes NativeDialog = '[Object]

class (GObject o, IsDescendantOf NativeDialog o) => IsNativeDialog o Source #

Type class for types which can be safely cast to NativeDialog, for instance with toNativeDialog.

Instances

Instances details
(GObject o, IsDescendantOf NativeDialog o) => IsNativeDialog o Source # 
Instance details

Defined in GI.Gtk.Objects.NativeDialog

toNativeDialog :: (MonadIO m, IsNativeDialog o) => o -> m NativeDialog Source #

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

Methods

destroy

nativeDialogDestroy Source #

Arguments

:: (HasCallStack, MonadIO m, IsNativeDialog a) 
=> a

self: a NativeDialog

-> m () 

Destroys a dialog.

When a dialog is destroyed, it will break any references it holds to other objects. If it is visible it will be hidden and any underlying window system resources will be destroyed.

Note that this does not release any reference to the object (as opposed to destroying a GtkWindow) because there is no reference from the windowing system to the NativeDialog.

Since: 3.20

getModal

nativeDialogGetModal Source #

Arguments

:: (HasCallStack, MonadIO m, IsNativeDialog a) 
=> a

self: a NativeDialog

-> m Bool

Returns: True if the dialog is set to be modal

Returns whether the dialog is modal. See nativeDialogSetModal.

Since: 3.20

getTitle

nativeDialogGetTitle Source #

Arguments

:: (HasCallStack, MonadIO m, IsNativeDialog a) 
=> a

self: a NativeDialog

-> m (Maybe Text)

Returns: the title of the dialog, or Nothing if none has been set explicitly. The returned string is owned by the widget and must not be modified or freed.

Gets the title of the NativeDialog.

Since: 3.20

getTransientFor

nativeDialogGetTransientFor Source #

Arguments

:: (HasCallStack, MonadIO m, IsNativeDialog a) 
=> a

self: a NativeDialog

-> m (Maybe Window)

Returns: the transient parent for this window, or Nothing if no transient parent has been set.

Fetches the transient parent for this window. See nativeDialogSetTransientFor.

Since: 3.20

getVisible

nativeDialogGetVisible Source #

Arguments

:: (HasCallStack, MonadIO m, IsNativeDialog a) 
=> a

self: a NativeDialog

-> m Bool

Returns: True if the dialog is visible

Determines whether the dialog is visible.

Since: 3.20

hide

nativeDialogHide Source #

Arguments

:: (HasCallStack, MonadIO m, IsNativeDialog a) 
=> a

self: a NativeDialog

-> m () 

Hides the dialog if it is visilbe, aborting any interaction. Once this is called the NativeDialog::response signal will not be emitted until after the next call to nativeDialogShow.

If the dialog is not visible this does nothing.

Since: 3.20

run

nativeDialogRun Source #

Arguments

:: (HasCallStack, MonadIO m, IsNativeDialog a) 
=> a

self: a NativeDialog

-> m Int32

Returns: response ID

Blocks in a recursive main loop until self emits the NativeDialog::response signal. It then returns the response ID from the response signal emission.

Before entering the recursive main loop, nativeDialogRun calls nativeDialogShow on the dialog for you.

After nativeDialogRun returns, then dialog will be hidden.

Typical usage of this function might be:

C code

 gint result = gtk_native_dialog_run (GTK_NATIVE_DIALOG (dialog));
 switch (result)
   {
     case GTK_RESPONSE_ACCEPT:
        do_application_specific_something ();
        break;
     default:
        do_nothing_since_dialog_was_cancelled ();
        break;
   }
 g_object_unref (dialog);

Note that even though the recursive main loop gives the effect of a modal dialog (it prevents the user from interacting with other windows in the same window group while the dialog is run), callbacks such as timeouts, IO channel watches, DND drops, etc, will be triggered during a nativeDialogRun call.

Since: 3.20

setModal

nativeDialogSetModal Source #

Arguments

:: (HasCallStack, MonadIO m, IsNativeDialog a) 
=> a

self: a NativeDialog

-> Bool

modal: whether the window is modal

-> m () 

Sets a dialog modal or non-modal. Modal dialogs prevent interaction with other windows in the same application. To keep modal dialogs on top of main application windows, use nativeDialogSetTransientFor to make the dialog transient for the parent; most [window managers][gtk-X11-arch] will then disallow lowering the dialog below the parent.

Since: 3.20

setTitle

nativeDialogSetTitle Source #

Arguments

:: (HasCallStack, MonadIO m, IsNativeDialog a) 
=> a

self: a NativeDialog

-> Text

title: title of the dialog

-> m () 

Sets the title of the NativeDialog.

Since: 3.20

setTransientFor

nativeDialogSetTransientFor Source #

Arguments

:: (HasCallStack, MonadIO m, IsNativeDialog a, IsWindow b) 
=> a

self: a NativeDialog

-> Maybe b

parent: parent window, or Nothing

-> m () 

Dialog windows should be set transient for the main application window they were spawned from. This allows [window managers][gtk-X11-arch] to e.g. keep the dialog on top of the main window, or center the dialog over the main window.

Passing Nothing for parent unsets the current transient window.

Since: 3.20

show

nativeDialogShow Source #

Arguments

:: (HasCallStack, MonadIO m, IsNativeDialog a) 
=> a

self: a NativeDialog

-> m () 

Shows the dialog on the display, allowing the user to interact with it. When the user accepts the state of the dialog the dialog will be automatically hidden and the NativeDialog::response signal will be emitted.

Multiple calls while the dialog is visible will be ignored.

Since: 3.20

Properties

modal

Whether the window should be modal with respect to its transient parent.

Since: 3.20

constructNativeDialogModal :: (IsNativeDialog o, MonadIO m) => Bool -> m (GValueConstruct o) Source #

Construct a GValueConstruct with valid value for the “modal” property. This is rarely needed directly, but it is used by new.

getNativeDialogModal :: (MonadIO m, IsNativeDialog o) => o -> m Bool Source #

Get the value of the “modal” property. When overloading is enabled, this is equivalent to

get nativeDialog #modal

setNativeDialogModal :: (MonadIO m, IsNativeDialog o) => o -> Bool -> m () Source #

Set the value of the “modal” property. When overloading is enabled, this is equivalent to

set nativeDialog [ #modal := value ]

title

The title of the dialog window

Since: 3.20

constructNativeDialogTitle :: (IsNativeDialog o, MonadIO m) => Text -> m (GValueConstruct o) Source #

Construct a GValueConstruct with valid value for the “title” property. This is rarely needed directly, but it is used by new.

getNativeDialogTitle :: (MonadIO m, IsNativeDialog o) => o -> m (Maybe Text) Source #

Get the value of the “title” property. When overloading is enabled, this is equivalent to

get nativeDialog #title

setNativeDialogTitle :: (MonadIO m, IsNativeDialog o) => o -> Text -> m () Source #

Set the value of the “title” property. When overloading is enabled, this is equivalent to

set nativeDialog [ #title := value ]

transientFor

The transient parent of the dialog, or Nothing for none.

Since: 3.20

clearNativeDialogTransientFor :: (MonadIO m, IsNativeDialog o) => o -> m () Source #

Set the value of the “transient-for” property to Nothing. When overloading is enabled, this is equivalent to

clear #transientFor

constructNativeDialogTransientFor :: (IsNativeDialog o, MonadIO m, IsWindow a) => a -> m (GValueConstruct o) Source #

Construct a GValueConstruct with valid value for the “transient-for” property. This is rarely needed directly, but it is used by new.

getNativeDialogTransientFor :: (MonadIO m, IsNativeDialog o) => o -> m (Maybe Window) Source #

Get the value of the “transient-for” property. When overloading is enabled, this is equivalent to

get nativeDialog #transientFor

setNativeDialogTransientFor :: (MonadIO m, IsNativeDialog o, IsWindow a) => o -> a -> m () Source #

Set the value of the “transient-for” property. When overloading is enabled, this is equivalent to

set nativeDialog [ #transientFor := value ]

visible

Whether the window is currenlty visible.

Since: 3.20

constructNativeDialogVisible :: (IsNativeDialog o, MonadIO m) => Bool -> m (GValueConstruct o) Source #

Construct a GValueConstruct with valid value for the “visible” property. This is rarely needed directly, but it is used by new.

getNativeDialogVisible :: (MonadIO m, IsNativeDialog o) => o -> m Bool Source #

Get the value of the “visible” property. When overloading is enabled, this is equivalent to

get nativeDialog #visible

setNativeDialogVisible :: (MonadIO m, IsNativeDialog o) => o -> Bool -> m () Source #

Set the value of the “visible” property. When overloading is enabled, this is equivalent to

set nativeDialog [ #visible := value ]

Signals

response

type NativeDialogResponseCallback Source #

Arguments

 = Int32

responseId: the response ID

-> IO () 

Emitted when the user responds to the dialog.

When this is called the dialog has been hidden.

If you call nativeDialogHide before the user responds to the dialog this signal will not be emitted.

Since: 3.20

afterNativeDialogResponse :: (IsNativeDialog a, MonadIO m) => a -> ((?self :: a) => NativeDialogResponseCallback) -> m SignalHandlerId Source #

Connect a signal handler for the response signal, to be run after the default handler. When overloading is enabled, this is equivalent to

after nativeDialog #response callback

By default the object invoking the signal is not passed to the callback. If you need to access it, you can use the implit ?self parameter. Note that this requires activating the ImplicitParams GHC extension.

onNativeDialogResponse :: (IsNativeDialog a, MonadIO m) => a -> ((?self :: a) => NativeDialogResponseCallback) -> m SignalHandlerId Source #

Connect a signal handler for the response signal, to be run before the default handler. When overloading is enabled, this is equivalent to

on nativeDialog #response callback