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(ByStartInFile)
REGIONLISTSORTTYPE(ByTimestamp) REGIONLISTSORTTYPE(ByTimestamp)
MOUSEMODE(MouseGain) /* Changing this order will break step_mouse_mode */
MOUSEMODE(MouseObject) MOUSEMODE(MouseObject)
MOUSEMODE(MouseRange) MOUSEMODE(MouseRange)
MOUSEMODE(MouseDraw) MOUSEMODE(MouseCut)
MOUSEMODE(MouseGain)
MOUSEMODE(MouseTimeFX) MOUSEMODE(MouseTimeFX)
MOUSEMODE(MouseAudition) MOUSEMODE(MouseAudition)
MOUSEMODE(MouseCut) MOUSEMODE(MouseDraw)
/* Changing this order will break the menu */ /* Changing this order will break the menu */
ZOOMFOCUS(ZoomFocusLeft) ZOOMFOCUS(ZoomFocusLeft)

View file

@ -391,47 +391,12 @@ Editor::update_time_selection_display ()
void void
Editor::step_mouse_mode (bool next) Editor::step_mouse_mode (bool next)
{ {
switch (current_mouse_mode()) { const int n_mouse_modes = (int)MouseDraw + 1;
case MouseObject: int current = (int)current_mouse_mode();
if (next) { if (next) {
set_mouse_mode (MouseRange); set_mouse_mode((MouseMode)((current + 1) % n_mouse_modes));
} else { } else {
set_mouse_mode (MouseTimeFX); set_mouse_mode((MouseMode)((current + n_mouse_modes - 1) % n_mouse_modes));
}
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;
} }
} }