]>
Commit | Line | Data |
---|---|---|
23324ae1 FM |
1 | ///////////////////////////////////////////////////////////////////////////// |
2 | // Name: accel.h | |
463b4bfa | 3 | // Purpose: interface of wxAccelerator* classes |
23324ae1 FM |
4 | // Author: wxWidgets team |
5 | // RCS-ID: $Id$ | |
6 | // Licence: wxWindows license | |
7 | ///////////////////////////////////////////////////////////////////////////// | |
8 | ||
463b4bfa FM |
9 | |
10 | /** wxAcceleratorEntry flags */ | |
11 | enum wxAcceleratorEntryFlags | |
12 | { | |
13 | /** no modifiers */ | |
14 | wxACCEL_NORMAL, | |
15 | ||
16 | /** hold Alt key down */ | |
17 | wxACCEL_ALT, | |
18 | ||
19 | /** hold Ctrl key down */ | |
20 | wxACCEL_CTRL, | |
21 | ||
22 | /** hold Shift key down */ | |
23 | wxACCEL_SHIFT, | |
24 | ||
25 | /** Command key on OS X; identic to wxACCEL_CTRL on other platforms. */ | |
26 | wxACCEL_CMD | |
27 | }; | |
28 | ||
29 | ||
23324ae1 FM |
30 | /** |
31 | @class wxAcceleratorEntry | |
32 | @wxheader{accel.h} | |
7c913512 | 33 | |
463b4bfa FM |
34 | An object used by an application wishing to create an accelerator table |
35 | (see wxAcceleratorTable). | |
7c913512 | 36 | |
23324ae1 | 37 | @library{wxcore} |
3a65144e | 38 | @category{misc} |
7c913512 | 39 | |
3a65144e | 40 | @see wxAcceleratorTable, wxWindow::SetAcceleratorTable |
23324ae1 | 41 | */ |
7c913512 | 42 | class wxAcceleratorEntry |
23324ae1 FM |
43 | { |
44 | public: | |
463b4bfa FM |
45 | /** |
46 | Default ctor. | |
47 | */ | |
48 | wxAcceleratorEntry(); | |
49 | ||
23324ae1 FM |
50 | /** |
51 | Constructor. | |
463b4bfa | 52 | |
7c913512 | 53 | @param flags |
463b4bfa FM |
54 | A combination of the wxAcceleratorEntryFlags values, which |
55 | indicates which modifier keys are held down. | |
7c913512 | 56 | @param keyCode |
463b4bfa | 57 | The keycode to be detected. See @ref page_keycodes for a full list of keycodes. |
7c913512 | 58 | @param cmd |
4cc4bfaf | 59 | The menu or control command identifier. |
23324ae1 | 60 | */ |
7c913512 | 61 | wxAcceleratorEntry(int flags, int keyCode, int cmd); |
23324ae1 FM |
62 | |
63 | /** | |
64 | Returns the command identifier for the accelerator table entry. | |
65 | */ | |
328f5751 | 66 | int GetCommand() const; |
23324ae1 FM |
67 | |
68 | /** | |
69 | Returns the flags for the accelerator table entry. | |
70 | */ | |
328f5751 | 71 | int GetFlags() const; |
23324ae1 FM |
72 | |
73 | /** | |
74 | Returns the keycode for the accelerator table entry. | |
75 | */ | |
328f5751 | 76 | int GetKeyCode() const; |
23324ae1 FM |
77 | |
78 | /** | |
79 | Sets the accelerator entry parameters. | |
80 | ||
7c913512 | 81 | @param flags |
463b4bfa FM |
82 | A combination of the wxAcceleratorEntryFlags values, which |
83 | indicates which modifier keys are held down. | |
7c913512 | 84 | @param keyCode |
463b4bfa | 85 | The keycode to be detected. See @ref page_keycodes for a full list of keycodes. |
7c913512 | 86 | @param cmd |
4cc4bfaf | 87 | The menu or control command identifier. |
463b4bfa | 88 | |
23324ae1 | 89 | */ |
4cc4bfaf | 90 | void Set(int flags, int keyCode, int cmd); |
23324ae1 FM |
91 | }; |
92 | ||
93 | ||
94 | /** | |
95 | @class wxAcceleratorTable | |
96 | @wxheader{accel.h} | |
7c913512 | 97 | |
23324ae1 | 98 | An accelerator table allows the application to specify a table of keyboard |
463b4bfa FM |
99 | shortcuts for menus or other commands. On Windows and Mac OS X, menu or button |
100 | commands are supported; on GTK, only menu commands are supported. | |
101 | ||
3a65144e | 102 | The object ::wxNullAcceleratorTable is defined to be a table with no data, and |
463b4bfa FM |
103 | is the initial accelerator table for a window. |
104 | ||
105 | Example: | |
106 | ||
107 | @code | |
108 | wxAcceleratorEntry entries[4]; | |
109 | entries[0].Set(wxACCEL_CTRL, (int) 'N', ID_NEW_WINDOW); | |
110 | entries[1].Set(wxACCEL_CTRL, (int) 'X', wxID_EXIT); | |
111 | entries[2].Set(wxACCEL_SHIFT, (int) 'A', ID_ABOUT); | |
112 | entries[3].Set(wxACCEL_NORMAL, WXK_DELETE, wxID_CUT); | |
113 | ||
114 | wxAcceleratorTable accel(4, entries); | |
115 | frame->SetAcceleratorTable(accel); | |
116 | @endcode | |
7c913512 | 117 | |
463b4bfa FM |
118 | @remarks |
119 | An accelerator takes precedence over normal processing and can be a convenient | |
120 | way to program some event handling. For example, you can use an accelerator table | |
121 | to enable a dialog with a multi-line text control to accept CTRL-Enter as meaning | |
122 | 'OK' (but not in GTK+ at present). | |
7c913512 | 123 | |
23324ae1 FM |
124 | @library{wxcore} |
125 | @category{misc} | |
7c913512 | 126 | |
23324ae1 | 127 | @stdobjects |
3a65144e | 128 | ::wxNullAcceleratorTable |
7c913512 | 129 | |
3a65144e | 130 | @see wxAcceleratorEntry, wxWindow::SetAcceleratorTable |
23324ae1 FM |
131 | */ |
132 | class wxAcceleratorTable : public wxObject | |
133 | { | |
134 | public: | |
23324ae1 | 135 | /** |
463b4bfa FM |
136 | Default ctor. |
137 | */ | |
138 | wxAcceleratorTable(); | |
139 | ||
140 | /** | |
141 | Copy ctor. | |
142 | */ | |
143 | wxAcceleratorTable(const wxAcceleratorTable& bitmap); | |
144 | ||
145 | /** | |
146 | Initializes the accelerator table from an array of wxAcceleratorEntry. | |
23324ae1 | 147 | |
7c913512 | 148 | @param n |
4cc4bfaf | 149 | Number of accelerator entries. |
7c913512 | 150 | @param entries |
4cc4bfaf | 151 | The array of entries. |
463b4bfa FM |
152 | */ |
153 | wxAcceleratorTable(int n, wxAcceleratorEntry entries[]); | |
154 | ||
155 | /** | |
156 | Loads the accelerator table from a Windows resource (Windows only). | |
157 | ||
7c913512 | 158 | @param resource |
4cc4bfaf | 159 | Name of a Windows accelerator. |
23324ae1 | 160 | */ |
7c913512 | 161 | wxAcceleratorTable(const wxString& resource); |
23324ae1 FM |
162 | |
163 | /** | |
164 | Destroys the wxAcceleratorTable object. | |
463b4bfa | 165 | See @ref overview_refcount_destruct for more info. |
23324ae1 FM |
166 | */ |
167 | ~wxAcceleratorTable(); | |
168 | ||
169 | /** | |
170 | Returns @true if the accelerator table is valid. | |
171 | */ | |
328f5751 | 172 | bool IsOk() const; |
23324ae1 FM |
173 | |
174 | /** | |
463b4bfa | 175 | Assignment operator, using @ref overview_refcount "reference counting". |
23324ae1 | 176 | |
7c913512 | 177 | @param accel |
4cc4bfaf | 178 | Accelerator table to assign. |
23324ae1 FM |
179 | */ |
180 | wxAcceleratorTable operator =(const wxAcceleratorTable& accel); | |
181 | }; | |
463b4bfa | 182 | |
39fb8056 FM |
183 | |
184 | // ============================================================================ | |
185 | // Global functions/macros | |
186 | // ============================================================================ | |
187 | ||
463b4bfa FM |
188 | /** |
189 | An empty accelerator table. | |
190 | */ | |
191 | wxAcceleratorTable wxNullAcceleratorTable; |