/* Chunk of data associated with a line; views can use this to store
info at the line. They should "subclass" the header struct here. */ struct _GtkTextLineData {
gpointer view_id;
GtkTextLineData *next; int height; int top_ink : 16; int bottom_ink : 16; signedint width : 24;
guint valid : 8; /* Actually a boolean */
};
struct _GtkTextLine {
GtkTextBTreeNode *parent; /* Pointer to parent node containing
* line. */
GtkTextLine *next; /* Next in linked list of lines with *sameparentnodeinB-tree.NULL
* means end of list. */
GtkTextLineSegment *segments; /* First in ordered list of segments
* that make up the line. */
GtkTextLineData *views; /* data stored here by views */
guchar dir_strong; /* BiDi algo dir of line */
guchar dir_propagated_back; /* BiDi algo dir of next line */
guchar dir_propagated_forward; /* BiDi algo dir of prev line */
};
int _gtk_text_line_get_number (GtkTextLine *line);
gboolean _gtk_text_line_char_has_tag (GtkTextLine *line,
GtkTextBTree *tree, int char_in_line,
GtkTextTag *tag);
gboolean _gtk_text_line_byte_has_tag (GtkTextLine *line,
GtkTextBTree *tree, int byte_in_line,
GtkTextTag *tag);
gboolean _gtk_text_line_is_last (GtkTextLine *line,
GtkTextBTree *tree);
gboolean _gtk_text_line_contains_end_iter (GtkTextLine *line,
GtkTextBTree *tree);
GtkTextLine * _gtk_text_line_next (GtkTextLine *line);
GtkTextLine * _gtk_text_line_next_excluding_last (GtkTextLine *line);
GtkTextLine * _gtk_text_line_previous (GtkTextLine *line); void _gtk_text_line_add_data (GtkTextLine *line,
GtkTextLineData *data);
gpointer _gtk_text_line_remove_data (GtkTextLine *line,
gpointer view_id);
gpointer _gtk_text_line_get_data (GtkTextLine *line,
gpointer view_id); void _gtk_text_line_invalidate_wrap (GtkTextLine *line,
GtkTextLineData *ld); int _gtk_text_line_char_count (GtkTextLine *line); int _gtk_text_line_byte_count (GtkTextLine *line); int _gtk_text_line_char_index (GtkTextLine *line);
GtkTextLineSegment *_gtk_text_line_byte_to_segment (GtkTextLine *line, int byte_offset, int *seg_offset);
GtkTextLineSegment *_gtk_text_line_char_to_segment (GtkTextLine *line, int char_offset, int *seg_offset);
gboolean _gtk_text_line_byte_locate (GtkTextLine *line, int byte_offset,
GtkTextLineSegment **segment,
GtkTextLineSegment **any_segment, int *seg_byte_offset, int *line_byte_offset);
gboolean _gtk_text_line_char_locate (GtkTextLine *line, int char_offset,
GtkTextLineSegment **segment,
GtkTextLineSegment **any_segment, int *seg_char_offset, int *line_char_offset); void _gtk_text_line_byte_to_char_offsets (GtkTextLine *line, int byte_offset, int *line_char_offset, int *seg_char_offset); void _gtk_text_line_char_to_byte_offsets (GtkTextLine *line, int char_offset, int *line_byte_offset, int *seg_byte_offset);
GtkTextLineSegment *_gtk_text_line_byte_to_any_segment (GtkTextLine *line, int byte_offset, int *seg_offset);
GtkTextLineSegment *_gtk_text_line_char_to_any_segment (GtkTextLine *line, int char_offset, int *seg_offset); int _gtk_text_line_byte_to_char (GtkTextLine *line, int byte_offset); int _gtk_text_line_char_to_byte (GtkTextLine *line, int char_offset);
GtkTextLine * _gtk_text_line_next_could_contain_tag (GtkTextLine *line,
GtkTextBTree *tree,
GtkTextTag *tag);
GtkTextLine * _gtk_text_line_previous_could_contain_tag (GtkTextLine *line,
GtkTextBTree *tree,
GtkTextTag *tag);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.