Controls4U: Update

git-svn-id: svn://ultimatepp.org/upp/trunk@9149 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
koldo 2015-11-06 15:34:56 +00:00
parent 8dd31fb007
commit 4754825414
5 changed files with 90 additions and 20 deletions

View file

@ -39,20 +39,28 @@ void PaintArc(Painter &w, double cx, double cy, double R, double ang0, double an
}
void EditFileFolder::Init() {
EditString::AddFrame(butBrowse);
WhenEnter = THISBACK1(DoGo, true);
butBrowse.SetImage(Controls4UImg::Folder());
butBrowse <<= THISBACK(DoBrowse);
//EditString::AddFrame(butBrowseLeft);
butBrowseLeft.SetImage(Controls4UImg::Folder());
butBrowseLeft.Tip(t_("Browse"));
butBrowseLeft <<= THISBACK(DoBrowse);
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"));
butLeft.Enable(false);
butRight.SetImage(CtrlImg::SmallRight());
butRight <<= THISBACK(DoRight);
butRight.Tip(t_("Go to next"));
butRight.Enable(false);
butUp.SetImage(CtrlImg::DirUp());//SmallUp());
butUp <<= THISBACK(DoUp);
butUp.Tip(t_("Directory up"));
butUp.Enable(false);
EditString::AddFrame(butGo);
//EditString::AddFrame(butGo);
butGo.SetImage(CtrlImg::SmallRight());
butGo <<= THISBACK1(DoGo, true);
isFile = isLoad = true;
@ -98,14 +106,36 @@ EditFileFolder &EditFileFolder::UseUp(bool use) {
EditFileFolder &EditFileFolder::UseBrowse(bool use) {
if (use) {
if (EditString::FindFrame(butBrowse) == -1) {
if (EditString::FindFrame(butBrowseLeft) == -1) {
int pos = EditString::FindFrame(butUp);
if (pos == -1)
pos = EditString::FindFrame(butRight);
EditString::InsertFrame(pos+1, butBrowse);
EditString::InsertFrame(pos+1, butBrowseLeft);
}
} else
EditString::RemoveFrame(butBrowse);
EditString::RemoveFrame(butBrowseLeft);
return *this;
}
EditFileFolder &EditFileFolder::UseBrowseRight(bool use) {
if (use) {
if (EditString::FindFrame(butBrowseRight) == -1) {
int pos = EditString::FindFrame(butRight);
EditString::InsertFrame(pos+1, butBrowseRight);
}
} else
EditString::RemoveFrame(butBrowseRight);
return *this;
}
EditFileFolder &EditFileFolder::UseGo(bool use) {
if (use) {
if (EditString::FindFrame(butGo) == -1) {
int pos = EditString::FindFrame(butRight);
EditString::InsertFrame(pos+1, butGo);
}
} else
EditString::RemoveFrame(butGo);
return *this;
}

View file

@ -23,7 +23,8 @@ public:
class EditFileFolder : public EditString {
typedef EditFileFolder CLASSNAME;
protected:
FrameLeft<Button> butBrowse, butLeft, butRight, butUp;
FrameLeft<Button> butBrowseLeft, butLeft, butRight, butUp;
FrameRight<Button> butBrowseRight;
FrameRight<Button> butGo;
FileSel_ *pfs;
@ -62,8 +63,9 @@ public:
EditFileFolder &UseHistory(bool use);
EditFileFolder &UseUp(bool use);
EditFileFolder &UseBrowse(bool use);
EditFileFolder &UseBrowseRight(bool use);
EditFileFolder &UseGo(bool use);
virtual void SetData(const Value& data);
//virtual void LostFocus() {DoGo(true);}
Callback WhenChange;
};
@ -723,7 +725,7 @@ public:
InfoCtrlBar &SetAlign(int a) {bar.SetAlign(a); return *this;}
private:
BarDisplay bar;
BarDisplay bar;
};
class InfoCtrlText : public InfoCtrl {

View file

@ -3,6 +3,30 @@
#endif
// Controls4U.cpp
T_("Browse")
caES("")
esES("Explorar")
euES("")
frFR("")
T_("Go to previous")
caES("")
esES("Ir al anterior")
euES("")
frFR("")
T_("Go to next")
caES("")
esES("Ir al siguiente")
euES("")
frFR("")
T_("Directory up")
caES("")
esES("Directorio arriba")
euES("")
frFR("")
T_("Select file")
caES("")
esES("Seleccionar fichero")

View file

@ -123,12 +123,13 @@ fn FillCircle(w, cx, cy, R, color) {
FillEllipse(w, cx-R, cy-R, cx+R, cy+R, color);
}
fn DrawEditField(w, &r, cy, text, SetFrame, UseHistory, UseUp, UseBrowse, SetEditable, NotNull)
fn DrawEditField(w, &r, cy, text, SetFrame, UseHistory, UseUp, UseBrowse, UseBrowseRight, UseGo, SetEditable, NotNull)
{
DrawCtrlFrame(w, r, SetFrame);
w.DrawRect(r, :SWhite);
n = r.bottom - r.top;
leftPos = r.left;
rightPos = r.right;
if (UseHistory) {
DrawEdgeButton(w, RectC(leftPos, r.top, n, n));
w.DrawImage((n - 7) / 2 + leftPos, (n - 8) / 2 + r.top, "CtrlImg::SmallLeft");
@ -144,13 +145,21 @@ fn DrawEditField(w, &r, cy, text, SetFrame, UseHistory, UseUp, UseBrowse, SetEdi
}
if (UseBrowse) {
DrawEdgeButton(w, RectC(leftPos, r.top, n, n));
w.DrawImage((n - 7) / 2 + leftPos, (n - 6) / 2 + r.top, "ClassicCtrlsImg::RA");
w.DrawImage(leftPos + 2, r.top, "CtrlImg::Dir");
leftPos += n;
}
DrawEdgeButton(w, RectC(r.right - n, r.top, n, n));
w.DrawImage((n - 7) / 2 + r.right - n, (n - 8) / 2 + r.top, "CtrlImg::SmallRight");
w.DrawText(leftPos + 3, (cy - GetTextSize("", Arial(10)).cy) / 2,
(SetEditable ? "" : "R/O ")+ (NotNull ? "!" : "") + text, Arial(10), :SMagenta);
if (UseGo) {
DrawEdgeButton(w, RectC(rightPos - n, r.top, n, n));
w.DrawImage((n - 7) / 2 + rightPos - n, (n - 8) / 2 + r.top, "CtrlImg::SmallRight");
rightPos -= n;
}
if (UseBrowseRight) {
DrawEdgeButton(w, RectC(rightPos - n, r.top, n, n));
w.DrawImage(rightPos - n + 2, r.top, "CtrlImg::Dir");
rightPos -= n;
}
//w.DrawText(leftPos + 3, (cy - GetTextSize("", Arial(10)).cy) / 2,
// (SetEditable ? "" : "R/O ")+ (NotNull ? "!" : "") + text, Arial(10), :SMagenta);
}
ctrl EditFile {
@ -164,7 +173,9 @@ ctrl EditFile {
Font SetFont = StdFont() @3;
bool SetEditable = true @4 ? "Editable";
bool UseUp = false;
bool UseBrowse = true;
bool UseGo = false;
bool UseBrowse = false;
bool UseBrowseRight = true;
bool UseHistory = false;
Frame SetFrame = InsetFrame() @5;
Text Tip @6;
@ -173,7 +184,7 @@ ctrl EditFile {
Paint(w) {
r = GetRect();
DrawEditField(w, r, GetSize().cy, "File name", .SetFrame, .UseHistory, .UseUp, .UseBrowse, .SetEditable, .NotNull);
DrawEditField(w, r, GetSize().cy, "File name", .SetFrame, .UseHistory, .UseUp, .UseBrowse, .UseBrowseRight, .UseGo, .SetEditable, .NotNull);
}
}
@ -188,7 +199,9 @@ ctrl EditFolder {
Font SetFont = StdFont() @3;
bool SetEditable = true @4 ? "Editable";
bool UseUp = false;
bool UseBrowse = true;
bool UseGo = false;
bool UseBrowse = false;
bool UseBrowseRight = true;
bool UseHistory = false;
Frame SetFrame = InsetFrame() @5;
Text Tip @6;
@ -197,7 +210,7 @@ ctrl EditFolder {
Paint(w) {
r = GetRect();
DrawEditField(w, r, GetSize().cy, "Folder name", .SetFrame, .UseHistory, .UseUp, .UseBrowse, .SetEditable, .NotNull);
DrawEditField(w, r, GetSize().cy, "Folder name", .SetFrame, .UseHistory, .UseUp, .UseBrowse, .UseBrowseRight, .UseGo, .SetEditable, .NotNull);
}
}

View file

@ -3,5 +3,6 @@
#include "CtrlLib/init"
#include "Functions4U/init"
#include "ClassFactory/init"
#include "PolyXML/init"
#include "Painter/init"
#endif