Kaydet (Commit) 9a89946c authored tarafından Chris Sherlock's avatar Chris Sherlock

VCL: Move line functions into state areas

Change-Id: I4a92c66892fbb9687b9e7c521c770150b75229b0
üst 2fc8e17a
......@@ -570,6 +570,11 @@ public:
void SetOutDevViewType( OutDevViewType eOutDevViewType ) { meOutDevViewType=eOutDevViewType; }
OutDevViewType GetOutDevViewType() const { return meOutDevViewType; }
void SetLineColor();
void SetLineColor( const Color& rColor );
const Color& GetLineColor() const { return maLineColor; }
bool IsLineColor() const { return mbLineColor; }
void SetFillColor();
void SetFillColor( const Color& rColor );
const Color& GetFillColor() const { return maFillColor; }
......@@ -586,6 +591,8 @@ public:
private:
SAL_DLLPRIVATE void InitLineColor();
SAL_DLLPRIVATE void InitFillColor();
///@}
......@@ -669,13 +676,7 @@ public:
void DrawLine( const Point& rStartPt, const Point& rEndPt,
const LineInfo& rLineInfo );
void SetLineColor();
void SetLineColor( const Color& rColor );
const Color& GetLineColor() const { return maLineColor; }
bool IsLineColor() const { return mbLineColor; }
private:
SAL_DLLPRIVATE void InitLineColor();
/** Helper for line geometry paint with support for graphic expansion (pattern and fat_to_area)
*/
......
......@@ -145,75 +145,6 @@ void OutputDevice::DrawLine( const Point& rStartPt, const Point& rEndPt )
mpAlphaVDev->DrawLine( rStartPt, rEndPt );
}
void OutputDevice::SetLineColor()
{
if ( mpMetaFile )
mpMetaFile->AddAction( new MetaLineColorAction( Color(), false ) );
if ( mbLineColor )
{
mbInitLineColor = true;
mbLineColor = false;
maLineColor = Color( COL_TRANSPARENT );
}
if( mpAlphaVDev )
mpAlphaVDev->SetLineColor();
}
void OutputDevice::SetLineColor( const Color& rColor )
{
Color aColor = ImplDrawModeToColor( rColor );
if( mpMetaFile )
mpMetaFile->AddAction( new MetaLineColorAction( aColor, true ) );
if( ImplIsColorTransparent( aColor ) )
{
if ( mbLineColor )
{
mbInitLineColor = true;
mbLineColor = false;
maLineColor = Color( COL_TRANSPARENT );
}
}
else
{
if( maLineColor != aColor )
{
mbInitLineColor = true;
mbLineColor = true;
maLineColor = aColor;
}
}
if( mpAlphaVDev )
mpAlphaVDev->SetLineColor( COL_BLACK );
}
void OutputDevice::InitLineColor()
{
DBG_TESTSOLARMUTEX();
if( mbLineColor )
{
if( ROP_0 == meRasterOp )
mpGraphics->SetROPLineColor( SAL_ROP_0 );
else if( ROP_1 == meRasterOp )
mpGraphics->SetROPLineColor( SAL_ROP_1 );
else if( ROP_INVERT == meRasterOp )
mpGraphics->SetROPLineColor( SAL_ROP_INVERT );
else
mpGraphics->SetLineColor( ImplColorToSal( maLineColor ) );
}
else
mpGraphics->SetLineColor();
mbInitLineColor = false;
}
void OutputDevice::PaintLineGeometryWithEvtlExpand(
const LineInfo& rInfo,
basegfx::B2DPolyPolygon aLinePolyPolygon)
......
......@@ -415,6 +415,54 @@ void OutputDevice::SetFillColor( const Color& rColor )
mpAlphaVDev->SetFillColor( COL_BLACK );
}
void OutputDevice::SetLineColor()
{
if ( mpMetaFile )
mpMetaFile->AddAction( new MetaLineColorAction( Color(), false ) );
if ( mbLineColor )
{
mbInitLineColor = true;
mbLineColor = false;
maLineColor = Color( COL_TRANSPARENT );
}
if( mpAlphaVDev )
mpAlphaVDev->SetLineColor();
}
void OutputDevice::SetLineColor( const Color& rColor )
{
Color aColor = ImplDrawModeToColor( rColor );
if( mpMetaFile )
mpMetaFile->AddAction( new MetaLineColorAction( aColor, true ) );
if( ImplIsColorTransparent( aColor ) )
{
if ( mbLineColor )
{
mbInitLineColor = true;
mbLineColor = false;
maLineColor = Color( COL_TRANSPARENT );
}
}
else
{
if( maLineColor != aColor )
{
mbInitLineColor = true;
mbLineColor = true;
maLineColor = aColor;
}
}
if( mpAlphaVDev )
mpAlphaVDev->SetLineColor( COL_BLACK );
}
void OutputDevice::SetBackground()
{
......@@ -546,6 +594,29 @@ void OutputDevice::SetFont( const Font& rNewFont )
}
}
void OutputDevice::InitLineColor()
{
DBG_TESTSOLARMUTEX();
if( mbLineColor )
{
if( ROP_0 == meRasterOp )
mpGraphics->SetROPLineColor( SAL_ROP_0 );
else if( ROP_1 == meRasterOp )
mpGraphics->SetROPLineColor( SAL_ROP_1 );
else if( ROP_INVERT == meRasterOp )
mpGraphics->SetROPLineColor( SAL_ROP_INVERT );
else
mpGraphics->SetLineColor( ImplColorToSal( maLineColor ) );
}
else
mpGraphics->SetLineColor();
mbInitLineColor = false;
}
void OutputDevice::InitFillColor()
{
DBG_TESTSOLARMUTEX();
......
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