Controls4U: Added button to open folder

git-svn-id: svn://ultimatepp.org/upp/trunk@13027 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
koldo 2019-04-23 07:15:45 +00:00
parent 8567814fc7
commit b2fdd9dee0
2 changed files with 17 additions and 2 deletions

View file

@ -46,7 +46,6 @@ void EditFileFolder::Init() {
EditString::AddFrame(butBrowseRight);
butBrowseRight.SetImage(Controls4UImg::Folder());
butBrowseRight <<= THISBACK(DoBrowse);
butBrowseRight.Tip(t_("Browse"));
butLeft.SetImage(CtrlImg::SmallLeft());
butLeft <<= THISBACK(DoLeft);
butRight.Tip(t_("Go to previous"));
@ -62,6 +61,7 @@ void EditFileFolder::Init() {
//EditString::AddFrame(butGo);
butGo.SetImage(CtrlImg::SmallRight());
butGo <<= THISBACK1(DoGo, true);
butFolder.Tip(t_("Open folder"));
isFile = isLoad = true;
histInd = -1;
pfs = 0;
@ -78,6 +78,15 @@ EditFileFolder::~EditFileFolder() {
if (pfs)
delete pfs;
}
EditFileFolder &EditFileFolder::UseOpenFolder(bool use) {
if (use) {
EditString::InsertFrame(0, butFolder);
} else {
EditString::RemoveFrame(butFolder);
}
return *this;
}
EditFileFolder &EditFileFolder::UseHistory(bool use) {
if (use) {
@ -222,12 +231,16 @@ EditFile::EditFile() {
isFile = true;
title = t_("Select file");
EditFileFolder();
butBrowseRight.Tip(t_("Browse file"));
butFolder.WhenAction = [&] {LaunchWebBrowser(GetFileFolder(String(GetData())));};
}
EditFolder::EditFolder() {
isFile = false;
title = t_("Select directory");
EditFileFolder();
butBrowseRight.Tip(t_("Browse folder"));
butFolder.WhenAction = [&] {LaunchWebBrowser(GetData());};
}
bool SetFirstChild(Ctrl *ctrl) {

View file

@ -26,7 +26,7 @@ typedef EditFileFolder CLASSNAME;
protected:
FrameLeft<Button> butBrowseLeft, butLeft, butRight, butUp;
FrameRight<Button> butBrowseRight;
FrameRight<Button> butBrowseRight, butFolder;
FrameRight<Button> butGo;
FileSel_ *pfs;
@ -64,11 +64,13 @@ public:
EditFileFolder &SelLoad(bool load) {isLoad = load; return *this;}
EditFileFolder &SetTitle(const char *_title) {title = _title; return *this;}
EditFileFolder &UseHistory(bool use);
EditFileFolder &UseOpenFolder(bool use);
EditFileFolder &UseUp(bool use);
EditFileFolder &UseBrowse(bool use);
EditFileFolder &UseBrowseRight(bool use);
EditFileFolder &UseGo(bool use);
EditFileFolder &BrowseRightWidth(int w) {butBrowseRight.Width(w); return *this;}
EditFileFolder &BrowseOpenFolderWidth(int w) {butFolder.Width(w); return *this;}
virtual void SetData(const Value& data);
Callback WhenChange;