Esempio n. 1
0
            protected override void TearDownMember(int index, object member, object tag)
            {
                // FIXME: Invalidate the affected portion, but don't render immediately in case more than one sheet is affected.
                SheetRenderer renderer = ((SheetRenderer)tag);

                if (tag != null)
                {
                    this.m_Parent.m_SheetRenderers.Remove(renderer);
                    renderer.Dispose();
                }
            }
Esempio n. 2
0
            protected override object SetUpMember(int index, object member)
            {
                //If a set of slide transitions occur rapidly, we can see a case where the enqueued SetUpMember call is
                //invoked *after* dispose, causing bogus sheets to appear.  Explicitly short-circuiting this call
                //after a dispose seems to be the fix:
                if (m_Disposed)
                {
                    return(null);
                }

                // FIXME: Invalidate the affected region, but don't render immediately in case more than one sheet is affected.

                SheetRenderer renderer = SheetRenderer.ForSheet(this.m_Parent.m_SlideDisplay, (SheetModel)member);

                ///Invalidate the renderer...might not be a great idea for the reason above.
                renderer.SlideDisplay.Invalidate();

                // Ignore sheets for which a renderer isn't available.
                if (renderer == null)
                {
                    return(null);
                }

                // Add the renderer to the list.
                using (Synchronizer.Lock(this.m_Parent)) { // Prevent m_SheetRenderers list from changing.
                    if (index >= 0 && index < this.m_Parent.m_SheetRenderers.Count)
                    {
                        this.m_Parent.m_SheetRenderers.Insert(index, renderer);
                    }
                    else
                    {
                        this.m_Parent.m_SheetRenderers.Add(renderer);
                    }
                }

                return(renderer);
            }
Esempio n. 3
0
 public void Remove(SheetRenderer value)
 {
     List.Remove(value);
 }
Esempio n. 4
0
 public void Insert(int index, SheetRenderer value)
 {
     List.Insert(index, value);
 }
Esempio n. 5
0
 public int IndexOf(SheetRenderer value)
 {
     return List.IndexOf(value);
 }
Esempio n. 6
0
 public bool Contains(SheetRenderer value)
 {
     return List.Contains(value);
 }
Esempio n. 7
0
 public int Add(SheetRenderer value)
 {
     return List.Add(value);
 }
Esempio n. 8
0
 public bool Contains(SheetRenderer value)
 {
     return(List.Contains(value));
 }
Esempio n. 9
0
 public void Remove(SheetRenderer value)
 {
     List.Remove(value);
 }
Esempio n. 10
0
 public void Insert(int index, SheetRenderer value)
 {
     List.Insert(index, value);
 }
Esempio n. 11
0
 public int IndexOf(SheetRenderer value)
 {
     return(List.IndexOf(value));
 }
Esempio n. 12
0
 public int Add(SheetRenderer value)
 {
     return(List.Add(value));
 }