in Apps/Phrasor/MainPage.xaml.cs [315:376]
private async void OnGridButtonClick(object sender, RoutedEventArgs e)
{
var button = sender as Button;
var phraseNode = button.DataContext as PhraseNode;
var caption = phraseNode != null ? phraseNode.Caption : button.Content.ToString();
if (caption == "\uE72B")
{
MasterViewModel.GoToNode(MasterViewModel.CurrentNode);
ShowHideTileNavigation();
return;
}
else if (caption == "\uE72A")
{
MasterViewModel.GoToNode(MasterViewModel.CurrentNode);
ShowHideTileNavigation();
return;
}
switch (_pageMode)
{
case PageMode.Delete:
if ((phraseNode.IsCategory) && (phraseNode.Children.Count > 0))
{
// TODO: Add status info somewhere.
return;
}
SetButtonDwellResponse(false);
MasterViewModel.CurrentNode.Children.Remove(phraseNode);
SetPageMode(PageMode.Run);
MasterViewModel.GoToNode(MasterViewModel.CurrentNode);
ShowHideTileNavigation();
break;
case PageMode.Edit:
var navParams = new KeyboardPageNavigationParams
{
RootNode = MasterViewModel.RootNode,
CurrentNode = MasterViewModel.CurrentNode,
ChildNode = phraseNode,
NeedsSaving = false,
GazePlusClickMode = MasterViewModel.Settings.GazePlusClickMode
};
Frame.Navigate(typeof(KeyboardPage), navParams);
break;
default:
if (phraseNode.IsCategory)
{
MasterViewModel.GoToNode(phraseNode);
ShowHideTileNavigation();
}
else
{
var stream = await _speechSynthesizer.SynthesizeTextToStreamAsync(caption);
_mediaElement.SetSource(stream, stream.ContentType);
_mediaElement.AutoPlay = true;
_mediaElement.Play();
}
break;
}
}