/* Copyright (C) 2009 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 <https://www.gnu.org/licenses/>.
 */

_CONFIGINCLUDE(gtkmmconfig.h)

_DEFS(gtkmm,gtk)

#include <glibmm/value.h>

namespace Gtk
{
//TODO: When we can break ABI, _CLASS_BOXEDTYPE -> _CLASS_BOXEDTYPE_STATIC.
// https://gitlab.gnome.org/GNOME/gtkmm/-/issues/155

/** This specifies a border around a rectangular area that can be of a different width on each side.
 */
class GTKMM_API Border
{
  _CLASS_BOXEDTYPE(Border, GtkBorder, gtk_border_new, gtk_border_copy, gtk_border_free, GTKMM_API)
public:

  /** Get the width of the left border.
   */
  _MEMBER_GET(left, left, int, gint)

  /** Set the width of the left border.
   */
  _MEMBER_SET(left, left, int, gint)

  /** Get the width of the right border.
   */
  _MEMBER_GET(right, right, int, gint)

  /** Set the width of the right border.
   */
  _MEMBER_SET(right, right, int, gint)

  /** Get the width of the top border.
   */
  _MEMBER_GET(top, top, int, gint)

  /** Set the width of the top border.
   */
  _MEMBER_SET(top, top, int, gint)

  /** Get the width of the bottom border.
   */
  _MEMBER_GET(bottom, bottom, int, gint)

  /** Set the width of the bottom border.
   */
  _MEMBER_SET(bottom, bottom, int, gint)
};

} //namespace Gtk
