]> git.saurik.com Git - wxWidgets.git/blob - include/wx/os2/accel.h
wxMenu implementations
[wxWidgets.git] / include / wx / os2 / accel.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: accel.h
3 // Purpose: wxAcceleratorTable class
4 // Author: David Webster
5 // Modified by:
6 // Created: 10/13/99
7 // RCS-ID: $Id$
8 // Copyright: (c) David Webster
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
11
12 #ifndef _WX_ACCEL_H_
13 #define _WX_ACCEL_H_
14
15 #include "wx/object.h"
16
17 class WXDLLEXPORT wxAcceleratorTable;
18
19 // Hold Ctrl key down
20 #define wxACCEL_ALT 0x01
21
22 // Hold Ctrl key down
23 #define wxACCEL_CTRL 0x02
24
25 // Hold Shift key down
26 #define wxACCEL_SHIFT 0x04
27
28 // Hold no key down
29 #define wxACCEL_NORMAL 0x00
30
31 class WXDLLEXPORT wxAcceleratorEntry
32 {
33 public:
34 wxAcceleratorEntry(int flags = 0, int keyCode = 0, int cmd = 0)
35 {
36 m_flags = flags; m_keyCode = keyCode; m_command = cmd;
37 }
38
39 inline void Set(int flags, int keyCode, int cmd)
40 { m_flags = flags; m_keyCode = keyCode; m_command = cmd; }
41
42 inline int GetFlags() const { return m_flags; }
43 inline int GetKeyCode() const { return m_keyCode; }
44 inline int GetCommand() const { return m_command; }
45
46 int m_flags;
47 int m_keyCode; // ASCII or virtual keycode
48 int m_command; // Command id to generate
49 };
50
51 class WXDLLEXPORT wxAcceleratorTable: public wxObject
52 {
53 DECLARE_DYNAMIC_CLASS(wxAcceleratorTable)
54 public:
55 wxAcceleratorTable();
56 wxAcceleratorTable(const wxString& resource); // Load from .rc resource
57 wxAcceleratorTable(int n, wxAcceleratorEntry entries[]); // Load from array
58
59 // Copy constructors
60 inline wxAcceleratorTable(const wxAcceleratorTable& accel) { Ref(accel); }
61 inline wxAcceleratorTable(const wxAcceleratorTable* accel) { if (accel) Ref(*accel); }
62
63 ~wxAcceleratorTable();
64
65 inline wxAcceleratorTable& operator = (const wxAcceleratorTable& accel)
66 { if (*this == accel) return (*this); Ref(accel); return *this; };
67 inline bool operator == (const wxAcceleratorTable& accel)
68 { return m_refData == accel.m_refData; };
69 inline bool operator != (const wxAcceleratorTable& accel)
70 { return m_refData != accel.m_refData; };
71
72 bool Ok() const;
73 void SetHACCEL(WXHACCEL hAccel);
74 WXHACCEL GetHACCEL() const;
75
76 // translate the accelerator, return TRUE if done
77 bool Translate(wxWindow *window, WXMSG *msg) const;
78 };
79
80 WXDLLEXPORT_DATA(extern wxAcceleratorTable) wxNullAcceleratorTable;
81
82 #endif
83 // _WX_ACCEL_H_