X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=gtk%2Fgtktextview.h;h=2b81b4f6c5bf4dfd0a17948036540c6f34ec3bce;hb=bb3c56abe2e7916126bd4f8234dee080b5381941;hp=5d96ca7be83e147f3871f0f89e0bd070677244ff;hpb=5f91b6fca673f7726acdc57c4f8e8b32be285458;p=~andy%2Fgtk diff --git a/gtk/gtktextview.h b/gtk/gtktextview.h index 5d96ca7be..2b81b4f6c 100644 --- a/gtk/gtktextview.h +++ b/gtk/gtktextview.h @@ -12,9 +12,7 @@ * 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., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * License along with this library. If not, see . */ /* @@ -24,23 +22,26 @@ * GTK+ at ftp://ftp.gtk.org/pub/gtk/. */ -#ifndef GTK_TEXT_VIEW_H -#define GTK_TEXT_VIEW_H +#ifndef __GTK_TEXT_VIEW_H__ +#define __GTK_TEXT_VIEW_H__ + +#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION) +#error "Only can be included directly." +#endif #include #include #include +#include -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ +G_BEGIN_DECLS #define GTK_TYPE_TEXT_VIEW (gtk_text_view_get_type ()) -#define GTK_TEXT_VIEW(obj) (GTK_CHECK_CAST ((obj), GTK_TYPE_TEXT_VIEW, GtkTextView)) -#define GTK_TEXT_VIEW_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), GTK_TYPE_TEXT_VIEW, GtkTextViewClass)) -#define GTK_IS_TEXT_VIEW(obj) (GTK_CHECK_TYPE ((obj), GTK_TYPE_TEXT_VIEW)) -#define GTK_IS_TEXT_VIEW_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GTK_TYPE_TEXT_VIEW)) -#define GTK_TEXT_VIEW_GET_CLASS(obj) (GTK_CHECK_GET_CLASS ((obj), GTK_TYPE_TEXT_VIEW, GtkTextViewClass)) +#define GTK_TEXT_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_TEXT_VIEW, GtkTextView)) +#define GTK_TEXT_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_TEXT_VIEW, GtkTextViewClass)) +#define GTK_IS_TEXT_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_TEXT_VIEW)) +#define GTK_IS_TEXT_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_TEXT_VIEW)) +#define GTK_TEXT_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_TEXT_VIEW, GtkTextViewClass)) typedef enum { @@ -53,78 +54,32 @@ typedef enum GTK_TEXT_WINDOW_BOTTOM } GtkTextWindowType; -typedef struct _GtkTextView GtkTextView; -typedef struct _GtkTextViewClass GtkTextViewClass; +/** + * GTK_TEXT_VIEW_PRIORITY_VALIDATE: + * + * The priority at which the text view validates onscreen lines + * in an idle job in the background. + */ +#define GTK_TEXT_VIEW_PRIORITY_VALIDATE (GDK_PRIORITY_REDRAW + 5) -/* Internal private type. */ -typedef struct _GtkTextWindow GtkTextWindow; +typedef struct _GtkTextView GtkTextView; +typedef struct _GtkTextViewPrivate GtkTextViewPrivate; +typedef struct _GtkTextViewClass GtkTextViewClass; struct _GtkTextView { GtkContainer parent_instance; - struct _GtkTextLayout *layout; - GtkTextBuffer *buffer; - - guint selection_drag_handler; - guint selection_drag_scan_timeout; - gint scrolling_accel_factor; - - gboolean overwrite_mode; - - GtkWrapMode wrap_mode; /* Default wrap mode */ - - gboolean editable; /* default editability */ - - gboolean cursor_visible; - - GtkTextWindow *text_window; - GtkTextWindow *left_window; - GtkTextWindow *right_window; - GtkTextWindow *top_window; - GtkTextWindow *bottom_window; - - GtkAdjustment *hadjustment; - GtkAdjustment *vadjustment; - - gint xoffset; /* Offsets between widget coordinates and buffer coordinates */ - gint yoffset; - gint width; /* Width and height of the buffer */ - gint height; - - /* The virtual cursor position is normally the same as the - * actual (strong) cursor position, except in two circumstances: - * - * a) When the cursor is moved vertically with the keyboard - * b) When the text view is scrolled with the keyboard - * - * In case a), virtual_cursor_x is preserved, but not virtual_cursor_y - * In case b), both virtual_cursor_x and virtual_cursor_y are preserved. - */ - gint virtual_cursor_x; /* -1 means use actual cursor position */ - gint virtual_cursor_y; /* -1 means use actual cursor position */ - - GtkTextMark *first_para_mark; /* Mark at the beginning of the first onscreen paragraph */ - gint first_para_pixels; /* Offset of top of screen in the first onscreen paragraph */ - - GtkTextMark *dnd_mark; - guint blink_timeout; - - guint first_validate_idle; /* Idle to revalidate onscreen portion, runs before resize */ - guint incremental_validate_idle; /* Idle to revalidate offscreen portions, runs after redraw */ - - GtkIMContext *im_context; - - gint drag_start_x; - gint drag_start_y; - - GSList *children; + GtkTextViewPrivate *priv; }; struct _GtkTextViewClass { GtkContainerClass parent_class; + void (* populate_popup) (GtkTextView *text_view, + GtkMenu *menu); + /* These are all RUN_ACTION signals for keybindings */ /* move insertion point */ @@ -132,6 +87,7 @@ struct _GtkTextViewClass GtkMovementStep step, gint count, gboolean extend_selection); + /* move the "anchor" (what Emacs calls the mark) to the cursor position */ void (* set_anchor) (GtkTextView *text_view); @@ -141,6 +97,7 @@ struct _GtkTextViewClass void (* delete_from_cursor) (GtkTextView *text_view, GtkDeleteType type, gint count); + void (* backspace) (GtkTextView *text_view); /* cut copy paste */ void (* cut_clipboard) (GtkTextView *text_view); @@ -148,38 +105,52 @@ struct _GtkTextViewClass void (* paste_clipboard) (GtkTextView *text_view); /* overwrite */ void (* toggle_overwrite) (GtkTextView *text_view); - void (* set_scroll_adjustments) (GtkTextView *text_view, - GtkAdjustment *hadjustment, - GtkAdjustment *vadjustment); + + /* Padding for future expansion */ + void (*_gtk_reserved1) (void); + void (*_gtk_reserved2) (void); + void (*_gtk_reserved3) (void); + void (*_gtk_reserved4) (void); + void (*_gtk_reserved5) (void); + void (*_gtk_reserved6) (void); + void (*_gtk_reserved7) (void); + void (*_gtk_reserved8) (void); }; -GtkType gtk_text_view_get_type (void) G_GNUC_CONST; +GType gtk_text_view_get_type (void) G_GNUC_CONST; GtkWidget * gtk_text_view_new (void); GtkWidget * gtk_text_view_new_with_buffer (GtkTextBuffer *buffer); void gtk_text_view_set_buffer (GtkTextView *text_view, GtkTextBuffer *buffer); GtkTextBuffer *gtk_text_view_get_buffer (GtkTextView *text_view); -gboolean gtk_text_view_scroll_to_mark (GtkTextView *text_view, +gboolean gtk_text_view_scroll_to_iter (GtkTextView *text_view, + GtkTextIter *iter, + gdouble within_margin, + gboolean use_align, + gdouble xalign, + gdouble yalign); +void gtk_text_view_scroll_to_mark (GtkTextView *text_view, GtkTextMark *mark, - gint mark_within_margin); + gdouble within_margin, + gboolean use_align, + gdouble xalign, + gdouble yalign); +void gtk_text_view_scroll_mark_onscreen (GtkTextView *text_view, + GtkTextMark *mark); gboolean gtk_text_view_move_mark_onscreen (GtkTextView *text_view, GtkTextMark *mark); gboolean gtk_text_view_place_cursor_onscreen (GtkTextView *text_view); void gtk_text_view_get_visible_rect (GtkTextView *text_view, GdkRectangle *visible_rect); -void gtk_text_view_set_wrap_mode (GtkTextView *text_view, - GtkWrapMode wrap_mode); -GtkWrapMode gtk_text_view_get_wrap_mode (GtkTextView *text_view); - -void gtk_text_view_set_editable (GtkTextView *text_view, - gboolean setting); -gboolean gtk_text_view_get_editable (GtkTextView *text_view); - void gtk_text_view_set_cursor_visible (GtkTextView *text_view, gboolean setting); gboolean gtk_text_view_get_cursor_visible (GtkTextView *text_view); +void gtk_text_view_get_cursor_locations (GtkTextView *text_view, + const GtkTextIter *iter, + GdkRectangle *strong, + GdkRectangle *weak); void gtk_text_view_get_iter_location (GtkTextView *text_view, const GtkTextIter *iter, GdkRectangle *location); @@ -187,6 +158,11 @@ void gtk_text_view_get_iter_at_location (GtkTextView *text_view, GtkTextIter *iter, gint x, gint y); +void gtk_text_view_get_iter_at_position (GtkTextView *text_view, + GtkTextIter *iter, + gint *trailing, + gint x, + gint y); void gtk_text_view_get_line_yrange (GtkTextView *text_view, const GtkTextIter *iter, gint *y, @@ -210,6 +186,11 @@ void gtk_text_view_window_to_buffer_coords (GtkTextView *text_view, gint *buffer_x, gint *buffer_y); +GDK_DEPRECATED_IN_3_0_FOR(gtk_scrollable_get_hadjustment) +GtkAdjustment* gtk_text_view_get_hadjustment (GtkTextView *text_view); +GDK_DEPRECATED_IN_3_0_FOR(gtk_scrollable_get_vadjustment) +GtkAdjustment* gtk_text_view_get_vadjustment (GtkTextView *text_view); + GdkWindow* gtk_text_view_get_window (GtkTextView *text_view, GtkTextWindowType win); GtkTextWindowType gtk_text_view_get_window_type (GtkTextView *text_view, @@ -218,10 +199,26 @@ GtkTextWindowType gtk_text_view_get_window_type (GtkTextView *text_view, void gtk_text_view_set_border_window_size (GtkTextView *text_view, GtkTextWindowType type, gint size); -void gtk_text_view_set_text_window_size (GtkTextView *text_view, - gint width, - gint height); - +gint gtk_text_view_get_border_window_size (GtkTextView *text_view, + GtkTextWindowType type); + +gboolean gtk_text_view_forward_display_line (GtkTextView *text_view, + GtkTextIter *iter); +gboolean gtk_text_view_backward_display_line (GtkTextView *text_view, + GtkTextIter *iter); +gboolean gtk_text_view_forward_display_line_end (GtkTextView *text_view, + GtkTextIter *iter); +gboolean gtk_text_view_backward_display_line_start (GtkTextView *text_view, + GtkTextIter *iter); +gboolean gtk_text_view_starts_display_line (GtkTextView *text_view, + const GtkTextIter *iter); +gboolean gtk_text_view_move_visually (GtkTextView *text_view, + GtkTextIter *iter, + gint count); + +gboolean gtk_text_view_im_context_filter_keypress (GtkTextView *text_view, + GdkEventKey *event); +void gtk_text_view_reset_im_context (GtkTextView *text_view); /* Adding child widgets */ void gtk_text_view_add_child_at_anchor (GtkTextView *text_view, @@ -241,8 +238,61 @@ void gtk_text_view_move_child (GtkTextView *text_view, gint xpos, gint ypos); -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* GTK_TEXT_VIEW_H */ +/* Default style settings (fallbacks if no tag affects the property) */ + +void gtk_text_view_set_wrap_mode (GtkTextView *text_view, + GtkWrapMode wrap_mode); +GtkWrapMode gtk_text_view_get_wrap_mode (GtkTextView *text_view); +void gtk_text_view_set_editable (GtkTextView *text_view, + gboolean setting); +gboolean gtk_text_view_get_editable (GtkTextView *text_view); +void gtk_text_view_set_overwrite (GtkTextView *text_view, + gboolean overwrite); +gboolean gtk_text_view_get_overwrite (GtkTextView *text_view); +void gtk_text_view_set_accepts_tab (GtkTextView *text_view, + gboolean accepts_tab); +gboolean gtk_text_view_get_accepts_tab (GtkTextView *text_view); +void gtk_text_view_set_pixels_above_lines (GtkTextView *text_view, + gint pixels_above_lines); +gint gtk_text_view_get_pixels_above_lines (GtkTextView *text_view); +void gtk_text_view_set_pixels_below_lines (GtkTextView *text_view, + gint pixels_below_lines); +gint gtk_text_view_get_pixels_below_lines (GtkTextView *text_view); +void gtk_text_view_set_pixels_inside_wrap (GtkTextView *text_view, + gint pixels_inside_wrap); +gint gtk_text_view_get_pixels_inside_wrap (GtkTextView *text_view); +void gtk_text_view_set_justification (GtkTextView *text_view, + GtkJustification justification); +GtkJustification gtk_text_view_get_justification (GtkTextView *text_view); +void gtk_text_view_set_left_margin (GtkTextView *text_view, + gint left_margin); +gint gtk_text_view_get_left_margin (GtkTextView *text_view); +void gtk_text_view_set_right_margin (GtkTextView *text_view, + gint right_margin); +gint gtk_text_view_get_right_margin (GtkTextView *text_view); +void gtk_text_view_set_indent (GtkTextView *text_view, + gint indent); +gint gtk_text_view_get_indent (GtkTextView *text_view); +void gtk_text_view_set_tabs (GtkTextView *text_view, + PangoTabArray *tabs); +PangoTabArray* gtk_text_view_get_tabs (GtkTextView *text_view); + +/* note that the return value of this changes with the theme */ +GtkTextAttributes* gtk_text_view_get_default_attributes (GtkTextView *text_view); + +GDK_AVAILABLE_IN_3_6 +void gtk_text_view_set_input_purpose (GtkTextView *text_view, + GtkInputPurpose purpose); +GDK_AVAILABLE_IN_3_6 +GtkInputPurpose gtk_text_view_get_input_purpose (GtkTextView *text_view); + +GDK_AVAILABLE_IN_3_6 +void gtk_text_view_set_input_hints (GtkTextView *text_view, + GtkInputHints hints); +GDK_AVAILABLE_IN_3_6 +GtkInputHints gtk_text_view_get_input_hints (GtkTextView *text_view); + + +G_END_DECLS + +#endif /* __GTK_TEXT_VIEW_H__ */