Пример #1
0
        private void OnThumbnailRendered(object sender, EventArgs <Pair <IThumbnailProvider, Surface> > e)
        {
            RenderArgs        ra = null;
            DocumentWorkspace dw = (DocumentWorkspace)e.Data.First;

            Size desiredSize = new Size(e.Data.Second.Width + 2, e.Data.Second.Height + 2);

            if (this.thumbs.ContainsKey(dw))
            {
                ra = this.thumbs[dw];

                if (ra.Size != desiredSize)
                {
                    ra.Dispose();
                    ra = null;

                    this.thumbs.Remove(dw);
                }
            }

            if (ra == null)
            {
                Surface surface = new Surface(desiredSize);
                ra = new RenderArgs(surface);
                this.thumbs.Add(dw, ra);
            }

            ra.Surface.Clear(ColorBgra.Black);
            ra.Surface.CopySurface(e.Data.Second, new Point(1, 1));
            e.Data.Second.Dispose();

            OnThumbnailUpdated(dw);
        }
Пример #2
0
        protected override void Dispose(bool disposing)
        {
            if (disposing)
            {
                while (this.documents.Count > 0)
                {
                    RemoveDocumentWorkspace(this.documents[this.documents.Count - 1]);
                }

                if (this.thumbnailManager != null)
                {
                    this.thumbnailManager.Dispose();
                    this.thumbnailManager = null;
                }

                foreach (DocumentWorkspace dw in this.thumbs.Keys)
                {
                    RenderArgs ra = this.thumbs[dw];
                    ra.Dispose();
                }

                this.thumbs.Clear();
                this.thumbs = null;
            }

            base.Dispose(disposing);
        }
Пример #3
0
        public void RemoveDocumentWorkspace(DocumentWorkspace removeMe)
        {
            removeMe.CompositionUpdated -= Workspace_CompositionUpdated;

            if (this.selectedDocument == removeMe)
            {
                this.selectedDocument = null;
            }

            removeMe.DocumentChanging -= Workspace_DocumentChanging;
            removeMe.DocumentChanged  -= Workspace_DocumentChanged;

            if (removeMe.Document != null)
            {
                removeMe.Document.DirtyChanged -= Document_DirtyChanged;
            }

            this.documents.Remove(removeMe);
            this.thumbnailManager.RemoveFromQueue(removeMe);

            ImageStrip.Item docButton = this.dw2button[removeMe];
            this.RemoveItem(docButton);
            this.dw2button.Remove(removeMe);
            this.documentButtons.Remove(docButton);

            if (this.thumbs.ContainsKey(removeMe))
            {
                RenderArgs thumbRA = this.thumbs[removeMe];
                Surface    surface = thumbRA.Surface;
                thumbRA.Dispose();
                this.thumbs.Remove(removeMe);
                surface.Dispose();
            }

            OnDocumentListChanged();
        }