コード例 #1
0
ファイル: CtxmData.cs プロジェクト: nekopanda/EDCB
 protected static void CopyData(CtxmItemData src, CtxmItemData dest)
 {
     dest.Header  = src.Header;
     dest.ID      = src.ID;
     dest.Command = src.Command;
     dest.Items   = src.Items.Clone();
 }
コード例 #2
0
        private CtxmData GetWorkCtxmDataView(CtxmCode code)
        {
            CtxmData ctxm    = new CtxmData(code);
            CtxmData ctxmDef = DefCtxmData[code];

            //存在するものをコピーしていく。編集メニューは常に個別設定が有効になる。
            if (Settings.Instance.MenuSet.IsManualAssign.Contains(code) == true || code == CtxmCode.EditChgMenu)
            {
                CtxmSetting ctxmEdited = Settings.Instance.MenuSet.ManualMenuItems.FindData(code);
                if (ctxmEdited == null)
                {
                    //編集サブメニューの場合は、初期無効アイテムを削除したデフォルトセッティングを返す。
                    return(code != CtxmCode.EditChgMenu ? ctxmDef.Clone() : GetDefaultChgSubMenuCtxmData());
                }

                ctxmEdited.Items.ForEach(setMenuString =>
                {
                    CtxmItemData item1 = ctxmDef.Items.Find(item => item.Header == setMenuString);
                    if (item1 != null)
                    {
                        ctxm.Items.Add(item1.Clone());
                    }
                });
            }
            else
            {
                ctxmDef.Items.ForEach(item1 =>
                {
                    if (MC.WorkCmdOptions[item1.Command].IsMenuEnabled == true)
                    {
                        ctxm.Items.Add(item1.Clone());
                    }
                });
            }

            //・連続したセパレータの除去
            for (int i = ctxm.Items.Count - 1; i >= 1; i--)
            {
                if (ctxm.Items[i].Command == EpgCmdsEx.Separator && ctxm.Items[i - 1].Command == EpgCmdsEx.Separator)
                {
                    ctxm.Items.RemoveAt(i);
                }
            }
            //・先頭と最後のセパレータ除去
            if (ctxm.Items.Count != 0 && ctxm.Items[ctxm.Items.Count - 1].Command == EpgCmdsEx.Separator)
            {
                ctxm.Items.RemoveAt(ctxm.Items.Count - 1);
            }
            if (ctxm.Items.Count != 0 && ctxm.Items[0].Command == EpgCmdsEx.Separator)
            {
                ctxm.Items.RemoveAt(0);
            }

            return(ctxm);
        }
コード例 #3
0
        private CtxmData GetWorkCtxmDataView(CtxmCode code)
        {
            CtxmData ctxm    = new CtxmData(code);
            CtxmData ctxmDef = DefCtxmData[code];

            //存在するものをコピーしていく。編集メニューは常に個別設定が有効になる。
            if (Settings.Instance.MenuSet.IsManualAssign.Contains(code) == true || code == CtxmCode.EditChgMenu)
            {
                CtxmSetting ctxmEdited = Settings.Instance.MenuSet.ManualMenuItems.FindData(code);
                if (ctxmEdited == null)
                {
                    //編集サブメニューの場合は、初期無効アイテムを削除したデフォルトセッティングを返す。
                    return(code != CtxmCode.EditChgMenu ? ctxmDef.DeepClone() : GetDefaultChgSubMenuCtxmData());
                }

                ctxmEdited.Items.ForEach(setMenuString =>
                {
                    CtxmItemData item1 = ctxmDef.Items.Find(item => item.Header == setMenuString);
                    if (item1 != null)
                    {
                        ctxm.Items.Add(item1.DeepClone());
                    }
                });
            }
            else
            {
                ctxmDef.Items.ForEach(item1 =>
                {
                    if (MC.WorkCmdOptions[item1.Command].IsMenuEnabled == true)
                    {
                        ctxm.Items.Add(item1.DeepClone());
                    }
                });
            }

            //セパレータの整理
            SweepSeparators(ctxm);

            return(ctxm);
        }
コード例 #4
0
ファイル: CtxmData.cs プロジェクト: xceza7/EDCB
 public CtxmItemData(CtxmItemData data)
 {
     CopyData(data, this);
 }
コード例 #5
0
ファイル: CtxmData.cs プロジェクト: xceza7/EDCB
 protected static void CopyData(CtxmItemData src, CtxmItemData dest)
 {
     dest.Header = src.Header;
     dest.Name = src.Name;
     dest.ID = src.ID;
     dest.Command = src.Command;
     dest.Items = src.Items.Clone();
 }
コード例 #6
0
ファイル: CtxmData.cs プロジェクト: xceza7/EDCB
 //デフォルト定義用、ヘッダ以外コピー
 public CtxmItemData(string header, CtxmItemData reference)
 {
     CopyData(reference, this);
     Header = header;
 }
コード例 #7
0
        //コンテキストメニューの定義
        private void SetDefCtxmData()
        {
            //各画面のコンテキストメニュー。空にならないようとりあえず全部作っておく。
            DefCtxmData = new Dictionary <CtxmCode, CtxmData>();
            foreach (CtxmCode code in Enum.GetValues(typeof(CtxmCode)))
            {
                DefCtxmData.Add(code, new CtxmData(code));
            }

            //サブメニューなど設定のあるものは、情報固定のためいったん定義する。
            var cm_Separator = new CtxmItemData(EpgCmdsEx.SeparatorString, EpgCmdsEx.Separator);

            //予約追加サブメニュー 実行時、セパレータ以降にプリセットを展開する。
            var cm_AddMenu = new CtxmItemData("予約追加(仮)", EpgCmdsEx.AddMenu);

            cm_AddMenu.Items.Add(new CtxmItemData("ダイアログ表示(_X)...", EpgCmds.ShowDialog, 1));
            cm_AddMenu.Items.Add(new CtxmItemData(cm_Separator));
            cm_AddMenu.Items.Add(new CtxmItemData("デフォルト", EpgCmds.AddOnPreset, 0));//仮

            //予約変更サブメニューの各サブメニュー
            ////自動登録の有効/無効
            var cm_ChgKeyEnabledMenu = new CtxmItemData("自動登録有効(仮)", EpgCmdsEx.ChgKeyEnabledMenu);

            cm_ChgKeyEnabledMenu.Items.Add(new CtxmItemData("有効(_0)", EpgCmds.ChgKeyEnabled, 0));
            cm_ChgKeyEnabledMenu.Items.Add(new CtxmItemData("無効(_1)", EpgCmds.ChgKeyEnabled, 1));

            ////プリセット変更 実行時、サブメニューにプリセットを展開する。
            var cm_ChgOnPresetMenu = new CtxmItemData("プリセットへ変更(仮)", EpgCmdsEx.ChgOnPresetMenu);

            cm_ChgOnPresetMenu.Items.Add(new CtxmItemData("デフォルト(_0)", EpgCmds.ChgOnPreset, 0));//仮

            ////予約モード変更
            var cm_ChgResModeMenu = new CtxmItemData("予約モード変更(仮)", EpgCmdsEx.ChgResModeMenu);

            cm_ChgResModeMenu.Items.Add(new CtxmItemData("EPG予約(_E)", EpgCmds.ChgResMode, 0));
            cm_ChgResModeMenu.Items.Add(new CtxmItemData("プログラム予約(_P)", EpgCmds.ChgResMode, 1));
            cm_ChgResModeMenu.Items.Add(new CtxmItemData(cm_Separator));

            ////録画モード
            var cm_ChgRecmodeMenu = new CtxmItemData("録画モード(仮)", EpgCmdsEx.ChgRecmodeMenu);

            for (int i = 0; i <= 5; i++)
            {
                cm_ChgRecmodeMenu.Items.Add(new CtxmItemData(string.Format("{0}(_{1})"
                                                                           , CommonManager.ConvertRecModeText(i), i), EpgCmds.ChgRecmode, i));
            }

            ////優先度
            var cm_ChgPriorityMenu = new CtxmItemData("優先度(仮)", EpgCmdsEx.ChgPriorityMenu);

            for (int i = 1; i <= 5; i++)
            {
                cm_ChgPriorityMenu.Items.Add(new CtxmItemData(
                                                 CommonManager.ConvertPriorityText(i).Insert(1, string.Format("(_{0})", i)), EpgCmds.ChgPriority, i));
            }

            ////イベントリレー変更
            var cm_ChgRelayMenu = new CtxmItemData("イベントリレー追従(仮)", EpgCmdsEx.ChgRelayMenu);

            for (int i = 0; i <= 1; i++)
            {
                cm_ChgRelayMenu.Items.Add(new CtxmItemData(string.Format("{0}(_{1})"
                                                                         , CommonManager.ConvertYesNoText(i), i), EpgCmds.ChgRelay, i));
            }

            ////ぴったり変更
            var cm_ChgPittariMenu = new CtxmItemData("ぴったり録画(仮)", EpgCmdsEx.ChgPittariMenu);

            for (int i = 0; i <= 1; i++)
            {
                cm_ChgPittariMenu.Items.Add(new CtxmItemData(string.Format("{0}(_{1})"
                                                                           , CommonManager.ConvertYesNoText(i), i), EpgCmds.ChgPittari, i));
            }

            ////チューナー変更、実行時、セパレータ以降に一覧を展開する。
            var cm_ChgTunerMenu = new CtxmItemData("チューナー(仮)", EpgCmdsEx.ChgTunerMenu);

            cm_ChgTunerMenu.Items.Add(new CtxmItemData("自動(_0)", EpgCmds.ChgTuner, 0));
            cm_ChgTunerMenu.Items.Add(new CtxmItemData(cm_Separator));

            ////開始マージン
            var cm_ChgMarginStartMenu = new CtxmItemData("開始マージン(仮)", EpgCmdsEx.ChgMarginStartMenu);

            cm_ChgMarginStartMenu.Items.Add(new CtxmItemData("デフォルトに変更(_I)", EpgCmds.ChgMarginStart, 0));
            cm_ChgMarginStartMenu.Items.Add(new CtxmItemData("指定値へ変更(_S)...", EpgCmds.ChgMarginValue, 1));
            cm_ChgMarginStartMenu.Items.Add(new CtxmItemData(cm_Separator));
            int idx  = 0;
            var vals = new int[] { 1, 5, 30, 60 };

            foreach (int val in vals.Concat(vals.Select(val => - val)))
            {
                cm_ChgMarginStartMenu.Items.Add(new CtxmItemData(string.Format(
                                                                     "{0:増やす;減らす}(_{1}) : {0:+0;-0} 秒", val, idx++), EpgCmds.ChgMarginStart, val));
            }
            cm_ChgMarginStartMenu.Items.Insert(cm_ChgMarginStartMenu.Items.Count - vals.Length, new CtxmItemData(cm_Separator));

            ////終了マージン、複製してコマンドだけ差し替える。
            var cm_ChgMarginEndMenu = new CtxmItemData("終了マージン(仮)", cm_ChgMarginStartMenu);

            cm_ChgMarginEndMenu.Command = EpgCmdsEx.ChgMarginEndMenu;
            cm_ChgMarginEndMenu.Items   = cm_ChgMarginStartMenu.Items.DeepClone();
            cm_ChgMarginEndMenu.Items.ForEach(menu => { if (menu.Command == EpgCmds.ChgMarginStart)
                                                        {
                                                            menu.Command = EpgCmds.ChgMarginEnd;
                                                        }
                                              });
            cm_ChgMarginEndMenu.Items.ForEach(menu => { if (menu.Command == EpgCmds.ChgMarginValue)
                                                        {
                                                            menu.ID = 2;
                                                        }
                                              });

            ////録画後動作
            var cm_ChgRecEndMenu = new CtxmItemData("録画後動作(仮)", EpgCmdsEx.ChgRecEndMenu);

            cm_ChgRecEndMenu.Items.Add(new CtxmItemData("デフォルトに変更(_I)", EpgCmds.ChgRecEndMode, -1));
            cm_ChgRecEndMenu.Items.Add(new CtxmItemData(cm_Separator));
            for (int i = 0; i <= 3; i++)
            {
                cm_ChgRecEndMenu.Items.Add(new CtxmItemData(string.Format("{0}(_{1})"
                                                                          , CommonManager.ConvertRecEndModeText(i), i), EpgCmds.ChgRecEndMode, i));
            }
            cm_ChgRecEndMenu.Items.Add(new CtxmItemData(cm_Separator));
            for (int i = 0; i <= 1; i++)
            {
                cm_ChgRecEndMenu.Items.Add(new CtxmItemData(string.Format("復帰後再起動{0}(_{1})"
                                                                          , CommonManager.ConvertYesNoText(i), i + 4), EpgCmds.ChgRecEndReboot, i));
            }

            //予約変更サブメニュー登録
            var cm_ChangeMenu = new CtxmItemData("変更(仮)", EpgCmdsEx.ChgMenu);

            cm_ChangeMenu.Items.Add(new CtxmItemData("ダイアログ表示...", EpgCmds.ShowDialog));
            cm_ChangeMenu.Items.Add(new CtxmItemData(cm_Separator));
            cm_ChangeMenu.Items.Add(new CtxmItemData("自動登録有効", cm_ChgKeyEnabledMenu));
            cm_ChangeMenu.Items.Add(new CtxmItemData("プリセットへ変更", cm_ChgOnPresetMenu));
            cm_ChangeMenu.Items.Add(new CtxmItemData("予約モード変更", cm_ChgResModeMenu));
            cm_ChangeMenu.Items.Add(new CtxmItemData("まとめて録画設定を変更...", EpgCmds.ChgBulkRecSet));
            cm_ChangeMenu.Items.Add(new CtxmItemData("まとめてジャンル絞り込みを変更...", EpgCmds.ChgGenre));
            cm_ChangeMenu.Items.Add(new CtxmItemData(cm_Separator));
            cm_ChangeMenu.Items.Add(new CtxmItemData("録画モード", cm_ChgRecmodeMenu));
            cm_ChangeMenu.Items.Add(new CtxmItemData("優先度", cm_ChgPriorityMenu));
            cm_ChangeMenu.Items.Add(new CtxmItemData("イベントリレー追従", cm_ChgRelayMenu));
            cm_ChangeMenu.Items.Add(new CtxmItemData("ぴったり(?)録画", cm_ChgPittariMenu));
            cm_ChangeMenu.Items.Add(new CtxmItemData("チューナー", cm_ChgTunerMenu));
            cm_ChangeMenu.Items.Add(new CtxmItemData("開始マージン", cm_ChgMarginStartMenu));
            cm_ChangeMenu.Items.Add(new CtxmItemData("終了マージン", cm_ChgMarginEndMenu));
            cm_ChangeMenu.Items.Add(new CtxmItemData("録画後動作", cm_ChgRecEndMenu));

            CtxmData ctmd = DefCtxmData[CtxmCode.EditChgMenu];

            ctmd.Items = cm_ChangeMenu.Items;

            //アイテムの復元サブメニュー
            var cm_RestoreMenu = new CtxmItemData("アイテムの復元(仮)", EpgCmdsEx.RestoreMenu);

            cm_RestoreMenu.Items.Add(new CtxmItemData("履歴をクリア(_R)", EpgCmds.RestoreClear));

            //ビューモードサブメニュー
            var cm_ViewMenu = new CtxmItemData("表示モード(仮)", EpgCmdsEx.ViewMenu);

            for (int i = 0; i <= 2; i++)
            {
                cm_ViewMenu.Items.Add(new CtxmItemData(CommonManager.ConvertViewModeText(i)
                                                       + string.Format("(_{0})", i + 1), EpgCmds.ViewChgMode, i));
            }
            cm_ViewMenu.Items.Add(new CtxmItemData(cm_Separator));
            cm_ViewMenu.Items.Add(new CtxmItemData("表示設定(_S)...", EpgCmds.ViewChgSet));
            cm_ViewMenu.Items.Add(new CtxmItemData("一時的な変更をクリア(_R)", EpgCmds.ViewChgReSet));

            //共通メニューの追加用リスト
            var AddAppendTagMenus = new List <CtxmItemData>();

            AddAppendTagMenus.Add(new CtxmItemData("録画タグで予約情報検索", EpgCmds.InfoSearchRecTag));
            AddAppendTagMenus.Add(new CtxmItemData("録画タグをネットで検索", EpgCmds.SearchRecTag));
            AddAppendTagMenus.Add(new CtxmItemData("録画タグをコピー", EpgCmds.CopyRecTag));
            AddAppendTagMenus.Add(new CtxmItemData("録画タグに貼り付け", EpgCmds.SetRecTag));

            var AddAppendMenus = new List <CtxmItemData>();

            AddAppendMenus.Add(new CtxmItemData(cm_Separator));
            AddAppendMenus.Add(new CtxmItemData("番組名をコピー", EpgCmds.CopyTitle));
            AddAppendMenus.Add(new CtxmItemData("番組情報をコピー", EpgCmds.CopyContent));
            AddAppendMenus.Add(new CtxmItemData("番組名で予約情報検索", EpgCmds.InfoSearchTitle));
            AddAppendMenus.Add(new CtxmItemData("番組名をネットで検索", EpgCmds.SearchTitle));

            var AddMenuSetting = new List <CtxmItemData>();

            AddMenuSetting.Add(new CtxmItemData(cm_Separator));
            AddMenuSetting.Add(new CtxmItemData("右クリックメニューの設定...", EpgCmds.MenuSetting));


            //メニューアイテム:予約一覧
            ctmd = DefCtxmData[CtxmCode.ReserveView];
            ctmd.Items.Add(new CtxmItemData("予約←→無効", EpgCmds.ChgOnOff));
            ctmd.Items.Add(new CtxmItemData("変更(_C)", cm_ChangeMenu));
            ctmd.Items.Add(new CtxmItemData("コピーを追加", EpgCmds.CopyItem));
            ctmd.Items.Add(new CtxmItemData("削除", EpgCmds.Delete));
            ctmd.Items.Add(new CtxmItemData("アイテムの復元", cm_RestoreMenu));
            ctmd.Items.Add(new CtxmItemData("新規プログラム予約...", EpgCmds.ShowAddDialog));
            ctmd.Items.Add(new CtxmItemData("チューナー画面へジャンプ", EpgCmds.JumpTuner));
            ctmd.Items.Add(new CtxmItemData("番組表へジャンプ", EpgCmds.JumpTable));
            ctmd.Items.Add(new CtxmItemData("自動予約登録変更", EpgCmdsEx.ShowAutoAddDialogMenu));
            ctmd.Items.Add(new CtxmItemData("番組名でキーワード予約作成...", EpgCmds.ToAutoadd));
            ctmd.Items.Add(new CtxmItemData("追っかけ再生", EpgCmds.Play));
            ctmd.Items.Add(new CtxmItemData("録画フォルダを開く", EpgCmdsEx.OpenFolderMenu));
            ctmd.Items.Add(new CtxmItemData("録画ログを検索(_L)", EpgCmds.SearchRecLog));
            ctmd.Items.AddRange(AddAppendMenus.DeepClone());
            ctmd.Items.AddRange(AddAppendTagMenus.DeepClone());
            ctmd.Items.AddRange(AddMenuSetting.DeepClone());

            //メニューアイテム:使用予定チューナー
            ctmd = DefCtxmData[CtxmCode.TunerReserveView];
            ctmd.Items.Add(new CtxmItemData("予約←→無効", EpgCmds.ChgOnOff));
            ctmd.Items.Add(new CtxmItemData("変更(_C)", cm_ChangeMenu));
            ctmd.Items.Add(new CtxmItemData("コピーを追加", EpgCmds.CopyItem));
            ctmd.Items.Add(new CtxmItemData("削除", EpgCmds.Delete));
            ctmd.Items.Add(new CtxmItemData("アイテムの復元", cm_RestoreMenu));
            ctmd.Items.Add(new CtxmItemData("新規プログラム予約...", EpgCmds.ShowAddDialog));
            ctmd.Items.Add(new CtxmItemData("予約一覧へジャンプ", EpgCmds.JumpReserve));
            ctmd.Items.Add(new CtxmItemData("番組表へジャンプ", EpgCmds.JumpTable));
            ctmd.Items.Add(new CtxmItemData("自動予約登録変更", EpgCmdsEx.ShowAutoAddDialogMenu));
            ctmd.Items.Add(new CtxmItemData("番組名でキーワード予約作成...", EpgCmds.ToAutoadd));
            ctmd.Items.Add(new CtxmItemData("追っかけ再生", EpgCmds.Play));
            ctmd.Items.Add(new CtxmItemData("録画フォルダを開く", EpgCmdsEx.OpenFolderMenu));
            ctmd.Items.Add(new CtxmItemData("録画ログを検索(_L)", EpgCmds.SearchRecLog));
            ctmd.Items.AddRange(AddAppendMenus.DeepClone());
            ctmd.Items.AddRange(AddAppendTagMenus.DeepClone());
            ctmd.Items.AddRange(AddMenuSetting.DeepClone());

            //メニューアイテム:録画済み一覧
            ctmd = DefCtxmData[CtxmCode.RecInfoView];
            ctmd.Items.Add(new CtxmItemData("録画情報...", EpgCmds.ShowDialog));
            ctmd.Items.Add(new CtxmItemData("削除", EpgCmds.Delete));
            ctmd.Items.Add(new CtxmItemData("プロテクト←→解除", EpgCmds.ProtectChange));
            ctmd.Items.Add(new CtxmItemData("番組表へジャンプ", EpgCmds.JumpTable));
            ctmd.Items.Add(new CtxmItemData("自動予約登録変更", EpgCmdsEx.ShowAutoAddDialogMenu));
            ctmd.Items.Add(new CtxmItemData("番組名でキーワード予約作成...", EpgCmds.ToAutoadd));
            ctmd.Items.Add(new CtxmItemData("再生", EpgCmds.Play));
            ctmd.Items.Add(new CtxmItemData("録画フォルダを開く", EpgCmds.OpenFolder));//他の画面と違う
            ctmd.Items.Add(new CtxmItemData("録画ログを検索(_L)", EpgCmds.SearchRecLog));
            ctmd.Items.AddRange(AddAppendMenus.DeepClone());
            ctmd.Items.AddRange(AddMenuSetting.DeepClone());

            //メニューアイテム:キーワード自動予約登録
            ctmd = DefCtxmData[CtxmCode.EpgAutoAddView];
            ctmd.Items.Add(new CtxmItemData("予約一覧(_L)", EpgCmdsEx.ShowReserveDialogMenu));
            ctmd.Items.Add(new CtxmItemData("変更(_C)", cm_ChangeMenu));
            ctmd.Items.Add(new CtxmItemData("コピーを追加", EpgCmds.CopyItem));
            ctmd.Items.Add(new CtxmItemData("削除", EpgCmds.Delete));
            ctmd.Items.Add(new CtxmItemData("予約ごと削除", EpgCmds.Delete2));
            ctmd.Items.Add(new CtxmItemData("予約を自動登録に合わせる", EpgCmds.AdjustReserve));
            ctmd.Items.Add(new CtxmItemData("アイテムの復元", cm_RestoreMenu));
            ctmd.Items.Add(new CtxmItemData("次の予約(予約一覧)へジャンプ", EpgCmds.JumpReserve));
            ctmd.Items.Add(new CtxmItemData("次の予約(チューナー画面)へジャンプ", EpgCmds.JumpTuner));
            ctmd.Items.Add(new CtxmItemData("次の予約(番組表)へジャンプ", EpgCmds.JumpTable));
            ctmd.Items.Add(new CtxmItemData("新規自動予約登録...", EpgCmds.ShowAddDialog));
            ctmd.Items.Add(new CtxmItemData("録画フォルダを開く", EpgCmdsEx.OpenFolderMenu));
            ctmd.Items.Add(new CtxmItemData(cm_Separator));
            ctmd.Items.Add(new CtxmItemData("Andキーワードをコピー", EpgCmds.CopyTitle));
            ctmd.Items.Add(new CtxmItemData("Andキーワードで予約情報検索", EpgCmds.InfoSearchTitle));
            ctmd.Items.Add(new CtxmItemData("Andキーワードをネットで検索", EpgCmds.SearchTitle));
            ctmd.Items.Add(new CtxmItemData("Notキーワードをコピー", EpgCmds.CopyNotKey));
            ctmd.Items.Add(new CtxmItemData("Notキーワードに貼り付け", EpgCmds.SetNotKey));
            ctmd.Items.AddRange(AddAppendTagMenus.DeepClone());
            ctmd.Items.AddRange(AddMenuSetting.DeepClone());

            //メニューアイテム:プログラム自動予約登録
            ctmd = DefCtxmData[CtxmCode.ManualAutoAddView];
            ctmd.Items.Add(new CtxmItemData("予約一覧(_L)", EpgCmdsEx.ShowReserveDialogMenu));
            ctmd.Items.Add(new CtxmItemData("変更(_C)", cm_ChangeMenu));
            ctmd.Items.Add(new CtxmItemData("コピーを追加", EpgCmds.CopyItem));
            ctmd.Items.Add(new CtxmItemData("削除", EpgCmds.Delete));
            ctmd.Items.Add(new CtxmItemData("予約ごと削除", EpgCmds.Delete2));
            ctmd.Items.Add(new CtxmItemData("予約を自動登録に合わせる", EpgCmds.AdjustReserve));
            ctmd.Items.Add(new CtxmItemData("アイテムの復元", cm_RestoreMenu));
            ctmd.Items.Add(new CtxmItemData("次の予約(予約一覧)へジャンプ", EpgCmds.JumpReserve));
            ctmd.Items.Add(new CtxmItemData("次の予約(チューナー画面)へジャンプ", EpgCmds.JumpTuner));
            ctmd.Items.Add(new CtxmItemData("次の予約(番組表)へジャンプ", EpgCmds.JumpTable));
            ctmd.Items.Add(new CtxmItemData("番組名でキーワード予約作成...", EpgCmds.ToAutoadd));
            ctmd.Items.Add(new CtxmItemData("新規自動予約登録...", EpgCmds.ShowAddDialog));
            ctmd.Items.Add(new CtxmItemData("録画フォルダを開く", EpgCmdsEx.OpenFolderMenu));
            ctmd.Items.Add(new CtxmItemData(cm_Separator));
            ctmd.Items.Add(new CtxmItemData("番組名をコピー", EpgCmds.CopyTitle));
            ctmd.Items.Add(new CtxmItemData("番組名で予約情報検索", EpgCmds.InfoSearchTitle));
            ctmd.Items.Add(new CtxmItemData("番組名をネットで検索", EpgCmds.SearchTitle));
            ctmd.Items.AddRange(AddAppendTagMenus.DeepClone());
            ctmd.Items.AddRange(AddMenuSetting.DeepClone());

            //メニューアイテム:番組表
            ctmd = DefCtxmData[CtxmCode.EpgView];
            ctmd.Items.Add(new CtxmItemData("簡易予約/予約←→無効", EpgCmds.ChgOnOff));
            ctmd.Items.Add(new CtxmItemData("予約追加(_A)", cm_AddMenu));
            ctmd.Items.Add(new CtxmItemData("変更(_C)", cm_ChangeMenu));
            ctmd.Items.Add(new CtxmItemData("コピーを追加", EpgCmds.CopyItem));
            ctmd.Items.Add(new CtxmItemData("削除", EpgCmds.Delete));
            ctmd.Items.Add(new CtxmItemData("アイテムの復元", cm_RestoreMenu));
            ctmd.Items.Add(new CtxmItemData("予約一覧へジャンプ", EpgCmds.JumpReserve));
            ctmd.Items.Add(new CtxmItemData("録画済み一覧へジャンプ", EpgCmds.JumpRecInfo));
            ctmd.Items.Add(new CtxmItemData("チューナー画面へジャンプ", EpgCmds.JumpTuner));
            ctmd.Items.Add(new CtxmItemData("番組表(標準モード)へジャンプ", EpgCmds.JumpTable));
            ctmd.Items.Add(new CtxmItemData("自動予約登録変更", EpgCmdsEx.ShowAutoAddDialogMenu));
            ctmd.Items.Add(new CtxmItemData("番組名でキーワード予約作成...", EpgCmds.ToAutoadd));
            ctmd.Items.Add(new CtxmItemData("追っかけ再生", EpgCmds.Play, 0));
            ctmd.Items.Add(new CtxmItemData("録画済み再生", EpgCmds.Play, 1));
            ctmd.Items.Add(new CtxmItemData("録画フォルダを開く", EpgCmdsEx.OpenFolderMenu));
            ctmd.Items.Add(new CtxmItemData("録画ログを検索(_L)", EpgCmds.SearchRecLog));
            ctmd.Items.AddRange(AddAppendMenus.DeepClone());
            ctmd.Items.AddRange(AddAppendTagMenus.DeepClone());
            ctmd.Items.Add(new CtxmItemData(cm_Separator));
            ctmd.Items.Add(new CtxmItemData("表示モード(_V)", cm_ViewMenu));
            ctmd.Items.AddRange(AddMenuSetting.DeepClone());

            //メニューアイテム:検索ダイアログ、キーワード予約ダイアログ
            ctmd = DefCtxmData[CtxmCode.SearchWindow];
            ctmd.Items.Add(new CtxmItemData("簡易予約/予約←→無効", EpgCmds.ChgOnOff));
            ctmd.Items.Add(new CtxmItemData("予約追加(_A)", cm_AddMenu));
            ctmd.Items.Add(new CtxmItemData("変更(_C)", cm_ChangeMenu));
            ctmd.Items.Add(new CtxmItemData("コピーを追加", EpgCmds.CopyItem));
            ctmd.Items.Add(new CtxmItemData("削除", EpgCmds.Delete));
            ctmd.Items.Add(new CtxmItemData("アイテムの復元", cm_RestoreMenu));
            ctmd.Items.Add(new CtxmItemData("予約一覧へジャンプ", EpgCmds.JumpReserve));
            ctmd.Items.Add(new CtxmItemData("録画済み一覧へジャンプ", EpgCmds.JumpRecInfo));
            ctmd.Items.Add(new CtxmItemData("チューナー画面へジャンプ", EpgCmds.JumpTuner));
            ctmd.Items.Add(new CtxmItemData("番組表へジャンプ", EpgCmds.JumpTable));
            ctmd.Items.Add(new CtxmItemData("自動予約登録変更", EpgCmdsEx.ShowAutoAddDialogMenu));
            ctmd.Items.Add(new CtxmItemData("番組名で再検索", EpgCmds.ReSearch));
            ctmd.Items.Add(new CtxmItemData("番組名で再検索(別ウィンドウ)", EpgCmds.ReSearch2));
            ctmd.Items.Add(new CtxmItemData("追っかけ再生", EpgCmds.Play, 0));
            ctmd.Items.Add(new CtxmItemData("録画済み再生", EpgCmds.Play, 1));
            ctmd.Items.Add(new CtxmItemData("録画フォルダを開く", EpgCmdsEx.OpenFolderMenu));
            ctmd.Items.Add(new CtxmItemData("録画ログを検索(_L)", EpgCmds.SearchRecLog));
            ctmd.Items.Add(new CtxmItemData("ジャンル登録(_G)", EpgCmds.SetGenre));
            ctmd.Items.AddRange(AddAppendMenus.DeepClone());
            ctmd.Items.AddRange(AddAppendTagMenus.DeepClone());
            ctmd.Items.AddRange(AddMenuSetting.DeepClone());

            //メニューアイテム:予約情報検索(デフォルト・複数選択)
            ctmd = DefCtxmData[CtxmCode.InfoSearchWindow];
            ctmd.Items.Add(new CtxmItemData("一覧へジャンプ", EpgCmds.JumpListView));
            ctmd.Items.Add(new CtxmItemData("番組名/ANDキーワードで再検索", EpgCmds.ReSearch));
            ctmd.Items.Add(new CtxmItemData("番組名/ANDキーワードで再検索(別ウィンドウ)", EpgCmds.ReSearch2));
            ctmd.Items.Add(new CtxmItemData(cm_Separator));
            ctmd.Items.Add(new CtxmItemData("ダイアログ表示...", EpgCmds.ShowDialog));
            ctmd.Items.Add(new CtxmItemData("有効・無効/プロテクト切替え", EpgCmds.ChgOnOff));
            ctmd.Items.Add(new CtxmItemData("削除", EpgCmds.Delete));
            ctmd.Items.Add(new CtxmItemData("アイテムの復元", cm_RestoreMenu));
            ctmd.Items.Add(new CtxmItemData(cm_Separator));
            ctmd.Items.Add(new CtxmItemData("番組名/ANDキーワードをコピー", EpgCmds.CopyTitle));
            ctmd.Items.Add(new CtxmItemData("番組名/ANDキーワードをネットで検索", EpgCmds.SearchTitle));
            ctmd.Items.AddRange(AddAppendTagMenus.DeepClone());
            ctmd.Items.AddRange(AddMenuSetting.DeepClone());

            //メニューアイテム:予約情報検索(個別選択の追加メニュー)
            AddInfoSearchMenu = new CtxmData(CtxmCode.InfoSearchWindow);
            AddInfoSearchMenu.Items.AddRange(ctmd.Items.Take(3));
        }
コード例 #8
0
ファイル: MenuManager.cs プロジェクト: xceza7/EDCB
        //コンテキストメニューの定義
        private void SetDefCtxmData()
        {
            //各画面のコンテキストメニュー。空にならないようとりあえず全部作っておく。
            DefCtxmData = new Dictionary<CtxmCode, CtxmData>();
            foreach (CtxmCode code in Enum.GetValues(typeof(CtxmCode)))
            {
                DefCtxmData.Add(code, new CtxmData(code));
            }

            //標準操作のメニューアイテム。2回以上出てくるものは、情報固定のためいったん定義する。
            var cm_ChangeOnOff = new CtxmItemData("予約←→無効", EpgCmds.ChgOnOff);
            var cm_ShowAddDialog = new CtxmItemData("予約追加", EpgCmds.ShowAddDialog);//マニュアル予約など
            var cm_AddMenu = new CtxmItemData("予約追加", EpgCmdsEx.AddMenu);
            var cm_ChangeMenu = new CtxmItemData("変更", EpgCmdsEx.ChgMenu);
            var cm_ChangeAutoAddMenu = new CtxmItemData("自動予約変更", EpgCmdsEx.ShowAutoAddDialogMenu);
            var cm_Delete = new CtxmItemData("削除", EpgCmds.Delete);
            var cm_Delete2 = new CtxmItemData("予約ごと削除", EpgCmds.Delete2);
            var cm_Delete3 = new CtxmItemData("予約のみ削除", EpgCmds.Delete3);
            var cm_AdjustReserve = new CtxmItemData("予約を自動登録に合わせる", EpgCmds.AdjustReserve);
            var cm_JumpReserve = new CtxmItemData("予約一覧へジャンプ", EpgCmds.JumpReserve);
            var cm_JumpTuner = new CtxmItemData("チューナ画面へジャンプ", EpgCmds.JumpTuner);
            var cm_JumpTable = new CtxmItemData("番組表へジャンプ", EpgCmds.JumpTable);
            var cm_ToAutoadd = new CtxmItemData("自動予約登録", EpgCmds.ToAutoadd);
            var cm_Play = new CtxmItemData("追っかけ再生", EpgCmds.Play);
            var cm_OpenFolderMenu = new CtxmItemData("録画フォルダを開く", EpgCmdsEx.OpenFolderMenu);
            var cm_CopyTitle = new CtxmItemData("番組名をコピー", EpgCmds.CopyTitle);
            var cm_CopyContent = new CtxmItemData("番組情報をコピー", EpgCmds.CopyContent);
            var cm_SearchTitle = new CtxmItemData("番組名をネットで検索", EpgCmds.SearchTitle);
            var cm_SearchRecLog = new CtxmItemData("録画ログを検索", EpgCmds.SearchRecLog);

            var cm_ShowDialog = new CtxmItemData("ダイアログ表示", EpgCmds.ShowDialog);
            var cm_Separator = new CtxmItemData(EpgCmdsEx.SeparatorString, EpgCmdsEx.Separator);

            //予約追加サブメニュー 実行時、セパレータ以降にプリセットを展開する。
            cm_AddMenu.Items.Add(new CtxmItemData("ダイアログ表示", cm_ShowDialog));
            cm_AddMenu.Items.Add(new CtxmItemData(cm_Separator));
            cm_AddMenu.Items.Add(new CtxmItemData("デフォルト", EpgCmds.AddOnPreset, 0));//仮

            //予約変更サブメニューの各サブメニュー
            ////自動登録の有効/無効
            var cm_ChgKeyEnabledMenu = new CtxmItemData("自動登録有効", EpgCmdsEx.ChgKeyEnabledMenu);
            cm_ChgKeyEnabledMenu.Items.Add(new CtxmItemData("有効 (_0)", EpgCmds.ChgKeyEnabled, 0));
            cm_ChgKeyEnabledMenu.Items.Add(new CtxmItemData("無効 (_1)", EpgCmds.ChgKeyEnabled, 1));

            ////プリセット変更 実行時、サブメニューにプリセットを展開する。
            var cm_ChgOnPresetMenu = new CtxmItemData("プリセットへ変更", EpgCmdsEx.ChgOnPresetMenu);
            cm_ChgOnPresetMenu.Items.Add(new CtxmItemData("デフォルト", EpgCmds.ChgOnPreset, 0));//仮

            ////録画モード
            var cm_ChgRecmodeMenu = new CtxmItemData("録画モード", EpgCmdsEx.ChgRecmodeMenu);
            for (int i = 0; i <= 5; i++)
            {
                cm_ChgRecmodeMenu.Items.Add(new CtxmItemData(string.Format("{0} (_{1})"
                    , CommonManager.Instance.ConvertRecModeText((byte)i), i), EpgCmds.ChgRecmode, i));
            }

            ////優先度
            var cm_ChgPriorityMenu = new CtxmItemData("優先度", EpgCmdsEx.ChgPriorityMenu);
            for (int i = 1; i <= 5; i++)
            {
                cm_ChgPriorityMenu.Items.Add(new CtxmItemData(
                    CommonManager.Instance.PriorityDictionary[(byte)i].DisplayName.Insert(1, string.Format(" (_{0})", i)), EpgCmds.ChgPriority, i));
            }

            ////イベントリレー変更
            var cm_ChgRelayMenu = new CtxmItemData("イベントリレー追従", EpgCmdsEx.ChgRelayMenu);
            for (int i = 0; i <= 1; i++)
            {
                cm_ChgRelayMenu.Items.Add(new CtxmItemData(string.Format("{0} (_{1})"
                    , CommonManager.Instance.YesNoDictionary[(byte)i].DisplayName, i), EpgCmds.ChgRelay, i));
            }

            ////ぴったり変更
            var cm_ChgPittariMenu = new CtxmItemData("ぴったり(?)録画", EpgCmdsEx.ChgPittariMenu);
            for (int i = 0; i <= 1; i++)
            {
                cm_ChgPittariMenu.Items.Add(new CtxmItemData(string.Format("{0} (_{1})"
                    , CommonManager.Instance.YesNoDictionary[(byte)i].DisplayName, i), EpgCmds.ChgPittari, i));
            }

            ////チューナー変更、実行時、セパレータ以降に一覧を展開する。
            var cm_ChgTunerMenu = new CtxmItemData("チューナー", EpgCmdsEx.ChgTunerMenu);
            cm_ChgTunerMenu.Items.Add(new CtxmItemData("自動", EpgCmds.ChgTuner, 0));
            cm_ChgTunerMenu.Items.Add(new CtxmItemData(cm_Separator));

            ////開始マージン
            var cm_ChgMarginStartMenu = new CtxmItemData("開始マージン", EpgCmdsEx.ChgMarginStartMenu);
            cm_ChgMarginStartMenu.Items.Add(new CtxmItemData("デフォルトへ変更", EpgCmds.ChgMarginStart, 0));
            cm_ChgMarginStartMenu.Items.Add(new CtxmItemData("指定値へ変更", EpgCmds.ChgMarginStartValue));
            cm_ChgMarginStartMenu.Items.Add(new CtxmItemData(cm_Separator));
            new List<int> { -60, -30, -5, -1, 1, 5, 30, 60 }.ForEach(val => cm_ChgMarginStartMenu.Items.Add(
                new CtxmItemData(string.Format("{0:増やす : +0;減らす : -0} 秒", val), EpgCmds.ChgMarginStart, val)));

            ////終了マージン、複製してコマンドだけ差し替える。
            var cm_ChgMarginEndMenu = new CtxmItemData("終了マージン", cm_ChgMarginStartMenu);
            cm_ChgMarginEndMenu.Command = EpgCmdsEx.ChgMarginEndMenu;
            cm_ChgMarginEndMenu.Items = cm_ChgMarginStartMenu.Items.Clone();
            cm_ChgMarginEndMenu.Items.ForEach(menu => menu.Command = menu.Command == EpgCmds.ChgMarginStart ? EpgCmds.ChgMarginEnd : menu.Command);
            cm_ChgMarginEndMenu.Items.ForEach(menu => menu.Command = menu.Command == EpgCmds.ChgMarginStartValue ? EpgCmds.ChgMarginEndValue : menu.Command);

            //予約変更サブメニュー登録
            cm_ChangeMenu.Items.Add(new CtxmItemData("ダイアログ表示", cm_ShowDialog));
            cm_ChangeMenu.Items.Add(new CtxmItemData(cm_Separator));
            cm_ChangeMenu.Items.Add(new CtxmItemData("自動登録有効", cm_ChgKeyEnabledMenu));
            cm_ChangeMenu.Items.Add(new CtxmItemData("プリセットへ変更", cm_ChgOnPresetMenu));
            cm_ChangeMenu.Items.Add(new CtxmItemData("まとめて録画設定を変更", EpgCmds.ChgBulkRecSet));
            cm_ChangeMenu.Items.Add(new CtxmItemData("まとめてジャンル絞り込みを変更", EpgCmds.ChgGenre));
            cm_ChangeMenu.Items.Add(new CtxmItemData(cm_Separator));
            cm_ChangeMenu.Items.Add(new CtxmItemData("録画モード", cm_ChgRecmodeMenu));
            cm_ChangeMenu.Items.Add(new CtxmItemData("優先度", cm_ChgPriorityMenu));
            cm_ChangeMenu.Items.Add(new CtxmItemData("イベントリレー追従", cm_ChgRelayMenu));
            cm_ChangeMenu.Items.Add(new CtxmItemData("ぴったり(?)録画", cm_ChgPittariMenu));
            cm_ChangeMenu.Items.Add(new CtxmItemData("チューナー", cm_ChgTunerMenu));
            cm_ChangeMenu.Items.Add(new CtxmItemData("開始マージン", cm_ChgMarginStartMenu));
            cm_ChangeMenu.Items.Add(new CtxmItemData("終了マージン", cm_ChgMarginEndMenu));

            CtxmData ctmd = DefCtxmData[CtxmCode.EditChgMenu];
            ctmd.Items = cm_ChangeMenu.Items;

            //ビューモードサブメニュー
            var cm_ViewMenu = new CtxmItemData("表示モード", EpgCmdsEx.ViewMenu);
            cm_ViewMenu.Items.Add(new CtxmItemData("表示設定", EpgCmds.ViewChgSet));
            cm_ViewMenu.Items.Add(new CtxmItemData(cm_Separator));
            for (int i = 0; i <= 2; i++)
            {
                cm_ViewMenu.Items.Add(new CtxmItemData(CommonManager.Instance.ConvertViewModeText(i)
                    + string.Format(" (_{0})", i + 1), EpgCmds.ViewChgMode, i));
            }

            //共通メニューの追加用リスト
            var AddAppendMenus = new List<CtxmItemData>();
            AddAppendMenus.Add(new CtxmItemData(cm_Separator));
            AddAppendMenus.Add(new CtxmItemData("番組名をコピー", cm_CopyTitle));
            AddAppendMenus.Add(new CtxmItemData("番組情報をコピー", cm_CopyContent));
            AddAppendMenus.Add(new CtxmItemData("番組名をネットで検索", cm_SearchTitle));

            var AddMenuSetting = new List<CtxmItemData>();
            AddMenuSetting.Add(new CtxmItemData(cm_Separator));
            AddMenuSetting.Add(new CtxmItemData("右クリックメニューの設定...", EpgCmds.MenuSetting));

            //メニューアイテム:予約一覧
            ctmd = DefCtxmData[CtxmCode.ReserveView];
            ctmd.Items.Add(new CtxmItemData("予約←→無効", cm_ChangeOnOff));
            ctmd.Items.Add(new CtxmItemData("変更(_C)", cm_ChangeMenu));
            ctmd.Items.Add(new CtxmItemData("削除", cm_Delete));
            ctmd.Items.Add(new CtxmItemData("プログラム予約追加", cm_ShowAddDialog));
            ctmd.Items.Add(new CtxmItemData("自動予約変更", cm_ChangeAutoAddMenu));
            ctmd.Items.Add(new CtxmItemData("チューナ画面へジャンプ", cm_JumpTuner));
            ctmd.Items.Add(new CtxmItemData("番組表へジャンプ", cm_JumpTable));
            ctmd.Items.Add(new CtxmItemData("自動予約登録", cm_ToAutoadd));
            ctmd.Items.Add(new CtxmItemData("追っかけ再生", cm_Play));
            ctmd.Items.Add(new CtxmItemData("録画フォルダを開く(_F)", cm_OpenFolderMenu));
            ctmd.Items.Add(new CtxmItemData("録画ログを検索(_L)", cm_SearchRecLog));
            ctmd.Items.AddRange(AddAppendMenus.Clone());
            ctmd.Items.AddRange(AddMenuSetting.Clone());

            //メニューアイテム:使用予定チューナー
            ctmd = DefCtxmData[CtxmCode.TunerReserveView];
            ctmd.Items.Add(new CtxmItemData("予約←→無効", cm_ChangeOnOff));
            ctmd.Items.Add(new CtxmItemData("変更(_C)", cm_ChangeMenu));
            ctmd.Items.Add(new CtxmItemData("削除", cm_Delete));
            ctmd.Items.Add(new CtxmItemData("プログラム予約追加", cm_ShowAddDialog));
            ctmd.Items.Add(new CtxmItemData("自動予約変更", cm_ChangeAutoAddMenu));
            ctmd.Items.Add(new CtxmItemData("予約一覧へジャンプ", cm_JumpReserve));
            ctmd.Items.Add(new CtxmItemData("番組表へジャンプ", cm_JumpTable));
            ctmd.Items.Add(new CtxmItemData("自動予約登録", cm_ToAutoadd));
            ctmd.Items.Add(new CtxmItemData("追っかけ再生", cm_Play));
            ctmd.Items.Add(new CtxmItemData("録画フォルダを開く(_F)", cm_OpenFolderMenu));
            ctmd.Items.Add(new CtxmItemData("録画ログを検索(_L)", cm_SearchRecLog));
            ctmd.Items.AddRange(AddAppendMenus.Clone());
            ctmd.Items.AddRange(AddMenuSetting.Clone());

            //メニューアイテム:録画済み一覧
            ctmd = DefCtxmData[CtxmCode.RecInfoView];
            ctmd.Items.Add(new CtxmItemData("録画情報", cm_ShowDialog));
            ctmd.Items.Add(new CtxmItemData("削除", cm_Delete));
            ctmd.Items.Add(new CtxmItemData("プロテクト←→解除", EpgCmds.ProtectChange));
            ctmd.Items.Add(new CtxmItemData("自動予約変更", cm_ChangeAutoAddMenu));
            ctmd.Items.Add(new CtxmItemData("自動予約登録", cm_ToAutoadd));
            ctmd.Items.Add(new CtxmItemData("再生", cm_Play));
            ctmd.Items.Add(new CtxmItemData("録画フォルダを開く", EpgCmds.OpenFolder));//他の画面と違う
            ctmd.Items.Add(new CtxmItemData("録画ログを検索(_L)", cm_SearchRecLog));
            ctmd.Items.AddRange(AddAppendMenus.Clone());
            ctmd.Items.AddRange(AddMenuSetting.Clone());

            //メニューアイテム:EPG自動予約登録
            ctmd = DefCtxmData[CtxmCode.EpgAutoAddView];
            ctmd.Items.Add(new CtxmItemData("変更(_C)", cm_ChangeMenu));
            ctmd.Items.Add(new CtxmItemData("削除", cm_Delete));
            ctmd.Items.Add(new CtxmItemData("予約ごと削除", cm_Delete2));
            ctmd.Items.Add(new CtxmItemData("予約のみ削除", cm_Delete3));
            ctmd.Items.Add(new CtxmItemData("予約を自動登録に合わせる", cm_AdjustReserve));
            ctmd.Items.Add(new CtxmItemData("自動予約登録を追加", cm_ShowAddDialog));
            ctmd.Items.Add(new CtxmItemData("録画フォルダを開く(_F)", cm_OpenFolderMenu));
            ctmd.Items.Add(new CtxmItemData(cm_Separator));
            ctmd.Items.Add(new CtxmItemData("Andキーワードをコピー", cm_CopyTitle));
            ctmd.Items.Add(new CtxmItemData("Andキーワードをネットで検索", cm_SearchTitle));
            ctmd.Items.Add(new CtxmItemData("Notキーワードをコピー", EpgCmds.CopyNotKey));
            ctmd.Items.Add(new CtxmItemData("Notキーワードに貼り付け", EpgCmds.SetNotKey));
            ctmd.Items.AddRange(AddMenuSetting.Clone());

            //メニューアイテム:プログラム自動予約登録
            ctmd = DefCtxmData[CtxmCode.ManualAutoAddView];
            ctmd.Items.Add(new CtxmItemData("変更(_C)", cm_ChangeMenu));
            ctmd.Items.Add(new CtxmItemData("削除", cm_Delete));
            ctmd.Items.Add(new CtxmItemData("予約ごと削除", cm_Delete2));
            ctmd.Items.Add(new CtxmItemData("予約のみ削除", cm_Delete3));
            ctmd.Items.Add(new CtxmItemData("予約を自動登録に合わせる", cm_AdjustReserve));
            ctmd.Items.Add(new CtxmItemData("自動予約登録を追加", cm_ShowAddDialog));
            ctmd.Items.Add(new CtxmItemData("録画フォルダを開く(_F)", cm_OpenFolderMenu));
            ctmd.Items.Add(new CtxmItemData(cm_Separator));
            ctmd.Items.Add(new CtxmItemData("番組名をコピー", cm_CopyTitle));
            ctmd.Items.Add(new CtxmItemData("番組名をネットで検索", cm_SearchTitle));
            ctmd.Items.AddRange(AddMenuSetting.Clone());

            //メニューアイテム:番組表
            ctmd = DefCtxmData[CtxmCode.EpgView];
            ctmd.Items.Add(new CtxmItemData("簡易予約/予約←→無効", cm_ChangeOnOff));
            ctmd.Items.Add(new CtxmItemData("予約追加(_A)", cm_AddMenu));
            ctmd.Items.Add(new CtxmItemData("変更(_C)", cm_ChangeMenu));
            ctmd.Items.Add(new CtxmItemData("削除", cm_Delete));
            ctmd.Items.Add(new CtxmItemData("自動予約変更", cm_ChangeAutoAddMenu));
            ctmd.Items.Add(new CtxmItemData("予約一覧へジャンプ", cm_JumpReserve));
            ctmd.Items.Add(new CtxmItemData("チューナ画面へジャンプ", cm_JumpTuner));
            ctmd.Items.Add(new CtxmItemData("番組表(標準モード)へジャンプ", cm_JumpTable));
            ctmd.Items.Add(new CtxmItemData("自動予約登録", cm_ToAutoadd));
            ctmd.Items.Add(new CtxmItemData("追っかけ再生", cm_Play));
            ctmd.Items.Add(new CtxmItemData("録画フォルダを開く(_F)", cm_OpenFolderMenu));
            ctmd.Items.Add(new CtxmItemData("録画ログを検索(_L)", cm_SearchRecLog));
            ctmd.Items.AddRange(AddAppendMenus.Clone());
            ctmd.Items.Add(new CtxmItemData(cm_Separator));
            ctmd.Items.Add(new CtxmItemData("表示モード(_V)", cm_ViewMenu));
            ctmd.Items.AddRange(AddMenuSetting.Clone());

            //メニューアイテム:検索ダイアログ、EPG予約ダイアログ
            ctmd = DefCtxmData[CtxmCode.SearchWindow];
            ctmd.Items.Add(new CtxmItemData("簡易予約/予約←→無効", cm_ChangeOnOff));
            ctmd.Items.Add(new CtxmItemData("予約追加(_A)", cm_AddMenu));
            ctmd.Items.Add(new CtxmItemData("変更(_C)", cm_ChangeMenu));
            ctmd.Items.Add(new CtxmItemData("削除", cm_Delete));
            ctmd.Items.Add(new CtxmItemData("自動予約変更", cm_ChangeAutoAddMenu));
            ctmd.Items.Add(new CtxmItemData("予約一覧へジャンプ", cm_JumpReserve));
            ctmd.Items.Add(new CtxmItemData("チューナ画面へジャンプ", cm_JumpTuner));
            ctmd.Items.Add(new CtxmItemData("番組表へジャンプ", cm_JumpTable));
            ctmd.Items.Add(new CtxmItemData("番組名で再検索", EpgCmds.ReSearch));
            ctmd.Items.Add(new CtxmItemData("番組名で再検索(サブウィンドウ)", EpgCmds.ReSearch2));
            ctmd.Items.Add(new CtxmItemData("追っかけ再生", cm_Play));
            ctmd.Items.Add(new CtxmItemData("録画フォルダを開く(_F)", cm_OpenFolderMenu));
            ctmd.Items.Add(new CtxmItemData("録画ログを検索(_L)", cm_SearchRecLog));
            ctmd.Items.AddRange(AddAppendMenus.Clone());
            ctmd.Items.AddRange(AddMenuSetting.Clone());
        }
コード例 #9
0
ファイル: CtxmData.cs プロジェクト: nekopanda/EDCB
 //デフォルト定義用、ヘッダ以外コピー
 public CtxmItemData(string header, CtxmItemData reference)
 {
     CopyData(reference, this);
     Header = header;
 }
コード例 #10
0
ファイル: CtxmData.cs プロジェクト: nekopanda/EDCB
 public CtxmItemData(CtxmItemData data)
 {
     CopyData(data, this);
 }
コード例 #11
0
ファイル: CtxmData.cs プロジェクト: nekopanda/EDCB
 public static List <CtxmItemData> Clone(this IEnumerable <CtxmItemData> src)
 {
     return(CtxmItemData.Clone(src));
 }
コード例 #12
0
        //コンテキストメニューの定義
        private void SetDefCtxmData()
        {
            //各画面のコンテキストメニュー。空にならないようとりあえず全部作っておく。
            DefCtxmData = new Dictionary <CtxmCode, CtxmData>();
            foreach (CtxmCode code in Enum.GetValues(typeof(CtxmCode)))
            {
                DefCtxmData.Add(code, new CtxmData(code));
            }

            //サブメニューなど設定のあるものは、情報固定のためいったん定義する。
            var cm_Separator = new CtxmItemData(EpgCmdsEx.SeparatorString, EpgCmdsEx.Separator);

            //予約追加サブメニュー 実行時、セパレータ以降にプリセットを展開する。
            var cm_AddMenu = new CtxmItemData("予約追加", EpgCmdsEx.AddMenu);

            cm_AddMenu.Items.Add(new CtxmItemData("ダイアログ表示...", EpgCmds.ShowDialog));
            cm_AddMenu.Items.Add(new CtxmItemData(cm_Separator));
            cm_AddMenu.Items.Add(new CtxmItemData("デフォルト", EpgCmds.AddOnPreset, 0));//仮

            //予約変更サブメニューの各サブメニュー
            ////自動登録の有効/無効
            var cm_ChgKeyEnabledMenu = new CtxmItemData("自動登録有効", EpgCmdsEx.ChgKeyEnabledMenu);

            cm_ChgKeyEnabledMenu.Items.Add(new CtxmItemData("有効 (_0)", EpgCmds.ChgKeyEnabled, 0));
            cm_ChgKeyEnabledMenu.Items.Add(new CtxmItemData("無効 (_1)", EpgCmds.ChgKeyEnabled, 1));

            ////プリセット変更 実行時、サブメニューにプリセットを展開する。
            var cm_ChgOnPresetMenu = new CtxmItemData("プリセットへ変更", EpgCmdsEx.ChgOnPresetMenu);

            cm_ChgOnPresetMenu.Items.Add(new CtxmItemData("デフォルト", EpgCmds.ChgOnPreset, 0));//仮

            ////予約モード変更
            var cm_ChgResModeMenu = new CtxmItemData("予約モード変更", EpgCmdsEx.ChgResModeMenu);

            cm_ChgResModeMenu.Items.Add(new CtxmItemData("EPG予約 (_0)", EpgCmds.ChgResMode, 0));
            cm_ChgResModeMenu.Items.Add(new CtxmItemData("プログラム予約 (_1)", EpgCmds.ChgResMode, 1));

            ////録画モード
            var cm_ChgRecmodeMenu = new CtxmItemData("録画モード", EpgCmdsEx.ChgRecmodeMenu);

            for (int i = 0; i <= 5; i++)
            {
                cm_ChgRecmodeMenu.Items.Add(new CtxmItemData(string.Format("{0} (_{1})"
                                                                           , CommonManager.Instance.ConvertRecModeText((byte)i), i), EpgCmds.ChgRecmode, i));
            }

            ////優先度
            var cm_ChgPriorityMenu = new CtxmItemData("優先度", EpgCmdsEx.ChgPriorityMenu);

            for (int i = 1; i <= 5; i++)
            {
                cm_ChgPriorityMenu.Items.Add(new CtxmItemData(
                                                 CommonManager.Instance.PriorityDictionary[(byte)i].DisplayName.Insert(1, string.Format(" (_{0})", i)), EpgCmds.ChgPriority, i));
            }

            ////イベントリレー変更
            var cm_ChgRelayMenu = new CtxmItemData("イベントリレー追従", EpgCmdsEx.ChgRelayMenu);

            for (int i = 0; i <= 1; i++)
            {
                cm_ChgRelayMenu.Items.Add(new CtxmItemData(string.Format("{0} (_{1})"
                                                                         , CommonManager.Instance.YesNoDictionary[(byte)i].DisplayName, i), EpgCmds.ChgRelay, i));
            }

            ////ぴったり変更
            var cm_ChgPittariMenu = new CtxmItemData("ぴったり(?)録画", EpgCmdsEx.ChgPittariMenu);

            for (int i = 0; i <= 1; i++)
            {
                cm_ChgPittariMenu.Items.Add(new CtxmItemData(string.Format("{0} (_{1})"
                                                                           , CommonManager.Instance.YesNoDictionary[(byte)i].DisplayName, i), EpgCmds.ChgPittari, i));
            }

            ////チューナー変更、実行時、セパレータ以降に一覧を展開する。
            var cm_ChgTunerMenu = new CtxmItemData("チューナー", EpgCmdsEx.ChgTunerMenu);

            cm_ChgTunerMenu.Items.Add(new CtxmItemData("自動", EpgCmds.ChgTuner, 0));
            cm_ChgTunerMenu.Items.Add(new CtxmItemData(cm_Separator));

            ////開始マージン
            var cm_ChgMarginStartMenu = new CtxmItemData("開始マージン", EpgCmdsEx.ChgMarginStartMenu);

            cm_ChgMarginStartMenu.Items.Add(new CtxmItemData("デフォルトへ変更", EpgCmds.ChgMarginStart, 0));
            cm_ChgMarginStartMenu.Items.Add(new CtxmItemData("指定値へ変更...", EpgCmds.ChgMarginStartValue));
            cm_ChgMarginStartMenu.Items.Add(new CtxmItemData(cm_Separator));
            new List <int> {
                -60, -30, -5, -1, 1, 5, 30, 60
            }.ForEach(val => cm_ChgMarginStartMenu.Items.Add(
                          new CtxmItemData(string.Format("{0:増やす : +0;減らす : -0} 秒", val), EpgCmds.ChgMarginStart, val)));

            ////終了マージン、複製してコマンドだけ差し替える。
            var cm_ChgMarginEndMenu = new CtxmItemData("終了マージン", cm_ChgMarginStartMenu);

            cm_ChgMarginEndMenu.Command = EpgCmdsEx.ChgMarginEndMenu;
            cm_ChgMarginEndMenu.Items   = cm_ChgMarginStartMenu.Items.Clone();
            cm_ChgMarginEndMenu.Items.ForEach(menu => menu.Command = menu.Command == EpgCmds.ChgMarginStart ? EpgCmds.ChgMarginEnd : menu.Command);
            cm_ChgMarginEndMenu.Items.ForEach(menu => menu.Command = menu.Command == EpgCmds.ChgMarginStartValue ? EpgCmds.ChgMarginEndValue : menu.Command);

            //予約変更サブメニュー登録
            var cm_ChangeMenu = new CtxmItemData("変更", EpgCmdsEx.ChgMenu);

            cm_ChangeMenu.Items.Add(new CtxmItemData("ダイアログ表示...", EpgCmds.ShowDialog));
            cm_ChangeMenu.Items.Add(new CtxmItemData(cm_Separator));
            cm_ChangeMenu.Items.Add(new CtxmItemData("自動登録有効", cm_ChgKeyEnabledMenu));
            cm_ChangeMenu.Items.Add(new CtxmItemData("プリセットへ変更", cm_ChgOnPresetMenu));
            cm_ChangeMenu.Items.Add(new CtxmItemData("予約モード変更", cm_ChgResModeMenu));
            cm_ChangeMenu.Items.Add(new CtxmItemData("まとめて録画設定を変更...", EpgCmds.ChgBulkRecSet));
            cm_ChangeMenu.Items.Add(new CtxmItemData("まとめてジャンル絞り込みを変更...", EpgCmds.ChgGenre));
            cm_ChangeMenu.Items.Add(new CtxmItemData(cm_Separator));
            cm_ChangeMenu.Items.Add(new CtxmItemData("録画モード", cm_ChgRecmodeMenu));
            cm_ChangeMenu.Items.Add(new CtxmItemData("優先度", cm_ChgPriorityMenu));
            cm_ChangeMenu.Items.Add(new CtxmItemData("イベントリレー追従", cm_ChgRelayMenu));
            cm_ChangeMenu.Items.Add(new CtxmItemData("ぴったり(?)録画", cm_ChgPittariMenu));
            cm_ChangeMenu.Items.Add(new CtxmItemData("チューナー", cm_ChgTunerMenu));
            cm_ChangeMenu.Items.Add(new CtxmItemData("開始マージン", cm_ChgMarginStartMenu));
            cm_ChangeMenu.Items.Add(new CtxmItemData("終了マージン", cm_ChgMarginEndMenu));

            CtxmData ctmd = DefCtxmData[CtxmCode.EditChgMenu];

            ctmd.Items = cm_ChangeMenu.Items;

            //ビューモードサブメニュー
            var cm_ViewMenu = new CtxmItemData("表示モード", EpgCmdsEx.ViewMenu);

            cm_ViewMenu.Items.Add(new CtxmItemData("表示設定...", EpgCmds.ViewChgSet));
            cm_ViewMenu.Items.Add(new CtxmItemData(cm_Separator));
            for (int i = 0; i <= 2; i++)
            {
                cm_ViewMenu.Items.Add(new CtxmItemData(CommonManager.Instance.ConvertViewModeText(i)
                                                       + string.Format(" (_{0})", i + 1), EpgCmds.ViewChgMode, i));
            }

            //共通メニューの追加用リスト
            var AddAppendMenus = new List <CtxmItemData>();

            AddAppendMenus.Add(new CtxmItemData(cm_Separator));
            AddAppendMenus.Add(new CtxmItemData("番組名をコピー", EpgCmds.CopyTitle));
            AddAppendMenus.Add(new CtxmItemData("番組情報をコピー", EpgCmds.CopyContent));
            AddAppendMenus.Add(new CtxmItemData("番組名をネットで検索", EpgCmds.SearchTitle));

            var AddMenuSetting = new List <CtxmItemData>();

            AddMenuSetting.Add(new CtxmItemData(cm_Separator));
            AddMenuSetting.Add(new CtxmItemData("右クリックメニューの設定...", EpgCmds.MenuSetting));


            //メニューアイテム:予約一覧
            ctmd = DefCtxmData[CtxmCode.ReserveView];
            ctmd.Items.Add(new CtxmItemData("予約←→無効", EpgCmds.ChgOnOff));
            ctmd.Items.Add(new CtxmItemData("変更(_C)", cm_ChangeMenu));
            ctmd.Items.Add(new CtxmItemData("削除", EpgCmds.Delete));
            ctmd.Items.Add(new CtxmItemData("新規プログラム予約...", EpgCmds.ShowAddDialog));
            ctmd.Items.Add(new CtxmItemData("チューナ画面へジャンプ", EpgCmds.JumpTuner));
            ctmd.Items.Add(new CtxmItemData("番組表へジャンプ", EpgCmds.JumpTable));
            ctmd.Items.Add(new CtxmItemData("自動予約登録変更", EpgCmdsEx.ShowAutoAddDialogMenu));
            ctmd.Items.Add(new CtxmItemData("番組名でキーワード予約作成...", EpgCmds.ToAutoadd));
            ctmd.Items.Add(new CtxmItemData("追っかけ再生", EpgCmds.Play));
            ctmd.Items.Add(new CtxmItemData("録画フォルダを開く", EpgCmdsEx.OpenFolderMenu));
            ctmd.Items.AddRange(AddAppendMenus.Clone());
            ctmd.Items.AddRange(AddMenuSetting.Clone());

            //メニューアイテム:使用予定チューナー
            ctmd = DefCtxmData[CtxmCode.TunerReserveView];
            ctmd.Items.Add(new CtxmItemData("予約←→無効", EpgCmds.ChgOnOff));
            ctmd.Items.Add(new CtxmItemData("変更(_C)", cm_ChangeMenu));
            ctmd.Items.Add(new CtxmItemData("削除", EpgCmds.Delete));
            ctmd.Items.Add(new CtxmItemData("新規プログラム予約...", EpgCmds.ShowAddDialog));
            ctmd.Items.Add(new CtxmItemData("予約一覧へジャンプ", EpgCmds.JumpReserve));
            ctmd.Items.Add(new CtxmItemData("番組表へジャンプ", EpgCmds.JumpTable));
            ctmd.Items.Add(new CtxmItemData("自動予約登録変更", EpgCmdsEx.ShowAutoAddDialogMenu));
            ctmd.Items.Add(new CtxmItemData("番組名でキーワード予約作成...", EpgCmds.ToAutoadd));
            ctmd.Items.Add(new CtxmItemData("追っかけ再生", EpgCmds.Play));
            ctmd.Items.Add(new CtxmItemData("録画フォルダを開く", EpgCmdsEx.OpenFolderMenu));
            ctmd.Items.AddRange(AddAppendMenus.Clone());
            ctmd.Items.AddRange(AddMenuSetting.Clone());

            //メニューアイテム:録画済み一覧
            ctmd = DefCtxmData[CtxmCode.RecInfoView];
            ctmd.Items.Add(new CtxmItemData("録画情報...", EpgCmds.ShowDialog));
            ctmd.Items.Add(new CtxmItemData("削除", EpgCmds.Delete));
            ctmd.Items.Add(new CtxmItemData("プロテクト←→解除", EpgCmds.ProtectChange));
            ctmd.Items.Add(new CtxmItemData("自動予約登録変更", EpgCmdsEx.ShowAutoAddDialogMenu));
            ctmd.Items.Add(new CtxmItemData("番組名でキーワード予約作成...", EpgCmds.ToAutoadd));
            ctmd.Items.Add(new CtxmItemData("再生", EpgCmds.Play));
            ctmd.Items.Add(new CtxmItemData("録画フォルダを開く", EpgCmds.OpenFolder));//他の画面と違う
            ctmd.Items.AddRange(AddAppendMenus.Clone());
            ctmd.Items.AddRange(AddMenuSetting.Clone());

            //メニューアイテム:キーワード自動予約登録
            ctmd = DefCtxmData[CtxmCode.EpgAutoAddView];
            ctmd.Items.Add(new CtxmItemData("変更(_C)", cm_ChangeMenu));
            ctmd.Items.Add(new CtxmItemData("削除", EpgCmds.Delete));
            ctmd.Items.Add(new CtxmItemData("予約ごと削除", EpgCmds.Delete2));
            ctmd.Items.Add(new CtxmItemData("予約のみ削除", EpgCmds.Delete3));
            ctmd.Items.Add(new CtxmItemData("予約を自動登録に合わせる", EpgCmds.AdjustReserve));
            ctmd.Items.Add(new CtxmItemData("次の予約(予約一覧)へジャンプ", EpgCmds.JumpReserve));
            ctmd.Items.Add(new CtxmItemData("次の予約(チューナ画面)へジャンプ", EpgCmds.JumpTuner));
            ctmd.Items.Add(new CtxmItemData("次の予約(番組表)へジャンプ", EpgCmds.JumpTable));
            ctmd.Items.Add(new CtxmItemData("新規自動予約登録...", EpgCmds.ShowAddDialog));
            ctmd.Items.Add(new CtxmItemData("録画フォルダを開く", EpgCmdsEx.OpenFolderMenu));
            ctmd.Items.Add(new CtxmItemData(cm_Separator));
            ctmd.Items.Add(new CtxmItemData("Andキーワードをコピー", EpgCmds.CopyTitle));
            ctmd.Items.Add(new CtxmItemData("Andキーワードをネットで検索", EpgCmds.SearchTitle));
            ctmd.Items.Add(new CtxmItemData("Notキーワードをコピー", EpgCmds.CopyNotKey));
            ctmd.Items.Add(new CtxmItemData("Notキーワードに貼り付け", EpgCmds.SetNotKey));
            ctmd.Items.AddRange(AddMenuSetting.Clone());

            //メニューアイテム:プログラム自動予約登録
            ctmd = DefCtxmData[CtxmCode.ManualAutoAddView];
            ctmd.Items.Add(new CtxmItemData("変更(_C)", cm_ChangeMenu));
            ctmd.Items.Add(new CtxmItemData("削除", EpgCmds.Delete));
            ctmd.Items.Add(new CtxmItemData("予約ごと削除", EpgCmds.Delete2));
            ctmd.Items.Add(new CtxmItemData("予約のみ削除", EpgCmds.Delete3));
            ctmd.Items.Add(new CtxmItemData("予約を自動登録に合わせる", EpgCmds.AdjustReserve));
            ctmd.Items.Add(new CtxmItemData("次の予約(予約一覧)へジャンプ", EpgCmds.JumpReserve));
            ctmd.Items.Add(new CtxmItemData("次の予約(チューナ画面)へジャンプ", EpgCmds.JumpTuner));
            ctmd.Items.Add(new CtxmItemData("次の予約(番組表)へジャンプ", EpgCmds.JumpTable));
            ctmd.Items.Add(new CtxmItemData("番組名でキーワード予約作成...", EpgCmds.ToAutoadd));
            ctmd.Items.Add(new CtxmItemData("新規自動予約登録...", EpgCmds.ShowAddDialog));
            ctmd.Items.Add(new CtxmItemData("録画フォルダを開く", EpgCmdsEx.OpenFolderMenu));
            ctmd.Items.Add(new CtxmItemData(cm_Separator));
            ctmd.Items.Add(new CtxmItemData("番組名をコピー", EpgCmds.CopyTitle));
            ctmd.Items.Add(new CtxmItemData("番組名をネットで検索", EpgCmds.SearchTitle));
            ctmd.Items.AddRange(AddMenuSetting.Clone());

            //メニューアイテム:番組表
            ctmd = DefCtxmData[CtxmCode.EpgView];
            ctmd.Items.Add(new CtxmItemData("簡易予約/予約←→無効", EpgCmds.ChgOnOff));
            ctmd.Items.Add(new CtxmItemData("予約追加(_A)", cm_AddMenu));
            ctmd.Items.Add(new CtxmItemData("変更(_C)", cm_ChangeMenu));
            ctmd.Items.Add(new CtxmItemData("削除", EpgCmds.Delete));
            ctmd.Items.Add(new CtxmItemData("予約一覧へジャンプ", EpgCmds.JumpReserve));
            ctmd.Items.Add(new CtxmItemData("チューナ画面へジャンプ", EpgCmds.JumpTuner));
            ctmd.Items.Add(new CtxmItemData("番組表(標準モード)へジャンプ", EpgCmds.JumpTable));
            ctmd.Items.Add(new CtxmItemData("自動予約登録変更", EpgCmdsEx.ShowAutoAddDialogMenu));
            ctmd.Items.Add(new CtxmItemData("番組名でキーワード予約作成...", EpgCmds.ToAutoadd));
            ctmd.Items.Add(new CtxmItemData("追っかけ再生", EpgCmds.Play));
            ctmd.Items.Add(new CtxmItemData("録画フォルダを開く", EpgCmdsEx.OpenFolderMenu));
            ctmd.Items.AddRange(AddAppendMenus.Clone());
            ctmd.Items.Add(new CtxmItemData(cm_Separator));
            ctmd.Items.Add(new CtxmItemData("表示モード(_V)", cm_ViewMenu));
            ctmd.Items.AddRange(AddMenuSetting.Clone());

            //メニューアイテム:検索ダイアログ、EPG予約ダイアログ
            ctmd = DefCtxmData[CtxmCode.SearchWindow];
            ctmd.Items.Add(new CtxmItemData("簡易予約/予約←→無効", EpgCmds.ChgOnOff));
            ctmd.Items.Add(new CtxmItemData("予約追加(_A)", cm_AddMenu));
            ctmd.Items.Add(new CtxmItemData("変更(_C)", cm_ChangeMenu));
            ctmd.Items.Add(new CtxmItemData("削除", EpgCmds.Delete));
            ctmd.Items.Add(new CtxmItemData("予約一覧へジャンプ", EpgCmds.JumpReserve));
            ctmd.Items.Add(new CtxmItemData("チューナ画面へジャンプ", EpgCmds.JumpTuner));
            ctmd.Items.Add(new CtxmItemData("番組表へジャンプ", EpgCmds.JumpTable));
            ctmd.Items.Add(new CtxmItemData("自動予約登録変更", EpgCmdsEx.ShowAutoAddDialogMenu));
            ctmd.Items.Add(new CtxmItemData("番組名で再検索", EpgCmds.ReSearch));
            ctmd.Items.Add(new CtxmItemData("番組名で再検索(別ウィンドウ)", EpgCmds.ReSearch2));
            ctmd.Items.Add(new CtxmItemData("追っかけ再生", EpgCmds.Play));
            ctmd.Items.Add(new CtxmItemData("録画フォルダを開く", EpgCmdsEx.OpenFolderMenu));
            ctmd.Items.AddRange(AddAppendMenus.Clone());
            ctmd.Items.AddRange(AddMenuSetting.Clone());
        }
コード例 #13
0
ファイル: CtxmData.cs プロジェクト: tsukumijima/EDCB
 //デフォルト定義用、ヘッダ以外コピー
 public CtxmItemData(string header, CtxmItemData refdata) : this(refdata) { Header = header; }
コード例 #14
0
ファイル: CtxmData.cs プロジェクト: tsukumijima/EDCB
 public CtxmItemData(CtxmItemData data) : this(data.Header, data.Command, data.ID, data.Items)
 {
 }