X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=atk%2Fatktext.h;h=cd941305d61ce65b5364e3d1e809b7be87dd207c;hb=refs%2Fchanges%2F24%2F93124%2F1;hp=759eb5f15ab9d37f5c4f60ce7c0e0cd8677e596c;hpb=b614bfb09c99559de1b433222c405933903003c8;p=platform%2Fupstream%2Fatk.git diff --git a/atk/atktext.h b/atk/atktext.h index 759eb5f..cd94130 100755 --- a/atk/atktext.h +++ b/atk/atktext.h @@ -32,7 +32,7 @@ G_BEGIN_DECLS /** *AtkTextAttribute: - *@ATK_TEXT_ATTR_INVALID: Invalid attribute + *@ATK_TEXT_ATTR_INVALID: Invalid attribute, like bad spelling or grammar. *@ATK_TEXT_ATTR_LEFT_MARGIN: The pixel width of the left margin *@ATK_TEXT_ATTR_RIGHT_MARGIN: The pixel width of the right margin *@ATK_TEXT_ATTR_INDENT: The number of pixels that the text is indented @@ -45,7 +45,7 @@ G_BEGIN_DECLS *@ATK_TEXT_ATTR_RISE: Number of pixels that the characters are risen above the baseline *@ATK_TEXT_ATTR_UNDERLINE: "none", "single", "double", "low", or "error" *@ATK_TEXT_ATTR_STRIKETHROUGH: "true" or "false" whether the text is strikethrough - *@ATK_TEXT_ATTR_SIZE: The size of the characters. + *@ATK_TEXT_ATTR_SIZE: The size of the characters in points. eg: 10 *@ATK_TEXT_ATTR_SCALE: The scale of the characters. The value is a string representation of a double *@ATK_TEXT_ATTR_WEIGHT: The weight of the characters. *@ATK_TEXT_ATTR_LANGUAGE: The language used @@ -97,6 +97,7 @@ typedef enum ATK_TEXT_ATTR_LAST_DEFINED } AtkTextAttribute; +ATK_AVAILABLE_IN_ALL AtkTextAttribute atk_text_attribute_register (const gchar *name); @@ -118,25 +119,20 @@ typedef struct _AtkTextIface AtkTextIface; * (including non-printing characters) *@ATK_TEXT_BOUNDARY_WORD_START: Boundary is the start (i.e. first character) of a word. *@ATK_TEXT_BOUNDARY_WORD_END: Boundary is the end (i.e. last - * character) of a word. This boundary is deprecated, and should not be - * used. + * character) of a word. *@ATK_TEXT_BOUNDARY_SENTENCE_START: Boundary is the first character in a sentence. *@ATK_TEXT_BOUNDARY_SENTENCE_END: Boundary is the last (terminal) * character in a sentence; in languages which use "sentence stop" * punctuation such as English, the boundary is thus the '.', '?', or - * similar terminal punctuation character. This boundary is - * deprecated, and should not be used. + * similar terminal punctuation character. *@ATK_TEXT_BOUNDARY_LINE_START: Boundary is the initial character of the content or a * character immediately following a newline, linefeed, or return character. *@ATK_TEXT_BOUNDARY_LINE_END: Boundary is the linefeed, or return - * character. This boundary is deprecated, and should not be used. - * - * Text boundary types used for specifying boundaries for regions of - * text. Note that some boundaries are deprecated since 2.9.3., not - * marked explicitly due to the lack of a formal method to mark as - * deprecated some elements from a enum. - * + * character. * + * Text boundary types used for specifying boundaries for regions of text. + * This enumerationis deprecated since 2.9.4 and should not be used. Use + * AtkTextGranularity with #atk_text_get_string_at_offset instead. **/ typedef enum { ATK_TEXT_BOUNDARY_CHAR, @@ -149,6 +145,34 @@ typedef enum { } AtkTextBoundary; /** + *AtkTextGranularity: + *@ATK_TEXT_GRANULARITY_CHAR: Granularity is defined by the boundaries between characters + * (including non-printing characters) + *@ATK_TEXT_GRANULARITY_WORD: Granularity is defined by the boundaries of a word, + * starting at the beginning of the current word and finishing at the beginning of + * the following one, if present. + *@ATK_TEXT_GRANULARITY_SENTENCE: Granularity is defined by the boundaries of a sentence, + * starting at the beginning of the current sentence and finishing at the beginning of + * the following one, if present. + *@ATK_TEXT_GRANULARITY_LINE: Granularity is defined by the boundaries of a line, + * starting at the beginning of the current line and finishing at the beginning of + * the following one, if present. + *@ATK_TEXT_GRANULARITY_PARAGRAPH: Granularity is defined by the boundaries of a paragraph, + * starting at the beginning of the current paragraph and finishing at the beginning of + * the following one, if present. + * + * Text granularity types used for specifying the granularity of the region of + * text we are interested in. + **/ +typedef enum { + ATK_TEXT_GRANULARITY_CHAR, + ATK_TEXT_GRANULARITY_WORD, + ATK_TEXT_GRANULARITY_SENTENCE, + ATK_TEXT_GRANULARITY_LINE, + ATK_TEXT_GRANULARITY_PARAGRAPH +} AtkTextGranularity; + +/** * AtkTextRectangle: * @x: The horizontal coordinate of a rectangle * @y: The vertical coordinate of a rectangle @@ -185,6 +209,7 @@ struct _AtkTextRange { gchar* content; }; +ATK_AVAILABLE_IN_ALL GType atk_text_range_get_type (void); /** @@ -207,8 +232,14 @@ typedef enum { * AtkTextIface: * @get_text_after_offset: Gets specified text. This virtual function * is deprecated and it should not be overridden. + * @get_text_at_offset: Gets specified text. This virtual function + * is deprecated and it should not be overridden. * @get_text_before_offset: Gets specified text. This virtual function * is deprecated and it should not be overridden. + * @get_string_at_offset: Gets a portion of the text exposed through + * an AtkText according to a given offset and a specific + * granularity, along with the start and end offsets defining the + * boundaries of such a portion of text. * @text_changed: the signal handler which is executed when there is a * text change. This virtual function is deprecated sice 2.9.4 and * it should not be overriden. @@ -296,8 +327,15 @@ struct _AtkTextIface AtkCoordType coord_type, AtkTextClipType x_clip_type, AtkTextClipType y_clip_type); + + gchar* (* get_string_at_offset) (AtkText *text, + gint offset, + AtkTextGranularity granularity, + gint *start_offset, + gint *end_offset); }; +ATK_AVAILABLE_IN_ALL GType atk_text_get_type (void); @@ -308,29 +346,40 @@ GType atk_text_get_type (void); * editable text only) */ +ATK_AVAILABLE_IN_ALL gchar* atk_text_get_text (AtkText *text, gint start_offset, gint end_offset); +ATK_AVAILABLE_IN_ALL gunichar atk_text_get_character_at_offset (AtkText *text, gint offset); -G_DEPRECATED_FOR(atk_text_get_text_at_offset) +ATK_DEPRECATED_IN_2_10_FOR(atk_text_get_string_at_offset) gchar* atk_text_get_text_after_offset (AtkText *text, gint offset, AtkTextBoundary boundary_type, gint *start_offset, gint *end_offset); +ATK_DEPRECATED_IN_2_10_FOR(atk_text_get_string_at_offset) gchar* atk_text_get_text_at_offset (AtkText *text, gint offset, AtkTextBoundary boundary_type, gint *start_offset, gint *end_offset); -G_DEPRECATED_FOR(atk_text_get_text_at_offset) +ATK_DEPRECATED_IN_2_10_FOR(atk_text_get_string_at_offset) gchar* atk_text_get_text_before_offset (AtkText *text, gint offset, AtkTextBoundary boundary_type, gint *start_offset, gint *end_offset); +ATK_AVAILABLE_IN_2_10 +gchar* atk_text_get_string_at_offset (AtkText *text, + gint offset, + AtkTextGranularity granularity, + gint *start_offset, + gint *end_offset); +ATK_AVAILABLE_IN_ALL gint atk_text_get_caret_offset (AtkText *text); +ATK_AVAILABLE_IN_ALL void atk_text_get_character_extents (AtkText *text, gint offset, gint *x, @@ -338,47 +387,64 @@ void atk_text_get_character_extents (AtkText *tex gint *width, gint *height, AtkCoordType coords); +ATK_AVAILABLE_IN_ALL AtkAttributeSet* atk_text_get_run_attributes (AtkText *text, gint offset, gint *start_offset, gint *end_offset); +ATK_AVAILABLE_IN_ALL AtkAttributeSet* atk_text_get_default_attributes (AtkText *text); +ATK_AVAILABLE_IN_ALL gint atk_text_get_character_count (AtkText *text); +ATK_AVAILABLE_IN_ALL gint atk_text_get_offset_at_point (AtkText *text, gint x, gint y, AtkCoordType coords); +ATK_AVAILABLE_IN_ALL gint atk_text_get_n_selections (AtkText *text); +ATK_AVAILABLE_IN_ALL gchar* atk_text_get_selection (AtkText *text, gint selection_num, gint *start_offset, gint *end_offset); +ATK_AVAILABLE_IN_ALL gboolean atk_text_add_selection (AtkText *text, gint start_offset, gint end_offset); +ATK_AVAILABLE_IN_ALL gboolean atk_text_remove_selection (AtkText *text, gint selection_num); +ATK_AVAILABLE_IN_ALL gboolean atk_text_set_selection (AtkText *text, gint selection_num, gint start_offset, gint end_offset); +ATK_AVAILABLE_IN_ALL gboolean atk_text_set_caret_offset (AtkText *text, gint offset); +ATK_AVAILABLE_IN_ALL void atk_text_get_range_extents (AtkText *text, gint start_offset, gint end_offset, AtkCoordType coord_type, AtkTextRectangle *rect); +ATK_AVAILABLE_IN_ALL AtkTextRange** atk_text_get_bounded_ranges (AtkText *text, AtkTextRectangle *rect, AtkCoordType coord_type, AtkTextClipType x_clip_type, AtkTextClipType y_clip_type); +ATK_AVAILABLE_IN_ALL void atk_text_free_ranges (AtkTextRange **ranges); +ATK_AVAILABLE_IN_ALL void atk_attribute_set_free (AtkAttributeSet *attrib_set); +ATK_AVAILABLE_IN_ALL const gchar* atk_text_attribute_get_name (AtkTextAttribute attr); +ATK_AVAILABLE_IN_ALL AtkTextAttribute atk_text_attribute_for_name (const gchar *name); +ATK_AVAILABLE_IN_ALL const gchar* atk_text_attribute_get_value (AtkTextAttribute attr, gint index_);