X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=gtk%2Fgtktextview.h;h=650e6051c3920bf7e9f323a3046cdd78d3fb8a46;hb=1074aa0c49f647ed4b2a969618051c59da5aad01;hp=ad0edb40d07bc06a7bd6452af5d563d65671eeb9;hpb=ac77076507ac51944e1092d5c3ab3aacfb971e97;p=~andy%2Fgtk
diff --git a/gtk/gtktextview.h b/gtk/gtktextview.h
index ad0edb40d..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,114 +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;
-
- 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 */
@@ -170,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);
@@ -187,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);
@@ -195,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);
@@ -241,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);
@@ -248,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,
@@ -271,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,
@@ -296,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,
@@ -322,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);
@@ -350,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__ */