]> git.saurik.com Git - wxWidgets.git/blob - interface/accel.h
pen.h depends from brush.h in compat mode
[wxWidgets.git] / interface / accel.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: accel.h
3 // Purpose: interface of wxAccelerator* classes
4 // Author: wxWidgets team
5 // RCS-ID: $Id$
6 // Licence: wxWindows license
7 /////////////////////////////////////////////////////////////////////////////
8
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
30 /**
31 @class wxAcceleratorEntry
32 @wxheader{accel.h}
33
34 An object used by an application wishing to create an accelerator table
35 (see wxAcceleratorTable).
36
37 @library{wxcore}
38 @category{misc}
39
40 @see wxAcceleratorTable, wxWindow::SetAcceleratorTable
41 */
42 class wxAcceleratorEntry
43 {
44 public:
45 /**
46 Default ctor.
47 */
48 wxAcceleratorEntry();
49
50 /**
51 Constructor.
52
53 @param flags
54 A combination of the wxAcceleratorEntryFlags values, which
55 indicates which modifier keys are held down.
56 @param keyCode
57 The keycode to be detected. See @ref page_keycodes for a full list of keycodes.
58 @param cmd
59 The menu or control command identifier.
60 */
61 wxAcceleratorEntry(int flags, int keyCode, int cmd);
62
63 /**
64 Returns the command identifier for the accelerator table entry.
65 */
66 int GetCommand() const;
67
68 /**
69 Returns the flags for the accelerator table entry.
70 */
71 int GetFlags() const;
72
73 /**
74 Returns the keycode for the accelerator table entry.
75 */
76 int GetKeyCode() const;
77
78 /**
79 Sets the accelerator entry parameters.
80
81 @param flags
82 A combination of the wxAcceleratorEntryFlags values, which
83 indicates which modifier keys are held down.
84 @param keyCode
85 The keycode to be detected. See @ref page_keycodes for a full list of keycodes.
86 @param cmd
87 The menu or control command identifier.
88
89 */
90 void Set(int flags, int keyCode, int cmd);
91 };
92
93
94 /**
95 @class wxAcceleratorTable
96 @wxheader{accel.h}
97
98 An accelerator table allows the application to specify a table of keyboard
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
102 The object ::wxNullAcceleratorTable is defined to be a table with no data, and
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
117
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).
123
124 @library{wxcore}
125 @category{misc}
126
127 @stdobjects
128 ::wxNullAcceleratorTable
129
130 @see wxAcceleratorEntry, wxWindow::SetAcceleratorTable
131 */
132 class wxAcceleratorTable : public wxObject
133 {
134 public:
135 /**
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.
147
148 @param n
149 Number of accelerator entries.
150 @param entries
151 The array of entries.
152 */
153 wxAcceleratorTable(int n, wxAcceleratorEntry entries[]);
154
155 /**
156 Loads the accelerator table from a Windows resource (Windows only).
157
158 @param resource
159 Name of a Windows accelerator.
160 */
161 wxAcceleratorTable(const wxString& resource);
162
163 /**
164 Destroys the wxAcceleratorTable object.
165 See @ref overview_refcount_destruct for more info.
166 */
167 ~wxAcceleratorTable();
168
169 /**
170 Returns @true if the accelerator table is valid.
171 */
172 bool IsOk() const;
173
174 /**
175 Assignment operator, using @ref overview_refcount "reference counting".
176
177 @param accel
178 Accelerator table to assign.
179 */
180 wxAcceleratorTable operator =(const wxAcceleratorTable& accel);
181 };
182
183
184 // ============================================================================
185 // Global functions/macros
186 // ============================================================================
187
188 /**
189 An empty accelerator table.
190 */
191 wxAcceleratorTable wxNullAcceleratorTable;