gtkmm 3.24.7
Public Member Functions | Static Public Member Functions | Protected Member Functions | Related Functions | List of all members
Gtk::NativeDialog Class Reference

Integrate with native dialogs. More...

#include <gtkmm/nativedialog.h>

Inheritance diagram for Gtk::NativeDialog:
Inheritance graph
[legend]

Public Member Functions

 NativeDialog (NativeDialog && src) noexcept
 
NativeDialogoperator= (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...
 
Windowget_transient_for ()
 Fetches the transient parent for this window. More...
 
const Windowget_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::NativeDialogwrap (GtkNativeDialog * object, bool take_copy=false)
 A Glib::wrap() method for this object. More...
 

Detailed Description

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().

See also
Gtk::FileChooserNative, Gtk::Dialog
Since gtkmm 3.24:

Constructor & Destructor Documentation

◆ NativeDialog() [1/2]

Gtk::NativeDialog::NativeDialog ( NativeDialog &&  src)
noexcept

◆ ~NativeDialog()

Gtk::NativeDialog::~NativeDialog ( )
overridenoexcept

◆ NativeDialog() [2/2]

Gtk::NativeDialog::NativeDialog ( )
protected

There is no create() method that corresponds to this constructor, because only derived classes shall be created.

Member Function Documentation

◆ get_modal()

bool Gtk::NativeDialog::get_modal ( ) const

Returns whether the dialog is modal.

See set_modal().

Since gtkmm 3.24:
Returns
true if the dialog is set to be modal.

◆ get_title()

Glib::ustring Gtk::NativeDialog::get_title ( ) const

Gets the title of the Gtk::NativeDialog.

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

◆ get_transient_for() [1/2]

Window * Gtk::NativeDialog::get_transient_for ( )

Fetches the transient parent for this window.

See set_transient_for().

Since gtkmm 3.24:
Returns
The transient parent for this window, or nullptr if no transient parent has been set.

◆ get_transient_for() [2/2]

const Window * Gtk::NativeDialog::get_transient_for ( ) const

Fetches the transient parent for this window.

See set_transient_for().

Since gtkmm 3.24:
Returns
The transient parent for this window, or nullptr if no transient parent has been set.

◆ get_type()

static GType Gtk::NativeDialog::get_type ( )
static

Get the GType for this class, for use with the underlying GObject type system.

◆ get_visible()

bool Gtk::NativeDialog::get_visible ( ) const

Determines whether the dialog is visible.

Since gtkmm 3.24:
Returns
true if the dialog is visible.

◆ gobj() [1/2]

GtkNativeDialog * Gtk::NativeDialog::gobj ( )
inline

Provides access to the underlying C GObject.

◆ gobj() [2/2]

const GtkNativeDialog * Gtk::NativeDialog::gobj ( ) const
inline

Provides access to the underlying C GObject.

◆ gobj_copy()

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.

◆ hide()

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.

Since gtkmm 3.24:

◆ on_response()

virtual void Gtk::NativeDialog::on_response ( int  response_id)
protectedvirtual

This is a default handler for the signal signal_response().

◆ operator=()

NativeDialog & Gtk::NativeDialog::operator= ( NativeDialog &&  src)
noexcept

◆ property_modal() [1/2]

Glib::PropertyProxy< bool > Gtk::NativeDialog::property_modal ( )

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

Since gtkmm 3.24:

Default value: false

Returns
A PropertyProxy that allows you to get or set the value of the property, or receive notification when the value of the property changes.

◆ property_modal() [2/2]

Glib::PropertyProxy_ReadOnly< bool > Gtk::NativeDialog::property_modal ( ) const

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

Since gtkmm 3.24:

Default value: false

Returns
A PropertyProxy_ReadOnly that allows you to get the value of the property, or receive notification when the value of the property changes.

◆ property_title() [1/2]

Glib::PropertyProxy< Glib::ustring > Gtk::NativeDialog::property_title ( )

The title of the dialog window.

Since gtkmm 3.24:

Default value: ""

Returns
A PropertyProxy that allows you to get or set the value of the property, or receive notification when the value of the property changes.

◆ property_title() [2/2]

Glib::PropertyProxy_ReadOnly< Glib::ustring > Gtk::NativeDialog::property_title ( ) const

The title of the dialog window.

Since gtkmm 3.24:

Default value: ""

Returns
A PropertyProxy_ReadOnly that allows you to get the value of the property, or receive notification when the value of the property changes.

◆ property_transient_for() [1/2]

Glib::PropertyProxy< Window * > Gtk::NativeDialog::property_transient_for ( )

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

Since gtkmm 3.24:
Returns
A PropertyProxy that allows you to get or set the value of the property, or receive notification when the value of the property changes.

◆ property_transient_for() [2/2]

Glib::PropertyProxy_ReadOnly< Window * > Gtk::NativeDialog::property_transient_for ( ) const

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

Since gtkmm 3.24:
Returns
A PropertyProxy_ReadOnly that allows you to get the value of the property, or receive notification when the value of the property changes.

◆ property_visible() [1/2]

Glib::PropertyProxy< bool > Gtk::NativeDialog::property_visible ( )

Whether the window is currenlty visible.

Since gtkmm 3.24:

Default value: false

Returns
A PropertyProxy that allows you to get or set the value of the property, or receive notification when the value of the property changes.

◆ property_visible() [2/2]

Glib::PropertyProxy_ReadOnly< bool > Gtk::NativeDialog::property_visible ( ) const

Whether the window is currenlty visible.

Since gtkmm 3.24:

Default value: false

Returns
A PropertyProxy_ReadOnly that allows you to get the value of the property, or receive notification when the value of the property changes.

◆ run()

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.

Since gtkmm 3.24:
Returns
Response ID.

◆ set_modal()

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.

Since gtkmm 3.24:
Parameters
modalWhether the window is modal.

◆ set_title()

void Gtk::NativeDialog::set_title ( const Glib::ustring &  title)

Sets the title of the Gtk::NativeDialog.

Since gtkmm 3.24:
Parameters
titleTitle of the dialog.

◆ set_transient_for()

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.

Since gtkmm 3.24:
Parameters
parentParent window, or nullptr.

◆ show()

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.

Since gtkmm 3.24:

◆ signal_response()

Glib::SignalProxy< void, int > Gtk::NativeDialog::signal_response ( )
Slot Prototype:
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.

Since gtkmm 3.24:
Parameters
response_idThe response ID.

◆ unset_transient_for()

void Gtk::NativeDialog::unset_transient_for ( )

Unsets the current transient window.

See also
set_transient_for().
Since gtkmm 3.24:

Friends And Related Function Documentation

◆ wrap()

Glib::RefPtr< Gtk::NativeDialog > wrap ( GtkNativeDialog *  object,
bool  take_copy = false 
)
related

A Glib::wrap() method for this object.

Parameters
objectThe C instance.
take_copyFalse if the result should take ownership of the C instance. True if it should take a new copy or ref.
Returns
A C++ instance that wraps this C instance.