Kaydet (Commit) cba2ced9 authored tarafından Tomaž Vajngerl's avatar Tomaž Vajngerl

refactor PrintDialog to use RenderContex

Change-Id: Icff2648f04eca42a16555d334e42dda9f453b965
üst ddb3c453
...@@ -164,37 +164,35 @@ void PrintDialog::PrintPreviewWindow::Resize() ...@@ -164,37 +164,35 @@ void PrintDialog::PrintPreviewWindow::Resize()
} }
void PrintDialog::PrintPreviewWindow::Paint( vcl::RenderContext& /*rRenderContext*/, const Rectangle& ) void PrintDialog::PrintPreviewWindow::Paint(vcl::RenderContext& rRenderContext, const Rectangle&)
{ {
long nTextHeight = maHorzDim->GetTextHeight(); long nTextHeight = maHorzDim->GetTextHeight();
Size aSize( GetSizePixel() ); Size aSize(GetSizePixel());
Point aOffset( (aSize.Width() - maPreviewSize.Width() + nTextHeight) / 2 , Point aOffset((aSize.Width() - maPreviewSize.Width() + nTextHeight) / 2,
(aSize.Height() - maPreviewSize.Height() + nTextHeight) / 2 ); (aSize.Height() - maPreviewSize.Height() + nTextHeight) / 2);
if( !maReplacementString.isEmpty() ) if (!maReplacementString.isEmpty())
{ {
// replacement is active // replacement is active
Push(); rRenderContext.Push();
Font aFont( GetSettings().GetStyleSettings().GetLabelFont() ); Font aFont(rRenderContext.GetSettings().GetStyleSettings().GetLabelFont());
SetZoomedPointFont( aFont ); SetZoomedPointFont(aFont);
Rectangle aTextRect( aOffset + Point( 2, 2 ), Rectangle aTextRect(aOffset + Point(2, 2), Size(maPreviewSize.Width() - 4, maPreviewSize.Height() - 4));
Size( maPreviewSize.Width() - 4, maPreviewSize.Height() - 4 ) ); rRenderContext.DrawText(aTextRect, maReplacementString,
DrawText( aTextRect, maReplacementString, TEXT_DRAW_CENTER | TEXT_DRAW_VCENTER |
TEXT_DRAW_CENTER | TEXT_DRAW_VCENTER | TEXT_DRAW_WORDBREAK | TEXT_DRAW_MULTILINE TEXT_DRAW_WORDBREAK | TEXT_DRAW_MULTILINE);
); rRenderContext.Pop();
Pop();
} }
else else
{ {
Bitmap aPreviewBitmap(maPreviewBitmap); Bitmap aPreviewBitmap(maPreviewBitmap);
aPreviewBitmap.Scale(maPreviewSize, BmpScaleFlag::BestQuality); aPreviewBitmap.Scale(maPreviewSize, BmpScaleFlag::BestQuality);
DrawBitmap(aOffset, aPreviewBitmap); rRenderContext.DrawBitmap(aOffset, aPreviewBitmap);
} }
Rectangle aFrameRect( aOffset + Point( -1, -1 ), Rectangle aFrameRect(aOffset + Point(-1, -1), Size(maPreviewSize.Width() + 2, maPreviewSize.Height() + 2));
Size( maPreviewSize.Width() + 2, maPreviewSize.Height() + 2 ) ); DecorationView aDecorationView(&rRenderContext);
DecorationView aVw( this ); aDecorationView.DrawFrame(aFrameRect, FRAME_DRAW_GROUP);
aVw.DrawFrame( aFrameRect, FRAME_DRAW_GROUP );
} }
void PrintDialog::PrintPreviewWindow::Command( const CommandEvent& rEvt ) void PrintDialog::PrintPreviewWindow::Command( const CommandEvent& rEvt )
...@@ -325,59 +323,61 @@ Size PrintDialog::ShowNupOrderWindow::GetOptimalSize() const ...@@ -325,59 +323,61 @@ Size PrintDialog::ShowNupOrderWindow::GetOptimalSize() const
return Size(70, 70); return Size(70, 70);
} }
void PrintDialog::ShowNupOrderWindow::Paint( vcl::RenderContext& rRenderContext, const Rectangle& i_rRect ) void PrintDialog::ShowNupOrderWindow::Paint(vcl::RenderContext& rRenderContext, const Rectangle& i_rRect)
{ {
Window::Paint(rRenderContext, i_rRect); Window::Paint(rRenderContext, i_rRect);
SetMapMode( MAP_PIXEL ); rRenderContext.SetMapMode(MAP_PIXEL);
SetTextColor( GetSettings().GetStyleSettings().GetFieldTextColor() ); rRenderContext.SetTextColor(rRenderContext.GetSettings().GetStyleSettings().GetFieldTextColor());
int nPages = mnRows * mnColumns; int nPages = mnRows * mnColumns;
Font aFont( GetSettings().GetStyleSettings().GetFieldFont() ); Font aFont(rRenderContext.GetSettings().GetStyleSettings().GetFieldFont());
aFont.SetSize( Size( 0, 24 ) ); aFont.SetSize(Size(0, 24));
SetFont( aFont ); rRenderContext.SetFont(aFont);
Size aSampleTextSize( GetTextWidth( OUString::number( nPages+1 ) ), GetTextHeight() ); Size aSampleTextSize(rRenderContext.GetTextWidth(OUString::number(nPages + 1)), rRenderContext.GetTextHeight());
Size aOutSize(rRenderContext.GetOutputSizePixel());
Size aOutSize( GetOutputSizePixel() ); Size aSubSize(aOutSize.Width() / mnColumns, aOutSize.Height() / mnRows);
Size aSubSize( aOutSize.Width() / mnColumns, aOutSize.Height() / mnRows );
// calculate font size: shrink the sample text so it fits // calculate font size: shrink the sample text so it fits
double fX = double(aSubSize.Width())/double(aSampleTextSize.Width()); double fX = double(aSubSize.Width()) / double(aSampleTextSize.Width());
double fY = double(aSubSize.Height())/double(aSampleTextSize.Height()); double fY = double(aSubSize.Height()) / double(aSampleTextSize.Height());
double fScale = (fX < fY) ? fX : fY; double fScale = (fX < fY) ? fX : fY;
long nFontHeight = long(24.0*fScale) - 3; long nFontHeight = long(24.0 * fScale) - 3;
if( nFontHeight < 5 ) if (nFontHeight < 5)
nFontHeight = 5; nFontHeight = 5;
aFont.SetSize( Size( 0, nFontHeight ) ); aFont.SetSize(Size( 0, nFontHeight));
SetFont( aFont ); rRenderContext.SetFont(aFont);
long nTextHeight = GetTextHeight(); long nTextHeight = rRenderContext.GetTextHeight();
for( int i = 0; i < nPages; i++ ) for (int i = 0; i < nPages; i++)
{ {
OUString aPageText( OUString::number( i+1 ) ); OUString aPageText(OUString::number(i + 1));
int nX = 0, nY = 0; int nX = 0, nY = 0;
switch( mnOrderMode ) switch (mnOrderMode)
{ {
case SV_PRINT_PRT_NUP_ORDER_LRTB: case SV_PRINT_PRT_NUP_ORDER_LRTB:
nX = (i % mnColumns); nY = (i / mnColumns); nX = (i % mnColumns);
nY = (i / mnColumns);
break; break;
case SV_PRINT_PRT_NUP_ORDER_TBLR: case SV_PRINT_PRT_NUP_ORDER_TBLR:
nX = (i / mnRows); nY = (i % mnRows); nX = (i / mnRows);
nY = (i % mnRows);
break; break;
case SV_PRINT_PRT_NUP_ORDER_RLTB: case SV_PRINT_PRT_NUP_ORDER_RLTB:
nX = mnColumns - 1 - (i % mnColumns); nY = (i / mnColumns); nX = mnColumns - 1 - (i % mnColumns);
nY = (i / mnColumns);
break; break;
case SV_PRINT_PRT_NUP_ORDER_TBRL: case SV_PRINT_PRT_NUP_ORDER_TBRL:
nX = mnColumns - 1 - (i / mnRows); nY = (i % mnRows); nX = mnColumns - 1 - (i / mnRows);
nY = (i % mnRows);
break; break;
} }
Size aTextSize( GetTextWidth( aPageText ), nTextHeight ); Size aTextSize(rRenderContext.GetTextWidth(aPageText), nTextHeight);
int nDeltaX = (aSubSize.Width() - aTextSize.Width()) / 2; int nDeltaX = (aSubSize.Width() - aTextSize.Width()) / 2;
int nDeltaY = (aSubSize.Height() - aTextSize.Height()) / 2; int nDeltaY = (aSubSize.Height() - aTextSize.Height()) / 2;
DrawText( Point( nX * aSubSize.Width() + nDeltaX, rRenderContext.DrawText(Point(nX * aSubSize.Width() + nDeltaX,
nY * aSubSize.Height() + nDeltaY ), nY * aSubSize.Height() + nDeltaY), aPageText);
aPageText );
} }
DecorationView aVw( this ); DecorationView aDecorationView(&rRenderContext);
aVw.DrawFrame( Rectangle( Point( 0, 0), aOutSize ), FRAME_DRAW_GROUP ); aDecorationView.DrawFrame(Rectangle(Point(0, 0), aOutSize), FRAME_DRAW_GROUP);
} }
PrintDialog::NUpTabPage::NUpTabPage( VclBuilder *pUIBuilder ) PrintDialog::NUpTabPage::NUpTabPage( VclBuilder *pUIBuilder )
...@@ -1890,8 +1890,7 @@ void PrintDialog::previewBackward() ...@@ -1890,8 +1890,7 @@ void PrintDialog::previewBackward()
// PrintProgressDialog // PrintProgressDialog
PrintProgressDialog::PrintProgressDialog(vcl::Window* i_pParent, int i_nMax) PrintProgressDialog::PrintProgressDialog(vcl::Window* i_pParent, int i_nMax)
: ModelessDialog(i_pParent, "PrintProgressDialog", : ModelessDialog(i_pParent, "PrintProgressDialog", "vcl/ui/printprogressdialog.ui")
"vcl/ui/printprogressdialog.ui")
, mbCanceled(false) , mbCanceled(false)
, mnCur(0) , mnCur(0)
, mnMax(i_nMax) , mnMax(i_nMax)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment