public void RemoveDocumentWorkspace(DocumentWorkspace removeMe) { this.VerifyThreadAccess(); removeMe.CompositionUpdated -= new EventHandler(this.OnWorkspaceCompositionUpdated); if (this.selectedDocument == removeMe) { this.selectedDocument = null; } removeMe.DocumentChanging -= new ValueEventHandler <Document>(this.OnWorkspaceDocumentChanging); removeMe.DocumentChanged -= new EventHandler(this.OnWorkspaceDocumentChanged); if (removeMe.Document != null) { removeMe.Document.DirtyChanged -= new EventHandler(this.OnDocumentDirtyChanged); } this.documents.Remove(removeMe); this.thumbnailManager.RemoveFromQueue(removeMe); ImageStrip.Item item = this.dw2button[removeMe]; base.RemoveItem(item); this.dw2button.Remove(removeMe); this.documentButtons.Remove(item); if (this.thumbs.ContainsKey(removeMe)) { RenderArgs args = this.thumbs[removeMe]; ISurface <ColorBgra> iSurface = args.ISurface; args.Dispose(); this.thumbs.Remove(removeMe); iSurface.Dispose(); } this.OnDocumentListChanged(); }
protected override void OnItemMoved(ImageStripItemMovedEventArgs e) { DocumentWorkspace workspace = this.documents[e.OldIndex]; ImageStrip.Item item = this.documentButtons[e.OldIndex]; this.documents.RemoveAt(e.OldIndex); this.documents.Insert(e.NewIndex, workspace); this.documentButtons.RemoveAt(e.OldIndex); this.documentButtons.Insert(e.NewIndex, item); base.OnItemMoved(e); }
private void OnThumbnailUpdated(DocumentWorkspace dw) { if (this.dw2button.ContainsKey(dw)) { ImageStrip.Item item = this.dw2button[dw]; RenderArgs args = this.thumbs[dw]; item.Image = args.Bitmap; if (item.ImageOpacity.FinalValue != 1.0) { item.ImageOpacity.AnimateValueTo(1.0, 0.5, AnimationTransitionType.SmoothStop); } item.Update(); } }
private void OnWorkspaceDocumentChanged(object sender, EventArgs e) { this.VerifyThreadAccess(); DocumentWorkspace workspace = (DocumentWorkspace)sender; ImageStrip.Item item = this.dw2button[workspace]; if (workspace.Document != null) { item.IsDirty = workspace.Document.Dirty; workspace.Document.DirtyChanged += new EventHandler(this.OnDocumentDirtyChanged); } else { item.IsDirty = false; } }
private void OnDocumentDirtyChanged(object sender, EventArgs e) { if (!base.CheckAccess()) { base.BeginInvoke(() => this.OnDocumentDirtyChanged(sender, e)); } else { this.VerifyThreadAccess(); for (int i = 0; i < this.documents.Count; i++) { if (sender == this.documents[i].Document) { ImageStrip.Item item = this.dw2button[this.documents[i]]; item.IsDirty = ((Document)sender).Dirty; } } } }
protected override void OnItemClicked(ImageStrip.Item item, ImageStrip.ItemPart itemPart, MouseButtons mouseButtons) { DocumentWorkspace tag = item.Tag as DocumentWorkspace; if (tag != null) { if (mouseButtons == MouseButtons.Middle) { this.OnDocumentClicked(tag, DocumentClickAction.Close); } else { switch (itemPart) { case ImageStrip.ItemPart.None: break; case ImageStrip.ItemPart.Image: if (mouseButtons != MouseButtons.Left) { if (mouseButtons == MouseButtons.Right) { } break; } this.SelectedDocument = tag; break; case ImageStrip.ItemPart.CloseButton: if (mouseButtons == MouseButtons.Left) { this.OnDocumentClicked(tag, DocumentClickAction.Close); } break; default: throw new InvalidEnumArgumentException(); } } } base.OnItemClicked(item, itemPart, mouseButtons); }
public void AddDocumentWorkspace(DocumentWorkspace addMe) { this.VerifyThreadAccess(); this.documents.Add(addMe); ImageStrip.Item newItem = new ImageStrip.Item(null) { Image = null, ImageOpacity = { Value = 0.0 }, Tag = addMe }; base.AddItem(newItem); this.documentButtons.Add(newItem); addMe.CompositionUpdated += new EventHandler(this.OnWorkspaceCompositionUpdated); this.dw2button.Add(addMe, newItem); if (addMe.Document != null) { this.QueueThumbnailUpdate(addMe); newItem.IsDirty = addMe.Document.Dirty; addMe.Document.DirtyChanged += new EventHandler(this.OnDocumentDirtyChanged); } addMe.DocumentChanging += new ValueEventHandler <Document>(this.OnWorkspaceDocumentChanging); addMe.DocumentChanged += new EventHandler(this.OnWorkspaceDocumentChanged); this.OnDocumentListChanged(); }