X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ee0a94cfc2f71e8b770eedda5197a1f4bd62b5cb..1f0acb435592470b421b80df854fbbb08cd2853f:/include/wx/accel.h diff --git a/include/wx/accel.h b/include/wx/accel.h index 02135de643..6d0e2701ea 100644 --- a/include/wx/accel.h +++ b/include/wx/accel.h @@ -18,16 +18,16 @@ #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 // ---------------------------------------------------------------------------- // wxAcceleratorEntry flags -enum +enum wxAcceleratorEntryFlags { wxACCEL_NORMAL = 0x0000, // no modifiers wxACCEL_ALT = 0x0001, // hold Alt key down @@ -44,7 +44,7 @@ enum // an entry in wxAcceleratorTable corresponds to one accelerator // ---------------------------------------------------------------------------- -class WXDLLEXPORT wxAcceleratorEntry +class WXDLLIMPEXP_CORE wxAcceleratorEntry { public: wxAcceleratorEntry(int flags = 0, int keyCode = 0, int cmd = 0, @@ -62,9 +62,14 @@ 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); + if (&entry != this) + Set(entry.m_flags, entry.m_keyCode, entry.m_command, entry.m_item); return *this; } @@ -102,8 +107,7 @@ public: bool IsOk() const { - return m_flags != 0 && - m_keyCode != 0; + return m_keyCode != 0; } @@ -112,15 +116,19 @@ public: // returns a wxString for the this accelerator. // this function formats it using the - format - // where maybe a hyphen-separed list of "shift|alt|ctrl" + // where maybe a hyphen-separated 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); + 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 @@ -129,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; }; // ---------------------------------------------------------------------------- @@ -148,14 +156,14 @@ private: #elif defined(__WXGTK__) #include "wx/gtk1/accel.h" #elif defined(__WXMAC__) - #include "wx/mac/accel.h" + #include "wx/osx/accel.h" #elif defined(__WXCOCOA__) #include "wx/generic/accel.h" #elif defined(__WXPM__) #include "wx/os2/accel.h" #endif -extern WXDLLEXPORT_DATA(wxAcceleratorTable) wxNullAcceleratorTable; +extern WXDLLIMPEXP_DATA_CORE(wxAcceleratorTable) wxNullAcceleratorTable; #endif // wxUSE_ACCEL