X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3c67451472112b3c7bb3b425cfab523b2d38d0cf..7d09b97f5321d0accd758eb420c008853ad9ec26:/src/os2/accel.cpp diff --git a/src/os2/accel.cpp b/src/os2/accel.cpp index 09aa343e0a..34be764815 100644 --- a/src/os2/accel.cpp +++ b/src/os2/accel.cpp @@ -135,20 +135,19 @@ wxAcceleratorTable::wxAcceleratorTable( uVirt |= AF_VIRTUALKEY; } - bool bIsVirtual; - USHORT uKey = wxCharCodeWXToOS2( vaEntries[i].GetKeyCode() - ,&bIsVirtual - ); + bool bIsVirtual; + USHORT uKey = (USHORT)wxCharCodeWXToOS2( vaEntries[i].GetKeyCode(), + &bIsVirtual); if (bIsVirtual) uVirt = AF_CHAR | AF_VIRTUALKEY; - USHORT uCmd = vaEntries[i].GetCommand(); + USHORT uCmd = (USHORT)vaEntries[i].GetCommand(); pArr->aaccel[i].fs = uVirt; pArr->aaccel[i].key = uKey; pArr->aaccel[i].cmd = uCmd; } - pArr->codepage = 437; // default to english Fix??? + pArr->codepage = (USHORT)::WinQueryCp(wxTheApp->m_hMq); pArr->cAccel = (USHORT)n; M_ACCELDATA->m_hAccel = ::WinCreateAccelTable( vHabmain ,pArr @@ -158,7 +157,7 @@ wxAcceleratorTable::wxAcceleratorTable( // // If we have accelerators the top window is the frame // - wxFrame* pFrame = (wxFrame*)wxTheApp->GetTopWindow(); + wxFrame* pFrame = (wxFrame*)wxTheApp->GetTopWindow(); ::WinSetAccelTable( vHabmain ,M_ACCELDATA->m_hAccel @@ -203,10 +202,45 @@ bool wxAcceleratorTable::Translate( ,GetHaccel() ,pMsg ); - if (rc) - { - int x = 1; - } return (Ok() && rc); } // end of wxAcceleratorTable::Translate +// --------------------------------------------------------------------------- +// function for translating labels +// --------------------------------------------------------------------------- + +wxString wxPMTextToLabel( const wxString& rsTitle ) +{ + wxString sTitle; + const wxChar* zPc; + + if (rsTitle.empty()) + return(sTitle); + + for (zPc = rsTitle.c_str(); *zPc != wxT('\0'); zPc++) + { + if (*zPc == wxT('&')) + { + if (*(zPc + 1) == wxT('&')) + { + zPc++; + sTitle << wxT('&'); + } + else + sTitle << wxT('~'); + } + else + { + if ( *zPc == wxT('~')) + { + // + // Tildes must be doubled to prevent them from being + // interpreted as accelerator character prefix by PM ??? + // + sTitle << *zPc; + } + sTitle << *zPc; + } + } + return(sTitle); +} // end of wxPMTextToLabel