Esempio n. 1
0
        public void OnInsertCodeBox(IRibbonControl control)
        {
            OneNotePageHandler page = new OneNotePageHandler(app);
            var tElement            = page.GetCursorElement("T");
            var oeElement           = tElement.Parent;

            if (oeElement.Name.LocalName != "OE")
            {
                MessageBox.Show("Cannot Insert Code Box here");
                return;
            }

            var tableElement = XDocument.Parse(@"
<one:OE selected='partial' xmlns:one='http://schemas.microsoft.com/office/onenote/2013/onenote'>
    <one:Table bordersVisible='false' hasHeaderRow='false'>
        <one:Columns>
		    <one:Column index='0' width='37.11000061035156'/>
	    </one:Columns>
	    <one:Row>
		    <one:Cell shadingColor='#F2F2F2'>
			    <one:OEChildren selected='partial'>
				    <one:OE alignment='left' quickStyleIndex='0' selected='partial' style='font-family:Microsoft YaHei Mono;font-size:11.0pt'>
					    <one:T selected='all'><![CDATA[]]></one:T>
                    </one:OE>
			    </one:OEChildren>
		    </one:Cell>
	    </one:Row>
    </one:Table>
</one:OE>
            ").Root;

            int tElementsCount = oeElement.Elements().Count();

            if (tElementsCount == 1)
            {
                oeElement.ReplaceWith(tableElement);
            }
            else
            {
                int i = 0;
                while (oeElement.Elements().ElementAt(i) != tElement)
                {
                    i++;
                }
                tElement.Remove();
                page.SplitOEElement(oeElement, i);
                oeElement.AddAfterSelf(tableElement);
            }
            page.Save();
        }
Esempio n. 2
0
        public void OnOpenInVSCode(IRibbonControl control)
        {
            OneNotePageHandler page = new OneNotePageHandler(app);
            string             text = page.GetSelectedText();
            var isCell = false;

            if (string.IsNullOrEmpty(text))
            {
                isCell = true;
                var cell = page.GetCursorElement("Cell");
                if (cell == null)
                {
                    MessageBox.Show("Please select text or set input cursor into a table.");
                    return;
                }
                else
                {
                    text = page.GetInnerText(cell);
                }
            }

            CopyToClipboard(text);
            VSCodeHandler codeHandler = new VSCodeHandler(setting.VSCode);

            if (codeHandler.EditCode(GetDefaultValue("cmbStyle"), out string newText))
            {
                CopyToClipboard(newText);
                FormatByVSCode(false);
                wordHandler.PasteAndCopy(true);
                if (isCell)
                {
                    // 单元格替换
                    SendKeys.SendWait("^(aav)");
                }
                else
                {
                    SendKeys.SendWait("^(v)");
                }
            }
        }