Update of /cvsroot/perl-win32-gui/Win32-GUI In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1693
Modified Files: CHANGELOG DC.xs Log Message: Fix all the Poly*() draw routines Index: DC.xs =================================================================== RCS file: /cvsroot/perl-win32-gui/Win32-GUI/DC.xs,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** DC.xs 26 Jun 2006 18:22:52 -0000 1.15 --- DC.xs 15 Jul 2007 18:29:00 -0000 1.16 *************** *** 387,391 **** ########################################################################### ! # (@)METHOD:Polygon([X,Y]+) # Draws a polygon consisting of two or more vertices connected by # straight lines. --- 387,391 ---- ########################################################################### ! # (@)METHOD:Polygon(X1, Y1, X2, Y2, [ X, Y, ... ]) # Draws a polygon consisting of two or more vertices connected by # straight lines. *************** *** 395,409 **** PREINIT: POINT *lpPoints; ! int nCount, i; CODE: ! if (items < 5 || (items - 1) % 2 != 0) ! croak("Usage: Polygon([x, y]+);\n"); nCount = (items - 1) / 2; lpPoints = (POINT *) safemalloc(nCount * sizeof(POINT)); ! for (i = 1; i < items; i += 2) { ! lpPoints[i].x = SvIV(ST(i)); ! lpPoints[i].y = SvIV(ST(i+1)); } --- 395,409 ---- PREINIT: POINT *lpPoints; ! int nCount, i, j; CODE: ! if (items < 5 || (items - 5) % 2 != 0) ! croak("Usage: Polygon(X1, Y1, X2, Y2, [ X, Y, ... ]);\n"); nCount = (items - 1) / 2; lpPoints = (POINT *) safemalloc(nCount * sizeof(POINT)); ! for (i = 1, j = 0; i < items; i += 2, j++) { ! lpPoints[j].x = SvIV(ST(i)); ! lpPoints[j].y = SvIV(ST(i+1)); } *************** *** 697,701 **** ########################################################################### ! # (@)METHOD:PolyBezier([X,Y]+) # Draws one or more Bézier curves. # The first curve is drawn from the first point to the fourth point by --- 697,701 ---- ########################################################################### ! # (@)METHOD:PolyBezier(X1, Y1, X2, Y2, X3, Y3, X4, Y4, [ X, Y, ... ]) # Draws one or more Bézier curves. # The first curve is drawn from the first point to the fourth point by *************** *** 710,724 **** PREINIT: POINT *lpPoints; ! int nCount, i; CODE: ! if (items < 9 || (items - 1) % 2 != 0) ! croak("Usage: PolyBezier([x, y]+);\n"); nCount = (items - 1) / 2; lpPoints = (POINT *) safemalloc(nCount * sizeof(POINT)); ! for (i = 1; i < items; i += 2) { ! lpPoints[i].x = SvIV(ST(i)); ! lpPoints[i].y = SvIV(ST(i+1)); } --- 710,724 ---- PREINIT: POINT *lpPoints; ! int nCount, i, j; CODE: ! if (items < 9 || (items - 9) % 6 != 0) ! croak("Usage: PolyBezier(X1, Y1, X2, Y2, X3, Y3, X4, Y4, [ X, Y, ... ]);\n"); nCount = (items - 1) / 2; lpPoints = (POINT *) safemalloc(nCount * sizeof(POINT)); ! for (i = 1, j = 0; i < items; i += 2, j++) { ! lpPoints[j].x = SvIV(ST(i)); ! lpPoints[j].y = SvIV(ST(i+1)); } *************** *** 729,733 **** ########################################################################### ! # (@)METHOD:PolyBezierTo ([X,Y]+) # Draws cubic Bézier curves. # The first curve is drawn from the current position to the third point by --- 729,733 ---- ########################################################################### ! # (@)METHOD:PolyBezierTo(X1, Y1, X2, Y2, X3, Y3, [ X, Y, ... ]) # Draws cubic Bézier curves. # The first curve is drawn from the current position to the third point by *************** *** 740,754 **** PREINIT: POINT *lpPoints; ! int nCount, i; CODE: ! if (items < 7 || (items - 1) % 2 != 0) ! croak("Usage: PolyBezier([x, y]+);\n"); nCount = (items - 1) / 2; lpPoints = (POINT *) safemalloc(nCount * sizeof(POINT)); ! for (i = 1; i < items; i += 2) { ! lpPoints[i].x = SvIV(ST(i)); ! lpPoints[i].y = SvIV(ST(i+1)); } --- 740,754 ---- PREINIT: POINT *lpPoints; ! int nCount, i, j; CODE: ! if (items < 7 || (items - 7) % 6 != 0) ! croak("Usage: PolyBezier(X1, Y1, X2, Y2, X3, Y3, [ X, Y, ... ]);\n"); nCount = (items - 1) / 2; lpPoints = (POINT *) safemalloc(nCount * sizeof(POINT)); ! for (i = 1, j = 0; i < items; i += 2, j++) { ! lpPoints[j].x = SvIV(ST(i)); ! lpPoints[j].y = SvIV(ST(i+1)); } *************** *** 761,765 **** ########################################################################### ! # (@)METHOD:Polyline ([X,Y]+) # Draws one or more straight lines. BOOL --- 761,765 ---- ########################################################################### ! # (@)METHOD:Polyline (X1, Y1, X2, Y2, [ X, Y, ... ]) # Draws one or more straight lines. BOOL *************** *** 768,782 **** PREINIT: POINT *lpPoints; ! int nCount, i; CODE: ! if (items < 5 || (items - 1) % 2 != 0) ! croak("Usage: PolyBezier([x, y]+);\n"); nCount = (items - 1) / 2; lpPoints = (POINT *) safemalloc(nCount * sizeof(POINT)); ! for (i = 1; i < items; i += 2) { ! lpPoints[i].x = SvIV(ST(i)); ! lpPoints[i].y = SvIV(ST(i+1)); } --- 768,782 ---- PREINIT: POINT *lpPoints; ! int nCount, i, j; CODE: ! if (items < 5 || (items - 5) % 2 != 0) ! croak("Usage: Polyline(X1, Y1, X2, Y2, [ X, Y, ... ]);\n"); nCount = (items - 1) / 2; lpPoints = (POINT *) safemalloc(nCount * sizeof(POINT)); ! for (i = 1, j = 0; i < items; i += 2, j++) { ! lpPoints[j].x = SvIV(ST(i)); ! lpPoints[j].y = SvIV(ST(i+1)); } *************** *** 787,791 **** ########################################################################### ! # (@)METHOD:PolylineTo ([X,Y]+) # Draws one or more straight lines. BOOL --- 787,791 ---- ########################################################################### ! # (@)METHOD:PolylineTo (X1, Y1, [ X, Y, ... ]) # Draws one or more straight lines. BOOL *************** *** 794,808 **** PREINIT: POINT *lpPoints; ! int nCount, i; CODE: ! if (items < 5 || (items - 1) % 2 != 0) ! croak("Usage: PolyBezier([x, y]+);\n"); nCount = (items - 1) / 2; lpPoints = (POINT *) safemalloc(nCount * sizeof(POINT)); ! for (i = 1; i < items; i += 2) { ! lpPoints[i].x = SvIV(ST(i)); ! lpPoints[i].y = SvIV(ST(i+1)); } --- 794,808 ---- PREINIT: POINT *lpPoints; ! int nCount, i, j; CODE: ! if (items < 3 || (items - 3) % 2 != 0) ! croak("Usage: PolylineTo(X1, Y2, [ X, Y, ... ]);\n"); nCount = (items - 1) / 2; lpPoints = (POINT *) safemalloc(nCount * sizeof(POINT)); ! for (i = 1, j = 0; i < items; i += 2, j++) { ! lpPoints[j].x = SvIV(ST(i)); ! lpPoints[j].y = SvIV(ST(i+1)); } Index: CHANGELOG =================================================================== RCS file: /cvsroot/perl-win32-gui/Win32-GUI/CHANGELOG,v retrieving revision 1.110 retrieving revision 1.111 diff -C2 -d -r1.110 -r1.111 *** CHANGELOG 15 Jul 2007 18:23:06 -0000 1.110 --- CHANGELOG 15 Jul 2007 18:29:00 -0000 1.111 *************** *** 11,14 **** --- 11,16 ---- -dropdownlist together have a more predictable result. Update docs. [Glenn Linderman] + - DC.xs - Fix Polygon(), PolyBezier(), PolyBezierTo(), PolyLine(), + PolyLineTo(). [George] + [Robert May] : 20 January 2007 - Restore Original WndProc