typedef struct _ImageWindow ImageWindow;
+typedef struct _FileCluster FileCluster;
+typedef struct _FileClusterList FileClusterList;
+
typedef struct _FileData FileData;
typedef struct _FileDataChangeInfo FileDataChangeInfo;
gboolean mouse_wheel_mode;
};
+// A FileCluster is a GList with HashTable access to each node (to perform contains() checks quickly).
+struct _FileCluster
+{
+ GList *head;
+ GList *items;
+};
+
+struct _FileClusterList
+{
+ // All of the elements in the list, regardless of whether they're part of a cluster or not.
+ GList *fd_list;
+
+ // A map from any clustered FileData to the FileCluster object that describes the cluster.
+ GHashTable *clusters;
+};
+
#define FILEDATA_MARKS_SIZE 6
struct _FileDataChangeInfo {
FileData *dir_fd;
GList *list;
+ FileClusterList *cluster_list;
SortType sort_method;
gboolean sort_ascend;