r3660: Panel and pinboard icons can now have a single argument set for them.
[rox-filer.git] / ROX-Filer / src / icon.h
blob436cb0e1be2658f656644726d34f1fb9c9c98f08
1 /*
2 * ROX-Filer, filer for the ROX desktop project
3 * By Thomas Leonard, <tal197@users.sourceforge.net>.
4 */
6 #ifndef _ICON_H
7 #define _ICON_H
9 #include <glib.h>
10 #include <X11/Xlib.h>
12 extern GList *icon_selection;
13 extern GtkWidget *icon_menu; /* The popup icon menu */
15 typedef struct _IconClass IconClass;
17 typedef struct {
18 KeyCode keycode;
19 int modifier;
20 } MyKey;
22 struct _IconClass {
23 GObjectClass parent;
25 gboolean (*same_group)(Icon *icon, Icon *other);
26 void (*destroy)(Icon *icon);
27 void (*redraw)(Icon *icon);
28 void (*update)(Icon *icon);
29 void (*wink)(Icon *icon);
31 /* Acts on selected items */
32 void (*remove_items)(void);
35 struct _Icon {
36 GObject object;
38 gboolean selected;
39 guchar *src_path; /* Eg: ~/Apps */
40 guchar *path; /* Eg: /home/fred/Apps */
41 DirItem *item;
42 gchar *shortcut; /* Eg: Control + x */
43 MyKey shortcut_key; /* Parsed version of shortcut */
44 gchar *arg; /* Arg to pass for apps and executables*/
46 GtkWidget *dialog; /* Current rename box, if any */
49 GType icon_get_type(void);
50 gboolean icons_require(const gchar *path);
51 void icon_may_update(Icon *icon);
52 void icons_may_update(const gchar *path);
53 void icon_prepare_menu(Icon *icon, gboolean pinboard);
54 void icon_set_selected(Icon *icon, gboolean selected);
55 void icon_select_only(Icon *select);
56 void icon_set_path(Icon *icon, const char *pathname, const char *name);
57 gchar *icon_create_uri_list(void);
58 void icon_destroy(Icon *icon);
59 void icon_set_shortcut(Icon *icon, const gchar *shortcut);
60 void icon_set_argument(Icon *icon, const gchar *arg);
62 #endif /* _ICON_H */