private static void OnWeekendsVisibleChanged(DependencyObject sender, DependencyPropertyChangedEventArgs args) { MultiDayViewSettings settings = (MultiDayViewSettings)sender; settings.Invalidate(MultiDayViewUpdateFlag.All); settings.owner?.UpdateNavigationHeaderContent(); }
private static void OnVisibleDaysChanged(DependencyObject sender, DependencyPropertyChangedEventArgs args) { MultiDayViewSettings settings = (MultiDayViewSettings)sender; int value = (int)args.NewValue; if (value > DefaultMultiDayViewVisibleDays) { settings.ChangePropertyInternally(MultiDayViewSettings.VisibleDaysProperty, DefaultMultiDayViewVisibleDays); } else if (value < MinimumtMultiDayViewVisibleDays) { settings.ChangePropertyInternally(MultiDayViewSettings.VisibleDaysProperty, MinimumtMultiDayViewVisibleDays); } else { settings.Invalide(MultiDayViewUpdateFlag.All); settings.owner?.UpdateNavigationHeaderContent(); if (value < settings.NavigationStep) { settings.ChangePropertyInternally(MultiDayViewSettings.NavigationStepProperty, value); } } }
private static void OnAllDayAreaTextBorderStyleChanged(DependencyObject sender, DependencyPropertyChangedEventArgs args) { MultiDayViewSettings settings = (MultiDayViewSettings)sender; settings.allDayAreaTextBorderStyleCache = (Style)args.NewValue; MultiDayViewSettings.UpdateAllDayAreaText(settings); }
private static void UpdateAllDayAreaText(MultiDayViewSettings settings) { if (settings.IsOwnerLoaded) { CalendarModel model = settings.owner.Model; CalendarMultiDayViewModel multiDayViewModel = model.multiDayViewModel; settings.owner.timeRulerLayer.UpdateTimeRulerAllDayText(multiDayViewModel.allDayLabelLayout); } }
private static void OnMultiDayViewHeaderTextPropertyChanged(DependencyObject sender, DependencyPropertyChangedEventArgs args) { MultiDayViewSettings settings = (MultiDayViewSettings)sender; if (settings.IsOwnerLoaded) { settings.owner.UpdateNavigationHeaderContent(); } }
private static void OnTodaySlotStyleChanged(DependencyObject sender, DependencyPropertyChangedEventArgs args) { MultiDayViewSettings settings = (MultiDayViewSettings)sender; settings.todaySlotStyleCache = (Style)args.NewValue; if (settings.IsOwnerLoaded) { settings.owner.timeRulerLayer.UpdateTodaySlot(); } }
private static void OnCurrentTimeIndicatorStyleChanged(DependencyObject sender, DependencyPropertyChangedEventArgs args) { MultiDayViewSettings settings = (MultiDayViewSettings)sender; settings.currentTimeIndicatorStyleCache = (Style)args.NewValue; if (settings.IsOwnerLoaded) { settings.owner.timeRulerLayer.UpdateCurrentTimeIndicator(); } }
private static void OnTimeRulerItemStyleSelectorChanged(DependencyObject sender, DependencyPropertyChangedEventArgs args) { MultiDayViewSettings settings = (MultiDayViewSettings)sender; settings.timeRulerItemStyleSelectorCache = (CalendarTimeRulerItemStyleSelector)args.NewValue; if (settings.IsOwnerLoaded) { settings.owner.timeRulerLayer.UpdateUI(); } }
private static void OnSpecialSlotStyleSelectorPropertyChanged(DependencyObject sender, DependencyPropertyChangedEventArgs args) { MultiDayViewSettings settings = (MultiDayViewSettings)sender; settings.specialSlotStyleSelectorCache = (StyleSelector)args.NewValue; if (settings.IsOwnerLoaded) { settings.owner.timeRulerLayer.UpdateSlots(settings.SpecialSlotsSource); } }
private static void OnAllDayAreaBorderStyleChanged(DependencyObject sender, DependencyPropertyChangedEventArgs args) { MultiDayViewSettings settings = (MultiDayViewSettings)sender; settings.allDayAreaBorderStyleCache = (Style)args.NewValue; if (settings.IsOwnerLoaded) { CalendarModel model = settings.owner.Model; CalendarMultiDayViewModel multiDayViewModel = model.multiDayViewModel; settings.owner.timeRulerLayer.UpdateTimeRulerDecorations(multiDayViewModel, model.AreDayNamesVisible); } }
private static void OnDayEndTimeChanged(DependencyObject sender, DependencyPropertyChangedEventArgs args) { MultiDayViewSettings settings = (MultiDayViewSettings)sender; long ticks = ((TimeSpan)args.NewValue).Ticks; if (ticks < settings.DayStartTime.Ticks) { throw new ArgumentException("Start date must be earlier than end date."); } settings.UpdateDayRange(ticks, MultiDayViewSettings.DayEndTimeProperty); }
private static void OnNavigationStepPropertyChanged(DependencyObject sender, DependencyPropertyChangedEventArgs args) { MultiDayViewSettings settings = (MultiDayViewSettings)sender; int navigationStep = (int)args.NewValue; if (navigationStep > settings.VisibleDays) { settings.ChangePropertyInternally(MultiDayViewSettings.NavigationStepProperty, settings.VisibleDays); } else if (navigationStep < MinimumtMultiDayViewVisibleDays) { settings.ChangePropertyInternally(MultiDayViewSettings.NavigationStepProperty, MinimumtMultiDayViewVisibleDays); } }
private static void OnSpecialSlotsSourcePropertyChanged(DependencyObject sender, DependencyPropertyChangedEventArgs args) { MultiDayViewSettings settings = (MultiDayViewSettings)sender; INotifyCollectionChanged oldSlotsSource = args.OldValue as INotifyCollectionChanged; if (oldSlotsSource != null) { var listener = settings.specialSlotsCollectionChangedListener; if (listener != null) { listener.Detach(); listener = null; } int count = settings.specialSlotsPropertyChangedListeners != null ? settings.specialSlotsPropertyChangedListeners.Count : 0; while (count > 0) { var propertyListener = settings.specialSlotsPropertyChangedListeners[0]; settings.specialSlotsPropertyChangedListeners.RemoveAt(0); propertyListener.Detach(); propertyListener = null; count--; } } INotifyCollectionChanged newSlotsSource = args.NewValue as INotifyCollectionChanged; if (newSlotsSource != null) { settings.specialSlotsCollectionChangedListener = WeakCollectionChangedListener.CreateIfNecessary(newSlotsSource, settings); foreach (Slot slot in (IEnumerable <Slot>)newSlotsSource) { var listener = WeakPropertyChangedListener.CreateIfNecessary(slot, settings); if (listener != null) { settings.specialSlotsPropertyChangedListeners.Add(listener); } } } if (oldSlotsSource != null && settings.IsOwnerLoaded) { settings.owner.timeRulerLayer.RecycleSlots((IEnumerable <Slot>)oldSlotsSource); } settings.Invalide(MultiDayViewUpdateFlag.AffectsSpecialSlots); }
private static void OnShowCurrentTimeIndicator(DependencyObject sender, DependencyPropertyChangedEventArgs args) { MultiDayViewSettings settings = (MultiDayViewSettings)sender; bool shouldVisualizeCurrentTimeIndicator = (bool)args.NewValue; if (shouldVisualizeCurrentTimeIndicator) { settings.timer.Start(); } else { settings.timer.Stop(); } settings.Invalide(MultiDayViewUpdateFlag.AffectsCurrentTimeIndicator); }
private static void OnTimerRulerTickLengthChanged(DependencyObject sender, DependencyPropertyChangedEventArgs args) { MultiDayViewSettings settings = (MultiDayViewSettings)sender; long ticks = ((TimeSpan)args.NewValue).Ticks; if (ticks > TimeSpan.TicksPerDay) { settings.ChangePropertyInternally(MultiDayViewSettings.TimerRulerTickLengthProperty, TimeSpan.TicksPerDay); } else if (ticks < TimeSpan.FromMinutes(MinimumTicksPerDay).Ticks) { settings.ChangePropertyInternally(MultiDayViewSettings.TimerRulerTickLengthProperty, TimeSpan.FromMinutes(MinimumTicksPerDay)); } else { settings.Invalide(MultiDayViewUpdateFlag.AffectsTimeRuler); } }
private static void OnAllDayAreaTextChanged(DependencyObject sender, DependencyPropertyChangedEventArgs args) { MultiDayViewSettings settings = (MultiDayViewSettings)sender; MultiDayViewSettings.UpdateAllDayAreaText(settings); }
private static void OnTimelineBackgroundChanged(DependencyObject sender, DependencyPropertyChangedEventArgs args) { MultiDayViewSettings settings = (MultiDayViewSettings)sender; settings.UpdateAppearance(MultiDayViewUpdateFlag.AffectsTimeRuler); }
private static void OnAllDayAreaBackgroundChanged(DependencyObject sender, DependencyPropertyChangedEventArgs args) { MultiDayViewSettings settings = (MultiDayViewSettings)sender; settings.UpdateAppearance(MultiDayViewUpdateFlag.AffectsAppointments); }
private static void OnAllDayAppointmentSpacingChanged(DependencyObject sender, DependencyPropertyChangedEventArgs args) { MultiDayViewSettings settings = (MultiDayViewSettings)sender; settings.Invalide(MultiDayViewUpdateFlag.AffectsAppointments); }
private static void OnTimeLinesSpacingChanged(DependencyObject sender, DependencyPropertyChangedEventArgs args) { MultiDayViewSettings settings = (MultiDayViewSettings)sender; settings.Invalide(MultiDayViewUpdateFlag.AffectsTimeRuler); }