X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=gtk%2Fgtktreeview.h;h=cdd94f03ebbb9a78ffb964f51dc2f046b7e4da01;hb=HEAD;hp=529739d2930d7079dbc5fc54637de49539bc8771;hpb=fb59835481b88c0b2c7d7d7d269019d9c9a00490;p=~andy%2Fgtk diff --git a/gtk/gtktreeview.h b/gtk/gtktreeview.h index 529739d29..cdd94f03e 100644 --- a/gtk/gtktreeview.h +++ b/gtk/gtktreeview.h @@ -12,24 +12,33 @@ * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * License along with this library. If not, see . */ + #ifndef __GTK_TREE_VIEW_H__ #define __GTK_TREE_VIEW_H__ -#include +#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION) +#error "Only can be included directly." +#endif + #include #include #include #include #include - G_BEGIN_DECLS - +/** + * GtkTreeViewDropPosition: + * @GTK_TREE_VIEW_DROP_BEFORE: dropped row is inserted before + * @GTK_TREE_VIEW_DROP_AFTER: dropped row is inserted after + * @GTK_TREE_VIEW_DROP_INTO_OR_BEFORE: dropped row becomes a child or is inserted before + * @GTK_TREE_VIEW_DROP_INTO_OR_AFTER: dropped row becomes a child or is inserted after + * + * An enum for determining where a dropped row goes. + */ typedef enum { /* drop before/after this row */ @@ -59,6 +68,7 @@ struct _GtkTreeView { GtkContainer parent; + /*< private >*/ GtkTreeViewPrivate *priv; }; @@ -66,9 +76,6 @@ struct _GtkTreeViewClass { GtkContainerClass parent_class; - void (* set_scroll_adjustments) (GtkTreeView *tree_view, - GtkAdjustment *hadjustment, - GtkAdjustment *vadjustment); void (* row_activated) (GtkTreeView *tree_view, GtkTreePath *path, GtkTreeViewColumn *column); @@ -104,27 +111,88 @@ struct _GtkTreeViewClass gboolean (* start_interactive_search) (GtkTreeView *tree_view); /* Padding for future expansion */ - void (*_gtk_reserved0) (void); void (*_gtk_reserved1) (void); void (*_gtk_reserved2) (void); void (*_gtk_reserved3) (void); void (*_gtk_reserved4) (void); + void (*_gtk_reserved5) (void); + void (*_gtk_reserved6) (void); + void (*_gtk_reserved7) (void); + void (*_gtk_reserved8) (void); }; - +/** + * GtkTreeViewColumnDropFunc: + * @tree_view: A #GtkTreeView + * @column: The #GtkTreeViewColumn being dragged + * @prev_column: A #GtkTreeViewColumn on one side of @column + * @next_column: A #GtkTreeViewColumn on the other side of @column + * @data: (closure): user data + * + * Function type for determining whether @column can be dropped in a + * particular spot (as determined by @prev_column and @next_column). In + * left to right locales, @prev_column is on the left of the potential drop + * spot, and @next_column is on the right. In right to left mode, this is + * reversed. This function should return %TRUE if the spot is a valid drop + * spot. Please note that returning %TRUE does not actually indicate that + * the column drop was made, but is meant only to indicate a possible drop + * spot to the user. + * + * Returns: %TRUE, if @column can be dropped in this spot + */ typedef gboolean (* GtkTreeViewColumnDropFunc) (GtkTreeView *tree_view, GtkTreeViewColumn *column, GtkTreeViewColumn *prev_column, GtkTreeViewColumn *next_column, gpointer data); + +/** + * GtkTreeViewMappingFunc: + * @tree_view: A #GtkTreeView + * @path: The path that's expanded + * @user_data: user data + * + * Function used for gtk_tree_view_map_expanded_rows(). + */ typedef void (* GtkTreeViewMappingFunc) (GtkTreeView *tree_view, GtkTreePath *path, gpointer user_data); + +/** + * GtkTreeViewSearchEqualFunc: + * @model: the #GtkTreeModel being searched + * @column: the search column set by gtk_tree_view_set_search_column() + * @key: the key string to compare with + * @iter: a #GtkTreeIter pointing the row of @model that should be compared + * with @key. + * @search_data: (closure): user data from gtk_tree_view_set_search_equal_func() + * + * A function used for checking whether a row in @model matches + * a search key string entered by the user. Note the return value + * is reversed from what you would normally expect, though it + * has some similarity to strcmp() returning 0 for equal strings. + * + * Returns: %FALSE if the row matches, %TRUE otherwise. + */ typedef gboolean (*GtkTreeViewSearchEqualFunc) (GtkTreeModel *model, gint column, const gchar *key, GtkTreeIter *iter, gpointer search_data); + +/** + * GtkTreeViewRowSeparatorFunc: + * @model: the #GtkTreeModel + * @iter: a #GtkTreeIter pointing at a row in @model + * @data: (closure): user data + * + * Function type for determining whether the row pointed to by @iter should + * be rendered as a separator. A common way to implement this is to have a + * boolean column in the model, whose values the #GtkTreeViewRowSeparatorFunc + * returns. + * + * Returns: %TRUE if the row is a separator + */ typedef gboolean (*GtkTreeViewRowSeparatorFunc) (GtkTreeModel *model, GtkTreeIter *iter, gpointer data); @@ -143,12 +211,19 @@ GtkTreeModel *gtk_tree_view_get_model (GtkTreeView void gtk_tree_view_set_model (GtkTreeView *tree_view, GtkTreeModel *model); GtkTreeSelection *gtk_tree_view_get_selection (GtkTreeView *tree_view); + +GDK_DEPRECATED_IN_3_0_FOR(gtk_scrollable_get_hadjustment) GtkAdjustment *gtk_tree_view_get_hadjustment (GtkTreeView *tree_view); +GDK_DEPRECATED_IN_3_0_FOR(gtk_scrollable_set_hadjustment) void gtk_tree_view_set_hadjustment (GtkTreeView *tree_view, GtkAdjustment *adjustment); +GDK_DEPRECATED_IN_3_0_FOR(gtk_scrollable_get_vadjustment) GtkAdjustment *gtk_tree_view_get_vadjustment (GtkTreeView *tree_view); +GDK_DEPRECATED_IN_3_0_FOR(gtk_scrollable_set_vadjustment) void gtk_tree_view_set_vadjustment (GtkTreeView *tree_view, GtkAdjustment *adjustment); + + gboolean gtk_tree_view_get_headers_visible (GtkTreeView *tree_view); void gtk_tree_view_set_headers_visible (GtkTreeView *tree_view, gboolean headers_visible); @@ -159,6 +234,11 @@ void gtk_tree_view_set_headers_clickable (GtkTreeView void gtk_tree_view_set_rules_hint (GtkTreeView *tree_view, gboolean setting); gboolean gtk_tree_view_get_rules_hint (GtkTreeView *tree_view); +GDK_AVAILABLE_IN_3_8 +gboolean gtk_tree_view_get_activate_on_single_click (GtkTreeView *tree_view); +GDK_AVAILABLE_IN_3_8 +void gtk_tree_view_set_activate_on_single_click (GtkTreeView *tree_view, + gboolean single); /* Column funtions */ gint gtk_tree_view_append_column (GtkTreeView *tree_view, @@ -180,6 +260,9 @@ gint gtk_tree_view_insert_column_with_data_func (GtkTreeView GtkTreeCellDataFunc func, gpointer data, GDestroyNotify dnotify); + +GDK_AVAILABLE_IN_3_4 +guint gtk_tree_view_get_n_columns (GtkTreeView *tree_view); GtkTreeViewColumn *gtk_tree_view_get_column (GtkTreeView *tree_view, gint n); GList *gtk_tree_view_get_columns (GtkTreeView *tree_view); @@ -192,7 +275,7 @@ GtkTreeViewColumn *gtk_tree_view_get_expander_column (GtkTreeView void gtk_tree_view_set_column_drag_function (GtkTreeView *tree_view, GtkTreeViewColumnDropFunc func, gpointer user_data, - GtkDestroyNotify destroy); + GDestroyNotify destroy); /* Actions */ void gtk_tree_view_scroll_to_point (GtkTreeView *tree_view, @@ -257,19 +340,16 @@ void gtk_tree_view_get_background_area (GtkTreeView GdkRectangle *rect); 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); gboolean gtk_tree_view_get_visible_range (GtkTreeView *tree_view, GtkTreePath **start_path, GtkTreePath **end_path); +gboolean gtk_tree_view_is_blank_at_pos (GtkTreeView *tree_view, + gint x, + gint y, + GtkTreePath **path, + GtkTreeViewColumn **column, + gint *cell_x, + gint *cell_y); /* Drag-and-Drop support */ void gtk_tree_view_enable_model_drag_source (GtkTreeView *tree_view, @@ -297,7 +377,7 @@ gboolean gtk_tree_view_get_dest_row_at_pos (GtkTreeView gint drag_y, GtkTreePath **path, GtkTreeViewDropPosition *pos); -GdkPixmap *gtk_tree_view_create_row_drag_icon (GtkTreeView *tree_view, +cairo_surface_t *gtk_tree_view_create_row_drag_icon (GtkTreeView *tree_view, GtkTreePath *path); /* Interactive search */ @@ -311,7 +391,7 @@ GtkTreeViewSearchEqualFunc gtk_tree_view_get_search_equal_func (GtkTreeView void gtk_tree_view_set_search_equal_func (GtkTreeView *tree_view, GtkTreeViewSearchEqualFunc search_equal_func, gpointer search_user_data, - GtkDestroyNotify search_destroy); + GDestroyNotify search_destroy); GtkEntry *gtk_tree_view_get_search_entry (GtkTreeView *tree_view); void gtk_tree_view_set_search_entry (GtkTreeView *tree_view, @@ -322,16 +402,49 @@ void gtk_tree_view_set_search_position_func (GtkTreeVie gpointer data, GDestroyNotify destroy); +/* Convert between the different coordinate systems */ +void gtk_tree_view_convert_widget_to_tree_coords (GtkTreeView *tree_view, + gint wx, + gint wy, + gint *tx, + gint *ty); +void gtk_tree_view_convert_tree_to_widget_coords (GtkTreeView *tree_view, + gint tx, + gint ty, + gint *wx, + gint *wy); +void gtk_tree_view_convert_widget_to_bin_window_coords (GtkTreeView *tree_view, + gint wx, + gint wy, + gint *bx, + gint *by); +void gtk_tree_view_convert_bin_window_to_widget_coords (GtkTreeView *tree_view, + gint bx, + gint by, + gint *wx, + gint *wy); +void gtk_tree_view_convert_tree_to_bin_window_coords (GtkTreeView *tree_view, + gint tx, + gint ty, + gint *bx, + gint *by); +void gtk_tree_view_convert_bin_window_to_tree_coords (GtkTreeView *tree_view, + gint bx, + gint by, + gint *tx, + gint *ty); + /* This function should really never be used. It is just for use by ATK. */ typedef void (* GtkTreeDestroyCountFunc) (GtkTreeView *tree_view, GtkTreePath *path, gint children, gpointer user_data); +GDK_DEPRECATED_IN_3_4 void gtk_tree_view_set_destroy_count_func (GtkTreeView *tree_view, GtkTreeDestroyCountFunc func, gpointer data, - GtkDestroyNotify destroy); + GDestroyNotify destroy); void gtk_tree_view_set_fixed_height_mode (GtkTreeView *tree_view, gboolean enable); @@ -346,11 +459,13 @@ void gtk_tree_view_set_rubber_banding (GtkTreeView *tree_view, gboolean enable); gboolean gtk_tree_view_get_rubber_banding (GtkTreeView *tree_view); +gboolean gtk_tree_view_is_rubber_banding_active (GtkTreeView *tree_view); + GtkTreeViewRowSeparatorFunc gtk_tree_view_get_row_separator_func (GtkTreeView *tree_view); void gtk_tree_view_set_row_separator_func (GtkTreeView *tree_view, GtkTreeViewRowSeparatorFunc func, gpointer data, - GtkDestroyNotify destroy); + GDestroyNotify destroy); GtkTreeViewGridLines gtk_tree_view_get_grid_lines (GtkTreeView *tree_view); void gtk_tree_view_set_grid_lines (GtkTreeView *tree_view, @@ -365,8 +480,27 @@ void gtk_tree_view_set_level_indentation (GtkTreeView gint indentation); gint gtk_tree_view_get_level_indentation (GtkTreeView *tree_view); +/* Convenience functions for setting tooltips */ +void gtk_tree_view_set_tooltip_row (GtkTreeView *tree_view, + GtkTooltip *tooltip, + GtkTreePath *path); +void gtk_tree_view_set_tooltip_cell (GtkTreeView *tree_view, + GtkTooltip *tooltip, + GtkTreePath *path, + GtkTreeViewColumn *column, + GtkCellRenderer *cell); +gboolean gtk_tree_view_get_tooltip_context(GtkTreeView *tree_view, + gint *x, + gint *y, + gboolean keyboard_tip, + GtkTreeModel **model, + GtkTreePath **path, + GtkTreeIter *iter); +void gtk_tree_view_set_tooltip_column (GtkTreeView *tree_view, + gint column); +gint gtk_tree_view_get_tooltip_column (GtkTreeView *tree_view); + G_END_DECLS #endif /* __GTK_TREE_VIEW_H__ */ -