示例#1
0
        public DialogPreview(TabInfo sourceTab)
        {
            InitializeComponent();

            this.Text     += sourceTab.filename;
            this.sourceTab = sourceTab;

            NodesComboBox.Items.AddRange(DialogueParser.GetAllNodesName(scrProc).ToArray());

            Procedure curProc = sourceTab.parseInfo.GetProcedureFromPosition(sourceTab.textEditor.ActiveTextAreaControl.Caret.Line);

            if (curProc == null || !NodesComboBox.Items.Contains(curProc.name))
            {
                int indx = sourceTab.parseInfo.GetProcedureIndex("talk_p_proc");
                if (indx == -1)
                {
                    return;
                }
                curProc = scrProc[indx];
            }

            MessagesData = File.ReadAllLines(sourceTab.msgFilePath, Settings.EncCodePage);
            if (sourceTab.messages.Count == 0)
            {
                MessageFile.ParseMessages(sourceTab, MessagesData);
            }

            NodesComboBox.Text = curProc.name;
            nodesNavigation.Add(curProc.name);
            GotoNode(curProc);
        }
示例#2
0
        private void DialogPreview_Activated(object sender, EventArgs e)
        {
            if (!needUpdate)
            {
                return;
            }

            List <string> nodes = DialogueParser.GetAllNodesName(scrProc);

            if (NodesComboBox.Items.Count != nodes.Count)
            {
                var sItem = NodesComboBox.SelectedItem;

                allow = false;
                NodesComboBox.Items.Clear();
                NodesComboBox.Items.AddRange(nodes.ToArray());

                if (sItem == null)
                {
                    return;
                }

                foreach (var item in NodesComboBox.Items)
                {
                    if (item.ToString() == sItem.ToString())
                    {
                        NodesComboBox.SelectedItem = item;
                        break;
                    }
                }
            }
            needUpdate = false;
        }
        public FlowchartTE(Procedure cProc, TabInfo ti, List <string> allNodes = null, bool fromDiagram = false)
        {
            InitializeComponent();

            this.sourceTab = ti;

            OpenFromDiagram = fromDiagram;

            //Create the text editor
            TextEditorControl te = new TextEditorControl();

            //te.TextEditorProperties.NativeDrawText = Settings.winAPITextRender;
            te.TextEditorProperties.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit;
            Settings.SetTextAreaFont(te);

            //te.AllowCaretBeyondEOL = true;
            te.EnableFolding   = false;
            te.BorderStyle     = BorderStyle.FixedSingle;
            te.LineViewerStyle = LineViewerStyle.FullRow;
            te.ShowVRuler      = false;
            te.TextEditorProperties.IndentStyle         = IndentStyle.Smart;
            te.TextEditorProperties.ConvertTabsToSpaces = Settings.tabsToSpaces;
            te.TextEditorProperties.TabIndent           = Settings.tabSize;
            te.TextEditorProperties.IndentationSize     = Settings.tabSize;

            // Activate the highlighting, use the name from the SyntaxDefinition node.
            te.TextEditorProperties.DarkScheme = ColorTheme.IsDarkTheme;
            te.SetHighlighting(ColorTheme.HighlightingScheme);
            te.OptionsChanged();

            te.Text    = GetProcedureCode(ti.textEditor.Document, cProc);
            textEditor = te;

            // events
            te.TextChanged += CodeChangedTimer;
            te.ActiveTextAreaControl.TextArea.ToolTipRequest += TextArea_ToolTipRequest;

            te.ActiveTextAreaControl.TextArea.PreviewKeyDown += delegate(object sender, PreviewKeyDownEventArgs e) {
                if (e.KeyCode == Keys.Tab)
                {
                    if (Utilities.AutoCompleteKeyWord(textEditor.ActiveTextAreaControl))
                    {
                        e.IsInputKey = true;
                    }
                }
            };

            te.ActiveTextAreaControl.Caret.PositionChanged += delegate(object sender, EventArgs e) {
                Utilities.SelectedTextColorRegion(new TextLocation(), textEditor.ActiveTextAreaControl);
            };

            //te.ActiveTextAreaControl.TextArea.MouseDown += delegate(object sender, MouseEventArgs e) {
            //    if (e.Button == MouseButtons.Left)
            //        Utilities.SelectedTextColorRegion(textEditor.ActiveTextAreaControl);
            //};

            splitContainer.Panel1.Controls.Add(te);

            cForm            = new Form();
            cForm.ClientSize = this.Size;
            cForm.Controls.Add(this);
            cForm.FormBorderStyle = FormBorderStyle.Sizable;
            cForm.StartPosition   = FormStartPosition.CenterScreen;
            cForm.Icon            = Properties.Resources.CodeText;

            NodeName = cProc.name;

            cForm.FormClosing += cForm_FormClosing;

            te.Dock   = DockStyle.Fill;
            this.Dock = DockStyle.Fill;

            timer.Tick += CodeChanged;

            if (allNodes == null)
            {
                allNodes = DialogueParser.GetAllNodesName(PI.procs);
            }

            cmbNodesName.Items.AddRange(allNodes.ToArray());
            cmbNodesName.SelectedIndex = 0;

            LoadCustomCode();

            ParseCode();

            dgvMessages.ClearSelection();
        }