// // // // // $Revision$ // using System; using System.Windows; using System.Windows.Controls; namespace ICSharpCode.Core.Presentation { /// /// A Separator that is invisible when it is excluded by a condition. /// sealed class ConditionalSeparator : Separator, IStatusUpdate { readonly Codon codon; readonly object caller; public ConditionalSeparator(Codon codon, object caller, bool inToolbar) { this.codon = codon; this.caller = caller; if (inToolbar) { SetResourceReference(FrameworkElement.StyleProperty, ToolBar.SeparatorStyleKey); } } public void UpdateText() { } public void UpdateStatus() { if (codon.GetFailedAction(caller) == ConditionFailedAction.Exclude) this.Visibility = Visibility.Collapsed; else this.Visibility = Visibility.Visible; } } }