]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtktreeview.h
Add GtkScrollable interface
[~andy/gtk] / gtk / gtktreeview.h
index 750aa1c39e9cca3070be1b1faa29a757ce25b25f..2dd137b8935f9fc9ec04925b1416e074ebeb0260 100644 (file)
  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  * Boston, MA 02111-1307, USA.
  */
+
+#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
+#error "Only <gtk/gtk.h> can be included directly."
+#endif
+
 #ifndef __GTK_TREE_VIEW_H__
 #define __GTK_TREE_VIEW_H__
 
-#include <gtk/gtkwidget.h>
 #include <gtk/gtkcontainer.h>
 #include <gtk/gtktreemodel.h>
 #include <gtk/gtktreeviewcolumn.h>
 #include <gtk/gtkdnd.h>
+#include <gtk/gtkentry.h>
+
+G_BEGIN_DECLS
 
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
 
 typedef enum
 {
@@ -42,11 +46,11 @@ typedef enum
 } 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))
-#define GTK_IS_TREE_VIEW(obj)          (GTK_CHECK_TYPE ((obj), GTK_TYPE_TREE_VIEW))
-#define GTK_IS_TREE_VIEW_CLASS(klass)  (GTK_CHECK_CLASS_TYPE ((klass), GTK_TYPE_TREE_VIEW))
-#define GTK_TREE_VIEW_GET_CLASS(obj)    (GTK_CHECK_GET_CLASS ((obj), GTK_TYPE_TREE_VIEW, GtkTreeViewClass))
+#define GTK_TREE_VIEW(obj)             (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_TREE_VIEW, GtkTreeView))
+#define GTK_TREE_VIEW_CLASS(klass)     (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_TREE_VIEW, GtkTreeViewClass))
+#define GTK_IS_TREE_VIEW(obj)          (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_TREE_VIEW))
+#define GTK_IS_TREE_VIEW_CLASS(klass)  (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_TREE_VIEW))
+#define GTK_TREE_VIEW_GET_CLASS(obj)    (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_TREE_VIEW, GtkTreeViewClass))
 
 typedef struct _GtkTreeView           GtkTreeView;
 typedef struct _GtkTreeViewClass      GtkTreeViewClass;
@@ -58,6 +62,7 @@ struct _GtkTreeView
 {
   GtkContainer parent;
 
+  /* <private> */
   GtkTreeViewPrivate *priv;
 };
 
@@ -65,9 +70,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);
@@ -90,24 +92,27 @@ struct _GtkTreeViewClass
   gboolean (* move_cursor)                (GtkTreeView       *tree_view,
                                           GtkMovementStep    step,
                                           gint               count);
-  void     (* select_all)                 (GtkTreeView       *tree_view);
-  void     (* unselect_all)               (GtkTreeView       *tree_view);
-  void     (* select_cursor_row)          (GtkTreeView       *tree_view,
+  gboolean (* select_all)                 (GtkTreeView       *tree_view);
+  gboolean (* unselect_all)               (GtkTreeView       *tree_view);
+  gboolean (* select_cursor_row)          (GtkTreeView       *tree_view,
                                           gboolean           start_editing);
-  void     (* toggle_cursor_row)          (GtkTreeView       *tree_view);
-  void     (* expand_collapse_cursor_row) (GtkTreeView       *tree_view,
+  gboolean (* toggle_cursor_row)          (GtkTreeView       *tree_view);
+  gboolean (* expand_collapse_cursor_row) (GtkTreeView       *tree_view,
                                           gboolean           logical,
                                           gboolean           expand,
                                           gboolean           open_all);
-  void     (* select_cursor_parent)       (GtkTreeView       *tree_view);
-  void     (* start_interactive_search)   (GtkTreeView       *tree_view);
+  gboolean (* select_cursor_parent)       (GtkTreeView       *tree_view);
+  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);
 };
 
 
@@ -124,10 +129,16 @@ typedef gboolean (*GtkTreeViewSearchEqualFunc) (GtkTreeModel            *model,
                                                const gchar             *key,
                                                GtkTreeIter             *iter,
                                                gpointer                 search_data);
+typedef gboolean (*GtkTreeViewRowSeparatorFunc) (GtkTreeModel      *model,
+                                                GtkTreeIter       *iter,
+                                                gpointer           data);
+typedef void     (*GtkTreeViewSearchPositionFunc) (GtkTreeView  *tree_view,
+                                                  GtkWidget    *search_dialog,
+                                                  gpointer      user_data);
 
 
 /* Creators */
-GtkType                gtk_tree_view_get_type                      (void);
+GType                  gtk_tree_view_get_type                      (void) G_GNUC_CONST;
 GtkWidget             *gtk_tree_view_new                           (void);
 GtkWidget             *gtk_tree_view_new_with_model                (GtkTreeModel              *model);
 
@@ -136,16 +147,23 @@ 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);
+
+#ifndef GTK_DISABLE_DEPRECATED
+
 GtkAdjustment         *gtk_tree_view_get_hadjustment               (GtkTreeView               *tree_view);
 void                   gtk_tree_view_set_hadjustment               (GtkTreeView               *tree_view,
                                                                    GtkAdjustment             *adjustment);
 GtkAdjustment         *gtk_tree_view_get_vadjustment               (GtkTreeView               *tree_view);
 void                   gtk_tree_view_set_vadjustment               (GtkTreeView               *tree_view,
                                                                    GtkAdjustment             *adjustment);
+
+#endif
+
 gboolean               gtk_tree_view_get_headers_visible           (GtkTreeView               *tree_view);
 void                   gtk_tree_view_set_headers_visible           (GtkTreeView               *tree_view,
                                                                    gboolean                   headers_visible);
 void                   gtk_tree_view_columns_autosize              (GtkTreeView               *tree_view);
+gboolean               gtk_tree_view_get_headers_clickable         (GtkTreeView *tree_view);
 void                   gtk_tree_view_set_headers_clickable         (GtkTreeView               *tree_view,
                                                                    gboolean                   setting);
 void                   gtk_tree_view_set_rules_hint                (GtkTreeView               *tree_view,
@@ -164,7 +182,7 @@ gint                   gtk_tree_view_insert_column_with_attributes (GtkTreeView
                                                                    gint                       position,
                                                                    const gchar               *title,
                                                                    GtkCellRenderer           *cell,
-                                                                   ...);
+                                                                   ...) G_GNUC_NULL_TERMINATED;
 gint                   gtk_tree_view_insert_column_with_data_func  (GtkTreeView               *tree_view,
                                                                    gint                       position,
                                                                    const gchar               *title,
@@ -184,7 +202,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,
@@ -201,6 +219,8 @@ void                   gtk_tree_view_row_activated                 (GtkTreeView
                                                                    GtkTreeViewColumn         *column);
 void                   gtk_tree_view_expand_all                    (GtkTreeView               *tree_view);
 void                   gtk_tree_view_collapse_all                  (GtkTreeView               *tree_view);
+void                   gtk_tree_view_expand_to_path                (GtkTreeView               *tree_view,
+                                                                   GtkTreePath               *path);
 gboolean               gtk_tree_view_expand_row                    (GtkTreeView               *tree_view,
                                                                    GtkTreePath               *path,
                                                                    gboolean                   open_all);
@@ -247,16 +267,9 @@ 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);
 
 /* Drag-and-Drop support */
 void                   gtk_tree_view_enable_model_drag_source      (GtkTreeView               *tree_view,
@@ -284,7 +297,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 */
@@ -298,7 +311,48 @@ 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,
+                                                                     GtkEntry                      *entry);
+GtkTreeViewSearchPositionFunc gtk_tree_view_get_search_position_func (GtkTreeView                   *tree_view);
+void                          gtk_tree_view_set_search_position_func (GtkTreeView                   *tree_view,
+                                                                     GtkTreeViewSearchPositionFunc  func,
+                                                                     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.
  */
@@ -309,13 +363,63 @@ typedef void (* GtkTreeDestroyCountFunc)  (GtkTreeView             *tree_view,
 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);
+gboolean gtk_tree_view_get_fixed_height_mode (GtkTreeView          *tree_view);
+void     gtk_tree_view_set_hover_selection   (GtkTreeView          *tree_view,
+                                             gboolean              hover);
+gboolean gtk_tree_view_get_hover_selection   (GtkTreeView          *tree_view);
+void     gtk_tree_view_set_hover_expand      (GtkTreeView          *tree_view,
+                                             gboolean              expand);
+gboolean gtk_tree_view_get_hover_expand      (GtkTreeView          *tree_view);
+void     gtk_tree_view_set_rubber_banding    (GtkTreeView          *tree_view,
+                                             gboolean              enable);
+gboolean gtk_tree_view_get_rubber_banding    (GtkTreeView          *tree_view);
 
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
+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,
+                                                                 GDestroyNotify              destroy);
 
-#endif /* __GTK_TREE_VIEW_H__ */
+GtkTreeViewGridLines        gtk_tree_view_get_grid_lines         (GtkTreeView                *tree_view);
+void                        gtk_tree_view_set_grid_lines         (GtkTreeView                *tree_view,
+                                                                 GtkTreeViewGridLines        grid_lines);
+gboolean                    gtk_tree_view_get_enable_tree_lines  (GtkTreeView                *tree_view);
+void                        gtk_tree_view_set_enable_tree_lines  (GtkTreeView                *tree_view,
+                                                                 gboolean                    enabled);
+void                        gtk_tree_view_set_show_expanders     (GtkTreeView                *tree_view,
+                                                                 gboolean                    enabled);
+gboolean                    gtk_tree_view_get_show_expanders     (GtkTreeView                *tree_view);
+void                        gtk_tree_view_set_level_indentation  (GtkTreeView                *tree_view,
+                                                                 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__ */