internal ShadowVisual(IShadowVisualParent parent, Monitor monitor, HeliosVisual visual, bool recurse = true) { // create a shadow object _parent = parent; Monitor = monitor; Visual = visual; Viewport = visual as IViewportExtent; if (IsViewport) { _parent.AddViewport(this); } // observe changes monitor.Moved += Monitor_Modified; monitor.Resized += Monitor_Modified; visual.Moved += Visual_Modified; visual.Resized += Visual_Modified; visual.Children.CollectionChanged += Visual_Children_CollectionChanged; // NOTE: changes in monitor children tracked in ShadowMonitor if (recurse) { Instrument(monitor, visual); } }
internal ShadowMonitor(IShadowVisualParent parent, Monitor monitor) : base(parent, monitor, monitor, false) { Key = CreateKey(monitor); // read settings for monitors matching this geometry LoadSettings(); }
private void Data_MonitorAdded(object sender, ShadowMonitorEventArgs e) { IShadowVisualParent parent = (IShadowVisualParent)sender; AddMonitor(e.Data, parent.GlobalOffset); }
private void Data_ViewportAdded(object sender, ShadowViewportEventArgs e) { IShadowVisualParent parent = (IShadowVisualParent)sender; AddViewport(e.Data, parent.GlobalOffset); }