]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/accel.h
fixed wxString iterators linked list corruption
[wxWidgets.git] / include / wx / accel.h
index 8ce562237055cac557e3dd95981fb71a812907a5..80f35ede715d989f4d23c80babd412462ff01cdd 100644 (file)
@@ -62,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);
@@ -100,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 <flags>-<keycode> format
+    // where <flags> 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