[gtk+] Logically re-group fields in GtkTreePrivate structure



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]