X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=gtk%2Fgtktextview.h;h=650e6051c3920bf7e9f323a3046cdd78d3fb8a46;hb=5d011386a69aa59d6eda1e3ef32005efd831c179;hp=df8abe7802fab03b845de43463a1a89296d9982d;hpb=9e404f2a1e04e9ea17742b9e2823b50189104a54;p=~andy%2Fgtk diff --git a/gtk/gtktextview.h b/gtk/gtktextview.h index df8abe780..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,24 +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 { @@ -54,113 +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; - guint need_im_reset : 1; /* If we have reset the IM since the last character entered */ - /* just selected a word or line via double/triple click */ - guint just_selected_element : 1; - - /* disable scrolling to cursor on focus */ - guint disable_scroll_on_focus : 1; - - /* debug flag - means that we've validated onscreen since the - * last "invalidate" signal from the layout - */ - guint onscreen_validated : 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; - GdkGC *cursor_gc; - - 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 */ @@ -169,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); @@ -186,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); @@ -194,23 +106,18 @@ struct _GtkTextViewClass /* overwrite */ void (* toggle_overwrite) (GtkTextView *text_view); - /* propagates to GtkWindow move_focus */ - void (* move_focus) (GtkTextView *text_view, - GtkDirectionType direction); - - - GtkFunction pad1; - GtkFunction pad2; - GtkFunction pad3; - GtkFunction pad4; - - GtkFunction pad5; - GtkFunction pad6; - GtkFunction pad7; - GtkFunction pad8; + /* 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, @@ -240,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); @@ -247,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, @@ -270,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, @@ -295,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, @@ -321,6 +246,12 @@ GtkWrapMode gtk_text_view_get_wrap_mode (GtkTextView *text_vi 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); @@ -349,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__ */