]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtktreesortable.h
Improve GtkBuilder error reporting
[~andy/gtk] / gtk / gtktreesortable.h
index 6f8f4dcd7edd1f9c57f135ddeeb98a9599b6cb97..a576e2dff03b3709a8f57139cca7b3e8d16fe616 100644 (file)
  * Boston, MA 02111-1307, USA.
  */
 
+#if defined(GTK_DISABLE_SINGLE_INCLUDES) && !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
+#error "Only <gtk/gtk.h> can be included directly."
+#endif
+
 #ifndef __GTK_TREE_SORTABLE_H__
 #define __GTK_TREE_SORTABLE_H__
 
+
 #include <gtk/gtktreemodel.h>
+#include <gtk/gtktypeutils.h>
 
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
 
-typedef enum
-{
-  GTK_TREE_SORT_ASCENDING,
-  GTK_TREE_SORT_DESCENDING
-} GtkTreeSortOrder;
+G_BEGIN_DECLS
 
 #define GTK_TYPE_TREE_SORTABLE            (gtk_tree_sortable_get_type ())
 #define GTK_TREE_SORTABLE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_TREE_SORTABLE, GtkTreeSortable))
 #define GTK_TREE_SORTABLE_CLASS(obj)      (G_TYPE_CHECK_CLASS_CAST ((obj), GTK_TYPE_TREE_SORTABLE, GtkTreeSortableIface))
 #define GTK_IS_TREE_SORTABLE(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_TREE_SORTABLE))
-#define GTK_TREE_SORTABLE_GET_IFACE(obj)  ((GtkTreeSortableIface *)g_type_interface_peek (((GTypeInstance *)GTK_TREE_SORTABLE (obj))->g_class, GTK_TYPE_TREE_SORTABLE))
+#define GTK_TREE_SORTABLE_GET_IFACE(obj)  (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GTK_TYPE_TREE_SORTABLE, GtkTreeSortableIface))
 
+enum {
+  GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID = -1,
+  GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID = -2
+};
 
 typedef struct _GtkTreeSortable      GtkTreeSortable; /* Dummy typedef */
 typedef struct _GtkTreeSortableIface GtkTreeSortableIface;
@@ -53,44 +56,48 @@ struct _GtkTreeSortableIface
   GTypeInterface g_iface;
 
   /* signals */
-  void (* sort_column_changed) (GtkTreeSortable  *sortable);
+  void     (* sort_column_changed)   (GtkTreeSortable        *sortable);
 
   /* virtual table */
-  gboolean (* get_sort_column_id)  (GtkTreeSortable  *sortable,
-                                   gint             *sort_column_id,
-                                   GtkTreeSortOrder *order);
-  void (* set_sort_column_id)      (GtkTreeSortable  *sortable,
-                                   gint              sort_column_id,
-                                   GtkTreeSortOrder  order);
-  void (* sort_column_id_set_func) (GtkTreeSortable  *sortable,
-                                   gint              sort_column_id,
-                                   GtkTreeIterCompareFunc func,
-                                   gpointer          data,
-                                   GtkDestroyNotify  destroy);
+  gboolean (* get_sort_column_id)    (GtkTreeSortable        *sortable,
+                                     gint                   *sort_column_id,
+                                     GtkSortType            *order);
+  void     (* set_sort_column_id)    (GtkTreeSortable        *sortable,
+                                     gint                    sort_column_id,
+                                     GtkSortType             order);
+  void     (* set_sort_func)         (GtkTreeSortable        *sortable,
+                                     gint                    sort_column_id,
+                                     GtkTreeIterCompareFunc  func,
+                                     gpointer                data,
+                                     GDestroyNotify          destroy);
+  void     (* set_default_sort_func) (GtkTreeSortable        *sortable,
+                                     GtkTreeIterCompareFunc  func,
+                                     gpointer                data,
+                                     GDestroyNotify          destroy);
+  gboolean (* has_default_sort_func) (GtkTreeSortable        *sortable);
 };
 
 
-GType    gtk_tree_sortable_get_type                (void) G_GNUC_CONST;
-
-void     gtk_tree_sortable_sort_column_changed     (GtkTreeSortable        *sortable);
-gboolean gtk_tree_sortable_get_sort_column_id      (GtkTreeSortable        *sortable,
-                                                   gint                   *sort_column_id,
-                                                   GtkTreeSortOrder       *order);
-void     gtk_tree_sortable_set_sort_column_id      (GtkTreeSortable        *sortable,
-                                                   gint                    sort_column_id,
-                                                   GtkTreeSortOrder        order);
-void     gtk_tree_sortable_sort_column_id_set_func (GtkTreeSortable        *sortable,
-                                                   gint                    sort_column_id,
-                                                   GtkTreeIterCompareFunc  func,
-                                                   gpointer                data,
-                                                   GtkDestroyNotify        destroy);
-
-
-
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
+GType    gtk_tree_sortable_get_type              (void) G_GNUC_CONST;
+
+void     gtk_tree_sortable_sort_column_changed   (GtkTreeSortable        *sortable);
+gboolean gtk_tree_sortable_get_sort_column_id    (GtkTreeSortable        *sortable,
+                                                 gint                   *sort_column_id,
+                                                 GtkSortType            *order);
+void     gtk_tree_sortable_set_sort_column_id    (GtkTreeSortable        *sortable,
+                                                 gint                    sort_column_id,
+                                                 GtkSortType             order);
+void     gtk_tree_sortable_set_sort_func         (GtkTreeSortable        *sortable,
+                                                 gint                    sort_column_id,
+                                                 GtkTreeIterCompareFunc  sort_func,
+                                                 gpointer                user_data,
+                                                 GDestroyNotify          destroy);
+void     gtk_tree_sortable_set_default_sort_func (GtkTreeSortable        *sortable,
+                                                 GtkTreeIterCompareFunc  sort_func,
+                                                 gpointer                user_data,
+                                                 GDestroyNotify          destroy);
+gboolean gtk_tree_sortable_has_default_sort_func (GtkTreeSortable        *sortable);
+
+G_END_DECLS
 
 #endif /* __GTK_TREE_SORTABLE_H__ */