]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk1/accel.cpp
Dnd constant name changes because names like Copy can be #defined by other
[wxWidgets.git] / src / gtk1 / accel.cpp
index 08b5436b343b8ad0db31a129152b4843afc522b0..52949c26ea41c352234afafc308a9203d3345175 100644 (file)
@@ -13,6 +13,8 @@
 
 #include "wx/accel.h"
 
+#include <ctype.h>
+
 //-----------------------------------------------------------------------------
 // wxAcceleratorTable
 //-----------------------------------------------------------------------------
@@ -39,7 +41,6 @@ IMPLEMENT_DYNAMIC_CLASS(wxAcceleratorTable,wxObject)
   
 wxAcceleratorTable::wxAcceleratorTable()
 {
-  m_refData = new wxAccelRefData();
 }
 
 wxAcceleratorTable::wxAcceleratorTable( int n, wxAcceleratorEntry entries[] )
@@ -47,8 +48,11 @@ wxAcceleratorTable::wxAcceleratorTable( int n, wxAcceleratorEntry entries[] )
   m_refData = new wxAccelRefData();
   for (int i = 0; i < n; i++)
   {
-    M_ACCELDATA->m_accels.Append( (wxObject*)
-      new wxAcceleratorEntry( entries[n].GetFlags(), entries[n].GetKeyCode(), entries[n].GetCommand() ) );
+    int flag    = entries[i].GetFlags();
+    int keycode = entries[i].GetKeyCode();
+    int command = entries[i].GetCommand();
+    if ((keycode >= (int)'A') && (keycode <= (int)'Z')) keycode = (int)tolower( (char)keycode );
+    M_ACCELDATA->m_accels.Append( new wxAcceleratorEntry( flag, keycode, command ) );
   }
 }
 
@@ -63,6 +67,8 @@ bool wxAcceleratorTable::Ok() const
 
 int wxAcceleratorTable::GetCommand( wxKeyEvent &event )
 {
+  if (!Ok()) return -1;
+
   wxNode *node = M_ACCELDATA->m_accels.First();
   while (node)
   {