Logo Search packages:      
Sourcecode: f-spot version File versions

IBrowsableCollection.cs

/*
 * FSpot.IBrowsableCollection.cs
 * 
 * Author(s):
 *    Larry Ewing <lewing@novell.com>
 *
 * This is free software. See COPYING for details.
 */

namespace FSpot
{
      public delegate void IBrowsableCollectionChangedHandler (IBrowsableCollection collection);
      public delegate void IBrowsableCollectionItemsChangedHandler (IBrowsableCollection collection, BrowsableEventArgs args);

      public class BrowsableEventArgs : System.EventArgs {
            int [] items;

            public int [] Items {
                  get { return items; }
            }

            public BrowsableEventArgs (int num)
            {
                  items = new int [] { num };
            }

            public BrowsableEventArgs (int [] items)
            {
                  this.items = items;
            }
      }

      public interface IBrowsableCollection {
            // FIXME this should really be ToArray ()
            IBrowsableItem [] Items {
                  get;
            }
            
            int IndexOf (IBrowsableItem item);

            IBrowsableItem this [int index] {
                  get;
            }

            int Count {
                  get;
            }

            bool Contains (IBrowsableItem item);

            // FIXME the Changed event needs to pass along information
            // about the items that actually changed if possible.  For things like
            // TrayView everything has to be redrawn when a single
            // item has been added or removed which adds too much
            // overhead.
            event IBrowsableCollectionChangedHandler Changed;
            event IBrowsableCollectionItemsChangedHandler ItemsChanged;

            void MarkChanged (int index);
      }
}


Generated by  Doxygen 1.6.0   Back to index