1 class FileTabs : public TabBar 2 { 3 private: 4 bool stackedicons:1; 5 bool greyedicons:1; 6 Color filecolor; 7 Color extcolor; 8 protected: 9 // Overload this to change grouping behaviour 10 virtual String GetFileGroup(const String &file); 11 // Overload this to change stacking behaviour 12 virtual String GetStackId(const Tab &a); 13 virtual hash_t GetStackSortOrder(const Tab &a); 14 15 virtual void ComposeTab(Tab& tab, const Font &font, Color ink, int style); 16 virtual void ComposeStackedTab(Tab& tab, const Tab& stacked_tab, const Font &font, Color ink, int style); 17 virtual Size GetStackedSize(const Tab &t); 18 19 public: 20 FileTabs(); 21 22 virtual void Serialize(Stream& s); 23 24 void AddFile(const WString &file, bool make_active = true); 25 void AddFile(const WString &file, Image img, bool make_active = true); 26 void InsertFile(int ix, const WString &file, bool make_active = true); 27 void InsertFile(int ix, const WString &file, Image img, bool make_active = true); 28 29 void AddFiles(const Vector<String> &files, bool make_active = true); 30 void AddFiles(const Vector<String> &files, const Vector<Image> &img, bool make_active = true); 31 void InsertFiles(int ix, const Vector<String> &files, bool make_active = true); 32 void InsertFiles(int ix, const Vector<String> &files, const Vector<Image> &img, bool make_active = true); 33 34 void RenameFile(const WString &from, const WString &to, Image icon = Null); 35 FileColor(Color c)36 FileTabs& FileColor(Color c) { filecolor = c; Refresh(); return *this; } ExtColor(Color c)37 FileTabs& ExtColor(Color c) { extcolor = c; Refresh(); return *this; } 38 39 FileTabs& FileIcons(bool normal = true, bool stacked = true, bool stacked_greyedout = true); 40 41 Vector<String> GetFiles() const; 42 FileTabs& operator<<(const FileTabs &src); 43 }; 44