diff options
Diffstat (limited to 'gtk/gtktreeview.h')
-rw-r--r-- | gtk/gtktreeview.h | 104 |
1 files changed, 102 insertions, 2 deletions
diff --git a/gtk/gtktreeview.h b/gtk/gtktreeview.h index 58709893ff..d15109eff2 100644 --- a/gtk/gtktreeview.h +++ b/gtk/gtktreeview.h @@ -22,11 +22,24 @@ #include <gtk/gtkcontainer.h> #include <gtk/gtktreemodel.h> #include <gtk/gtktreeviewcolumn.h> +#include <gtk/gtkdnd.h> #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ +typedef enum +{ + /* drop before/after this row */ + GTK_TREE_VIEW_DROP_BEFORE, + GTK_TREE_VIEW_DROP_AFTER, + /* drop as a child of this row (with fallback to before or after + * if into is not possible) + */ + GTK_TREE_VIEW_DROP_INTO_OR_BEFORE, + GTK_TREE_VIEW_DROP_INTO_OR_AFTER +} GtkTreeViewDropPosition; + #define GTK_TYPE_TREE_VIEW (gtk_tree_view_get_type ()) #define GTK_TREE_VIEW(obj) (GTK_CHECK_CAST ((obj), GTK_TYPE_TREE_VIEW, GtkTreeView)) #define GTK_TREE_VIEW_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), GTK_TYPE_TREE_VIEW, GtkTreeViewClass)) @@ -89,8 +102,17 @@ gint gtk_tree_view_insert_column (GtkTreeView *tr GtkTreeViewColumn *gtk_tree_view_get_column (GtkTreeView *tree_view, gint n); +void gtk_tree_view_set_expander_column (GtkTreeView *tree_view, + gint col); + +gint gtk_tree_view_get_expander_column (GtkTreeView *tree_view); + /* Actions */ -void gtk_tree_view_move_to (GtkTreeView *tree_view, +void gtk_tree_view_scroll_to_point (GtkTreeView *tree_view, + gint tree_x, + gint tree_y); + +void gtk_tree_view_scroll_to_cell (GtkTreeView *tree_view, GtkTreePath *path, GtkTreeViewColumn *column, gfloat row_align, @@ -100,7 +122,14 @@ gboolean gtk_tree_view_get_path_at_pos (GtkTreeView *tr gint x, gint y, GtkTreePath **path, - GtkTreeViewColumn **column); + GtkTreeViewColumn **column, + gint *cell_x, + gint *cell_y); +void gtk_tree_view_get_cell_rect (GtkTreeView *tree_view, + GtkTreePath *path, + GtkTreeViewColumn *column, + GdkRectangle *rect); + void gtk_tree_view_expand_all (GtkTreeView *tree_view); void gtk_tree_view_collapse_all (GtkTreeView *tree_view); gboolean gtk_tree_view_expand_row (GtkTreeView *tree_view, @@ -109,6 +138,77 @@ gboolean gtk_tree_view_expand_row (GtkTreeView *tr gboolean gtk_tree_view_collapse_row (GtkTreeView *tree_view, GtkTreePath *path); +void gtk_tree_view_get_visible_rect (GtkTreeView *tree_view, + GdkRectangle *visible_rect); +void gtk_tree_view_widget_to_tree_coords (GtkTreeView *tree_view, + gint wx, + gint wy, + gint *tx, + gint *ty); +void gtk_tree_view_tree_to_widget_coords (GtkTreeView *tree_view, + gint tx, + gint ty, + gint *wx, + gint *wy); + + + +/* Drag-and-Drop support */ + +typedef gboolean (* GtkTreeViewDraggableFunc) (GtkTreeView *tree_view, + GdkDragContext *context, + GtkTreePath *path, + gpointer user_data); + +/* this func can change "pos" if it likes, in addition to returning + * true/false for whether a drop is possible + */ +typedef gboolean (* GtkTreeViewDroppableFunc) (GtkTreeView *tree_view, + GdkDragContext *context, + GtkTreePath *path, + GtkTreeViewDropPosition *pos, + gpointer user_data); + +void gtk_tree_view_set_rows_drag_source (GtkTreeView *tree_view, + GdkModifierType start_button_mask, + const GtkTargetEntry *targets, + gint n_targets, + GdkDragAction actions, + GtkTreeViewDraggableFunc row_draggable_func, + gpointer user_data); +void gtk_tree_view_set_rows_drag_dest (GtkTreeView *tree_view, + const GtkTargetEntry *targets, + gint n_targets, + GdkDragAction actions, + GtkTreeViewDroppableFunc location_droppable_func, + gpointer user_data); + +void gtk_tree_view_unset_rows_drag_source (GtkTreeView *tree_view); +void gtk_tree_view_unset_rows_drag_dest (GtkTreeView *tree_view); + +/* These are useful to implement your own custom stuff. */ +void gtk_tree_view_set_drag_dest_row (GtkTreeView *tree_view, + GtkTreePath *path, + GtkTreeViewDropPosition pos); +gboolean gtk_tree_view_get_dest_row_at_pos (GtkTreeView *tree_view, + gint drag_x, + gint drag_y, + GtkTreePath **path, + GtkTreeViewDropPosition *pos); +GdkPixmap* gtk_tree_view_create_row_drag_icon (GtkTreeView *tree_view, + GtkTreePath *path); + +/* The selection data would normally have target type GTK_TREE_VIEW_ROW in this + * case. If the target is wrong these functions return FALSE. + */ +gboolean gtk_selection_data_set_tree_row (GtkSelectionData *selection_data, + GtkTreeView *tree_view, + GtkTreePath *path); +gboolean gtk_selection_data_get_tree_row (GtkSelectionData *selection_data, + GtkTreeView **tree_view, + GtkTreePath **path); + + #ifdef __cplusplus } |