/* Copyright (C) 1998-2011 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
 */

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

#m4 _PUSH(SECTION_CC_PRE_INCLUDES)
#undef GTK_DISABLE_DEPRECATED
#define GDK_DISABLE_DEPRECATION_WARNINGS 1
#m4 _POP()

#include <gtkmm/box.h>

namespace Gtk
{

/** Vertical Box for laying widgets in a vertical row.
 *
 * You should create these objects, but it is more comfortable to pass
 * around pointers of Gtk::Box. All the methods that do anything are in
 * class Gtk::Box and this allows you to later change the direction of the
 * box, when there's no dependencies to HBox and VBox classes.
 *
 * @ingroup Widgets
 * @ingroup Containers
 *
 * @deprecated Use Box instead, which is a very quick and easy change. But we recommend switching to Grid, since
 * Box will go away eventually.
 */
class VBox : public Box
{
  _CLASS_GTKOBJECT(VBox,GtkVBox,GTK_VBOX,Gtk::Box,GtkBox)
  //TODO: Do this when we can stop using this as a base class elsewhere, when we break ABI: _IS_DEPRECATED
public:

  //TODO: Remove the homogoenous parameter as it was removed in gtk_box_new().
  /** Creates a new vertical box.
   * @param spacing Determines the space in pixels between child widgets.
   */
  _WRAP_CTOR(VBox(bool homogeneous = false, int spacing = 0), gtk_vbox_new)
};

/** Horizontal Box for laying widgets in a horizontal row.
 *
 * You should create these objects, but it is more comfortable to pass
 * around pointers of Gtk::Box. All the methods that do anything are in
 * class Gtk::Box and this allows you to later change the direction of the
 * box, when there's no dependencies to HBox and VBox classes.
 *
 * Use the Gtk::Box packing interface to determine the arrangement, spacing,
 * width, and alignment of Gtk::HBox children.
 *
 * All children are allocated the same height.
 *
 * @ingroup Widgets
 * @ingroup Containers
 *
 * @deprecated Use Box instead, which is a very quick and easy change. But we recommend switching to Grid, since
 * Box will go away eventually.
 */
class HBox : public Box
{
  _CLASS_GTKOBJECT(HBox,GtkHBox,GTK_HBOX,Gtk::Box,GtkBox)
  //TODO: Do this when we can stop using this as a base class elsewhere, when we break ABI: _IS_DEPRECATED
public:

  //TODO: Remove the homogoenous parameter as it was removed in gtk_box_new().
  /** Creates a new horizontal box.
   * @param spacing Determines the space in pixels between child widgets.
   */
  _WRAP_CTOR(HBox(bool homogeneous = false, int spacing = 0), gtk_hbox_new)

};

} // namespace Gtk
