X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=gtk%2Fgtktextview.h;h=650e6051c3920bf7e9f323a3046cdd78d3fb8a46;hb=67f5e595a796a8321d6dc7737c58476564998c07;hp=3ad5cd6feb2705adeb5ad11cd67b6f3e8e9d13ac;hpb=057ab5a4dfb083878ee075a92ece949870aa7c56;p=~andy%2Fgtk diff --git a/gtk/gtktextview.h b/gtk/gtktextview.h index 3ad5cd6fe..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,116 +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; - - guint accepts_tab : 1; - - /* this flag is no longer used */ - guint reserved : 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 */ @@ -172,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); @@ -198,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); @@ -211,6 +114,7 @@ struct _GtkTextViewClass void (*_gtk_reserved5) (void); void (*_gtk_reserved6) (void); void (*_gtk_reserved7) (void); + void (*_gtk_reserved8) (void); }; GType gtk_text_view_get_type (void) G_GNUC_CONST; @@ -243,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); @@ -278,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, @@ -303,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, @@ -363,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__ */