Hello!
Here is a patch which implements the PenStyle argument for the drawLine
method. Just XP ad Win32 parts.
Bye, Alexey.
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;