X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=gtk%2Fgtktextview.h;h=650e6051c3920bf7e9f323a3046cdd78d3fb8a46;hb=1074aa0c49f647ed4b2a969618051c59da5aad01;hp=fb6559070615e5ae03a72c514e313f7684388905;hpb=056bd0092d203973c70df6792f08b8563ba0f6c3;p=~andy%2Fgtk diff --git a/gtk/gtktextview.h b/gtk/gtktextview.h index fb6559070..650e6051c 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,17 +22,19 @@ * 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) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_TEXT_VIEW, GtkTextView)) @@ -54,115 +54,32 @@ typedef enum GTK_TEXT_WINDOW_BOTTOM } GtkTextWindowType; +/** + * 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) -typedef struct _GtkTextView GtkTextView; -typedef struct _GtkTextViewClass GtkTextViewClass; - -/* Internal private types. */ -typedef struct _GtkTextWindow GtkTextWindow; -typedef struct _GtkTextPendingScroll GtkTextPendingScroll; +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 scroll_timeout; - - /* Default style settings */ - gint pixels_above_lines; - gint pixels_below_lines; - gint pixels_inside_wrap; - GtkWrapMode wrap_mode; - GtkJustification justify; - gint left_margin; - gint right_margin; - gint indent; - PangoTabArray *tabs; - guint editable : 1; - - - - guint overwrite_mode : 1; - guint cursor_visible : 1; - - /* if we have reset the IM since the last character entered */ - guint need_im_reset : 1; - - /* these flags are no longer used */ - guint reserved1 : 1; - guint reserved2 : 1; - - /* debug flag - means that we've validated onscreen since the - * last "invalidate" signal from the layout - */ - guint onscreen_validated : 1; - - guint mouse_cursor_obscured : 1; - - 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; - GtkWidget *popup_menu; - - gint drag_start_x; - gint drag_start_y; - - GSList *children; - - GtkTextPendingScroll *pending_scroll; - - gint pending_place_cursor_button; + GtkTextViewPrivate *priv; }; struct _GtkTextViewClass { GtkContainerClass parent_class; - void (* set_scroll_adjustments) (GtkTextView *text_view, - GtkAdjustment *hadjustment, - GtkAdjustment *vadjustment); - void (* populate_popup) (GtkTextView *text_view, - GtkMenu *menu); - + GtkWidget *popup); + /* These are all RUN_ACTION signals for keybindings */ /* move insertion point */ @@ -171,14 +88,6 @@ struct _GtkTextViewClass gint count, gboolean extend_selection); - /* FIXME should be deprecated in favor of adding GTK_MOVEMENT_HORIZONTAL_PAGES - * or something in GTK 2.2, was put in to avoid adding enum values during - * the freeze. - */ - void (* page_horizontally) (GtkTextView *text_view, - gint count, - gboolean extend_selection); - /* move the "anchor" (what Emacs calls the mark) to the cursor position */ void (* set_anchor) (GtkTextView *text_view); @@ -188,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); @@ -196,11 +106,6 @@ struct _GtkTextViewClass /* overwrite */ void (* toggle_overwrite) (GtkTextView *text_view); - /* propagates to GtkWindow move_focus */ - void (* move_focus) (GtkTextView *text_view, - GtkDirectionType direction); - - /* Padding for future expansion */ void (*_gtk_reserved1) (void); void (*_gtk_reserved2) (void); @@ -242,6 +147,10 @@ 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); @@ -249,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, @@ -272,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, @@ -297,6 +216,10 @@ gboolean gtk_text_view_move_visually (GtkTextView *text_v 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, GtkWidget *child, @@ -326,6 +249,9 @@ gboolean gtk_text_view_get_editable (GtkTextView *text_vi 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); @@ -354,8 +280,19 @@ PangoTabArray* gtk_text_view_get_tabs (GtkTextView *text_vi /* note that the return value of this changes with the theme */ GtkTextAttributes* gtk_text_view_get_default_attributes (GtkTextView *text_view); -#ifdef __cplusplus -} -#endif /* __cplusplus */ +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 */ +#endif /* __GTK_TEXT_VIEW_H__ */