Fix and simplify step_mouse_mode.

This commit is contained in:
David Robillard 2014-12-07 19:04:33 -05:00
parent ec8c0e93bb
commit bbdad822cd
2 changed files with 10 additions and 44 deletions

View file

@ -65,13 +65,14 @@ REGIONLISTSORTTYPE(BySourceFileName)
REGIONLISTSORTTYPE(ByStartInFile)
REGIONLISTSORTTYPE(ByTimestamp)
MOUSEMODE(MouseGain)
/* Changing this order will break step_mouse_mode */
MOUSEMODE(MouseObject)
MOUSEMODE(MouseRange)
MOUSEMODE(MouseDraw)
MOUSEMODE(MouseCut)
MOUSEMODE(MouseGain)
MOUSEMODE(MouseTimeFX)
MOUSEMODE(MouseAudition)
MOUSEMODE(MouseCut)
MOUSEMODE(MouseDraw)
/* Changing this order will break the menu */
ZOOMFOCUS(ZoomFocusLeft)

View file

@ -391,47 +391,12 @@ Editor::update_time_selection_display ()
void
Editor::step_mouse_mode (bool next)
{
switch (current_mouse_mode()) {
case MouseObject:
if (next) {
set_mouse_mode (MouseRange);
} else {
set_mouse_mode (MouseTimeFX);
}
break;
case MouseRange:
if (next) set_mouse_mode (MouseDraw);
else set_mouse_mode (MouseCut);
break;
case MouseCut:
if (next) set_mouse_mode (MouseRange);
else set_mouse_mode (MouseDraw);
break;
case MouseDraw:
if (next) set_mouse_mode (MouseCut);
else set_mouse_mode (MouseRange);
break;
case MouseGain:
if (next) set_mouse_mode (MouseTimeFX);
else set_mouse_mode (MouseDraw);
break;
case MouseTimeFX:
if (next) {
set_mouse_mode (MouseAudition);
} else {
set_mouse_mode (MouseGain);
}
break;
case MouseAudition:
if (next) set_mouse_mode (MouseObject);
else set_mouse_mode (MouseTimeFX);
break;
const int n_mouse_modes = (int)MouseDraw + 1;
int current = (int)current_mouse_mode();
if (next) {
set_mouse_mode((MouseMode)((current + 1) % n_mouse_modes));
} else {
set_mouse_mode((MouseMode)((current + n_mouse_modes - 1) % n_mouse_modes));
}
}