// Generated by gmmproc 2.66.7 -- DO NOT MODIFY! #ifndef _GTKMM_TOOLBAR_H #define _GTKMM_TOOLBAR_H #include #include #include /* 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 #include #include #include #include #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 GTKMM_API 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 GTKMM_API 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 GTKMM_API 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 GObject. GtkToolbar* gobj() { return reinterpret_cast(gobject_); } /// Provides access to the underlying C GObject. const GtkToolbar* gobj() const { return reinterpret_cast(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& clicked_slot); void insert(ToggleToolButton& item, int pos, const sigc::slot& toggled_slot); void append(ToolItem& item); void append(ToolButton& item, const sigc::slot& clicked_slot); void append(ToggleToolButton& item, const sigc::slot& toggled_slot); void prepend(ToolItem& item); void prepend(ToolButton& item, const sigc::slot& clicked_slot); void prepend(ToggleToolButton& item, const sigc::slot& 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 nullptr 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 nullptr 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 nullptr 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 nullptr 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 true if the toolbar has an overflow menu. */ bool get_show_arrow() const; /** Sets whether to show an overflow menu when @a toolbar isn’t allocated enough * size to show all of its items. If true, items which can’t fit in @a toolbar, * and which have a proxy menu item set by Gtk::ToolItem::set_proxy_menu_item() * or Gtk::ToolItem::signal_create_menu_proxy(), will be available in an overflow menu, * which can be opened by an added arrow button. If false, @a toolbar will * request enough size to fit all of its child items without any overflow. * * @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 nullptr, 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 nullptr 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: * void on_my_%orientation_changed(Orientation orientation) * * 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: * void on_my_%toolbar_style_changed(ToolbarStyle style) * * 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: * bool on_my_%popup_context_menu(int x, int y, int button_number) * * 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 true if the signal was handled, false if not. */ Glib::SignalProxy< bool,int,int,int > signal_popup_context_menu(); /** How to draw the toolbar. * * Default value: Gtk::TOOLBAR_BOTH_HORIZ * * @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. * * Default value: Gtk::TOOLBAR_BOTH_HORIZ * * @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. * * 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_show_arrow() ; /** If an arrow should be shown if the toolbar doesn't fit. * * 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_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} * * Default value: Gtk::ICON_SIZE_LARGE_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< 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} * * Default value: Gtk::ICON_SIZE_LARGE_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< IconSize > property_icon_size() const; /** Is true if the icon-size property has been set. * * @newin{2,10} * * 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_icon_size_set() ; /** Is true if the icon-size property has been set. * * @newin{2,10} * * 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_icon_size_set() const; /** Whether the item should receive extra space when the toolbar grows. * * Default value: false * * @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. * * Default value: false * * @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. * * Default value: false * * @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. * * Default value: false * * @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 */ GTKMM_API Gtk::Toolbar* wrap(GtkToolbar* object, bool take_copy = false); } //namespace Glib #endif /* _GTKMM_TOOLBAR_H */