X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/77ffb5937e89927b621128789401db8921fe580f..b7540dc1ecf6de3a9f771c3cd24c688a0122c248:/src/generic/accel.cpp diff --git a/src/generic/accel.cpp b/src/generic/accel.cpp index a3f789b3cd..f31532caa6 100644 --- a/src/generic/accel.cpp +++ b/src/generic/accel.cpp @@ -1,11 +1,11 @@ /////////////////////////////////////////////////////////////////////////////// -// Name: generic/accel.cpp +// Name: src/generic/accel.cpp // Purpose: generic implementation of wxAcceleratorTable class // Author: Robert Roebling // Modified: VZ pn 31.05.01: use typed lists, Unicode cleanup, Add/Remove // Id: $Id$ // Copyright: (c) 1998 Robert Roebling -// Licence: wxWidgets licence +// Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// // ============================================================================ @@ -16,10 +16,6 @@ // headers // ---------------------------------------------------------------------------- -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) - #pragma implementation "accel.h" -#endif - // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" @@ -30,8 +26,8 @@ #if wxUSE_ACCEL #ifndef WX_PRECOMP - #include "wx/event.h" #include "wx/list.h" + #include "wx/event.h" #endif // WX_PRECOMP #include "wx/accel.h" @@ -44,7 +40,7 @@ WX_DECLARE_LIST(wxAcceleratorEntry, wxAccelList); #include "wx/listimpl.cpp" -WX_DEFINE_LIST(wxAccelList); +WX_DEFINE_LIST(wxAccelList) // ---------------------------------------------------------------------------- // wxAccelRefData: the data used by wxAcceleratorTable @@ -98,8 +94,8 @@ wxAcceleratorTable::wxAcceleratorTable(int n, const wxAcceleratorEntry entries[] const wxAcceleratorEntry& entry = entries[i]; int keycode = entry.GetKeyCode(); - if ( wxIslower(keycode) ) - keycode = wxToupper(keycode); + if ( isascii(keycode) ) + keycode = toupper(keycode); M_ACCELDATA->m_accels.Append(new wxAcceleratorEntry(entry.GetFlags(), keycode, @@ -141,7 +137,11 @@ void wxAcceleratorTable::Remove(const wxAcceleratorEntry& entry) { const wxAcceleratorEntry *entryCur = node->GetData(); - if ( *entryCur == entry ) + // given entry contains only the information of the accelerator key + // because it was set that way in wxGetAccelFromString() + // so do not perform full ( *entryCur == entry ) comparison + if ((entryCur->GetKeyCode() == entry.GetKeyCode()) && + (entryCur->GetFlags() == entry.GetFlags())) { delete node->GetData(); M_ACCELDATA->m_accels.Erase(node); @@ -218,4 +218,3 @@ wxObjectRefData *wxAcceleratorTable::CloneRefData(const wxObjectRefData *data) c } #endif // wxUSE_ACCEL -