#include <gtk/gtktreeview.h>
#include <gtk/gtktreeselection.h>
#include <gtk/gtkrbtree.h>
-
+
#define TREE_VIEW_DRAG_WIDTH 6
typedef enum
GTK_TREE_VIEW_IN_COLUMN_DRAG = 1 << 7
} GtkTreeViewFlags;
+typedef enum
+{
+ GTK_TREE_SELECT_MODE_TOGGLE = 1 << 0,
+ GTK_TREE_SELECT_MODE_EXTEND = 1 << 1
+}
+GtkTreeSelectMode;
+
enum
{
DRAG_COLUMN_WINDOW_STATE_UNSET = 0,
DRAG_COLUMN_WINDOW_STATE_ARROW_LEFT = 3,
DRAG_COLUMN_WINDOW_STATE_ARROW_RIGHT = 4
};
-
+
#define GTK_TREE_VIEW_SET_FLAG(tree_view, flag) G_STMT_START{ (tree_view->priv->flags|=flag); }G_STMT_END
#define GTK_TREE_VIEW_UNSET_FLAG(tree_view, flag) G_STMT_START{ (tree_view->priv->flags&=~(flag)); }G_STMT_END
#define GTK_TREE_VIEW_FLAG_SET(tree_view, flag) ((tree_view->priv->flags&flag)==flag)
GdkWindow *drag_highlight_window;
GtkTreeViewColumn *drag_column;
- GtkTreeRowReference *last_single_clicked;
- GtkTreeRowReference *last_single_clicked_2;
+ GtkTreeRowReference *last_button_press;
+ GtkTreeRowReference *last_button_press_2;
/* bin_window offset */
GtkTreeRowReference *top_row;
gint press_start_x;
gint press_start_y;
+ /* fixed height */
+ gint fixed_height;
+
/* Scroll-to functionality when unrealized */
GtkTreeRowReference *scroll_to_path;
GtkTreeViewColumn *scroll_to_column;
gfloat scroll_to_col_align;
guint scroll_to_use_align : 1;
+ guint fixed_height_mode : 1;
guint fixed_height_check : 1;
guint reorderable : 1;
/* hint to display rows in alternating colors */
guint has_rules : 1;
guint mark_rows_col_dirty : 1;
-
+
+ /* for DnD */
+ guint empty_view_drop : 1;
+
+ guint ctrl_pressed : 1;
+ guint shift_pressed : 1;
+
+
+ guint init_hadjust_value : 1;
+
/* interactive search */
guint enable_search : 1;
guint disable_popdown : 1;
+
+ gint selected_iter;
gint search_column;
GtkTreeViewSearchDialogPositionFunc search_dialog_position_func;
GtkTreeViewSearchEqualFunc search_equal_func;
gpointer search_user_data;
GtkDestroyNotify search_destroy;
+ GtkWidget *search_window;
+ GtkWidget *search_entry;
+
+ gint prev_width;
};
#ifdef __GNUC__
GtkRBNode *node,
GtkRBTree *tree,
GtkTreePath *path,
- GdkModifierType state,
+ GtkTreeSelectMode mode,
gboolean override_browse_mode);
gboolean _gtk_tree_view_find_node (GtkTreeView *tree_view,
GtkTreePath *path,
void _gtk_tree_view_column_unrealize_button (GtkTreeViewColumn *column);
void _gtk_tree_view_column_set_tree_view (GtkTreeViewColumn *column,
GtkTreeView *tree_view);
+void _gtk_tree_view_column_unset_model (GtkTreeViewColumn *column,
+ GtkTreeModel *old_model);
void _gtk_tree_view_column_unset_tree_view (GtkTreeViewColumn *column);
void _gtk_tree_view_column_set_width (GtkTreeViewColumn *column,
gint width);
void _gtk_tree_view_column_start_editing (GtkTreeViewColumn *tree_column,
GtkCellEditable *editable_widget);
void _gtk_tree_view_column_stop_editing (GtkTreeViewColumn *tree_column);
-void _gtk_tree_view_install_mark_rows_col_dirty (GtkTreeView *tree_view);
-gboolean _gtk_tree_view_column_has_editable_cell (GtkTreeViewColumn *column);
+void _gtk_tree_view_install_mark_rows_col_dirty (GtkTreeView *tree_view);
+void _gtk_tree_view_column_autosize (GtkTreeView *tree_view,
+ GtkTreeViewColumn *column);
+
+gboolean _gtk_tree_view_column_has_editable_cell (GtkTreeViewColumn *column);
+GtkCellRenderer *_gtk_tree_view_column_get_edited_cell (GtkTreeViewColumn *column);
+gint _gtk_tree_view_column_count_special_cells (GtkTreeViewColumn *column);
+GtkCellRenderer *_gtk_tree_view_column_get_cell_at_pos (GtkTreeViewColumn *column,
+ gint x);
GtkTreeSelection* _gtk_tree_selection_new (void);
GtkTreeSelection* _gtk_tree_selection_new_with_tree_view (GtkTreeView *tree_view);
GdkRectangle *expose_area,
guint flags);
gboolean _gtk_tree_view_column_cell_focus (GtkTreeViewColumn *tree_column,
- gint direction);
+ gint direction,
+ gboolean left,
+ gboolean right);
void _gtk_tree_view_column_cell_draw_focus (GtkTreeViewColumn *tree_column,
GdkWindow *window,
GdkRectangle *background_area,
guint flags);
void _gtk_tree_view_column_cell_set_dirty (GtkTreeViewColumn *tree_column,
gboolean install_handler);
+void _gtk_tree_view_column_get_neighbor_sizes (GtkTreeViewColumn *column,
+ GtkCellRenderer *cell,
+ gint *left,
+ gint *right);
#ifdef __cplusplus