]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/accel.h
When handling accelerators in wxWebView make sure that we do not block right-alt...
[wxWidgets.git] / include / wx / accel.h
index 80f35ede715d989f4d23c80babd412462ff01cdd..562b257d9291b01ddd336b8c285477b34f7eb330 100644 (file)
 
 #include "wx/object.h"
 
 
 #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
 
 // ----------------------------------------------------------------------------
 // constants
 // ----------------------------------------------------------------------------
 
 // wxAcceleratorEntry flags
-enum
+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_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_CMD      = 0x0008   // Command key on OS X
+    wxACCEL_RAW_CTRL= 0x0008,   // 
 #else
 #else
-    wxACCEL_CMD      = wxACCEL_CTRL
+    wxACCEL_RAW_CTRL= wxACCEL_CTRL,
 #endif
 #endif
+    wxACCEL_CMD     = wxACCEL_CTRL
 };
 
 // ----------------------------------------------------------------------------
 // an entry in wxAcceleratorTable corresponds to one accelerator
 // ----------------------------------------------------------------------------
 
 };
 
 // ----------------------------------------------------------------------------
 // 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,
 {
 public:
     wxAcceleratorEntry(int flags = 0, int keyCode = 0, int cmd = 0,
@@ -68,7 +69,8 @@ public:
 
     wxAcceleratorEntry& operator=(const wxAcceleratorEntry& entry)
     {
 
     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;
     }
 
         return *this;
     }
 
@@ -106,8 +108,7 @@ public:
 
     bool IsOk() const
     {
 
     bool IsOk() const
     {
-        return m_flags != 0 &&
-               m_keyCode != 0;
+        return  m_keyCode != 0;
     }
 
 
     }
 
 
@@ -116,8 +117,13 @@ public:
 
     // returns a wxString for the this accelerator.
     // this function formats it using the <flags>-<keycode> format
 
     // 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;
+    // 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)
 
     // returns true if the given string correctly initialized this object
     // (i.e. if IsOk() returns true after this call)
@@ -125,6 +131,8 @@ public:
 
 
 private:
 
 
 private:
+    wxString AsPossiblyLocalizedString(bool localized) const;
+
     // common part of Create() and FromString()
     static bool ParseAccel(const wxString& str, int *flags, int *keycode);
 
     // common part of Create() and FromString()
     static bool ParseAccel(const wxString& str, int *flags, int *keycode);
 
@@ -137,7 +145,7 @@ private:
     wxMenuItem *m_item;
 
     // for compatibility with old code, use accessors now!
     wxMenuItem *m_item;
 
     // for compatibility with old code, use accessors now!
-    friend class WXDLLEXPORT wxMenu;
+    friend class WXDLLIMPEXP_FWD_CORE wxMenu;
 };
 
 // ----------------------------------------------------------------------------
 };
 
 // ----------------------------------------------------------------------------
@@ -156,14 +164,14 @@ private:
 #elif defined(__WXGTK__)
     #include "wx/gtk1/accel.h"
 #elif defined(__WXMAC__)
 #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
 
 #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
 
 
 #endif // wxUSE_ACCEL