// Generated by gmmproc 2.66.7 -- DO NOT MODIFY! #ifndef _GTKMM_NATIVEDIALOG_H #define _GTKMM_NATIVEDIALOG_H #include #include #include /* Copyright (C) 2017 The gtkmm Development Team * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library. If not, see . */ #include #ifndef DOXYGEN_SHOULD_SKIP_THIS using GtkNativeDialog = struct _GtkNativeDialog; using GtkNativeDialogClass = struct _GtkNativeDialogClass; #endif /* DOXYGEN_SHOULD_SKIP_THIS */ #ifndef DOXYGEN_SHOULD_SKIP_THIS namespace Gtk { class GTKMM_API NativeDialog_Class; } // namespace Gtk #endif //DOXYGEN_SHOULD_SKIP_THIS namespace Gtk { class GTKMM_API Window; /** 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 Gtk::FileChooserNative, Gtk::Dialog * @newin{3,24} */ class GTKMM_API NativeDialog : public Glib::Object { #ifndef DOXYGEN_SHOULD_SKIP_THIS public: using CppObjectType = NativeDialog; using CppClassType = NativeDialog_Class; using BaseObjectType = GtkNativeDialog; using BaseClassType = GtkNativeDialogClass; // noncopyable NativeDialog(const NativeDialog&) = delete; NativeDialog& operator=(const NativeDialog&) = delete; private: friend class NativeDialog_Class; static CppClassType nativedialog_class_; protected: explicit NativeDialog(const Glib::ConstructParams& construct_params); explicit NativeDialog(GtkNativeDialog* castitem); #endif /* DOXYGEN_SHOULD_SKIP_THIS */ public: NativeDialog(NativeDialog&& src) noexcept; NativeDialog& operator=(NativeDialog&& src) noexcept; ~NativeDialog() noexcept override; /** Get the GType for this class, for use with the underlying GObject type system. */ static GType get_type() G_GNUC_CONST; #ifndef DOXYGEN_SHOULD_SKIP_THIS static GType get_base_type() G_GNUC_CONST; #endif ///Provides access to the underlying C GObject. GtkNativeDialog* gobj() { return reinterpret_cast(gobject_); } ///Provides access to the underlying C GObject. const GtkNativeDialog* gobj() const { return reinterpret_cast(gobject_); } ///Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs. GtkNativeDialog* gobj_copy(); private: protected: /** There is no create() method that corresponds to this constructor, * because only derived classes shall be created. */ NativeDialog(); public: // No create() because only derived classes shall be instantiated. /** 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. * * @newin{3,24} */ void show(); /** 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. * * @newin{3,24} */ void hide(); /** Determines whether the dialog is visible. * * @newin{3,24} * * @return true if the dialog is visible. */ bool get_visible() const; /** 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. * * @newin{3,24} * * @param modal Whether the window is modal. */ void set_modal(bool modal = true); /** Returns whether the dialog is modal. See set_modal(). * * @newin{3,24} * * @return true if the dialog is set to be modal. */ bool get_modal() const; /** Sets the title of the Gtk::NativeDialog. * * @newin{3,24} * * @param title Title of the dialog. */ void set_title(const Glib::ustring& title); /** Gets the title of the Gtk::NativeDialog. * * @newin{3,24} * * @return 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. */ Glib::ustring get_title() const; /** 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 @a parent unsets the current transient window. * * @newin{3,24} * * @param parent Parent window, or nullptr. */ void set_transient_for(Window& parent); /** Unsets the current transient window. * @see set_transient_for(). * @newin{3,24} */ void unset_transient_for(); /** Fetches the transient parent for this window. See * set_transient_for(). * * @newin{3,24} * * @return The transient parent for this window, * or nullptr if no transient parent has been set. */ Window* get_transient_for(); /** Fetches the transient parent for this window. See * set_transient_for(). * * @newin{3,24} * * @return The transient parent for this window, * or nullptr if no transient parent has been set. */ const Window* get_transient_for() const; /** Blocks in a recursive main loop until @a 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. * * @newin{3,24} * * @return Response ID. */ int run(); /** The title of the dialog window * * @newin{3,24} * * Default value: "" * * @return A PropertyProxy that allows you to get or set the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy< Glib::ustring > property_title() ; /** The title of the dialog window * * @newin{3,24} * * Default value: "" * * @return A PropertyProxy_ReadOnly that allows you to get the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy_ReadOnly< Glib::ustring > property_title() const; /** Whether the window should be modal with respect to its transient parent. * * @newin{3,24} * * Default value: false * * @return A PropertyProxy that allows you to get or set the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy< bool > property_modal() ; /** Whether the window should be modal with respect to its transient parent. * * @newin{3,24} * * Default value: false * * @return A PropertyProxy_ReadOnly that allows you to get the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy_ReadOnly< bool > property_modal() const; /** Whether the window is currenlty visible. * * @newin{3,24} * * Default value: false * * @return A PropertyProxy that allows you to get or set the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy< bool > property_visible() ; /** Whether the window is currenlty visible. * * @newin{3,24} * * Default value: false * * @return A PropertyProxy_ReadOnly that allows you to get the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy_ReadOnly< bool > property_visible() const; /** The transient parent of the dialog, or nullptr for none. * * @newin{3,24} * * @return A PropertyProxy that allows you to get or set the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy< Window* > property_transient_for() ; /** The transient parent of the dialog, or nullptr for none. * * @newin{3,24} * * @return A PropertyProxy_ReadOnly that allows you to get the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy_ReadOnly< Window* > property_transient_for() const; /** * @par 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. * * @newin{3,24} * * @param response_id The response ID. */ Glib::SignalProxy< void,int > signal_response(); public: public: //C++ methods used to invoke GTK+ virtual functions: protected: //GTK+ Virtual Functions (override these to change behaviour): //Default Signal Handlers:: /// This is a default handler for the signal signal_response(). virtual void on_response(int response_id); }; } // namespace Gtk namespace Glib { /** A Glib::wrap() method for this object. * * @param object The C instance. * @param take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref. * @result A C++ instance that wraps this C instance. * * @relates Gtk::NativeDialog */ GTKMM_API Glib::RefPtr wrap(GtkNativeDialog* object, bool take_copy = false); } #endif /* _GTKMM_NATIVEDIALOG_H */