class Gtk::NativeDialog

Overview

Native dialogs are platform dialogs that don't use Gtk::Dialog.

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 Gtk::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 Gtk::NativeDialog::#response signal when the user finished with the dialog.

Note that unlike Gtk::Dialog, Gtk::NativeDialog objects are not toplevel widgets, and GTK does not keep them alive. It is your responsibility to keep a reference until you are done with the object.

Direct Known Subclasses

Defined in:

lib/gi-crystal/src/auto/gtk-4.0/native_dialog.cr

Constructors

Class Method Summary

Instance Method Summary

Instance methods inherited from class GObject::Object

==(other : self) ==, bind_property(source_property : String, target : GObject::Object, target_property : String, flags : GObject::BindingFlags) : GObject::Binding bind_property, bind_property_full(source_property : String, target : GObject::Object, target_property : String, flags : GObject::BindingFlags, transform_to : GObject::Closure, transform_from : GObject::Closure) : GObject::Binding bind_property_full, data(key : String) : Pointer(Void) | Nil data, finalize finalize, freeze_notify : Nil freeze_notify, getv(names : Enumerable(String), values : Enumerable(_)) : Nil getv, hash(hasher) hash, notify(property_name : String) : Nil notify, notify_by_pspec(pspec : GObject::ParamSpec) : Nil notify_by_pspec, notify_signal notify_signal, property(property_name : String, value : _) : Nil property, qdata(quark : UInt32) : Pointer(Void) | Nil qdata, ref_count : UInt32 ref_count, run_dispose : Nil run_dispose, set_data(key : String, data : Pointer(Void) | Nil) : Nil set_data, set_property(property_name : String, value : _) : Nil set_property, steal_data(key : String) : Pointer(Void) | Nil steal_data, steal_qdata(quark : UInt32) : Pointer(Void) | Nil steal_qdata, thaw_notify : Nil thaw_notify, to_unsafe : Pointer(Void) to_unsafe, watch_closure(closure : GObject::Closure) : Nil watch_closure

Constructor methods inherited from class GObject::Object

cast(obj : GObject::Object) : self cast, new(pointer : Pointer(Void), transfer : GICrystal::Transfer)
new
new
, newv(object_type : UInt64, parameters : Enumerable(GObject::Parameter)) : self newv

Class methods inherited from class GObject::Object

cast?(obj : GObject::Object) : self | Nil cast?, compat_control(what : UInt64, data : Pointer(Void) | Nil) : UInt64 compat_control, g_type : UInt64 g_type, interface_find_property(g_iface : GObject::TypeInterface, property_name : String) : GObject::ParamSpec interface_find_property, interface_list_properties(g_iface : GObject::TypeInterface) : Enumerable(GObject::ParamSpec) interface_list_properties

Constructor Detail

def self.new #

Initialize a new NativeDialog.


[View source]
def self.new(*, modal : Bool | Nil = nil, title : String | Nil = nil, transient_for : Gtk::Window | Nil = nil, visible : Bool | Nil = nil) #

[View source]

Class Method Detail

def self.g_type : UInt64 #

Returns the type id (GType) registered in GLib type system.


[View source]

Instance Method Detail

def ==(other : self) #
Description copied from class Reference

Returns true if this reference is the same as other. Invokes same?.


def destroy : Nil #

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 Gtk::Window) because there is no reference from the windowing system to the Gtk::NativeDialog.


[View source]
def hash(hasher) #
Description copied from class Reference

See Object#hash(hasher)


def hide : Nil #

Hides the dialog if it is visible, aborting any interaction.

Once this is called the Gtk::NativeDialog::#response signal will not be emitted until after the next call to Gtk::NativeDialog#show.

If the dialog is not visible this does nothing.


[View source]
def modal : Bool #

Returns whether the dialog is modal.


[View source]
def modal=(modal : Bool) : Nil #

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 Gtk::NativeDialog#transient_for= to make the dialog transient for the parent; most window managers will then disallow lowering the dialog below the parent.


[View source]
def modal? : Bool #

[View source]
def response_signal #

[View source]
def show : Nil #

Shows the dialog on the display.

When the user accepts the state of the dialog the dialog will be automatically hidden and the Gtk::NativeDialog::#response signal will be emitted.

Multiple calls while the dialog is visible will be ignored.


[View source]
def title : String | Nil #

Gets the title of the Gtk::NativeDialog.


[View source]
def title=(title : String) : Nil #

Sets the title of the Gtk::NativeDialog.


[View source]
def transient_for : Gtk::Window | Nil #

Fetches the transient parent for this window.


[View source]
def transient_for=(parent : Gtk::Window | Nil) : Nil #

Dialog windows should be set transient for the main application window they were spawned from.

This allows window managers to e.g. keep the dialog on top of the main window, or center the dialog over the main window.

Passing nil for parent unsets the current transient window.


[View source]
def visible : Bool #

Determines whether the dialog is visible.


[View source]
def visible=(value : Bool) : Bool #

[View source]
def visible? : Bool #

[View source]