r4654: Allow pinboard and panel icons to be locked (Dennis Tomas, suggested by
[rox-filer.git] / ROX-Filer / src / panel.h
blob4558bb1665299c21580661b7dd98c591ce59fbbb
1 /*
2 * ROX-Filer, filer for the ROX desktop project
3 * By Thomas Leonard, <tal197@users.sourceforge.net>.
4 */
6 #ifndef _PANEL_H
7 #define _PANEL_H
9 typedef enum {
10 PANEL_TOP,
11 PANEL_BOTTOM,
12 PANEL_LEFT,
13 PANEL_RIGHT,
15 PANEL_NUMBER_OF_SIDES, /* (goes after valid sides) */
17 PANEL_DEFAULT_SIDE /* Read from file, or use free side */
18 } PanelSide;
20 #define MENU_MARGIN(side) ((side) == PANEL_BOTTOM ? 32 : 8)
22 struct _Panel {
23 GtkWidget *window;
24 GtkAdjustment *adj; /* Scroll position of the bar */
25 PanelSide side;
26 guchar *name; /* Leaf name */
28 GtkWidget *before; /* Icons at the left/top end */
29 GtkWidget *after; /* Icons at the right/bottom end */
31 GtkWidget *gap; /* Event box between sides */
33 int autoscroll_to; /* Timeout */
34 int autoscroll_speed; /* 0 => not scrolling */
37 extern Panel *current_panel[PANEL_NUMBER_OF_SIDES];
39 void panel_init(void);
40 Panel *panel_new(const gchar *name, PanelSide side);
41 void panel_icon_may_update(Icon *icon);
42 void panel_save(Panel *panel);
44 gboolean panel_add(PanelSide side,
45 const gchar *path, const gchar *label, gboolean after, const gchar *shortcut, const gchar *args,
46 gboolean locked);
47 gboolean panel_remove_item(PanelSide side, const gchar *path,
48 const gchar *label);
49 void panel_mark_used(GdkRegion *used);
50 void panel_update_size(void);
51 PanelSide panel_name_to_side(gchar *side);
53 #endif /* _PANEL_H */