unicode supported again

This commit is contained in:
Erik Faye-Lund 2008-01-18 17:33:49 +00:00
parent 5150103d8c
commit f47da18fbc
4 changed files with 31 additions and 28 deletions

View File

@ -75,7 +75,7 @@ private:
class SyncData
{
public:
SyncTrack &getTrack(std::string name)
SyncTrack &getTrack(const std::basic_string<TCHAR> &name)
{
TrackContainer::iterator iter = tracks.find(name);
if (iter != tracks.end()) return iter->second;
@ -95,6 +95,6 @@ public:
size_t getTrackCount() { return tracks.size(); }
// private:
typedef std::map<const std::string, SyncTrack> TrackContainer;
typedef std::map<const std::basic_string<TCHAR>, SyncTrack> TrackContainer;
TrackContainer tracks;
};

View File

@ -39,23 +39,23 @@ static LRESULT CALLBACK mainWindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARA
SendMessage(statusBarWin, SB_SETTEXT, 0, (LPARAM)"Hi there :)");
HMENU fileMenu = CreatePopupMenu();
AppendMenu(fileMenu, MF_STRING, 0, "&Open\tCtrl+O");
AppendMenu(fileMenu, MF_STRING, 2, "&Save\tCtrl+S");
AppendMenu(fileMenu, MF_STRING, 3, "Save &As");
AppendMenu(fileMenu, MF_STRING, 0, _T("&Open\tCtrl+O"));
AppendMenu(fileMenu, MF_STRING, 2, _T("&Save\tCtrl+S"));
AppendMenu(fileMenu, MF_STRING, 3, _T("Save &As"));
AppendMenu(fileMenu, MF_SEPARATOR, 0, NULL);
AppendMenu(fileMenu, MF_STRING, 3, "&Exit");
AppendMenu(fileMenu, MF_STRING, 3, _T("&Exit"));
HMENU editMenu = CreatePopupMenu();
AppendMenu(editMenu, MF_STRING, WM_UNDO, "&Undo\tCtrl+Z");
AppendMenu(editMenu, MF_STRING, WM_REDO, "&Redo\tShift+Ctrl+Z");
AppendMenu(editMenu, MF_STRING, WM_UNDO, _T("&Undo\tCtrl+Z"));
AppendMenu(editMenu, MF_STRING, WM_REDO, _T("&Redo\tShift+Ctrl+Z"));
AppendMenu(editMenu, MF_SEPARATOR, 0, NULL);
AppendMenu(editMenu, MF_STRING, WM_CUT, "Cu&t\tCtrl+X");
AppendMenu(editMenu, MF_STRING, WM_COPY, "&Copy\tCtrl+C");
AppendMenu(editMenu, MF_STRING, WM_PASTE, "&Paste\tCtrl+V");
AppendMenu(editMenu, MF_STRING, WM_CUT, _T("Cu&t\tCtrl+X"));
AppendMenu(editMenu, MF_STRING, WM_COPY, _T("&Copy\tCtrl+C"));
AppendMenu(editMenu, MF_STRING, WM_PASTE, _T("&Paste\tCtrl+V"));
HMENU rootMenu = CreateMenu();
AppendMenu(rootMenu, MF_STRING | MF_POPUP, (UINT_PTR)fileMenu, "&File");
AppendMenu(rootMenu, MF_STRING | MF_POPUP, (UINT_PTR)editMenu, "&Edit");
AppendMenu(rootMenu, MF_STRING | MF_POPUP, (UINT_PTR)fileMenu, _T("&File"));
AppendMenu(rootMenu, MF_STRING | MF_POPUP, (UINT_PTR)editMenu, _T("&Edit"));
SetMenu(hwnd, rootMenu);
}
break;
@ -81,15 +81,12 @@ static LRESULT CALLBACK mainWindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARA
case WM_COMMAND:
switch (LOWORD(wParam))
{
case WM_COPY:
/* PostMessage(m_hWnd, WM_COPY, 0, 0); */
/* HMMMM.... not working... */
printf("copy!\n");
break;
// simply forward these
case WM_UNDO:
case WM_REDO:
case WM_COPY:
case WM_PASTE:
case WM_CUT:
SendMessage(trackViewWin, LOWORD(wParam), 0, 0);
break;
@ -203,9 +200,9 @@ int _tmain(int argc, _TCHAR* argv[])
#endif
SyncData syncData;
SyncTrack &camXTrack = syncData.getTrack("cam.x");
SyncTrack &camYTrack = syncData.getTrack("cam.y");
SyncTrack &camZTrack = syncData.getTrack("cam.z");
SyncTrack &camXTrack = syncData.getTrack(_T("cam.x"));
SyncTrack &camYTrack = syncData.getTrack(_T("cam.y"));
SyncTrack &camZTrack = syncData.getTrack(_T("cam.z"));
/* for (int i = 0; i < 1 << 16; ++i)
{
char temp[256];

View File

@ -106,10 +106,10 @@ void TrackView::paintTopMargin(HDC hdc, RECT rcTracks)
DrawEdge(hdc, &fillRect, BDR_RAISEDINNER | BDR_RAISEDOUTER, BF_ADJUST | BF_LEFT | BF_RIGHT | BF_BOTTOM);
FillRect(hdc, &fillRect, bgBrush);
std::string trackName = trackIter->first;
const std::basic_string<TCHAR> &trackName = trackIter->first;
TextOut(hdc,
fillRect.left, 0,
trackName.c_str(), int(trackName.length())
trackName.data(), int(trackName.length())
);
ExcludeClipRect(hdc, topMargin.left, topMargin.top, topMargin.right, topMargin.bottom);
}
@ -487,9 +487,15 @@ LRESULT TrackView::onKeyDown(UINT keyCode, UINT flags)
case VK_PRIOR: setEditRow(editRow - windowRows / 2); break;
case VK_NEXT: setEditRow(editRow + windowRows / 2); break;
// simulate keyboard accelerators
case 'Z':
// simulate keyboard accelerators
SendMessage(GetParent(this->getWin()), WM_COMMAND, MAKEWPARAM(shiftDown ? WM_REDO : WM_UNDO, 1), 0);
if (ctrlDown) SendMessage(GetParent(this->getWin()), WM_COMMAND, MAKEWPARAM(shiftDown ? WM_REDO : WM_UNDO, 1), 0);
break;
case 'C':
printf("hit '%c', flags: %X\n", keyCode, flags);
// if (ctrlDown) SendMessage(GetParent(this->getWin()), WM_COMMAND, MAKEWPARAM(shiftDown ? WM_REDO : WM_UNDO, 1), 0);
break;
default:
break;
}
}
@ -500,7 +506,7 @@ LRESULT TrackView::onKeyDown(UINT keyCode, UINT flags)
{
SyncDataEdit::EditCommand *cmd = new SyncDataEdit::EditCommand(
editTrack, editRow,
true, float(atof(editString.c_str()))
true, float(_tstof(editString.c_str()))
);
syncDataEdit.exec(cmd);

View File

@ -178,7 +178,7 @@ private:
SyncDataEdit syncDataEdit;
std::string editString;
std::basic_string<TCHAR> editString;
HWND hwnd;
HBRUSH editBrush;