]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/msw/accel.h
1. wxChoice and wxComboBox support client data under MSW
[wxWidgets.git] / include / wx / msw / accel.h
index 863af19f0deff180408157dc42a6c5363a635789..d985b652ff5c50e4e225305749b1fda9355316df 100644 (file)
@@ -6,20 +6,24 @@
 // Created:     31/7/98
 // RCS-ID:      $Id$
 // Copyright:   (c) Julian Smart
 // Created:     31/7/98
 // RCS-ID:      $Id$
 // Copyright:   (c) Julian Smart
-// Licence:    wxWindows licence
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #ifndef _WX_ACCEL_H_
 #define _WX_ACCEL_H_
 
 #ifdef __GNUG__
 /////////////////////////////////////////////////////////////////////////////
 
 #ifndef _WX_ACCEL_H_
 #define _WX_ACCEL_H_
 
 #ifdef __GNUG__
-#pragma interface "accel.h"
+    #pragma interface "accel.h"
 #endif
 
 #include "wx/object.h"
 
 class WXDLLEXPORT wxAcceleratorTable;
 
 #endif
 
 #include "wx/object.h"
 
 class WXDLLEXPORT wxAcceleratorTable;
 
+// ----------------------------------------------------------------------------
+// constants
+// ----------------------------------------------------------------------------
+
 // Hold Ctrl key down
 #define wxACCEL_ALT     0x01
 
 // Hold Ctrl key down
 #define wxACCEL_ALT     0x01
 
@@ -29,47 +33,68 @@ class WXDLLEXPORT wxAcceleratorTable;
  // Hold Shift key down
 #define wxACCEL_SHIFT   0x04
 
  // Hold Shift key down
 #define wxACCEL_SHIFT   0x04
 
+ // Hold no other key
+#define wxACCEL_NORMAL  0x00
+
+// ----------------------------------------------------------------------------
+// an entry in wxAcceleratorTable corresponds to one accelerator
+// ----------------------------------------------------------------------------
+
 class WXDLLEXPORT wxAcceleratorEntry
 {
 public:
     wxAcceleratorEntry(int flags = 0, int keyCode = 0, int cmd = 0)
     {
 class WXDLLEXPORT wxAcceleratorEntry
 {
 public:
     wxAcceleratorEntry(int flags = 0, int keyCode = 0, int cmd = 0)
     {
-        m_flags = flags; m_keyCode = keyCode; m_command = cmd;
+        Set(flags, keyCode, cmd);
     }
 
     }
 
-    inline void Set(int flags, int keyCode, int cmd)
-         { m_flags = flags; m_keyCode = keyCode; m_command = cmd; }
+    void Set(int flags, int keyCode, int cmd)
+    {
+        m_flags = flags; m_keyCode = keyCode; m_command = cmd;
+    }
 
 
-    inline int GetFlags() const { return m_flags; }
-    inline int GetKeyCode() const { return m_keyCode; }
-    inline int GetCommand() const { return m_command; }
+    int GetFlags() const { return m_flags; }
+    int GetKeyCode() const { return m_keyCode; }
+    int GetCommand() const { return m_command; }
 
 
-    int             m_flags;
-    int                            m_keyCode; // ASCII or virtual keycode
-    int                            m_command; // Command id to generate
+//private:
+    int m_flags;
+    int m_keyCode; // ASCII or virtual keycode
+    int m_command; // Command id to generate
 };
 
 };
 
-class WXDLLEXPORT wxAcceleratorTable: public wxObject
+// ----------------------------------------------------------------------------
+// the accel table has all accelerators for a given window or menu
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxAcceleratorTable : public wxObject
 {
 DECLARE_DYNAMIC_CLASS(wxAcceleratorTable)
 public:
     wxAcceleratorTable();
     wxAcceleratorTable(const wxString& resource); // Load from .rc resource
 {
 DECLARE_DYNAMIC_CLASS(wxAcceleratorTable)
 public:
     wxAcceleratorTable();
     wxAcceleratorTable(const wxString& resource); // Load from .rc resource
-    wxAcceleratorTable(int n, wxAcceleratorEntry entries[]); // Load from array
+    wxAcceleratorTable(int n, const wxAcceleratorEntry entries[]); // Load from array
 
     // Copy constructors
 
     // Copy constructors
-    inline wxAcceleratorTable(const wxAcceleratorTable& accel) { Ref(accel); }
-    inline wxAcceleratorTable(const wxAcceleratorTable* accel) { if (accel) Ref(*accel); }
+    wxAcceleratorTable(const wxAcceleratorTable& accel)
+        { Ref(accel); }
 
     ~wxAcceleratorTable();
 
 
     ~wxAcceleratorTable();
 
-    inline wxAcceleratorTable& operator = (const wxAcceleratorTable& accel) { if (*this == accel) return (*this); Ref(accel); return *this; }
-    inline bool operator == (const wxAcceleratorTable& accel) { return m_refData == accel.m_refData; }
-    inline bool operator != (const wxAcceleratorTable& accel) { return m_refData != accel.m_refData; }
+    wxAcceleratorTable& operator = (const wxAcceleratorTable& accel)
+        { if ( *this != accel ) Ref(accel); return *this; }
 
 
-    bool Ok(void) const;
+    bool operator == (const wxAcceleratorTable& accel) const
+        { return m_refData == accel.m_refData; }
+    bool operator != (const wxAcceleratorTable& accel) const
+        { return m_refData != accel.m_refData; }
+
+    bool Ok() const;
     void SetHACCEL(WXHACCEL hAccel);
     WXHACCEL GetHACCEL() const;
     void SetHACCEL(WXHACCEL hAccel);
     WXHACCEL GetHACCEL() const;
+
+    // translate the accelerator, return TRUE if done
+    bool Translate(wxWindow *window, WXMSG *msg) const;
 };
 
 WXDLLEXPORT_DATA(extern wxAcceleratorTable) wxNullAcceleratorTable;
 };
 
 WXDLLEXPORT_DATA(extern wxAcceleratorTable) wxNullAcceleratorTable;