LunarPresentation/Commands/CutOrDelete.cs

(开头部分) 4KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System.Windows;
using System.Windows.Controls;

namespace SHomeWorkshop.LunarPresentation.Commands
{
    public partial class Command
    {
        /// <summary>
        /// 将公式Xml文本置入操作系统剪贴板。
        /// </summary>
        /// <param name="onlyDelete">此参数为真时,直接将公式删除,
        /// 而不会将公式文本置入操作系统剪贴板。</param>
        public static void CutOrDelete(bool onlyDelete = false)
        {
            if (Globals.selectedEditor == null) return;
            if (Globals.selectedEditor.SelectedExpression == null) return;

            LunarPresentation.Expressions.Expression curEx
                = Globals.selectedEditor.SelectedExpression;

            if (curEx is Expressions.LeafPanel)
            {
                Command.CutOrDeleteLeaf(onlyDelete); return;
            }

            if (curEx is Expressions.SubPanel)
            {
                MessageBox.Show("子面板不能被“删除”或“剪切”、“复制”、“粘贴”,仅能被复制成图像!",
                    Globals.appName, MessageBoxButton.OK, MessageBoxImage.Warning);
                return;//子面板不支持Cut。
            }

            if (curEx is Expressions.BaseText)
            {
                Expressions.BaseText curBt = curEx as Expressions.BaseText;
                if (curBt.IsCollapsed)
                {
                    MessageBox.Show("折叠的标题文本块不允许被剪切或删除。此外“复制、粘贴、平移、拖动、更改缩进、对齐、嵌入”等操作亦被禁止。",
                        Globals.appName, MessageBoxButton.OK, MessageBoxImage.Warning);
                    return;
                }
            }

            if (curEx.Parent is StackPanel)
            {
                StackPanel spanel = curEx.Parent as StackPanel;
                int index = spanel.Children.IndexOf(curEx);

                Editor editor = curEx.Editor;

                ModifingItem mi = new ModifingItem();

                if (spanel.Children.Count <= 1)
                {
                    curEx.XmlData.InsertXml(LunarPresentation.Properties.Resources.BaseText);
                    LunarPresentation.Expressions.BaseText newExpression =
                    new LunarPresentation.Expressions.BaseText(curEx.RootPanel, curEx.ParentPanel, curEx.Editor);
                    spanel.Children.Insert(spanel.Children.IndexOf(curEx) + 1, newExpression);
                    newExpression.XmlData = curEx.XmlData.NextSibling;

后面还有 53 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。