// Generated by gmmproc 2.66.7 -- DO NOT MODIFY! #ifndef _GTKMM_ACTION_H #define _GTKMM_ACTION_H #include #include #include /* Copyright (C) 2003 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, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include #include #include #include //TODO: Do this when we can stop using Gtk::Action in virtual functions in Gtk::Activatable, when we break ABI: //_IS_DEPRECATED // This whole file is deprecated. #ifndef DOXYGEN_SHOULD_SKIP_THIS using GtkAction = struct _GtkAction; using GtkActionClass = struct _GtkActionClass; #endif /* DOXYGEN_SHOULD_SKIP_THIS */ #ifndef DOXYGEN_SHOULD_SKIP_THIS namespace Gtk { class GTKMM_API Action_Class; } // namespace Gtk #endif //DOXYGEN_SHOULD_SKIP_THIS namespace Gtk { class GTKMM_API ActionGroup; //deprecated class GTKMM_API Menu; class GTKMM_API MenuItem; class GTKMM_API ToolItem; class GTKMM_API Image; class GTKMM_API StockID; //deprecated /** A deprecated action which can be triggered by a menu or toolbar item. * * Actions represent operations that the user can perform, along with * some information about how it should be presented in the user interface. * Each action provides methods to create icons, menu items and toolbar * items representing itself. * * As well as the callback that is called when the action is activated, * the following is also associated with the action: * * - a name (not translated, for path lookup) * - a label (translated, for display) * - an accelerator * - whether the label indicates a stock id * - a tooltip (optional, translated) * - a toolbar label (optional, shorter than label) * * The action will also have some state information: * * - visible (shown/hidden) * - sensitive (enabled/disabled) * * Apart from regular actions, there are toggle actions, * which can be toggled between two states and radio actions, * of which only one in a group can be in the "active" state. * Other actions can be implemented as Gtk::Action subclasses. * * Each action can have one or more proxy menu item, toolbar button or other proxy widgets. * Proxies mirror the state of the action (text label, tooltip, icon, visible, sensitive, etc), * and should change when the action's state changes. When the proxy is activated, * it should activate its action. * * @deprecated Use Gio::Action and Gio::SimpleAction instead, and associate actions * with Gtk::Actionable widgets. Use Gio::MenuModel for creating menus with * Gtk::Menu(const Glib::RefPtr& model).
* Some gtkmm widgets don't derive from Gtk::Actionable, although the corresponding * gtk+ widgets implement the GtkActionable interface. This discrepancy can't be * fixed until we can break ABI. You can sometimes work around this problem * by using a widget's %gobj() method and calling a gtk_actionable_*() method * directly. Several examples in the * Programming with gtkmm * book use Gio::SimpleAction, such as the menus and toolbars examples. * The online version of this tutorial describes gtkmm-4.0. */ class GTKMM_API Action : public Glib::Object, public Buildable { #ifndef DOXYGEN_SHOULD_SKIP_THIS public: using CppObjectType = Action; using CppClassType = Action_Class; using BaseObjectType = GtkAction; using BaseClassType = GtkActionClass; // noncopyable Action(const Action&) = delete; Action& operator=(const Action&) = delete; private: friend class Action_Class; static CppClassType action_class_; protected: explicit Action(const Glib::ConstructParams& construct_params); explicit Action(GtkAction* castitem); #endif /* DOXYGEN_SHOULD_SKIP_THIS */ public: Action(Action&& src) noexcept; Action& operator=(Action&& src) noexcept; ~Action() 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. GtkAction* gobj() { return reinterpret_cast(gobject_); } ///Provides access to the underlying C GObject. const GtkAction* 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. GtkAction* gobj_copy(); private: protected: /** Creates an empty action. */ Action(); #ifndef GTKMM_DISABLE_DEPRECATED /** Creates an action with a stock ID. * The stock ID is used to set a default icon, text and accelerator for the * action. * * @param name A unique name for the action. * @param stock_id The stock icon to display in widgets representing the * action. * @param label The label displayed in menu items and on buttons. * @param tooltip A tooltip for the action. * @deprecated There is no corresponding replacement when using Gio::Action. */ explicit Action(const Glib::ustring& name, const StockID& stock_id = StockID(), const Glib::ustring& label = Glib::ustring(), const Glib::ustring& tooltip = Glib::ustring()); /** Creates an action with an icon name. * The action's icon will reflect the specified icon name in the user's * icon theme. * * @param name A unique name for the action. * @param icon_name An IconTheme icon name used for widgets representing the * action. * @param label The label displayed in menu items and on buttons. * @param tooltip A tooltip for the action. * @deprecated See set_icon_name(), set_label() and set_tooltip() for * replacements when using Gio::Action. */ explicit Action(const Glib::ustring& name, const Glib::ustring& icon_name, const Glib::ustring& label = Glib::ustring(), const Glib::ustring& tooltip = Glib::ustring()); #endif // GTKMM_DISABLE_DEPRECATED public: //Note that gtk_action_new() does not allow name to be NULL, which suggests that we should not have a default constructor, //but it's OK to set the name later: static Glib::RefPtr create(); #ifndef GTKMM_DISABLE_DEPRECATED /** Creates an action. * * @param name A unique name for the action. * @param label The label displayed in menu items and on buttons. * @param tooltip A tooltip for the action. * * @return A new Action. * @deprecated See set_label() and set_tooltip() for replacements when using Gio::Action. */ static Glib::RefPtr create(const Glib::ustring& name, const Glib::ustring& label = Glib::ustring(), const Glib::ustring& tooltip = Glib::ustring()); /** Creates an action with a stock ID. * The stock ID is used to set a default icon, text and accelerator for the * action. * * @param name A unique name for the action. * @param stock_id The stock icon to display in widgets representing the * action. * @param label The label displayed in menu items and on buttons. * @param tooltip A tooltip for the action. * * @return A new Action. * @deprecated There is no corresponding replacement when using Gio::Action. */ static Glib::RefPtr create(const Glib::ustring& name, const Gtk::StockID& stock_id, const Glib::ustring& label = Glib::ustring(), const Glib::ustring& tooltip = Glib::ustring()); /** Create an action with an icon name. * The action's icon will reflect the specified icon name in the user's * icon theme. * * @param name A unique name for the action. * @param icon_name An IconTheme icon name used for widgets representing the * action. * @param label The label displayed in menu items and on buttons. * @param tooltip A tooltip for the action. * * @return A new Action. * @deprecated See set_icon_name(), set_label() and set_tooltip() for * replacements when using Gio::Action. */ static Glib::RefPtr create_with_icon_name(const Glib::ustring& name, const Glib::ustring& icon_name, const Glib::ustring& label, const Glib::ustring& tooltip); #endif // GTKMM_DISABLE_DEPRECATED #ifndef GTKMM_DISABLE_DEPRECATED /** Returns the name of the action. * * @newin{2,4} * * Deprecated: 3.10: Use Glib::action_get_name() on a Gio::Action instead * * @deprecated Use Gio::Action::get_name() on a Gio::Action instead. * * @return The name of the action. The string belongs to GTK+ and should not * be freed. */ Glib::ustring get_name() const; #endif // GTKMM_DISABLE_DEPRECATED #ifndef GTKMM_DISABLE_DEPRECATED /** Returns whether the action is effectively sensitive. * * @newin{2,4} * * Deprecated: 3.10: Use Glib::action_get_enabled() on a Gio::Action * instead * * @deprecated Use Gio::Action::get_enabled() on a Gio::Action instead. * * @return true if the action and its associated action group * are both sensitive. */ bool is_sensitive() const; #endif // GTKMM_DISABLE_DEPRECATED #ifndef GTKMM_DISABLE_DEPRECATED /** Returns whether the action itself is sensitive. Note that this doesn’t * necessarily mean effective sensitivity. See is_sensitive() * for that. * * @newin{2,4} * * Deprecated: 3.10: Use Glib::action_get_enabled() on a Gio::Action * instead * * @deprecated Use Gio::Action::get_enabled() on a Gio::Action instead. * * @return true if the action itself is sensitive. */ bool get_sensitive() const; #endif // GTKMM_DISABLE_DEPRECATED #ifndef GTKMM_DISABLE_DEPRECATED /** Sets the :sensitive property of the action to @a sensitive. Note that * this doesn’t necessarily mean effective sensitivity. See * is_sensitive() * for that. * * @newin{2,6} * * Deprecated: 3.10: Use Glib::simple_action_set_enabled() on a SimpleAction * instead * * @deprecated Use Gio::SimpleAction::set_enabled() on a Gio::SimpleAction instead. * * @param sensitive true to make the action sensitive. */ void set_sensitive(bool sensitive = true); #endif // GTKMM_DISABLE_DEPRECATED #ifndef GTKMM_DISABLE_DEPRECATED /** Returns whether the action is effectively visible. * * @newin{2,4} * * Deprecated: 3.10: Use Gio::Action instead, and control and monitor the state of * Gtk::Actionable widgets directly * * @deprecated Use Gio::Action instead, and control and monitor the state of Gtk::Actionable widgets directly. * * @return true if the action and its associated action group * are both visible. */ bool is_visible() const; #endif // GTKMM_DISABLE_DEPRECATED #ifndef GTKMM_DISABLE_DEPRECATED /** Returns whether the action itself is visible. Note that this doesn’t * necessarily mean effective visibility. See is_sensitive() * for that. * * @newin{2,4} * * Deprecated: 3.10: Use Gio::Action instead, and control and monitor the state of * Gtk::Actionable widgets directly * * @deprecated Use Gio::Action instead, and control and monitor the state of Gtk::Actionable widgets directly. * * @return true if the action itself is visible. */ bool get_visible() const; #endif // GTKMM_DISABLE_DEPRECATED #ifndef GTKMM_DISABLE_DEPRECATED /** Sets the :visible property of the action to @a visible. Note that * this doesn’t necessarily mean effective visibility. See * is_visible() * for that. * * @newin{2,6} * * Deprecated: 3.10: Use Gio::Action instead, and control and monitor the state of * Gtk::Actionable widgets directly * * @deprecated Use Gio::Action instead, and control and monitor the state of Gtk::Actionable widgets directly. * * @param visible true to make the action visible. */ void set_visible(bool visible = true); #endif // GTKMM_DISABLE_DEPRECATED #ifndef GTKMM_DISABLE_DEPRECATED /** Emits the “activate” signal on the specified action, if it isn't * insensitive. This gets called by the proxy widgets when they get * activated. * * It can also be used to manually activate an action. * * @newin{2,4} * * Deprecated: 3.10: Use Glib::action_group_activate_action() on a Gio::Action instead * * @deprecated Use Gio::ActionGroup::activate_action() on a Gio::Action instead. */ void activate(); #endif // GTKMM_DISABLE_DEPRECATED #ifndef GTKMM_DISABLE_DEPRECATED /** This function is intended for use by action implementations to * create icons displayed in the proxy widgets. * * @newin{2,4} * * Deprecated: 3.10: Use Glib::menu_item_set_icon() to set an icon on a MenuItem, * or Gtk::Container::add() to add a Gtk::Image to a Gtk::Button * * @deprecated Use Gio::MenuItem::set_icon() to set an icon on a Gio::MenuItem, or Gtk::Container::add() to add a Gtk::Image to a Gtk::Button. * * @param icon_size The size of the icon (Gtk::IconSize) that should * be created. * @return A widget that displays the icon for this action. */ Image* create_icon(IconSize icon_size); #endif // GTKMM_DISABLE_DEPRECATED #ifndef GTKMM_DISABLE_DEPRECATED /** Creates a menu item widget that proxies for the given action. * * @newin{2,4} * * Deprecated: 3.10: Use Glib::menu_item_new() and associate it with a Gio::Action * instead. * * @deprecated Use a Gio::MenuItem and associate it with a Gio::Action instead. * * @return A menu item connected to the action. */ MenuItem* create_menu_item(); #endif // GTKMM_DISABLE_DEPRECATED #ifndef GTKMM_DISABLE_DEPRECATED /** Creates a toolbar item widget that proxies for the given action. * * @newin{2,4} * * Deprecated: 3.10: Use a Gtk::ToolItem and associate it with a Gio::Action using * Gtk::Actionable::set_action_name() instead * * @deprecated Use a Gtk::ToolItem and associate it with a Gio::Action using Gtk::Actionable::set_action_name() instead. (Impossible until GtkToolItem implements the GActionable interface.) * * @return A toolbar item connected to the action. */ ToolItem* create_tool_item(); #endif // GTKMM_DISABLE_DEPRECATED #ifndef GTKMM_DISABLE_DEPRECATED /** If @a action provides a Gtk::Menu widget as a submenu for the menu * item or the toolbar item it creates, this function returns an * instance of that menu. * * @newin{2,12} * * Deprecated: 3.10: Use Gio::Action and Gio::MenuModel instead, and create a * Gtk::Menu with Gtk::Menu::new_from_model() * * @deprecated Use Gio::Action and Gio::MenuModel instead, and create a Gtk::Menu with Gtk::Menu(const Glib::RefPtr& model). * * @return The menu item provided by the * action, or nullptr. */ Menu* create_menu(); #endif // GTKMM_DISABLE_DEPRECATED #ifndef GTKMM_DISABLE_DEPRECATED /** Returns the proxy widgets for an action. * See also Gtk::Activatable::get_related_action(). * * @newin{2,4} * * Deprecated: 3.10 * * @deprecated There is no corresponding replacement when using Gio::Action. * * @return A SList of proxy widgets. The list is owned by GTK+ * and must not be modified. */ std::vector get_proxies(); #endif // GTKMM_DISABLE_DEPRECATED #ifndef GTKMM_DISABLE_DEPRECATED /** Returns the proxy widgets for an action. * See also Gtk::Activatable::get_related_action(). * * @newin{2,4} * * Deprecated: 3.10 * * @deprecated There is no corresponding replacement when using Gio::Action. * * @return A SList of proxy widgets. The list is owned by GTK+ * and must not be modified. */ std::vector get_proxies() const; #endif // GTKMM_DISABLE_DEPRECATED #ifndef GTKMM_DISABLE_DEPRECATED /** Installs the accelerator for @a action if @a action has an * accel path and group. See set_accel_path() and * set_accel_group() * * Since multiple proxies may independently trigger the installation * of the accelerator, the @a action counts the number of times this * function has been called and doesn’t remove the accelerator until * disconnect_accelerator() has been called as many times. * * @newin{2,4} * * Deprecated: 3.10: Use Gio::Action and the accelerator group on an associated * Gtk::Menu instead * * @deprecated Use Gio::Action and the accelerator group on an associated Gtk::Menu instead. */ void connect_accelerator(); #endif // GTKMM_DISABLE_DEPRECATED #ifndef GTKMM_DISABLE_DEPRECATED /** Undoes the effect of one call to connect_accelerator(). * * @newin{2,4} * * Deprecated: 3.10: Use Gio::Action and the accelerator group on an associated * Gtk::Menu instead * * @deprecated Use Gio::Action and the accelerator group on an associated Gtk::Menu instead. */ void disconnect_accelerator(); #endif // GTKMM_DISABLE_DEPRECATED #ifndef GTKMM_DISABLE_DEPRECATED /** Returns the accel path for this action. * * @newin{2,6} * * Deprecated: 3.10: Use Gio::Action and the accelerator path on an associated * Gtk::Menu instead * * @deprecated Use Gio::Action and the accelerator path on an associated Gtk::Menu instead. * * @return The accel path for this action, or nullptr * if none is set. The returned string is owned by GTK+ * and must not be freed or modified. */ Glib::ustring get_accel_path() const; #endif // GTKMM_DISABLE_DEPRECATED /// For instance, void on_activate(); typedef sigc::slot SlotActivate; #ifndef GTKMM_DISABLE_DEPRECATED /** * @par Slot Prototype: * void on_my_%activate() * * Flags: Run First, No Recurse * * The "activate" signal is emitted when the action is activated. * * @newin{2,4} * * Deprecated: 3.10: Use SimpleAction::signal_activate() instead * * @deprecated Use Gio::SimpleAction::signal_activate() instead. */ Glib::SignalProxy< void > signal_activate(); #endif // GTKMM_DISABLE_DEPRECATED //Used by AccelGroup: #ifndef GTKMM_DISABLE_DEPRECATED /** Sets the accel path for this action. All proxy widgets associated * with the action will have this accel path, so that their * accelerators are consistent. * * Note that @a accel_path string will be stored in a Quark. Therefore, if you * pass a static string, you can save some memory by interning it first with * Glib::intern_static_string(). * * @newin{2,4} * * Deprecated: 3.10: Use Gio::Action and the accelerator path on an associated * Gtk::Menu instead * * @deprecated Use Gio::Action and the accelerator path on an associated Gtk::Menu instead. * * @param accel_path The accelerator path. */ void set_accel_path(const Glib::ustring& accel_path); #endif // GTKMM_DISABLE_DEPRECATED #ifndef GTKMM_DISABLE_DEPRECATED /** Sets the Gtk::AccelGroup in which the accelerator for this action * will be installed. * * @newin{2,4} * * Deprecated: 3.10: Use Gio::Action and the accelerator group on an associated * Gtk::Menu instead * * @deprecated Use Gio::Action and the accelerator group on an associated Gtk::Menu instead. * * @param accel_group A Gtk::AccelGroup or nullptr. */ void set_accel_group(const Glib::RefPtr& accel_group); #endif // GTKMM_DISABLE_DEPRECATED #ifndef GTKMM_DISABLE_DEPRECATED /** Sets the label of @a action. * * @newin{2,16} * * Deprecated: 3.10: Use Gio::Action instead, and set a label on a menu item with * Glib::menu_item_set_label(). For Gtk::Actionable widgets, use the widget-specific * API to set a label * * @deprecated Use Gio::Action instead, and set a label on a menu item with Gio::MenuItem::set_label(). For Gtk::Actionable widgets, use the widget-specific API to set a label. * * @param label The label text to set. */ void set_label(const Glib::ustring& label); #endif // GTKMM_DISABLE_DEPRECATED #ifndef GTKMM_DISABLE_DEPRECATED /** Gets the label text of @a action. * * @newin{2,16} * * Deprecated: 3.10: Use Gio::Action instead, and get a label from a menu item * with Glib::menu_item_get_attribute_value(). For Gtk::Actionable widgets, use the * widget-specific API to get a label * * @deprecated Use Gio::Action instead, and get a label from a menu item with Gio::MenuItem::get_attribute_value(). For Gtk::Actionable widgets, use the widget-specific API to get a label. * * @return The label text. */ Glib::ustring get_label() const; #endif // GTKMM_DISABLE_DEPRECATED #ifndef GTKMM_DISABLE_DEPRECATED /** Sets a shorter label text on @a action. * * @newin{2,16} * * Deprecated: 3.10: Use Gio::Action instead, which has no equivalent of short * labels * * @deprecated There is no corresponding replacement when using Gio::Action. * * @param short_label The label text to set. */ void set_short_label(const Glib::ustring& short_label); #endif // GTKMM_DISABLE_DEPRECATED #ifndef GTKMM_DISABLE_DEPRECATED /** Gets the short label text of @a action. * * @newin{2,16} * * Deprecated: 3.10: Use Gio::Action instead, which has no equivalent of short * labels * * @deprecated There is no corresponding replacement when using Gio::Action. * * @return The short label text. */ Glib::ustring get_short_label() const; #endif // GTKMM_DISABLE_DEPRECATED #ifndef GTKMM_DISABLE_DEPRECATED /** Sets the tooltip text on @a action * * @newin{2,16} * * Deprecated: 3.10: Use Gio::Action instead, and set tooltips on associated * Gtk::Actionable widgets with Gtk::Widget::set_tooltip_text() * * @deprecated Use Gio::Action instead, and set tooltips on associated Gtk::Actionable widgets with Gtk::Widget::set_tooltip_text(). * * @param tooltip The tooltip text. */ void set_tooltip(const Glib::ustring& tooltip); #endif // GTKMM_DISABLE_DEPRECATED #ifndef GTKMM_DISABLE_DEPRECATED /** Gets the tooltip text of @a action. * * @newin{2,16} * * Deprecated: 3.10: Use Gio::Action instead, and get tooltips from associated * Gtk::Actionable widgets with Gtk::Widget::get_tooltip_text() * * @deprecated Use Gio::Action instead, and get tooltips from associated Gtk::Actionable widgets with Gtk::Widget::get_tooltip_text(). * * @return The tooltip text. */ Glib::ustring get_tooltip() const; #endif // GTKMM_DISABLE_DEPRECATED #ifndef GTKMM_DISABLE_DEPRECATED /** Sets the stock id on @a action * * @newin{2,16} * * Deprecated: 3.10: Use Gio::Action instead, which has no equivalent of stock * items * * @deprecated There is no corresponding replacement when using Gio::Action. * * @param stock_id The stock id. */ void set_stock_id(const StockID& stock_id); #endif // GTKMM_DISABLE_DEPRECATED #ifndef GTKMM_DISABLE_DEPRECATED /** Gets the stock id of @a action. * * @newin{2,16} * * Deprecated: 3.10: Use Gio::Action instead, which has no equivalent of stock * items * * @deprecated There is no corresponding replacement when using Gio::Action. * * @return The stock id. */ StockID get_stock_id() const; #endif // GTKMM_DISABLE_DEPRECATED #ifndef GTKMM_DISABLE_DEPRECATED /** Sets the icon of @a action. * * @newin{2,16} * * Deprecated: 3.10: Use Gio::Action instead, and Glib::menu_item_set_icon() to set an * icon on a MenuItem associated with a Gio::Action, or Gtk::Container::add() to * add a Gtk::Image to a Gtk::Button * * @deprecated Use Gio::Action instead, and Gio::MenuItem::set_icon() to set an icon on a Gio::MenuItem associated with a Gio::Action, or Gtk::Container::add() to add a Gtk::Image to a Gtk::Button. * * @param icon The Gio::Icon to set. */ void set_gicon(const Glib::RefPtr& icon); #endif // GTKMM_DISABLE_DEPRECATED #ifndef GTKMM_DISABLE_DEPRECATED /** Gets the gicon of @a action. * * @newin{2,16} * * Deprecated: 3.10: Use Gio::Action instead, and * Glib::menu_item_get_attribute_value() to get an icon from a MenuItem * associated with a Gio::Action * * @deprecated Use Gio::Action instead, and Gio::MenuItem::get_attribute_value() to get an icon from a Gio::MenuItem associated with a Gio::Action. * * @return The action’s Gio::Icon if one is set. */ Glib::RefPtr get_gicon(); #endif // GTKMM_DISABLE_DEPRECATED #ifndef GTKMM_DISABLE_DEPRECATED /** Gets the gicon of @a action. * * @newin{2,16} * * Deprecated: 3.10: Use Gio::Action instead, and * Glib::menu_item_get_attribute_value() to get an icon from a MenuItem * associated with a Gio::Action * * @deprecated Use Gio::Action instead, and Gio::MenuItem::get_attribute_value() to get an icon from a Gio::MenuItem associated with a Gio::Action. * * @return The action’s Gio::Icon if one is set. */ Glib::RefPtr get_gicon() const; #endif // GTKMM_DISABLE_DEPRECATED #ifndef GTKMM_DISABLE_DEPRECATED /** Sets the icon name on @a action * * @newin{2,16} * * Deprecated: 3.10: Use Gio::Action instead, and Glib::menu_item_set_icon() to set an * icon on a MenuItem associated with a Gio::Action, or Gtk::Container::add() to * add a Gtk::Image to a Gtk::Button * * @deprecated Use Gio::Action instead, and Gio::MenuItem::set_icon() to set an icon on a Gio::MenuItem associated with a Gio::Action, or Gtk::Container::add() to add a Gtk::Image to a Gtk::Button. * * @param icon_name The icon name to set. */ void set_icon_name(const Glib::ustring& icon_name); #endif // GTKMM_DISABLE_DEPRECATED #ifndef GTKMM_DISABLE_DEPRECATED /** Gets the icon name of @a action. * * @newin{2,16} * * Deprecated: 3.10: Use Gio::Action instead, and * Glib::menu_item_get_attribute_value() to get an icon from a MenuItem * associated with a Gio::Action * * @deprecated Use Gio::Action instead, and Gio::MenuItem::get_attribute_value() to get an icon from a Gio::MenuItem associated with a Gio::Action. * * @return The icon name. */ Glib::ustring get_icon_name() const; #endif // GTKMM_DISABLE_DEPRECATED #ifndef GTKMM_DISABLE_DEPRECATED /** Sets whether @a action is visible when horizontal * * @newin{2,16} * * Deprecated: 3.10: Use Gio::Action instead, and control and monitor the * visibility of associated widgets and menu items directly * * @deprecated Use Gio::Action instead, and control and monitor the visibility of associated widgets and menu items directly. * * @param visible_horizontal Whether the action is visible horizontally. */ void set_visible_horizontal(bool visible_horizontal = true); #endif // GTKMM_DISABLE_DEPRECATED #ifndef GTKMM_DISABLE_DEPRECATED /** Checks whether @a action is visible when horizontal * * @newin{2,16} * * Deprecated: 3.10: Use Gio::Action instead, and control and monitor the * visibility of associated widgets and menu items directly * * @deprecated Use Gio::Action instead, and control and monitor the visibility of associated widgets and menu items directly. * * @return Whether @a action is visible when horizontal. */ bool get_visible_horizontal() const; #endif // GTKMM_DISABLE_DEPRECATED #ifndef GTKMM_DISABLE_DEPRECATED /** Sets whether @a action is visible when vertical * * @newin{2,16} * * Deprecated: 3.10: Use Gio::Action instead, and control and monitor the * visibility of associated widgets and menu items directly * * @deprecated Use Gio::Action instead, and control and monitor the visibility of associated widgets and menu items directly. * * @param visible_vertical Whether the action is visible vertically. */ void set_visible_vertical(bool visible_vertical = true); #endif // GTKMM_DISABLE_DEPRECATED #ifndef GTKMM_DISABLE_DEPRECATED /** Checks whether @a action is visible when horizontal * * @newin{2,16} * * Deprecated: 3.10: Use Gio::Action instead, and control and monitor the * visibility of associated widgets and menu items directly * * @deprecated Use Gio::Action instead, and control and monitor the visibility of associated widgets and menu items directly. * * @return Whether @a action is visible when horizontal. */ bool get_visible_vertical() const; #endif // GTKMM_DISABLE_DEPRECATED #ifndef GTKMM_DISABLE_DEPRECATED /** Sets whether the action is important, this attribute is used * primarily by toolbar items to decide whether to show a label * or not. * * @newin{2,16} * * Deprecated: 3.10: Use Gio::Action instead, and control and monitor whether * labels are shown directly * * @deprecated Use Gio::Action instead, and control and monitor whether labels are shown directly. * * @param is_important true to make the action important. */ void set_is_important(bool is_important = true); #endif // GTKMM_DISABLE_DEPRECATED #ifndef GTKMM_DISABLE_DEPRECATED /** Checks whether @a action is important or not * * @newin{2,16} * * Deprecated: 3.10: Use Gio::Action instead, and control and monitor whether * labels are shown directly * * @deprecated Use Gio::Action instead, and control and monitor whether labels are shown directly. * * @return Whether @a action is important. */ bool get_is_important() const; #endif // GTKMM_DISABLE_DEPRECATED #ifndef GTKMM_DISABLE_DEPRECATED /** Sets whether @a action's menu item proxies will ignore the * Gtk::Settings::property_gtk_menu_images() setting and always show their image, if available. * * Use this if the menu item would be useless or hard to use * without their image. * * @newin{2,20} * * Deprecated: 3.10: Use Glib::menu_item_set_icon() on a MenuItem instead, if the * item should have an image * * @deprecated Use Gio::MenuItem::set_icon() on a Gio::MenuItem instead, if the item should have an image. * * @param always_show true if menuitem proxies should always show their image. */ void set_always_show_image(bool always_show = true); #endif // GTKMM_DISABLE_DEPRECATED #ifndef GTKMM_DISABLE_DEPRECATED /** Returns whether @a action's menu item proxies will always * show their image, if available. * * @newin{2,20} * * Deprecated: 3.10: Use Glib::menu_item_get_attribute_value() on a MenuItem * instead * * @deprecated Use Gio::MenuItem::get_attribute_value() on a Gio::MenuItem instead. * * @return true if the menu item proxies will always show their image. */ bool get_always_show_image() const; #endif // GTKMM_DISABLE_DEPRECATED #ifndef GTKMM_DISABLE_DEPRECATED /** Disable activation signals from the action * * This is needed when updating the state of your proxy * Gtk::Activatable widget could result in calling activate(), * this is a convenience function to avoid recursing in those * cases (updating toggle state for instance). * * @newin{2,16} * * Deprecated: 3.10: Use Glib::simple_action_set_enabled() to disable the * SimpleAction instead * * @deprecated Use Gio::SimpleAction::set_enabled() to disable the Gio::SimpleAction instead. */ void block_activate(); #endif // GTKMM_DISABLE_DEPRECATED #ifndef GTKMM_DISABLE_DEPRECATED /** Reenable activation signals from the action * * @newin{2,16} * * Deprecated: 3.10: Use Glib::simple_action_set_enabled() to enable the * SimpleAction instead * * @deprecated Use Gio::SimpleAction::set_enabled() to enable the Gio::SimpleAction instead. */ void unblock_activate(); #endif // GTKMM_DISABLE_DEPRECATED //gtk_action_get_accel_closure() is too C-specific: #ifndef GTKMM_DISABLE_DEPRECATED /** A unique name for the action. * * Deprecated: 3.10: Use Gio::Action::property_name() instead * * @deprecated Use Gio::Action::property_name() instead. * * 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_name() const; #endif // GTKMM_DISABLE_DEPRECATED #ifndef GTKMM_DISABLE_DEPRECATED /** The label used for menu items and buttons that activate * this action. If the label is nullptr, GTK+ uses the stock * label specified via the stock-id property. * * This is an appearance property and thus only applies if * Gtk::Activatable::property_use_action_appearance() is true. * * Deprecated: 3.10: Use the "label" attribute on MenuItem instead * * @deprecated Use the 'label' attribute on Gio::MenuItem instead. * * 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_label() ; /** The label used for menu items and buttons that activate * this action. If the label is nullptr, GTK+ uses the stock * label specified via the stock-id property. * * This is an appearance property and thus only applies if * Gtk::Activatable::property_use_action_appearance() is true. * * Deprecated: 3.10: Use the "label" attribute on MenuItem instead * * @deprecated Use the 'label' attribute on Gio::MenuItem instead. * * 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_label() const; #endif // GTKMM_DISABLE_DEPRECATED #ifndef GTKMM_DISABLE_DEPRECATED /** A shorter label that may be used on toolbar buttons. * * This is an appearance property and thus only applies if * Gtk::Activatable::property_use_action_appearance() is true. * * Deprecated: 3.10: There is no corresponding replacement when using * Gio::Action * * @deprecated There is no corresponding replacement when using Gio::Action. * * 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_short_label() ; /** A shorter label that may be used on toolbar buttons. * * This is an appearance property and thus only applies if * Gtk::Activatable::property_use_action_appearance() is true. * * Deprecated: 3.10: There is no corresponding replacement when using * Gio::Action * * @deprecated There is no corresponding replacement when using Gio::Action. * * 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_short_label() const; #endif // GTKMM_DISABLE_DEPRECATED #ifndef GTKMM_DISABLE_DEPRECATED /** A tooltip for this action. * * Deprecated: 3.10: Use Gtk::Widget::set_tooltip_text() instead * * @deprecated Use Gtk::Widget::set_tooltip_text() and Gtk::Widget::get_tooltip_text() instead. * * 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_tooltip() ; /** A tooltip for this action. * * Deprecated: 3.10: Use Gtk::Widget::set_tooltip_text() instead * * @deprecated Use Gtk::Widget::set_tooltip_text() and Gtk::Widget::get_tooltip_text() instead. * * 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_tooltip() const; #endif // GTKMM_DISABLE_DEPRECATED #ifndef GTKMM_DISABLE_DEPRECATED /** The stock icon displayed in widgets representing this action. * * This is an appearance property and thus only applies if * Gtk::Activatable::property_use_action_appearance() is true. * * Deprecated: 3.10: There is no corresponding replacement when using * Gio::Action * * @deprecated There is no corresponding replacement when using Gio::Action. * * 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< StockID > property_stock_id() ; /** The stock icon displayed in widgets representing this action. * * This is an appearance property and thus only applies if * Gtk::Activatable::property_use_action_appearance() is true. * * Deprecated: 3.10: There is no corresponding replacement when using * Gio::Action * * @deprecated There is no corresponding replacement when using Gio::Action. * * 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< StockID > property_stock_id() const; #endif // GTKMM_DISABLE_DEPRECATED #ifndef GTKMM_DISABLE_DEPRECATED /** The Gio::Icon displayed in the Gtk::Action. * * Note that the stock icon is preferred, if the Gtk::Action::property_stock_id() * property holds the id of an existing stock icon. * * This is an appearance property and thus only applies if * Gtk::Activatable::property_use_action_appearance() is true. * * @newin{2,16} * * Deprecated: 3.10: Use the "icon" attribute on a MenuItem instead * * @deprecated Use the 'icon' attribute on Gio::MenuItem instead. * * @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::RefPtr > property_gicon() ; /** The Gio::Icon displayed in the Gtk::Action. * * Note that the stock icon is preferred, if the Gtk::Action::property_stock_id() * property holds the id of an existing stock icon. * * This is an appearance property and thus only applies if * Gtk::Activatable::property_use_action_appearance() is true. * * @newin{2,16} * * Deprecated: 3.10: Use the "icon" attribute on a MenuItem instead * * @deprecated Use the 'icon' attribute on Gio::MenuItem instead. * * @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::RefPtr > property_gicon() const; #endif // GTKMM_DISABLE_DEPRECATED #ifndef GTKMM_DISABLE_DEPRECATED /** The name of the icon from the icon theme. * * Note that the stock icon is preferred, if the Gtk::Action::property_stock_id() * property holds the id of an existing stock icon, and the Gio::Icon is * preferred if the Gtk::Action::property_gicon() property is set. * * This is an appearance property and thus only applies if * Gtk::Activatable::property_use_action_appearance() is true. * * @newin{2,10} * * Deprecated: 3.10: Use the "icon" attribute on a MenuItem instead * * @deprecated Use the 'icon' attribute on Gio::MenuItem instead. * * 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_icon_name() ; /** The name of the icon from the icon theme. * * Note that the stock icon is preferred, if the Gtk::Action::property_stock_id() * property holds the id of an existing stock icon, and the Gio::Icon is * preferred if the Gtk::Action::property_gicon() property is set. * * This is an appearance property and thus only applies if * Gtk::Activatable::property_use_action_appearance() is true. * * @newin{2,10} * * Deprecated: 3.10: Use the "icon" attribute on a MenuItem instead * * @deprecated Use the 'icon' attribute on Gio::MenuItem instead. * * 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_icon_name() const; #endif // GTKMM_DISABLE_DEPRECATED #ifndef GTKMM_DISABLE_DEPRECATED /** Whether the toolbar item is visible when the toolbar is in a horizontal orientation. * * Deprecated: 3.10: There is no corresponding replacement when using * Gio::Action * * @deprecated There is no corresponding replacement when using Gio::Action. * * Default value: true * * @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_horizontal() ; /** Whether the toolbar item is visible when the toolbar is in a horizontal orientation. * * Deprecated: 3.10: There is no corresponding replacement when using * Gio::Action * * @deprecated There is no corresponding replacement when using Gio::Action. * * Default value: true * * @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_horizontal() const; #endif // GTKMM_DISABLE_DEPRECATED #ifndef GTKMM_DISABLE_DEPRECATED /** Whether the toolbar item is visible when the toolbar is in a vertical orientation. * * Deprecated: 3.10: There is no corresponding replacement when using * Gio::Action * * @deprecated There is no corresponding replacement when using Gio::Action. * * Default value: true * * @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_vertical() ; /** Whether the toolbar item is visible when the toolbar is in a vertical orientation. * * Deprecated: 3.10: There is no corresponding replacement when using * Gio::Action * * @deprecated There is no corresponding replacement when using Gio::Action. * * Default value: true * * @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_vertical() const; #endif // GTKMM_DISABLE_DEPRECATED #ifndef GTKMM_DISABLE_DEPRECATED /** When true, toolitem proxies for this action are represented in the * toolbar overflow menu. * * @newin{2,6} * * Deprecated: 3.10: There is no corresponding replacement when using * Gio::Action * * @deprecated There is no corresponding replacement when using Gio::Action. * * Default value: true * * @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_overflown() ; /** When true, toolitem proxies for this action are represented in the * toolbar overflow menu. * * @newin{2,6} * * Deprecated: 3.10: There is no corresponding replacement when using * Gio::Action * * @deprecated There is no corresponding replacement when using Gio::Action. * * Default value: true * * @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_overflown() const; #endif // GTKMM_DISABLE_DEPRECATED #ifndef GTKMM_DISABLE_DEPRECATED /** Whether the action is considered important. When true, toolitem * proxies for this action show text in GTK_TOOLBAR_BOTH_HORIZ mode. * * Deprecated: 3.10: There is no corresponding replacement when using * Gio::Action * * @deprecated There is no corresponding replacement when using Gio::Action. * * 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_is_important() ; /** Whether the action is considered important. When true, toolitem * proxies for this action show text in GTK_TOOLBAR_BOTH_HORIZ mode. * * Deprecated: 3.10: There is no corresponding replacement when using * Gio::Action * * @deprecated There is no corresponding replacement when using Gio::Action. * * 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_is_important() const; #endif // GTKMM_DISABLE_DEPRECATED #ifndef GTKMM_DISABLE_DEPRECATED /** When true, empty menu proxies for this action are hidden. * * Deprecated: 3.10: There is no corresponding replacement when using * Gio::Action * * @deprecated There is no corresponding replacement when using Gio::Action. * * Default value: true * * @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_hide_if_empty() ; /** When true, empty menu proxies for this action are hidden. * * Deprecated: 3.10: There is no corresponding replacement when using * Gio::Action * * @deprecated There is no corresponding replacement when using Gio::Action. * * Default value: true * * @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_hide_if_empty() const; #endif // GTKMM_DISABLE_DEPRECATED #ifndef GTKMM_DISABLE_DEPRECATED /** Whether the action is enabled. * * Deprecated: 3.10: Use Gio::Action::property_enabled() and SimpleAction::property_enabled() * instead * * @deprecated Use Gio::Action::property_enabled() and Gio::SimpleAction::property_enabled() instead. * * Default value: true * * @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_sensitive() ; /** Whether the action is enabled. * * Deprecated: 3.10: Use Gio::Action::property_enabled() and SimpleAction::property_enabled() * instead * * @deprecated Use Gio::Action::property_enabled() and Gio::SimpleAction::property_enabled() instead. * * Default value: true * * @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_sensitive() const; #endif // GTKMM_DISABLE_DEPRECATED #ifndef GTKMM_DISABLE_DEPRECATED /** Whether the action is visible. * * Deprecated: 3.10: There is no corresponding replacement when using * Gio::Action * * @deprecated There is no corresponding replacement when using Gio::Action. * * Default value: true * * @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 action is visible. * * Deprecated: 3.10: There is no corresponding replacement when using * Gio::Action * * @deprecated There is no corresponding replacement when using Gio::Action. * * Default value: true * * @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; #endif // GTKMM_DISABLE_DEPRECATED #ifndef GTKMM_DISABLE_DEPRECATED /** The GtkActionGroup this GtkAction is associated with, or nullptr * (for internal use). * * Deprecated: 3.10: Lookup the Gio::Action using Glib::action_map_lookup_action() * instead * * @deprecated Lookup the Gio::Action using Gio::ActionMap::lookup_action() instead. * * @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::RefPtr > property_action_group() ; /** The GtkActionGroup this GtkAction is associated with, or nullptr * (for internal use). * * Deprecated: 3.10: Lookup the Gio::Action using Glib::action_map_lookup_action() * instead * * @deprecated Lookup the Gio::Action using Gio::ActionMap::lookup_action() instead. * * @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::RefPtr > property_action_group() const; #endif // GTKMM_DISABLE_DEPRECATED #ifndef GTKMM_DISABLE_DEPRECATED /** If true, the action's menu item proxies will ignore the Gtk::Settings::property_gtk_menu_images() * setting and always show their image, if available. * * Use this property if the menu item would be useless or hard to use * without their image. * * @newin{2,20} * * Deprecated: 3.10: There is no corresponding replacement when using * Gio::Action * * @deprecated There is no corresponding replacement when using Gio::Action. * * 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_always_show_image() ; /** If true, the action's menu item proxies will ignore the Gtk::Settings::property_gtk_menu_images() * setting and always show their image, if available. * * Use this property if the menu item would be useless or hard to use * without their image. * * @newin{2,20} * * Deprecated: 3.10: There is no corresponding replacement when using * Gio::Action * * @deprecated There is no corresponding replacement when using Gio::Action. * * 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_always_show_image() const; #endif // GTKMM_DISABLE_DEPRECATED protected: //Widget-creation routines: virtual Widget* create_menu_item_vfunc(); virtual Widget* create_tool_item_vfunc(); virtual void connect_proxy_vfunc(Widget* proxy); virtual void disconnect_proxy_vfunc(Widget* proxy); 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_activate(). virtual void on_activate(); }; } // 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::Action */ GTKMM_API Glib::RefPtr wrap(GtkAction* object, bool take_copy = false); } #endif /* _GTKMM_ACTION_H */