// Generated by gmmproc 2.84.0 -- DO NOT MODIFY!
#ifndef _GTKMM_REQUISITION_H
#define _GTKMM_REQUISITION_H

#include <gtkmmconfig.h>


#include <glibmm/ustring.h>
#include <sigc++/sigc++.h>

/* Copyright (C) 2010 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/>.
 */


#include <glibmm/value.h>
#include <gtk/gtk.h>


namespace Gtk
{

/** A %Gtk::Requisition represents the desired size of a widget.
 */
class GTKMM_API Requisition
{
  public:
#ifndef DOXYGEN_SHOULD_SKIP_THIS
  using CppObjectType = Requisition;
  using BaseObjectType = GtkRequisition;
#endif /* DOXYGEN_SHOULD_SKIP_THIS */

  Requisition(const Requisition& other) noexcept;
  Requisition& operator=(const Requisition& other) noexcept;

  Requisition(Requisition&& other) noexcept;
  Requisition& operator=(Requisition&& other) noexcept;

  /** Get the GType for this class, for use with the underlying GObject type system.
   */
  static GType get_type() G_GNUC_CONST;

  Requisition();

  explicit Requisition(const GtkRequisition* gobject); // always takes a copy

  ///Provides access to the underlying C instance.
  GtkRequisition*       gobj()       { return &gobject_; }

  ///Provides access to the underlying C instance.
  const GtkRequisition* gobj() const { return &gobject_; }

protected:
  GtkRequisition gobject_;

private:
  
public:

  /** Creates a new requisition instance with this size.
   */
  Requisition(int width, int height);

  int get_width() const;
  void set_width(const int& value);
  int get_height() const;
  void set_height(const int& value);


};

} // namespace Gtk


namespace Glib
{

/** @relates Gtk::Requisition
 * @param object The C instance
 * @result A C++ instance that wraps this C instance.
 */
GTKMM_API
Gtk::Requisition& wrap(GtkRequisition* object);

/** @relates Gtk::Requisition
 * @param object The C instance
 * @result A C++ instance that wraps this C instance.
 */
GTKMM_API
const Gtk::Requisition& wrap(const GtkRequisition* object);

#ifndef DOXYGEN_SHOULD_SKIP_THIS
template <>
class GTKMM_API Value<Gtk::Requisition> : public Glib::Value_Boxed<Gtk::Requisition>
{};
#endif /* DOXYGEN_SHOULD_SKIP_THIS */

} // namespace Glib


#endif /* _GTKMM_REQUISITION_H */

