Use util_clip_triangle() in pan_item_tri_new()
[geeqie.git] / src / collect.h
index 35d38a1..b55bed0 100644 (file)
 #ifndef COLLECT_H
 #define COLLECT_H
 
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <gdk/gdk.h>
+#include <glib.h>
+#include <gtk/gtk.h>
+
+#include "typedefs.h"
+
+struct CollectTable;
+struct FileData;
+struct ThumbLoader;
+
+struct CollectInfo
+{
+       FileData *fd;
+       GdkPixbuf *pixbuf;
+       guint flag_mask;
+};
 
 CollectInfo *collection_info_new(FileData *fd, struct stat *st, GdkPixbuf *pixbuf);
 
@@ -30,8 +47,6 @@ void collection_info_free(CollectInfo *ci);
 
 void collection_info_set_thumb(CollectInfo *ci, GdkPixbuf *pixbuf);
 
-void collection_list_free(GList *list);
-
 GList *collection_list_sort(GList *list, SortType method);
 GList *collection_list_add(GList *list, CollectInfo *ci, SortType method);
 GList *collection_list_insert(GList *list, CollectInfo *ci, CollectInfo *insert_ci, SortType method);
@@ -39,6 +54,34 @@ GList *collection_list_remove(GList *list, CollectInfo *ci);
 CollectInfo *collection_list_find_fd(GList *list, FileData *fd);
 GList *collection_list_to_filelist(GList *list);
 
+struct CollectionData
+{
+       gchar *path;
+       gchar *name;
+       GList *list;
+       SortType sort_method;
+
+       ThumbLoader *thumb_loader;
+       CollectInfo *thumb_info;
+
+       void (*info_updated_func)(CollectionData *, CollectInfo *, gpointer);
+       gpointer info_updated_data;
+
+       gint ref;
+
+       /* geometry */
+       gboolean window_read;
+       GdkRectangle window;
+
+       gboolean changed; /**< contents changed since save flag */
+
+       GHashTable *existence;
+
+       GtkWidget *dialog_name_entry;
+       gchar *collection_path; /**< Full path to collection including extension */
+       gint collection_append_index;
+};
+
 CollectionData *collection_new(const gchar *path);
 void collection_free(CollectionData *cd);
 
@@ -81,6 +124,17 @@ gboolean collection_rename(CollectionData *cd, FileData *fd);
 
 void collection_update_geometry(CollectionData *cd);
 
+struct CollectWindow
+{
+       GtkWidget *window;
+       CollectTable *table;
+       GtkWidget *status_box;
+
+       GtkWidget *close_dialog;
+
+       CollectionData *cd;
+};
+
 CollectWindow *collection_window_new(const gchar *path);
 void collection_window_close_by_collection(CollectionData *cd);
 CollectWindow *collection_window_find(CollectionData *cd);