summaryrefslogtreecommitdiff
path: root/gtk/gtktreeview.h
diff options
context:
space:
mode:
authorHavoc Pennington <hp@redhat.com>2001-01-19 22:39:19 +0000
committerHavoc Pennington <hp@src.gnome.org>2001-01-19 22:39:19 +0000
commite248e4e79eb81478d62a42df12e9c11a837dd068 (patch)
tree1c1001af13a5e32ee9dd9637c8d70ea080af3eab /gtk/gtktreeview.h
parent3da8e3c7dd846e48d745c9a1b4cafd399fd49517 (diff)
downloadgtk+-e248e4e79eb81478d62a42df12e9c11a837dd068.tar.gz
sync to tree changes
2001-01-19 Havoc Pennington <hp@redhat.com> * demos/gtk-demo/main.c (button_press_event_cb): sync to tree changes * gtk/gtkrbtree.c (_gtk_rbtree_node_find_offset): fix this function * gtk/gtktreeviewcolumn.c (gtk_tree_view_column_set_widget): implement * gtk/gtktreeview.c (gtk_tree_view_move_to): rename scroll_to_cell, matches TextView scroll functions better (gtk_tree_view_tree_to_widget_coords): new function (gtk_tree_view_widget_to_tree_coords): new function (gtk_tree_view_get_visible_rect): new function (gtk_tree_view_get_path_at_pos): accept negative coordinates (gtk_tree_view_draw_node_focus_rect): new function moved from draw_focus, also, use width of bin_window as width of the focus rect (gtk_tree_view_expand_row): fix bug where it didn't recognize already-expanded rows (gtk_tree_view_get_cell_rect): new function (gtk_tree_view_get_path_at_pos): return the click position relative to the passed-in cell (gtk_tree_view_set_expander_column): new function * configure.in: remove gtk-config-2.0 chmod * gtk/gtktextview.c (gtk_text_view_drag_motion): small cleanups, and properly handle drags with targets we don't understand (gtk_text_view_drag_end): don't stop scrolling, the source isn't scrolling anyway (gtk_text_view_drag_drop): stop scrolling here though, and set the mark invisible * gtk/gtkdnd.c (gtk_drag_dest_find_target): export as a public function (gtk_drag_dest_get_target_list): new function (gtk_drag_dest_set_target_list): new function * gtk/gtktreeview.c: Add a bunch of drag-and-drop implementation * gtk/gtktreeprivate.h (struct _GtkTreeViewPrivate): add fields related to drag-and-drop
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
}