Syncing uppdev

git-svn-id: svn://ultimatepp.org/upp/trunk@2149 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
cxl 2010-02-25 06:52:15 +00:00
parent 4371834b33
commit ea66c2f3f1
9 changed files with 63 additions and 58 deletions

View file

@ -2,44 +2,24 @@
using namespace Upp;
struct EditStringSpecial : EditString {
ArrayCtrl *GetArrayCtrl() {
for(Ctrl *q = GetParent(); q; q = q->GetParent())
if(ArrayCtrl *a = dynamic_cast<ArrayCtrl *>(q))
return a;
return NULL;
}
static void DoMenu(EditStringSpecial *x) {
MenuBar bar;
x->StdBar(bar);
ArrayCtrl *a = x->GetArrayCtrl();
if(a) {
bar.Separator();
a->WhenBar(bar);
}
bar.Execute();
}
void MyBar(Bar& bar)
{
PostCallback(callback1(DoMenu, this));
}
typedef EditStringSpecial CLASSNAME;
EditStringSpecial() {
WhenBar = THISBACK(MyBar);
}
};
void WidgetFactory(int line, One<Ctrl>& x)
{
if(line & 1)
x.Create<EditString>();
else
x.Create<Option>().SetLabel("Line " + AsString(line));
}
GUI_APP_MAIN
{
ArrayCtrl a;
a.Appending().Removing();
a.AddColumn("Text").Ctrls<EditStringSpecial>();
a.AddColumn("Text").Ctrls(WidgetFactory);
for(int i = 0; i < 300; i++)
a.Add(AsString(i));
for(int i = 0; i < 300; i += 3)
a.GetCtrl(i, 0)->Disable();
a.SetLineCy(Draw::GetStdFontCy() + 8);
TopWindow app;

View file

@ -1,12 +1,12 @@
uses
CtrlLib;
file
"AssistTest.h"
, main.cpp
, "AssistTest.lay"
;
mainconfig
"" = "GUI";
uses
CtrlLib;
file
AssistTest.h,
app.tpp,
main.cpp,
AssistTest.lay;
mainconfig
"" = "GUI";

View file

4
uppdev/AssistTest/init Normal file
View file

@ -0,0 +1,4 @@
#ifndef _AssistTest_icpp_init_stub
#define _AssistTest_icpp_init_stub
#include "CtrlLib/init"
#endif

View file

@ -1,4 +1,6 @@
#include "AssistTest.h"
#define TOPICFILE <AssistTest/app.tpp/all.i>
#include <Core/topic_group.h>
AssistTest::AssistTest()
{
@ -11,3 +13,8 @@ GUI_APP_MAIN
l.GetPos
AssistTest().Run();
}
struct justatest {
typedef justatest CLASSNAME;
typedef justatest CLASSNAME;
};

View file

@ -1,11 +1,12 @@
uses
CtrlLib;
file
ToolBarAsCtrl.h,
ToolBar.iml,
main.cpp,
ToolBarAsCtrl.lay;
mainconfig
"" = "GUI";
uses
CtrlLib;
file
ToolBarAsCtrl.h,
ToolBar.iml,
main.cpp,
ToolBarAsCtrl.lay;
mainconfig
"" = "GUI";

View file

@ -0,0 +1,4 @@
#ifndef _ToolBarAsCtrl_icpp_init_stub
#define _ToolBarAsCtrl_icpp_init_stub
#include "CtrlLib/init"
#endif

View file

@ -36,5 +36,7 @@ void ToolBarAsCtrl::Layout() {
GUI_APP_MAIN
{
GUI_PopUpEffect_Write(GUIEFFECT_NONE);
GUI_ToolTipDelay_Write(10);
ToolBarAsCtrl().Run();
}

View file

@ -34,16 +34,21 @@ static void PaintLegend(Draw& draw, Rect& outer, const Vector<String>& linie, bo
fmt.Face(Font::ARIAL).Height(TEXT_HT);
for(int o = 0; o < order.GetCount(); o++) {
String l = linie[order[o]];
String ltext = l;
WString ltext = l.ToWString();
DrawingDraw ddraw(LINE_WD, TEXT_HT);
ddraw.DrawLine(0, TEXT_HT / 2, LINE_WD, TEXT_HT / 2, 5, LtGreen());
if(o)
legend_para.Cat("\xA0\xA0\xA0 ", fmt);
if(o) {
legend_para.Cat(WString(0xa0, 1), fmt);
legend_para.Cat(WString(0xa0, 1), fmt);
legend_para.Cat(WString(0xa0, 1), fmt);
legend_para.Cat(WString(' ', 1), fmt);
}
legend_para.Cat(CreateDrawingObject(ddraw, LINE_WD, TEXT_HT), fmt);
legend_para.Cat("\xA0\xA0", fmt);
legend_para.Cat(WString(0xa0, 1), fmt);
legend_para.Cat(WString(0xa0, 1), fmt);
for(int i = 0; i < ltext.GetLength(); i++)
if(ltext[i] == ' ')
ltext.Set(i, 0xA0);
@ -53,6 +58,8 @@ static void PaintLegend(Draw& draw, Rect& outer, const Vector<String>& linie, bo
rtext.Cat(legend_para);
rtext.Normalize();
DDUMP(AsQTF(rtext));
int wd = min(rtext.GetWidth(), outer.Width() - 2 * LEG_INNER_GAP);
int ht = rtext.GetHeight(wd);