Statistics
| Revision:

root / import / ext3D / trunk / install-extension3d / launcher / izpack-launcher-1.3_linux / src / wx / include / wx / accel.h @ 15280

History | View | Annotate | Download (4.18 KB)

1
///////////////////////////////////////////////////////////////////////////////
2
// Name:        wx/accel.h
3
// Purpose:     wxAcceleratorEntry and wxAcceleratorTable classes
4
// Author:      Julian Smart, Robert Roebling, Vadim Zeitlin
5
// Modified by:
6
// Created:     31.05.01 (extracted from other files)
7
// RCS-ID:      $Id: accel.h,v 1.1 2006/08/24 08:23:16 jmvivo Exp $
8
// Copyright:   (c) wxWindows team
9
// Licence:     wxWindows license
10
///////////////////////////////////////////////////////////////////////////////
11

    
12
#ifndef _WX_ACCEL_H_BASE_
13
#define _WX_ACCEL_H_BASE_
14

    
15
#include "wx/defs.h"
16

    
17
#if wxUSE_ACCEL
18

    
19
#include "wx/object.h"
20

    
21
class WXDLLEXPORT wxAcceleratorTable;
22
class WXDLLEXPORT wxMenuItem;
23
class WXDLLEXPORT wxKeyEvent;
24

    
25
// ----------------------------------------------------------------------------
26
// constants
27
// ----------------------------------------------------------------------------
28

    
29
// wxAcceleratorEntry flags
30
enum
31
{
32
    wxACCEL_NORMAL  = 0x0000,   // no modifiers
33
    wxACCEL_ALT     = 0x0001,   // hold Alt key down
34
    wxACCEL_CTRL    = 0x0002,   // hold Ctrl key down
35
    wxACCEL_SHIFT   = 0x0004    // hold Shift key down
36
};
37

    
38
// ----------------------------------------------------------------------------
39
// an entry in wxAcceleratorTable corresponds to one accelerator
40
// ----------------------------------------------------------------------------
41

    
42
class WXDLLEXPORT wxAcceleratorEntry
43
{
44
public:
45
    wxAcceleratorEntry(int flags = 0, int keyCode = 0, int cmd = 0,
46
                       wxMenuItem *item = NULL)
47
        : m_flags(flags)
48
        , m_keyCode(keyCode)
49
        , m_command(cmd)
50
        , m_item(item)
51
        { }
52

    
53
    wxAcceleratorEntry(const wxAcceleratorEntry& entry)
54
        : m_flags(entry.m_flags)
55
        , m_keyCode(entry.m_keyCode)
56
        , m_command(entry.m_command)
57
        , m_item(entry.m_item)
58
        { }
59

    
60
    wxAcceleratorEntry& operator=(const wxAcceleratorEntry& entry)
61
    {
62
        Set(entry.m_flags, entry.m_keyCode, entry.m_command, entry.m_item);
63
        return *this;
64
    }
65
    
66
    void Set(int flags, int keyCode, int cmd, wxMenuItem *item = NULL)
67
    {
68
        m_flags = flags;
69
        m_keyCode = keyCode;
70
        m_command = cmd;
71
        m_item = item;
72
    }
73

    
74
    void SetMenuItem(wxMenuItem *item) { m_item = item; }
75

    
76
    int GetFlags() const { return m_flags; }
77
    int GetKeyCode() const { return m_keyCode; }
78
    int GetCommand() const { return m_command; }
79

    
80
    wxMenuItem *GetMenuItem() const { return m_item; }
81

    
82
    bool operator==(const wxAcceleratorEntry& entry) const
83
    {
84
        return m_flags == entry.m_flags &&
85
               m_keyCode == entry.m_keyCode &&
86
               m_command == entry.m_command &&
87
               m_item == entry.m_item;
88
    }
89

    
90
    bool operator!=(const wxAcceleratorEntry& entry) const
91
        { return !(*this == entry); }
92

    
93
#if defined(__WXMOTIF__)
94
    // Implementation use only
95
    bool MatchesEvent(const wxKeyEvent& event) const;
96
#endif
97
    
98
private:
99
    int m_flags;    // combination of wxACCEL_XXX constants
100
    int m_keyCode;  // ASCII or virtual keycode
101
    int m_command;  // Command id to generate
102

    
103
    // the menu item this entry corresponds to, may be NULL
104
    wxMenuItem *m_item;
105

    
106
    // for compatibility with old code, use accessors now!
107
    friend class WXDLLEXPORT wxMenu;
108
};
109

    
110
// ----------------------------------------------------------------------------
111
// include wxAcceleratorTable class declaration, it is only used by the library
112
// and so doesn't have any published user visible interface
113
// ----------------------------------------------------------------------------
114

    
115
#if defined(__WXUNIVERSAL__)
116
    #include "wx/generic/accel.h"
117
#elif defined(__WXMSW__)
118
    #include "wx/msw/accel.h"
119
#elif defined(__WXMOTIF__)
120
    #include "wx/motif/accel.h"
121
#elif defined(__WXGTK__)
122
    #include "wx/gtk/accel.h"
123
#elif defined(__WXMAC__)
124
    #include "wx/mac/accel.h"
125
#elif defined(__WXPM__)
126
    #include "wx/os2/accel.h"
127
#elif defined(__WXSTUBS__)
128
    #include "wx/stubs/accel.h"
129
#endif
130

    
131
WXDLLEXPORT_DATA(extern wxAcceleratorTable) wxNullAcceleratorTable;
132

    
133
#endif // wxUSE_ACCEL
134

    
135
#endif
136
    // _WX_ACCEL_H_BASE_