[gtk+] Logically re-group fields in GtkTreePrivate structure
- From: Kristian Rietveld <kristian src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gtk+] Logically re-group fields in GtkTreePrivate structure
- Date: Fri, 27 Nov 2009 12:57:46 +0000 (UTC)
commit d3592dc22c3eac467546c66da0e4cf5c9e39cde8
Author: Kristian Rietveld <kris gtk org>
Date: Thu Nov 26 20:31:29 2009 +0100
Logically re-group fields in GtkTreePrivate structure
This should now cause much less of a headache than before. Fields have
been properly reordered, each group has been given a comment. Since the
GtkTreePrivate structure is private (as the name says), this should not
have any effect on ABI.
gtk/gtktreeprivate.h | 144 ++++++++++++++++++++++++++++----------------------
1 files changed, 80 insertions(+), 64 deletions(-)
---
diff --git a/gtk/gtktreeprivate.h b/gtk/gtktreeprivate.h
index 8b672f2..c29b4dc 100644
--- a/gtk/gtktreeprivate.h
+++ b/gtk/gtktreeprivate.h
@@ -94,61 +94,69 @@ struct _GtkTreeViewPrivate
/* tree information */
GtkRBTree *tree;
- GtkRBNode *button_pressed_node;
- GtkRBTree *button_pressed_tree;
-
+ /* Container info */
GList *children;
gint width;
gint height;
- gint expander_size;
+ /* Adjustments */
GtkAdjustment *hadjustment;
GtkAdjustment *vadjustment;
+ /* Sub windows */
GdkWindow *bin_window;
GdkWindow *header_window;
- GdkWindow *drag_window;
- GdkWindow *drag_highlight_window;
- GtkTreeViewColumn *drag_column;
- GtkTreeRowReference *last_button_press;
- GtkTreeRowReference *last_button_press_2;
-
- /* bin_window offset */
+ /* Scroll position state keeping */
GtkTreeRowReference *top_row;
gint top_row_dy;
/* dy == y pos of top_row + top_row_dy */
/* we cache it for simplicity of the code */
gint dy;
- gint drag_column_x;
- gint cursor_offset;
- GtkTreeViewColumn *expander_column;
- GtkTreeViewColumn *edited_column;
guint presize_handler_timer;
guint validate_rows_timer;
guint scroll_sync_timer;
- /* Focus code */
- GtkTreeViewColumn *focus_column;
+ /* Indentation and expander layout */
+ gint expander_size;
+ GtkTreeViewColumn *expander_column;
+
+ gint level_indentation;
+
+ /* Key navigation (focus), selection */
+ gint cursor_offset;
- /* Selection stuff */
GtkTreeRowReference *anchor;
GtkTreeRowReference *cursor;
- /* Column Resizing */
- gint drag_pos;
- gint x_drag;
+ GtkTreeViewColumn *focus_column;
+
+ /* Current pressed node, previously pressed, prelight */
+ GtkRBNode *button_pressed_node;
+ GtkRBTree *button_pressed_tree;
+
+ gint pressed_button;
+ gint press_start_x;
+ gint press_start_y;
+
+ GtkTreeRowReference *last_button_press;
+ GtkTreeRowReference *last_button_press_2;
- /* Prelight information */
GtkRBNode *prelight_node;
GtkRBTree *prelight_tree;
+ /* Cell Editing */
+ GtkTreeViewColumn *edited_column;
+
/* The node that's currently being collapsed or expanded */
GtkRBNode *expanded_collapsed_node;
GtkRBTree *expanded_collapsed_tree;
guint expand_collapse_timeout;
+ /* Auto expand/collapse timeout in hover mode */
+ guint auto_expand_timeout;
+
/* Selection information */
GtkTreeSelection *selection;
@@ -163,12 +171,29 @@ struct _GtkTreeViewPrivate
GList *column_drag_info;
GtkTreeViewColumnReorder *cur_reorder;
+ /* Interactive Header reordering */
+ GdkWindow *drag_window;
+ GdkWindow *drag_highlight_window;
+ GtkTreeViewColumn *drag_column;
+ gint drag_column_x;
+
+ /* Interactive Header Resizing */
+ gint drag_pos;
+ gint x_drag;
+
+ /* Non-interactive Header Resizing, expand flag support */
+ gint prev_width;
+
+ gint last_extra_space;
+ gint last_extra_space_per_column;
+ gint last_number_of_expand_columns;
+
/* ATK Hack */
GtkTreeDestroyCountFunc destroy_count_func;
gpointer destroy_count_data;
GDestroyNotify destroy_count_destroy;
- /* Scroll timeout (e.g. during dnd) */
+ /* Scroll timeout (e.g. during dnd, rubber banding) */
guint scroll_timeout;
/* Row drag-and-drop */
@@ -176,10 +201,7 @@ struct _GtkTreeViewPrivate
GtkTreeViewDropPosition drag_dest_pos;
guint open_dest_timeout;
- gint pressed_button;
- gint press_start_x;
- gint press_start_y;
-
+ /* Rubber banding */
gint rubber_band_status;
gint rubber_band_x;
gint rubber_band_y;
@@ -200,6 +222,37 @@ struct _GtkTreeViewPrivate
GtkTreeViewColumn *scroll_to_column;
gfloat scroll_to_row_align;
gfloat scroll_to_col_align;
+
+ /* Interactive search */
+ gint selected_iter;
+ gint search_column;
+ GtkTreeViewSearchPositionFunc search_position_func;
+ GtkTreeViewSearchEqualFunc search_equal_func;
+ gpointer search_user_data;
+ GDestroyNotify search_destroy;
+ gpointer search_position_user_data;
+ GDestroyNotify search_position_destroy;
+ GtkWidget *search_window;
+ GtkWidget *search_entry;
+ guint search_entry_changed_id;
+ guint typeselect_flush_timeout;
+
+ /* Grid and tree lines */
+ GtkTreeViewGridLines grid_lines;
+ GdkGC *grid_line_gc;
+
+ gboolean tree_lines_enabled;
+ GdkGC *tree_line_gc;
+
+ /* Row separators */
+ GtkTreeViewRowSeparatorFunc row_separator_func;
+ gpointer row_separator_data;
+ GDestroyNotify row_separator_destroy;
+
+ /* Tooltip support */
+ gint tooltip_column;
+
+ /* Here comes the bitfield */
guint scroll_to_use_align : 1;
guint fixed_height_mode : 1;
@@ -218,7 +271,6 @@ struct _GtkTreeViewPrivate
guint ctrl_pressed : 1;
guint shift_pressed : 1;
-
guint init_hadjust_value : 1;
guint in_top_row_to_dy : 1;
@@ -240,42 +292,6 @@ struct _GtkTreeViewPrivate
/* Whether our key press handler is to avoid sending an unhandled binding to the search entry */
guint search_entry_avoid_unhandled_binding : 1;
-
- /* Auto expand/collapse timeout in hover mode */
- guint auto_expand_timeout;
-
- gint selected_iter;
- gint search_column;
- GtkTreeViewSearchPositionFunc search_position_func;
- GtkTreeViewSearchEqualFunc search_equal_func;
- gpointer search_user_data;
- GDestroyNotify search_destroy;
- gpointer search_position_user_data;
- GDestroyNotify search_position_destroy;
- GtkWidget *search_window;
- GtkWidget *search_entry;
- guint search_entry_changed_id;
- guint typeselect_flush_timeout;
-
- gint prev_width;
-
- GtkTreeViewRowSeparatorFunc row_separator_func;
- gpointer row_separator_data;
- GDestroyNotify row_separator_destroy;
-
- gint level_indentation;
-
- GtkTreeViewGridLines grid_lines;
- GdkGC *grid_line_gc;
-
- gboolean tree_lines_enabled;
- GdkGC *tree_line_gc;
-
- gint tooltip_column;
-
- gint last_extra_space;
- gint last_extra_space_per_column;
- gint last_number_of_expand_columns;
};
#ifdef __GNUC__
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]