/* 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, see <https://www.gnu.org/licenses/>.
 */
 
#include <atkmm/object.h>

_DEFS(atkmm,atk)
_PINCLUDE(atkmm/private/object_p.h)

namespace Atk
{

/** This object class is derived from AtkObject and can be used as a basis implementing accessible objects.
 * This can be used as a basis for implementing accessible objects for Glib::Objects which are not derived from
 * Gtk::Widget. One example of its use is in providing an accessible object for GnomeCanvasItem in the GAIL library.
 */
class ATKMM_API ObjectAccessible : public Atk::Object
{
   _CLASS_GOBJECT(ObjectAccessible, AtkGObjectAccessible, ATK_GOBJECT_ACCESSIBLE, Atk::Object, AtkObject, , , ATKMM_API)
protected:

  _WRAP_METHOD(Glib::RefPtr<Glib::Object> get_object(), atk_gobject_accessible_get_object, refreturn)
  _WRAP_METHOD(Glib::RefPtr<const Glib::Object> get_object() const, atk_gobject_accessible_get_object, refreturn, constversion)

  _WRAP_METHOD(static Glib::RefPtr<Atk::Object> for_object(const Glib::RefPtr<Glib::Object>& obj), atk_gobject_accessible_for_object, refreturn)
  _WRAP_METHOD(static Glib::RefPtr<const Atk::Object> for_object(const Glib::RefPtr<const Glib::Object>& obj), atk_gobject_accessible_for_object, refreturn)
};

} // namespace Atk
