using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.ComponentModel; using System.Drawing; namespace LibEveryFileExplorer.Files { internal interface FileFormatBase { } public abstract class FileFormat : FileFormatBase where T : FileFormatIdentifier, new() { private static T _identifier = new T(); public static T Identifier { get { return _identifier; } } } public abstract class FileFormatIdentifier { protected const String Category_Animations = "Animations"; protected const String Category_Archives = "Archives"; protected const String Category_Audio = "Audio"; protected const String Category_Cells = "Cells"; protected const String Category_Fonts = "Fonts"; protected const String Category_Graphics = "Graphics"; protected const String Category_Layouts = "Layouts"; protected const String Category_Models = "Models"; protected const String Category_Palettes = "Palettes"; protected const String Category_Particles = "Particles"; protected const String Category_Roms = "Roms"; protected const String Category_Screens = "Screens"; protected const String Category_Shaders = "Shaders"; protected const String Category_Strings = "Strings"; protected const String Category_Textures = "Textures"; protected const String Category_Videos = "Videos"; public abstract String GetCategory(); public abstract String GetFileDescription(); public abstract String GetFileFilter(); public virtual Bitmap GetIcon() { return null; } public virtual Bitmap GetTreeIcon() { return null; } public abstract FormatMatch IsFormat(EFEFile File); } public enum FormatMatch { No, Extension, Content } }