X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1be7a35c5ec31b6cfcab9d969c7969586441a945..469d3e9b7b28900f27130a69f2ecea7bce2078a1:/include/wx/accel.h diff --git a/include/wx/accel.h b/include/wx/accel.h index 5e22e95623..025b51b375 100644 --- a/include/wx/accel.h +++ b/include/wx/accel.h @@ -18,9 +18,9 @@ #include "wx/object.h" -class WXDLLEXPORT wxAcceleratorTable; -class WXDLLEXPORT wxMenuItem; -class WXDLLEXPORT wxKeyEvent; +class WXDLLIMPEXP_FWD_CORE wxAcceleratorTable; +class WXDLLIMPEXP_FWD_CORE wxMenuItem; +class WXDLLIMPEXP_FWD_CORE wxKeyEvent; // ---------------------------------------------------------------------------- // constants @@ -32,7 +32,12 @@ enum 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 + wxACCEL_SHIFT = 0x0004, // hold Shift key down +#if defined(__WXMAC__) || defined(__WXCOCOA__) + wxACCEL_CMD = 0x0008 // Command key on OS X +#else + wxACCEL_CMD = wxACCEL_CTRL +#endif }; // ---------------------------------------------------------------------------- @@ -57,6 +62,10 @@ public: , 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) { Set(entry.m_flags, entry.m_keyCode, entry.m_command, entry.m_item); @@ -95,7 +104,31 @@ public: bool MatchesEvent(const wxKeyEvent& event) const; #endif + bool IsOk() const + { + return m_flags != 0 && + m_keyCode != 0; + } + + + // string <-> wxAcceleratorEntry conversion + // ---------------------------------------- + + // returns a wxString for the this accelerator. + // this function formats it using the - format + // where maybe a hyphen-separed list of "shift|alt|ctrl" + wxString ToString() const; + + // 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: + // 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 @@ -104,7 +137,7 @@ private: wxMenuItem *m_item; // for compatibility with old code, use accessors now! - friend class WXDLLEXPORT wxMenu; + friend class WXDLLIMPEXP_FWD_CORE wxMenu; }; // ----------------------------------------------------------------------------