1 #ifndef KEYBINDINGS_H 2 #define KEYBINDINGS_H 3 4 #include "DialogBox.h" 5 #include "IconList.h" 6 7 8 class KeybindingsBox : public DialogBox 9 { 10 FXDECLARE(KeybindingsBox) 11 protected: 12 IconList* glbBindingsList; 13 IconList* xfeBindingsList; 14 IconList* xfiBindingsList; 15 IconList* xfwBindingsList; 16 FXStringDict* glbBindingsDict; 17 FXStringDict* xfeBindingsDict; 18 FXStringDict* xfiBindingsDict; 19 FXStringDict* xfwBindingsDict; 20 FXStringDict* glbBindingsDict_prev; 21 FXStringDict* xfeBindingsDict_prev; 22 FXStringDict* xfiBindingsDict_prev; 23 FXStringDict* xfwBindingsDict_prev; 24 FXbool changed; 25 26 private: KeybindingsBox()27 KeybindingsBox() : glbBindingsList(NULL), xfeBindingsList(NULL), xfiBindingsList(NULL), xfwBindingsList(NULL), 28 glbBindingsDict(NULL), xfeBindingsDict(NULL), xfiBindingsDict(NULL), xfwBindingsDict(NULL), 29 glbBindingsDict_prev(NULL), xfeBindingsDict_prev(NULL), xfiBindingsDict_prev(NULL), 30 xfwBindingsDict_prev(NULL), changed(false) 31 {} 32 public: 33 enum 34 { 35 ID_ACCEPT=DialogBox::ID_LAST, 36 ID_CANCEL, 37 ID_GLB_BINDINGS_LIST, 38 ID_XFE_BINDINGS_LIST, 39 ID_XFI_BINDINGS_LIST, 40 ID_XFW_BINDINGS_LIST, 41 ID_GLB_SORT_BY_ACTIONNAME, 42 ID_GLB_SORT_BY_REGISTRYKEY, 43 ID_GLB_SORT_BY_KEYBINDING, 44 ID_XFE_SORT_BY_ACTIONNAME, 45 ID_XFE_SORT_BY_REGISTRYKEY, 46 ID_XFE_SORT_BY_KEYBINDING, 47 ID_XFI_SORT_BY_ACTIONNAME, 48 ID_XFI_SORT_BY_REGISTRYKEY, 49 ID_XFI_SORT_BY_KEYBINDING, 50 ID_XFW_SORT_BY_ACTIONNAME, 51 ID_XFW_SORT_BY_REGISTRYKEY, 52 ID_XFW_SORT_BY_KEYBINDING, 53 ID_LAST 54 }; 55 KeybindingsBox(FXWindow*, FXStringDict*, FXStringDict*, FXStringDict*, FXStringDict*); 56 virtual void create(); 57 58 virtual ~KeybindingsBox(); 59 FXuint execute(FXuint); 60 long onCmdAccept(FXObject*, FXSelector, void*); 61 long onCmdCancel(FXObject*, FXSelector, void*); 62 long onCmdDefineGlbKeybindings(FXObject*, FXSelector, void*); 63 long onCmdDefineXfeKeybindings(FXObject*, FXSelector, void*); 64 long onCmdDefineXfiKeybindings(FXObject*, FXSelector, void*); 65 long onCmdDefineXfwKeybindings(FXObject*, FXSelector, void*); 66 long onCmdGlbSortByActionName(FXObject*, FXSelector, void*); 67 long onCmdGlbSortByRegistryKey(FXObject*, FXSelector, void*); 68 long onCmdGlbSortByKeyBinding(FXObject*, FXSelector, void*); 69 long onCmdXfeSortByActionName(FXObject*, FXSelector, void*); 70 long onCmdXfeSortByRegistryKey(FXObject*, FXSelector, void*); 71 long onCmdXfeSortByKeyBinding(FXObject*, FXSelector, void*); 72 long onCmdXfiSortByActionName(FXObject*, FXSelector, void*); 73 long onCmdXfiSortByRegistryKey(FXObject*, FXSelector, void*); 74 long onCmdXfiSortByKeyBinding(FXObject*, FXSelector, void*); 75 long onCmdXfwSortByActionName(FXObject*, FXSelector, void*); 76 long onCmdXfwSortByRegistryKey(FXObject*, FXSelector, void*); 77 long onCmdXfwSortByKeyBinding(FXObject*, FXSelector, void*); 78 long onCmdGlbHeaderClicked(FXObject*, FXSelector, void*); 79 long onCmdXfeHeaderClicked(FXObject*, FXSelector, void*); 80 long onCmdXfiHeaderClicked(FXObject*, FXSelector, void*); 81 long onCmdXfwHeaderClicked(FXObject*, FXSelector, void*); 82 long onUpdGlbHeader(FXObject*, FXSelector, void*); 83 long onUpdXfeHeader(FXObject*, FXSelector, void*); 84 long onUpdXfiHeader(FXObject*, FXSelector, void*); 85 long onUpdXfwHeader(FXObject*, FXSelector, void*); 86 public: 87 static int compareSection(const char* p, const char* q, int s); 88 static int ascendingActionName(const IconItem* a, const IconItem* b); 89 static int descendingActionName(const IconItem* a, const IconItem* b); 90 static int ascendingRegistryKey(const IconItem* a, const IconItem* b); 91 static int descendingRegistryKey(const IconItem* a, const IconItem* b); 92 static int ascendingKeybinding(const IconItem* a, const IconItem* b); 93 static int descendingKeybinding(const IconItem* a, const IconItem* b); 94 }; 95 #endif 96