From d7a45e6c23da940c6ac879a4b841f7fac3e960d8 Mon Sep 17 00:00:00 2001 From: Erik Faye-Lund Date: Tue, 4 Dec 2007 23:01:54 +0000 Subject: [PATCH] hscroll --- synctracker2.vcproj | 5 +++- trackview.cpp | 80 +++++++++++++++++++++++++++++------------------------ trackview.h | 2 +- 3 files changed, 49 insertions(+), 38 deletions(-) diff --git a/synctracker2.vcproj b/synctracker2.vcproj index b51069a..a1c4bc8 100644 --- a/synctracker2.vcproj +++ b/synctracker2.vcproj @@ -116,7 +116,8 @@ windowWidth) + { + setScrollPos(scrollPosX + trackWidth, scrollPosY); + } + else setupScrollBars(); } static int getScrollPos(HWND hwnd, int bar) @@ -370,29 +374,32 @@ void TrackView::onHScroll(UINT sbCode, int newPos) switch (sbCode) { case SB_LEFT: - setScrollPos(0, scrollPosY); + setEditTrack(0); + break; + + case SB_RIGHT: + setEditTrack(tracks - 1); break; - // SB_RIGHT currently missing. case SB_LINELEFT: - setScrollPos(scrollPosX - fontWidth, scrollPosY); + setEditTrack(editTrack - 1); break; case SB_LINERIGHT: - setScrollPos(scrollPosX + fontWidth, scrollPosY); + setEditTrack(editTrack + 1); break; case SB_PAGELEFT: - setScrollPos(scrollPosX - 20, scrollPosY); + setEditTrack(editTrack - windowTracks); break; case SB_PAGEDOWN: - setScrollPos(scrollPosX + 20, scrollPosY); + setEditTrack(editTrack + windowTracks); break; case SB_THUMBPOSITION: case SB_THUMBTRACK: - setScrollPos(getScrollPos(hwnd, SB_HORZ), scrollPosY); + setEditTrack(getScrollPos(hwnd, SB_HORZ)); break; } } @@ -420,7 +427,8 @@ void TrackView::onSize(int width, int height) windowWidth = width; windowHeight = height; - windowLines = (height - topMarginHeight) / fontHeight; + windowLines = (height - topMarginHeight) / fontHeight; + windowTracks = (width - leftMarginWidth) / trackWidth; setEditLine(editLine); setupScrollBars(); diff --git a/trackview.h b/trackview.h index d9b9dc2..c86b9b0 100644 --- a/trackview.h +++ b/trackview.h @@ -34,7 +34,7 @@ public: int scrollPosX, scrollPosY; int windowWidth, windowHeight; - int windowLines; + int windowLines, windowTracks; HWND hwnd;