using System; using System.Collections.Generic; namespace Cryville.Crtr.Browsing { public interface IResourceManager { int Count { get; } IResourceMeta this[int index] { get; } Uri GetItemUri(int index); event Action ItemChanged; bool IsReadOnly { get; } bool ImportFrom(Uri uri); void RemoveAt(int index); void Activate(); void Deactivate(); void ApplyFilter(string filter); } public interface IResourceManager : IResourceManager where T : IResourceMeta { new T this[int index] { get; } } public interface IPathedResourceManager : IResourceManager where T : IResourceMeta { event Action DirectoryChanged; IList CurrentDirectory { get; } void ChangeDirectory(IEnumerable dir); bool IsDirectory(int index); void OpenDirectory(int index); void ReturnToDirectory(int index); } }