editor: support going to prev/next bookmark
This commit is contained in:
parent
3a859b781e
commit
3f19324255
1
README
1
README
@ -69,6 +69,7 @@ Enter Enter key-frame value
|
|||||||
Del Delete key-frame
|
Del Delete key-frame
|
||||||
i Enumerate interpolation mode
|
i Enumerate interpolation mode
|
||||||
k Toggle bookmark
|
k Toggle bookmark
|
||||||
|
Shift+PgUp/PgDn Go to prev/next bookmark
|
||||||
Space Pause/Resume demo
|
Space Pause/Resume demo
|
||||||
Shift+Up/Down/Left/Right Select
|
Shift+Up/Down/Left/Right Select
|
||||||
Ctrl+C Copy
|
Ctrl+C Copy
|
||||||
|
|||||||
@ -287,6 +287,29 @@ public:
|
|||||||
|
|
||||||
std::wstring fileName;
|
std::wstring fileName;
|
||||||
|
|
||||||
|
int nextRowBookmark(int row) const
|
||||||
|
{
|
||||||
|
std::set<int>::const_iterator it = rowBookmarks.upper_bound(row);
|
||||||
|
if (it == rowBookmarks.end())
|
||||||
|
return -1;
|
||||||
|
return *it;
|
||||||
|
}
|
||||||
|
|
||||||
|
int prevRowBookmark(int row) const
|
||||||
|
{
|
||||||
|
std::set<int>::const_iterator it = rowBookmarks.lower_bound(row);
|
||||||
|
if (it == rowBookmarks.end()) {
|
||||||
|
std::set<int>::const_reverse_iterator it = rowBookmarks.rend();
|
||||||
|
if (it == rowBookmarks.rend())
|
||||||
|
return -1;
|
||||||
|
return *it;
|
||||||
|
} else
|
||||||
|
it--;
|
||||||
|
if (it == rowBookmarks.end())
|
||||||
|
return -1;
|
||||||
|
return *it;
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::set<int> rowBookmarks;
|
std::set<int> rowBookmarks;
|
||||||
std::vector<size_t> trackOrder;
|
std::vector<size_t> trackOrder;
|
||||||
|
|||||||
@ -993,23 +993,31 @@ LRESULT TrackView::onKeyDown(UINT keyCode, UINT /*flags*/)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case VK_PRIOR:
|
case VK_PRIOR:
|
||||||
if (GetKeyState(VK_CONTROL) < 0)
|
if (GetKeyState(VK_CONTROL) < 0) {
|
||||||
{
|
|
||||||
float bias = 10.0f;
|
float bias = 10.0f;
|
||||||
if (GetKeyState(VK_SHIFT) < 0) bias = 100.0f;
|
if (GetKeyState(VK_SHIFT) < 0)
|
||||||
|
bias = 100.0f;
|
||||||
editBiasValue(bias);
|
editBiasValue(bias);
|
||||||
}
|
} else if (GetKeyState(VK_SHIFT) < 0) {
|
||||||
else setEditRow(editRow - 0x10);
|
int row = doc->prevRowBookmark(editRow);
|
||||||
|
if (row >= 0)
|
||||||
|
setEditRow(row);
|
||||||
|
} else
|
||||||
|
setEditRow(editRow - 0x10);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case VK_NEXT:
|
case VK_NEXT:
|
||||||
if (GetKeyState(VK_CONTROL) < 0)
|
if (GetKeyState(VK_CONTROL) < 0) {
|
||||||
{
|
|
||||||
float bias = 10.0f;
|
float bias = 10.0f;
|
||||||
if (GetKeyState(VK_SHIFT) < 0) bias = 100.0f;
|
if (GetKeyState(VK_SHIFT) < 0)
|
||||||
|
bias = 100.0f;
|
||||||
editBiasValue(-bias);
|
editBiasValue(-bias);
|
||||||
}
|
} else if (GetKeyState(VK_SHIFT) < 0) {
|
||||||
else setEditRow(editRow + 0x10);
|
int row = doc->nextRowBookmark(editRow);
|
||||||
|
if (row >= 0)
|
||||||
|
setEditRow(row);
|
||||||
|
} else
|
||||||
|
setEditRow(editRow + 0x10);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case VK_HOME:
|
case VK_HOME:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user