Move sealed attributes to private struct.

This commit is contained in:
Ignacio Casal Quinteiro 2010-07-11 11:55:44 +02:00
parent 75e75cd305
commit d219adfa5a
4 changed files with 1115 additions and 939 deletions

File diff suppressed because it is too large Load Diff

View File

@ -58,98 +58,15 @@ typedef enum
#define GTK_TEXT_VIEW_PRIORITY_VALIDATE (GDK_PRIORITY_REDRAW + 5) #define GTK_TEXT_VIEW_PRIORITY_VALIDATE (GDK_PRIORITY_REDRAW + 5)
typedef struct _GtkTextView GtkTextView; typedef struct _GtkTextView GtkTextView;
typedef struct _GtkTextViewClass GtkTextViewClass; typedef struct _GtkTextViewPrivate GtkTextViewPrivate;
typedef struct _GtkTextViewClass GtkTextViewClass;
/* Internal private types. */
typedef struct _GtkTextWindow GtkTextWindow;
typedef struct _GtkTextPendingScroll GtkTextPendingScroll;
struct _GtkTextView struct _GtkTextView
{ {
GtkContainer parent_instance; GtkContainer parent_instance;
struct _GtkTextLayout *GSEAL (layout); GtkTextViewPrivate *priv;
GtkTextBuffer *GSEAL (buffer);
guint GSEAL (selection_drag_handler);
guint GSEAL (scroll_timeout);
/* Default style settings */
gint GSEAL (pixels_above_lines);
gint GSEAL (pixels_below_lines);
gint GSEAL (pixels_inside_wrap);
GtkWrapMode GSEAL (wrap_mode);
GtkJustification GSEAL (justify);
gint GSEAL (left_margin);
gint GSEAL (right_margin);
gint GSEAL (indent);
PangoTabArray *GSEAL (tabs);
guint GSEAL (editable) : 1;
guint GSEAL (overwrite_mode) : 1;
guint GSEAL (cursor_visible) : 1;
/* if we have reset the IM since the last character entered */
guint GSEAL (need_im_reset) : 1;
guint GSEAL (accepts_tab) : 1;
guint GSEAL (width_changed) : 1;
/* debug flag - means that we've validated onscreen since the
* last "invalidate" signal from the layout
*/
guint GSEAL (onscreen_validated) : 1;
guint GSEAL (mouse_cursor_obscured) : 1;
GtkTextWindow *GSEAL (text_window);
GtkTextWindow *GSEAL (left_window);
GtkTextWindow *GSEAL (right_window);
GtkTextWindow *GSEAL (top_window);
GtkTextWindow *GSEAL (bottom_window);
GtkAdjustment *GSEAL (hadjustment);
GtkAdjustment *GSEAL (vadjustment);
gint GSEAL (xoffset); /* Offsets between widget coordinates and buffer coordinates */
gint GSEAL (yoffset);
gint GSEAL (width); /* Width and height of the buffer */
gint GSEAL (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 GSEAL (virtual_cursor_x); /* -1 means use actual cursor position */
gint GSEAL (virtual_cursor_y); /* -1 means use actual cursor position */
GtkTextMark *GSEAL (first_para_mark); /* Mark at the beginning of the first onscreen paragraph */
gint GSEAL (first_para_pixels); /* Offset of top of screen in the first onscreen paragraph */
GtkTextMark *GSEAL (dnd_mark);
guint GSEAL (blink_timeout);
guint GSEAL (first_validate_idle); /* Idle to revalidate onscreen portion, runs before resize */
guint GSEAL (incremental_validate_idle); /* Idle to revalidate offscreen portions, runs after redraw */
GtkIMContext *GSEAL (im_context);
GtkWidget *GSEAL (popup_menu);
gint GSEAL (drag_start_x);
gint GSEAL (drag_start_y);
GSList *GSEAL (children);
GtkTextPendingScroll *GSEAL (pending_scroll);
gint GSEAL (pending_place_cursor_button);
}; };
struct _GtkTextViewClass struct _GtkTextViewClass

View File

@ -216,9 +216,7 @@ setup_buffer (GtkTextView *view,
{ {
GtkTextBuffer *buffer; GtkTextBuffer *buffer;
buffer = view->buffer; buffer = gtk_text_view_get_buffer (view);
if (buffer == NULL)
return;
if (gail_view->textutil) if (gail_view->textutil)
g_object_unref (gail_view->textutil); g_object_unref (gail_view->textutil);
@ -357,7 +355,7 @@ gail_text_view_get_text (AtkText *text,
return NULL; return NULL;
view = GTK_TEXT_VIEW (widget); view = GTK_TEXT_VIEW (widget);
buffer = view->buffer; buffer = gtk_text_view_get_buffer (view);
gtk_text_buffer_get_iter_at_offset (buffer, &start, start_offset); gtk_text_buffer_get_iter_at_offset (buffer, &start, start_offset);
gtk_text_buffer_get_iter_at_offset (buffer, &end, end_offset); gtk_text_buffer_get_iter_at_offset (buffer, &end, end_offset);
@ -461,7 +459,7 @@ gail_text_view_get_character_count (AtkText *text)
return 0; return 0;
view = GTK_TEXT_VIEW (widget); view = GTK_TEXT_VIEW (widget);
buffer = view->buffer; buffer = gtk_text_view_get_buffer (view);
return gtk_text_buffer_get_char_count (buffer); return gtk_text_buffer_get_char_count (buffer);
} }
@ -477,7 +475,7 @@ gail_text_view_get_caret_offset (AtkText *text)
return 0; return 0;
view = GTK_TEXT_VIEW (widget); view = GTK_TEXT_VIEW (widget);
return get_insert_offset (view->buffer); return get_insert_offset (gtk_text_view_get_buffer (view));
} }
static gboolean static gboolean
@ -495,7 +493,7 @@ gail_text_view_set_caret_offset (AtkText *text,
return FALSE; return FALSE;
view = GTK_TEXT_VIEW (widget); view = GTK_TEXT_VIEW (widget);
buffer = view->buffer; buffer = gtk_text_view_get_buffer (view);
gtk_text_buffer_get_iter_at_offset (buffer, &pos_itr, offset); gtk_text_buffer_get_iter_at_offset (buffer, &pos_itr, offset);
gtk_text_buffer_place_cursor (buffer, &pos_itr); gtk_text_buffer_place_cursor (buffer, &pos_itr);
@ -523,7 +521,7 @@ gail_text_view_get_offset_at_point (AtkText *text,
return -1; return -1;
view = GTK_TEXT_VIEW (widget); view = GTK_TEXT_VIEW (widget);
buffer = view->buffer; buffer = gtk_text_view_get_buffer (view);
window = gtk_text_view_get_window (view, GTK_TEXT_WINDOW_WIDGET); window = gtk_text_view_get_window (view, GTK_TEXT_WINDOW_WIDGET);
gdk_window_get_origin (window, &x_widget, &y_widget); gdk_window_get_origin (window, &x_widget, &y_widget);
@ -587,7 +585,7 @@ gail_text_view_get_character_extents (AtkText *text,
return; return;
view = GTK_TEXT_VIEW (widget); view = GTK_TEXT_VIEW (widget);
buffer = view->buffer; buffer = gtk_text_view_get_buffer (view);
gtk_text_buffer_get_iter_at_offset (buffer, &iter, offset); gtk_text_buffer_get_iter_at_offset (buffer, &iter, offset);
gtk_text_view_get_iter_location (view, &iter, &rectangle); gtk_text_view_get_iter_location (view, &iter, &rectangle);
@ -627,6 +625,7 @@ gail_text_view_get_run_attributes (AtkText *text,
gint *end_offset) gint *end_offset)
{ {
GtkTextView *view; GtkTextView *view;
GtkTextBuffer *buffer;
GtkWidget *widget; GtkWidget *widget;
widget = GTK_ACCESSIBLE (text)->widget; widget = GTK_ACCESSIBLE (text)->widget;
@ -635,8 +634,9 @@ gail_text_view_get_run_attributes (AtkText *text,
return NULL; return NULL;
view = GTK_TEXT_VIEW (widget); view = GTK_TEXT_VIEW (widget);
buffer = gtk_text_view_get_buffer (view);
return gail_misc_buffer_get_run_attributes (view->buffer, offset, return gail_misc_buffer_get_run_attributes (buffer, offset,
start_offset, end_offset); start_offset, end_offset);
} }
@ -771,7 +771,7 @@ gail_text_view_get_n_selections (AtkText *text)
return -1; return -1;
view = GTK_TEXT_VIEW (widget); view = GTK_TEXT_VIEW (widget);
buffer = view->buffer; buffer = gtk_text_view_get_buffer (view);
gtk_text_buffer_get_selection_bounds (buffer, &start, &end); gtk_text_buffer_get_selection_bounds (buffer, &start, &end);
select_start = gtk_text_iter_get_offset (&start); select_start = gtk_text_iter_get_offset (&start);
@ -806,7 +806,7 @@ gail_text_view_get_selection (AtkText *text,
return NULL; return NULL;
view = GTK_TEXT_VIEW (widget); view = GTK_TEXT_VIEW (widget);
buffer = view->buffer; buffer = gtk_text_view_get_buffer (view);
gtk_text_buffer_get_selection_bounds (buffer, &start, &end); gtk_text_buffer_get_selection_bounds (buffer, &start, &end);
*start_pos = gtk_text_iter_get_offset (&start); *start_pos = gtk_text_iter_get_offset (&start);
@ -836,7 +836,7 @@ gail_text_view_add_selection (AtkText *text,
return FALSE; return FALSE;
view = GTK_TEXT_VIEW (widget); view = GTK_TEXT_VIEW (widget);
buffer = view->buffer; buffer = gtk_text_view_get_buffer (view);
gtk_text_buffer_get_selection_bounds (buffer, &start, &end); gtk_text_buffer_get_selection_bounds (buffer, &start, &end);
select_start = gtk_text_iter_get_offset (&start); select_start = gtk_text_iter_get_offset (&start);
@ -878,7 +878,7 @@ gail_text_view_remove_selection (AtkText *text,
return FALSE; return FALSE;
view = GTK_TEXT_VIEW (widget); view = GTK_TEXT_VIEW (widget);
buffer = view->buffer; buffer = gtk_text_view_get_buffer (view);
gtk_text_buffer_get_selection_bounds(buffer, &start, &end); gtk_text_buffer_get_selection_bounds(buffer, &start, &end);
select_start = gtk_text_iter_get_offset(&start); select_start = gtk_text_iter_get_offset(&start);
@ -925,7 +925,7 @@ gail_text_view_set_selection (AtkText *text,
return FALSE; return FALSE;
view = GTK_TEXT_VIEW (widget); view = GTK_TEXT_VIEW (widget);
buffer = view->buffer; buffer = gtk_text_view_get_buffer (view);
gtk_text_buffer_get_selection_bounds(buffer, &start, &end); gtk_text_buffer_get_selection_bounds(buffer, &start, &end);
select_start = gtk_text_iter_get_offset(&start); select_start = gtk_text_iter_get_offset(&start);
@ -983,7 +983,7 @@ gail_text_view_set_run_attributes (AtkEditableText *text,
if (!gtk_text_view_get_editable (view)) if (!gtk_text_view_get_editable (view))
return FALSE; return FALSE;
buffer = view->buffer; buffer = gtk_text_view_get_buffer (view);
if (attrib_set == NULL) if (attrib_set == NULL)
return FALSE; return FALSE;
@ -1194,7 +1194,7 @@ gail_text_view_set_text_contents (AtkEditableText *text,
view = GTK_TEXT_VIEW (widget); view = GTK_TEXT_VIEW (widget);
if (!gtk_text_view_get_editable (view)) if (!gtk_text_view_get_editable (view))
return; return;
buffer = view->buffer; buffer = gtk_text_view_get_buffer (view);
/* The -1 indicates that the input string must be null-terminated */ /* The -1 indicates that the input string must be null-terminated */
gtk_text_buffer_set_text (buffer, string, -1); gtk_text_buffer_set_text (buffer, string, -1);
@ -1219,7 +1219,7 @@ gail_text_view_insert_text (AtkEditableText *text,
view = GTK_TEXT_VIEW (widget); view = GTK_TEXT_VIEW (widget);
if (!gtk_text_view_get_editable (view)) if (!gtk_text_view_get_editable (view))
return; return;
buffer = view->buffer; buffer = gtk_text_view_get_buffer (view);
gtk_text_buffer_get_iter_at_offset (buffer, &pos_itr, *position); gtk_text_buffer_get_iter_at_offset (buffer, &pos_itr, *position);
gtk_text_buffer_insert (buffer, &pos_itr, string, length); gtk_text_buffer_insert (buffer, &pos_itr, string, length);
@ -1243,7 +1243,7 @@ gail_text_view_copy_text (AtkEditableText *text,
return; return;
view = GTK_TEXT_VIEW (widget); view = GTK_TEXT_VIEW (widget);
buffer = view->buffer; buffer = gtk_text_view_get_buffer (view);
gtk_text_buffer_get_iter_at_offset (buffer, &start, start_pos); gtk_text_buffer_get_iter_at_offset (buffer, &start, start_pos);
gtk_text_buffer_get_iter_at_offset (buffer, &end, end_pos); gtk_text_buffer_get_iter_at_offset (buffer, &end, end_pos);
@ -1273,7 +1273,7 @@ gail_text_view_cut_text (AtkEditableText *text,
view = GTK_TEXT_VIEW (widget); view = GTK_TEXT_VIEW (widget);
if (!gtk_text_view_get_editable (view)) if (!gtk_text_view_get_editable (view))
return; return;
buffer = view->buffer; buffer = gtk_text_view_get_buffer (view);
gtk_text_buffer_get_iter_at_offset (buffer, &start, start_pos); gtk_text_buffer_get_iter_at_offset (buffer, &start, start_pos);
gtk_text_buffer_get_iter_at_offset (buffer, &end, end_pos); gtk_text_buffer_get_iter_at_offset (buffer, &end, end_pos);
@ -1303,7 +1303,7 @@ gail_text_view_delete_text (AtkEditableText *text,
view = GTK_TEXT_VIEW (widget); view = GTK_TEXT_VIEW (widget);
if (!gtk_text_view_get_editable (view)) if (!gtk_text_view_get_editable (view))
return; return;
buffer = view->buffer; buffer = gtk_text_view_get_buffer (view);
gtk_text_buffer_get_iter_at_offset (buffer, &start_itr, start_pos); gtk_text_buffer_get_iter_at_offset (buffer, &start_itr, start_pos);
gtk_text_buffer_get_iter_at_offset (buffer, &end_itr, end_pos); gtk_text_buffer_get_iter_at_offset (buffer, &end_itr, end_pos);
@ -1328,7 +1328,7 @@ gail_text_view_paste_text (AtkEditableText *text,
view = GTK_TEXT_VIEW (widget); view = GTK_TEXT_VIEW (widget);
if (!gtk_text_view_get_editable (view)) if (!gtk_text_view_get_editable (view))
return; return;
buffer = view->buffer; buffer = gtk_text_view_get_buffer (view);
paste_struct.buffer = buffer; paste_struct.buffer = buffer;
paste_struct.position = position; paste_struct.position = position;

View File

@ -65,13 +65,14 @@ query_tooltip_text_view_cb (GtkWidget *widget,
GtkTextTag *tag = data; GtkTextTag *tag = data;
GtkTextIter iter; GtkTextIter iter;
GtkTextView *text_view = GTK_TEXT_VIEW (widget); GtkTextView *text_view = GTK_TEXT_VIEW (widget);
GtkTextBuffer *buffer = gtk_text_view_get_buffer (text_view);
if (keyboard_tip) if (keyboard_tip)
{ {
gint offset; gint offset;
g_object_get (text_view->buffer, "cursor-position", &offset, NULL); g_object_get (buffer, "cursor-position", &offset, NULL);
gtk_text_buffer_get_iter_at_offset (text_view->buffer, &iter, offset); gtk_text_buffer_get_iter_at_offset (buffer, &iter, offset);
} }
else else
{ {