1 #ifndef RODENT_ACTIONS_H
2 #define RODENT_ACTIONS_H
3 
4 void rodent_init(void);
5 
6 RodentButtonDefinition *
7 rodent_get_button_definitions(void);
8 
9 
10 ///////////////////////   menu  /////////////////////////
11 
12 #define TOGGLE_FLAG \
13        ((1<<HIDDEN_TOGGLED)|(1<<PREVIEW_TOGGLED)|(1<<BACKUP_TOGGLED)|\
14 	(1<<CASESORT_TOGGLED)|(1<<NAME_SORT_ACTIVATE)|\
15 	(1<<TYPE_SORT_ACTIVATE)|(1<<DATE_SORT_ACTIVATE)|\
16 	(1<<SIZE_SORT_ACTIVATE)|(1<<OWNER_SORT_ACTIVATE)|\
17 	(1<<GROUP_SORT_ACTIVATE)|(1<<MODE_SORT_ACTIVATE)|\
18 	(1<<COMPACT_ICONSIZE_TOGGLED)|(1<<TINY_ICONSIZE_TOGGLED)|\
19 	(1<<NORMAL_ICONSIZE_TOGGLED)|(1<<BIG_ICONSIZE_TOGGLED)|\
20 	(1<<HUGE_ICONSIZE_TOGGLED))
21 #define IS_TOGGLE(x) ((x <= HUGE_ICONSIZE_TOGGLED) && ((1<<x) & TOGGLE_FLAG))
22 #define RADIO_FLAG \
23        ((1<<NAME_SORT_ACTIVATE)|\
24 	(1<<TYPE_SORT_ACTIVATE)|(1<<DATE_SORT_ACTIVATE)|\
25 	(1<<SIZE_SORT_ACTIVATE)|(1<<OWNER_SORT_ACTIVATE)|\
26 	(1<<GROUP_SORT_ACTIVATE)|(1<<MODE_SORT_ACTIVATE)|\
27 	(1<<COMPACT_ICONSIZE_TOGGLED)|(1<<TINY_ICONSIZE_TOGGLED)|\
28 	(1<<NORMAL_ICONSIZE_TOGGLED)|(1<<BIG_ICONSIZE_TOGGLED)|\
29 	(1<<HUGE_ICONSIZE_TOGGLED))
30 #define IS_RADIO(x) ((x <= HUGE_ICONSIZE_TOGGLED) && ((1<<x) & RADIO_FLAG))
31 
32 //
33 ///////////////////////   buttons  /////////////////////////
34 
35 
36 #define ONE32 ((gint32) 0x01)
37 #define ONE64 (G_GINT64_CONSTANT(0x01))
38 
39 #define DEFAULT_TOOLBAR_BUTTONS \
40 	((ONE64<<LS_CALLBACK_BUTTON_ID)| \
41 	(ONE64<<NEW_TAB_CALLBACK_B_BUTTON_ID)| \
42 	(ONE64<<NEW_WINDOW_CALLBACK_BUTTON_ID)| \
43 	(ONE64<<SORT_DESCENDING_CALLBACK_BUTTON_ID)| \
44 	(ONE64<<TYPE_SORT_CALLBACK_BUTTON_ID)| \
45 	(ONE64<<NAME_SORT_CALLBACK_BUTTON_ID)| \
46 	(ONE64<<DATE_SORT_CALLBACK_BUTTON_ID)| \
47 	(ONE64<<CASE_SORT_CALLBACK_BUTTON_ID)| \
48 	(ONE64<<SHOW_HIDDEN_CALLBACK_BUTTON_ID)| \
49 	(ONE64<<SHOW_BACKUP_CALLBACK_BUTTON_ID) \
50 	)
51 
52 
53 /**
54  * Three types of actions: menu action, button action and keybind action.
55 **/
56 
57 /**
58  * Menu action is the basic action. All actions are done by menu actions
59  * Button and keybind actions just front end for the menu action.
60  **/
61 
62 /**
63  * Menu actions are defined with the RodentMenuType. The type defines
64  * the kind of menu item, which can be an inactive item (NULL_TYPE),
65  * a submenu (SUBMENU_TYPE),
66  * a common menu action (MENUITEM_TYPE), a toggle menu item (CHECKITEM_TYPE),
67  * a radio-button menu item (RADIOITEM_TYPE),
68  * or an inactive separator item (SEPARATOR_TYPE).
69  **/
70 
71 ///////////////////////   buttons  /////////////////////////
72 // PLEASE NOTE:
73 //
74 // If items in menu_enum_t are moved around, or items added or removed
75 // you must update KEYBINDINGS_FILE (files.h) to current build.
76 //
77 // You have been warned...
78 //
79 enum menu_enum_t {
80     ACTIVATE, // This should be the first.
81     // Toggles (value is use to set a bit flag with shift)
82     // NOTE: Checkboxes and toggles should always follow ACTIVATE
83     // and order important because of the shift flag defined
84     // above.
85     HIDDEN_TOGGLED,
86     BACKUP_TOGGLED,
87     PREVIEW_TOGGLED,
88     CASESORT_TOGGLED,
89     ASCENDING_ACTIVATE,
90     DESCENDING_ACTIVATE,
91     // Radio items: sort
92     NAME_SORT_ACTIVATE,
93     TYPE_SORT_ACTIVATE,
94     DATE_SORT_ACTIVATE,
95     SIZE_SORT_ACTIVATE,
96     OWNER_SORT_ACTIVATE,
97     GROUP_SORT_ACTIVATE,
98     MODE_SORT_ACTIVATE,
99     // Radio items: size
100     COMPACT_ICONSIZE_TOGGLED,
101     TINY_ICONSIZE_TOGGLED,
102     NORMAL_ICONSIZE_TOGGLED,
103     BIG_ICONSIZE_TOGGLED,
104     HUGE_ICONSIZE_TOGGLED,
105     //
106     // These are all normal callbacks.
107     // Ordering is now irrelevant from this point on.
108     PLUS_ICONSIZE_ACTIVATE,
109     MINUS_ICONSIZE_ACTIVATE,
110     DEFAULT_ICONSIZE_ACTIVATE,
111     DEFAULT_ICONSIZE_ALL_ACTIVATE,
112 
113     MENU_ACTIVATE,
114     GLOB_ACTIVATE,
115     FIND_ACTIVATE,
116     HELP_ACTIVATE,
117     REMOVE_ACTIVATE,
118     REFRESH_ACTIVATE,
119     RELOAD_ACTIVATE,
120     HOST_ACTIVATE,
121     GOUP_ACTIVATE,
122     FORWARD_ACTIVATE,
123     BACK_ACTIVATE,
124     HOME_ACTIVATE,
125     JUMP_TO_ACTIVATE,
126     PLUGIN_GOTO_ACTIVATE,
127     LEVEL_GOTO_ACTIVATE,
128     RUN_ACTIVATE,
129     OPEN_WITH_ACTIVATE,
130     ABOUT_ACTIVATE,
131     NEW_WINDOW_ACTIVATE,
132     NEW_TAB_ACTIVATE,
133     OPEN_IN_TERMINAL_ACTIVATE,
134     DIFFERENCES_ACTIVATE,
135     SETTINGS_ACTIVATE,
136     NEWDIR_ACTIVATE,
137     NEWFILE_ACTIVATE,
138     AUTOTYPE_ACTIVATE,
139     AUTOTYPE_R_ACTIVATE,
140     BCRYPT_ACTIVATE,
141     RENAME_ACTIVATE,
142     DUPLICATE_ACTIVATE,
143     SYMLINK_ACTIVATE,
144     DONE_WITH_RENAME,
145     TOUCH_ACTIVATE,
146     PROPERTIES_ACTIVATE,
147     UNSELECT_ALL_ACTIVATE,
148     SELECT_ALL_ACTIVATE,
149     SELECT_INVERT_ACTIVATE,
150     SELECT_BY_FILTER_ACTIVATE,
151     UNSELECT_BY_FILTER_ACTIVATE,
152     MOUNT_ACTIVATE,
153     UNMOUNT_ACTIVATE,
154     CUT_ACTIVATE,
155     COPY_ACTIVATE,
156     PASTE_ACTIVATE,
157     CLOSE_ACTIVATE,
158     QUIT_ACTIVATE,
159     BOOKMARK_ADD_ACTIVATE,
160     BOOKMARK_REMOVE_ACTIVATE,
161     BOOKMARK_TOGGLED,
162     KEYBINDINGS_ACTIVATE,
163     LS_ACTIVATE,
164 
165 
166     ENUM_CALLBACKS
167 };
168 
169 ///////////////////////   menu  /////////////////////////
170 
171 // If order is changed or items added/removed, then
172 // you must bump-up configuration file build compatibility
173 enum button_callback_id_t {
174     NEW_WINDOW_CALLBACK_BUTTON_ID,   	// 2
175     LS_CALLBACK_BUTTON_ID,   	// 2
176     NEW_FILE_CALLBACK_BUTTON_ID,   	// 0
177     NEWDIR_CALLBACK_BUTTON_ID,   	// 1
178     ABOUT_CALLBACK_BUTTON_ID,   	// 3 f
179     JUMP_TO_CALLBACK_BUTTON_ID,   	// 4
180     GOTO_HOST_CALLBACK_BUTTON_ID,   	// 5
181     GOTO_HOME_CALLBACK_BUTTON_ID,   	// 6
182     GO_UP_CALLBACK_BUTTON_ID,   	// 7 ff
183     GO_FORWARD_CALLBACK_BUTTON_ID,   	// 8
184     GO_BACK_CALLBACK_BUTTON_ID,   	// 8
185     CUT_CALLBACK_BUTTON_ID,   		// 9
186     COPY_CALLBACK_BUTTON_ID,   		// 10
187     PASTE_CALLBACK_BUTTON_ID,   	// 11 fff
188     REMOVE_CALLBACK_BUTTON_ID,   	// 12
189     TOGGLE_BOOKMARK_CALLBACK_BUTTON_ID,	// 13
190     HELP_CALLBACK_BUTTON_ID,   		// 14
191     SETTINGS_CALLBACK_BUTTON_ID,   	// 15 ffff
192     TERMINAL_CALLBACK_BUTTON_ID,   	// 16
193     REFRESH_CALLBACK_BUTTON_ID,   	// 17
194     RUN_CALLBACK_BUTTON_ID,   		// 18
195     FIND_CALLBACK_BUTTON_ID,   		// 19 fffff
196     DIFFERENCES_CALLBACK_BUTTON_ID,   	// 20
197     SORT_ASCENDING_CALLBACK_BUTTON_ID,	// 21
198     SORT_DESCENDING_CALLBACK_BUTTON_ID,	// 22
199     KEYBINDINGS_CALLBACK_BUTTON_ID,   	// 23 ffffff
200     SELECT_ALL_CALLBACK_BUTTON_ID,   	// 24
201     SELECT_INVERT_CALLBACK_BUTTON_ID,   // 25
202     UNSELECT_ALL_CALLBACK_BUTTON_ID,   	// 26
203     SELECT_BYFILTER_CALLBACK_BUTTON_ID,	// 27 fffffff
204     UNSELECT_BYFILTER_CALLBACK_BUTTON_ID,   // 28
205     TYPE_SORT_CALLBACK_BUTTON_ID,   	//29
206     NAME_SORT_CALLBACK_BUTTON_ID,   	// 30
207     DATE_SORT_CALLBACK_BUTTON_ID,   	// 31 ffffffff
208     SIZE_SORT_CALLBACK_BUTTON_ID,   	// 32
209     OWNER_SORT_CALLBACK_BUTTON_ID,   	// 33
210     GROUP_SORT_CALLBACK_BUTTON_ID,   	// 34
211     MODE_SORT_CALLBACK_BUTTON_ID,   	// 35 fffffffff
212     DEFAULT_ICONSIZE_CALLBACK_BUTTON_ID,// 36
213     DEFAULT_ICONSIZE_ALL_CALLBACK_BUTTON_ID,   // 37
214     COMPACT_ICONSIZE_CALLBACK_BUTTON_ID,// 38
215     TINY_ICONSIZE_CALLBACK_BUTTON_ID,   // 39 ffffffffff
216     NORMAL_ICONSIZE_CALLBACK_BUTTON_ID, // 40
217     BIG_ICONSIZE_CALLBACK_BUTTON_ID,   	// 41
218     HUGE_ICONSIZE_CALLBACK_BUTTON_ID,   // 42
219     PLUS_ICONSIZE_CALLBACK_BUTTON_ID,   // 43 fffffffffff
220     MINUS_ICONSIZE_CALLBACK_BUTTON_ID,  // 44
221     SHOW_HIDDEN_CALLBACK_BUTTON_ID,   	// 45
222     SHOW_BACKUP_CALLBACK_BUTTON_ID,   	// 46
223     PREVIEW_IMAGES_CALLBACK_BUTTON_ID,  // 47
224     CASE_SORT_CALLBACK_BUTTON_ID,   	// 48
225     NEW_TAB_CALLBACK_BUTTON_ID,  	// 49
226     NEW_TAB_CALLBACK_B_BUTTON_ID,  	// < 64
227     BUTTON_OVERFLOW_ID
228     };
229 
230 /* Use as many different names for as many different
231  * autotype menu entries for one file extension type. */
232 #define AUTO_C_NAME \
233     "autotype-0",\
234     "autotype-1",\
235     "autotype-2",\
236     "autotype-3",\
237     "autotype-4",\
238     "autotype-5",\
239     "autotype-6",\
240     "autotype-7",\
241     "autotype-8",\
242     "autotype-9",\
243     NULL
244 
245 
246 #define NEW_FILE_CALLBACK \
247     {NEWFILE_ACTIVATE, N_("Create new file in the given directory"),"xffm/stock_new", \
248     NULL, NULL,		GDK_KEY_Insert,	GDK_CONTROL_MASK }
249 
250 #define NEWDIR_CALLBACK \
251     {NEWDIR_ACTIVATE, N_("Create a new empty folder inside this folder"),"xffm/stock_directory/compositeNW/emblem_star",\
252     NULL, NULL,		GDK_KEY_N,	(GDK_CONTROL_MASK|GDK_SHIFT_MASK) }
253 
254 #define BCRYPT_CALLBACK \
255     {BCRYPT_ACTIVATE, N_("bcrypt"),"xffm/emblem_lock/compositeNE/emblem_greenball",\
256     NULL, NULL,		GDK_KEY_B,	(GDK_CONTROL_MASK|GDK_SHIFT_MASK)}
257 
258 #define RENAME_CALLBACK \
259     {RENAME_ACTIVATE, N_("Rename"),"xffm/stock_save-as/compositeNE/emblem_greenball",\
260     NULL, NULL,		GDK_KEY_R,	(GDK_CONTROL_MASK|GDK_SHIFT_MASK)}
261 
262 #define DUPLICATE_CALLBACK \
263     {DUPLICATE_ACTIVATE, N_("Duplicate"),"xffm/stock_copy/compositeNE/emblem_greenball",\
264     NULL, NULL,	GDK_KEY_d,	GDK_CONTROL_MASK}
265 
266 #define SYMLINK_CALLBACK \
267     {SYMLINK_ACTIVATE, N_("Link"),"xffm/emblem_symbolic-link/compositeNE/emblem_greenball",\
268     NULL, NULL,		GDK_KEY_s,	GDK_CONTROL_MASK}
269 
270 #define TOUCH_CALLBACK \
271     {TOUCH_ACTIVATE, N_("Touch"),"xffm/emblem_about/compositeNE/emblem_greenball",\
272     NULL, NULL,		GDK_KEY_T,	(GDK_CONTROL_MASK|GDK_SHIFT_MASK)}
273 #define LS_CALLBACK \
274     {LS_ACTIVATE, N_("File Information..."),"xffm/emblem_about",\
275     NULL, NULL,		GDK_KEY_F10,	0}
276 #define PROPERTIES_CALLBACK \
277     {PROPERTIES_ACTIVATE, N_("Properties"),"xffm/stock_properties",\
278     NULL, NULL,		GDK_KEY_p,	GDK_CONTROL_MASK}
279 
280 #define NEW_WINDOW_CALLBACK \
281     {NEW_WINDOW_ACTIVATE, N_("Open in New Window"),"rodent",\
282    NULL, NULL,	GDK_KEY_n,	GDK_CONTROL_MASK}
283 //Different button icon for the toolbar
284 #define NEW_TAB_CALLBACK_B \
285     {NEW_TAB_ACTIVATE, N_("Open in New Tab"),"xffm/stock_add",\
286    NULL, NULL,	0,	0}
287 
288 #define NEW_TAB_CALLBACK \
289     {NEW_TAB_ACTIVATE, N_("Open in New Tab"),"xffm/stock_directory",\
290    NULL, NULL,	GDK_KEY_t,	GDK_CONTROL_MASK}
291 
292 #define SHOW_HIDDEN_CALLBACK \
293     {HIDDEN_TOGGLED, N_("Show hidden files"),"xffm/emblem_show-hidden",\
294    NULL, NULL,		GDK_KEY_h,	GDK_CONTROL_MASK, CHECKITEM_TYPE}
295 
296 #define SHOW_BACKUP_CALLBACK \
297     {BACKUP_TOGGLED, N_("Show Backup Files"),"xffm/emblem_bak",\
298    NULL, NULL,		GDK_KEY_b,	GDK_CONTROL_MASK, CHECKITEM_TYPE}
299 
300 #define PREVIEW_IMAGES_CALLBACK \
301     {PREVIEW_TOGGLED, N_("Show previews of files and directories."),"xffm/emblem_image",\
302    NULL, NULL,		GDK_KEY_i,	GDK_CONTROL_MASK, CHECKITEM_TYPE}
303 
304 #define ABOUT_CALLBACK \
305     {ABOUT_ACTIVATE, N_("About"),"xffm/stock_about",\
306    NULL, NULL,		GDK_KEY_A,	(GDK_CONTROL_MASK|GDK_SHIFT_MASK)}
307 
308 #define JUMP_TO_CALLBACK \
309     {JUMP_TO_ACTIVATE, N_("Choose Location"),"xffm/stock_jump",\
310    NULL, NULL,		GDK_KEY_Down,	GDK_MOD5_MASK|GDK_MOD1_MASK}
311 
312 #define GOTO_HOST_CALLBACK \
313     {HOST_ACTIVATE, N_("System"), "xffm/emblem_computer",\
314    NULL, NULL,		GDK_KEY_End,	GDK_MOD5_MASK|GDK_MOD1_MASK}
315 
316 #define GOTO_HOME_CALLBACK \
317     {HOME_ACTIVATE, N_("Home"),"xffm/stock_home",\
318    NULL, NULL,		GDK_KEY_Home,	GDK_MOD5_MASK|GDK_MOD1_MASK}
319 
320 #define GO_UP_CALLBACK \
321     {GOUP_ACTIVATE, N_("Go up"),"xffm/stock_go-up",\
322    NULL, NULL,		GDK_KEY_Up,	GDK_MOD5_MASK|GDK_MOD1_MASK}
323 
324 #define GO_BACK_CALLBACK \
325     {BACK_ACTIVATE, N_("Go back"),"xffm/stock_go-previous",\
326     NULL, NULL,		GDK_KEY_Left,	GDK_MOD5_MASK|GDK_MOD1_MASK}
327 
328 #define GO_FORWARD_CALLBACK \
329     {FORWARD_ACTIVATE, N_("Go forward"),"xffm/stock_go-next",\
330     NULL, NULL,		GDK_KEY_Right,	GDK_MOD5_MASK|GDK_MOD1_MASK}
331 
332 #define CUT_CALLBACK \
333     {CUT_ACTIVATE, N_("Cut"),"xffm/stock_cut",\
334    NULL, NULL,		GDK_KEY_x,	GDK_CONTROL_MASK}
335 
336 #define COPY_CALLBACK \
337     {COPY_ACTIVATE, N_("Copy"),"xffm/stock_copy",\
338    NULL, NULL,		GDK_KEY_c,	GDK_CONTROL_MASK}
339 
340 #define PASTE_CALLBACK \
341     {PASTE_ACTIVATE, N_("Paste"),"xffm/stock_paste",\
342    NULL, NULL,		GDK_KEY_v,	GDK_CONTROL_MASK}
343 
344 #define REMOVE_CALLBACK \
345     {REMOVE_ACTIVATE, N_("Delete"),"xffm/stock_delete",\
346    NULL, NULL,		GDK_KEY_Delete,	0}
347 
348 #define AUTOTYPE_CALLBACK \
349     {AUTOTYPE_ACTIVATE, "Mimetype command","xffm/stock_execute",\
350    NULL, NULL,		0,	0}
351 
352 #define AUTOTYPE_R_CALLBACK \
353     {AUTOTYPE_R_ACTIVATE, "autotype_Prun","xffm/stock_execute",\
354    NULL, NULL,	0,	0}
355 
356 #define OPEN_WITH_CALLBACK \
357     {OPEN_WITH_ACTIVATE, N_("Open with"),"xffm/stock_open",\
358    NULL, NULL,	GDK_KEY_o,	GDK_CONTROL_MASK}
359 
360 #define ADD_BOOKMARK_CALLBACK \
361     {BOOKMARK_ADD_ACTIVATE, N_("Add bookmark"),"xffm/emblem_bookmark/compositeNE/emblem_greenball",\
362    NULL, NULL,	0,	0}
363 
364 #define REMOVE_BOOKMARK_CALLBACK \
365     {BOOKMARK_REMOVE_ACTIVATE, N_("Remove bookmark"),"xffm/emblem_bookmark/compositeNE/emblem_redball",\
366    NULL, NULL,	0,	0}
367 
368 #define TOGGLE_BOOKMARK_CALLBACK \
369     {BOOKMARK_TOGGLED, N_("Toggle Bookmark"),"xffm/emblem_bookmark",\
370    NULL, NULL,	GDK_KEY_F12,	0, CHECKITEM_TYPE}
371 
372 #define MOUNT_CALLBACK \
373     {MOUNT_ACTIVATE, N_("Mount the volume associated with this folder"),"xffm/emblem_greenball",\
374    NULL, NULL,		GDK_KEY_m,	GDK_CONTROL_MASK}
375 
376 #define UNMOUNT_CALLBACK \
377     {UNMOUNT_ACTIVATE, N_("Unmount the volume associated with this folder"),"xffm/emblem_redball",\
378    NULL, NULL,		GDK_KEY_M,	(GDK_CONTROL_MASK|GDK_SHIFT_MASK)}
379 
380 #define CLOSE_CALLBACK \
381     {CLOSE_ACTIVATE, N_("Close"),"xffm/stock_close",\
382    NULL, NULL,		GDK_KEY_q,	GDK_CONTROL_MASK}
383 
384 #define HELP_CALLBACK \
385     {HELP_ACTIVATE, N_("Help"),"xffm/stock_help",\
386    NULL, NULL,		GDK_KEY_F1,	0}
387 
388 #define SETTINGS_CALLBACK \
389     {SETTINGS_ACTIVATE, N_("Personal settings"),"xffm/stock_preferences",\
390    NULL, NULL,		GDK_KEY_F2,	0}
391 
392 #define TERMINAL_CALLBACK \
393     {OPEN_IN_TERMINAL_ACTIVATE, N_("Open terminal"),"xffm/emblem_terminal",\
394    NULL, NULL,	GDK_KEY_F4,	0}
395 
396 // This is the same as REFRESH_CALLBACK, except that this one gets displayed in menu:
397 #define RELOAD_CALLBACK \
398     {RELOAD_ACTIVATE, N_("Reload"),"xffm/stock_refresh",\
399    NULL, NULL,		GDK_KEY_F5,	0}
400 
401 #define REFRESH_CALLBACK \
402     {REFRESH_ACTIVATE, N_("Reload"),"xffm/stock_refresh",\
403    NULL, NULL,		GDK_KEY_r,	GDK_CONTROL_MASK}
404 
405 #define RUN_CALLBACK \
406     {RUN_ACTIVATE, N_("Execute Shell Command"),"xffm/stock_execute",\
407     NULL, NULL,		GDK_KEY_F6,	0}
408 
409 // This is the same as FIND_CALLBACK, except that this one gets displayed in menu:
410 #define SEARCH_CALLBACK \
411     {GLOB_ACTIVATE, N_("Search"),"xffm/stock_find",\
412    NULL, NULL,		GDK_KEY_F7,	0}
413 
414 #define FIND_CALLBACK \
415     {FIND_ACTIVATE, N_("Search"),"xffm/stock_find",\
416    NULL, NULL,		GDK_KEY_f,	GDK_CONTROL_MASK}
417 
418 #define DIFFERENCES_CALLBACK \
419     {DIFFERENCES_ACTIVATE, N_("Compare Files or Folders"),"xffm/emblem_diff-tool",\
420    NULL, NULL,	GDK_KEY_F8,	0}
421 
422 #define CASE_SORT_CALLBACK \
423     {CASESORT_TOGGLED, N_("Sort case insensitive"),"xffm/stock_bold",\
424    NULL, NULL,		GDK_KEY_F11,	0, CHECKITEM_TYPE}
425 
426 #define SORT_ASCENDING_CALLBACK \
427     {ASCENDING_ACTIVATE, N_("Sort data in ascending order"),"xffm/stock_sort-ascending",\
428    NULL, NULL,		GDK_KEY_F2,	GDK_CONTROL_MASK}
429 
430 #define SORT_DESCENDING_CALLBACK \
431     {DESCENDING_ACTIVATE, N_("Sort data in descending order"),"xffm/stock_sort-descending",\
432    NULL, NULL,		GDK_KEY_F3,	GDK_CONTROL_MASK}
433 
434 
435 #define KEYBINDINGS_CALLBACK \
436     {KEYBINDINGS_ACTIVATE, N_("Global keybindings support"),"xffm/emblem_keyboard",\
437    NULL, NULL,		GDK_KEY_F1,	GDK_CONTROL_MASK}
438 
439 #define SELECT_ALL_CALLBACK \
440     {SELECT_ALL_ACTIVATE, N_("Select All"),"xffm/stock_select-all",\
441     NULL, NULL,	GDK_KEY_a, 	GDK_CONTROL_MASK}
442 
443 #define SELECT_INVERT_CALLBACK \
444     {SELECT_INVERT_ACTIVATE, N_("Invert Selection"),"xffm/stock_select-all/compositeSE/emblem_invert",\
445     NULL, \
446 		NULL,			GDK_KEY_equal, 	GDK_CONTROL_MASK}
447 
448 #define UNSELECT_ALL_CALLBACK \
449     {UNSELECT_ALL_ACTIVATE, N_("Unselect"),"xffm/stock_select-all/compositeSE/emblem_grayball",\
450     NULL, NULL,	GDK_KEY_u, 	GDK_CONTROL_MASK}
451 
452 #define SELECT_BYFILTER_CALLBACK \
453     {SELECT_BY_FILTER_ACTIVATE, N_("Select Items Matching..."),"xffm/stock_select-all/compositeSE/emblem_greenball",\
454    NULL, \
455 	NULL,				GDK_KEY_plus, 	GDK_CONTROL_MASK}
456 
457 #define UNSELECT_BYFILTER_CALLBACK \
458     {UNSELECT_BY_FILTER_ACTIVATE, N_("Unselect Items Matching..."),"xffm/stock_select-all/compositeSE/emblem_redball",\
459     NULL, \
460 	NULL,				GDK_KEY_minus, 	GDK_CONTROL_MASK}
461 
462 
463 #define NAME_SORT_CALLBACK \
464     {NAME_SORT_ACTIVATE, N_("Sort by name"),NULL,\
465    NULL, NULL,	GDK_KEY_F4,	GDK_CONTROL_MASK, RADIOITEM_TYPE}
466 
467 #define TYPE_SORT_CALLBACK \
468     {TYPE_SORT_ACTIVATE, N_("Default sort order"),NULL,\
469    NULL, NULL,		GDK_KEY_F5,	GDK_CONTROL_MASK, RADIOITEM_TYPE}
470 
471 #define DATE_SORT_CALLBACK \
472     {DATE_SORT_ACTIVATE, N_("Sort by date"),NULL,\
473    NULL, NULL,		GDK_KEY_F6,	GDK_CONTROL_MASK, RADIOITEM_TYPE}
474 
475 #define SIZE_SORT_CALLBACK \
476     {SIZE_SORT_ACTIVATE, N_("Sort by size"),NULL,\
477    NULL, NULL,		GDK_KEY_F7,	GDK_CONTROL_MASK, RADIOITEM_TYPE}
478 
479 #define OWNER_SORT_CALLBACK \
480     {OWNER_SORT_ACTIVATE, N_("User"),NULL,\
481    NULL, NULL,		GDK_KEY_F8,	GDK_CONTROL_MASK, RADIOITEM_TYPE}
482 
483 #define GROUP_SORT_CALLBACK \
484     {GROUP_SORT_ACTIVATE, N_("Group"),NULL,\
485    NULL, NULL,		GDK_KEY_F9,	GDK_CONTROL_MASK, RADIOITEM_TYPE}
486 
487 #define MODE_SORT_CALLBACK \
488     {MODE_SORT_ACTIVATE, N_("By Permissions"),NULL,\
489    NULL, NULL,		GDK_KEY_F10,	GDK_CONTROL_MASK, RADIOITEM_TYPE}
490 
491 
492 #define MENU_CALLBACK \
493     {MENU_ACTIVATE, N_("Opens the main menu."),"xffm/emblem_applications",\
494     NULL, NULL,		GDK_KEY_F3,	0}
495 
496 #define NULL_CALLBACK  {-1, NULL,NULL, NULL, NULL, 0,0}
497 
498 ////////////////////////////////////////////////////////////////////////////////////
499 
500 
501 #define PLUS_ICONSIZE_CALLBACK \
502     {PLUS_ICONSIZE_ACTIVATE, N_("Enlarge Icons"),"xffm/stock_zoom-in",\
503    NULL, NULL, GDK_KEY_KP_Add,	GDK_CONTROL_MASK}
504 
505 #define MINUS_ICONSIZE_CALLBACK \
506     {MINUS_ICONSIZE_ACTIVATE, N_("Shrink Icons"),"xffm/stock_zoom-out",\
507    NULL, NULL, GDK_KEY_KP_Subtract,GDK_CONTROL_MASK}
508 
509 #define DEFAULT_ICONSIZE_CALLBACK \
510     {DEFAULT_ICONSIZE_ACTIVATE, N_("Default icon zoom level"),"xffm/stock_zoom-100/compositeNE/emblem_grayball",\
511    NULL, NULL, GDK_KEY_0,	GDK_CONTROL_MASK}
512 
513 #define DEFAULT_ICONSIZE_ALL_CALLBACK \
514     {DEFAULT_ICONSIZE_ALL_ACTIVATE, "Default icon zoom level (all)","xffm/stock_zoom-100/compositeNE/emblem_greenball",\
515    NULL, NULL, GDK_KEY_9,	GDK_CONTROL_MASK}
516 
517 #define COMPACT_ICONSIZE_CALLBACK \
518     {COMPACT_ICONSIZE_TOGGLED, N_("View as list"),NULL,\
519    NULL, NULL, GDK_KEY_1,	GDK_CONTROL_MASK, RADIOITEM_TYPE}
520 
521 #define TINY_ICONSIZE_CALLBACK \
522     {TINY_ICONSIZE_TOGGLED, N_("Small Icons"),NULL,\
523    NULL, NULL, GDK_KEY_2,	GDK_CONTROL_MASK, RADIOITEM_TYPE}
524 
525 #define NORMAL_ICONSIZE_CALLBACK \
526     {NORMAL_ICONSIZE_TOGGLED, N_("Normal Icons"),NULL,\
527    NULL, NULL, GDK_KEY_3,	GDK_CONTROL_MASK, RADIOITEM_TYPE}
528 
529 #define BIG_ICONSIZE_CALLBACK \
530     {BIG_ICONSIZE_TOGGLED, N_("Large Icons"),NULL,\
531    NULL, NULL, GDK_KEY_4,	GDK_CONTROL_MASK, RADIOITEM_TYPE}
532 
533 #define HUGE_ICONSIZE_CALLBACK \
534     {HUGE_ICONSIZE_TOGGLED, N_("Very large"),NULL,\
535    NULL, NULL, GDK_KEY_5,	GDK_CONTROL_MASK, RADIOITEM_TYPE}
536 
537 #endif
538