usb_ecm: Use the current configuration instead of a fixed one.
[haiku.git] / src / preferences / shortcuts / ShortcutsWindow.h
blob00d1001959fe21cd3d330948aadec5dc4f0a6742
1 /*
2 * Copyright 1999-2009 Jeremy Friesner
3 * Copyright 2009-2010 Haiku, Inc. All rights reserved.
4 * Distributed under the terms of the MIT License.
6 * Authors:
7 * Jeremy Friesner
8 */
9 #ifndef SHORTCUTS_WINDOW_H
10 #define SHORTCUTS_WINDOW_H
13 #include <ColumnListView.h>
14 #include <Entry.h>
15 #include <Window.h>
18 class BButton;
19 class BColumnListView;
20 class BFilePanel;
21 class BMessage;
22 class ShortcutsSpec;
24 // This class defines our preferences/configuration window.
25 class ShortcutsWindow : public BWindow {
26 public:
27 ShortcutsWindow();
28 ~ShortcutsWindow();
30 virtual void DispatchMessage(BMessage* message,
31 BHandler* handler);
32 virtual void Quit();
33 virtual void MessageReceived(BMessage* message);
34 virtual bool QuitRequested();
36 // BMessage 'what' codes, representing commands understood by this Window.
37 enum {
38 ADD_HOTKEY_ITEM = 'SpKy', // Add a new hotkey entry to the GUI list.
39 REMOVE_HOTKEY_ITEM, // Remove a hotkey entry from the GUI list.
40 HOTKEY_ITEM_SELECTED, // Give the "focus bar" to the specified
41 // entry.
42 HOTKEY_ITEM_MODIFIED, // Update the state of an entry to reflect
43 // user's changes.
44 OPEN_KEYSET, // Bring up a File requester to load new
45 // settings.
46 APPEND_KEYSET, // Bring up a File requester to append
47 // settings.
48 REVERT_KEYSET, // Dump the current state and re-read
49 // settings from disk.
50 SAVE_KEYSET, // Save the current settings to disk
51 SAVE_KEYSET_AS, // Bring up a File requester to save
52 // current settings.
53 SELECT_APPLICATION, // Set the current entry to point to the
54 // given file.
57 private:
58 BMenuItem* _CreateActuatorPresetMenuItem(const char* label)
59 const;
60 void _AddNewSpec(const char* defaultCommand);
61 void _MarkKeySetModified();
62 bool _LoadKeySet(const BMessage& loadMessage);
63 bool _SaveKeySet(BEntry& saveEntry);
64 bool _GetSettingsFile(entry_ref* ref);
65 void _LoadWindowSettings(
66 const BMessage& loadMessage);
67 void _SaveWindowSettings(BEntry& saveEntry);
68 bool _GetWindowSettingsFile(entry_ref* ref);
70 BButton* fAddButton;
71 BButton* fRemoveButton;
72 BButton* fSaveButton;
73 BColumnListView* fColumnListView;
74 BFilePanel* fSavePanel;
75 // for saving settings
76 BFilePanel* fOpenPanel;
77 // for loading settings
78 BFilePanel* fSelectPanel;
79 // for selecting apps to launch
81 // Points to the settings file to save to
82 BEntry fLastSaved;
84 // true iff changes were made since last load or save
85 bool fKeySetModified;
87 // true iff the file-requester's ref should be appended to current
88 bool fLastOpenWasAppend;
90 BRow* fSelectedRow;
94 #endif // SHORTCUTS_WINDOW_H