private void OnCodeClicked(object sender, RoutedEventArgs e) { var textwrap = DescriptionTextBox.TextWrapping; if (textwrap == TextWrapping.Wrap) { DescriptionTextBox.TextWrapping = TextWrapping.NoWrap; } var startLineIndex = DescriptionTextBox.GetLineIndexFromCharacterIndex(DescriptionTextBox.SelectionStart); var endLineIndex = DescriptionTextBox.GetLineIndexFromCharacterIndex(DescriptionTextBox.SelectionStart + DescriptionTextBox.SelectionLength); if (startLineIndex != endLineIndex) { var collection = ColorCode.Languages.All.Select(l => l.Name).OrderBy(n => n).ToList(); collection.Insert(0, "None"); var vm = InputViewFactory.ShowComboBoxInput("Please choose a code language:", "Code Language", collection); var language = String.Empty; if (vm.UserCancelled) { DescriptionTextBox.TextWrapping = textwrap; return; } if (vm.SelectedValue != "None") { language = vm.SelectedValue; } for (var index = startLineIndex; index <= endLineIndex; index++) { var lineStartIndex = DescriptionTextBox.GetCharacterIndexFromLineIndex(index); DescriptionTextBox.Text = DescriptionTextBox.Text.Insert(lineStartIndex, " "); } if (language != String.Empty) { DescriptionTextBox.Text = DescriptionTextBox.Text.Insert( DescriptionTextBox.GetCharacterIndexFromLineIndex(startLineIndex), " " + OmniTextRenderer.LangDefinitionText + language + Environment.NewLine); endLineIndex++; } DescriptionTextBox.SelectionStart = DescriptionTextBox.GetCharacterIndexFromLineIndex(startLineIndex); var endOfLastLineIndex = DescriptionTextBox.GetCharacterIndexFromLineIndex(endLineIndex) + DescriptionTextBox.GetLineText(endLineIndex).Length; DescriptionTextBox.SelectionLength = endOfLastLineIndex - DescriptionTextBox.SelectionStart; DescriptionTextBox.Focus(); } else { SurroundDescriptionTextWith("`", "code text"); } DescriptionTextBox.TextWrapping = textwrap; }
private void OnAddImageClicked(object sender, RoutedEventArgs e) { string result; if (sender == AddImageLocalButton) { var ofd = SelectImage(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)); if (ofd.FileName == null) { return; } result = ofd.FileName; } else if (sender == AddImageOnlineButton) { //var vm = new SimpleInputViewModel("Enter file URL:", "Add Image"); //var view = ViewFactory.CreateViewWithDataContext<SimpleInputView>(vm); //view.ShowDialog(); var vm = InputViewFactory.ShowTextBoxInput("Enter file URL:", "Add Image"); if (vm.UserCancelled) { return; } result = vm.SelectedValue; } else { var ofd = SelectImage(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)); if (ofd == null) { return; } var vm = DataContext as EditOmniViewModel; if (vm == null) { return; } var imageDesc = vm.EmbedImage(ofd.FileName, ofd.SafeFileName).Replace(" ", "%20"); SurroundDescriptionTextWith("![", $@"](dbfile:///{imageDesc})", "image description"); return; } try { var uri = new Uri(result); SurroundDescriptionTextWith("![", $"]({uri.AbsoluteUri})", "image description"); } catch (UriFormatException) { SurroundDescriptionTextWith("![", $"]({result})", "image alt text"); } }