nim_duilib/duilib/Render/Pen.cpp
jiajia_deng 4933d1f2bc Remove dependency on shared
Signed-off-by: jiajia_deng <2894220@gmail.com>
2019-09-20 16:27:58 +08:00

90 lines
1.5 KiB
C++

#include "StdAfx.h"
namespace ui {
using namespace Gdiplus;
Pen_GdiPlus::Pen_GdiPlus(DWORD color, int width /*= 1*/)
: IPen(color, width)
{
pen_.reset(new Pen(color_, width));
}
Pen_GdiPlus::Pen_GdiPlus(const Pen_GdiPlus& r)
: IPen(r)
{
pen_.reset(r.pen_->Clone());
}
ui::IPen* Pen_GdiPlus::Clone()
{
return new Pen_GdiPlus(*this);
}
void Pen_GdiPlus::SetWidth(int width)
{
pen_->SetWidth(width);
}
int Pen_GdiPlus::GetWidth()
{
return (int)pen_->GetWidth();
}
void Pen_GdiPlus::SetColor(DWORD color)
{
color_ = color;
pen_->SetColor(color);
}
void Pen_GdiPlus::SetStartCap(LineCap cap)
{
pen_->SetStartCap((Gdiplus::LineCap)cap);
}
void Pen_GdiPlus::SetEndCap(LineCap cap)
{
pen_->SetEndCap((Gdiplus::LineCap)cap);
}
void Pen_GdiPlus::SetDashCap(LineCap cap)
{
pen_->SetDashCap((Gdiplus::DashCap)cap);
}
IPen::LineCap Pen_GdiPlus::GetStartCap()
{
return (IPen::LineCap)pen_->GetStartCap();
}
IPen::LineCap Pen_GdiPlus::GetEndCap()
{
return (IPen::LineCap)pen_->GetEndCap();
}
IPen::LineCap Pen_GdiPlus::GetDashCap()
{
return (IPen::LineCap)pen_->GetDashCap();
}
void Pen_GdiPlus::SetLineJoin(LineJoin join)
{
pen_->SetLineJoin((Gdiplus::LineJoin)join);
}
IPen::LineJoin Pen_GdiPlus::GetLineJoin()
{
return (IPen::LineJoin)pen_->GetLineJoin();
}
void Pen_GdiPlus::SetDashStyle(DashStyle style)
{
pen_->SetDashStyle((Gdiplus::DashStyle)style);
}
IPen::DashStyle Pen_GdiPlus::GetDashStyle()
{
return (IPen::DashStyle)pen_->GetDashStyle();
}
} // namespace ui