]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtktreedatalist.h
filechooserbutton: Update the button/combo whenever the selection is changed programm...
[~andy/gtk] / gtk / gtktreedatalist.h
index 78f4db651a43a7721c38deb1bc60bd177c06f299..85e56219e469b88e2dc7ee8569f60e1f2505692d 100644 (file)
  * 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 <http://www.gnu.org/licenses/>.
  */
 
-
 #ifndef __GTK_TREE_DATA_LIST_H__
 #define __GTK_TREE_DATA_LIST_H__
 
-#include <glib.h>
-#include <gobject/gobject.h>
+#include <gtk/gtktreemodel.h>
+#include <gtk/gtktreesortable.h>
 
 typedef struct _GtkTreeDataList GtkTreeDataList;
 struct _GtkTreeDataList
@@ -34,22 +31,51 @@ struct _GtkTreeDataList
     gint8          v_char;
     guint8         v_uchar;
     guint         v_uint;
+    glong         v_long;
+    gulong        v_ulong;
+    gint64        v_int64;
+    guint64        v_uint64;
     gfloat        v_float;
+    gdouble        v_double;
     gpointer      v_pointer;
   } data;
 };
 
-/* FIXME: s/gtk/_gtk/g to make internal */
-void             gtk_tree_data_list_push_allocator (GAllocator      *allocator);
-void             gtk_tree_data_list_pop_allocator  (void);
-GtkTreeDataList *gtk_tree_data_list_alloc          (void);
-void             gtk_tree_data_list_free           (GtkTreeDataList *list);
+typedef struct _GtkTreeDataSortHeader
+{
+  gint sort_column_id;
+  GtkTreeIterCompareFunc func;
+  gpointer data;
+  GDestroyNotify destroy;
+} GtkTreeDataSortHeader;
+
+GtkTreeDataList *_gtk_tree_data_list_alloc          (void);
+void             _gtk_tree_data_list_free           (GtkTreeDataList *list,
+                                                    GType           *column_headers);
+gboolean         _gtk_tree_data_list_check_type     (GType            type);
+void             _gtk_tree_data_list_node_to_value  (GtkTreeDataList *list,
+                                                    GType            type,
+                                                    GValue          *value);
+void             _gtk_tree_data_list_value_to_node  (GtkTreeDataList *list,
+                                                    GValue          *value);
 
-void             gtk_tree_data_list_node_to_value  (GtkTreeDataList   *list,
-                                                   GType              type,
-                                                   GValue            *value);
-void             gtk_tree_data_list_value_to_node  (GtkTreeDataList   *list,
-                                                   GValue            *value);
+GtkTreeDataList *_gtk_tree_data_list_node_copy      (GtkTreeDataList *list,
+                                                     GType            type);
 
+/* Header code */
+gint                   _gtk_tree_data_list_compare_func (GtkTreeModel *model,
+                                                        GtkTreeIter  *a,
+                                                        GtkTreeIter  *b,
+                                                        gpointer      user_data);
+GList *                _gtk_tree_data_list_header_new  (gint          n_columns,
+                                                       GType        *types);
+void                   _gtk_tree_data_list_header_free (GList        *header_list);
+GtkTreeDataSortHeader *_gtk_tree_data_list_get_header  (GList        *header_list,
+                                                       gint          sort_column_id);
+GList                 *_gtk_tree_data_list_set_header  (GList                  *header_list,
+                                                       gint                    sort_column_id,
+                                                       GtkTreeIterCompareFunc  func,
+                                                       gpointer                data,
+                                                       GDestroyNotify          destroy);
 
 #endif /* __GTK_TREE_DATA_LIST_H__ */