String GetFileTitle(const char *fileName) { fileName = GetFileNamePos(fileName); const char *ext = GetFileExtPos(fileName); if(*ext) return String(fileName, (int)(ext - fileName)); else return fileName; }
void Ide::SwitchHeader() { int c = filelist.GetCursor(); if(c < 0) return; String currfile = filelist[c]; const char *ext = GetFileExtPos(currfile); if(!stricmp(ext, ".h") || !stricmp(ext, ".hpp") || !stricmp(ext, ".lay") || !stricmp(ext, ".iml")) { int f = filelist.Find(ForceExt(currfile, ".cpp")); if(f < 0) f = filelist.Find(ForceExt(currfile, ".c")); if(f < 0) f = filelist.Find(ForceExt(currfile, ".cc")); if(f >= 0) filelist.SetCursor(f); } }
void FileList::StartEdit() { if(GetCursor() < 0) return; Rect r = GetItemRect(GetCursor()); const File& cf = Get(GetCursor()); Font f = cf.font; int fcy = f.Info().GetHeight(); r.left += iconwidth + 2; r.top += (r.Height() - fcy - 4) / 2; r.bottom = r.top + fcy + 2; edit.SetRect(r); edit.SetFont(cf.font); edit = cf.name.ToWString(); edit.Show(); edit.SetFocus(); int pos = int(GetFileExtPos(cf.name) - ~cf.name); edit.SetSelection(0, pos); }
void WorkspaceWork::RenameFile() { if(!filelist.IsCursor()) return; String n = GetActiveFileName(); int i = filelist.GetCursor(); if(i < 0 || i >= fileindex.GetCount()) return; int ii = fileindex[i]; WithEditStringLayout<TopWindow> dlg; CtrlLayoutOKCancel(dlg, "Rename file"); dlg.lbl = "New name"; dlg.text <<= n; dlg.Open(); dlg.text.SetFocus(); int l = int(GetFileNamePos(n) - ~n); int h = int(GetFileExtPos(n) - ~n); if(l >= h) l = 0; dlg.text.SetSelection(l, h); if(dlg.Run() != IDOK) return; n = ~dlg.text; String spath = GetActiveFilePath(); String dpath = SourcePath(GetActivePackage(), n); if(!filelist[i].isdir && GetFileLength(spath) >= 0) { if(!::MoveFile(spath, dpath)) { Exclamation("Failed to rename the file.&&" + GetErrorMessage(GetLastError())); return; } } FileRename(dpath); int s = filelist.GetSbPos(); (String &)actual.file[ii] = n; SaveLoadPackage(false); filelist.SetSbPos(s); filelist.SetCursor(i); if(GetFileExt(spath) == ".iml" || GetFileExt(dpath) == ".iml") SyncWorkspace(); }
String ForceExt(const char* fn, const char* ext) { return NativePath(String(fn, GetFileExtPos(fn))) + ext; }
String GetFileExt(const char *fileName) { return GetFileExtPos(fileName); }
bool HasFileExt(const char *path) { return *GetFileExtPos(path); }