summaryrefslogtreecommitdiff
path: root/libs/gtkmm2/gtk/gtkmm/textview.h
diff options
context:
space:
mode:
Diffstat (limited to 'libs/gtkmm2/gtk/gtkmm/textview.h')
-rw-r--r--libs/gtkmm2/gtk/gtkmm/textview.h960
1 files changed, 960 insertions, 0 deletions
diff --git a/libs/gtkmm2/gtk/gtkmm/textview.h b/libs/gtkmm2/gtk/gtkmm/textview.h
new file mode 100644
index 0000000000..aee4dc44b7
--- /dev/null
+++ b/libs/gtkmm2/gtk/gtkmm/textview.h
@@ -0,0 +1,960 @@
+// -*- c++ -*-
+// Generated by gtkmmproc -- DO NOT MODIFY!
+#ifndef _GTKMM_TEXTVIEW_H
+#define _GTKMM_TEXTVIEW_H
+
+#include <glibmm.h>
+
+/* $Id$ */
+
+/* Copyright(C) 2002 The gtkmm Development Team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or(at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <gtkmm/container.h>
+#include <gtkmm/textbuffer.h>
+#include <gtkmm/textmark.h>
+#include <gtkmm/menu.h>
+#include <gtkmm/adjustment.h>
+
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+typedef struct _GtkTextView GtkTextView;
+typedef struct _GtkTextViewClass GtkTextViewClass;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+
+namespace Gtk
+{ class TextView_Class; } // namespace Gtk
+namespace Gtk
+{
+
+
+/** @addtogroup gtkmmEnums Enums and Flags */
+
+/**
+ * @ingroup gtkmmEnums
+ */
+enum TextWindowType
+{
+ TEXT_WINDOW_PRIVATE,
+ TEXT_WINDOW_WIDGET,
+ TEXT_WINDOW_TEXT,
+ TEXT_WINDOW_LEFT,
+ TEXT_WINDOW_RIGHT,
+ TEXT_WINDOW_TOP,
+ TEXT_WINDOW_BOTTOM
+};
+
+} // namespace Gtk
+
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+namespace Glib
+{
+
+template <>
+class Value<Gtk::TextWindowType> : public Glib::Value_Enum<Gtk::TextWindowType>
+{
+public:
+ static GType value_type() G_GNUC_CONST;
+};
+
+} // namespace Glib
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+
+namespace Gtk
+{
+
+
+/** @defgroup TextView TextView Classes
+ * These classes are used with the Gtk::TextView widget.
+ */
+
+/** Multi-line text editing widget. It displays a Gtk::TextBuffer.
+ *
+ * @ingroup Widgets
+ * @ingroup Containers
+ * @ingroup TextView
+ */
+
+class TextView : public Container
+{
+ public:
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+ typedef TextView CppObjectType;
+ typedef TextView_Class CppClassType;
+ typedef GtkTextView BaseObjectType;
+ typedef GtkTextViewClass BaseClassType;
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+ virtual ~TextView();
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+
+private:
+ friend class TextView_Class;
+ static CppClassType textview_class_;
+
+ // noncopyable
+ TextView(const TextView&);
+ TextView& operator=(const TextView&);
+
+protected:
+ explicit TextView(const Glib::ConstructParams& construct_params);
+ explicit TextView(GtkTextView* castitem);
+
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+public:
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+ static GType get_type() G_GNUC_CONST;
+ static GType get_base_type() G_GNUC_CONST;
+#endif
+
+ ///Provides access to the underlying C GtkObject.
+ GtkTextView* gobj() { return reinterpret_cast<GtkTextView*>(gobject_); }
+
+ ///Provides access to the underlying C GtkObject.
+ const GtkTextView* gobj() const { return reinterpret_cast<GtkTextView*>(gobject_); }
+
+
+public:
+ //C++ methods used to invoke GTK+ virtual functions:
+
+protected:
+ //GTK+ Virtual Functions (override these to change behaviour):
+
+ //Default Signal Handlers::
+ virtual void on_set_scroll_adjustments(Adjustment* hadjustment, Adjustment* vadjustment);
+ virtual void on_populate_popup(Menu* menu);
+ virtual void on_set_anchor();
+ virtual void on_insert_at_cursor(const Glib::ustring& str);
+
+
+private:
+
+public:
+ TextView();
+ explicit TextView(const Glib::RefPtr<TextBuffer>& buffer);
+
+
+ /** Sets @a buffer as the buffer being displayed by @a text_view . The previous
+ * buffer displayed by the text view is unreferenced, and a reference is
+ * added to @a buffer . If you owned a reference to @a buffer before passing it
+ * to this function, you must remove that reference yourself; Gtk::TextView
+ * will not "adopt" it.
+ * @param buffer A Gtk::TextBuffer.
+ */
+ void set_buffer(const Glib::RefPtr<TextBuffer>& buffer);
+
+ /** Returns the Gtk::TextBuffer being displayed by this text view.
+ * The reference count on the buffer is not incremented; the caller
+ * of this function won't own a new reference.
+ * @return A Gtk::TextBuffer.
+ */
+ Glib::RefPtr<TextBuffer> get_buffer();
+
+ /** Returns the Gtk::TextBuffer being displayed by this text view.
+ * The reference count on the buffer is not incremented; the caller
+ * of this function won't own a new reference.
+ * @return A Gtk::TextBuffer.
+ */
+ Glib::RefPtr<const TextBuffer> get_buffer() const;
+
+ #ifndef GTKMM_DISABLE_DEPRECATED
+ /** @deprecated Use scroll_to().
+ */
+ bool scroll_to_iter(TextBuffer::iterator& iter, double within_margin);
+
+ /** @deprecated Use scroll_to().
+ */
+ void scroll_to_mark(const Glib::RefPtr<TextBuffer::Mark>& mark, double within_margin);
+
+ /** @deprecated Use scroll_to()
+ */
+ void scroll_mark_onscreen(const Glib::RefPtr<TextBuffer::Mark>& mark);
+
+ #endif //GTKMM_DISABLE_DEPRECATED
+
+ /** Scrolls the TextView so that @a iter is on the screen, by scrolling the minimal distance to get the mark onscreen,
+ * possibly not scrolling at all. The effective screen for purposes of this function is reduced by a margin of size
+ * @a within_margin.
+ * @note This function uses the currently-computed height of the lines in the text buffer. Note that line heights are computed
+ * in an idle handler; so this function may not have the desired effect if it's called before the height computations. To avoid
+ * oddness, consider using gtk_text_view_scroll_to_mark() which saves a point to be scrolled to after line validation.
+ *
+ * @param iter An iterator pointing to the position that should be made visible by scrolling.
+ * @param within_margin margin as a [0.0,0.5] fraction of screen size.
+ * @result true if scrolling occurred.
+ */
+ bool scroll_to(TextBuffer::iterator& iter, double within_margin = 0);
+
+ /** Scrolls the TextView so that @a iter is on the screen, in the position indicated by xalign and yalign,
+ * possibly not scrolling at all. The effective screen for purposes of this function is reduced by a margin of size
+ * @a within_margin.
+ * @note This function uses the currently-computed height of the lines in the text buffer. Note that line heights are computed
+ * in an idle handler; so this function may not have the desired effect if it's called before the height computations. To avoid
+ * oddness, consider using gtk_text_view_scroll_to_mark() which saves a point to be scrolled to after line validation.
+ *
+ * @param iter An iterator pointing to the position that should be made visible by scrolling.
+ * @param within_margin margin as a [0.0,0.5] fraction of screen size.
+ * @param xalign horizontal alignment of mark within visible area. An alignment of 0.0 indicates left, 1.0 indicates right, 0.5 means center.
+ * @param yalign vertical alignment of mark within visible area. An alignment of 0.0 indicates top, 1.0 indicates bottom, 0.5 means center.
+ * @result true if scrolling occurred.
+ */
+ bool scroll_to(TextBuffer::iterator& iter, double within_margin, double xalign, double yalign);
+
+
+ /** Scrolls text_view so that @a mark is on the screen, by scrolling the minimal distance to get the mark onscreen,
+ * possibly not scrolling at all. The effective screen for purposes of this function is reduced by a margin of size
+ * @a within_margin.
+ *
+ * @param mark An mark pointing to the position that should be made visible by scrolling.
+ * @param within_margin margin as a [0.0,0.5] fraction of screen size.
+ */
+ void scroll_to(const Glib::RefPtr<TextBuffer::Mark>& mark, double within_margin = 0);
+
+ /** Scrolls the TextView so that @a iter is on the screen, in the position indicated by xalign and yalign,
+ * possibly not scrolling at all. The effective screen for purposes of this function is reduced by a margin of size
+ * @a within_margin.
+ *
+ * @param mark An mark pointing to the position that should be made visible by scrolling.
+ * @param within_margin margin as a [0.0,0.5] fraction of screen size.
+ * @param xalign horizontal alignment of mark within visible area. An alignment of 0.0 indicates left, 1.0 indicates right, 0.5 means center.
+ * @param yalign vertical alignment of mark within visible area. An alignment of 0.0 indicates top, 1.0 indicates bottom, 0.5 means center.
+ */
+ void scroll_to(const Glib::RefPtr<TextBuffer::Mark>& mark, double within_margin, double xalign, double yalign);
+
+
+ //It does not do anything more than the default scroll_to(mark).
+
+
+ /** Moves a mark within the buffer so that it's
+ * located within the currently-visible text area.
+ * @param mark A Gtk::TextMark.
+ * @return <tt>true</tt> if the mark moved (wasn't already onscreen).
+ */
+ bool move_mark_onscreen(const Glib::RefPtr<TextBuffer::Mark>& mark);
+
+ /** Moves the cursor to the currently visible region of the
+ * buffer, it it isn't there already.
+ * @return <tt>true</tt> if the cursor had to be moved.
+ */
+ bool place_cursor_onscreen();
+
+
+ /** Fills @a visible_rect with the currently-visible
+ * region of the buffer, in buffer coordinates. Convert to window coordinates
+ * with buffer_to_window_coords().
+ * @param visible_rect Rectangle to fill.
+ */
+ void get_visible_rect(Gdk::Rectangle& visible_rect) const;
+
+ /** Toggles whether the insertion point is displayed. A buffer with no editable
+ * text probably shouldn't have a visible cursor, so you may want to turn
+ * the cursor off.
+ * @param setting Whether to show the insertion cursor.
+ */
+ void set_cursor_visible(bool setting = true);
+
+ /** Find out whether the cursor is being displayed.
+ * @return Whether the insertion mark is visible.
+ */
+ bool get_cursor_visible() const;
+
+
+ /** Gets a rectangle which roughly contains the character at @a iter .
+ * The rectangle position is in buffer coordinates; use
+ * buffer_to_window_coords() to convert these
+ * coordinates to coordinates for one of the windows in the text view.
+ * @param iter A Gtk::TextIter.
+ * @param location Bounds of the character at @a iter .
+ */
+ void get_iter_location(const TextBuffer::iterator& iter, Gdk::Rectangle& location) const;
+
+ /** Retrieves the iterator at buffer coordinates @a x and @a y . Buffer
+ * coordinates are coordinates for the entire buffer, not just the
+ * currently-displayed portion. If you have coordinates from an
+ * event, you have to convert those to buffer coordinates with
+ * window_to_buffer_coords().
+ * @param iter A Gtk::TextIter.
+ * @param x X position, in buffer coordinates.
+ * @param y Y position, in buffer coordinates.
+ */
+ void get_iter_at_location(TextBuffer::iterator& iter, int x, int y) const;
+
+ /** Retrieves the iterator pointing to the character at buffer
+ * coordinates @a x and @a y . Buffer coordinates are coordinates for
+ * the entire buffer, not just the currently-displayed portion.
+ * If you have coordinates from an event, you have to convert
+ * those to buffer coordinates with
+ * window_to_buffer_coords().
+ *
+ * Note that this is diffferent from get_iter_at_location(),
+ * which returns cursor locations, i.e. positions <em>between</em>
+ * characters.
+ *
+ * Since: 2.6
+ * @param iter A Gtk::TextIter.
+ * @param x X position, in buffer coordinates.
+ * @param y Y position, in buffer coordinates.
+ */
+ void get_iter_at_position(TextBuffer::iterator& iter, int& trailing, int x, int y) const;
+
+ /** Gets the y coordinate of the top of the line containing @a iter ,
+ * and the height of the line. The coordinate is a buffer coordinate;
+ * convert to window coordinates with buffer_to_window_coords().
+ * @param iter A Gtk::TextIter.
+ * @param y Return location for a y coordinate.
+ * @param height Return location for a height.
+ */
+ void get_line_yrange(const TextBuffer::iterator& iter, int& y, int& height) const;
+
+
+ /** Gets the Gtk::TextIter at the start of the line containing
+ * the coordinate @a y . @a y is in buffer coordinates, convert from
+ * window coordinates with window_to_buffer_coords().
+ * If non-<tt>0</tt>, @a line_top will be filled with the coordinate of the top
+ * edge of the line.
+ * @param target_iter A Gtk::TextIter.
+ * @param y A y coordinate.
+ * @param line_top Return location for top coordinate of the line.
+ */
+ void get_line_at_y(TextBuffer::iterator& target_iter, int y, int& line_top) const;
+
+
+ /** Converts coordinate ( @a buffer_x , @a buffer_y ) to coordinates for the window
+ * @a win , and stores the result in ( @a window_x , @a window_y ).
+ *
+ * Note that you can't convert coordinates for a nonexisting window (see
+ * set_border_window_size()).
+ * @param win A Gtk::TextWindowType except Gtk::TEXT_WINDOW_PRIVATE.
+ * @param buffer_x Buffer x coordinate.
+ * @param buffer_y Buffer y coordinate.
+ * @param window_x Window x coordinate return location.
+ * @param window_y Window y coordinate return location.
+ */
+ void buffer_to_window_coords(TextWindowType win,
+ int buffer_x, int buffer_y,
+ int& window_x, int& window_y) const;
+
+ /** Converts coordinates on the window identified by @a win to buffer
+ * coordinates, storing the result in ( @a buffer_x , @a buffer_y ).
+ *
+ * Note that you can't convert coordinates for a nonexisting window (see
+ * set_border_window_size()).
+ * @param win A Gtk::TextWindowType except Gtk::TEXT_WINDOW_PRIVATE.
+ * @param window_x Window x coordinate.
+ * @param window_y Window y coordinate.
+ * @param buffer_x Buffer x coordinate return location.
+ * @param buffer_y Buffer y coordinate return location.
+ */
+ void window_to_buffer_coords(TextWindowType win,
+ int window_x, int window_y,
+ int& buffer_x, int& buffer_y) const;
+
+
+ /** Retrieves the Gdk::Window corresponding to an area of the text view;
+ * possible windows include the overall widget window, child windows
+ * on the left, right, top, bottom, and the window that displays the
+ * text buffer. Windows are <tt>0</tt> and nonexistent if their width or
+ * height is 0, and are nonexistent before the widget has been
+ * realized.
+ * @param win Window to get.
+ * @return A Gdk::Window, or <tt>0</tt>.
+ */
+ Glib::RefPtr<Gdk::Window> get_window(TextWindowType win);
+
+ /** Retrieves the Gdk::Window corresponding to an area of the text view;
+ * possible windows include the overall widget window, child windows
+ * on the left, right, top, bottom, and the window that displays the
+ * text buffer. Windows are <tt>0</tt> and nonexistent if their width or
+ * height is 0, and are nonexistent before the widget has been
+ * realized.
+ * @param win Window to get.
+ * @return A Gdk::Window, or <tt>0</tt>.
+ */
+ Glib::RefPtr<const Gdk::Window> get_window(TextWindowType win) const;
+
+ /** Usually used to find out which window an event corresponds to.
+ * If you connect to an event signal on @a text_view , this function
+ * should be called on <tt>event->window</tt> to
+ * see which window it was.
+ * @param window A window type.
+ * @return The window type.
+ */
+ TextWindowType get_window_type(const Glib::RefPtr<Gdk::Window>& window);
+
+
+ /** Sets the width of Gtk::TEXT_WINDOW_LEFT or Gtk::TEXT_WINDOW_RIGHT,
+ * or the height of Gtk::TEXT_WINDOW_TOP or Gtk::TEXT_WINDOW_BOTTOM.
+ * Automatically destroys the corresponding window if the size is set
+ * to 0, and creates the window if the size is set to non-zero. This
+ * function can only be used for the "border windows," it doesn't work
+ * with Gtk::TEXT_WINDOW_WIDGET, Gtk::TEXT_WINDOW_TEXT, or
+ * Gtk::TEXT_WINDOW_PRIVATE.
+ * @param type Window to affect.
+ * @param size Width or height of the window.
+ */
+ void set_border_window_size(TextWindowType type, int size);
+
+ /** Gets the width of the specified border window. See
+ * set_border_window_size().
+ * @param type Window to return size from.
+ * @return Width of window.
+ */
+ int get_border_window_size(TextWindowType type) const;
+
+
+ /** Moves the given @a iter forward by one display (wrapped) line. A
+ * display line is different from a paragraph. Paragraphs are
+ * separated by newlines or other paragraph separator characters.
+ * Display lines are created by line-wrapping a paragraph. If
+ * wrapping is turned off, display lines and paragraphs will be the
+ * same. Display lines are divided differently for each view, since
+ * they depend on the view's width; paragraphs are the same in all
+ * views, since they depend on the contents of the Gtk::TextBuffer.
+ * @param iter A Gtk::TextIter.
+ * @return <tt>true</tt> if @a iter was moved and is not on the end iterator.
+ */
+ bool forward_display_line(TextBuffer::iterator& iter);
+
+ /** Moves the given @a iter backward by one display (wrapped) line. A
+ * display line is different from a paragraph. Paragraphs are
+ * separated by newlines or other paragraph separator characters.
+ * Display lines are created by line-wrapping a paragraph. If
+ * wrapping is turned off, display lines and paragraphs will be the
+ * same. Display lines are divided differently for each view, since
+ * they depend on the view's width; paragraphs are the same in all
+ * views, since they depend on the contents of the Gtk::TextBuffer.
+ * @param iter A Gtk::TextIter.
+ * @return <tt>true</tt> if @a iter was moved and is not on the end iterator.
+ */
+ bool backward_display_line(TextBuffer::iterator& iter);
+
+ /** Moves the given @a iter forward to the next display line end. A
+ * display line is different from a paragraph. Paragraphs are
+ * separated by newlines or other paragraph separator characters.
+ * Display lines are created by line-wrapping a paragraph. If
+ * wrapping is turned off, display lines and paragraphs will be the
+ * same. Display lines are divided differently for each view, since
+ * they depend on the view's width; paragraphs are the same in all
+ * views, since they depend on the contents of the Gtk::TextBuffer.
+ * @param iter A Gtk::TextIter.
+ * @return <tt>true</tt> if @a iter was moved and is not on the end iterator.
+ */
+ bool forward_display_line_end(TextBuffer::iterator& iter);
+
+ /** Moves the given @a iter backward to the next display line start. A
+ * display line is different from a paragraph. Paragraphs are
+ * separated by newlines or other paragraph separator characters.
+ * Display lines are created by line-wrapping a paragraph. If
+ * wrapping is turned off, display lines and paragraphs will be the
+ * same. Display lines are divided differently for each view, since
+ * they depend on the view's width; paragraphs are the same in all
+ * views, since they depend on the contents of the Gtk::TextBuffer.
+ * @param iter A Gtk::TextIter.
+ * @return <tt>true</tt> if @a iter was moved and is not on the end iterator.
+ */
+ bool backward_display_line_start(TextBuffer::iterator& iter);
+
+ /** Determines whether @a iter is at the start of a display line.
+ * See forward_display_line() for an explanation of
+ * display lines vs. paragraphs.
+ * @param iter A Gtk::TextIter.
+ * @return <tt>true</tt> if @a iter begins a wrapped line.
+ */
+ bool starts_display_line(const TextBuffer::iterator& iter);
+
+ /** Move the iterator a given number of characters visually, treating
+ * it as the strong cursor position. If @a count is positive, then the
+ * new strong cursor position will be @a count positions to the right of
+ * the old cursor position. If @a count is negative then the new strong
+ * cursor position will be @a count positions to the left of the old
+ * cursor position.
+ *
+ * In the presence of bidirection text, the correspondence
+ * between logical and visual order will depend on the direction
+ * of the current run, and there may be jumps when the cursor
+ * is moved off of the end of a run.
+ * @param iter A Gtk::TextIter.
+ * @param count Number of characters to move (negative moves left, positive moves right).
+ * @return <tt>true</tt> if @a iter moved and is not on the end iterator.
+ */
+ bool move_visually(TextBuffer::iterator& iter, int count);
+
+
+ /** Adds a child widget in the text buffer, at the given @a anchor .
+ * @param child A Gtk::Widget.
+ * @param anchor A Gtk::TextChildAnchor in the Gtk::TextBuffer for @a text_view .
+ */
+ void add_child_at_anchor(Widget& child, const Glib::RefPtr<TextBuffer::ChildAnchor>& anchor);
+
+
+ /** Adds a child at fixed coordinates in one of the text widget's
+ * windows. The window must have nonzero size (see
+ * set_border_window_size()). Note that the child
+ * coordinates are given relative to the Gdk::Window in question, and
+ * that these coordinates have no sane relationship to scrolling. When
+ * placing a child in Gtk::TEXT_WINDOW_WIDGET, scrolling is
+ * irrelevant, the child floats above all scrollable areas. But when
+ * placing a child in one of the scrollable windows (border windows or
+ * text window), you'll need to compute the child's correct position
+ * in buffer coordinates any time scrolling occurs or buffer changes
+ * occur, and then call move_child() to update the
+ * child's position. Unfortunately there's no good way to detect that
+ * scrolling has occurred, using the current API; a possible hack
+ * would be to update all child positions when the scroll adjustments
+ * change or the text buffer changes. See bug 64518 on
+ * bugzilla.gnome.org for status of fixing this issue.
+ * @param child A Gtk::Widget.
+ * @param which_window Which window the child should appear in.
+ * @param xpos X position of child in window coordinates.
+ * @param ypos Y position of child in window coordinates.
+ */
+ void add_child_in_window(Widget& child, TextWindowType which_window,
+ int xpos, int ypos);
+
+
+ /** Updates the position of a child, as for add_child_in_window().
+ * @param child Child widget already added to the text view.
+ * @param xpos New X position in window coordinates.
+ * @param ypos New Y position in window coordinates.
+ */
+ void move_child(Widget& child, int xpos,int ypos);
+
+
+ /** Sets the line wrapping for the view.
+ * @param wrap_mode A Gtk::WrapMode.
+ */
+ void set_wrap_mode(WrapMode wrap_mode);
+
+ /** Gets the line wrapping for the view.
+ * @return The line wrap setting.
+ */
+ WrapMode get_wrap_mode() const;
+
+ /** Sets the default editability of the Gtk::TextView. You can override
+ * this default setting with tags in the buffer, using the "editable"
+ * attribute of tags.
+ * @param setting Whether it's editable.
+ */
+ void set_editable(bool setting = true);
+
+ /** Returns the default editability of the Gtk::TextView. Tags in the
+ * buffer may override this setting for some ranges of text.
+ * @return Whether text is editable by default.
+ */
+ bool get_editable() const;
+
+ /** Sets the default number of blank pixels above paragraphs in @a text_view .
+ * Tags in the buffer for @a text_view may override the defaults.
+ * @param pixels_above_lines Pixels above paragraphs.
+ */
+ void set_pixels_above_lines(int pixels_above_lines);
+
+ /** Gets the default number of pixels to put above paragraphs.
+ * @return Default number of pixels above paragraphs.
+ */
+ int get_pixels_above_lines() const;
+
+ /** Sets the default number of pixels of blank space
+ * to put below paragraphs in @a text_view . May be overridden
+ * by tags applied to @a text_view 's buffer.
+ * @param pixels_below_lines Pixels below paragraphs.
+ */
+ void set_pixels_below_lines(int pixels_below_lines);
+
+ /** Gets the value set by set_pixels_below_lines().
+ * @return Default number of blank pixels below paragraphs.
+ */
+ int get_pixels_below_lines() const;
+
+ /** Sets the default number of pixels of blank space to leave between
+ * display/wrapped lines within a paragraph. May be overridden by
+ * tags in @a text_view 's buffer.
+ * @param pixels_inside_wrap Default number of pixels between wrapped lines.
+ */
+ void set_pixels_inside_wrap(int pixels_inside_wrap);
+
+ /** Gets the value set by set_pixels_inside_wrap().
+ * @return Default number of pixels of blank space between wrapped lines.
+ */
+ int get_pixels_inside_wrap() const;
+
+ /** Sets the default justification of text in @a text_view .
+ * Tags in the view's buffer may override the default.
+ * @param justification Justification.
+ */
+ void set_justification(Justification justification);
+
+ /** Gets the default justification of paragraphs in @a text_view .
+ * Tags in the buffer may override the default.
+ * @return Default justification.
+ */
+ Justification get_justification() const;
+
+ /** Sets the default left margin for text in @a text_view .
+ * Tags in the buffer may override the default.
+ * @param left_margin Left margin in pixels.
+ */
+ void set_left_margin(int left_margin);
+
+ /** Gets the default left margin size of paragraphs in the @a text_view .
+ * Tags in the buffer may override the default.
+ * @return Left margin in pixels.
+ */
+ int get_left_margin() const;
+
+ /** Sets the default right margin for text in the text view.
+ * Tags in the buffer may override the default.
+ * @param right_margin Right margin in pixels.
+ */
+ void set_right_margin(int right_margin);
+
+ /** Gets the default right margin for text in @a text_view . Tags
+ * in the buffer may override the default.
+ * @return Right margin in pixels.
+ */
+ int get_right_margin() const;
+
+ /** Sets the default indentation for paragraphs in @a text_view .
+ * Tags in the buffer may override the default.
+ * @param indent Indentation in pixels.
+ */
+ void set_indent(int indent);
+
+ /** Gets the default indentation of paragraphs in @a text_view .
+ * Tags in the view's buffer may override the default.
+ * The indentation may be negative.
+ * @return Number of pixels of indentation.
+ */
+ int get_indent() const;
+
+ /** Sets the default tab stops for paragraphs in @a text_view .
+ * Tags in the buffer may override the default.
+ * @param tabs Tabs as a Pango::TabArray.
+ */
+ void set_tabs(Pango::TabArray& tabs);
+
+ /** Gets the default tabs for @a text_view . Tags in the buffer may
+ * override the defaults. The returned array will be <tt>0</tt> if
+ * "standard" (8-space) tabs are used.
+ * @return Copy of default tab array, or <tt>0</tt> if "standard" tabs are used.
+ */
+ Pango::TabArray get_tabs() const;
+
+ /** Obtains a copy of the default text attributes. These are the
+ * attributes used for text unless a tag overrides them.
+ * You'd typically pass the default attributes in to
+ * Gtk::TextIter::get_attributes() in order to get the
+ * attributes in effect at a given text position.
+ * @return A new #Gtk::TextAttributes.
+ */
+ TextAttributes get_default_attributes() const;
+
+
+ /** Changes the Gtk::TextView overwrite mode.
+ *
+ * Since: 2.4
+ * @param overwrite <tt>true</tt> to turn on overwrite mode, <tt>false</tt> to turn it off.
+ */
+ void set_overwrite(bool overwrite = true);
+
+ /** Returns whether the Gtk::TextView is in overwrite mode or not.
+ * @return Whether @a text_view is in overwrite mode or not.
+ *
+ * Since: 2.4.
+ */
+ bool get_overwrite() const;
+
+
+ /** Sets the behavior of the text widget when the Tab key is pressed. If @a accepts_tab
+ * is <tt>true</tt> a tab character is inserted. If @a accepts_tab is <tt>false</tt> the keyboard focus
+ * is moved to the next widget in the focus chain.
+ *
+ * Since: 2.4
+ * @param accepts_tab <tt>true</tt> if pressing the Tab key should insert a tab character, <tt>false</tt>, if pressing the Tab key should move the keyboard focus.
+ */
+ void set_accepts_tab(bool accepts_tab = true);
+
+ /** Returns whether pressing the Tab key inserts a tab characters.
+ * set_accepts_tab().
+ * @return <tt>true</tt> if pressing the Tab key inserts a tab character, <tt>false</tt> if pressing the Tab key moves the keyboard focus.
+ *
+ * Since: 2.4.
+ */
+ bool get_accepts_tab() const;
+
+
+ Glib::SignalProxy2< void,Adjustment*,Adjustment* > signal_set_scroll_adjustments();
+
+
+ Glib::SignalProxy1< void,Menu* > signal_populate_popup();
+
+
+ Glib::SignalProxy0< void > signal_set_anchor();
+
+
+ Glib::SignalProxy1< void,const Glib::ustring& > signal_insert_at_cursor();
+
+
+ //Keybinding signals:
+
+
+ /** Pixels of blank space above paragraphs.
+ *
+ * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+ * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+ * the value of the property changes.
+ */
+ Glib::PropertyProxy<int> property_pixels_above_lines() ;
+
+/** Pixels of blank space above paragraphs.
+ *
+ * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+ * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+ * the value of the property changes.
+ */
+ Glib::PropertyProxy_ReadOnly<int> property_pixels_above_lines() const;
+
+ /** Pixels of blank space below paragraphs.
+ *
+ * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+ * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+ * the value of the property changes.
+ */
+ Glib::PropertyProxy<int> property_pixels_below_lines() ;
+
+/** Pixels of blank space below paragraphs.
+ *
+ * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+ * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+ * the value of the property changes.
+ */
+ Glib::PropertyProxy_ReadOnly<int> property_pixels_below_lines() const;
+
+ /** Pixels of blank space between wrapped lines in a paragraph.
+ *
+ * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+ * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+ * the value of the property changes.
+ */
+ Glib::PropertyProxy<int> property_pixels_inside_wrap() ;
+
+/** Pixels of blank space between wrapped lines in a paragraph.
+ *
+ * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+ * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+ * the value of the property changes.
+ */
+ Glib::PropertyProxy_ReadOnly<int> property_pixels_inside_wrap() const;
+
+ /** Whether the text can be modified by the user.
+ *
+ * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+ * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+ * the value of the property changes.
+ */
+ Glib::PropertyProxy<bool> property_editable() ;
+
+/** Whether the text can be modified by the user.
+ *
+ * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+ * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+ * the value of the property changes.
+ */
+ Glib::PropertyProxy_ReadOnly<bool> property_editable() const;
+
+ /** Whether to wrap lines never
+ *
+ * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+ * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+ * the value of the property changes.
+ */
+ Glib::PropertyProxy<WrapMode> property_wrap_mode() ;
+
+/** Whether to wrap lines never
+ *
+ * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+ * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+ * the value of the property changes.
+ */
+ Glib::PropertyProxy_ReadOnly<WrapMode> property_wrap_mode() const;
+
+ /** Left
+ *
+ * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+ * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+ * the value of the property changes.
+ */
+ Glib::PropertyProxy<Justification> property_justification() ;
+
+/** Left
+ *
+ * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+ * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+ * the value of the property changes.
+ */
+ Glib::PropertyProxy_ReadOnly<Justification> property_justification() const;
+
+ /** Width of the left margin in pixels.
+ *
+ * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+ * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+ * the value of the property changes.
+ */
+ Glib::PropertyProxy<int> property_left_margin() ;
+
+/** Width of the left margin in pixels.
+ *
+ * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+ * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+ * the value of the property changes.
+ */
+ Glib::PropertyProxy_ReadOnly<int> property_left_margin() const;
+
+ /** Width of the right margin in pixels.
+ *
+ * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+ * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+ * the value of the property changes.
+ */
+ Glib::PropertyProxy<int> property_right_margin() ;
+
+/** Width of the right margin in pixels.
+ *
+ * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+ * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+ * the value of the property changes.
+ */
+ Glib::PropertyProxy_ReadOnly<int> property_right_margin() const;
+
+ /** Amount to indent the paragraph
+ *
+ * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+ * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+ * the value of the property changes.
+ */
+ Glib::PropertyProxy<int> property_indent() ;
+
+/** Amount to indent the paragraph
+ *
+ * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+ * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+ * the value of the property changes.
+ */
+ Glib::PropertyProxy_ReadOnly<int> property_indent() const;
+
+ /** Custom tabs for this text.
+ *
+ * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+ * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+ * the value of the property changes.
+ */
+ Glib::PropertyProxy<Pango::TabArray> property_tabs() ;
+
+/** Custom tabs for this text.
+ *
+ * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+ * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+ * the value of the property changes.
+ */
+ Glib::PropertyProxy_ReadOnly<Pango::TabArray> property_tabs() const;
+
+ /** If the insertion cursor is shown.
+ *
+ * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+ * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+ * the value of the property changes.
+ */
+ Glib::PropertyProxy<bool> property_cursor_visible() ;
+
+/** If the insertion cursor is shown.
+ *
+ * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+ * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+ * the value of the property changes.
+ */
+ Glib::PropertyProxy_ReadOnly<bool> property_cursor_visible() const;
+
+ /** The buffer which is displayed.
+ *
+ * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+ * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+ * the value of the property changes.
+ */
+ Glib::PropertyProxy< Glib::RefPtr<TextBuffer> > property_buffer() ;
+
+/** The buffer which is displayed.
+ *
+ * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+ * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+ * the value of the property changes.
+ */
+ Glib::PropertyProxy_ReadOnly< Glib::RefPtr<TextBuffer> > property_buffer() const;
+
+ /** Whether entered text overwrites existing contents.
+ *
+ * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+ * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+ * the value of the property changes.
+ */
+ Glib::PropertyProxy<bool> property_overwrite() ;
+
+/** Whether entered text overwrites existing contents.
+ *
+ * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+ * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+ * the value of the property changes.
+ */
+ Glib::PropertyProxy_ReadOnly<bool> property_overwrite() const;
+
+ /** Whether Tab will result in a tab character being entered.
+ *
+ * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+ * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+ * the value of the property changes.
+ */
+ Glib::PropertyProxy<bool> property_accepts_tab() ;
+
+/** Whether Tab will result in a tab character being entered.
+ *
+ * You rarely need to use properties because there are get_ and set_ methods for almost all of them.
+ * @return A PropertyProxy that allows you to get or set the property of the value, or receive notification when
+ * the value of the property changes.
+ */
+ Glib::PropertyProxy_ReadOnly<bool> property_accepts_tab() const;
+
+
+};
+
+} /* namespace Gtk */
+
+
+namespace Glib
+{
+ /** @relates Gtk::TextView
+ * @param object The C instance
+ * @param take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref.
+ * @result A C++ instance that wraps this C instance.
+ */
+ Gtk::TextView* wrap(GtkTextView* object, bool take_copy = false);
+}
+#endif /* _GTKMM_TEXTVIEW_H */
+