//private void tsmiResetTo_DropDownOpening(object sender, EventArgs e) //{ // UpdateGroupsSubmenuContents(); //} public void UpdateResetSubmenuContents() { if (MyClock == null) { return; } tsmiResetTo.Items.Clear(); var tsmiUpdateToCurrent = new MenuItem() { Header = "Update to current" }; tsmiUpdateToCurrent.Click += TsmiUpdateToCurrent_Click; MenuItem tsmiUpdateToCustom = null; // TODO: optimize: if ( ((from c in MyClocks where c.Model is TimerData select c).Count() == MyClocks.Count()) || ((from c in MyClocks where c.Model is AlarmData select c).Count() == MyClocks.Count()) ) { tsmiUpdateToCustom = new MenuItem() { Header = "Update to custom..." }; tsmiUpdateToCustom.Click += TsmiUpdateToCustom_Click; } else { // TODO: [VISUAL] maybe just italic grayed out instead of removed from the menu? } var tsmiLockResetToValue = new MenuItem() { Header = "Lock reset-to value" }; tsmiLockResetToValue.IsCheckable = true; tsmiLockResetToValue.Icon = new Image() { Source = new BitmapImage(new Uri("pack://application:,,,/Resources/Oxygen-Icons.org-Oxygen-Actions-system-lock-screen.ico", UriKind.RelativeOrAbsolute)), Width = 16 }; tsmiLockResetToValue.IsChecked = MyClock.ResetToValueLocked; tsmiLockResetToValue.Click += TsmiLockResetToValue_Click; tsmiResetTo.Items.Add(tsmiUpdateToCurrent); if (tsmiUpdateToCustom != null) { tsmiResetTo.Items.Add(tsmiUpdateToCustom); } tsmiResetTo.Items.Add(tsmiLockResetToValue); }
public void UpdateContents() { if (MyClocks.Count != 0) { MainWindow = MyClock.Model.MyDataFile.MainWindow; } if (MyClocks.Count >= 1) { tss4.Visibility = System.Windows.Visibility.Visible; tsmiDelete.Visibility = System.Windows.Visibility.Visible; tsmiRename.Visibility = System.Windows.Visibility.Visible; tsmiActivateDezactivate.Visibility = System.Windows.Visibility.Visible; tsmiSetCurrentValue.Visibility = System.Windows.Visibility.Visible; if (MyClock.Model is TimerData td) { tsmiActivateDezactivate.Header = td.Running ? "_Stop" : "_Start"; tsmiActivateDezactivate.Icon = td.Running ? iconStop : iconStart; } else { var ad = MyClock.Model as AlarmData; tsmiActivateDezactivate.Header = ad.Enabled ? "_Deactivate" : "_Activate"; tsmiActivateDezactivate.Icon = ad.Enabled ? iconStop : iconStart; } Bitmap ico = GetFirstClockIcon(); tsmiSaveIconAs.IsEnabled = ico != null; } else { tss4.Visibility = System.Windows.Visibility.Collapsed; tsmiDelete.Visibility = System.Windows.Visibility.Collapsed; tsmiRename.Visibility = System.Windows.Visibility.Collapsed; tsmiActivateDezactivate.Visibility = System.Windows.Visibility.Collapsed; tsmiSetCurrentValue.Visibility = System.Windows.Visibility.Collapsed; } //bool AlwaysShowID = true; //foreach (ClockM c in MyClocks) //{ // if (c.Style == ClockM.ClockStyles.ShowIcon) // { // AlwaysShowID = false; // break; // } //} //tsmiAlwaysShowID.Checked = AlwaysShowID; if (MyClocks.Count == 0) { tsmiResetTo.Header = $"Reset to..."; } else { object rtv = MyClock.ResetToValue; foreach (ClockVM c in MyClocks) { if (c.ResetToValue != rtv) { rtv = 0; } } tsmiResetTo.Header = $"Reset to {rtv}"; tsmiConvertToOtherType.Icon = MyClocks.First().ClockType == ClockVM.ClockTypes.Alarm ? new Image() { Source = new BitmapImage(new Uri("pack://application:,,,/Resources/timers filter (clepsidra 4).ico", UriKind.RelativeOrAbsolute)), Width = 16 } : new Image() { Source = new BitmapImage(new Uri("pack://application:,,,/Resources/alarms filter (alarm clock 5).ico", UriKind.RelativeOrAbsolute)), Width = 16 }; tsmiConvertToOtherType.Header = MyClocks.First().ClockType == ClockVM.ClockTypes.Alarm ? "C_onvert to Timer" : "C_onvert to Alarm"; } UpdateTimeOutBackgroundItems(); UpdateGroupsSubmenuContents(); UpdateResetSubmenuContents(); }