Exemplo n.º 1
0
        /// <summary>
        /// エディタフォームを新規に作成して返す
        /// </summary>
        /// <returns>新規作成フォーム</returns>
        private EditorForm createEditorForm()
        {
            EditorForm editor = new EditorForm();

            editor.FormClosing += new FormClosingEventHandler(editor_FormClosing);

            return(editor);
        }
Exemplo n.º 2
0
        /// <summary>
        /// ファイルを開く
        /// </summary>
        /// <param name="filePath">開くファイルのパス</param>
        public IEditorDocContent LoadFile(string filePath)
        {
            if (File.Exists(filePath) == false)
            {
                util.Msgbox.Error(filePath + "\nファイルが見つかりませんでした。");
                return(null);
            }
            GlobalStatus.EnvOption.HistoryFile.Add(filePath);                   //履歴に追加する

            //ドッキングウィンドウからエディタすべて探索する
            IDockContent[] docList = m_mainPanel.Documents;
            foreach (IDockContent doc in docList)
            {
                if (doc is IEditorDocContent)
                {
                    if (filePath == ((IEditorDocContent)doc).FileName)
                    {
                        //すでに開いているときはファイルを読み込まずにそれをアクティブにする
                        ((IEditorDocContent)doc).ActivateForm();
                        return((IEditorDocContent)doc);
                    }
                }
            }

            //タブの生成と読み込み
            IEditorDocContent nweDoc = null;

            if (FileType.GetKrkrType(filePath) == FileType.KrkrType.Screen)
            {
                ScreenMakerForm screen = new ScreenMakerForm();
                screen.LoadFile(filePath);
                screen.Show(m_mainPanel);

                nweDoc = screen;
            }
            else
            {
                EditorForm editor = createEditorForm();
                ConvertEncoding(filePath);                                      //文字コード調整
                editor.LoadFile(filePath);                                      //ファイル読み込み
                SetOption(editor.TextEditor);                                   //エディタオプションのセット
                editor.TextEditor.LoadBookmarkFormList();                       //ブックマークのセット
                editor.Show(m_mainPanel);                                       //表示する
                GlobalStatus.FormManager.MainForm.UpdateStatusBar(editor.TextEditor);
                editor.TextEditor.UpdateFolding();                              //折りたたみのセット
                editor.TextEditor.ActiveTextArea.Focus();                       //フォーカスをセットする

                nweDoc = editor;
            }

            return(nweDoc);
        }
Exemplo n.º 3
0
        /// <summary>
        /// すべての開いているエディタに現在のオプション情報を適用する
        /// </summary>
        public void SetOptionAll()
        {
            IDockContent[] docList = m_mainPanel.Documents;
            foreach (IDockContent doc in docList)
            {
                if (doc is EditorForm)
                {
                    //エディタにオプションをセットする
                    EditorForm editor = (EditorForm)doc;

                    SetOption(editor.TextEditor);
                }
            }
        }
Exemplo n.º 4
0
        /// <summary>
        /// ファイルを読み込み指定行へカーソルを移動する
        /// </summary>
        /// <param name="filePath"></param>
        /// <param name="lineNumber"></param>
        /// <returns></returns>
        public IEditorDocContent LoadFile(string filePath, int lineNumber)
        {
            if (FileType.GetKrkrType(filePath) == FileType.KrkrType.Screen)
            {
                //指定行へ移動できないためnullを返す
                return(null);
            }

            EditorForm editor = (EditorForm)LoadFile(filePath);

            if (editor == null)
            {
                return(null);
            }

            editor.TextEditor.MoveCaretLineSelectText(lineNumber);
            return(editor);
        }
Exemplo n.º 5
0
        public void ShowNextEditor()
        {
            if (ActiveEditor != null)
            {
                TextEditorEx   nowActive       = ActiveEditor;
                EditorForm     firstActiveForm = null;
                bool           isFind          = false;
                IDockContent[] docList         = m_mainPanel.Documents;
                foreach (IDockContent doc in docList)
                {
                    EditorForm editor = doc as EditorForm;
                    if (editor == null)
                    {
                        continue;                               //次を検索
                    }

                    if (firstActiveForm == null)
                    {
                        firstActiveForm = editor;
                    }
                    if (nowActive == editor.TextEditor)
                    {
                        isFind = true;
                        continue;                               //発見したので次へ行く
                    }
                    if (isFind)
                    {
                        //見つけたとの物が次のエディタとして表示する
                        editor.Show();
                        return;
                    }
                }
                if (isFind && firstActiveForm != null)
                {
                    //発見しても次がないときは最初の物を表示する
                    firstActiveForm.Show();
                    return;
                }
            }
        }