/* Copyright (C) 2016 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, see <http://www.gnu.org/licenses/>.
 */

#include <gtkmm/box.h>

_DEFS(gtkmm,gtk)
_PINCLUDE(gtkmm/private/box_p.h)

namespace Gtk
{

class ShortcutsShortcut;

/** Represents a group of shortcuts in a ShortcutsWindow.
 *
 * A ShortcutsGroup represents a group of related keyboard shortcuts
 * or gestures. The group has a title. It may optionally be associated with
 * a view of the application, which can be used to show only relevant shortcuts
 * depending on the application context.
 *
 * This widget is only meant to be used with ShortcutsWindow.
 *
 * @newin{3,20}
 *
 * @ingroup Widgets
 */
class GTKMM_API ShortcutsGroup : public Box
{
  _CLASS_GTKOBJECT(ShortcutsGroup, GtkShortcutsGroup, GTK_SHORTCUTS_GROUP, Box, GtkBox, , , GTKMM_API)

public:
  _CTOR_DEFAULT

  _WRAP_METHOD(void add_shortcut(ShortcutsShortcut& shortcut), gtk_shortcuts_group_add_shortcut)

  /** Unsets the property_view() of this shortcuts group.
   * The group will then always be visible, regardless of the value of
   * Gtk::ShortcutsWindow::property_view_name().
   *
   * This is a convenience method that calls property_view().reset_value().
   */
  void unset_view();

  _WRAP_PROPERTY("title", Glib::ustring)
  _WRAP_PROPERTY("view", Glib::ustring)
  _IGNORE_PROPERTY("accel-size-group", "title-size-group", "height")dnl// Internal properties
};

} // namespace Gtk
