コード例 #1
0
ファイル: EditOmniView.xaml.cs プロジェクト: MageXy/OmniTag
        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;
        }
コード例 #2
0
ファイル: EditOmniView.xaml.cs プロジェクト: MageXy/OmniTag
        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");
            }
        }