/******************************************************************************
        *
        *  プラグイン用イベントハンドラー
        *
        ******************************************************************************/

        /// <summary>
        /// プラグイン生成イベント
        /// </summary>
        /// <param name="param"></param>
        /// <param name="sender"></param>
        public void PluginEvent_FileSelecting(EventParam param, object sender)
        {
            //画像をロックしている場合は処理しない
            if (_ImageViewer.IsLockImage)
            {
                return;
            }

            //選択中のパスを取得します
            var path = ((FileSelectingEventParam)param).Path;

            //画像を読み込みます
            var result = _ImageViewer.LoadImage(path);

            if (result == false)
            {
                return;
            }

            //ファイル名をタイトルとして保持します(タブのタイトルになります)
            if (result)
            {
                this.Title = Path.GetFileName(path);
            }

            //タイトル変更イベントを発生させます
            var p = new TitleChangedEventParam {
                Plugin = this
            };

            _pluginManager.GetEventManager().RaiseEvent(TitleChangedEventParam.Name, this, p);
        }
        /// <summary>
        /// ステータスバーにタイトルを設定します
        /// </summary>
        private void SetTitle()
        {
            if (this.TargetFile == null)
            {
                return;
            }

            var title = new StringBuilder();

            //読み取り専用の場合は、(読み取り専用) をつける
            if (this.TargetFile.Path != null)
            {
                title.Append(this.TargetFile.IsReadOnly ? "(読み取り専用)" : "");
            }

            //パスが未設定の場合は「無題」にする
            title.Append(this.TargetFile.Path ?? "無題");

            //テキスト形式で開いている場合は、文字コードを追加します
            if (this.TargetFile is TextFile)
            {
                title.Append(" [");
                title.Append(((TextFile)this.TargetFile).TextEncoding.EncodingName);

                //BOMの有無を追加します
                title.Append(
                    (((TextFile)this.TargetFile).TextEncoding.GetPreamble().Length > 0) ? ":BOMあり" : ""
                    );

                //改行コードを追加します
                if (((TextFile)this.TargetFile).NewLineCode.Length == 2)
                {
                    title.Append(":CRLF");
                }
                else
                {
                    title.Append(((TextFile)this.TargetFile).NewLineCode.Equals("\r") ? ":CR" : ":LF");
                }
                title.Append("]");
            }

            //テキスト形式で開いている場合は、バイナリ形式
            if (this.TargetFile is BinaryFile)
            {
                title.Append(" [バイナリ形式]");
            }

            //テキストが変更されている場合は、(*) をつける
            title.Append(txtMain.Modified ? "(*)" : "");
            //目がチカチカするので色を付けるのは廃止

            /*
             * if (txtMain.Modified) {
             *  statusPath.BackColor = Color.FromKnownColor(KnownColor.Pink);
             * } else {
             *  statusPath.BackColor = Color.FromKnownColor(KnownColor.Control);
             * }*/

            //キー操作の記録中
            if (_keyMacro.IsRecording)
            {
                title.Append(" 【 REC 】");
            }

            //タイトルを設定します
            statusPath.Text = title.ToString(); //TODO ステータスバーに長い文字列を設定すると表示されない

            //ファイル名をプラグインのタイトルとして保持します(タブのタイトルになります)
            this.Title = Path.GetFileName(this.TargetFile.Path) + (txtMain.Modified ? "(*)" : "");

            //タイトル変更イベントを発生させます
            var param = new TitleChangedEventParam {
                Plugin = this
            };

            _pluginManager.GetEventManager().RaiseEvent(TitleChangedEventParam.Name, this, param);
        }