#ifndef FILEGROUPSANDMASKS_H
#define FILEGROUPSANDMASKS_H

#include <wx/dynarray.h>

struct FileGroups
{
    wxString groupName;
    wxArrayString fileMasks;
};

WX_DEFINE_ARRAY(FileGroups*, FileGroupsArray);

class FilesGroupsAndMasks
{
    public:
        FilesGroupsAndMasks();
        FilesGroupsAndMasks(FilesGroupsAndMasks& copy);
        ~FilesGroupsAndMasks();
		void CopyFrom(FilesGroupsAndMasks& copy); // copy ctor helper
        
        unsigned int AddGroup(const wxString& name); // returns the group index
		void RenameGroup(unsigned int group, const wxString& newName);
		void DeleteGroup(unsigned int group);
        void SetFileMasks(unsigned int group, const wxString& masks);
        
        void Clear();

        unsigned int GetGroupsCount() const;
        wxString GetGroupName(unsigned int group) const;
        wxString GetFileMasks(unsigned int group) const;
        bool MatchesMask(const wxString& ext, unsigned int group);

		void Save();
    private:
		void Load();
        FileGroupsArray m_Groups;
};


#endif // FILEGROUPSANDMASKS_H



syntax highlighted by Code2HTML, v. 0.9.1