//デフォルト内部データ → デフォルトセーブデータ用 public CtxmSetting(CtxmData data) { if (data == null) return; // ctxmCode = data.ctxmCode; Items = new List<string>(); data.Items.ForEach(item => Items.Add(item.Header)); }
private void CtxmGenerateContextMenu(CtxmData data, ContextMenu ctxm, CtxmCode code, bool shortcutTextforListType) { try { ctxm.Name = code.ToString(); CtxmConvertToMenuItems(data.Items, ctxm.Items, code, shortcutTextforListType); } catch (Exception ex) { MessageBox.Show(ex.Message + "\r\n" + ex.StackTrace); } }
public void CtxmGenerateContextMenuEpgView(ContextMenu ctxm) { var ctmd = new CtxmData(CtxmCode.EpgView, DefCtxmData[CtxmCode.EpgView].Items.Find(item => item.Command == EpgCmdsEx.ViewMenu).Items); CtxmGenerateContextMenu(ctmd, ctxm, CtxmCode.EpgView, false); foreach (var item in ctxm.Items.OfType <MenuItem>().Where(item => item.Tag == EpgCmds.ViewChgMode)) { item.IsChecked = ((item.CommandParameter as EpgCmdParam).ID == (int)ctxm.Tag); } }
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); }
//デフォルト内部データ → デフォルトセーブデータ用 public CtxmSetting(CtxmData data) { if (data == null) { return; } // ctxmCode = data.ctxmCode; Items = new List <string>(); data.Items.ForEach(item => Items.Add(item.Header)); }
private CtxmData GetDefaultChgSubMenuCtxmData() { var set = new CtxmData(CtxmCode.EditChgMenu); DefCtxmData[CtxmCode.EditChgMenu].Items.ForEach(item => { //初期無効データは入れない if (MC.DefCmdOptions[item.Command].IsMenuEnabled == true) { set.Items.Add(item.DeepClone()); } }); return(set); }
public void CtxmGenerateContextMenuInfoSearch(ContextMenu ctxm, CtxmCode code) { CtxmData data = WorkCtxmData[code].DeepClone(); if (code != CtxmCode.InfoSearchWindow) { //他画面用の簡易検索メニューを削除 data.Items.Remove(data.Items.FirstOrDefault(d => d.Command == EpgCmds.InfoSearchTitle)); //簡易検索用のメニューを先頭に追加 var ISData = WorkCtxmData[CtxmCode.InfoSearchWindow].Items.Select(d => d.Command).ToList(); data.Items.Insert(0, new CtxmItemData(EpgCmdsEx.SeparatorString, EpgCmdsEx.Separator)); data.Items.InsertRange(0, AddInfoSearchMenu.Items.Where(item => ISData.Contains(item.Command))); SweepSeparators(data); } CtxmGenerateContextMenu(data, ctxm, code, true); }
private void SweepSeparators(CtxmData ctxm) { //・連続したセパレータの除去 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); } }
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); }
//デフォルト内部データ → デフォルトセーブデータ用 public CtxmSetting(CtxmData data) { ctxmCode = data.ctxmCode; Items = data.Items.Select(item => item.Header).ToList(); }
protected static void CopyData(CtxmData src, CtxmData dest) { dest.ctxmCode = src.ctxmCode; dest.Items = src.Items.Clone(); }
//コンテキストメニューの定義 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)); }
private CtxmData GetWorkCtxmDataView(CtxmCode code) { CtxmData ctxm = new CtxmData(code); CtxmData ctxmDef = DefCtxmData[code]; //存在するものをコピーしていく。編集メニューは常に個別設定が有効になる。 if (Settings.Instance.MenuSet.IsManualMenu == 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; }
private CtxmData GetDefaultChgSubMenuCtxmData() { var set = new CtxmData(CtxmCode.EditChgMenu); DefCtxmData[CtxmCode.EditChgMenu].Items.ForEach(item => { //初期無効データは入れない if (MC.DefCmdOptions[item.Command].IsMenuEnabled == true) { set.Items.Add(item.Clone()); } }); return set; }
//コンテキストメニューの定義 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()); }