533 lines
18 KiB
C
533 lines
18 KiB
C
|
// -*- 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 */
|
||
|
|