📄 gtktextlayout.h
字号:
};struct _GtkTextAttrAppearance{ PangoAttribute attr; GtkTextAppearance appearance;};struct _GtkTextCursorDisplay{ gint x; gint y; gint height; guint is_strong : 1; guint is_weak : 1;};struct _GtkTextLineDisplay{ PangoLayout *layout; GSList *cursors; GSList *shaped_objects; /* Only for backwards compatibility */ GtkTextDirection direction; gint width; /* Width of layout */ gint total_width; /* width - margins, if no width set on layout, if width set on layout, -1 */ gint height; /* Amount layout is shifted from left edge - this is the left margin * plus any other factors, such as alignment or indentation. */ gint x_offset; gint left_margin; gint right_margin; gint top_margin; gint bottom_margin; gint insert_index; /* Byte index of insert cursor within para or -1 */ gboolean size_only; GtkTextLine *line; GdkColor *pg_bg_color; GdkRectangle block_cursor; guint cursors_invalid : 1; guint has_block_cursor : 1; guint cursor_at_line_end : 1;};extern PangoAttrType gtk_text_attr_appearance_type;GType gtk_text_layout_get_type (void) G_GNUC_CONST;GtkTextLayout* gtk_text_layout_new (void);void gtk_text_layout_set_buffer (GtkTextLayout *layout, GtkTextBuffer *buffer);GtkTextBuffer *gtk_text_layout_get_buffer (GtkTextLayout *layout);void gtk_text_layout_set_default_style (GtkTextLayout *layout, GtkTextAttributes *values);void gtk_text_layout_set_contexts (GtkTextLayout *layout, PangoContext *ltr_context, PangoContext *rtl_context);void gtk_text_layout_set_cursor_direction (GtkTextLayout *layout, GtkTextDirection direction);void gtk_text_layout_set_overwrite_mode (GtkTextLayout *layout, gboolean overwrite);void gtk_text_layout_set_keyboard_direction (GtkTextLayout *layout, GtkTextDirection keyboard_dir);void gtk_text_layout_default_style_changed (GtkTextLayout *layout);void gtk_text_layout_set_screen_width (GtkTextLayout *layout, gint width);void gtk_text_layout_set_preedit_string (GtkTextLayout *layout, const gchar *preedit_string, PangoAttrList *preedit_attrs, gint cursor_pos);void gtk_text_layout_set_cursor_visible (GtkTextLayout *layout, gboolean cursor_visible);gboolean gtk_text_layout_get_cursor_visible (GtkTextLayout *layout);/* Getting the size or the lines potentially results in a call to * recompute, which is pretty massively expensive. Thus it should * basically only be done in an idle handler. * * Long-term, we would really like to be able to do these without * a full recompute so they may get cheaper over time. */void gtk_text_layout_get_size (GtkTextLayout *layout, gint *width, gint *height);GSList* gtk_text_layout_get_lines (GtkTextLayout *layout, /* [top_y, bottom_y) */ gint top_y, gint bottom_y, gint *first_line_y);void gtk_text_layout_wrap_loop_start (GtkTextLayout *layout);void gtk_text_layout_wrap_loop_end (GtkTextLayout *layout);GtkTextLineDisplay* gtk_text_layout_get_line_display (GtkTextLayout *layout, GtkTextLine *line, gboolean size_only);void gtk_text_layout_free_line_display (GtkTextLayout *layout, GtkTextLineDisplay *display);void gtk_text_layout_get_line_at_y (GtkTextLayout *layout, GtkTextIter *target_iter, gint y, gint *line_top);void gtk_text_layout_get_iter_at_pixel (GtkTextLayout *layout, GtkTextIter *iter, gint x, gint y);void gtk_text_layout_get_iter_at_position (GtkTextLayout *layout, GtkTextIter *iter, gint *trailing, gint x, gint y);void gtk_text_layout_invalidate (GtkTextLayout *layout, const GtkTextIter *start, const GtkTextIter *end);void gtk_text_layout_invalidate_cursors(GtkTextLayout *layout, const GtkTextIter *start, const GtkTextIter *end);void gtk_text_layout_free_line_data (GtkTextLayout *layout, GtkTextLine *line, GtkTextLineData *line_data);gboolean gtk_text_layout_is_valid (GtkTextLayout *layout);void gtk_text_layout_validate_yrange (GtkTextLayout *layout, GtkTextIter *anchor_line, gint y0_, gint y1_);void gtk_text_layout_validate (GtkTextLayout *layout, gint max_pixels);/* This function should return the passed-in line data, * OR remove the existing line data from the line, and * return a NEW line data after adding it to the line. * That is, invariant after calling the callback is that * there should be exactly one line data for this view * stored on the btree line. */GtkTextLineData* gtk_text_layout_wrap (GtkTextLayout *layout, GtkTextLine *line, GtkTextLineData *line_data); /* may be NULL */void gtk_text_layout_changed (GtkTextLayout *layout, gint y, gint old_height, gint new_height);void gtk_text_layout_cursors_changed (GtkTextLayout *layout, gint y, gint old_height, gint new_height);void gtk_text_layout_get_iter_location (GtkTextLayout *layout, const GtkTextIter *iter, GdkRectangle *rect);void gtk_text_layout_get_line_yrange (GtkTextLayout *layout, const GtkTextIter *iter, gint *y, gint *height);void _gtk_text_layout_get_line_xrange (GtkTextLayout *layout, const GtkTextIter *iter, gint *x, gint *width);void gtk_text_layout_get_cursor_locations (GtkTextLayout *layout, GtkTextIter *iter, GdkRectangle *strong_pos, GdkRectangle *weak_pos);gboolean _gtk_text_layout_get_block_cursor (GtkTextLayout *layout, GdkRectangle *pos);gboolean gtk_text_layout_clamp_iter_to_vrange (GtkTextLayout *layout, GtkTextIter *iter, gint top, gint bottom);gboolean gtk_text_layout_move_iter_to_line_end (GtkTextLayout *layout, GtkTextIter *iter, gint direction);gboolean gtk_text_layout_move_iter_to_previous_line (GtkTextLayout *layout, GtkTextIter *iter);gboolean gtk_text_layout_move_iter_to_next_line (GtkTextLayout *layout, GtkTextIter *iter);void gtk_text_layout_move_iter_to_x (GtkTextLayout *layout, GtkTextIter *iter, gint x);gboolean gtk_text_layout_move_iter_visually (GtkTextLayout *layout, GtkTextIter *iter, gint count);gboolean gtk_text_layout_iter_starts_line (GtkTextLayout *layout, const GtkTextIter *iter);void gtk_text_layout_get_iter_at_line (GtkTextLayout *layout, GtkTextIter *iter, GtkTextLine *line, gint byte_offset);/* Don't use these. Use gtk_text_view_add_child_at_anchor(). * These functions are defined in gtktextchild.c, but here * since they are semi-public and require GtkTextLayout to * be declared. */void gtk_text_child_anchor_register_child (GtkTextChildAnchor *anchor, GtkWidget *child, GtkTextLayout *layout);void gtk_text_child_anchor_unregister_child (GtkTextChildAnchor *anchor, GtkWidget *child);void gtk_text_child_anchor_queue_resize (GtkTextChildAnchor *anchor, GtkTextLayout *layout);void gtk_text_anchored_child_set_layout (GtkWidget *child, GtkTextLayout *layout);void gtk_text_layout_spew (GtkTextLayout *layout);G_END_DECLS#endif /* __GTK_TEXT_LAYOUT_H__ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -