コード例 #1
0
 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();
 }
コード例 #2
0
        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);
        }
コード例 #3
0
 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();
     }
 }
コード例 #4
0
        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;
            }
        }
コード例 #5
0
 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;
             }
         }
     }
 }
コード例 #6
0
        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);
        }
コード例 #7
0
 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();
 }