mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-05-21 06:45:39 -06:00
.CtrlLib: TreeCtrl - added setter for Item::margin attribute
.Geom: hrr bug fix (Draw::GetPageSize -> GetPaintRect), minor optimizations (Pointf -> const Pointf&) .TCore: CalcContext::Global constructor made outline to simplify debugging git-svn-id: svn://ultimatepp.org/upp/trunk@2911 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
parent
b6be3bc437
commit
1abacfff26
9 changed files with 1475 additions and 1470 deletions
File diff suppressed because it is too large
Load diff
|
|
@ -982,7 +982,7 @@ void TreeCtrl::Paint(Draw& w)
|
|||
if(i == 0)
|
||||
dri.top++;
|
||||
}
|
||||
if(w.IsPainting(0, y, sz.cx, msz.cy)) {
|
||||
if(w.IsPainting(0, y, sz.cx, msz.cy) && msz.cy > 0) {
|
||||
w.DrawRect(op.x, op.y, levelcx2, 1, SColorShadow);
|
||||
if(m.canopen || m.child.GetCount()) {
|
||||
Image im = m.isopen ? CtrlImg::treeminus() : CtrlImg::treeplus();
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@ public:
|
|||
bool canselect;
|
||||
|
||||
Node& SetImage(const Image& img) { image = img; return *this; }
|
||||
Node& SetMargin(int m) { margin = m; return *this; }
|
||||
Node& Set(const Value& v) { key = value = v; return *this; }
|
||||
Node& Set(const Value& v, const Value& t) { key = v; value = t; return *this; }
|
||||
Node& SetDisplay(const Display& d) { display = &d; return *this; }
|
||||
|
|
|
|||
|
|
@ -1409,7 +1409,7 @@ void HRR::Paint(Draw& draw, const Matrixf& trg_pix, GisTransform transform,
|
|||
<< ", is_bw = " << is_bw << ", out_pixel = " << out_pixel << ", out_alpha = " << out_alpha);
|
||||
|
||||
Matrixf pix_trg = MatrixfInverse(trg_pix);
|
||||
Rect clip = draw.GetPageSize(); //draw.GetClip();
|
||||
Rect clip = draw.GetPaintRect(); //draw.GetClip();
|
||||
Rectf csrc = info.log_rect & transform.SourceExtent(Rectf(clip) * pix_trg);
|
||||
// Pointf scale = Sizef(1, -1) * Sizef(dest.Size()) / Sizef(src.Size());
|
||||
// Pointf delta = Pointf(dest.TopLeft()) - src.BottomLeft() * scale;
|
||||
|
|
|
|||
|
|
@ -471,11 +471,11 @@ public:
|
|||
bool Nothing() { count = 0; return false; }
|
||||
void Remove(int index);
|
||||
|
||||
bool LL(Pointf P1, Pointf Q1, Pointf P2, Pointf Q2);
|
||||
bool LC(Pointf P1, Pointf Q1, Pointf C2, double r2);
|
||||
bool LA(Pointf P1, Pointf Q1, const VecArcInfo& a2);
|
||||
bool CC(Pointf C1, double r1, Pointf C2, double r2);
|
||||
bool CA(Pointf C1, double r1, const VecArcInfo& a2);
|
||||
bool LL(const Pointf& P1, const Pointf& Q1, const Pointf& P2, const Pointf& Q2);
|
||||
bool LC(const Pointf& P1, const Pointf& Q1, const Pointf& C2, double r2);
|
||||
bool LA(const Pointf& P1, const Pointf& Q1, const VecArcInfo& a2);
|
||||
bool CC(const Pointf& C1, double r1, const Pointf& C2, double r2);
|
||||
bool CA(const Pointf& C1, double r1, const VecArcInfo& a2);
|
||||
bool AA(const VecArcInfo& a1, const VecArcInfo& a2);
|
||||
|
||||
bool IsEmpty() const { return count == 0; }
|
||||
|
|
|
|||
|
|
@ -133,7 +133,7 @@ static Rectf SplitPoly(const Array<Pointf>& polygon, const Vector<int>& polyend,
|
|||
int ContainsPoints(const Array<Pointf>& polygon, const Vector<int>& polyend, const Array<Pointf>& points)
|
||||
{
|
||||
if(points.IsEmpty() || polygon.GetCount() <= 1)
|
||||
return false;
|
||||
return CMP_OUT;
|
||||
Array<PolyPart> parts;
|
||||
Rectf prect = SplitPoly(polygon, polyend, true, parts);
|
||||
bool is_in = false, is_out = false;
|
||||
|
|
@ -178,7 +178,7 @@ int ContainsPoints(const Array<Pointf>& polygon, const Vector<int>& polyend, con
|
|||
int ContainsPoints(const Array<Pointf>& polygon, const Array<Pointf>& points)
|
||||
{
|
||||
if(points.IsEmpty() || polygon.GetCount() <= 1)
|
||||
return false;
|
||||
return CMP_OUT;
|
||||
Vector<int> polyend;
|
||||
polyend.SetCount(1);
|
||||
polyend[0] = polygon.GetCount();
|
||||
|
|
|
|||
|
|
@ -1613,7 +1613,7 @@ void VecIntersection::CheckBearing(double *hints, const VecArcInfo &a)
|
|||
//////////////////////////////////////////////////////////////////////
|
||||
// LL: line vs line.
|
||||
|
||||
bool VecIntersection::LL(Pointf P1, Pointf Q1, Pointf P2, Pointf Q2)
|
||||
bool VecIntersection::LL(const Pointf& P1, const Pointf& Q1, const Pointf& P2, const Pointf& Q2)
|
||||
{
|
||||
if(min(P2.x, Q2.x) - max(P1.x, Q1.x) > Vec_tolerance
|
||||
|| min(P2.y, Q2.y) - max(P1.y, Q1.y) > Vec_tolerance
|
||||
|
|
@ -1656,7 +1656,7 @@ bool VecIntersection::LL(Pointf P1, Pointf Q1, Pointf P2, Pointf Q2)
|
|||
//////////////////////////////////////////////////////////////////////
|
||||
// LC: line vs circle.
|
||||
|
||||
bool VecIntersection::LC(Pointf P1, Pointf Q1, Pointf C2, double r2)
|
||||
bool VecIntersection::LC(const Pointf& P1, const Pointf& Q1, const Pointf& C2, double r2)
|
||||
{
|
||||
Pointf PQ = Q1 - P1;
|
||||
Pointf CP = P1 - C2;
|
||||
|
|
@ -1710,7 +1710,7 @@ bool VecIntersection::LC(Pointf P1, Pointf Q1, Pointf C2, double r2)
|
|||
//////////////////////////////////////////////////////////////////////
|
||||
// LA: line vs arc.
|
||||
|
||||
bool VecIntersection::LA(Pointf P1, Pointf Q1, const VecArcInfo &a2)
|
||||
bool VecIntersection::LA(const Pointf& P1, const Pointf& Q1, const VecArcInfo &a2)
|
||||
{
|
||||
if(!a2.IsCurved())
|
||||
return LL(P1, Q1, a2.A, a2.B);
|
||||
|
|
@ -1723,7 +1723,7 @@ bool VecIntersection::LA(Pointf P1, Pointf Q1, const VecArcInfo &a2)
|
|||
//////////////////////////////////////////////////////////////////////
|
||||
// CC: circle vs circle.
|
||||
|
||||
bool VecIntersection::CC(Pointf C1, double r1, Pointf C2, double r2)
|
||||
bool VecIntersection::CC(const Pointf& C1, double r1, const Pointf& C2, double r2)
|
||||
{
|
||||
if(fabs(r1) <= Vec_tolerance || fabs(r2) <= Vec_tolerance
|
||||
|| (C1 | C2) >= r1 + r2 + Vec_tolerance)
|
||||
|
|
@ -1763,7 +1763,7 @@ bool VecIntersection::CC(Pointf C1, double r1, Pointf C2, double r2)
|
|||
//////////////////////////////////////////////////////////////////////
|
||||
// CA: circle vs arc.
|
||||
|
||||
bool VecIntersection::CA(Pointf C1, double r1, const VecArcInfo &a2)
|
||||
bool VecIntersection::CA(const Pointf& C1, double r1, const VecArcInfo &a2)
|
||||
{
|
||||
if(!a2.IsCurved())
|
||||
{
|
||||
|
|
|
|||
|
|
@ -550,6 +550,11 @@ void CalcSymbols::Remove(String name)
|
|||
}
|
||||
}
|
||||
|
||||
CalcContext::Global::Global(const String& name, CalcProc proc)
|
||||
{
|
||||
GetGlobals().Add(name, proc);
|
||||
}
|
||||
|
||||
CalcContext::CalcContext()
|
||||
: nesting(0)
|
||||
, opt_const(false)
|
||||
|
|
|
|||
|
|
@ -333,10 +333,9 @@ public:
|
|||
CalcContext& context;
|
||||
};
|
||||
|
||||
class Global
|
||||
{
|
||||
class Global {
|
||||
public:
|
||||
Global(const String& name, CalcProc proc) { GetGlobals().Add(name, proc); }
|
||||
Global(const String& name, CalcProc proc);
|
||||
};
|
||||
|
||||
CalcContext();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue