]> git.saurik.com Git - wxWidgets.git/blame - interface/accel.h
fix for infinite sizing loop (partial patch 1907189)
[wxWidgets.git] / interface / accel.h
CommitLineData
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 */
11enum 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 42class wxAcceleratorEntry
23324ae1
FM
43{
44public:
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*/
132class wxAcceleratorTable : public wxObject
133{
134public:
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*/
191wxAcceleratorTable wxNullAcceleratorTable;