void FileTabs::InsertFiles(int ix, const Vector<String> &files, const Vector<Image> &img, bool make_active) { if (!files.GetCount()) return; bool useimg = img.GetCount() == files.GetCount(); for (int i = files.GetCount() - 1; i > 0; i--) { TabBar::InsertKey0(ix, files[i].ToWString(), GetFileName(files[i]), useimg ? img[i] : NativePathIcon(files[i]), GetFileGroup(files[i])); } InsertFile(ix, files[0].ToWString(), useimg ? img[0] : NativePathIcon(files[0]), make_active); }
NAMESPACE_UPP Image NativePathIconX(const char *path, bool folder, int flags) { if (!(flags & BROWSE_LINKS)) return NativePathIcon(path, folder); if (!IsSymLink(path)) return NativePathIcon(path, folder); String linkPath = GetSymLinkPath(path); if (linkPath.IsEmpty()) linkPath = path; static Image ilink = Null; if (!ilink) { ImageDraw drw(8, 8); Rect r(0, 0, 8, 8); drw.DrawRect(r, White()); drw.DrawImage(r, CtrlImg::smallright); drw.DrawLine(r.left, r.top, r.right-1, r.top, 1, GrayColor(100)); drw.DrawLine(r.right-1, r.top, r.right-1, r.bottom-1, 1, GrayColor(100)); drw.DrawLine(r.right-1, r.bottom-1, r.left, r.bottom-1, 1, GrayColor(100)); drw.DrawLine(r.left, r.bottom-1, r.left, r.top, 1, GrayColor(100)); ilink = drw; } Image img = NativePathIcon(linkPath, DirectoryExists(linkPath)); int w = img.GetWidth(); int h = img.GetHeight(); ImageDraw drw(w, h); drw.Alpha().DrawImage(0, 0, img, GrayColor(255)); drw.DrawImage(0, 0, img); int ypos = img.GetHeight() - ilink.GetHeight(); drw.Alpha().DrawImage(0, ypos, ilink, GrayColor(255)); drw.DrawImage(0, ypos, ilink); return drw; }
void FileTabs::Serialize(Stream& s) { TabBar::Serialize(s); if(s.IsLoading() && icons) { for(int i = 0; i < tabs.GetCount(); i++) tabs[i].img = NativePathIcon(String(tabs[i].value)); } }
void FileTabs::InsertFile(int ix, const WString &file, bool make_active) { InsertFile(ix, file, NativePathIcon(file.ToString()), make_active); }
void FileTabs::AddFile(const WString &file, bool make_active) { AddFile(file, NativePathIcon(file.ToString()), make_active); }
void FileTabs::RenameFile(const WString &from, const WString &to, Image icon) { int n = FindKey(from); if (n >= 0) Set(n, to, GetFileName(to.ToString()), IsNull(icon) ? NativePathIcon(to.ToString()) : icon); }