Ejemplo n.º 1
0
        public void RemoveLayer(SlideViewLayer layer)
        {
            Debug.Assert(layer != null);

            if (!this.myLayers.Contains(layer))
            {
                throw new ArgumentException("this object does not contain the given layer", "layer");
            }

            int index = this.myLayers.IndexOf(layer);

            layer.Invalidated -= new SlideViewer.RegionEventHandler(this.HandleInvalidatedLayer);
            this.myLayers.RemoveAt(index);
            if (this.myLayerDirtyRegions[index] != null)
            {
                ((System.Drawing.Region) this.myLayerDirtyRegions[index]).Dispose();
            }
            this.myLayerDirtyRegions.RemoveAt(index);
            layer.Detach();

            // Redraw everything since we expect remove events to be rare, anyway.
            this.MarkForFullRedraw();
            this.myLayerPanel.Invalidate();
            if (this.LayerRemoved != null)
            {
                this.LayerRemoved(this, EventArgs.Empty);
            }
        }
Ejemplo n.º 2
0
 /// <remarks>Disposes of layers as it removes them (unlike RemoveLayer)</remarks>
 public void ClearLayers()
 {
     while (this.LayerCount > 0)
     {
         SlideViewLayer layer = this.GetLayer(0);
         this.RemoveLayer(0);
         layer.Dispose();
     }
 }
Ejemplo n.º 3
0
        protected virtual void HandleInvalidatedLayer(object sender, SlideViewer.RegionEventArgs args)
        {
            SlideViewLayer layer = (SlideViewLayer)sender;
            int            index = this.myLayers.IndexOf(layer);

            Debug.Assert(index >= 0 && index < this.myLayerDirtyRegions.Count);
            Debug.Assert(this.myLayerDirtyRegions.Count == this.myLayers.Count);
            if (this.myLayerDirtyRegions[index] == null)
            {
                this.myLayerDirtyRegions[index] = new Region();
            }
            try {
                ((System.Drawing.Region) this.myLayerDirtyRegions[index]).Union(args.Region);
            }
            catch (Exception ex) {
                Debug.WriteLine(ex.ToString());
            }
        }
Ejemplo n.º 4
0
        public void AddLayer(SlideViewLayer layer)
        {
            if (layer == null)
            {
                throw new ArgumentNullException("layer", "layer may not be null");
            }

            this.myLayers.Add(layer);
            this.myLayerDirtyRegions.Add(new Region(new RectangleF(0, 0, 1, 1)));
            // Redraw everything since we expect add events to be rare, anyway.
            this.MarkForFullRedraw();
            this.myLayerPanel.Invalidate();
            layer.Attach(this);
            layer.Invalidated += new SlideViewer.RegionEventHandler(this.HandleInvalidatedLayer);

            if (this.LayerAdded != null)
            {
                this.LayerAdded(this, EventArgs.Empty);
            }
        }
Ejemplo n.º 5
0
 public bool HasLayer(SlideViewLayer layer)
 {
     return(this.myLayers.Contains(layer));
 }