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