1. fixed (to test) the bug with bitmaps without masks in wxImageList

2. reorganized wxImageList a bit, created a new wxInvertMask() function
3. an incredibly ugly fix (?) for "unsatisfied constraints" warnings
4. added wxIcon and wxBitmap ctors from XPM
5. XPM handler now creates bitmaps with mask
6. added wxPrinterDC::BitBlt() and DrawBitmap(), cleared the horrible mess in
   the wxDC methods with the same names


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5571 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2000-01-21 21:38:51 +00:00
parent 30b5fc118f
commit 4b7f216556
16 changed files with 896 additions and 621 deletions

View File

@@ -932,10 +932,25 @@ bool wxWindowBase::Layout()
}
else
{
// Evaluate child constraints
wxLayoutConstraints *constr = GetConstraints();
bool wasOk = constr && constr->AreSatisfied();
ResetConstraints(); // Mark all constraints as unevaluated
DoPhase(1); // Just one phase need if no sizers involved
DoPhase(2);
// if we're a top level panel (i.e. our parent is frame/dialog), our
// own constraints will never be satisfied any more unless we do it
// here
if ( wasOk )
{
int noChanges = 1;
while ( noChanges > 0 )
{
constr->SatisfyConstraints(this, &noChanges);
}
}
DoPhase(1); // Layout children
DoPhase(2); // Layout grand children
SetConstraintSizes(); // Recursively set the real window sizes
}
@@ -1039,8 +1054,7 @@ void wxWindowBase::ResetConstraints()
void wxWindowBase::SetConstraintSizes(bool recurse)
{
wxLayoutConstraints *constr = GetConstraints();
if ( constr && constr->left.GetDone() && constr->right.GetDone( ) &&
constr->width.GetDone() && constr->height.GetDone())
if ( constr && constr->AreSatisfied() )
{
int x = constr->left.GetValue();
int y = constr->top.GetValue();
@@ -1060,12 +1074,9 @@ void wxWindowBase::SetConstraintSizes(bool recurse)
}
else if ( constr )
{
wxString winName = GetName();
if ( !winName )
winName = wxT("unnamed");
wxLogDebug(wxT("Constraint not satisfied for %s, name '%s'."),
wxLogDebug(wxT("Constraints not satisfied for %s named '%s'."),
GetClassInfo()->GetClassName(),
winName.c_str());
GetName().c_str());
}
if ( recurse )