ctrl-modifying works!
This commit is contained in:
parent
f8c1ec9d6a
commit
946f151bfc
@ -113,7 +113,7 @@ public:
|
||||
commands.clear();
|
||||
}
|
||||
|
||||
void addEditCommand(Command *cmd)
|
||||
void addCommand(Command *cmd)
|
||||
{
|
||||
commands.push_back(cmd);
|
||||
}
|
||||
@ -175,22 +175,22 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
void setKey(int track, int row, float val)
|
||||
void setKeyFrame(int track, int row, const SyncTrack::KeyFrame &key)
|
||||
{
|
||||
SyncTrack &t = getTrack(track);
|
||||
SyncEditData::Command *cmd;
|
||||
if (t.isKeyFrame(row))
|
||||
{
|
||||
cmd = new EditCommand(track, row, val);
|
||||
cmd = new EditCommand(track, row, key);
|
||||
}
|
||||
else
|
||||
{
|
||||
cmd = new InsertCommand(track, row, val);
|
||||
cmd = new InsertCommand(track, row, key);
|
||||
}
|
||||
exec(cmd);
|
||||
}
|
||||
|
||||
void deleteKey(int track, int row)
|
||||
void deleteKeyFrame(int track, int row)
|
||||
{
|
||||
assert(getTrack(track).isKeyFrame(row));
|
||||
Command *cmd = new DeleteCommand(track, row);
|
||||
|
||||
@ -613,7 +613,7 @@ void TrackView::onReturn()
|
||||
{
|
||||
if (editString.size() > 0)
|
||||
{
|
||||
syncData->setKey(editTrack, editRow, float(_tstof(editString.c_str())));
|
||||
syncData->setKeyFrame(editTrack, editRow, float(_tstof(editString.c_str())));
|
||||
|
||||
editString.clear();
|
||||
invalidatePos(editTrack, editRow);
|
||||
@ -626,7 +626,20 @@ void TrackView::onDelete()
|
||||
SyncTrack &track = syncData->getTrack(editTrack);
|
||||
if (track.isKeyFrame(editRow))
|
||||
{
|
||||
syncData->deleteKey(editTrack, editRow);
|
||||
syncData->deleteKeyFrame(editTrack, editRow);
|
||||
invalidatePos(editTrack, editRow);
|
||||
}
|
||||
else MessageBeep(0);
|
||||
}
|
||||
|
||||
void TrackView::bias(float amount)
|
||||
{
|
||||
SyncTrack &track = syncData->getTrack(editTrack);
|
||||
if (track.isKeyFrame(editRow))
|
||||
{
|
||||
SyncTrack::KeyFrame newKey = *track.getKeyFrame(editRow);
|
||||
newKey.value += amount;
|
||||
syncData->setKeyFrame(editTrack, editRow, newKey);
|
||||
invalidatePos(editTrack, editRow);
|
||||
}
|
||||
else MessageBeep(0);
|
||||
@ -638,14 +651,28 @@ LRESULT TrackView::onKeyDown(UINT keyCode, UINT /*flags*/)
|
||||
{
|
||||
switch (keyCode)
|
||||
{
|
||||
case VK_UP: setEditRow(editRow - 1); break;
|
||||
case VK_DOWN: setEditRow(editRow + 1); break;
|
||||
case VK_UP:
|
||||
if (GetKeyState(VK_CONTROL) < 0) bias(1);
|
||||
else setEditRow(editRow - 1);
|
||||
break;
|
||||
|
||||
case VK_DOWN:
|
||||
if (GetKeyState(VK_CONTROL) < 0) bias(-1);
|
||||
else setEditRow(editRow + 1);
|
||||
break;
|
||||
|
||||
case VK_LEFT: setEditTrack(editTrack - 1); break;
|
||||
case VK_RIGHT: setEditTrack(editTrack + 1); break;
|
||||
|
||||
case VK_PRIOR: setEditRow(editRow - windowRows / 2); break;
|
||||
case VK_NEXT: setEditRow(editRow + windowRows / 2); break;
|
||||
case VK_PRIOR:
|
||||
if (GetKeyState(VK_CONTROL) < 0) bias(10);
|
||||
else setEditRow(editRow - windowRows / 2);
|
||||
break;
|
||||
|
||||
case VK_NEXT:
|
||||
if (GetKeyState(VK_CONTROL) < 0) bias(-10);
|
||||
else setEditRow(editRow + windowRows / 2);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
@ -658,7 +685,7 @@ LRESULT TrackView::onKeyDown(UINT keyCode, UINT /*flags*/)
|
||||
case VK_DELETE: onDelete(); break;
|
||||
|
||||
case VK_BACK:
|
||||
if (editString.size() > 0)
|
||||
if (!editString.empty())
|
||||
{
|
||||
editString.resize(editString.size() - 1);
|
||||
invalidatePos(editTrack, editRow);
|
||||
@ -668,7 +695,7 @@ LRESULT TrackView::onKeyDown(UINT keyCode, UINT /*flags*/)
|
||||
|
||||
case VK_CANCEL:
|
||||
case VK_ESCAPE:
|
||||
if (editString.size() > 0)
|
||||
if (!editString.empty())
|
||||
{
|
||||
// return to old value (i.e don't clear)
|
||||
editString.clear();
|
||||
|
||||
@ -40,7 +40,8 @@ private:
|
||||
|
||||
void onReturn();
|
||||
void onDelete();
|
||||
|
||||
void bias(float amount);
|
||||
|
||||
void copy();
|
||||
void cut();
|
||||
void paste();
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user