您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 
 
 
 

107 行
3.9 KiB

  1. /* ATK - Accessibility Toolkit
  2. * Copyright 2001 Sun Microsystems Inc.
  3. *
  4. * This library is free software; you can redistribute it and/or
  5. * modify it under the terms of the GNU Library General Public
  6. * License as published by the Free Software Foundation; either
  7. * version 2 of the License, or (at your option) any later version.
  8. *
  9. * This library is distributed in the hope that it will be useful,
  10. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  12. * Library General Public License for more details.
  13. *
  14. * You should have received a copy of the GNU Library General Public
  15. * License along with this library; if not, write to the
  16. * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  17. * Boston, MA 02111-1307, USA.
  18. */
  19. #if defined(ATK_DISABLE_SINGLE_INCLUDES) && !defined (__ATK_H_INSIDE__) && !defined (ATK_COMPILATION)
  20. #error "Only <atk/atk.h> can be included directly."
  21. #endif
  22. #ifndef __ATK_HYPERLINK_H__
  23. #define __ATK_HYPERLINK_H__
  24. #include <atk/atkaction.h>
  25. G_BEGIN_DECLS
  26. /*
  27. * AtkHyperlink encapsulates a link or set of links in a hypertext document.
  28. *
  29. * It implements the AtkAction interface.
  30. */
  31. /**
  32. *AtkHyperlinkStateFlags
  33. *@ATK_HYPERLINK_IS_INLINE: Link is inline
  34. *
  35. *Describes the type of link
  36. **/
  37. typedef enum
  38. {
  39. ATK_HYPERLINK_IS_INLINE = 1 << 0
  40. } AtkHyperlinkStateFlags;
  41. #define ATK_TYPE_HYPERLINK (atk_hyperlink_get_type ())
  42. #define ATK_HYPERLINK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ATK_TYPE_HYPERLINK, AtkHyperlink))
  43. #define ATK_HYPERLINK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ATK_TYPE_HYPERLINK, AtkHyperlinkClass))
  44. #define ATK_IS_HYPERLINK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ATK_TYPE_HYPERLINK))
  45. #define ATK_IS_HYPERLINK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ATK_TYPE_HYPERLINK))
  46. #define ATK_HYPERLINK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ATK_TYPE_HYPERLINK, AtkHyperlinkClass))
  47. typedef struct _AtkHyperlink AtkHyperlink;
  48. typedef struct _AtkHyperlinkClass AtkHyperlinkClass;
  49. struct _AtkHyperlink
  50. {
  51. GObject parent;
  52. };
  53. struct _AtkHyperlinkClass
  54. {
  55. GObjectClass parent;
  56. gchar* (* get_uri) (AtkHyperlink *link_,
  57. gint i);
  58. AtkObject* (* get_object) (AtkHyperlink *link_,
  59. gint i);
  60. gint (* get_end_index) (AtkHyperlink *link_);
  61. gint (* get_start_index) (AtkHyperlink *link_);
  62. gboolean (* is_valid) (AtkHyperlink *link_);
  63. gint (* get_n_anchors) (AtkHyperlink *link_);
  64. guint (* link_state) (AtkHyperlink *link_);
  65. gboolean (* is_selected_link) (AtkHyperlink *link_);
  66. /* Signals */
  67. void ( *link_activated) (AtkHyperlink *link_);
  68. AtkFunction pad1;
  69. };
  70. GType atk_hyperlink_get_type (void);
  71. gchar* atk_hyperlink_get_uri (AtkHyperlink *link_,
  72. gint i);
  73. AtkObject* atk_hyperlink_get_object (AtkHyperlink *link_,
  74. gint i);
  75. gint atk_hyperlink_get_end_index (AtkHyperlink *link_);
  76. gint atk_hyperlink_get_start_index (AtkHyperlink *link_);
  77. gboolean atk_hyperlink_is_valid (AtkHyperlink *link_);
  78. gboolean atk_hyperlink_is_inline (AtkHyperlink *link_);
  79. gint atk_hyperlink_get_n_anchors (AtkHyperlink *link_);
  80. #ifndef ATK_DISABLE_DEPRECATED
  81. gboolean atk_hyperlink_is_selected_link (AtkHyperlink *link_);
  82. #endif /* ATK_DISABLE_DEPRECATED */
  83. G_END_DECLS
  84. #endif /* __ATK_HYPERLINK_H__ */