head 1.1; access; symbols pkgsrc-2026Q1:1.1.0.116 pkgsrc-2026Q1-base:1.1 pkgsrc-2025Q4:1.1.0.114 pkgsrc-2025Q4-base:1.1 pkgsrc-2025Q3:1.1.0.112 pkgsrc-2025Q3-base:1.1 pkgsrc-2025Q2:1.1.0.110 pkgsrc-2025Q2-base:1.1 pkgsrc-2025Q1:1.1.0.108 pkgsrc-2025Q1-base:1.1 pkgsrc-2024Q4:1.1.0.106 pkgsrc-2024Q4-base:1.1 pkgsrc-2024Q3:1.1.0.104 pkgsrc-2024Q3-base:1.1 pkgsrc-2024Q2:1.1.0.102 pkgsrc-2024Q2-base:1.1 pkgsrc-2024Q1:1.1.0.100 pkgsrc-2024Q1-base:1.1 pkgsrc-2023Q4:1.1.0.98 pkgsrc-2023Q4-base:1.1 pkgsrc-2023Q3:1.1.0.96 pkgsrc-2023Q3-base:1.1 pkgsrc-2023Q2:1.1.0.94 pkgsrc-2023Q2-base:1.1 pkgsrc-2023Q1:1.1.0.92 pkgsrc-2023Q1-base:1.1 pkgsrc-2022Q4:1.1.0.90 pkgsrc-2022Q4-base:1.1 pkgsrc-2022Q3:1.1.0.88 pkgsrc-2022Q3-base:1.1 pkgsrc-2022Q2:1.1.0.86 pkgsrc-2022Q2-base:1.1 pkgsrc-2022Q1:1.1.0.84 pkgsrc-2022Q1-base:1.1 pkgsrc-2021Q4:1.1.0.82 pkgsrc-2021Q4-base:1.1 pkgsrc-2021Q3:1.1.0.80 pkgsrc-2021Q3-base:1.1 pkgsrc-2021Q2:1.1.0.78 pkgsrc-2021Q2-base:1.1 pkgsrc-2021Q1:1.1.0.76 pkgsrc-2021Q1-base:1.1 pkgsrc-2020Q4:1.1.0.74 pkgsrc-2020Q4-base:1.1 pkgsrc-2020Q3:1.1.0.72 pkgsrc-2020Q3-base:1.1 pkgsrc-2020Q2:1.1.0.68 pkgsrc-2020Q2-base:1.1 pkgsrc-2020Q1:1.1.0.48 pkgsrc-2020Q1-base:1.1 pkgsrc-2019Q4:1.1.0.70 pkgsrc-2019Q4-base:1.1 pkgsrc-2019Q3:1.1.0.66 pkgsrc-2019Q3-base:1.1 pkgsrc-2019Q2:1.1.0.64 pkgsrc-2019Q2-base:1.1 pkgsrc-2019Q1:1.1.0.62 pkgsrc-2019Q1-base:1.1 pkgsrc-2018Q4:1.1.0.60 pkgsrc-2018Q4-base:1.1 pkgsrc-2018Q3:1.1.0.58 pkgsrc-2018Q3-base:1.1 pkgsrc-2018Q2:1.1.0.56 pkgsrc-2018Q2-base:1.1 pkgsrc-2018Q1:1.1.0.54 pkgsrc-2018Q1-base:1.1 pkgsrc-2017Q4:1.1.0.52 pkgsrc-2017Q4-base:1.1 pkgsrc-2017Q3:1.1.0.50 pkgsrc-2017Q3-base:1.1 pkgsrc-2017Q2:1.1.0.46 pkgsrc-2017Q2-base:1.1 pkgsrc-2017Q1:1.1.0.44 pkgsrc-2017Q1-base:1.1 pkgsrc-2016Q4:1.1.0.42 pkgsrc-2016Q4-base:1.1 pkgsrc-2016Q3:1.1.0.40 pkgsrc-2016Q3-base:1.1 pkgsrc-2016Q2:1.1.0.38 pkgsrc-2016Q2-base:1.1 pkgsrc-2016Q1:1.1.0.36 pkgsrc-2016Q1-base:1.1 pkgsrc-2015Q4:1.1.0.34 pkgsrc-2015Q4-base:1.1 pkgsrc-2015Q3:1.1.0.32 pkgsrc-2015Q3-base:1.1 pkgsrc-2015Q2:1.1.0.30 pkgsrc-2015Q2-base:1.1 pkgsrc-2015Q1:1.1.0.28 pkgsrc-2015Q1-base:1.1 pkgsrc-2014Q4:1.1.0.26 pkgsrc-2014Q4-base:1.1 pkgsrc-2014Q3:1.1.0.24 pkgsrc-2014Q3-base:1.1 pkgsrc-2014Q2:1.1.0.22 pkgsrc-2014Q2-base:1.1 pkgsrc-2014Q1:1.1.0.20 pkgsrc-2014Q1-base:1.1 pkgsrc-2013Q4:1.1.0.18 pkgsrc-2013Q4-base:1.1 pkgsrc-2013Q3:1.1.0.16 pkgsrc-2013Q3-base:1.1 pkgsrc-2013Q2:1.1.0.14 pkgsrc-2013Q2-base:1.1 pkgsrc-2013Q1:1.1.0.12 pkgsrc-2013Q1-base:1.1 pkgsrc-2012Q4:1.1.0.10 pkgsrc-2012Q4-base:1.1 pkgsrc-2012Q3:1.1.0.8 pkgsrc-2012Q3-base:1.1 pkgsrc-2012Q2:1.1.0.6 pkgsrc-2012Q2-base:1.1 pkgsrc-2012Q1:1.1.0.4 pkgsrc-2012Q1-base:1.1 pkgsrc-2011Q4:1.1.0.2 pkgsrc-2011Q4-base:1.1; locks; strict; comment @// @; 1.1 date 2011.11.25.21.57.36; author joerg; state Exp; branches; next ; desc @@ 1.1 log @Fix build with modern GCC versions @ text @$NetBSD$ --- pstoedit_3.21/src/drvtk.cpp.orig 2000-10-03 20:00:50.000000000 +0000 +++ pstoedit_3.21/src/drvtk.cpp @@@@ -26,17 +26,21 @@@@ */ #include "drvtk.h" -#include +#include #include #include // for sin and cos #include +#include "version.h" + static const char * tagNames = ""; static int swapHW = 0; static int noImPress = 0; +static int doImages = 0; +static char* PNGoutFullFileName = new char [2048]; static const char * colorstring(float r, float g, float b) { @@@@ -70,10 +74,12 @@@@ void drvTK::outputEscapedText(const char drvTK::derivedConstructor(drvTK): constructBase, buffer(tempFile.asOutput()), - objectId (1) + objectId (1), + imgcount(0) { // const RSString & l_pagesize = getPageSize(); + cerr << "pstoedit: Backend for Tk (ImPress 1.1b9)\n"; // set tk specific values scale = 1.0; /* tk default internal scale factor */ @@@@ -92,6 +98,8 @@@@ drvTK::derivedConstructor(drvTK): swapHW = 1; } else if (!strcmp(d_argv[i], "-I")) { noImPress = 1; + } else if (!strcmp(d_argv[i], "-i")) { + doImages = 1; } } strcpy(pwidth, "8.5i"); @@@@ -460,6 +468,9 @@@@ void drvTK::canvasCreate() << "set Global(Circulate) 1" << endl << "set Global(SlideScale) 0" << endl; } + if (doImages) { + outf << "package require Img" << endl; + } } drvTK::~drvTK() @@@@ -478,6 +489,9 @@@@ void drvTK::print_coords() float pc_x; float pc_y; for (unsigned int n = 0; n < numberOfElementsInPath(); n++) { + if (pathElement(n).getType() == closepath) { + break; + } const Point & p = pathElement(n).getPoint(0); pc_x = (p.x_ + x_offset) * scale; pc_y = (currentDeviceHeight - p.y_ + y_offset) * scale; @@@@ -591,12 +605,10 @@@@ void drvTK::show_path() } else { buffer << " -fill \"\""; } - buffer << " -outline \"" - << colorstring(currentR(),currentG(),currentB()) - << "\"" + // Outline is always nothing in postscript polygons + buffer << " -outline \"\"" << " -width " << (currentLineWidth()?currentLineWidth():1) - << "p" << " -tags \"" << tagNames << "\" ]" @@@@ -608,12 +620,10 @@@@ void drvTK::show_path() buffer << " -fill \"" << colorstring(currentR(),currentG(),currentB()) << "\""; - buffer << " -outline \"" - << colorstring(currentR(),currentG(),currentB()) - << "\"" + // Outline is always nothing in postscript polygons + buffer << " -outline \"\"" << " -width " << (currentLineWidth()?currentLineWidth():1) - << "p" << " -tags \"" << tagNames << "\" ]" @@@@ -626,7 +636,6 @@@@ void drvTK::show_path() << "\"" << " -width " << (currentLineWidth()?currentLineWidth():1) - << "p" << " -tags \"" << tagNames << "\" ]" @@@@ -650,9 +659,38 @@@@ void drvTK::show_rectangle(const float l show_path(); } +void drvTK::show_image(const Image & imageinfo) +{ + if (doImages) { + Point lowerleft, upperright; + imageinfo.getBoundingBox(lowerleft, upperright); + + sprintf(PNGoutFullFileName, "%s%s%02d.png", outDirName, outBaseName, imgcount++); + + char * title = new char [strlen(inFileName.value())+100]; + sprintf(title,"raster image number %d from input file %s",imgcount,inFileName.value()); + char generator[100]; + sprintf(generator,"pstoedit version: %s",version); + imageinfo.writePNGImage(PNGoutFullFileName,inFileName.value(),title,generator); + + delete[] title; + + buffer << "image create photo {" << PNGoutFullFileName << "} -file {" << PNGoutFullFileName << "}" << endl; + buffer << "set i [$Global(CurrentCanvas) create image " + << ((lowerleft.x_ + x_offset) * scale) << " " + << ((currentDeviceHeight - lowerleft.y_ + y_offset) * scale) + << " -image {" << PNGoutFullFileName << "}" + << " -anchor sw" + << " -tags \"" + << tagNames + << "\" ]" + << endl; + } +} + static DriverDescriptionT D_tk( "tk","tk and/or tk applet source code","tk", - false, // backend supports subpathes + true, // backend supports subpathes // if subpathes are supported, the backend must deal with // sequences of the following form // moveto (start of subpath) @@@@ -669,7 +707,7 @@@@ static DriverDescriptionT D_tk( false, // backend supports curves false, // backend supports elements which are filled and have edges true, // backend supports text - false, // backend supports Images + true, // backend supports Images DriverDescription::normalopen, true); // backend support multiple pages @