diff -urNwb -x CVS -x WIN32_20.1_i386_DBG -x WIN32_20.1_i386_OBJ -x abidiff.cmd -x patch.txt -x .#*.* gr.org/win/gr_Win32Graphics.cpp gr.new/win/gr_Win32Graphics.cpp --- gr.org/win/gr_Win32Graphics.cpp Thu May 11 09:00:25 2000 +++ gr.new/win/gr_Win32Graphics.cpp Wed May 17 13:46:13 2000 @@ -253,6 +253,20 @@ DeleteObject(hPen); } +void GR_Win32Graphics::drawLine(UT_sint32 x1, UT_sint32 y1, UT_sint32 x2, UT_sint32 y2, GR_Graphics::PenStyle ps) +{ + UT_ASSERT(ps >= GR_Graphics::GR_PENSTYLE_SOLID && ps <= GR_Graphics::GR_PENSTYLE_DASHDOTDOT); + const UT_sint32 cPS[] = {PS_SOLID,PS_DASH,PS_DOT,PS_DASHDOT,PS_DASHDOTDOT}; + HPEN hPen = CreatePen(cPS[ps], m_iLineWidth, m_clrCurrent); + HPEN hOldPen = (HPEN) SelectObject(m_hdc, hPen); + + MoveToEx(m_hdc, x1, y1, NULL); + LineTo(m_hdc, x2, y2); + + (void) SelectObject(m_hdc, hOldPen); + DeleteObject(hPen); +} + void GR_Win32Graphics::setLineWidth(UT_sint32 iLineWidth) { m_iLineWidth = iLineWidth; diff -urNwb -x CVS -x WIN32_20.1_i386_DBG -x WIN32_20.1_i386_OBJ -x abidiff.cmd -x patch.txt -x .#*.* gr.org/win/gr_Win32Graphics.h gr.new/win/gr_Win32Graphics.h --- gr.org/win/gr_Win32Graphics.h Thu Apr 20 09:03:05 2000 +++ gr.new/win/gr_Win32Graphics.h Wed May 17 13:12:12 2000 @@ -83,6 +83,7 @@ virtual UT_uint32 getFontAscent(); virtual UT_uint32 getFontDescent(); virtual void drawLine(UT_sint32, UT_sint32, UT_sint32, UT_sint32); + virtual void drawLine(UT_sint32, UT_sint32, UT_sint32, UT_sint32, GR_Graphics::PenStyle); virtual void xorLine(UT_sint32, UT_sint32, UT_sint32, UT_sint32); virtual void setLineWidth(UT_sint32); virtual void polyLine(UT_Point * pts, UT_uint32 nPoints); diff -urNwb -x CVS -x WIN32_20.1_i386_DBG -x WIN32_20.1_i386_OBJ -x abidiff.cmd -x patch.txt -x .#*.* gr.org/xp/gr_Graphics.h gr.new/xp/gr_Graphics.h --- gr.org/xp/gr_Graphics.h Thu Apr 20 09:03:07 2000 +++ gr.new/xp/gr_Graphics.h Wed May 17 13:22:43 2000 @@ -97,11 +97,20 @@ virtual void drawImage(GR_Image* pImg, UT_sint32 xDest, UT_sint32 yDest) = 0; virtual GR_Image* createNewImage(const char* pszName, const UT_ByteBuf* pBBPNG, UT_sint32 iDisplayWidth, UT_sint32 iDisplayHeight) = 0; + typedef enum { GR_PENSTYLE_SOLID = 0, + GR_PENSTYLE_DASH = 1, + GR_PENSTYLE_DOT = 2, + GR_PENSTYLE_DASHDOT = 3, + GR_PENSTYLE_DASHDOTDOT = 4 + } PenStyle; + /* For drawLine() and xorLine(): ** x0,y0 give the starting pixel. ** x1,y1 give the first pixel ***not drawn***. */ + virtual void drawLine(UT_sint32, UT_sint32, UT_sint32, UT_sint32) = 0; + virtual void drawLine(UT_sint32, UT_sint32, UT_sint32, UT_sint32, GR_Graphics::PenStyle) = 0; virtual void xorLine(UT_sint32, UT_sint32, UT_sint32, UT_sint32) = 0; virtual void setLineWidth(UT_sint32) = 0; virtual void polyLine(UT_Point * pts, UT_uint32 nPoints) = 0;