summaryrefslogtreecommitdiff
path: root/gtk/gtktreeview.h
diff options
context:
space:
mode:
Diffstat (limited to 'gtk/gtktreeview.h')
-rw-r--r--gtk/gtktreeview.h104
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
}