X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=gtk%2Fgtktextview.h;h=650e6051c3920bf7e9f323a3046cdd78d3fb8a46;hb=fd51c8f5e9d6fb68c8e81b9b1e2ab80931f963f0;hp=d7089da9560fbb171e25f36e20506ebca1b57439;hpb=eff99c282cb6967f4b1df2f2b53f2bbb034ce79a;p=~andy%2Fgtk diff --git a/gtk/gtktextview.h b/gtk/gtktextview.h index d7089da95..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,13 +22,13 @@ * GTK+ at ftp://ftp.gtk.org/pub/gtk/. */ -#if defined(GTK_DISABLE_SINGLE_INCLUDES) && !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION) -#error "Only can be included directly." -#endif - #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 @@ -56,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; - - guint accepts_tab : 1; - - guint width_changed : 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 */ @@ -173,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); @@ -199,13 +106,6 @@ struct _GtkTextViewClass /* overwrite */ void (* toggle_overwrite) (GtkTextView *text_view); - /* as of GTK+ 2.12 the "move-focus" signal has been moved to GtkWidget, - * so this is merley a virtual function now. Overriding it in subclasses - * continues to work though. - */ - void (* move_focus) (GtkTextView *text_view, - GtkDirectionType direction); - /* Padding for future expansion */ void (*_gtk_reserved1) (void); void (*_gtk_reserved2) (void); @@ -214,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; @@ -246,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); @@ -281,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, @@ -306,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, @@ -366,6 +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); +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__ */