private void SetMode(MultiModeEditorCommandBarMode newMode)
{
switch (_currentMode)
{
case MultiModeEditorCommandBarMode.Normal:
PrimaryCommands.Remove(_newButton);
PrimaryCommands.Remove(_selectButton);
PrimaryCommands.Remove(_reorderButton);
PrimaryCommands.Remove(_playButton);
break;
case MultiModeEditorCommandBarMode.Reorder:
PrimaryCommands.Remove(_finishedReorderingButton);
break;
case MultiModeEditorCommandBarMode.Select:
PrimaryCommands.Remove(_deleteButton);
PrimaryCommands.Remove(_copyButton);
PrimaryCommands.Remove(_cancelSelectionButton);
break;
default:
throw new ArgumentOutOfRangeException();
}
switch (newMode)
{
case MultiModeEditorCommandBarMode.Normal:
PrimaryCommands.Add(_newButton);
PrimaryCommands.Add(_selectButton);
if (TargetType == AppBarTargetType.Object)
PrimaryCommands.Add(_reorderButton);
PrimaryCommands.Add(_playButton);
_playButton.IsEnabled = true;
break;
case MultiModeEditorCommandBarMode.Reorder:
PrimaryCommands.Add(_finishedReorderingButton);
_playButton.IsEnabled = false;
break;
case MultiModeEditorCommandBarMode.Select:
PrimaryCommands.Add(_deleteButton);
PrimaryCommands.Add(_copyButton);
PrimaryCommands.Add(_cancelSelectionButton);
_playButton.IsEnabled = false;
break;
default:
throw new ArgumentOutOfRangeException("newMode");
}
_currentMode = newMode;
if (ModeChanged != null)
{
Mode = newMode;
ModeChanged.Invoke(newMode);
}
}