Exemplo n.º 1
0
        private void RemoveLayerAt(int layerIndex)
        {
            Layer key = this.layers[layerIndex];

            if (this.activeLayer == key)
            {
                this.ActiveLayer = null;
            }
            this.BeginLayersListChange();
            VerticalImageStrip.Item item = this.layerToItemMap[key];
            item.Tag = null;
            base.RemoveItem(item);
            if (item.Image != null)
            {
                item.Image.Dispose();
            }
            key.Invalidated     -= new EventHandler <RectInt32InvalidatedEventArgs>(this.OnLayerInvalidated);
            key.PropertyChanged -= new PropertyEventHandler(this.OnLayerPropertyChanged);
            this.layers.RemoveAt(layerIndex);
            this.layerToItemMap.Remove(key);
            OurThumbnailProvider nukeMe = new OurThumbnailProvider(null, key);

            this.thumbnailManager.RemoveFromQueue(nukeMe);
            this.EndLayersListChange();
        }
Exemplo n.º 2
0
 private void OnThumbnailUpdated(object sender, ValueEventArgs <Tuple <IThumbnailProvider, ISurface <ColorBgra> > > e)
 {
     if (!base.IsDisposed)
     {
         VerticalImageStrip.Item item;
         OurThumbnailProvider    provider = (OurThumbnailProvider)e.Value.Item1;
         Layer key = provider.Layer;
         if (this.layerToItemMap.TryGetValue(key, out item))
         {
             Image image = item.Image;
             using (Bitmap bitmap = new Bitmap(e.Value.Item2.Width, e.Value.Item2.Height, e.Value.Item2.Stride, PixelFormat.Format32bppArgb, e.Value.Item2.Scan0))
             {
                 Image image2 = new Bitmap(bitmap);
                 item.Image = image2;
             }
             e.Value.Item2.Dispose();
             if (image != null)
             {
                 image.Dispose();
             }
             if (item.ImageOpacity.FinalValue != 1.0)
             {
                 item.ImageOpacity.AnimateValueTo(1.0, 0.5, AnimationTransitionType.SmoothStop);
             }
         }
     }
 }
Exemplo n.º 3
0
 private void RefreshLayerThumbnail(Layer layer)
 {
     if (this.layerToItemMap.ContainsKey(layer))
     {
         IRenderer <ColorBgra> layerRenderer = null;
         if ((layerRenderer == null) && (this.documentWorkspace != null))
         {
             int index = this.document.Layers.IndexOf(layer);
             if (index != -1)
             {
                 layerRenderer = this.documentWorkspace.DocumentCanvas.DocumentCanvasLayer.DocumentRenderer.CreateLayerRenderer(index);
             }
         }
         if (layerRenderer == null)
         {
             layerRenderer = new SolidColorRendererBgra(layer.Width, layer.Height, ColorBgra.TransparentBlack);
         }
         OurThumbnailProvider updateMe = new OurThumbnailProvider(layerRenderer, layer);
         this.thumbnailManager.QueueThumbnailUpdate(updateMe, base.ThumbEdgeLength, new ValueEventHandler <Tuple <IThumbnailProvider, ISurface <ColorBgra> > >(this.OnThumbnailUpdated));
     }
 }