/* $Id: hypertext.hg,v 1.3 2006/04/12 11:11:24 murrayc Exp $ */

/* Copyright (C) 2003 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., 675 Mass Ave, Cambridge, MA 02139, USA.
 */


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

#include <atkmm/hyperlink.h>

#ifndef DOXYGEN_SHOULD_SKIP_THIS
extern "C"
{
  typedef struct _AtkHypertextIface AtkHypertextIface;
  typedef struct _AtkHypertext      AtkHypertext;
}
#endif /* DOXYGEN_SHOULD_SKIP_THIS */

/** The ATK interface which provides standard mechanism for manipulating hyperlinks.
 */
namespace Atk
{

class ATKMM_API Object;


class ATKMM_API Hypertext : public Glib::Interface
{
  _CLASS_INTERFACE(Hypertext, AtkHypertext, ATK_HYPERTEXT, AtkHypertextIface, , , ATKMM_API)
public:

  _WRAP_METHOD(Glib::RefPtr<Hyperlink> get_link(int link_index), atk_hypertext_get_link)
  _WRAP_METHOD(Glib::RefPtr<const Hyperlink> get_link(int link_index) const, atk_hypertext_get_link, constversion)
  _WRAP_METHOD(int get_n_links() const, atk_hypertext_get_n_links)
  _WRAP_METHOD(int get_link_index(int char_index) const, atk_hypertext_get_link_index)

  _WRAP_SIGNAL(void link_selected(int link_index), "link_selected")

#m4 _CONVERSION(`Glib::RefPtr<Hyperlink>',`AtkHyperlink*',`Glib::unwrap($3)')
  _WRAP_VFUNC(Glib::RefPtr<Hyperlink> get_link(int link_index), get_link)
  _WRAP_VFUNC(int get_n_links() const, get_n_links)
  _WRAP_VFUNC(int get_link_index(int char_index) const, get_link_index)
};

} // namespace Atk

