// Generated by gmmproc 2.54.0 -- DO NOT MODIFY!
#ifndef _GTKMM_TOOLBAR_H
#define _GTKMM_TOOLBAR_H
#include <gtkmmconfig.h>
#include <glibmm/ustring.h>
#include <sigc++/sigc++.h>
/* Copyright (C) 1998-2002 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
*/
// This is for including the config header before any code (such as
// the #ifndef GTKMM_DISABLE_DEPRECATED in deprecated classes) is generated:
#include <gtkmm/toolshell.h>
#include <gtkmm/toolitem.h>
#include <gtkmm/toolbutton.h>
#include <gtkmm/toggletoolbutton.h>
#include <gtkmm/container.h>
#ifndef DOXYGEN_SHOULD_SKIP_THIS
using GtkToolbar = struct _GtkToolbar;
using GtkToolbarClass = struct _GtkToolbarClass;
#endif /* DOXYGEN_SHOULD_SKIP_THIS */
#ifndef DOXYGEN_SHOULD_SKIP_THIS
namespace Gtk
{ class Toolbar_Class; } // namespace Gtk
#endif //DOXYGEN_SHOULD_SKIP_THIS
namespace Gtk
{
//TODO: Derive from Toolshell when we can break ABI.
/** Bars of buttons and other widgets.
* @ingroup Widgets
* @ingroup Containers
* @ingroup Toolbars
*/
class Toolbar
: public Container,
public ToolShell
{
public:
#ifndef DOXYGEN_SHOULD_SKIP_THIS
typedef Toolbar CppObjectType;
typedef Toolbar_Class CppClassType;
typedef GtkToolbar BaseObjectType;
typedef GtkToolbarClass BaseClassType;
#endif /* DOXYGEN_SHOULD_SKIP_THIS */
Toolbar(Toolbar&& src) noexcept;
Toolbar& operator=(Toolbar&& src) noexcept;
// noncopyable
Toolbar(const Toolbar&) = delete;
Toolbar& operator=(const Toolbar&) = delete;
~Toolbar() noexcept override;
#ifndef DOXYGEN_SHOULD_SKIP_THIS
private:
friend class Toolbar_Class;
static CppClassType toolbar_class_;
protected:
explicit Toolbar(const Glib::ConstructParams& construct_params);
explicit Toolbar(GtkToolbar* castitem);
#endif /* DOXYGEN_SHOULD_SKIP_THIS */
public:
/** 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 GtkObject.
GtkToolbar* gobj() { return reinterpret_cast<GtkToolbar*>(gobject_); }
///Provides access to the underlying C GtkObject.
const GtkToolbar* gobj() const { return reinterpret_cast<GtkToolbar*>(gobject_); }
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_orientation_changed().
virtual void on_orientation_changed(Orientation orientation);
/// This is a default handler for the signal signal_toolbar_style_changed().
virtual void on_toolbar_style_changed(ToolbarStyle style);
/// This is a default handler for the signal signal_popup_context_menu().
virtual bool on_popup_context_menu(int x, int y, int button_number);
private:
public:
Toolbar();
/** Insert a Gtk::ToolItem into the toolbar at position @a pos. If @a pos is
* 0 the item is prepended to the start of the toolbar. If @a pos is
* negative, the item is appended to the end of the toolbar.
*
* @newin{2,4}
*
* @param item A Gtk::ToolItem.
* @param pos The position of the new item.
*/
void insert(ToolItem& item, int pos);
void insert(ToolButton& item, int pos, const sigc::slot<void>& clicked_slot);
void insert(ToggleToolButton& item, int pos, const sigc::slot<void>& toggled_slot);
void append(ToolItem& item);
void append(ToolButton& item, const sigc::slot<void>& clicked_slot);
void append(ToggleToolButton& item, const sigc::slot<void>& toggled_slot);
void prepend(ToolItem& item);
void prepend(ToolButton& item, const sigc::slot<void>& clicked_slot);
void prepend(ToggleToolButton& item, const sigc::slot<void>& toggled_slot);
/** Returns the position of @a item on the toolbar, starting from 0.
* It is an error if @a item is not a child of the toolbar.
*
* @newin{2,4}
*
* @param item A Gtk::ToolItem that is a child of @a toolbar.
* @return The position of item on the toolbar.
*/
int get_item_index(const ToolItem& item) const;
/** Returns the number of items on the toolbar.
*
* @newin{2,4}
*
* @return The number of items on the toolbar.
*/
int get_n_items() const;
/** Returns the @a n'th item on @a toolbar, or <tt>nullptr</tt> if the
* toolbar does not contain an @a n'th item.
*
* @newin{2,4}
*
* @param n A position on the toolbar.
* @return The @a n'th Gtk::ToolItem on @a toolbar,
* or <tt>nullptr</tt> if there isn’t an @a n'th item.
*/
ToolItem* get_nth_item(int n);
/** Returns the @a n'th item on @a toolbar, or <tt>nullptr</tt> if the
* toolbar does not contain an @a n'th item.
*
* @newin{2,4}
*
* @param n A position on the toolbar.
* @return The @a n'th Gtk::ToolItem on @a toolbar,
* or <tt>nullptr</tt> if there isn’t an @a n'th item.
*/
const ToolItem* get_nth_item(int n) const;
/** Returns whether the toolbar has an overflow menu.
* See set_show_arrow().
*
* @newin{2,4}
*
* @return <tt>true</tt> if the toolbar has an overflow menu.
*/
bool get_show_arrow() const;
/** Sets whether to show an overflow menu when
* @a toolbar doesn’t have room for all items on it. If <tt>true</tt>,
* items that there are not room are available through an
* overflow menu.
*
* @newin{2,4}
*
* @param show_arrow Whether to show an overflow menu.
*/
void set_show_arrow(bool show_arrow = true);
/* Style methods */
/** Alters the view of @a toolbar to display either icons only, text only, or both.
*
* @param style The new style for @a toolbar.
*/
void set_toolbar_style(ToolbarStyle style);
/** Retrieves whether the toolbar has text, icons, or both . See
* set_style().
*
* @return The current style of @a toolbar.
*/
ToolbarStyle get_toolbar_style() const;
/** Unsets a toolbar style set with set_style(), so that
* user preferences will be used to determine the toolbar style.
*/
void unset_toolbar_style();
//Note that gtk_toolbar_set_icon_size() and gtk_toolbar_unset_icon_size() were
//deprecated sometime before GTK+ 2.4, but were undeprecated in GTK+ 2.12.
/** This function sets the size of stock icons in the toolbar. You
* can call it both before you add the icons and after they’ve been
* added. The size you set will override user preferences for the default
* icon size.
*
* This should only be used for special-purpose toolbars, normal
* application toolbars should respect the user preferences for the
* size of icons.
*
* @param icon_size The Gtk::IconSize that stock icons in the toolbar shall have.
*/
void set_icon_size(IconSize icon_size);
/** Unsets toolbar icon size set with set_icon_size(), so that
* user preferences will be used to determine the icon size.
*/
void unset_icon_size();
/** Retrieves the icon size for the toolbar. See set_icon_size().
*
* @return The current icon size for the icons on the toolbar.
*/
IconSize get_icon_size() const;
/** Returns the relief style of buttons on @a toolbar. See
* Gtk::Button::set_relief().
*
* @newin{2,4}
*
* @return The relief style of buttons on @a toolbar.
*/
ReliefStyle get_relief_style() const;
/** Returns the position corresponding to the indicated point on
* @a toolbar. This is useful when dragging items to the toolbar:
* this function returns the position a new item should be
* inserted.
*
* @a x and @a y are in @a toolbar coordinates.
*
* @newin{2,4}
*
* @param x X coordinate of a point on the toolbar.
* @param y Y coordinate of a point on the toolbar.
* @return The position corresponding to the point ( @a x, @a y) on the toolbar.
*/
int get_drop_index(int x, int y) const;
/** Highlights @a toolbar to give an idea of what it would look like
* if @a item was added to @a toolbar at the position indicated by @a index.
* If @a item is <tt>nullptr</tt>, highlighting is turned off. In that case @a index
* is ignored.
*
* The @a tool_item passed to this function must not be part of any widget
* hierarchy. When an item is set as drop highlight item it can not
* added to any widget hierarchy or used as highlight item for another
* toolbar.
*
* @newin{2,4}
*
* @param tool_item A Gtk::ToolItem, or <tt>nullptr</tt> to turn of highlighting.
* @param index A position on @a toolbar.
*/
void set_drop_highlight_item(ToolItem& tool_item, int index);
void unset_drop_highlight_item();
/**
* @par Slot Prototype:
* <tt>void on_my_%orientation_changed(Orientation orientation)</tt>
*
* Flags: Run First
*
* Emitted when the orientation of the toolbar changes.
*
* @param orientation The new Gtk::Orientation of the toolbar.
*/
Glib::SignalProxy< void,Orientation > signal_orientation_changed();
/**
* @par Slot Prototype:
* <tt>void on_my_%toolbar_style_changed(ToolbarStyle style)</tt>
*
* Flags: Run First
*
* Emitted when the style of the toolbar changes.
*
* @param style The new Gtk::ToolbarStyle of the toolbar.
*/
Glib::SignalProxy< void,ToolbarStyle > signal_toolbar_style_changed();
/**
* @par Slot Prototype:
* <tt>bool on_my_%popup_context_menu(int x, int y, int button_number)</tt>
*
* Flags: Run Last
*
* Emitted when the user right-clicks the toolbar or uses the
* keybinding to display a popup menu.
*
* Application developers should handle this signal if they want
* to display a context menu on the toolbar. The context-menu should
* appear at the coordinates given by @a x and @a y. The mouse button
* number is given by the @a button_number parameter. If the menu was popped
* up using the keybaord, @a button_number is -1.
*
* @param x The x coordinate of the point where the menu should appear.
* @param y The y coordinate of the point where the menu should appear.
* @param button_number The mouse button the user pressed, or -1.
* @return Return <tt>true</tt> if the signal was handled, <tt>false</tt> if not.
*/
Glib::SignalProxy< bool,int,int,int > signal_popup_context_menu();
/** How to draw the toolbar.
*
* @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< ToolbarStyle > property_toolbar_style() ;
/** How to draw the toolbar.
*
* @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< ToolbarStyle > property_toolbar_style() const;
/** If an arrow should be shown if the toolbar doesn't fit.
*
* @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_show_arrow() ;
/** If an arrow should be shown if the toolbar doesn't fit.
*
* @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_show_arrow() const;
/** The size of the icons in a toolbar is normally determined by
* the toolbar-icon-size setting. When this property is set, it
* overrides the setting.
*
* This should only be used for special-purpose toolbars, normal
* application toolbars should respect the user preferences for the
* size of icons.
*
* @newin{2,10}
*
* @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< IconSize > property_icon_size() ;
/** The size of the icons in a toolbar is normally determined by
* the toolbar-icon-size setting. When this property is set, it
* overrides the setting.
*
* This should only be used for special-purpose toolbars, normal
* application toolbars should respect the user preferences for the
* size of icons.
*
* @newin{2,10}
*
* @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< IconSize > property_icon_size() const;
/** Is <tt>true</tt> if the icon-size property has been set.
*
* @newin{2,10}
*
* @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_icon_size_set() ;
/** Is <tt>true</tt> if the icon-size property has been set.
*
* @newin{2,10}
*
* @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_icon_size_set() const;
/** Whether the item should receive extra space when the toolbar grows.
*
* @return A ChildPropertyProxy that allows you to get or set the value of the property,
* or receive notification when the value of the property changes.
*/
Gtk::ChildPropertyProxy< bool > child_property_expand(Gtk::Widget& child) ;
/** Whether the item should receive extra space when the toolbar grows.
*
* @return A ChildPropertyProxy_ReadOnly that allows you to get the value of the property,
* or receive notification when the value of the property changes.
*/
Gtk::ChildPropertyProxy_ReadOnly< bool > child_property_expand(const Gtk::Widget& child) const;
/** Whether the item should be the same size as other homogeneous items.
*
* @return A ChildPropertyProxy that allows you to get or set the value of the property,
* or receive notification when the value of the property changes.
*/
Gtk::ChildPropertyProxy< bool > child_property_homogeneous(Gtk::Widget& child) ;
/** Whether the item should be the same size as other homogeneous items.
*
* @return A ChildPropertyProxy_ReadOnly that allows you to get the value of the property,
* or receive notification when the value of the property changes.
*/
Gtk::ChildPropertyProxy_ReadOnly< bool > child_property_homogeneous(const Gtk::Widget& child) const;
};
} // 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::Toolbar
*/
Gtk::Toolbar* wrap(GtkToolbar* object, bool take_copy = false);
} //namespace Glib
#endif /* _GTKMM_TOOLBAR_H */