Blame gtk/gtktreeprivate.h

Packit Service fb6fa5
/* gtktreeprivate.h
Packit Service fb6fa5
 * Copyright (C) 2000  Red Hat, Inc.,  Jonathan Blandford <jrb@redhat.com>
Packit Service fb6fa5
 *
Packit Service fb6fa5
 * This library is free software; you can redistribute it and/or
Packit Service fb6fa5
 * modify it under the terms of the GNU Library General Public
Packit Service fb6fa5
 * License as published by the Free Software Foundation; either
Packit Service fb6fa5
 * version 2 of the License, or (at your option) any later version.
Packit Service fb6fa5
 *
Packit Service fb6fa5
 * This library is distributed in the hope that it will be useful,
Packit Service fb6fa5
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service fb6fa5
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit Service fb6fa5
 * Library General Public License for more details.
Packit Service fb6fa5
 *
Packit Service fb6fa5
 * You should have received a copy of the GNU Library General Public
Packit Service fb6fa5
 * License along with this library; if not, write to the
Packit Service fb6fa5
 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Packit Service fb6fa5
 * Boston, MA 02111-1307, USA.
Packit Service fb6fa5
 */
Packit Service fb6fa5
Packit Service fb6fa5
#ifndef __GTK_TREE_PRIVATE_H__
Packit Service fb6fa5
#define __GTK_TREE_PRIVATE_H__
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
G_BEGIN_DECLS
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
#include <gtk/gtktreeview.h>
Packit Service fb6fa5
#include <gtk/gtktreeselection.h>
Packit Service fb6fa5
#include <gtk/gtkrbtree.h>
Packit Service fb6fa5
Packit Service fb6fa5
#define TREE_VIEW_DRAG_WIDTH 6
Packit Service fb6fa5
Packit Service fb6fa5
typedef enum
Packit Service fb6fa5
{
Packit Service fb6fa5
  GTK_TREE_VIEW_IS_LIST = 1 << 0,
Packit Service fb6fa5
  GTK_TREE_VIEW_SHOW_EXPANDERS = 1 << 1,
Packit Service fb6fa5
  GTK_TREE_VIEW_IN_COLUMN_RESIZE = 1 << 2,
Packit Service fb6fa5
  GTK_TREE_VIEW_ARROW_PRELIT = 1 << 3,
Packit Service fb6fa5
  GTK_TREE_VIEW_HEADERS_VISIBLE = 1 << 4,
Packit Service fb6fa5
  GTK_TREE_VIEW_DRAW_KEYFOCUS = 1 << 5,
Packit Service fb6fa5
  GTK_TREE_VIEW_MODEL_SETUP = 1 << 6,
Packit Service fb6fa5
  GTK_TREE_VIEW_IN_COLUMN_DRAG = 1 << 7
Packit Service fb6fa5
} GtkTreeViewFlags;
Packit Service fb6fa5
Packit Service fb6fa5
typedef enum
Packit Service fb6fa5
{
Packit Service fb6fa5
  GTK_TREE_SELECT_MODE_TOGGLE = 1 << 0,
Packit Service fb6fa5
  GTK_TREE_SELECT_MODE_EXTEND = 1 << 1
Packit Service fb6fa5
}
Packit Service fb6fa5
GtkTreeSelectMode;
Packit Service fb6fa5
Packit Service fb6fa5
enum
Packit Service fb6fa5
{
Packit Service fb6fa5
  DRAG_COLUMN_WINDOW_STATE_UNSET = 0,
Packit Service fb6fa5
  DRAG_COLUMN_WINDOW_STATE_ORIGINAL = 1,
Packit Service fb6fa5
  DRAG_COLUMN_WINDOW_STATE_ARROW = 2,
Packit Service fb6fa5
  DRAG_COLUMN_WINDOW_STATE_ARROW_LEFT = 3,
Packit Service fb6fa5
  DRAG_COLUMN_WINDOW_STATE_ARROW_RIGHT = 4
Packit Service fb6fa5
};
Packit Service fb6fa5
Packit Service fb6fa5
enum
Packit Service fb6fa5
{
Packit Service fb6fa5
  RUBBER_BAND_OFF = 0,
Packit Service fb6fa5
  RUBBER_BAND_MAYBE_START = 1,
Packit Service fb6fa5
  RUBBER_BAND_ACTIVE = 2
Packit Service fb6fa5
};
Packit Service fb6fa5
Packit Service fb6fa5
#define GTK_TREE_VIEW_SET_FLAG(tree_view, flag)   G_STMT_START{ (tree_view->priv->flags|=flag); }G_STMT_END
Packit Service fb6fa5
#define GTK_TREE_VIEW_UNSET_FLAG(tree_view, flag) G_STMT_START{ (tree_view->priv->flags&=~(flag)); }G_STMT_END
Packit Service fb6fa5
#define GTK_TREE_VIEW_FLAG_SET(tree_view, flag)   ((tree_view->priv->flags&flag)==flag)
Packit Service fb6fa5
#define TREE_VIEW_HEADER_HEIGHT(tree_view)        (GTK_TREE_VIEW_FLAG_SET (tree_view, GTK_TREE_VIEW_HEADERS_VISIBLE)?tree_view->priv->header_height:0)
Packit Service fb6fa5
#define TREE_VIEW_COLUMN_REQUESTED_WIDTH(column)  (CLAMP (column->requested_width, (column->min_width!=-1)?column->min_width:column->requested_width, (column->max_width!=-1)?column->max_width:column->requested_width))
Packit Service fb6fa5
#define TREE_VIEW_DRAW_EXPANDERS(tree_view)       (!GTK_TREE_VIEW_FLAG_SET (tree_view, GTK_TREE_VIEW_IS_LIST)&&GTK_TREE_VIEW_FLAG_SET (tree_view, GTK_TREE_VIEW_SHOW_EXPANDERS))
Packit Service fb6fa5
Packit Service fb6fa5
 /* This lovely little value is used to determine how far away from the title bar
Packit Service fb6fa5
  * you can move the mouse and still have a column drag work.
Packit Service fb6fa5
  */
Packit Service fb6fa5
#define TREE_VIEW_COLUMN_DRAG_DEAD_MULTIPLIER(tree_view) (10*TREE_VIEW_HEADER_HEIGHT(tree_view))
Packit Service fb6fa5
Packit Service fb6fa5
typedef struct _GtkTreeViewColumnReorder GtkTreeViewColumnReorder;
Packit Service fb6fa5
struct _GtkTreeViewColumnReorder
Packit Service fb6fa5
{
Packit Service fb6fa5
  gint left_align;
Packit Service fb6fa5
  gint right_align;
Packit Service fb6fa5
  GtkTreeViewColumn *left_column;
Packit Service fb6fa5
  GtkTreeViewColumn *right_column;
Packit Service fb6fa5
};
Packit Service fb6fa5
Packit Service fb6fa5
struct _GtkTreeViewPrivate
Packit Service fb6fa5
{
Packit Service fb6fa5
  GtkTreeModel *model;
Packit Service fb6fa5
Packit Service fb6fa5
  guint flags;
Packit Service fb6fa5
  /* tree information */
Packit Service fb6fa5
  GtkRBTree *tree;
Packit Service fb6fa5
Packit Service fb6fa5
  /* Container info */
Packit Service fb6fa5
  GList *children;
Packit Service fb6fa5
  gint width;
Packit Service fb6fa5
  gint height;
Packit Service fb6fa5
Packit Service fb6fa5
  /* Adjustments */
Packit Service fb6fa5
  GtkAdjustment *hadjustment;
Packit Service fb6fa5
  GtkAdjustment *vadjustment;
Packit Service fb6fa5
Packit Service fb6fa5
  /* Sub windows */
Packit Service fb6fa5
  GdkWindow *bin_window;
Packit Service fb6fa5
  GdkWindow *header_window;
Packit Service fb6fa5
Packit Service fb6fa5
  /* Scroll position state keeping */
Packit Service fb6fa5
  GtkTreeRowReference *top_row;
Packit Service fb6fa5
  gint top_row_dy;
Packit Service fb6fa5
  /* dy == y pos of top_row + top_row_dy */
Packit Service fb6fa5
  /* we cache it for simplicity of the code */
Packit Service fb6fa5
  gint dy;
Packit Service fb6fa5
Packit Service fb6fa5
  guint presize_handler_timer;
Packit Service fb6fa5
  guint validate_rows_timer;
Packit Service fb6fa5
  guint scroll_sync_timer;
Packit Service fb6fa5
Packit Service fb6fa5
  /* Indentation and expander layout */
Packit Service fb6fa5
  gint expander_size;
Packit Service fb6fa5
  GtkTreeViewColumn *expander_column;
Packit Service fb6fa5
Packit Service fb6fa5
  gint level_indentation;
Packit Service fb6fa5
Packit Service fb6fa5
  /* Key navigation (focus), selection */
Packit Service fb6fa5
  gint cursor_offset;
Packit Service fb6fa5
Packit Service fb6fa5
  GtkTreeRowReference *anchor;
Packit Service fb6fa5
  GtkTreeRowReference *cursor;
Packit Service fb6fa5
Packit Service fb6fa5
  GtkTreeViewColumn *focus_column;
Packit Service fb6fa5
Packit Service fb6fa5
  /* Current pressed node, previously pressed, prelight */
Packit Service fb6fa5
  GtkRBNode *button_pressed_node;
Packit Service fb6fa5
  GtkRBTree *button_pressed_tree;
Packit Service fb6fa5
Packit Service fb6fa5
  gint pressed_button;
Packit Service fb6fa5
  gint press_start_x;
Packit Service fb6fa5
  gint press_start_y;
Packit Service fb6fa5
Packit Service fb6fa5
  gint event_last_x;
Packit Service fb6fa5
  gint event_last_y;
Packit Service fb6fa5
Packit Service fb6fa5
  guint last_button_time;
Packit Service fb6fa5
  gint last_button_x;
Packit Service fb6fa5
  gint last_button_y;
Packit Service fb6fa5
Packit Service fb6fa5
  GtkRBNode *prelight_node;
Packit Service fb6fa5
  GtkRBTree *prelight_tree;
Packit Service fb6fa5
Packit Service fb6fa5
  /* Cell Editing */
Packit Service fb6fa5
  GtkTreeViewColumn *edited_column;
Packit Service fb6fa5
Packit Service fb6fa5
  /* The node that's currently being collapsed or expanded */
Packit Service fb6fa5
  GtkRBNode *expanded_collapsed_node;
Packit Service fb6fa5
  GtkRBTree *expanded_collapsed_tree;
Packit Service fb6fa5
  guint expand_collapse_timeout;
Packit Service fb6fa5
Packit Service fb6fa5
  /* Auto expand/collapse timeout in hover mode */
Packit Service fb6fa5
  guint auto_expand_timeout;
Packit Service fb6fa5
Packit Service fb6fa5
  /* Selection information */
Packit Service fb6fa5
  GtkTreeSelection *selection;
Packit Service fb6fa5
Packit Service fb6fa5
  /* Header information */
Packit Service fb6fa5
  gint n_columns;
Packit Service fb6fa5
  GList *columns;
Packit Service fb6fa5
  gint header_height;
Packit Service fb6fa5
Packit Service fb6fa5
  GtkTreeViewColumnDropFunc column_drop_func;
Packit Service fb6fa5
  gpointer column_drop_func_data;
Packit Service fb6fa5
  GDestroyNotify column_drop_func_data_destroy;
Packit Service fb6fa5
  GList *column_drag_info;
Packit Service fb6fa5
  GtkTreeViewColumnReorder *cur_reorder;
Packit Service fb6fa5
Packit Service fb6fa5
  gint prev_width_before_expander;
Packit Service fb6fa5
Packit Service fb6fa5
  /* Interactive Header reordering */
Packit Service fb6fa5
  GdkWindow *drag_window;
Packit Service fb6fa5
  GdkWindow *drag_highlight_window;
Packit Service fb6fa5
  GtkTreeViewColumn *drag_column;
Packit Service fb6fa5
  gint drag_column_x;
Packit Service fb6fa5
Packit Service fb6fa5
  /* Interactive Header Resizing */
Packit Service fb6fa5
  gint drag_pos;
Packit Service fb6fa5
  gint x_drag;
Packit Service fb6fa5
Packit Service fb6fa5
  /* Non-interactive Header Resizing, expand flag support */
Packit Service fb6fa5
  gint prev_width;
Packit Service fb6fa5
Packit Service fb6fa5
  gint last_extra_space;
Packit Service fb6fa5
  gint last_extra_space_per_column;
Packit Service fb6fa5
  gint last_number_of_expand_columns;
Packit Service fb6fa5
Packit Service fb6fa5
  /* ATK Hack */
Packit Service fb6fa5
  GtkTreeDestroyCountFunc destroy_count_func;
Packit Service fb6fa5
  gpointer destroy_count_data;
Packit Service fb6fa5
  GDestroyNotify destroy_count_destroy;
Packit Service fb6fa5
Packit Service fb6fa5
  /* Scroll timeout (e.g. during dnd, rubber banding) */
Packit Service fb6fa5
  guint scroll_timeout;
Packit Service fb6fa5
Packit Service fb6fa5
  /* Row drag-and-drop */
Packit Service fb6fa5
  GtkTreeRowReference *drag_dest_row;
Packit Service fb6fa5
  GtkTreeViewDropPosition drag_dest_pos;
Packit Service fb6fa5
  guint open_dest_timeout;
Packit Service fb6fa5
Packit Service fb6fa5
  /* Rubber banding */
Packit Service fb6fa5
  gint rubber_band_status;
Packit Service fb6fa5
  gint rubber_band_x;
Packit Service fb6fa5
  gint rubber_band_y;
Packit Service fb6fa5
  gint rubber_band_extend;
Packit Service fb6fa5
  gint rubber_band_modify;
Packit Service fb6fa5
Packit Service fb6fa5
  GtkRBNode *rubber_band_start_node;
Packit Service fb6fa5
  GtkRBTree *rubber_band_start_tree;
Packit Service fb6fa5
Packit Service fb6fa5
  GtkRBNode *rubber_band_end_node;
Packit Service fb6fa5
  GtkRBTree *rubber_band_end_tree;
Packit Service fb6fa5
Packit Service fb6fa5
  /* fixed height */
Packit Service fb6fa5
  gint fixed_height;
Packit Service fb6fa5
Packit Service fb6fa5
  /* Scroll-to functionality when unrealized */
Packit Service fb6fa5
  GtkTreeRowReference *scroll_to_path;
Packit Service fb6fa5
  GtkTreeViewColumn *scroll_to_column;
Packit Service fb6fa5
  gfloat scroll_to_row_align;
Packit Service fb6fa5
  gfloat scroll_to_col_align;
Packit Service fb6fa5
Packit Service fb6fa5
  /* Interactive search */
Packit Service fb6fa5
  gint selected_iter;
Packit Service fb6fa5
  gint search_column;
Packit Service fb6fa5
  GtkTreeViewSearchPositionFunc search_position_func;
Packit Service fb6fa5
  GtkTreeViewSearchEqualFunc search_equal_func;
Packit Service fb6fa5
  gpointer search_user_data;
Packit Service fb6fa5
  GDestroyNotify search_destroy;
Packit Service fb6fa5
  gpointer search_position_user_data;
Packit Service fb6fa5
  GDestroyNotify search_position_destroy;
Packit Service fb6fa5
  GtkWidget *search_window;
Packit Service fb6fa5
  GtkWidget *search_entry;
Packit Service fb6fa5
  guint search_entry_changed_id;
Packit Service fb6fa5
  guint typeselect_flush_timeout;
Packit Service fb6fa5
Packit Service fb6fa5
  /* Grid and tree lines */
Packit Service fb6fa5
  GtkTreeViewGridLines grid_lines;
Packit Service fb6fa5
  double grid_line_dashes[2];
Packit Service fb6fa5
  int grid_line_width;
Packit Service fb6fa5
Packit Service fb6fa5
  gboolean tree_lines_enabled;
Packit Service fb6fa5
  double tree_line_dashes[2];
Packit Service fb6fa5
  int tree_line_width;
Packit Service fb6fa5
Packit Service fb6fa5
  /* Row separators */
Packit Service fb6fa5
  GtkTreeViewRowSeparatorFunc row_separator_func;
Packit Service fb6fa5
  gpointer row_separator_data;
Packit Service fb6fa5
  GDestroyNotify row_separator_destroy;
Packit Service fb6fa5
Packit Service fb6fa5
  /* Tooltip support */
Packit Service fb6fa5
  gint tooltip_column;
Packit Service fb6fa5
Packit Service fb6fa5
  /* Here comes the bitfield */
Packit Service fb6fa5
  guint scroll_to_use_align : 1;
Packit Service fb6fa5
Packit Service fb6fa5
  guint fixed_height_mode : 1;
Packit Service fb6fa5
  guint fixed_height_check : 1;
Packit Service fb6fa5
Packit Service fb6fa5
  guint reorderable : 1;
Packit Service fb6fa5
  guint header_has_focus : 1;
Packit Service fb6fa5
  guint drag_column_window_state : 3;
Packit Service fb6fa5
  /* hint to display rows in alternating colors */
Packit Service fb6fa5
  guint has_rules : 1;
Packit Service fb6fa5
  guint mark_rows_col_dirty : 1;
Packit Service fb6fa5
Packit Service fb6fa5
  /* for DnD */
Packit Service fb6fa5
  guint empty_view_drop : 1;
Packit Service fb6fa5
Packit Service fb6fa5
  guint modify_selection_pressed : 1;
Packit Service fb6fa5
  guint extend_selection_pressed : 1;
Packit Service fb6fa5
Packit Service fb6fa5
  guint init_hadjust_value : 1;
Packit Service fb6fa5
Packit Service fb6fa5
  guint in_top_row_to_dy : 1;
Packit Service fb6fa5
Packit Service fb6fa5
  /* interactive search */
Packit Service fb6fa5
  guint enable_search : 1;
Packit Service fb6fa5
  guint disable_popdown : 1;
Packit Service fb6fa5
  guint search_custom_entry_set : 1;
Packit Service fb6fa5
  
Packit Service fb6fa5
  guint hover_selection : 1;
Packit Service fb6fa5
  guint hover_expand : 1;
Packit Service fb6fa5
  guint imcontext_changed : 1;
Packit Service fb6fa5
Packit Service fb6fa5
  guint rubber_banding_enable : 1;
Packit Service fb6fa5
Packit Service fb6fa5
  guint in_grab : 1;
Packit Service fb6fa5
Packit Service fb6fa5
  guint post_validation_flag : 1;
Packit Service fb6fa5
Packit Service fb6fa5
  /* Whether our key press handler is to avoid sending an unhandled binding to the search entry */
Packit Service fb6fa5
  guint search_entry_avoid_unhandled_binding : 1;
Packit Service fb6fa5
};
Packit Service fb6fa5
Packit Service fb6fa5
#ifdef __GNUC__
Packit Service fb6fa5
Packit Service fb6fa5
#define TREE_VIEW_INTERNAL_ASSERT(expr, ret)     G_STMT_START{          \
Packit Service fb6fa5
     if (!(expr))                                                       \
Packit Service fb6fa5
       {                                                                \
Packit Service fb6fa5
         g_log (G_LOG_DOMAIN,                                           \
Packit Service fb6fa5
                G_LOG_LEVEL_CRITICAL,                                   \
Packit Service fb6fa5
		"%s (%s): assertion `%s' failed.\n"                     \
Packit Service fb6fa5
	        "There is a disparity between the internal view of the GtkTreeView,\n"    \
Packit Service fb6fa5
		"and the GtkTreeModel.  This generally means that the model has changed\n"\
Packit Service fb6fa5
		"without letting the view know.  Any display from now on is likely to\n"  \
Packit Service fb6fa5
		"be incorrect.\n",                                                        \
Packit Service fb6fa5
                G_STRLOC,                                               \
Packit Service fb6fa5
                G_STRFUNC,                                              \
Packit Service fb6fa5
                #expr);                                                 \
Packit Service fb6fa5
         return ret;                                                    \
Packit Service fb6fa5
       };                               }G_STMT_END
Packit Service fb6fa5
Packit Service fb6fa5
#define TREE_VIEW_INTERNAL_ASSERT_VOID(expr)     G_STMT_START{          \
Packit Service fb6fa5
     if (!(expr))                                                       \
Packit Service fb6fa5
       {                                                                \
Packit Service fb6fa5
         g_log (G_LOG_DOMAIN,                                           \
Packit Service fb6fa5
                G_LOG_LEVEL_CRITICAL,                                   \
Packit Service fb6fa5
		"%s (%s): assertion `%s' failed.\n"                     \
Packit Service fb6fa5
	        "There is a disparity between the internal view of the GtkTreeView,\n"    \
Packit Service fb6fa5
		"and the GtkTreeModel.  This generally means that the model has changed\n"\
Packit Service fb6fa5
		"without letting the view know.  Any display from now on is likely to\n"  \
Packit Service fb6fa5
		"be incorrect.\n",                                                        \
Packit Service fb6fa5
                G_STRLOC,                                               \
Packit Service fb6fa5
                G_STRFUNC,                                              \
Packit Service fb6fa5
                #expr);                                                 \
Packit Service fb6fa5
         return;                                                        \
Packit Service fb6fa5
       };                               }G_STMT_END
Packit Service fb6fa5
Packit Service fb6fa5
#else
Packit Service fb6fa5
Packit Service fb6fa5
#define TREE_VIEW_INTERNAL_ASSERT(expr, ret)     G_STMT_START{          \
Packit Service fb6fa5
     if (!(expr))                                                       \
Packit Service fb6fa5
       {                                                                \
Packit Service fb6fa5
         g_log (G_LOG_DOMAIN,                                           \
Packit Service fb6fa5
                G_LOG_LEVEL_CRITICAL,                                   \
Packit Service fb6fa5
		"file %s: line %d: assertion `%s' failed.\n"       \
Packit Service fb6fa5
	        "There is a disparity between the internal view of the GtkTreeView,\n"    \
Packit Service fb6fa5
		"and the GtkTreeModel.  This generally means that the model has changed\n"\
Packit Service fb6fa5
		"without letting the view know.  Any display from now on is likely to\n"  \
Packit Service fb6fa5
		"be incorrect.\n",                                                        \
Packit Service fb6fa5
                __FILE__,                                               \
Packit Service fb6fa5
                __LINE__,                                               \
Packit Service fb6fa5
                #expr);                                                 \
Packit Service fb6fa5
         return ret;                                                    \
Packit Service fb6fa5
       };                               }G_STMT_END
Packit Service fb6fa5
Packit Service fb6fa5
#define TREE_VIEW_INTERNAL_ASSERT_VOID(expr)     G_STMT_START{          \
Packit Service fb6fa5
     if (!(expr))                                                       \
Packit Service fb6fa5
       {                                                                \
Packit Service fb6fa5
         g_log (G_LOG_DOMAIN,                                           \
Packit Service fb6fa5
                G_LOG_LEVEL_CRITICAL,                                   \
Packit Service fb6fa5
		"file %s: line %d: assertion '%s' failed.\n"            \
Packit Service fb6fa5
	        "There is a disparity between the internal view of the GtkTreeView,\n"    \
Packit Service fb6fa5
		"and the GtkTreeModel.  This generally means that the model has changed\n"\
Packit Service fb6fa5
		"without letting the view know.  Any display from now on is likely to\n"  \
Packit Service fb6fa5
		"be incorrect.\n",                                                        \
Packit Service fb6fa5
                __FILE__,                                               \
Packit Service fb6fa5
                __LINE__,                                               \
Packit Service fb6fa5
                #expr);                                                 \
Packit Service fb6fa5
         return;                                                        \
Packit Service fb6fa5
       };                               }G_STMT_END
Packit Service fb6fa5
#endif
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
/* functions that shouldn't be exported */
Packit Service fb6fa5
void         _gtk_tree_selection_internal_select_node (GtkTreeSelection  *selection,
Packit Service fb6fa5
						       GtkRBNode         *node,
Packit Service fb6fa5
						       GtkRBTree         *tree,
Packit Service fb6fa5
						       GtkTreePath       *path,
Packit Service fb6fa5
                                                       GtkTreeSelectMode  mode,
Packit Service fb6fa5
						       gboolean           override_browse_mode);
Packit Service fb6fa5
void         _gtk_tree_selection_emit_changed         (GtkTreeSelection  *selection);
Packit Service fb6fa5
gboolean     _gtk_tree_view_find_node                 (GtkTreeView       *tree_view,
Packit Service fb6fa5
						       GtkTreePath       *path,
Packit Service fb6fa5
						       GtkRBTree        **tree,
Packit Service fb6fa5
						       GtkRBNode        **node);
Packit Service fb6fa5
GtkTreePath *_gtk_tree_view_find_path                 (GtkTreeView       *tree_view,
Packit Service fb6fa5
						       GtkRBTree         *tree,
Packit Service fb6fa5
						       GtkRBNode         *node);
Packit Service fb6fa5
void         _gtk_tree_view_child_move_resize         (GtkTreeView       *tree_view,
Packit Service fb6fa5
						       GtkWidget         *widget,
Packit Service fb6fa5
						       gint               x,
Packit Service fb6fa5
						       gint               y,
Packit Service fb6fa5
						       gint               width,
Packit Service fb6fa5
						       gint               height);
Packit Service fb6fa5
void         _gtk_tree_view_queue_draw_node           (GtkTreeView       *tree_view,
Packit Service fb6fa5
						       GtkRBTree         *tree,
Packit Service fb6fa5
						       GtkRBNode         *node,
Packit Service fb6fa5
						       const GdkRectangle *clip_rect);
Packit Service fb6fa5
Packit Service fb6fa5
void _gtk_tree_view_column_realize_button   (GtkTreeViewColumn *column);
Packit Service fb6fa5
void _gtk_tree_view_column_unrealize_button (GtkTreeViewColumn *column);
Packit Service fb6fa5
void _gtk_tree_view_column_set_tree_view    (GtkTreeViewColumn *column,
Packit Service fb6fa5
					     GtkTreeView       *tree_view);
Packit Service fb6fa5
void _gtk_tree_view_column_unset_model      (GtkTreeViewColumn *column,
Packit Service fb6fa5
					     GtkTreeModel      *old_model);
Packit Service fb6fa5
void _gtk_tree_view_column_unset_tree_view  (GtkTreeViewColumn *column);
Packit Service fb6fa5
void _gtk_tree_view_column_set_width        (GtkTreeViewColumn *column,
Packit Service fb6fa5
					     gint               width);
Packit Service fb6fa5
void _gtk_tree_view_column_start_drag       (GtkTreeView       *tree_view,
Packit Service fb6fa5
					     GtkTreeViewColumn *column);
Packit Service fb6fa5
gboolean _gtk_tree_view_column_cell_event   (GtkTreeViewColumn  *tree_column,
Packit Service fb6fa5
					     GtkCellEditable   **editable_widget,
Packit Service fb6fa5
					     GdkEvent           *event,
Packit Service fb6fa5
					     gchar              *path_string,
Packit Service fb6fa5
					     const GdkRectangle *background_area,
Packit Service fb6fa5
					     const GdkRectangle *cell_area,
Packit Service fb6fa5
					     guint               flags);
Packit Service fb6fa5
void _gtk_tree_view_column_start_editing (GtkTreeViewColumn *tree_column,
Packit Service fb6fa5
					  GtkCellEditable   *editable_widget);
Packit Service fb6fa5
void _gtk_tree_view_column_stop_editing  (GtkTreeViewColumn *tree_column);
Packit Service fb6fa5
void _gtk_tree_view_install_mark_rows_col_dirty (GtkTreeView *tree_view);
Packit Service fb6fa5
void             _gtk_tree_view_column_autosize          (GtkTreeView       *tree_view,
Packit Service fb6fa5
							  GtkTreeViewColumn *column);
Packit Service fb6fa5
Packit Service fb6fa5
gboolean         _gtk_tree_view_column_has_editable_cell (GtkTreeViewColumn *column);
Packit Service fb6fa5
GtkCellRenderer *_gtk_tree_view_column_get_edited_cell   (GtkTreeViewColumn *column);
Packit Service fb6fa5
gint             _gtk_tree_view_column_count_special_cells (GtkTreeViewColumn *column);
Packit Service fb6fa5
GtkCellRenderer *_gtk_tree_view_column_get_cell_at_pos   (GtkTreeViewColumn *column,
Packit Service fb6fa5
							  gint               x);
Packit Service fb6fa5
Packit Service fb6fa5
GtkTreeSelection* _gtk_tree_selection_new                (void);
Packit Service fb6fa5
GtkTreeSelection* _gtk_tree_selection_new_with_tree_view (GtkTreeView      *tree_view);
Packit Service fb6fa5
void              _gtk_tree_selection_set_tree_view      (GtkTreeSelection *selection,
Packit Service fb6fa5
                                                          GtkTreeView      *tree_view);
Packit Service fb6fa5
gboolean          _gtk_tree_selection_row_is_selectable  (GtkTreeSelection *selection,
Packit Service fb6fa5
							  GtkRBNode        *node,
Packit Service fb6fa5
							  GtkTreePath      *path);
Packit Service fb6fa5
Packit Service fb6fa5
void		  _gtk_tree_view_column_cell_render      (GtkTreeViewColumn  *tree_column,
Packit Service fb6fa5
							  GdkWindow          *window,
Packit Service fb6fa5
							  const GdkRectangle *background_area,
Packit Service fb6fa5
							  const GdkRectangle *cell_area,
Packit Service fb6fa5
							  const GdkRectangle *expose_area,
Packit Service fb6fa5
							  guint               flags);
Packit Service fb6fa5
void		  _gtk_tree_view_column_get_focus_area   (GtkTreeViewColumn  *tree_column,
Packit Service fb6fa5
							  const GdkRectangle *background_area,
Packit Service fb6fa5
							  const GdkRectangle *cell_area,
Packit Service fb6fa5
							  GdkRectangle       *focus_area);
Packit Service fb6fa5
gboolean	  _gtk_tree_view_column_cell_focus       (GtkTreeViewColumn  *tree_column,
Packit Service fb6fa5
							  gint                direction,
Packit Service fb6fa5
							  gboolean            left,
Packit Service fb6fa5
							  gboolean            right);
Packit Service fb6fa5
void		  _gtk_tree_view_column_cell_draw_focus  (GtkTreeViewColumn  *tree_column,
Packit Service fb6fa5
							  GdkWindow          *window,
Packit Service fb6fa5
							  const GdkRectangle *background_area,
Packit Service fb6fa5
							  const GdkRectangle *cell_area,
Packit Service fb6fa5
							  const GdkRectangle *expose_area,
Packit Service fb6fa5
							  guint               flags);
Packit Service fb6fa5
void		  _gtk_tree_view_column_cell_set_dirty	 (GtkTreeViewColumn  *tree_column,
Packit Service fb6fa5
							  gboolean            install_handler);
Packit Service fb6fa5
void              _gtk_tree_view_column_get_neighbor_sizes (GtkTreeViewColumn *column,
Packit Service fb6fa5
							    GtkCellRenderer   *cell,
Packit Service fb6fa5
							    gint              *left,
Packit Service fb6fa5
							    gint              *right);
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
G_END_DECLS
Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
#endif /* __GTK_TREE_PRIVATE_H__ */
Packit Service fb6fa5