| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178 | 
							- ///////////////////////////////////////////////////////////////////////////////
 
- // Name:        wx/accel.h
 
- // Purpose:     wxAcceleratorEntry and wxAcceleratorTable classes
 
- // Author:      Julian Smart, Robert Roebling, Vadim Zeitlin
 
- // Modified by:
 
- // Created:     31.05.01 (extracted from other files)
 
- // Copyright:   (c) wxWidgets team
 
- // Licence:     wxWindows licence
 
- ///////////////////////////////////////////////////////////////////////////////
 
- #ifndef _WX_ACCEL_H_BASE_
 
- #define _WX_ACCEL_H_BASE_
 
- #include "wx/defs.h"
 
- #if wxUSE_ACCEL
 
- #include "wx/object.h"
 
- class WXDLLIMPEXP_FWD_CORE wxAcceleratorTable;
 
- class WXDLLIMPEXP_FWD_CORE wxMenuItem;
 
- class WXDLLIMPEXP_FWD_CORE wxKeyEvent;
 
- // ----------------------------------------------------------------------------
 
- // constants
 
- // ----------------------------------------------------------------------------
 
- // wxAcceleratorEntry flags
 
- enum wxAcceleratorEntryFlags
 
- {
 
-     wxACCEL_NORMAL  = 0x0000,   // no modifiers
 
-     wxACCEL_ALT     = 0x0001,   // hold Alt key down
 
-     wxACCEL_CTRL    = 0x0002,   // hold Ctrl key down
 
-     wxACCEL_SHIFT   = 0x0004,   // hold Shift key down
 
- #if defined(__WXMAC__) || defined(__WXCOCOA__)
 
-     wxACCEL_RAW_CTRL= 0x0008,   // 
 
- #else
 
-     wxACCEL_RAW_CTRL= wxACCEL_CTRL,
 
- #endif
 
-     wxACCEL_CMD     = wxACCEL_CTRL
 
- };
 
- // ----------------------------------------------------------------------------
 
- // an entry in wxAcceleratorTable corresponds to one accelerator
 
- // ----------------------------------------------------------------------------
 
- class WXDLLIMPEXP_CORE wxAcceleratorEntry
 
- {
 
- public:
 
-     wxAcceleratorEntry(int flags = 0, int keyCode = 0, int cmd = 0,
 
-                        wxMenuItem *item = NULL)
 
-         : m_flags(flags)
 
-         , m_keyCode(keyCode)
 
-         , m_command(cmd)
 
-         , m_item(item)
 
-         { }
 
-     wxAcceleratorEntry(const wxAcceleratorEntry& entry)
 
-         : m_flags(entry.m_flags)
 
-         , m_keyCode(entry.m_keyCode)
 
-         , m_command(entry.m_command)
 
-         , m_item(entry.m_item)
 
-         { }
 
-     // create accelerator corresponding to the specified string, return NULL if
 
-     // string couldn't be parsed or a pointer to be deleted by the caller
 
-     static wxAcceleratorEntry *Create(const wxString& str);
 
-     wxAcceleratorEntry& operator=(const wxAcceleratorEntry& entry)
 
-     {
 
-         if (&entry != this)
 
-             Set(entry.m_flags, entry.m_keyCode, entry.m_command, entry.m_item);
 
-         return *this;
 
-     }
 
-     void Set(int flags, int keyCode, int cmd, wxMenuItem *item = NULL)
 
-     {
 
-         m_flags = flags;
 
-         m_keyCode = keyCode;
 
-         m_command = cmd;
 
-         m_item = item;
 
-     }
 
-     void SetMenuItem(wxMenuItem *item) { m_item = item; }
 
-     int GetFlags() const { return m_flags; }
 
-     int GetKeyCode() const { return m_keyCode; }
 
-     int GetCommand() const { return m_command; }
 
-     wxMenuItem *GetMenuItem() const { return m_item; }
 
-     bool operator==(const wxAcceleratorEntry& entry) const
 
-     {
 
-         return m_flags == entry.m_flags &&
 
-                m_keyCode == entry.m_keyCode &&
 
-                m_command == entry.m_command &&
 
-                m_item == entry.m_item;
 
-     }
 
-     bool operator!=(const wxAcceleratorEntry& entry) const
 
-         { return !(*this == entry); }
 
- #if defined(__WXMOTIF__)
 
-     // Implementation use only
 
-     bool MatchesEvent(const wxKeyEvent& event) const;
 
- #endif
 
-     bool IsOk() const
 
-     {
 
-         return  m_keyCode != 0;
 
-     }
 
-     // string <-> wxAcceleratorEntry conversion
 
-     // ----------------------------------------
 
-     // returns a wxString for the this accelerator.
 
-     // this function formats it using the <flags>-<keycode> format
 
-     // where <flags> maybe a hyphen-separated list of "shift|alt|ctrl"
 
-     wxString ToString() const { return AsPossiblyLocalizedString(true); }
 
-     // same as above but without translating, useful if the string is meant to
 
-     // be stored in a file or otherwise stored, instead of being shown to the
 
-     // user
 
-     wxString ToRawString() const { return AsPossiblyLocalizedString(false); }
 
-     // returns true if the given string correctly initialized this object
 
-     // (i.e. if IsOk() returns true after this call)
 
-     bool FromString(const wxString& str);
 
- private:
 
-     wxString AsPossiblyLocalizedString(bool localized) const;
 
-     // common part of Create() and FromString()
 
-     static bool ParseAccel(const wxString& str, int *flags, int *keycode);
 
-     int m_flags;    // combination of wxACCEL_XXX constants
 
-     int m_keyCode;  // ASCII or virtual keycode
 
-     int m_command;  // Command id to generate
 
-     // the menu item this entry corresponds to, may be NULL
 
-     wxMenuItem *m_item;
 
-     // for compatibility with old code, use accessors now!
 
-     friend class WXDLLIMPEXP_FWD_CORE wxMenu;
 
- };
 
- // ----------------------------------------------------------------------------
 
- // include wxAcceleratorTable class declaration, it is only used by the library
 
- // and so doesn't have any published user visible interface
 
- // ----------------------------------------------------------------------------
 
- #if defined(__WXUNIVERSAL__)
 
-     #include "wx/generic/accel.h"
 
- #elif defined(__WXMSW__)
 
-     #include "wx/msw/accel.h"
 
- #elif defined(__WXMOTIF__)
 
-     #include "wx/motif/accel.h"
 
- #elif defined(__WXGTK20__)
 
-     #include "wx/gtk/accel.h"
 
- #elif defined(__WXGTK__)
 
-     #include "wx/gtk1/accel.h"
 
- #elif defined(__WXMAC__)
 
-     #include "wx/osx/accel.h"
 
- #elif defined(__WXCOCOA__)
 
-     #include "wx/generic/accel.h"
 
- #elif defined(__WXPM__)
 
-     #include "wx/os2/accel.h"
 
- #endif
 
- extern WXDLLIMPEXP_DATA_CORE(wxAcceleratorTable) wxNullAcceleratorTable;
 
- #endif // wxUSE_ACCEL
 
- #endif
 
-     // _WX_ACCEL_H_BASE_
 
 
  |