1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
|
#ifndef SCREEM_FILE_BROWSER_H
#define SCREEM_FILE_BROWSER_H
#include <glib-object.h>
#include <gdk-pixbuf/gdk-pixbuf.h>
#include <gtk/gtktreemodel.h>
#include <gtk/gtktreesortable.h>
#include <libgnomevfs/gnome-vfs-monitor.h>
#define SCREEM_TYPE_FILE_BROWSER (screem_file_browser_get_type())
#define SCREEM_FILE_BROWSER(obj) (G_TYPE_CHECK_INSTANCE_CAST( ( obj ), \
SCREEM_TYPE_FILE_BROWSER, \
ScreemFileBrowser ) )
#define SCREEM_IS_FILE_BROWSER(obj) (G_TYPE_CHECK_INSTANCE_TYPE( ( obj ), \
SCREEM_TYPE_FILE_BROWSER ) )
enum {
FILE_BROWSER_NAME_COL,
FILE_BROWSER_ICON_COL,
FILE_BROWSER_NODE_COL,
FILE_BROWSER_USER_COL,
FILE_BROWSER_DATA_COL,
FILE_BROWSER_URI_COL,
FILE_BROWSER_MIME_COL, /* pointer to const string, as
there is no G_TYPE_CONST_STRING */
FILE_BROWSER_MAX_COL
};
typedef enum {
FILE_BROWSE_NORMAL = 0,
FILE_BROWSE_FLAT = 1 << 1,
FILE_BROWSE_RECURSE = 1 << 2,
FILE_BROWSE_ROOT = 1 << 3
} ScreemFileBrowserMode;
typedef struct ScreemFileBrowserDetails ScreemFileBrowserDetails;
typedef struct {
GObject parent_object;
ScreemFileBrowserDetails *details;
} ScreemFileBrowser;
typedef struct {
GObjectClass parent_spot;
/* emited when we remove a node from the model */
void (*removed)( ScreemFileBrowser *browser,
const gchar *uri,
GtkTreeIter *it );
/* emited when we add a node to the model */
void (*added)( ScreemFileBrowser *browser,
const gchar *uri,
const gchar *mime_type,
GtkTreeIter *it );
void (*icon_change)( ScreemFileBrowser *browser,
const gchar *uri,
const gchar *mime_type,
GtkTreeIter *it );
/* fired when the theme changes for places where
* a ScreemFileBrowser is being used just to get icons */
void (*theme_change)( ScreemFileBrowser *browser );
} ScreemFileBrowserClass;
GType screem_file_browser_get_type( void );
ScreemFileBrowser *screem_file_browser_new();
/* set the default mode, passing -1 as the mode to other funcs
causes this to be used */
void screem_file_browser_set_mode( ScreemFileBrowser *browser,
ScreemFileBrowserMode mode );
/* made available so a different view can be used if wanted */
GtkTreeModel *screem_file_browser_get_model( ScreemFileBrowser *browser );
void screem_file_browser_scan_directory( ScreemFileBrowser *browser,
const gchar *uri,
int mode );
const gchar* screem_file_browser_scan_iter( ScreemFileBrowser *browser,
GtkTreeIter *iter,
int mode );
/* returns a list of filenames from the given list of iterators */
GList *screem_file_browser_get_pathnames( ScreemFileBrowser *browser,
GList *iters, gboolean recurse );
/* give a custom sort function for the browser */
void screem_file_browser_set_sort_func( ScreemFileBrowser *browser,
GtkTreeIterCompareFunc func,
gpointer data );
GdkPixbuf *screem_file_browser_get_icon( ScreemFileBrowser *browser,
const gchar *uri,
gint width, gint height,
gboolean ignore_cache,
gchar **mtype );
void screem_file_browser_file_mod( ScreemFileBrowser *browser,
const gchar *directory,
const gchar *file,
GnomeVFSMonitorEventType type );
/* only call on app exit */
void screem_file_browser_cleanup( void );
#endif
|