gtkmm 3.24.7
|
Integrate with native dialogs. More...
#include <gtkmm/nativedialog.h>
Public Member Functions | |
NativeDialog (NativeDialog && src) noexcept | |
NativeDialog & | operator= (NativeDialog && src) noexcept |
~NativeDialog () noexcept override | |
GtkNativeDialog * | gobj () |
Provides access to the underlying C GObject. More... | |
const GtkNativeDialog * | gobj () const |
Provides access to the underlying C GObject. More... | |
GtkNativeDialog * | gobj_copy () |
Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs. More... | |
void | show () |
Shows the dialog on the display, allowing the user to interact with it. More... | |
void | hide () |
Hides the dialog if it is visilbe, aborting any interaction. More... | |
bool | get_visible () const |
Determines whether the dialog is visible. More... | |
void | set_modal (bool modal=true) |
Sets a dialog modal or non-modal. More... | |
bool | get_modal () const |
Returns whether the dialog is modal. More... | |
void | set_title (const Glib::ustring & title) |
Sets the title of the Gtk::NativeDialog. More... | |
Glib::ustring | get_title () const |
Gets the title of the Gtk::NativeDialog. More... | |
void | set_transient_for (Window & parent) |
Dialog windows should be set transient for the main application window they were spawned from. More... | |
void | unset_transient_for () |
Unsets the current transient window. More... | |
Window * | get_transient_for () |
Fetches the transient parent for this window. More... | |
const Window * | get_transient_for () const |
Fetches the transient parent for this window. More... | |
int | run () |
Blocks in a recursive main loop until self emits the Gtk::NativeDialog::signal_response() signal. More... | |
Glib::PropertyProxy< Glib::ustring > | property_title () |
The title of the dialog window. More... | |
Glib::PropertyProxy_ReadOnly< Glib::ustring > | property_title () const |
The title of the dialog window. More... | |
Glib::PropertyProxy< bool > | property_modal () |
Whether the window should be modal with respect to its transient parent. More... | |
Glib::PropertyProxy_ReadOnly< bool > | property_modal () const |
Whether the window should be modal with respect to its transient parent. More... | |
Glib::PropertyProxy< bool > | property_visible () |
Whether the window is currenlty visible. More... | |
Glib::PropertyProxy_ReadOnly< bool > | property_visible () const |
Whether the window is currenlty visible. More... | |
Glib::PropertyProxy< Window * > | property_transient_for () |
The transient parent of the dialog, or nullptr for none. More... | |
Glib::PropertyProxy_ReadOnly< Window * > | property_transient_for () const |
The transient parent of the dialog, or nullptr for none. More... | |
Glib::SignalProxy< void, int > | signal_response () |
Static Public Member Functions | |
static GType | get_type () |
Get the GType for this class, for use with the underlying GObject type system. More... | |
Protected Member Functions | |
NativeDialog () | |
There is no create() method that corresponds to this constructor, because only derived classes shall be created. More... | |
virtual void | on_response (int response_id) |
This is a default handler for the signal signal_response(). More... | |
Related Functions | |
(Note that these are not member functions.) | |
Glib::RefPtr< Gtk::NativeDialog > | wrap (GtkNativeDialog * object, bool take_copy=false) |
A Glib::wrap() method for this object. More... | |
Integrate with native dialogs.
Native dialogs are platform dialogs that don't use Gtk::Dialog or Gtk::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 Gtk::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 response signal when the user finished with the dialog.
There is also a run() helper that makes it easy to run any native dialog in a modal way with a recursive mainloop, similar to Dialog::run().
|
noexcept |
|
overridenoexcept |
|
protected |
There is no create() method that corresponds to this constructor, because only derived classes shall be created.
bool Gtk::NativeDialog::get_modal | ( | ) | const |
Glib::ustring Gtk::NativeDialog::get_title | ( | ) | const |
Gets the title of the Gtk::NativeDialog.
nullptr
if none has been set explicitly. The returned string is owned by the widget and must not be modified or freed. Window * Gtk::NativeDialog::get_transient_for | ( | ) |
Fetches the transient parent for this window.
See set_transient_for().
nullptr
if no transient parent has been set. const Window * Gtk::NativeDialog::get_transient_for | ( | ) | const |
Fetches the transient parent for this window.
See set_transient_for().
nullptr
if no transient parent has been set.
|
static |
Get the GType for this class, for use with the underlying GObject type system.
bool Gtk::NativeDialog::get_visible | ( | ) | const |
|
inline |
Provides access to the underlying C GObject.
|
inline |
Provides access to the underlying C GObject.
GtkNativeDialog * Gtk::NativeDialog::gobj_copy | ( | ) |
Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs.
void Gtk::NativeDialog::hide | ( | ) |
Hides the dialog if it is visilbe, aborting any interaction.
Once this is called the Gtk::NativeDialog::signal_response() signal will not be emitted until after the next call to show().
If the dialog is not visible this does nothing.
|
protectedvirtual |
This is a default handler for the signal signal_response().
|
noexcept |
Glib::PropertyProxy< bool > Gtk::NativeDialog::property_modal | ( | ) |
Whether the window should be modal with respect to its transient parent.
Default value: false
Glib::PropertyProxy_ReadOnly< bool > Gtk::NativeDialog::property_modal | ( | ) | const |
Whether the window should be modal with respect to its transient parent.
Default value: false
Glib::PropertyProxy< Glib::ustring > Gtk::NativeDialog::property_title | ( | ) |
The title of the dialog window.
Default value: ""
Glib::PropertyProxy_ReadOnly< Glib::ustring > Gtk::NativeDialog::property_title | ( | ) | const |
The title of the dialog window.
Default value: ""
Glib::PropertyProxy< Window * > Gtk::NativeDialog::property_transient_for | ( | ) |
The transient parent of the dialog, or nullptr
for none.
Glib::PropertyProxy_ReadOnly< Window * > Gtk::NativeDialog::property_transient_for | ( | ) | const |
The transient parent of the dialog, or nullptr
for none.
Glib::PropertyProxy< bool > Gtk::NativeDialog::property_visible | ( | ) |
Whether the window is currenlty visible.
Default value: false
Glib::PropertyProxy_ReadOnly< bool > Gtk::NativeDialog::property_visible | ( | ) | const |
Whether the window is currenlty visible.
Default value: false
int Gtk::NativeDialog::run | ( | ) |
Blocks in a recursive main loop until self emits the Gtk::NativeDialog::signal_response() signal.
It then returns the response ID from the signal_response() signal emission.
Before entering the recursive main loop, run() calls show() on the dialog for you.
After run() returns, then dialog will be hidden.
Typical usage of this function might be:
[C example ellipted]
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 gtk_nautilus_dialog_run() call.
void Gtk::NativeDialog::set_modal | ( | bool | modal = true | ) |
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 set_transient_for() to make the dialog transient for the parent; most [window managers][gtk-X11-arch] will then disallow lowering the dialog below the parent.
modal | Whether the window is modal. |
void Gtk::NativeDialog::set_title | ( | const Glib::ustring & | title | ) |
void Gtk::NativeDialog::set_transient_for | ( | Window & | parent | ) |
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 nullptr
for parent unsets the current transient window.
parent | Parent window, or nullptr . |
void Gtk::NativeDialog::show | ( | ) |
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 Gtk::NativeDialog::signal_response() signal will be emitted.
Multiple calls while the dialog is visible will be ignored.
Glib::SignalProxy< void, int > Gtk::NativeDialog::signal_response | ( | ) |
void on_my_response(int response_id)
Flags: Run Last
Emitted when the user responds to the dialog.
When this is called the dialog has been hidden.
If you call Gtk::NativeDialog::hide() before the user responds to the dialog this signal will not be emitted.
response_id | The response ID. |
void Gtk::NativeDialog::unset_transient_for | ( | ) |
|
related |
A Glib::wrap() method for this object.
object | The C instance. |
take_copy | False if the result should take ownership of the C instance. True if it should take a new copy or ref. |