Class NativeDialog

All Implemented Interfaces:
Proxy
Direct Known Subclasses:
FileChooserNative, NativeDialog.NativeDialog$Impl

@Generated("org.javagi.JavaGI") public abstract class NativeDialog extends GObject

Base class for platform dialogs that don't use GtkDialog.

Native dialogs 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 GtkNativeDialog 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 GtkDialog, GtkNativeDialog 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.

  • Constructor Details

    • NativeDialog

      public NativeDialog(MemorySegment address)
      Create a NativeDialog instance for the provided memory address.
      Parameters:
      address - the memory address of the native object
    • NativeDialog

      public NativeDialog()
      Create a new NativeDialog.
  • Method Details

    • getType

      public static @Nullable Type getType()
      Get the GType of the NativeDialog class.
      Returns:
      the GType
    • getMemoryLayout

      public static MemoryLayout getMemoryLayout()
      The memory layout of the native struct.
      Returns:
      the memory layout
    • asParent

      protected NativeDialog asParent()
      Return this instance as if it were its parent type. Comparable to the Java super keyword, but ensures the parent typeclass is also used in native code.
      Overrides:
      asParent in class GObject
      Returns:
      the instance as if it were its parent type
    • destroy

      public void destroy()

      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 GtkNativeDialog.

    • getModal

      public boolean getModal()
      Returns whether the dialog is modal.
      Returns:
      true if the dialog is set to be modal
    • getTitle

      public @Nullable String getTitle()
      Gets the title of the GtkNativeDialog.
      Returns:
      the title of the dialog, or null if none has been set explicitly. The returned string is owned by the widget and must not be modified or freed.
    • getTransientFor

      public @Nullable Window getTransientFor()
      Fetches the transient parent for this window.
      Returns:
      the transient parent for this window, or null if no transient parent has been set.
    • getVisible

      public boolean getVisible()
      Determines whether the dialog is visible.
      Returns:
      true if the dialog is visible
    • hide

      public void hide()

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

      If the dialog is not visible this does nothing.

    • setModal

      public void setModal(boolean modal)

      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 setTransientFor(Window) to make the dialog transient for the parent; most window managers will then disallow lowering the dialog below the parent.

      Parameters:
      modal - whether the window is modal
    • setTitle

      public void setTitle(String title)
      Sets the title of the GtkNativeDialog.
      Parameters:
      title - title of the dialog
    • setTransientFor

      public void setTransientFor(@Nullable Window parent)

      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 null for parent unsets the current transient window.

      Parameters:
      parent - parent window
    • show

      public void show()

      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.

    • response

      protected void response(int responseId)
      class handler for the GtkNativeDialog::response signal
    • onResponse

      Emitted when the user responds to the dialog.

      When this is called the dialog has been hidden.

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

      Parameters:
      handler - the signal handler
      Returns:
      a signal handler ID to keep track of the signal connection
      See Also:
    • emitResponse

      public void emitResponse(int responseId)
      Emits the "response" signal. See onResponse(NativeDialog.ResponseCallback).