]> git.saurik.com Git - wxWidgets.git/blob - include/wx/motif/accel.h
Fixed wxMSW arrow key bug, changed wxPoem window to a wxWindow
[wxWidgets.git] / include / wx / motif / accel.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: accel.h
3 // Purpose: wxAcceleratorTable class
4 // Author: Julian Smart
5 // Modified by:
6 // Created: 17/09/98
7 // RCS-ID: $Id$
8 // Copyright: (c) Julian Smart
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
11
12 #ifndef _WX_ACCEL_H_
13 #define _WX_ACCEL_H_
14
15 #ifdef __GNUG__
16 #pragma interface "accel.h"
17 #endif
18
19 #include "wx/object.h"
20 #include "wx/string.h"
21 #include "wx/event.h"
22
23 class WXDLLEXPORT wxAcceleratorTable;
24
25 // Hold Ctrl key down
26 #define wxACCEL_ALT 0x01
27
28 // Hold Ctrl key down
29 #define wxACCEL_CTRL 0x02
30
31 // Hold Shift key down
32 #define wxACCEL_SHIFT 0x04
33
34 // Hold no key down
35 #define wxACCEL_NORMAL 0x00
36
37 class WXDLLEXPORT wxAcceleratorEntry
38 {
39 public:
40 wxAcceleratorEntry(const wxAcceleratorEntry& entry)
41 {
42 m_flags = entry.m_flags; m_keyCode = entry.m_keyCode; m_command = entry.m_command;
43 }
44 wxAcceleratorEntry(int flags = 0, int keyCode = 0, int cmd = 0)
45 {
46 m_flags = flags; m_keyCode = keyCode; m_command = cmd;
47 }
48
49 inline void Set(int flags, int keyCode, int cmd)
50 { m_flags = flags; m_keyCode = keyCode; m_command = cmd; }
51
52 inline int GetFlags() const { return m_flags; }
53 inline int GetKeyCode() const { return m_keyCode; }
54 inline int GetCommand() const { return m_command; }
55
56 void operator = (const wxAcceleratorEntry& entry)
57 {
58 m_flags = entry.m_flags; m_keyCode = entry.m_keyCode; m_command = entry.m_command;
59 }
60
61 // Implementation use only
62 bool MatchesEvent(const wxKeyEvent& event) const;
63
64 public:
65 int m_flags;
66 int m_keyCode; // ASCII or virtual keycode
67 int m_command; // Command id to generate
68 };
69
70 class WXDLLEXPORT wxAcceleratorTable: public wxObject
71 {
72 DECLARE_DYNAMIC_CLASS(wxAcceleratorTable)
73 public:
74 wxAcceleratorTable();
75 wxAcceleratorTable(const wxString& resource); // Load from .rc resource
76 wxAcceleratorTable(int n, wxAcceleratorEntry entries[]); // Load from array
77
78 // Copy constructors
79 inline wxAcceleratorTable(const wxAcceleratorTable& accel) { Ref(accel); }
80 inline wxAcceleratorTable(const wxAcceleratorTable* accel) { if (accel) Ref(*accel); }
81
82 ~wxAcceleratorTable();
83
84 inline wxAcceleratorTable& operator = (const wxAcceleratorTable& accel) { if (*this == accel) return (*this); Ref(accel); return *this; }
85 inline bool operator == (const wxAcceleratorTable& accel) { return m_refData == accel.m_refData; }
86 inline bool operator != (const wxAcceleratorTable& accel) { return m_refData != accel.m_refData; }
87
88 bool Ok() const;
89
90 // Implementation only
91 int GetCount() const;
92 wxAcceleratorEntry* GetEntries() const;
93 };
94
95 WXDLLEXPORT_DATA(extern wxAcceleratorTable) wxNullAcceleratorTable;
96
97 #endif
98 // _WX_ACCEL_H_