void ListFileBrowser::SetButton(int i, const char * name, u64 filesize, bool dir, bool enable) { if(i < 0) return; else if(i >= (int) fileBtn.size()) { AddButton(); } if(!enable) { fileBtn[i]->SetVisible(false); fileBtn[i]->SetState(STATE_DISABLED); return; } if(fileBtnIcon[i]) delete fileBtnIcon[i]; fileBtnIcon[i] = GetIconFromExt((name ? strrchr(name, '.') : NULL), dir); fileBtnText[i]->SetText(name); fileBtnTextOver[i]->SetText(name); if(!dir) { char temp[100]; if(filesize > GBSIZE) sprintf(temp, "%0.2fGB", filesize/GBSIZE); else if(filesize > MBSIZE) sprintf(temp, "%0.2fMB", filesize/MBSIZE); else if(filesize > KBSIZE) sprintf(temp, "%0.2fKB", filesize/KBSIZE); else sprintf(temp, "%iB", (u32) filesize); fileSizeText[i]->SetText(temp); } else { fileSizeText[i]->SetText((char *) NULL); } fileBtn[i]->SetIcon(fileBtnIcon[i]); fileBtn[i]->SetVisible(true); if(fileBtn[i]->GetState() == STATE_DISABLED) fileBtn[i]->SetState(STATE_DEFAULT); }
void CustomFileBrowser::SetButton(int i, std::wstring name, bool dir, bool enable) { if(i < 0) return; else if(i >= (int) fileBtn.size()) { AddButton(); } if(!enable) { fileBtn[i]->SetVisible(false); fileBtn[i]->SetState(STATE_DISABLED); return; } if(fileBtnIcon[i]) delete fileBtnIcon[i]; std::string fileext = wstr2str(name); int index = fileext.find_last_of('.'); if(index > 0) { fileext = fileext.substr(index); if(!fileext.compare(".")) fileext = ""; } else fileext = ""; fileBtnIcon[i] = GetIconFromExt(fileext, dir); fileBtnIcon[i]->SetScale(0.667); fileBtnIcon[i]->SetPosition(-7, -7); fileBtnText[i]->SetText(name); fileBtnTextOver[i]->SetText(name); fileBtn[i]->SetIcon(fileBtnIcon[i]); fileBtn[i]->SetVisible(true); if(fileBtn[i]->GetState() == STATE_DISABLED) fileBtn[i]->SetState(STATE_DEFAULT); }