diff --git a/editor/synctracker2.cpp b/editor/synctracker2.cpp index 729ccbc..8f21540 100644 --- a/editor/synctracker2.cpp +++ b/editor/synctracker2.cpp @@ -213,10 +213,12 @@ static LRESULT CALLBACK mainWindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARA NULL // window data ); - int statwidths[] = { 150, -1 }; + int statwidths[] = { 150, 150 + 32, 150 + 32 * 2, 150 + 32 * 3, -1 }; SendMessage(statusBarWin, SB_SETPARTS, sizeof(statwidths) / sizeof(int), (LPARAM)statwidths); SendMessage(statusBarWin, SB_SETTEXT, 0, (LPARAM)_T("Not connected")); - SendMessage(statusBarWin, SB_SETTEXT, 1, (LPARAM)_T("Hi there :)")); + SendMessage(statusBarWin, SB_SETTEXT, 1, (LPARAM)_T("0")); + SendMessage(statusBarWin, SB_SETTEXT, 2, (LPARAM)_T("0")); + SendMessage(statusBarWin, SB_SETTEXT, 3, (LPARAM)_T("---")); } break; @@ -298,6 +300,31 @@ static LRESULT CALLBACK mainWindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARA } break; + case WM_ROWCHANGED: + { + TCHAR temp[256]; + _sntprintf_s(temp, 256, _T("%d"), lParam ); + SendMessage(statusBarWin, SB_SETTEXT, 1, (LPARAM)temp); + } + break; + + case WM_TRACKCHANGED: + { + TCHAR temp[256]; + _sntprintf_s(temp, 256, _T("%d"), lParam); + SendMessage(statusBarWin, SB_SETTEXT, 2, (LPARAM)temp); + } + break; + + case WM_CURRVALDIRTY: + { + TCHAR temp[256]; + if (document.getTrackCount() > 0) _sntprintf_s(temp, 256, _T("%f"), document.getTrack(document.getTrackIndexFromPos(trackView->getEditTrack())).getValue(float(trackView->getEditRow()))); + else _sntprintf_s(temp, 256, _T("---")); + SendMessage(statusBarWin, SB_SETTEXT, 3, (LPARAM)temp); + } + break; + default: return DefWindowProc(hwnd, msg, wParam, lParam); } diff --git a/editor/trackview.cpp b/editor/trackview.cpp index d985725..b2a79b8 100644 --- a/editor/trackview.cpp +++ b/editor/trackview.cpp @@ -562,6 +562,8 @@ void TrackView::setEditRow(int newEditRow) { document->sendSetRowCommand(editRow); } + SendMessage(GetParent(getWin()), WM_ROWCHANGED, 0, editRow); + SendMessage(GetParent(getWin()), WM_CURRVALDIRTY, 0, 0); } invalidateRow(oldEditRow); @@ -592,6 +594,8 @@ void TrackView::setEditTrack(int newEditTrack) selectStartRow = selectStopRow = editRow; selectStartTrack = selectStopTrack = editTrack; } + SendMessage(GetParent(getWin()), WM_TRACKCHANGED, 0, editTrack); + SendMessage(GetParent(getWin()), WM_CURRVALDIRTY, 0, 0); } invalidateTrack(oldEditTrack); diff --git a/editor/trackview.h b/editor/trackview.h index 4b3c8f9..a2d86fb 100644 --- a/editor/trackview.h +++ b/editor/trackview.h @@ -11,7 +11,10 @@ #include // custom messages -#define WM_REDO (WM_USER + 1) +#define WM_REDO (WM_USER + 0x40 + 3) +#define WM_ROWCHANGED (WM_USER + 0x40 + 4) +#define WM_TRACKCHANGED (WM_USER + 0x40 + 5) +#define WM_CURRVALDIRTY (WM_USER + 0x40 + 6) class TrackView { @@ -39,6 +42,9 @@ public: void setEditRow(int newEditRow); int getEditRow() { return editRow; } + void setEditTrack(int newEditTrack); + int getEditTrack() { return editTrack; } + void selectAll() { selectStartTrack = 0; @@ -128,8 +134,6 @@ private: InvalidateRect(hwnd, &rect, FALSE); } - void setEditTrack(int newEditTrack); - int getScreenY(int row); int getScreenX(int track);