Docview mended (grrr) and OGL studio partially working under wxGTK

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6877 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Julian Smart
2000-03-20 13:41:16 +00:00
parent 26993c4f64
commit 0a0352f2f8
7 changed files with 94 additions and 13 deletions

View File

@@ -166,16 +166,31 @@ void csApp::InitSymbols()
m_symbolDatabase->AddSymbol(new csSymbol("Group", shape));
}
wxBitmap* csSymbolDatabase::CreateToolBitmap(csSymbol* symbol)
wxBitmap* csSymbolDatabase::CreateToolBitmap(csSymbol* symbol, const wxSize& toolSize)
{
int objectBitmapSize = 32;
symbol->GetShape()->Recompute();
wxBitmap *newBitmap = new wxBitmap(objectBitmapSize, objectBitmapSize);
wxBitmap *newBitmap = new wxBitmap(toolSize.x, toolSize.y);
// Test code
#if 0
wxMemoryDC memDC;
memDC.SelectObject(*newBitmap);
memDC.SetPen(* wxBLACK_PEN);
memDC.SetBrush(* wxWHITE_BRUSH);
memDC.SetBackground(wxBrush(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE), wxSOLID));
memDC.SetLogicalFunction(wxCOPY);
memDC.Clear();
memDC.DrawLine(0, 0, toolSize.x, toolSize.y);
memDC.DrawLine(0, toolSize.y, toolSize.x, 0);
memDC.SelectObject(wxNullBitmap);
#endif
#if 1
wxMemoryDC memDC;
double height, width, maxSize;
symbol->GetShape()->GetBoundingBoxMax(&width, &height);
@@ -185,18 +200,22 @@ wxBitmap* csSymbolDatabase::CreateToolBitmap(csSymbol* symbol)
maxSize = width;
double borderMargin = 4.0;
double scaleFactor = (double)(objectBitmapSize / (maxSize + 2*borderMargin));
double centreX = (double)((objectBitmapSize/scaleFactor)/2.0)-1;
double scaleFactor = (double)(toolSize.x / (maxSize + 2*borderMargin));
double centreX = (double)((toolSize.x/scaleFactor)/2.0)-1;
double centreY = centreX;
memDC.SelectObject(*newBitmap);
memDC.SetUserScale(scaleFactor, scaleFactor);
memDC.SetBackground(wxBrush(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE), wxSOLID));
memDC.Clear();
symbol->GetShape()->Show(TRUE);
symbol->GetShape()->Move(memDC, centreX, centreY);
memDC.SelectObject(wxNullBitmap);
#endif
return newBitmap;
}