diff options
Diffstat (limited to 'libs/gtkmm2/gtk/gtkmm/action.h')
-rw-r--r-- | libs/gtkmm2/gtk/gtkmm/action.h | 532 |
1 files changed, 532 insertions, 0 deletions
diff --git a/libs/gtkmm2/gtk/gtkmm/action.h b/libs/gtkmm2/gtk/gtkmm/action.h new file mode 100644 index 0000000000..6c319c769a --- /dev/null +++ b/libs/gtkmm2/gtk/gtkmm/action.h @@ -0,0 +1,532 @@ +// -*- c++ -*- +// Generated by gtkmmproc -- DO NOT MODIFY! +#ifndef _GTKMM_ACTION_H +#define _GTKMM_ACTION_H + +#include <glibmm.h> + +/* $Id$ */ + +/* 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 Library General Public + * License as published by the Free Software Foundation; either + * version 2 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 + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the Free + * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#include <gtkmm/widget.h> +#include <gtkmm/accelgroup.h> +#include <gtkmm/stockid.h> + + +#ifndef DOXYGEN_SHOULD_SKIP_THIS +typedef struct _GtkAction GtkAction; +typedef struct _GtkActionClass GtkActionClass; +#endif /* DOXYGEN_SHOULD_SKIP_THIS */ + + +namespace Gtk +{ class Action_Class; } // namespace Gtk +namespace Gtk +{ + +class MenuItem; +class ToolItem; +class Image; + + +class Action : public Glib::Object +{ + +#ifndef DOXYGEN_SHOULD_SKIP_THIS + +public: + typedef Action CppObjectType; + typedef Action_Class CppClassType; + typedef GtkAction BaseObjectType; + typedef GtkActionClass BaseClassType; + +private: friend class Action_Class; + static CppClassType action_class_; + +private: + // noncopyable + Action(const Action&); + Action& operator=(const Action&); + +protected: + explicit Action(const Glib::ConstructParams& construct_params); + explicit Action(GtkAction* castitem); + +#endif /* DOXYGEN_SHOULD_SKIP_THIS */ + +public: + virtual ~Action(); + +#ifndef DOXYGEN_SHOULD_SKIP_THIS + static GType get_type() G_GNUC_CONST; + static GType get_base_type() G_GNUC_CONST; +#endif + + ///Provides access to the underlying C GObject. + GtkAction* gobj() { return reinterpret_cast<GtkAction*>(gobject_); } + + ///Provides access to the underlying C GObject. + const GtkAction* gobj() const { return reinterpret_cast<GtkAction*>(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: + Action(); + explicit Action(const Glib::ustring& name, const StockID& stock_id, const Glib::ustring& label = Glib::ustring(), const Glib::ustring& tooltip = Glib::ustring()); + +public: + + static Glib::RefPtr<Action> create(); + + static Glib::RefPtr<Action> create(const Glib::ustring& name, const Glib::ustring& label = Glib::ustring(), const Glib::ustring& tooltip = Glib::ustring()); + static Glib::RefPtr<Action> create(const Glib::ustring& name, const Gtk::StockID& stock_id, const Glib::ustring& label = Glib::ustring(), const Glib::ustring& tooltip = Glib::ustring()); + + + /** Returns the name of the action. + * @return The name of the action. The string belongs to GTK+ and should not + * be freed. + * + * Since: 2.4. + */ + Glib::ustring get_name() const; + + + /** Returns whether the action is effectively sensitive. + * @return <tt>true</tt> if the action and its associated action group + * are both sensitive. + * + * Since: 2.4. + */ + bool is_sensitive() const; + + /** Returns whether the action itself is sensitive. Note that this doesn't + * necessarily mean effective sensitivity. See is_sensitive() + * for that. + * @return <tt>true</tt> if the action itself is sensitive. + * + * Since: 2.4. + */ + bool get_sensitive() const; + + //TODO: Just wrap gtk_action_set_sensitive() when they put it in GTK+. + void set_tooltip(const Glib::ustring& tooltip); + + + /** Sets the ::sensitive property of the action to @a sensitive . Note that + * this doesn't necessarily mean effective sensitivity. See + * is_sensitive() + * for that. + * + * Since: 2.6 + * @param sensitive <tt>true</tt> to make the action sensitive. + */ + void set_sensitive(bool sensitive = true); + + + /** Returns whether the action is effectively visible. + * @return <tt>true</tt> if the action and its associated action group + * are both visible. + * + * Since: 2.4. + */ + bool is_visible() const; + + /** Returns whether the action itself is visible. Note that this doesn't + * necessarily mean effective visibility. See is_sensitive() + * for that. + * @return <tt>true</tt> if the action itself is visible. + * + * Since: 2.4. + */ + bool get_visible() const; + + /** Sets the ::visible property of the action to @a visible . Note that + * this doesn't necessarily mean effective visibility. See + * is_visible() + * for that. + * + * Since: 2.6 + * @param visible <tt>true</tt> to make the action visible. + */ + void set_visible(bool visible = true); + + + /** 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. + * + * Since: 2.4 + */ + void activate(); + + /** This function is intended for use by action implementations to + * create icons displayed in the proxy widgets. + * @param icon_size The size of the icon that should be created. + * @return A widget that displays the icon for this action. + * + * Since: 2.4. + */ + Image* create_icon(IconSize icon_size); + + /** Creates a menu item widget that proxies for the given action. + * @return A menu item connected to the action. + * + * Since: 2.4. + */ + MenuItem* create_menu_item(); + + /** Creates a toolbar item widget that proxies for the given action. + * @return A toolbar item connected to the action. + * + * Since: 2.4. + */ + ToolItem* create_tool_item(); + + /** Connects a widget to an action object as a proxy. Synchronises + * various properties of the action with the widget (such as label + * text, icon, tooltip, etc), and attaches a callback so that the + * action gets activated when the proxy widget does. + * + * If the widget is already connected to an action, it is disconnected + * first. + * + * Since: 2.4 + * @param proxy The proxy widget. + */ + void connect_proxy(Widget& proxy); + + /** Disconnects a proxy widget from an action. + * Does <em>not</em> destroy the widget, however. + * + * Since: 2.4 + * @param proxy The proxy widget. + */ + void disconnect_proxy(Widget& proxy); + + /** Returns the proxy widgets for an action. + * @return A G::SList of proxy widgets. The list is owned by the action and + * must not be modified. + * + * Since: 2.4. + */ + Glib::SListHandle<Widget*> get_proxies(); + + /** Returns the proxy widgets for an action. + * @return A G::SList of proxy widgets. The list is owned by the action and + * must not be modified. + * + * Since: 2.4. + */ + Glib::SListHandle<const Widget*> get_proxies() const; + + /** 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. + * + * Since: 2.4 + */ + void connect_accelerator(); + + /** Undoes the effect of one call to connect_accelerator(). + * + * Since: 2.4 + */ + void disconnect_accelerator(); + + + /** Returns the accel path for this action. + * + * Since: 2.6 + * @return The accel path for this action, or <tt>0</tt> + * if none is set. The returned string is owned by GTK+ + * and must not be freed or modified. + */ + Glib::ustring get_accel_path() const; + + /// For instance, void on_activate(); + typedef sigc::slot<void> SlotActivate; + + + Glib::SignalProxy0< void > signal_activate(); + + + //Used by AccelGroup: + + /** 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. + * + * Since: 2.4 + * @param accel_path The accelerator path. + */ + void set_accel_path(const Glib::ustring& accel_path); + + /** Sets the Gtk::AccelGroup in which the accelerator for this action + * will be installed. + * + * Since: 2.4 + * @param accel_group A Gtk::AccelGroup or <tt>0</tt>. + */ + void set_accel_group(const Glib::RefPtr<AccelGroup>& accel_group); + + /** A unique name for the action. + * + * You rarely need to use properties because there are get_ and set_ methods for almost all of them. + * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when + * the value of the property changes. + */ + Glib::PropertyProxy_ReadOnly<Glib::ustring> property_name() const; + + + /** The label used for menu items and buttons that activate this action. + * + * You rarely need to use properties because there are get_ and set_ methods for almost all of them. + * @return A PropertyProxy that allows you to get or set the property of the value, 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. + * + * You rarely need to use properties because there are get_ and set_ methods for almost all of them. + * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when + * the value of the property changes. + */ + Glib::PropertyProxy_ReadOnly<Glib::ustring> property_label() const; + + /** A shorter label that may be used on toolbar buttons. + * + * You rarely need to use properties because there are get_ and set_ methods for almost all of them. + * @return A PropertyProxy that allows you to get or set the property of the value, 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. + * + * You rarely need to use properties because there are get_ and set_ methods for almost all of them. + * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when + * the value of the property changes. + */ + Glib::PropertyProxy_ReadOnly<Glib::ustring> property_short_label() const; + + /** A tooltip for this action. + * + * You rarely need to use properties because there are get_ and set_ methods for almost all of them. + * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when + * the value of the property changes. + */ + Glib::PropertyProxy<Glib::ustring> property_tooltip() ; + +/** A tooltip for this action. + * + * You rarely need to use properties because there are get_ and set_ methods for almost all of them. + * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when + * the value of the property changes. + */ + Glib::PropertyProxy_ReadOnly<Glib::ustring> property_tooltip() const; + + /** The stock icon displayed in widgets representing this action. + * + * You rarely need to use properties because there are get_ and set_ methods for almost all of them. + * @return A PropertyProxy that allows you to get or set the property of the value, 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. + * + * You rarely need to use properties because there are get_ and set_ methods for almost all of them. + * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when + * the value of the property changes. + */ + Glib::PropertyProxy_ReadOnly<StockID> property_stock_id() const; + + /** Whether the toolbar item is visible when the toolbar is in a horizontal orientation. + * + * You rarely need to use properties because there are get_ and set_ methods for almost all of them. + * @return A PropertyProxy that allows you to get or set the property of the value, 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. + * + * You rarely need to use properties because there are get_ and set_ methods for almost all of them. + * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when + * the value of the property changes. + */ + Glib::PropertyProxy_ReadOnly<bool> property_visible_horizontal() const; + + /** Whether the toolbar item is visible when the toolbar is in a vertical orientation. + * + * You rarely need to use properties because there are get_ and set_ methods for almost all of them. + * @return A PropertyProxy that allows you to get or set the property of the value, 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. + * + * You rarely need to use properties because there are get_ and set_ methods for almost all of them. + * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when + * the value of the property changes. + */ + Glib::PropertyProxy_ReadOnly<bool> property_visible_vertical() const; + + /** Whether the action is considered important. When TRUE + * + * You rarely need to use properties because there are get_ and set_ methods for almost all of them. + * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when + * the value of the property changes. + */ + Glib::PropertyProxy<bool> property_is_important() ; + +/** Whether the action is considered important. When TRUE + * + * You rarely need to use properties because there are get_ and set_ methods for almost all of them. + * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when + * the value of the property changes. + */ + Glib::PropertyProxy_ReadOnly<bool> property_is_important() const; + + /** When TRUE + * + * You rarely need to use properties because there are get_ and set_ methods for almost all of them. + * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when + * the value of the property changes. + */ + Glib::PropertyProxy<bool> property_hide_if_empty() ; + +/** When TRUE + * + * You rarely need to use properties because there are get_ and set_ methods for almost all of them. + * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when + * the value of the property changes. + */ + Glib::PropertyProxy_ReadOnly<bool> property_hide_if_empty() const; + + /** Whether the action is enabled. + * + * You rarely need to use properties because there are get_ and set_ methods for almost all of them. + * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when + * the value of the property changes. + */ + Glib::PropertyProxy<bool> property_sensitive() ; + +/** Whether the action is enabled. + * + * You rarely need to use properties because there are get_ and set_ methods for almost all of them. + * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when + * the value of the property changes. + */ + Glib::PropertyProxy_ReadOnly<bool> property_sensitive() const; + + /** Whether the action is visible. + * + * You rarely need to use properties because there are get_ and set_ methods for almost all of them. + * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when + * the value of the property changes. + */ + Glib::PropertyProxy<bool> property_visible() ; + +/** Whether the action is visible. + * + * You rarely need to use properties because there are get_ and set_ methods for almost all of them. + * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when + * the value of the property changes. + */ + Glib::PropertyProxy_ReadOnly<bool> property_visible() const; + + +protected: + //For use by child actions: + + /** Disables calls to the activate() + * function by signals on the given proxy widget. This is used to + * break notification loops for things like check or radio actions. + * + * This function is intended for use by action implementations. + * + * Since: 2.4 + * @param proxy A proxy widget. + */ + void block_activate_from(Widget& proxy); + + /** Re-enables calls to the activate() + * function by signals on the given proxy widget. This undoes the + * blocking done by block_activate_from(). + * + * This function is intended for use by action implementations. + * + * Since: 2.4 + * @param proxy A proxy widget. + */ + void unblock_activate_from(Widget& proxy); + + +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:: + virtual void on_activate(); + + +}; + +} // namespace Gtk + + +namespace Glib +{ + /** @relates Gtk::Action + * @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. + */ + Glib::RefPtr<Gtk::Action> wrap(GtkAction* object, bool take_copy = false); +} + + +#endif /* _GTKMM_ACTION_H */ + |