r1553: Created View interface and started moving collection specific stuff
[rox-filer.git] / ROX-Filer / src / global.h
blobb2ecff7bde3e580b7e1fc01f8d0f43afac5b80ea
1 /*
2 * $Id$
4 * ROX-Filer, filer for the ROX desktop project
5 * By Thomas Leonard, <tal197@users.sourceforge.net>.
6 */
8 /* global.h is included by most of the other source files, just after
9 * including config.h and the system header files, but before any other
10 * ROX-Filer header files.
13 #include <glib.h>
15 /* We put all the global typedefs here to avoid creating dependencies
16 * between header files.
19 /* Each filer window has one of these all to itself */
20 typedef struct _FilerWindow FilerWindow;
22 /* There is one Directory object per cached disk directory inode number.
23 * Multiple FilerWindows may share a single Directory. Directories
24 * are cached, so a Directory may exist without any filer windows
25 * referencing it at all.
27 typedef struct _Directory Directory;
29 /* Each item in a directory has a DirItem. The contains information from
30 * stat()ing the file, plus a few other bits. There may be several of these
31 * for a single file, if it appears (hard-linked) in several directories.
32 * Each pinboard and panel icon also has one of these (not shared).
34 typedef struct _DirItem DirItem;
36 /* A Collection is a GtkWidget used to arrange a grid of items.
37 * Each filer window has its own one of these; the data field
38 * of each item is the corresponding DirItem, shared with the
39 * FilerWindow's Directory and other windows' Collections.
41 typedef struct _Collection Collection;
43 /* Each item in a Collection has one of these, which stores its selected
44 * state, data, and view_data.
46 typedef struct _CollectionItem CollectionItem;
48 /* A viewport containing a Collection which also handles redraw */
49 typedef struct _ViewCollection ViewCollection;
51 /* This contains the pixbufs for an image, in various sizes */
52 typedef struct _MaskedPixmap MaskedPixmap;
54 /* Each MIME type (eg 'text/plain') has one of these. It contains
55 * a link to the image and the type's name (used so that the image can
56 * be refreshed, amoung other things).
58 typedef struct _MIME_type MIME_type;
60 /* Icon is an abstract base class for pinboard and panel icons.
61 * It contains the name and path of the icon, as well as its DirItem.
63 typedef struct _Icon Icon;
65 /* There will be one of these if the pinboard is in use. It contains
66 * the name of the pinboard and links to the pinned Icons inside.
68 typedef struct _Pinboard Pinboard;
70 /* There is one of these for each panel window open. Panels work rather
71 * like little pinboards, but with a more rigid layout.
73 typedef struct _Panel Panel;
75 /* Each option has a static Option structure. This is initialised by
76 * calling option_add_int() or similar. See options.c for details.
77 * This structure is read-only.
79 typedef struct _Option Option;
81 /* A filesystem cache provides a quick and easy way to load files.
82 * When a cache is created, functions to load and update files are
83 * registered to it. Requesting an object from the cache will load
84 * or update it as needed, or return the cached copy if the current
85 * version of the file is already cached.
86 * Caches are used to access directories, images and XML files.
88 typedef struct _GFSCache GFSCache;
90 /* Each cached XML file is represented by one of these */
91 typedef struct _XMLwrapper XMLwrapper;
93 /* The minibuffer is a text field which appears at the bottom of
94 * a filer window. It has four modes of operation:
96 typedef enum {
97 MINI_NONE,
98 MINI_PATH,
99 MINI_SHELL,
100 MINI_SELECT_IF,
101 } MiniType;
103 /* The next two correspond to the styles on the Display submenu: */
105 typedef enum { /* Values used in options, must start at 0 */
106 LARGE_ICONS = 0,
107 SMALL_ICONS = 1,
108 HUGE_ICONS = 2,
109 UNKNOWN_STYLE
110 } DisplayStyle;
112 typedef enum { /* Values used in options, must start at 0 */
113 DETAILS_NONE = 0,
114 DETAILS_SUMMARY = 1,
115 DETAILS_SIZE = 2,
116 DETAILS_PERMISSIONS = 3,
117 DETAILS_TYPE = 4,
118 DETAILS_TIMES = 5,
119 DETAILS_UNKNOWN = -1,
120 } DetailsType;
122 /* The namespaces for the SOAP messages */
123 #define SOAP_ENV_NS_OLD "http://www.w3.org/2001/06/soap-envelope"
124 #define SOAP_ENV_NS "http://www.w3.org/2001/12/soap-envelope"
125 #define SOAP_RPC_NS "http://www.w3.org/2001/12/soap-rpc"
126 #define ROX_NS "http://rox.sourceforge.net/SOAP/ROX-Filer"
128 #include <libxml/tree.h>