]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/msw/accel.h
Added missing NO_GCC_PRAGMA check.
[wxWidgets.git] / include / wx / msw / accel.h
index 2f2c013a10f649c0a27a21e91d1ece3b394f0fb4..b3fa62a00af88cf44119bb532a49ddf42b8a8c0b 100644 (file)
@@ -1,81 +1,58 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        accel.h
+// Name:        wx/msw/accel.h
 // Purpose:     wxAcceleratorTable class
 // Author:      Julian Smart
 // Modified by:
 // 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__
-#pragma interface "accel.h"
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
+    #pragma interface "accel.h"
 #endif
 
-#include "wx/object.h"
+// ----------------------------------------------------------------------------
+// the accel table has all accelerators for a given window or menu
+// ----------------------------------------------------------------------------
 
-class WXDLLEXPORT wxAcceleratorTable;
-
-// Hold Ctrl key down
-#define wxACCEL_ALT     0x01
-
-// Hold Ctrl key down
-#define wxACCEL_CTRL    0x02
-
- // Hold Shift key down
-#define wxACCEL_SHIFT   0x04
-
- // Hold no other key
-#define wxACCEL_NORMAL  0x00
-
-class WXDLLEXPORT wxAcceleratorEntry
+class WXDLLEXPORT wxAcceleratorTable : public wxObject
 {
 public:
-    wxAcceleratorEntry(int flags = 0, int keyCode = 0, int cmd = 0)
-    {
-        m_flags = flags; m_keyCode = keyCode; m_command = cmd;
-    }
+    // default ctor
+    wxAcceleratorTable();
 
-    inline void Set(int flags, int keyCode, int cmd)
-         { m_flags = flags; m_keyCode = keyCode; m_command = cmd; }
+    // copy ctor
+    wxAcceleratorTable(const wxAcceleratorTable& accel) { Ref(accel); }
 
-    inline int GetFlags() const { return m_flags; }
-    inline int GetKeyCode() const { return m_keyCode; }
-    inline int GetCommand() const { return m_command; }
+    // load from .rc resource (Windows specific)
+    wxAcceleratorTable(const wxString& resource);
 
-    int             m_flags;
-    int                            m_keyCode; // ASCII or virtual keycode
-    int                            m_command; // Command id to generate
-};
+    // initialize from array
+    wxAcceleratorTable(int n, const wxAcceleratorEntry entries[]);
 
-class WXDLLEXPORT wxAcceleratorTable: public wxObject
-{
-DECLARE_DYNAMIC_CLASS(wxAcceleratorTable)
-public:
-    wxAcceleratorTable();
-    wxAcceleratorTable(const wxString& resource); // Load from .rc resource
-    wxAcceleratorTable(int n, wxAcceleratorEntry entries[]); // Load from array
-
-    // Copy constructors
-    inline wxAcceleratorTable(const wxAcceleratorTable& accel) { Ref(accel); }
-    inline wxAcceleratorTable(const wxAcceleratorTable* accel) { if (accel) Ref(*accel); }
-
-    ~wxAcceleratorTable();
+    virtual ~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 operator==(const wxAcceleratorTable& accel) const
+        { return m_refData == accel.m_refData; } // FIXME: this is wrong (VZ)
+    bool operator!=(const wxAcceleratorTable& accel) const
+        { return !(*this == accel); }
 
-    bool Ok(void) const;
+    bool Ok() const;
     void SetHACCEL(WXHACCEL hAccel);
     WXHACCEL GetHACCEL() const;
-};
 
-WXDLLEXPORT_DATA(extern wxAcceleratorTable) wxNullAcceleratorTable;
+    // translate the accelerator, return TRUE if done
+    bool Translate(wxWindow *window, WXMSG *msg) const;
+
+private:
+    DECLARE_DYNAMIC_CLASS(wxAcceleratorTable)
+};
 
 #endif
     // _WX_ACCEL_H_