r70: Removed some old code. Dragging now quotes the correct MIME type for files.
[rox-filer.git] / ROX-Filer / src / filer.h
blob631b0443fb69583999cabe98a69876d78030cfd2
1 /* vi: set cindent:
2 * $Id$
4 * ROX-Filer, filer for the ROX desktop project
5 * By Thomas Leonard, <tal197@ecs.soton.ac.uk>.
6 */
8 #ifndef _FILER_H
9 #define _FILER_H
11 #include <gtk/gtk.h>
12 #include <collection.h>
13 #include "pixmaps.h"
14 #include <sys/types.h>
15 #include <dirent.h>
17 typedef struct _FilerWindow FilerWindow;
18 typedef struct _FileItem FileItem;
19 typedef enum {LEFT, RIGHT, TOP, BOTTOM} Side;
21 typedef enum
23 ITEM_FLAG_SYMLINK = 0x01, /* Is a symlink */
24 ITEM_FLAG_APPDIR = 0x02, /* Contains /AppInfo */
25 ITEM_FLAG_MOUNT_POINT = 0x04, /* Is in mtab or fstab */
26 ITEM_FLAG_MOUNTED = 0x08, /* Is in /etc/mtab */
27 ITEM_FLAG_TEMP_ICON = 0x10, /* Free icon after use */
28 ITEM_FLAG_EXEC_FILE = 0x20, /* File, and has an X bit set */
29 } ItemFlags;
31 typedef enum
33 FILER_NEEDS_RESCAN = 0x01, /* Call may_rescan after scanning */
34 } FilerFlags;
36 #include "type.h"
38 struct _FilerWindow
40 GtkWidget *window;
41 char *path; /* pathname */
42 Collection *collection;
43 gboolean panel;
44 gboolean temp_item_selected;
45 gboolean show_hidden;
46 FilerFlags flags;
47 Side panel_side;
48 time_t m_time; /* m-time at last scan */
50 /* Scanning */
51 DIR *dir;
52 gint idle_scan_id; /* (only if dir != NULL) */
53 guint scan_min_width; /* Min width possible so far */
56 struct _FileItem
58 char *leafname;
60 int base_type; /* (regular file, dir, pipe, etc) */
61 MIME_type *mime_type; /* NULL, except for non-exec files */
62 ItemFlags flags;
64 int text_width;
65 int pix_width;
66 int pix_height;
67 MaskedPixmap *image;
70 extern FilerWindow *window_with_focus;
71 extern GHashTable *child_to_filer;
73 /* Prototypes */
74 void filer_init();
75 void filer_opendir(char *path, gboolean panel, Side panel_side);
76 void scan_dir(FilerWindow *filer_window);
77 void panel_set_timeout(FilerWindow *filer_window, gulong msec);
78 FileItem *selected_item(Collection *collection);
79 void refresh_dirs(char *path);
81 #endif /* _FILER_H */