pkgsrc/graphics/xpaint/PLIST

190 lines
7.3 KiB
Text
Raw Normal View History

xpaint: update to release 3.1.4, using wip/xpaint. Packaged in wip by @adam + a couple of changes by @vins Changes (since version 2.7.8) 2021-08-14 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.4 * arcOp.c : the DrawArc procedure now checks that the arc is not drawn with a zero linewidth - otherwise some pixels could have been missing, and any later fill area procedure could then have led to unexpected results. This minor bug (or misbehavior?) has been fixed. * image.c : if installed, dvipng can now be used as an alternative to the libdvipgm library, at the expense of a small slowdown in the output. This allows TeX input even without libdvipgm installed, dvipng being installable independently. 2021-02-12 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.3 * graphic.c : the "Text" menu has been substantially improved. Text and TeX/LaTeX input of arbitrary length, size, color can now be edited and converted to either a bitmap image or vector PostScript/PDF with embedded fonts. * More extensive testing - and a lot of small details fixed 2021-01-28 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.2 * Small improvement of versions 3.1.0, 3.1.1 with bug fixes. Xpaint can now be compiled without dvipgm (at the expense of losing some TeX functionality). Thanks to testers for feedback! * This version supports the use of layers (files *.lxp = Layered XPaint files). This is done via the C script editor. Any collection of images can be combined into a new merged image by a suitable C procedure. See example in directory share/c_scripts/templates/ * Compiling against libkpathsea and libdvipgm (from the dvipgm-1.x.tar.bz2 package, x >= 2) is needed to enable TeX input processing - otherwise the compilation scripts will disable TeX input. A minimal TeX environment is also needed to allow TeX interaction. * xpaintrw/readLXP.c : routines for reading LXP files * iprocess.c : routines for the creation of LXP files * image.c : ImageDup() procedure added * operation.c : new option for cleaning temporary files * This version has reached all capabilities that had been planned since a long time: layer handling, vector graphics operations, possibility of TeX input and of mathematical drawings, programmatic creation of images, filters and graphical functions. Therefore Xpaint will probably enter into maintainance and bug correction mode. 2021-01-27 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.1 * Small improvement of version 3.1.0 with bug fixes. * This version supports the use of layers (files *.lxp = Layered XPaint files). This is done via the C script editor. Any collection of images can be combined into a new merged image by a suitable C procedure. See example in directory share/c_scripts/templates/ * Compiling against libkpathsea and libdvipgm (from the dvipgm-1.x.tar.bz2 package, x >= 2) is needed to enable TeX input processing - otherwise the compilation scripts will disable TeX input. A minimal TeX environment is also needed to allow TeX interaction. * xpaintrw/readLXP.c : routines for reading LXP files * iprocess.c : routines for the creation of LXP files * image.c : ImageDup() procedure added * operation.c : new option for cleaning temporary files * This version has reached all capabilities that had been planned since a long time: layer handling, vector graphics operations, possibility of TeX input and of mathematical drawings, programmatic creation of images, filters and graphical functions. Therefore Xpaint will probably enter into maintainance and bug correction mode. 2021-01-24 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.0 * This version now supports the use of layers (files *.lxp = Layered XPaint files). This is done via the C script editor. Any collection of images can be combined into a new merged image by a suitable C procedure. See example in directory share/c_scripts/templates/ * Compiling against libkpathsea and libdvipgm (from the dvipgm-1.x.tar.bz2 package, x >= 2) is needed to enable TeX input processing - otherwise the compilation scripts will disable TeX input. A minimal TeX environment is also needed to allow TeX interaction. * xpaintrw/readLXP.c : routines for reading LXP files * iprocess.c : routines for the creation of LXP files * image.c : ImageDup() procedure added * operation.c : new option for cleaning temporary files * This version has reached all capabilities that had been planned since a long time: layer handling, vector graphics operations, possibility of TeX input and of mathematical drawings, programmatic creation of images, filters and graphical functions. Therefore Xpaint will probably enter into maintainance and bug correction mode ... 2021-01-21 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.5 * Vector drawing capabilities improved and hopefully almost complete. * Xpaint now allows the use of TeX input in mathematical drawings, provided it is compiled with the compilation flag -DHAVE_DVIPGM. The libdvipgm and libkpathsea libraries are required for this. * The new 'vxp2tex' utility converts VXP data into a TeX file that can be used with pdftex or pdflatex. * lineOp.c : ticks and graduation procedure added. * graphic.c, image.c, iprocess.c : several fixes and improvements. 2021-01-09 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.4 * This version has acquired substantial vector drawing capabilities. Just open 'Options->VXP vector data Editor' to enable vector drawing operations. Most of them are recorded in a plain text "VXP format" *.vxp. The external program 'vxp2ps' converts these data into (vector) postscript, and 'vxp2dkw' can be used to convert them for use in in the handwritten note editor deskwrite. Such Postscript files can be easily converted to PDF or SVG. * Xpaint can also read and rasterize *.vxp files (but at this point all operations that are not translated right away into vector data are ignored, even though they are recorded in the VXP file). * graphic.c, operation.c, misc.c, iprocess.c : extensive additions to implement VXP data processing. * share/c_scripts/procedures : canvas+vxp.c added as a new example. C scripts can be used to produce VXP data. 2020-08-04 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.3 * This version of xpaint requires in principle libXaw3dXft-1.6.2h (but would run with 1.6.2d,e by removing the compilation flag -DHAVE_NEWEDITINGSTYLE) * graphic.c: a new option has been introduced, allowing xpaint to use more easily graphics tablets, more specifically the user space drivers provided with deskwrite on Sourceforge. * menu.c: SetFocusOn() has been fixed. This allows the input focus to be preserved in active text fields, even when the cursor leaves the top parent window (as is usually expected with modern desktop interface guidelines ...) * iprocess.c: small improvement of the Gamma/RGB filter. * Further small fixes throughout, especially in the build scripts and the debian packaging. 2020-06-29 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.2 * This version of xpaint requires libXaw3dXft-1.6.2h (or later versions of the libXaw3dxft library - the changes between 'f', 'g' and 'h' merely consist of introducing a new parameter to allow scrollbars of text widgets to be on the right side, plus some minor improvements in the edition process) Removing -DHAVE_NEWEDITINGSTYLE in Makefile.am would make xpaint compatible with earlier versions 1.6.2d,e of libxaw3dxft with essentially no change, except for the text input editing behavior of Backspace and Delete keys. * xpaintrw/readWritePNM.c: is now using a more recent version of libnetpbm, rather than the completely obsolete version from the 1990's that was embedded in the original code of xpaint. One consequence is that libnetpbm10-dev or preferably libnetpbm11-dev are now needed to compile xpaint, another one is that PPM/PAM files with an alpha channel can now be read and written. Adjust the NETPBM defines (-DNETPBM10 or -DNETPBM11) according to the installed version of libnetpbm. * help.c: the help widget now has two independently resizable panes (topics and explanations). * pattern.c: correction of old bug (that had however no visible effect before 3.0.1). * graphic.c: exchange of primary and secondary colors or patterns is now accessible by clicking on the red cross below the color picker (shown as an eye). Similar addition for pattern.c 2020-06-16 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.1 * This version of xpaint requires libXaw3dXft-1.6.2f (or later versions of the libXaw3dxft library). Removing -DHAVE_NEWEDITINGSTYLE in Makefile.am would make it compatible with earlier versions 1.6.2d,e with essentially no change except for the text input editing behavior of Backspace and Delete keys. * print.c: by default, xpaint no longer depends on cups-bsd commands, (but they can be re-enabled via an adjutsment of the app-defaults files). * xpaintrw/readWritePS.c: the BoundingBox of a file saved as PS/PDF should now be set appropriately. * graphic.c, *Op.c: extensive additions. Xpaint can now record all operations that are performed as vector data, in the so called VXP format. The recording starts as soon as the VXP editor under the Options menu is started, and these data can be saved into a file <name>.vxp * readWriteJP2K.c: has been ported to work with openjpeg version 2 (JPEG2000 format), including alpha channel. * Various other small fixes throughout (SVG import, ...) * At a later stage, it will be possible to convert these VXP files to other vector formats such as eps, pdf or svg, and import them back to xpaint. There will be also an option to insert TeX input and convert the data into a (La)TeX file. 2020-05-25 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.0 * bitmaps/toolicons: new set of icons, generated from SVG data. * app_defaults: the app_defaults files have been reorganized so as to separate linguistic strings and other data, especially widget sizes. Three sizes are now offered: big, medium, small, to accommodate HiDPI screens or low resolution screens. * operation.c: the tool window is now fully resizable. In order to actually change the size of icons, users can copy /usr/share/xpaint/bitmaps/toolicons/ into $HOME/.xpaint/toolicons/ and generate icons with larger or smaller size there. Just type ./generate_icons <height> in $HOME/.xpaint/toolicons/ to produce a new set of icons with the given height (the xpaint package is distributed with icons of default height 36). The shell script "generate_icons" requires inkscape to work. * graphic.c: the parameter btnheight is now used to resize the palette elements as well as the height of buttons. This is useful for HiDPI screens (as well as for lower resolution screens of older computers). * main.c: new option -blind that keeps xpaint running under the hood when batch procedures are invoked. * xpaintrw/readWritePS.c: SVG import has been updated to work with inkscape-1.0. * The change of major number in this version anticipates the introduction of some vector graphics capabilities in the versions 3.x.y to come. (Right now, the only vector graphics capabilities are PS, PDF, SVG import). 2020-05-21 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 2.10.3 * lineOp.c : under the "segment" operation, users will now find new "Position" and "Measurement" tools. These tools do not draw anything, but instead they record the locations of pixels that are clicked on, and compute lengths and angles. * iprocess.c : The "Perspective" filter has been vastly improved. It should now enable users to correct the perspective of a distorted picture taken by a camera, or to create artificial perspective when producing a drawing. This can be used in connection with the new "Position" tool, so as to specify points on the canvas. * iprocess.c : The API of C scripts introduces a new public procedure PixelInterpolate(unsigned char *op, Image *input, double x, double y) that can be used to smooth pixels, under transformations that map integer coordinates into float values (as is the case e.g. for rotations or homotheties with arbitrary factor). This will sometimes improve the output of such operations (but may also make the image fuzzier). * Two new C scripts "similarity.c" and "projective.c" have been added. They show in particular how to exploit the PixelInterpolate() procedure. * Help and message files have been edited to explain details of the new functionalities. 2017-11-13 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 2.10.2 * Minor compilation fixes in iprocess.c and xpaintrw/readWriteJP2K.c thanks to the OpenSUSE team. * Bug in operation.c : exitPaint(...) could trigger a segfault when quitting xpaint without saving the canvas. Thanks to Anthony J. Bentley from the OpenBSD team for reporting the bug. * misc.h : srandom() is nowadays always of void type. * Minor fixes for the calculation of the maximum canvas size. 2016-12-10 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 2.10.1 (a substantial update!). * Xpaint includes a new command line option -btnheight that adjusts appropriately the size of all internal widgets in case a big menu font is used (e.g. by setting the option -menufont , or by changing the app-defaults file). This is very useful if you have a high resolution screen. Many small local modifications of various source files in the main tree have been necessary for this. * A new option -toolmode 0,1,2 can be used to initialize the display of the tool window. Also adjustable dynamically by resizing that window. * Default canvas size has been set to 1024x768 Related command line options are -canvassize and -winsize that can be used independently to adjust the default size of canvas and main window. * The app-defaults files and help files have been modified to accommodate the above additions. * The "Print" widget has been improved, and its menubar is now again available to adjust page formats (a bug introduced probably a long time ago prevented it to work !) * A newer version libXaw3dXft-1.6.2e.tar.bz2 has been posted. The only change is a 3 lines addition that circumvents (what seems to be) a bug occurring in certain X11/Xorg implementations, e.g. the intel driver, version 2.99.917. Otherwise this will make no difference. * Changed the library name librw to libxpaintrw to avoid shared library conflicts. Thanks to Michael Orlitzky for pointing out the issue. * Applied a number of patches from gentoo.org that substantially improve the compilation process. Thanks to Julian Ospald <hasufell@gentoo.org> 2015-01-02 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10.3 * Port to the newer libXaw3dXft-1.6.2d.tar.bz2 (the latter is actually a requirement, this version no longer compiles with libXaw3dXft-1.6.2c). The point is that libXaw3dXft-1.6.2d has improved binary compatibility with plain libXaw3d-1.6.x * Only further cosmetic changes, no change in functionality. 2014-04-17 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10.2 * Minor fixes in 'configure.ac' and 'configure.old' scripts Xpaint can now be compiled again with plain Xaw or Xaw3d (this is NOT recommended, Xaw3dxft definitely gives much better results !) Thanks to Stefan Husmann (Arch Linux) for helpful reports in this respect. * 'configure' (based on autotools) and 'configure.old' (based on imake) should in most cases give essentially equivalent binaries. * PDF files are now read by using mudraw if mupdf & mupdf-tools are installed (otherwise Xpaint falls back to the formerly used solution: pdf2ps + ghostscript, a much slower one...) * Xpaint can now even import libreoffice files as images as soon as libreoffice is installed (assuming /usr/bin/libreoffice is a valid path to the main program) 2014-04-09 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10.1 * Includes the "version_and_focus_patch_for_2.9.10" and other minor fixes. * The alpha channel menu now includes a new function that allows editing as RGB values the image that appears when transparency is applied on a background of the selected background color - white being the default (this removes the transparency levels afterwards, so as to get a pure RGB image). * Bug (probably very old) corrected : selection of background color always resulted in black being chosen ! 2014-03-03 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10 * This version should preferably be compiled with libXaw3dXft-1.6.2c, although it still works Ok with libXaw3dXft-1.6.2b. * readWritePNG.c: fixed bug occurring when writing grayscale images possessing no more than 16 colors. * readWriteJPEG.c: JPEG images in CMYK colorspace are now handled properly (they will still be memorized as RGB, so the original CMYK information is lost, but at least they are shown correctly). * fileBrowser.c: "Save" and "Save as" menus now include the option to adjust JPEG quality between 50% and 100% (default is 90%) * fileBrowser.c: improved logic : the file browser now remembers file names when changing directories, and also takes into account default extension when specifying file format. * fileBrowser.c: thanks to a new feature from libXaw3dXft-1.6.2c (possibility of creating colored lists), xpaint now implements file type coloring in its file browser - at this point this is guessed merely from the suffix of the file. * operation.c: Canvas menu reorganized - it is now named "File menu" so as to conform to general use. Except from reordering the items, the main functionality is unchanged. * pattern.c: bug fixes. A segfault problem in the zoom selector has been corrected, and contextual help has been fixed. 2013-01-27 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.9.4 * This version should be compiled with libXaw3dXft-1.6.2b * RGB channel separation procedure fixed and improved * Fix in CRC data handling of regions in memory. * XPaint now remembers better the position of regions saved in memory. The recorded position can now be changed or reset to origin through the memory management menu. * compilation fix for pgf2pnm with newer libpgf-6.12.24 * Avoid "bool" variable throughout, as this is a typedef in <stdbool.h> * Fixes to configure scripts, thanks to Daniel Macks (fink project) * Minor GUI improvements 2012-02-14 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.9 * Xpaint now uses (or tries to use!) autotools. * libxaw3dxft is now a separate package (but is still a requirement, and in fact should be installed before). * xpaintrw/rwTable.c : segfault fix (occurring randomly) fixed in readMagic(). * minor fix in fontSelect.c, certain fonts were possibly missing in the font browser, in some rare circumstances. * very minor fix of scrollbar behaviour in graphic.c. * misc.c : new procedure SetWMInputHint() that helps solving some quirks. 2012-01-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8.4 * minor fixes in fileBrowser.c (adjustable height of text entry for the file name, resize procedure improved). 2011-10-13 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8.3 * xpaintrw/pgf-util/Makefile : add '-fpermissive' flag to allow compilation with recent (more picky!) versions of g++ * Xaw3dxft/Viewport.c : position of scrollbars can now be adjusted through parameters sbShift[X,Y][1,2]. No public API change, so this addition should be upward compatible. * graphic.c : some small fixes in the shellHandler routine to accommodate odd behavior of scrollbars with xorg recent versions, using the new sbShift feature. 2010-12-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8.2 - nothing really new, just very small fixes * Integrated patch to facilitate compilation with gcc-4.5 * app-defaults files : slight improvement of X event management in pull-down menus. * print.c : slight improvement of X event management in print widget. * fontOp.c : fixed color issue (color not initialized) when moving written text with arrow keys. * Very small changes in Xaw3dxft (minor Xaw3dXft.h API update) 2010-11-08 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8 * Xaw3dxft : code clean-up. New files Xaw3dXft.h and Xaw3dXft.c now contain the specific Xaw3dxft parameters and routines. A couple of small improvements to correct minor quirks in the menu entry highlighting behaviour. * main.c, graphic.c : changes made to accommodate the API changes introduced in Xaw3dxft. Further code clean-up. * image.h, graphic.c, iprocess.c : modified definition of the imageprocessinfo struct, so that hopefully compilation still works with gcc 4.5 (gcc-4.5 appears to be more picky with struct definitions). Thanks to Fedora maintainer Paulo Roma Cavalcanti <promac@gmail.com> for reporting the issue. 2010-11-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.7 * Arrow keys and "Backspace", "Return", "Escape" keys can now be used in all drawing operations whose effect is not immediate, especially all routines from arcOp.c, lineOp.c, polygonOp.c, freehandOp.c, splineOp.c, TextOp.c Arrow keys allow moving objects around before they are completely drawn, "Escape" restarts the operation from scratch, "Return" terminates the operation, and "Backspace" rewinds the course of operation backwards. * freehandOp.c : this operation now allows to draw arbitrary combinations of freehand and polygonal shapes and should be easier to use or to modify interactively thanks to the key bindings. * sprayOp.c : minor code clean-up. * updated accordingly Help files. 2010-10-25 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6.4 A couple of small improvements in spline, polygon, text and color operations. * fontOp.c, splineOp.c, polygonOp.c : implemented "Backspace" key action, i.e. removing last point or last character; "Escape" now entirely restarts the operation from the beginning. Other small improvements (including correction of a potential segfault occurring in some strange circumstances...); polygonOp() code is now also much simpler and easier to read. * graphic.c : multiple clicks on any of the three color/pattern selection discs now switch primary and secondary colors/patterns. * updated accordingly Help files. 2010-10-08 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6.3 - minor bug fix release - nothing really serious. * ops.h : minor compilation issue fixed. * graphic.c : corrected segfault bug of RegionToRGBA channels (occurring only when alpha channel was to be saved.) * chroma.c : fixed minor scrolling issue in color variance scrollbars. * graphic.c : added new menu lines to proceed more easily to editing of alpha channels or images in memory. * updated accordingly Help files, messages and app-defaults files. 2010-09-26 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6.2 * print.c : printing was completely broken, as a result of using double values instead of float values. Reverted to float ! * chroma.c, color.c, magnifier.c, fontSelect.c : revert to float ! * iprocess.c : fixed bug occurring only in very rare circumstances (creation of image with an alpha channel, being edited and compiled on the fly through the embedded C-script editor) * graphic.c : small improvement in ModifyRGB (new routine to rescale gray levels linearly from given thresholds). 2010-09-14 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6 * xpaintrw/rwTable.c, xpaintrw/readWriteTGA.c : fixes in TGA format, so as to prevent that xpaint could hang on certain non TGA files. Make sure anyway that TGA is parsed as a last resort, since TGA is a strange format without signature. * image.c, iprocess.c, graphic.c : substantial improvements in filter routines : - Added new "Merge" filter : helpful to combine smoothly an image with the underlying canvas. Works according to 4 different modes - Added new "Distortion" filter which can be used to produce local deformations - Added powerful Floyd-Steinberg algorithm (color quantification enhanced with a diffusion process). - Replaced "ModifyRGB" by a generalized RGB transformation procedure with 7 different modes, including Gamma correction (with independent r_gamma, g_gamma, b_gamma parameters), and linear transform. - Fixed several shortcomings of "Normalize contrast" and "Emboss" routines; "Emboss" now has 2 parameters allowing linear correction. - Renamed "Tilt" as "Projective Transform" with several enhancements. - Renamed "ImageCopy" as "ImageCopyData" which says more accurately what it does. * graphic.c : Memory menu : management of R,G,B and alpha channels : - Added extraction of red, green, blue, alpha channels from region - Added merge procedure for those channels * msgedit.c : new utility which can be used to extract strings from the English version of "Messages" and combine them with a partially localized "Messages_XY" for any other language - useful as well to avoid discrepancies between languages! * Many updates to Message and Help files. 2010-09-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.5 * xpaintrw/readWritePNG.c : fixed WritePNG() for alpha channel images possessing less than 16 black and white colors, which xpaint tried to write in an incorrect PNG mode. * graphic.c : fixed segfault bug when invoking "Clone Canvas" procedure. * xaw3dxft : a few hacks to work around minor display bugs related to Xft anti-aliasing/composition effects on certain X servers (especially proprietary NVIDIA ...) * main.c : new command line options -tooltips, -notooltips * operation.c, graphic.c : implemented tooltips (they can be disabled from the tools/help menu). * man page and help files : updated. 2010-08-15 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.4 * xpaintrw/readWriteTGA.c : added support for TGA format (borrowed mostly from mtpaint project). * xpaintrw/rwTable.c : code clean-up. * Paint.c, PaintRegion.c : fixes for certain complex situations involving region selection with masks and alpha channel. (Segfault could occur in Fatbits editor under those circumstances). * graphic.c : Suppression of alpha channel could lead to segfault. 2010-08-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.3 * xpaintrw/readWriteICO.c : imported a lot of code from the 'icoutil' GPLed package. As a result, xpaint can now read most Windows ICO files, even those containing embedded compressed PNG/JPG images which icoutil cannot fully open. Support for ICO masks as alpha channel, and for writing single image ICO files. * xpaintrw/readWritePGF.c : PGF image format support improved, thanks to 'pgf2pnm' provided by Christoph Stamm <christoph.stamm@fhnw.ch> (creator of the PGF format). libpgf and libpgf-dev are needed only optionally to compile 'pgf2pnm', which then provides PGF support in xpaint. However, xpaint itself does not link with libpgf and does not need libpgf-dev to be compiled. The alpha channel of PGF images is fully supported. * graphic.c : improvements/bug fixes in the "Clone with Zoom" procedure. Now works for zooming/downscaling images, with/without interpolation, and for adjusting alpha channel as well. * graphic.c, PaintEvent.c : much more powerful implementation of the "Delimit region" procedure, according to six different options (connected/non connected/color range regions, or complements of such regions). * The help files have been updated to reflect all current functionality of XPaint (Spanish help additions should be revised by a native speaker !) 2010-07-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.2 * xpaintrw/*.c : huge code clean-up. Saving files now show up a warning when the image possesses an alpha channel, but the format chosen does not support it (completely or in part). Note: saving in PNG should almost always be a safe choice ... * xpaintrw/readWriteTIFF.c : support substantially improved, including alpha channel read/write. More exotic TIFF formats unsupported. * xpaintrw/readWriteBMP.c : many more BMP image format types are now supported, including full support for images with an alpha channel (read/write). * xpaintrw/readWritePNM.c : provisions made to include support for alpha channel in PNM (this is a specific extension of xpaint : an RGB image concatenated with a gray level image of the same size - and '\n' in between - is viewed as RGBA data). * xpaintrw/readWriteJP2K.c : added support for JPEG2000 image format. Either libopenjpeg (default) or libjasper (optionally) can be used. Full support for alpha channel (requires openJPEG from subversion at this point now, since "stable" version 1.3 has insufficient alpha channel implementation...). * xpaintrw/readWritePGF.c : added support for PGF image format. This requires libpgf and pgf to be installed (but xpaint does not need to be linked against libpgf, and its compilation does not require libpgf-dev files either.) * xpaintrw/readWriteSGI.c : repaired old dormant code to read run-length encoded SGI/Irix image files. Checked to work fine. * xpaintrw/readWriteICO.c : unsupported, very buggy code. Disabled at this point. Instead, use e.g. 'icoutil' to convert those files to PNG ... * dialog.c : very small fix providing UTF8 support in AlertBox window titles (and always raising warning windows). * configure : if libXaw3dxft is installed as a shared library, compilation is now set by default to use it, rather than linking statically xpaint to libXaw3dxf.a 2010-07-18 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.1.5 * graphic.c : added "*allowResize: False" in Canvas*pane*form to prevent annoying widget initialization on certain platforms * xpaintrw/readWritePS.c : small fixes to handle correctly PS/PDF files whose names contain quotes or blank characters. 2010-07-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.1.4 * fatBitsEdit.c, Paint.c , Paintregion.c : several fixes in handling of alpha channel in fatbits editor - some affecting alpha channel image bits. * app-defaults : change zoom labels to correct values xx:1 instead of 1:xx * graphic.c : prevent fatbits editor getting called undeservedly by GetNonDirtyCanvas() routine ; removing alpha channel now moves it to memory rather than destroying it right away. * xpaintrw/readWritePS.c : fix for compilation of TeX/LaTeX files being called from random directories. * minor fixes throughout - thanks to the SUSE-Packman maintainer Detlef Reichelt <detlef@die-mafia.de> for help. 2010-06-02 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.1 * Paint.c , Paintregion.c : fixes in alpha channel routines. * fatBitsEdit.c : many fixes in fatbits editor. Refresh button added * graphic.c : reload file procedure didn't reload alpha channel - this is now fixed. * fontOp.c : potential segfault corrected. * small other (mostly random) improvements. 2010-05-16 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.0 * graphic.c, Paint.c : big improvements in handling of alpha channel ; alpha management menu is now explicit from canvas menu bar. Support still not quite complete at this point (regions do not appear yet in alpha mode). Should come for 2.9.1... * Paint.c, PaintRegion.c : fixed segfault occurring when using region operations in fatbits editor (regression introduced already in 2.8.9 which remained unnoticed up to 2.8.19 ...) * fontOp.c, fontSelect.c : UTF8 support should now be essentially complete. * xpaintrw/readWritePNG.c : fixed bug when writing PNG_COLOR_TYPE_PALETTE images with less than 16 colors (those images were wrongly converted to gray palette...) * several other small fixes and improvements throughout. 2010-04-17 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.19.1 (mostly cosmetic changes) * fileBrowser.c : added "ongoing" mode in File Browser (widget no longer closes when opening an image, allowing to browse files continuously). Performed a substantial code clean-up as well. * operation.c, graphic.c : menu improvements; one can now open an image from any canvas window. * misc.c : added RaiseWindow() routine to comply better with ewmh specifications. XMapRaised() replaced by RaiseWindow() throughout. * "snapshot" replaced by "screenshot" throughout. 2010-04-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.19 * fileBrowser.c : fixed minor annoyance in "save" and "saveas" routines - name of file is now again remembered when a filename has already been set. * graphic.c : fixed bug in ToolSelection switcher; "font" menu replaced by more powerful "text" menu; new entry added to edit/write text from text editor embedded in font browser. * iprocess.c : fixed bug in filter "adjust RGB colors" * fontSelect.c, fontOp.c : text sample is now editable, and this text can be imported on canvases. This includes being able to set fonts, colors, linespacing (etc) as editable text. Any UTF8 encoded file can be read and edited, and a small number of special commands are available to format such texts; for hints on how to use this, see "Doc/TextFormat.doc". Xpaint can thus be used as a text editor (sort of!), useful e.g. to create posters with text and graphics. * xpaintrw/readWritePS.c : support for reading a file as "enriched text". * main.c : new command line options -textfont and -astext, the latter for opening files as enriched text. * share/bin/imgmerge : small tweak to use a static PageInfo struct, otherwise imgmerge would segfault (gcc bug ?) 2010-03-13 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.18 * Minor fixes (UTF8 names in windows, rare segfault when using external viewer) * xpaintrw/readWritePNG.c : xpaint now saves correctly gray images which have an alpha channel. * xpaintrw/rwTable.c : introduces auto-detect mode for writing files (image type is guessed from suffix of file name, and set to PNG as a fallback). * xaw3dxft : changed library name to libXaw3dxft to avoid interfering with regular libXaw3d. Added hooks in 'configure' to (possibly) install and compile it as a shared library. Corrected an issue in xaw3dxft/List.c which could sometimes lead to a fatal X error. * Added man pages for imgmerge and pngconcat (provided by Debian maintainer Josué Abarca) * Removed dependency on Xft.h in PaintP.h which had the unfortunate effect of breaking C-Script compilation, e.g. in imgmerge. 2010-03-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.17 * Xpaint is now fully UTF8 compliant. This has been done rather cheaply by linking statically with a modified xaw3d library which is UTF8 & Freetype aware. This also means that anti-aliasing is enabled in the menus and text widgets, and that the X core font protocol is no longer used anywhere. * By default, Xpaint no longer depends on external xaw/xaw3d/xaw3dg libraries as it is compiled with its own improved xaw3d clone; this only adds approximately 250 kB to the binary executable. * Xpaint can still be used with 8 bit encoding by specifying the command option 'xpaint -encoding 8'. However the resource files XPaint* Messages* Help* should then preferably be converted back to a 8bit locale, otherwise some strange characters will show up in the menus, at least in languages which use non ASCII characters. 2010-02-17 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.16.1 * fontSelect.c, misc.c : introduced clickFocusCallback which fixes keyboard focus in fontSelect and in color picker ascii text input widgets (problem occurred e.g. under KDE). Use 2.8.16 with xpaint-2.8.16-keyboard-input.patch. 2010-02-12 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.16 * graphic.c, fontOp.c, fontSelect.c : Xpaint now uses the Xft protocol to display fonts, so that (in particular) all TrueType fonts are available, and the corresponding glyphs are nicely anti-aliased without resorting to a use of sub-pixel resolution. Another benefit is the possibility of rotating text, or even applying arbitrary linear transformation (however, writing fonts with a pattern instead of a plain color is no longer possible directly - for this, one can use instead masks or a fill procedure). * xpaintrw/readWritePNG.c : applied small patch from Stefan Husmann (Arch Linux maintainer) to take care of API deprecation in newer versions libpng-1.4.x. 2010-02-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.15 * PaintRegion.c : finally found and corrected long standing bug which plagued iteration of filters and undo procedures. * fileBrowser.c : several GUI improvements. * xpaintrw/readWritePS.c : improved handling of BoundingBoxes. Fixed bug in the use of 'psselect' which was found on the Fedora bugzilla list (many thanks to Paulo Roma Cavalcanti <promac@superig.com.br> for analyzing the issue) 2010-01-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.14 * graphic.c : memory management simplified and improved; added CRC32 checksum control to avoid duplicates. * xpaintrw/readScript.c : fixed potential bug occurring in rare circumstances. * Various fixes in batch scripts 'imgmerge', 'batch.c' and 'xpaint_ocr' GPLv3 licence specified there. * Included new debian files released by Debian maintainer Josué Abarca * xpaint.man.in : corrected a ­ issue (thanks again to Josué Abarca) 2010-01-20 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.13 * Paint.c : corrected nasty bug * graphic.c : GUI improvements. Border color of paint widget now indicates status of image (red: non editable, green: resize enabled, blue: has an alpha layer, black: otherwise). * image.c : ImagaToPixmap() et al modified so as to manage alpha channel mode once for all (rather than repeating this for each of the image loaders). 2010-01-18 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.12 * misc.c, graphic.c : some more fixes for alpha channel issues. 2010-01-17 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.11 * fileBrowser.c : browserResized() : included patch for accommodating bug in certain versions of the Xaw3d library * Paint.c : PwGetPixmap() modified so as to work independently of zoom value. Saving a file under zoom<1 now works !! * graphic.c : there is now support for adjusting join and cap style of lines being drawn. Fixed handling of memory box. * Code for alpha channel completed and made more robust (substantial changes in graphic.c, Paint.c, PaintRegion.c) 2010-01-10 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.10 * graphic.c : many GUI improvements. Some alpha channel fixes. (arbitrary linear transformation of alpha channel still not implemented). * lineOp.c : fixed arrow and vector drawing under zoom != 1 (were correctly written to pixmap but incorrectly shown on canvas). * fileBrowser.c : a few cosmetic changes to make code more robust. * xpaintrw/readWritePNG.c : fixed readPNG() for non transparent PNG images possessing a palette of colors. 2010-01-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.9 * polygonOp.c : segfault bug corrected. Polygonal regions can now be selected correctly under zoom values other than 1. * xpaint.h : various API modified to include alpha channel (in images, paint canvases, clipboard, memory stack...) * PaintUndo.c : implemented alpha channel in Undo stacks * PaintRegion.c, graphic.c : routines to set/show/edit the alpha channel are now implemented in a fairly complete manner. * readWritePNG.c : xpaint now saves a canvas with an alpha channel as a PNG file with a corresponding alpha channel. * readWriteXPM.c : xpaint now saves a canvas with an alpha channel as an XPM file with a "None" color (reduced to a 0/1 mask). (By default, alpha<128 is considered to be transparent and alpha>=128 to be opaque. The threshold value 128 can be changed from the options.) * readGIF.c : xpaint can now read alpha channel of GIF89 files possessing transparent pixels (setting transparent pixel in writeGIF.c not yet implemented). 2009-12-09 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.8 Interim release with partial support for transparent images; alpha channel is now correctly read when loading PNG and XPM images. Easier management and writing support will be implemented in 2.8.9. * xpaintrw/readGIF.c : xpaint will now open all frames of animated GIF images, and not just the first frame - support of this feature was already there, but had never been made accessible from the GUI ! * xpaintrw/readWritePNG.c : xpaint now detects PNG images possessing an alpha channel and loads them properly. The RGB values and alpha channels can be edited separately (but not yet mixed back easily). * xpaintrw/readLXP.c : preliminary implementation of layered xpaint image format LXP. File share/c_scripts/templates/script.c used as template. * pattern.c : new button introduced to modify background color (thus duplicating functionality from the separate background color widget). * fileBrowser.c : widget improved. Four new buttons added to get directly to home, root and current directory, and to show/hide dot files. The browser of loaded files now has buttons for editing C scripts and managing layers (implementation somehow works, but is not yet complete). * iprocess.c : corrected segfault bug occurring in certain circumstances, e.g. when loading recursive image C-scripts. In particular, "layer" example share/c_scripts/layers/combine.c now works again. 2009-11-18 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7.3 (very minor changes) * graphic.c : corrected very tiny bug in resizeCanvas() routine which resulted in occasional disappearance of Fatbits cursor, when the canvas was resized under certain zoom reduction values. * fatBitsEdit.c : added convenience routine FatbitsEditorDestroy(paint) (not yet used inline - could possibly be used from C scripts). * small addition in Local.config file 2009-11-15 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7.2 (very minor changes) * Further cosmetic fixes and code cleaning ; X error handler improved (just in case). * snapshot.c : taking a snapshot from the tools window now unmaps the window (so that any window stacked behind can be captured); spurious warning 'bad pixmap' from libX11 has been eliminated. 2009-11-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7.1 (released only as a patch to 2.8.7). * Further cosmetic improvements and code cleaning not really worth bothering (e.g. popup menus which, when users change their mind and no longer want to use them, may not immediately popdown as would be expected when clicking randomly outside, e.g. on the canvas ...) 2009-11-04 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7 released. * graphic.c, menu.c, PaintEvent.c : a substantial number of cosmetic changes made to further improve the menu behaviour. * fileName.c renamed as fileBrowser.c * fileBrowser.c : Some "flickering" issues in the browser have been corrected. The file browser of "loaded files" now include ad hoc fields and buttons for modifying the scaling of vector format images (PS/PDF/DVI/TeX/LaTeX/SVG) as well as for selecting a page in multi-page documents. Now, Xpaint can thus be used as a practical viewer for such documents - though for this purpose it's certainly not as fast and optimized as specialized viewers ... * readWritePS.c : multipage PostScript files require 'psselect' from the psutils package. (This is a very simple program so we may consider including it in the next version of xpaint to remove that dependency.) DVI files are now accepted, along with PS/PDF/TeX/LaTeX/SVG. * print.c : selecting PDF option now (really) saves file as PDF rather than PostScript. * Merged Changelog and (unmaintained) file Doc/CHANGES 2009-10-27 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.6.1 released. * bug fixes : main.c : xpaint did not accept setting default zoom < 100% through command line graphic.c : underestimated evaluation of canvas window size for large images, resulting in image not being fully displayed even when it could. PaintRegion.c : segfault bug occurring in certain circumstances when dragging a region outside viewport, in region transparency mode. 2009-10-26 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.6 released. * Extensive changes in many parts, to provide capability for zoom = 1/n, while performing all possible operations under such a zoom. This means that anti-aliasing can be obtained by using e.g. zoom = 1/3 and then cloning the canvas with the given reduction. * magnifier.c: Introduced a magnifying glass, based on code of 'xlupe' by Thomas Runge (runge@rostock.zgdv.de) * operation.c: menu now includes an item to open the magnifying glass, and a browser for all images which have been opened or loaded from the command line. * fileName.c : the buildBrowser() routine has been extended to have a mode ('type=4') showing the list of loaded images. * graphic.c: edit menu includes 2 items for cloning the canvas (with or without reduction) * a lot of bugs have been ironed out, e.g. a crash in the polygon selection area, and a very long-standing bug in the memory management of menu.c which used to cause (fortunately unfrequent) random crashes. 2009-10-16 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.5 released. * graphic.c, user visible changes : added a zoom button and a new toggle allowing to resize the canvas, using mouse or arrow keys. Several other related improvements have been made for zooming/resizing, along with a few minor fixes (the layer example "layer.c" compiles again without segfaulting.) 2009-10-13 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.4 released. * pattern.c : Fixed segfault bug in color/pattern budget, which occurred when creating new brushes. * print.c : added new toggle so as to possibly produce a compressed PS file, or send to printer a PDF file rather than a PS file. The annoying printing notification popup has been replaced by a less intrusive notification. Many other small improvements - e.g. output postcript file can be selected with a file browser. * xpaintrw/readWritePS.c : the PostScript generator has been considerably improved. XPaint is now capable of producing strongly compressed PostScript files, of weight increased hardly by more than 30%-35% when starting from a PNG file of the same resolution, and the process is faster than before - it seems that even gimp does not yet take care of this, its PS files can often be reduced to less than 50% of their current size (huge thanks to Peter Szabo for showing the way with his sam2p program.) A standalone 'ppmtops' utility has been included for potential re-use elsewhere. * Clarification of the licence. Xpaint is an old program, many parts of which were written at a time when the GPL was not so pervasive. To the best knowledge of the current maintainer, all parts where written under permissive licences which are compatible with the GPL. J.-P. Demailly thus puts under the GPLv3 all code developped by him in the last twelve years - that's probably more than 30% of the total amount of code, and the program as a whole should thus be considered as GPLv3. All related utilities ('ppmtops', C scripts, etc) are also put under the GPLv3. 2009-10-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.3 released. * Included 2 patches from Mandriva packagement experts, fixing some minor compilation problems and potential security issues. * xpaintrw/readWritePS.c : xpaint is now able to display TeX, LaTeX, PDF and SVG files using image conversion from external ad hoc programs. Option -dpi <dpi value> can be used to adjust size of image. 2009-10-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.2 released. * pattern.c : found and fixed two long standing segfault bugs (fortunately occurring only in not so frequent circumstances) * Set default gridcolor to grey80 on TrueColor displays, a less intrusive color than black. 2009-09-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.1 released. * Introduced rectangular (not just square) snap grids. Color of grid can be changed to arbitrary color. * graphic.c : corrected segfault bug in simplemenu switcher (selector popup). 2009-09-27 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.0 released. * Menu popups have been entirely reworked. Their behaviour is now more fluid - and similar to the default behaviour of modern toolkits like GTK/qt - so users should feel less disturbed. (this required numerous changes in menu.c and app-defaults) * Fixed size handling of Canvas windows under maximize/unmaximize procedures. * Stability should be considerably improved. Some memory leaks have been removed as well. * Added new command line options: -undosize <num> (set undo memory limit) -operation <num> (start with operation <num> set in tool panel) -filter <file> (define filter by using <file> as C-script) -proc <file> (define procedure by using <file> as C-script) * Added support for using menu popups in C script filters See share/c_scripts/filters/clean.c for an example. This means that C script filters can involve adjustable parameters which can be easily changed (i.e. without needing a recompilation each time the parameters are changed.) * Added support for using menu popups in C script procedures See share/c_scripts/procedures/proc_with_params.c for an example * iprocess.c, xpaintrw/readScriptC.c : added support for running batch jobs (for mass processing of images, using xpaint as the engine); see share/c_scripts/batch/batch.c share/bin/imgmerge * Added batch script 'imgmerge' which uses xpaint to convert and concatenate image files into a single PDF file. This also makes use of Peter Szabo's 'pdfconcat' program (GPL, included). * Added support for OCR (with the ocrad engine by default) The OCR engine(s) can be specified in the bash script /usr/share/xpaint/c_scripts/bin/xpaint_ocr This means that xpaint can be easily used as a GUI for command line OCR engines ('xpaint_ocr' makes use of the 'xless' pager, by default, but any other pager/editor can be used instead). * brushOp.c: system wide brushes are no longer hardwired, and can now be configured from the SHAREDIR directory. * Added additional brushes provided by John David Gray <kahdgarxi@gmail.com> which are useful to draw electronic circuitry. Also included a patch of him introducing three new patterns and extending the drawVisibleGrid() routine in Paint.c * Fixed (and improved as well) behaviour of snap and grid routines, also using ideas of JD Gray. * Changed rotations to use trigonometric positive rotation rather than clockwise. This was too unnatural to me ! * Numerous bug fixes. Thanks to Mattis Michel <sic_zer0@hotmail.com> for correcting a bug in the snap routines and for providing further improvements; Mattis noticed - and urged correction - of a critical bug in the "Load clipboard" procedure; he also suggested putting WM hints on minimal size of widgets so as to avoid random crashes under wild resizing of the windows. * Updated the man page - which had actually been neglected for a couple of years ...
2023-01-22 18:41:52 +01:00
@comment $NetBSD: PLIST,v 1.8 2023/01/22 17:41:52 vins Exp $
bin/imgmerge
bin/vxp2dkw
bin/vxp2ps
bin/vxp2tex
bin/xpaint
xpaint: update to release 3.1.4, using wip/xpaint. Packaged in wip by @adam + a couple of changes by @vins Changes (since version 2.7.8) 2021-08-14 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.4 * arcOp.c : the DrawArc procedure now checks that the arc is not drawn with a zero linewidth - otherwise some pixels could have been missing, and any later fill area procedure could then have led to unexpected results. This minor bug (or misbehavior?) has been fixed. * image.c : if installed, dvipng can now be used as an alternative to the libdvipgm library, at the expense of a small slowdown in the output. This allows TeX input even without libdvipgm installed, dvipng being installable independently. 2021-02-12 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.3 * graphic.c : the "Text" menu has been substantially improved. Text and TeX/LaTeX input of arbitrary length, size, color can now be edited and converted to either a bitmap image or vector PostScript/PDF with embedded fonts. * More extensive testing - and a lot of small details fixed 2021-01-28 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.2 * Small improvement of versions 3.1.0, 3.1.1 with bug fixes. Xpaint can now be compiled without dvipgm (at the expense of losing some TeX functionality). Thanks to testers for feedback! * This version supports the use of layers (files *.lxp = Layered XPaint files). This is done via the C script editor. Any collection of images can be combined into a new merged image by a suitable C procedure. See example in directory share/c_scripts/templates/ * Compiling against libkpathsea and libdvipgm (from the dvipgm-1.x.tar.bz2 package, x >= 2) is needed to enable TeX input processing - otherwise the compilation scripts will disable TeX input. A minimal TeX environment is also needed to allow TeX interaction. * xpaintrw/readLXP.c : routines for reading LXP files * iprocess.c : routines for the creation of LXP files * image.c : ImageDup() procedure added * operation.c : new option for cleaning temporary files * This version has reached all capabilities that had been planned since a long time: layer handling, vector graphics operations, possibility of TeX input and of mathematical drawings, programmatic creation of images, filters and graphical functions. Therefore Xpaint will probably enter into maintainance and bug correction mode. 2021-01-27 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.1 * Small improvement of version 3.1.0 with bug fixes. * This version supports the use of layers (files *.lxp = Layered XPaint files). This is done via the C script editor. Any collection of images can be combined into a new merged image by a suitable C procedure. See example in directory share/c_scripts/templates/ * Compiling against libkpathsea and libdvipgm (from the dvipgm-1.x.tar.bz2 package, x >= 2) is needed to enable TeX input processing - otherwise the compilation scripts will disable TeX input. A minimal TeX environment is also needed to allow TeX interaction. * xpaintrw/readLXP.c : routines for reading LXP files * iprocess.c : routines for the creation of LXP files * image.c : ImageDup() procedure added * operation.c : new option for cleaning temporary files * This version has reached all capabilities that had been planned since a long time: layer handling, vector graphics operations, possibility of TeX input and of mathematical drawings, programmatic creation of images, filters and graphical functions. Therefore Xpaint will probably enter into maintainance and bug correction mode. 2021-01-24 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.0 * This version now supports the use of layers (files *.lxp = Layered XPaint files). This is done via the C script editor. Any collection of images can be combined into a new merged image by a suitable C procedure. See example in directory share/c_scripts/templates/ * Compiling against libkpathsea and libdvipgm (from the dvipgm-1.x.tar.bz2 package, x >= 2) is needed to enable TeX input processing - otherwise the compilation scripts will disable TeX input. A minimal TeX environment is also needed to allow TeX interaction. * xpaintrw/readLXP.c : routines for reading LXP files * iprocess.c : routines for the creation of LXP files * image.c : ImageDup() procedure added * operation.c : new option for cleaning temporary files * This version has reached all capabilities that had been planned since a long time: layer handling, vector graphics operations, possibility of TeX input and of mathematical drawings, programmatic creation of images, filters and graphical functions. Therefore Xpaint will probably enter into maintainance and bug correction mode ... 2021-01-21 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.5 * Vector drawing capabilities improved and hopefully almost complete. * Xpaint now allows the use of TeX input in mathematical drawings, provided it is compiled with the compilation flag -DHAVE_DVIPGM. The libdvipgm and libkpathsea libraries are required for this. * The new 'vxp2tex' utility converts VXP data into a TeX file that can be used with pdftex or pdflatex. * lineOp.c : ticks and graduation procedure added. * graphic.c, image.c, iprocess.c : several fixes and improvements. 2021-01-09 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.4 * This version has acquired substantial vector drawing capabilities. Just open 'Options->VXP vector data Editor' to enable vector drawing operations. Most of them are recorded in a plain text "VXP format" *.vxp. The external program 'vxp2ps' converts these data into (vector) postscript, and 'vxp2dkw' can be used to convert them for use in in the handwritten note editor deskwrite. Such Postscript files can be easily converted to PDF or SVG. * Xpaint can also read and rasterize *.vxp files (but at this point all operations that are not translated right away into vector data are ignored, even though they are recorded in the VXP file). * graphic.c, operation.c, misc.c, iprocess.c : extensive additions to implement VXP data processing. * share/c_scripts/procedures : canvas+vxp.c added as a new example. C scripts can be used to produce VXP data. 2020-08-04 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.3 * This version of xpaint requires in principle libXaw3dXft-1.6.2h (but would run with 1.6.2d,e by removing the compilation flag -DHAVE_NEWEDITINGSTYLE) * graphic.c: a new option has been introduced, allowing xpaint to use more easily graphics tablets, more specifically the user space drivers provided with deskwrite on Sourceforge. * menu.c: SetFocusOn() has been fixed. This allows the input focus to be preserved in active text fields, even when the cursor leaves the top parent window (as is usually expected with modern desktop interface guidelines ...) * iprocess.c: small improvement of the Gamma/RGB filter. * Further small fixes throughout, especially in the build scripts and the debian packaging. 2020-06-29 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.2 * This version of xpaint requires libXaw3dXft-1.6.2h (or later versions of the libXaw3dxft library - the changes between 'f', 'g' and 'h' merely consist of introducing a new parameter to allow scrollbars of text widgets to be on the right side, plus some minor improvements in the edition process) Removing -DHAVE_NEWEDITINGSTYLE in Makefile.am would make xpaint compatible with earlier versions 1.6.2d,e of libxaw3dxft with essentially no change, except for the text input editing behavior of Backspace and Delete keys. * xpaintrw/readWritePNM.c: is now using a more recent version of libnetpbm, rather than the completely obsolete version from the 1990's that was embedded in the original code of xpaint. One consequence is that libnetpbm10-dev or preferably libnetpbm11-dev are now needed to compile xpaint, another one is that PPM/PAM files with an alpha channel can now be read and written. Adjust the NETPBM defines (-DNETPBM10 or -DNETPBM11) according to the installed version of libnetpbm. * help.c: the help widget now has two independently resizable panes (topics and explanations). * pattern.c: correction of old bug (that had however no visible effect before 3.0.1). * graphic.c: exchange of primary and secondary colors or patterns is now accessible by clicking on the red cross below the color picker (shown as an eye). Similar addition for pattern.c 2020-06-16 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.1 * This version of xpaint requires libXaw3dXft-1.6.2f (or later versions of the libXaw3dxft library). Removing -DHAVE_NEWEDITINGSTYLE in Makefile.am would make it compatible with earlier versions 1.6.2d,e with essentially no change except for the text input editing behavior of Backspace and Delete keys. * print.c: by default, xpaint no longer depends on cups-bsd commands, (but they can be re-enabled via an adjutsment of the app-defaults files). * xpaintrw/readWritePS.c: the BoundingBox of a file saved as PS/PDF should now be set appropriately. * graphic.c, *Op.c: extensive additions. Xpaint can now record all operations that are performed as vector data, in the so called VXP format. The recording starts as soon as the VXP editor under the Options menu is started, and these data can be saved into a file <name>.vxp * readWriteJP2K.c: has been ported to work with openjpeg version 2 (JPEG2000 format), including alpha channel. * Various other small fixes throughout (SVG import, ...) * At a later stage, it will be possible to convert these VXP files to other vector formats such as eps, pdf or svg, and import them back to xpaint. There will be also an option to insert TeX input and convert the data into a (La)TeX file. 2020-05-25 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.0 * bitmaps/toolicons: new set of icons, generated from SVG data. * app_defaults: the app_defaults files have been reorganized so as to separate linguistic strings and other data, especially widget sizes. Three sizes are now offered: big, medium, small, to accommodate HiDPI screens or low resolution screens. * operation.c: the tool window is now fully resizable. In order to actually change the size of icons, users can copy /usr/share/xpaint/bitmaps/toolicons/ into $HOME/.xpaint/toolicons/ and generate icons with larger or smaller size there. Just type ./generate_icons <height> in $HOME/.xpaint/toolicons/ to produce a new set of icons with the given height (the xpaint package is distributed with icons of default height 36). The shell script "generate_icons" requires inkscape to work. * graphic.c: the parameter btnheight is now used to resize the palette elements as well as the height of buttons. This is useful for HiDPI screens (as well as for lower resolution screens of older computers). * main.c: new option -blind that keeps xpaint running under the hood when batch procedures are invoked. * xpaintrw/readWritePS.c: SVG import has been updated to work with inkscape-1.0. * The change of major number in this version anticipates the introduction of some vector graphics capabilities in the versions 3.x.y to come. (Right now, the only vector graphics capabilities are PS, PDF, SVG import). 2020-05-21 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 2.10.3 * lineOp.c : under the "segment" operation, users will now find new "Position" and "Measurement" tools. These tools do not draw anything, but instead they record the locations of pixels that are clicked on, and compute lengths and angles. * iprocess.c : The "Perspective" filter has been vastly improved. It should now enable users to correct the perspective of a distorted picture taken by a camera, or to create artificial perspective when producing a drawing. This can be used in connection with the new "Position" tool, so as to specify points on the canvas. * iprocess.c : The API of C scripts introduces a new public procedure PixelInterpolate(unsigned char *op, Image *input, double x, double y) that can be used to smooth pixels, under transformations that map integer coordinates into float values (as is the case e.g. for rotations or homotheties with arbitrary factor). This will sometimes improve the output of such operations (but may also make the image fuzzier). * Two new C scripts "similarity.c" and "projective.c" have been added. They show in particular how to exploit the PixelInterpolate() procedure. * Help and message files have been edited to explain details of the new functionalities. 2017-11-13 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 2.10.2 * Minor compilation fixes in iprocess.c and xpaintrw/readWriteJP2K.c thanks to the OpenSUSE team. * Bug in operation.c : exitPaint(...) could trigger a segfault when quitting xpaint without saving the canvas. Thanks to Anthony J. Bentley from the OpenBSD team for reporting the bug. * misc.h : srandom() is nowadays always of void type. * Minor fixes for the calculation of the maximum canvas size. 2016-12-10 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 2.10.1 (a substantial update!). * Xpaint includes a new command line option -btnheight that adjusts appropriately the size of all internal widgets in case a big menu font is used (e.g. by setting the option -menufont , or by changing the app-defaults file). This is very useful if you have a high resolution screen. Many small local modifications of various source files in the main tree have been necessary for this. * A new option -toolmode 0,1,2 can be used to initialize the display of the tool window. Also adjustable dynamically by resizing that window. * Default canvas size has been set to 1024x768 Related command line options are -canvassize and -winsize that can be used independently to adjust the default size of canvas and main window. * The app-defaults files and help files have been modified to accommodate the above additions. * The "Print" widget has been improved, and its menubar is now again available to adjust page formats (a bug introduced probably a long time ago prevented it to work !) * A newer version libXaw3dXft-1.6.2e.tar.bz2 has been posted. The only change is a 3 lines addition that circumvents (what seems to be) a bug occurring in certain X11/Xorg implementations, e.g. the intel driver, version 2.99.917. Otherwise this will make no difference. * Changed the library name librw to libxpaintrw to avoid shared library conflicts. Thanks to Michael Orlitzky for pointing out the issue. * Applied a number of patches from gentoo.org that substantially improve the compilation process. Thanks to Julian Ospald <hasufell@gentoo.org> 2015-01-02 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10.3 * Port to the newer libXaw3dXft-1.6.2d.tar.bz2 (the latter is actually a requirement, this version no longer compiles with libXaw3dXft-1.6.2c). The point is that libXaw3dXft-1.6.2d has improved binary compatibility with plain libXaw3d-1.6.x * Only further cosmetic changes, no change in functionality. 2014-04-17 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10.2 * Minor fixes in 'configure.ac' and 'configure.old' scripts Xpaint can now be compiled again with plain Xaw or Xaw3d (this is NOT recommended, Xaw3dxft definitely gives much better results !) Thanks to Stefan Husmann (Arch Linux) for helpful reports in this respect. * 'configure' (based on autotools) and 'configure.old' (based on imake) should in most cases give essentially equivalent binaries. * PDF files are now read by using mudraw if mupdf & mupdf-tools are installed (otherwise Xpaint falls back to the formerly used solution: pdf2ps + ghostscript, a much slower one...) * Xpaint can now even import libreoffice files as images as soon as libreoffice is installed (assuming /usr/bin/libreoffice is a valid path to the main program) 2014-04-09 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10.1 * Includes the "version_and_focus_patch_for_2.9.10" and other minor fixes. * The alpha channel menu now includes a new function that allows editing as RGB values the image that appears when transparency is applied on a background of the selected background color - white being the default (this removes the transparency levels afterwards, so as to get a pure RGB image). * Bug (probably very old) corrected : selection of background color always resulted in black being chosen ! 2014-03-03 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10 * This version should preferably be compiled with libXaw3dXft-1.6.2c, although it still works Ok with libXaw3dXft-1.6.2b. * readWritePNG.c: fixed bug occurring when writing grayscale images possessing no more than 16 colors. * readWriteJPEG.c: JPEG images in CMYK colorspace are now handled properly (they will still be memorized as RGB, so the original CMYK information is lost, but at least they are shown correctly). * fileBrowser.c: "Save" and "Save as" menus now include the option to adjust JPEG quality between 50% and 100% (default is 90%) * fileBrowser.c: improved logic : the file browser now remembers file names when changing directories, and also takes into account default extension when specifying file format. * fileBrowser.c: thanks to a new feature from libXaw3dXft-1.6.2c (possibility of creating colored lists), xpaint now implements file type coloring in its file browser - at this point this is guessed merely from the suffix of the file. * operation.c: Canvas menu reorganized - it is now named "File menu" so as to conform to general use. Except from reordering the items, the main functionality is unchanged. * pattern.c: bug fixes. A segfault problem in the zoom selector has been corrected, and contextual help has been fixed. 2013-01-27 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.9.4 * This version should be compiled with libXaw3dXft-1.6.2b * RGB channel separation procedure fixed and improved * Fix in CRC data handling of regions in memory. * XPaint now remembers better the position of regions saved in memory. The recorded position can now be changed or reset to origin through the memory management menu. * compilation fix for pgf2pnm with newer libpgf-6.12.24 * Avoid "bool" variable throughout, as this is a typedef in <stdbool.h> * Fixes to configure scripts, thanks to Daniel Macks (fink project) * Minor GUI improvements 2012-02-14 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.9 * Xpaint now uses (or tries to use!) autotools. * libxaw3dxft is now a separate package (but is still a requirement, and in fact should be installed before). * xpaintrw/rwTable.c : segfault fix (occurring randomly) fixed in readMagic(). * minor fix in fontSelect.c, certain fonts were possibly missing in the font browser, in some rare circumstances. * very minor fix of scrollbar behaviour in graphic.c. * misc.c : new procedure SetWMInputHint() that helps solving some quirks. 2012-01-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8.4 * minor fixes in fileBrowser.c (adjustable height of text entry for the file name, resize procedure improved). 2011-10-13 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8.3 * xpaintrw/pgf-util/Makefile : add '-fpermissive' flag to allow compilation with recent (more picky!) versions of g++ * Xaw3dxft/Viewport.c : position of scrollbars can now be adjusted through parameters sbShift[X,Y][1,2]. No public API change, so this addition should be upward compatible. * graphic.c : some small fixes in the shellHandler routine to accommodate odd behavior of scrollbars with xorg recent versions, using the new sbShift feature. 2010-12-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8.2 - nothing really new, just very small fixes * Integrated patch to facilitate compilation with gcc-4.5 * app-defaults files : slight improvement of X event management in pull-down menus. * print.c : slight improvement of X event management in print widget. * fontOp.c : fixed color issue (color not initialized) when moving written text with arrow keys. * Very small changes in Xaw3dxft (minor Xaw3dXft.h API update) 2010-11-08 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8 * Xaw3dxft : code clean-up. New files Xaw3dXft.h and Xaw3dXft.c now contain the specific Xaw3dxft parameters and routines. A couple of small improvements to correct minor quirks in the menu entry highlighting behaviour. * main.c, graphic.c : changes made to accommodate the API changes introduced in Xaw3dxft. Further code clean-up. * image.h, graphic.c, iprocess.c : modified definition of the imageprocessinfo struct, so that hopefully compilation still works with gcc 4.5 (gcc-4.5 appears to be more picky with struct definitions). Thanks to Fedora maintainer Paulo Roma Cavalcanti <promac@gmail.com> for reporting the issue. 2010-11-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.7 * Arrow keys and "Backspace", "Return", "Escape" keys can now be used in all drawing operations whose effect is not immediate, especially all routines from arcOp.c, lineOp.c, polygonOp.c, freehandOp.c, splineOp.c, TextOp.c Arrow keys allow moving objects around before they are completely drawn, "Escape" restarts the operation from scratch, "Return" terminates the operation, and "Backspace" rewinds the course of operation backwards. * freehandOp.c : this operation now allows to draw arbitrary combinations of freehand and polygonal shapes and should be easier to use or to modify interactively thanks to the key bindings. * sprayOp.c : minor code clean-up. * updated accordingly Help files. 2010-10-25 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6.4 A couple of small improvements in spline, polygon, text and color operations. * fontOp.c, splineOp.c, polygonOp.c : implemented "Backspace" key action, i.e. removing last point or last character; "Escape" now entirely restarts the operation from the beginning. Other small improvements (including correction of a potential segfault occurring in some strange circumstances...); polygonOp() code is now also much simpler and easier to read. * graphic.c : multiple clicks on any of the three color/pattern selection discs now switch primary and secondary colors/patterns. * updated accordingly Help files. 2010-10-08 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6.3 - minor bug fix release - nothing really serious. * ops.h : minor compilation issue fixed. * graphic.c : corrected segfault bug of RegionToRGBA channels (occurring only when alpha channel was to be saved.) * chroma.c : fixed minor scrolling issue in color variance scrollbars. * graphic.c : added new menu lines to proceed more easily to editing of alpha channels or images in memory. * updated accordingly Help files, messages and app-defaults files. 2010-09-26 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6.2 * print.c : printing was completely broken, as a result of using double values instead of float values. Reverted to float ! * chroma.c, color.c, magnifier.c, fontSelect.c : revert to float ! * iprocess.c : fixed bug occurring only in very rare circumstances (creation of image with an alpha channel, being edited and compiled on the fly through the embedded C-script editor) * graphic.c : small improvement in ModifyRGB (new routine to rescale gray levels linearly from given thresholds). 2010-09-14 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6 * xpaintrw/rwTable.c, xpaintrw/readWriteTGA.c : fixes in TGA format, so as to prevent that xpaint could hang on certain non TGA files. Make sure anyway that TGA is parsed as a last resort, since TGA is a strange format without signature. * image.c, iprocess.c, graphic.c : substantial improvements in filter routines : - Added new "Merge" filter : helpful to combine smoothly an image with the underlying canvas. Works according to 4 different modes - Added new "Distortion" filter which can be used to produce local deformations - Added powerful Floyd-Steinberg algorithm (color quantification enhanced with a diffusion process). - Replaced "ModifyRGB" by a generalized RGB transformation procedure with 7 different modes, including Gamma correction (with independent r_gamma, g_gamma, b_gamma parameters), and linear transform. - Fixed several shortcomings of "Normalize contrast" and "Emboss" routines; "Emboss" now has 2 parameters allowing linear correction. - Renamed "Tilt" as "Projective Transform" with several enhancements. - Renamed "ImageCopy" as "ImageCopyData" which says more accurately what it does. * graphic.c : Memory menu : management of R,G,B and alpha channels : - Added extraction of red, green, blue, alpha channels from region - Added merge procedure for those channels * msgedit.c : new utility which can be used to extract strings from the English version of "Messages" and combine them with a partially localized "Messages_XY" for any other language - useful as well to avoid discrepancies between languages! * Many updates to Message and Help files. 2010-09-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.5 * xpaintrw/readWritePNG.c : fixed WritePNG() for alpha channel images possessing less than 16 black and white colors, which xpaint tried to write in an incorrect PNG mode. * graphic.c : fixed segfault bug when invoking "Clone Canvas" procedure. * xaw3dxft : a few hacks to work around minor display bugs related to Xft anti-aliasing/composition effects on certain X servers (especially proprietary NVIDIA ...) * main.c : new command line options -tooltips, -notooltips * operation.c, graphic.c : implemented tooltips (they can be disabled from the tools/help menu). * man page and help files : updated. 2010-08-15 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.4 * xpaintrw/readWriteTGA.c : added support for TGA format (borrowed mostly from mtpaint project). * xpaintrw/rwTable.c : code clean-up. * Paint.c, PaintRegion.c : fixes for certain complex situations involving region selection with masks and alpha channel. (Segfault could occur in Fatbits editor under those circumstances). * graphic.c : Suppression of alpha channel could lead to segfault. 2010-08-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.3 * xpaintrw/readWriteICO.c : imported a lot of code from the 'icoutil' GPLed package. As a result, xpaint can now read most Windows ICO files, even those containing embedded compressed PNG/JPG images which icoutil cannot fully open. Support for ICO masks as alpha channel, and for writing single image ICO files. * xpaintrw/readWritePGF.c : PGF image format support improved, thanks to 'pgf2pnm' provided by Christoph Stamm <christoph.stamm@fhnw.ch> (creator of the PGF format). libpgf and libpgf-dev are needed only optionally to compile 'pgf2pnm', which then provides PGF support in xpaint. However, xpaint itself does not link with libpgf and does not need libpgf-dev to be compiled. The alpha channel of PGF images is fully supported. * graphic.c : improvements/bug fixes in the "Clone with Zoom" procedure. Now works for zooming/downscaling images, with/without interpolation, and for adjusting alpha channel as well. * graphic.c, PaintEvent.c : much more powerful implementation of the "Delimit region" procedure, according to six different options (connected/non connected/color range regions, or complements of such regions). * The help files have been updated to reflect all current functionality of XPaint (Spanish help additions should be revised by a native speaker !) 2010-07-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.2 * xpaintrw/*.c : huge code clean-up. Saving files now show up a warning when the image possesses an alpha channel, but the format chosen does not support it (completely or in part). Note: saving in PNG should almost always be a safe choice ... * xpaintrw/readWriteTIFF.c : support substantially improved, including alpha channel read/write. More exotic TIFF formats unsupported. * xpaintrw/readWriteBMP.c : many more BMP image format types are now supported, including full support for images with an alpha channel (read/write). * xpaintrw/readWritePNM.c : provisions made to include support for alpha channel in PNM (this is a specific extension of xpaint : an RGB image concatenated with a gray level image of the same size - and '\n' in between - is viewed as RGBA data). * xpaintrw/readWriteJP2K.c : added support for JPEG2000 image format. Either libopenjpeg (default) or libjasper (optionally) can be used. Full support for alpha channel (requires openJPEG from subversion at this point now, since "stable" version 1.3 has insufficient alpha channel implementation...). * xpaintrw/readWritePGF.c : added support for PGF image format. This requires libpgf and pgf to be installed (but xpaint does not need to be linked against libpgf, and its compilation does not require libpgf-dev files either.) * xpaintrw/readWriteSGI.c : repaired old dormant code to read run-length encoded SGI/Irix image files. Checked to work fine. * xpaintrw/readWriteICO.c : unsupported, very buggy code. Disabled at this point. Instead, use e.g. 'icoutil' to convert those files to PNG ... * dialog.c : very small fix providing UTF8 support in AlertBox window titles (and always raising warning windows). * configure : if libXaw3dxft is installed as a shared library, compilation is now set by default to use it, rather than linking statically xpaint to libXaw3dxf.a 2010-07-18 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.1.5 * graphic.c : added "*allowResize: False" in Canvas*pane*form to prevent annoying widget initialization on certain platforms * xpaintrw/readWritePS.c : small fixes to handle correctly PS/PDF files whose names contain quotes or blank characters. 2010-07-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.1.4 * fatBitsEdit.c, Paint.c , Paintregion.c : several fixes in handling of alpha channel in fatbits editor - some affecting alpha channel image bits. * app-defaults : change zoom labels to correct values xx:1 instead of 1:xx * graphic.c : prevent fatbits editor getting called undeservedly by GetNonDirtyCanvas() routine ; removing alpha channel now moves it to memory rather than destroying it right away. * xpaintrw/readWritePS.c : fix for compilation of TeX/LaTeX files being called from random directories. * minor fixes throughout - thanks to the SUSE-Packman maintainer Detlef Reichelt <detlef@die-mafia.de> for help. 2010-06-02 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.1 * Paint.c , Paintregion.c : fixes in alpha channel routines. * fatBitsEdit.c : many fixes in fatbits editor. Refresh button added * graphic.c : reload file procedure didn't reload alpha channel - this is now fixed. * fontOp.c : potential segfault corrected. * small other (mostly random) improvements. 2010-05-16 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.0 * graphic.c, Paint.c : big improvements in handling of alpha channel ; alpha management menu is now explicit from canvas menu bar. Support still not quite complete at this point (regions do not appear yet in alpha mode). Should come for 2.9.1... * Paint.c, PaintRegion.c : fixed segfault occurring when using region operations in fatbits editor (regression introduced already in 2.8.9 which remained unnoticed up to 2.8.19 ...) * fontOp.c, fontSelect.c : UTF8 support should now be essentially complete. * xpaintrw/readWritePNG.c : fixed bug when writing PNG_COLOR_TYPE_PALETTE images with less than 16 colors (those images were wrongly converted to gray palette...) * several other small fixes and improvements throughout. 2010-04-17 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.19.1 (mostly cosmetic changes) * fileBrowser.c : added "ongoing" mode in File Browser (widget no longer closes when opening an image, allowing to browse files continuously). Performed a substantial code clean-up as well. * operation.c, graphic.c : menu improvements; one can now open an image from any canvas window. * misc.c : added RaiseWindow() routine to comply better with ewmh specifications. XMapRaised() replaced by RaiseWindow() throughout. * "snapshot" replaced by "screenshot" throughout. 2010-04-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.19 * fileBrowser.c : fixed minor annoyance in "save" and "saveas" routines - name of file is now again remembered when a filename has already been set. * graphic.c : fixed bug in ToolSelection switcher; "font" menu replaced by more powerful "text" menu; new entry added to edit/write text from text editor embedded in font browser. * iprocess.c : fixed bug in filter "adjust RGB colors" * fontSelect.c, fontOp.c : text sample is now editable, and this text can be imported on canvases. This includes being able to set fonts, colors, linespacing (etc) as editable text. Any UTF8 encoded file can be read and edited, and a small number of special commands are available to format such texts; for hints on how to use this, see "Doc/TextFormat.doc". Xpaint can thus be used as a text editor (sort of!), useful e.g. to create posters with text and graphics. * xpaintrw/readWritePS.c : support for reading a file as "enriched text". * main.c : new command line options -textfont and -astext, the latter for opening files as enriched text. * share/bin/imgmerge : small tweak to use a static PageInfo struct, otherwise imgmerge would segfault (gcc bug ?) 2010-03-13 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.18 * Minor fixes (UTF8 names in windows, rare segfault when using external viewer) * xpaintrw/readWritePNG.c : xpaint now saves correctly gray images which have an alpha channel. * xpaintrw/rwTable.c : introduces auto-detect mode for writing files (image type is guessed from suffix of file name, and set to PNG as a fallback). * xaw3dxft : changed library name to libXaw3dxft to avoid interfering with regular libXaw3d. Added hooks in 'configure' to (possibly) install and compile it as a shared library. Corrected an issue in xaw3dxft/List.c which could sometimes lead to a fatal X error. * Added man pages for imgmerge and pngconcat (provided by Debian maintainer Josué Abarca) * Removed dependency on Xft.h in PaintP.h which had the unfortunate effect of breaking C-Script compilation, e.g. in imgmerge. 2010-03-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.17 * Xpaint is now fully UTF8 compliant. This has been done rather cheaply by linking statically with a modified xaw3d library which is UTF8 & Freetype aware. This also means that anti-aliasing is enabled in the menus and text widgets, and that the X core font protocol is no longer used anywhere. * By default, Xpaint no longer depends on external xaw/xaw3d/xaw3dg libraries as it is compiled with its own improved xaw3d clone; this only adds approximately 250 kB to the binary executable. * Xpaint can still be used with 8 bit encoding by specifying the command option 'xpaint -encoding 8'. However the resource files XPaint* Messages* Help* should then preferably be converted back to a 8bit locale, otherwise some strange characters will show up in the menus, at least in languages which use non ASCII characters. 2010-02-17 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.16.1 * fontSelect.c, misc.c : introduced clickFocusCallback which fixes keyboard focus in fontSelect and in color picker ascii text input widgets (problem occurred e.g. under KDE). Use 2.8.16 with xpaint-2.8.16-keyboard-input.patch. 2010-02-12 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.16 * graphic.c, fontOp.c, fontSelect.c : Xpaint now uses the Xft protocol to display fonts, so that (in particular) all TrueType fonts are available, and the corresponding glyphs are nicely anti-aliased without resorting to a use of sub-pixel resolution. Another benefit is the possibility of rotating text, or even applying arbitrary linear transformation (however, writing fonts with a pattern instead of a plain color is no longer possible directly - for this, one can use instead masks or a fill procedure). * xpaintrw/readWritePNG.c : applied small patch from Stefan Husmann (Arch Linux maintainer) to take care of API deprecation in newer versions libpng-1.4.x. 2010-02-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.15 * PaintRegion.c : finally found and corrected long standing bug which plagued iteration of filters and undo procedures. * fileBrowser.c : several GUI improvements. * xpaintrw/readWritePS.c : improved handling of BoundingBoxes. Fixed bug in the use of 'psselect' which was found on the Fedora bugzilla list (many thanks to Paulo Roma Cavalcanti <promac@superig.com.br> for analyzing the issue) 2010-01-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.14 * graphic.c : memory management simplified and improved; added CRC32 checksum control to avoid duplicates. * xpaintrw/readScript.c : fixed potential bug occurring in rare circumstances. * Various fixes in batch scripts 'imgmerge', 'batch.c' and 'xpaint_ocr' GPLv3 licence specified there. * Included new debian files released by Debian maintainer Josué Abarca * xpaint.man.in : corrected a ­ issue (thanks again to Josué Abarca) 2010-01-20 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.13 * Paint.c : corrected nasty bug * graphic.c : GUI improvements. Border color of paint widget now indicates status of image (red: non editable, green: resize enabled, blue: has an alpha layer, black: otherwise). * image.c : ImagaToPixmap() et al modified so as to manage alpha channel mode once for all (rather than repeating this for each of the image loaders). 2010-01-18 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.12 * misc.c, graphic.c : some more fixes for alpha channel issues. 2010-01-17 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.11 * fileBrowser.c : browserResized() : included patch for accommodating bug in certain versions of the Xaw3d library * Paint.c : PwGetPixmap() modified so as to work independently of zoom value. Saving a file under zoom<1 now works !! * graphic.c : there is now support for adjusting join and cap style of lines being drawn. Fixed handling of memory box. * Code for alpha channel completed and made more robust (substantial changes in graphic.c, Paint.c, PaintRegion.c) 2010-01-10 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.10 * graphic.c : many GUI improvements. Some alpha channel fixes. (arbitrary linear transformation of alpha channel still not implemented). * lineOp.c : fixed arrow and vector drawing under zoom != 1 (were correctly written to pixmap but incorrectly shown on canvas). * fileBrowser.c : a few cosmetic changes to make code more robust. * xpaintrw/readWritePNG.c : fixed readPNG() for non transparent PNG images possessing a palette of colors. 2010-01-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.9 * polygonOp.c : segfault bug corrected. Polygonal regions can now be selected correctly under zoom values other than 1. * xpaint.h : various API modified to include alpha channel (in images, paint canvases, clipboard, memory stack...) * PaintUndo.c : implemented alpha channel in Undo stacks * PaintRegion.c, graphic.c : routines to set/show/edit the alpha channel are now implemented in a fairly complete manner. * readWritePNG.c : xpaint now saves a canvas with an alpha channel as a PNG file with a corresponding alpha channel. * readWriteXPM.c : xpaint now saves a canvas with an alpha channel as an XPM file with a "None" color (reduced to a 0/1 mask). (By default, alpha<128 is considered to be transparent and alpha>=128 to be opaque. The threshold value 128 can be changed from the options.) * readGIF.c : xpaint can now read alpha channel of GIF89 files possessing transparent pixels (setting transparent pixel in writeGIF.c not yet implemented). 2009-12-09 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.8 Interim release with partial support for transparent images; alpha channel is now correctly read when loading PNG and XPM images. Easier management and writing support will be implemented in 2.8.9. * xpaintrw/readGIF.c : xpaint will now open all frames of animated GIF images, and not just the first frame - support of this feature was already there, but had never been made accessible from the GUI ! * xpaintrw/readWritePNG.c : xpaint now detects PNG images possessing an alpha channel and loads them properly. The RGB values and alpha channels can be edited separately (but not yet mixed back easily). * xpaintrw/readLXP.c : preliminary implementation of layered xpaint image format LXP. File share/c_scripts/templates/script.c used as template. * pattern.c : new button introduced to modify background color (thus duplicating functionality from the separate background color widget). * fileBrowser.c : widget improved. Four new buttons added to get directly to home, root and current directory, and to show/hide dot files. The browser of loaded files now has buttons for editing C scripts and managing layers (implementation somehow works, but is not yet complete). * iprocess.c : corrected segfault bug occurring in certain circumstances, e.g. when loading recursive image C-scripts. In particular, "layer" example share/c_scripts/layers/combine.c now works again. 2009-11-18 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7.3 (very minor changes) * graphic.c : corrected very tiny bug in resizeCanvas() routine which resulted in occasional disappearance of Fatbits cursor, when the canvas was resized under certain zoom reduction values. * fatBitsEdit.c : added convenience routine FatbitsEditorDestroy(paint) (not yet used inline - could possibly be used from C scripts). * small addition in Local.config file 2009-11-15 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7.2 (very minor changes) * Further cosmetic fixes and code cleaning ; X error handler improved (just in case). * snapshot.c : taking a snapshot from the tools window now unmaps the window (so that any window stacked behind can be captured); spurious warning 'bad pixmap' from libX11 has been eliminated. 2009-11-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7.1 (released only as a patch to 2.8.7). * Further cosmetic improvements and code cleaning not really worth bothering (e.g. popup menus which, when users change their mind and no longer want to use them, may not immediately popdown as would be expected when clicking randomly outside, e.g. on the canvas ...) 2009-11-04 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7 released. * graphic.c, menu.c, PaintEvent.c : a substantial number of cosmetic changes made to further improve the menu behaviour. * fileName.c renamed as fileBrowser.c * fileBrowser.c : Some "flickering" issues in the browser have been corrected. The file browser of "loaded files" now include ad hoc fields and buttons for modifying the scaling of vector format images (PS/PDF/DVI/TeX/LaTeX/SVG) as well as for selecting a page in multi-page documents. Now, Xpaint can thus be used as a practical viewer for such documents - though for this purpose it's certainly not as fast and optimized as specialized viewers ... * readWritePS.c : multipage PostScript files require 'psselect' from the psutils package. (This is a very simple program so we may consider including it in the next version of xpaint to remove that dependency.) DVI files are now accepted, along with PS/PDF/TeX/LaTeX/SVG. * print.c : selecting PDF option now (really) saves file as PDF rather than PostScript. * Merged Changelog and (unmaintained) file Doc/CHANGES 2009-10-27 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.6.1 released. * bug fixes : main.c : xpaint did not accept setting default zoom < 100% through command line graphic.c : underestimated evaluation of canvas window size for large images, resulting in image not being fully displayed even when it could. PaintRegion.c : segfault bug occurring in certain circumstances when dragging a region outside viewport, in region transparency mode. 2009-10-26 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.6 released. * Extensive changes in many parts, to provide capability for zoom = 1/n, while performing all possible operations under such a zoom. This means that anti-aliasing can be obtained by using e.g. zoom = 1/3 and then cloning the canvas with the given reduction. * magnifier.c: Introduced a magnifying glass, based on code of 'xlupe' by Thomas Runge (runge@rostock.zgdv.de) * operation.c: menu now includes an item to open the magnifying glass, and a browser for all images which have been opened or loaded from the command line. * fileName.c : the buildBrowser() routine has been extended to have a mode ('type=4') showing the list of loaded images. * graphic.c: edit menu includes 2 items for cloning the canvas (with or without reduction) * a lot of bugs have been ironed out, e.g. a crash in the polygon selection area, and a very long-standing bug in the memory management of menu.c which used to cause (fortunately unfrequent) random crashes. 2009-10-16 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.5 released. * graphic.c, user visible changes : added a zoom button and a new toggle allowing to resize the canvas, using mouse or arrow keys. Several other related improvements have been made for zooming/resizing, along with a few minor fixes (the layer example "layer.c" compiles again without segfaulting.) 2009-10-13 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.4 released. * pattern.c : Fixed segfault bug in color/pattern budget, which occurred when creating new brushes. * print.c : added new toggle so as to possibly produce a compressed PS file, or send to printer a PDF file rather than a PS file. The annoying printing notification popup has been replaced by a less intrusive notification. Many other small improvements - e.g. output postcript file can be selected with a file browser. * xpaintrw/readWritePS.c : the PostScript generator has been considerably improved. XPaint is now capable of producing strongly compressed PostScript files, of weight increased hardly by more than 30%-35% when starting from a PNG file of the same resolution, and the process is faster than before - it seems that even gimp does not yet take care of this, its PS files can often be reduced to less than 50% of their current size (huge thanks to Peter Szabo for showing the way with his sam2p program.) A standalone 'ppmtops' utility has been included for potential re-use elsewhere. * Clarification of the licence. Xpaint is an old program, many parts of which were written at a time when the GPL was not so pervasive. To the best knowledge of the current maintainer, all parts where written under permissive licences which are compatible with the GPL. J.-P. Demailly thus puts under the GPLv3 all code developped by him in the last twelve years - that's probably more than 30% of the total amount of code, and the program as a whole should thus be considered as GPLv3. All related utilities ('ppmtops', C scripts, etc) are also put under the GPLv3. 2009-10-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.3 released. * Included 2 patches from Mandriva packagement experts, fixing some minor compilation problems and potential security issues. * xpaintrw/readWritePS.c : xpaint is now able to display TeX, LaTeX, PDF and SVG files using image conversion from external ad hoc programs. Option -dpi <dpi value> can be used to adjust size of image. 2009-10-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.2 released. * pattern.c : found and fixed two long standing segfault bugs (fortunately occurring only in not so frequent circumstances) * Set default gridcolor to grey80 on TrueColor displays, a less intrusive color than black. 2009-09-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.1 released. * Introduced rectangular (not just square) snap grids. Color of grid can be changed to arbitrary color. * graphic.c : corrected segfault bug in simplemenu switcher (selector popup). 2009-09-27 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.0 released. * Menu popups have been entirely reworked. Their behaviour is now more fluid - and similar to the default behaviour of modern toolkits like GTK/qt - so users should feel less disturbed. (this required numerous changes in menu.c and app-defaults) * Fixed size handling of Canvas windows under maximize/unmaximize procedures. * Stability should be considerably improved. Some memory leaks have been removed as well. * Added new command line options: -undosize <num> (set undo memory limit) -operation <num> (start with operation <num> set in tool panel) -filter <file> (define filter by using <file> as C-script) -proc <file> (define procedure by using <file> as C-script) * Added support for using menu popups in C script filters See share/c_scripts/filters/clean.c for an example. This means that C script filters can involve adjustable parameters which can be easily changed (i.e. without needing a recompilation each time the parameters are changed.) * Added support for using menu popups in C script procedures See share/c_scripts/procedures/proc_with_params.c for an example * iprocess.c, xpaintrw/readScriptC.c : added support for running batch jobs (for mass processing of images, using xpaint as the engine); see share/c_scripts/batch/batch.c share/bin/imgmerge * Added batch script 'imgmerge' which uses xpaint to convert and concatenate image files into a single PDF file. This also makes use of Peter Szabo's 'pdfconcat' program (GPL, included). * Added support for OCR (with the ocrad engine by default) The OCR engine(s) can be specified in the bash script /usr/share/xpaint/c_scripts/bin/xpaint_ocr This means that xpaint can be easily used as a GUI for command line OCR engines ('xpaint_ocr' makes use of the 'xless' pager, by default, but any other pager/editor can be used instead). * brushOp.c: system wide brushes are no longer hardwired, and can now be configured from the SHAREDIR directory. * Added additional brushes provided by John David Gray <kahdgarxi@gmail.com> which are useful to draw electronic circuitry. Also included a patch of him introducing three new patterns and extending the drawVisibleGrid() routine in Paint.c * Fixed (and improved as well) behaviour of snap and grid routines, also using ideas of JD Gray. * Changed rotations to use trigonometric positive rotation rather than clockwise. This was too unnatural to me ! * Numerous bug fixes. Thanks to Mattis Michel <sic_zer0@hotmail.com> for correcting a bug in the snap routines and for providing further improvements; Mattis noticed - and urged correction - of a critical bug in the "Load clipboard" procedure; he also suggested putting WM hints on minimal size of widgets so as to avoid random crashes under wild resizing of the windows. * Updated the man page - which had actually been neglected for a couple of years ...
2023-01-22 18:41:52 +01:00
bin/xpaint_generate_toolicons
lib/libxpaintrw.la
man/man1/imgmerge.1
man/man1/xpaint.1
share/applications/xpaint.desktop
share/icons/hicolor/scalable/apps/xpaint.svg
share/xpaint/XPaintIcon.xpm
xpaint: update to release 3.1.4, using wip/xpaint. Packaged in wip by @adam + a couple of changes by @vins Changes (since version 2.7.8) 2021-08-14 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.4 * arcOp.c : the DrawArc procedure now checks that the arc is not drawn with a zero linewidth - otherwise some pixels could have been missing, and any later fill area procedure could then have led to unexpected results. This minor bug (or misbehavior?) has been fixed. * image.c : if installed, dvipng can now be used as an alternative to the libdvipgm library, at the expense of a small slowdown in the output. This allows TeX input even without libdvipgm installed, dvipng being installable independently. 2021-02-12 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.3 * graphic.c : the "Text" menu has been substantially improved. Text and TeX/LaTeX input of arbitrary length, size, color can now be edited and converted to either a bitmap image or vector PostScript/PDF with embedded fonts. * More extensive testing - and a lot of small details fixed 2021-01-28 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.2 * Small improvement of versions 3.1.0, 3.1.1 with bug fixes. Xpaint can now be compiled without dvipgm (at the expense of losing some TeX functionality). Thanks to testers for feedback! * This version supports the use of layers (files *.lxp = Layered XPaint files). This is done via the C script editor. Any collection of images can be combined into a new merged image by a suitable C procedure. See example in directory share/c_scripts/templates/ * Compiling against libkpathsea and libdvipgm (from the dvipgm-1.x.tar.bz2 package, x >= 2) is needed to enable TeX input processing - otherwise the compilation scripts will disable TeX input. A minimal TeX environment is also needed to allow TeX interaction. * xpaintrw/readLXP.c : routines for reading LXP files * iprocess.c : routines for the creation of LXP files * image.c : ImageDup() procedure added * operation.c : new option for cleaning temporary files * This version has reached all capabilities that had been planned since a long time: layer handling, vector graphics operations, possibility of TeX input and of mathematical drawings, programmatic creation of images, filters and graphical functions. Therefore Xpaint will probably enter into maintainance and bug correction mode. 2021-01-27 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.1 * Small improvement of version 3.1.0 with bug fixes. * This version supports the use of layers (files *.lxp = Layered XPaint files). This is done via the C script editor. Any collection of images can be combined into a new merged image by a suitable C procedure. See example in directory share/c_scripts/templates/ * Compiling against libkpathsea and libdvipgm (from the dvipgm-1.x.tar.bz2 package, x >= 2) is needed to enable TeX input processing - otherwise the compilation scripts will disable TeX input. A minimal TeX environment is also needed to allow TeX interaction. * xpaintrw/readLXP.c : routines for reading LXP files * iprocess.c : routines for the creation of LXP files * image.c : ImageDup() procedure added * operation.c : new option for cleaning temporary files * This version has reached all capabilities that had been planned since a long time: layer handling, vector graphics operations, possibility of TeX input and of mathematical drawings, programmatic creation of images, filters and graphical functions. Therefore Xpaint will probably enter into maintainance and bug correction mode. 2021-01-24 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.0 * This version now supports the use of layers (files *.lxp = Layered XPaint files). This is done via the C script editor. Any collection of images can be combined into a new merged image by a suitable C procedure. See example in directory share/c_scripts/templates/ * Compiling against libkpathsea and libdvipgm (from the dvipgm-1.x.tar.bz2 package, x >= 2) is needed to enable TeX input processing - otherwise the compilation scripts will disable TeX input. A minimal TeX environment is also needed to allow TeX interaction. * xpaintrw/readLXP.c : routines for reading LXP files * iprocess.c : routines for the creation of LXP files * image.c : ImageDup() procedure added * operation.c : new option for cleaning temporary files * This version has reached all capabilities that had been planned since a long time: layer handling, vector graphics operations, possibility of TeX input and of mathematical drawings, programmatic creation of images, filters and graphical functions. Therefore Xpaint will probably enter into maintainance and bug correction mode ... 2021-01-21 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.5 * Vector drawing capabilities improved and hopefully almost complete. * Xpaint now allows the use of TeX input in mathematical drawings, provided it is compiled with the compilation flag -DHAVE_DVIPGM. The libdvipgm and libkpathsea libraries are required for this. * The new 'vxp2tex' utility converts VXP data into a TeX file that can be used with pdftex or pdflatex. * lineOp.c : ticks and graduation procedure added. * graphic.c, image.c, iprocess.c : several fixes and improvements. 2021-01-09 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.4 * This version has acquired substantial vector drawing capabilities. Just open 'Options->VXP vector data Editor' to enable vector drawing operations. Most of them are recorded in a plain text "VXP format" *.vxp. The external program 'vxp2ps' converts these data into (vector) postscript, and 'vxp2dkw' can be used to convert them for use in in the handwritten note editor deskwrite. Such Postscript files can be easily converted to PDF or SVG. * Xpaint can also read and rasterize *.vxp files (but at this point all operations that are not translated right away into vector data are ignored, even though they are recorded in the VXP file). * graphic.c, operation.c, misc.c, iprocess.c : extensive additions to implement VXP data processing. * share/c_scripts/procedures : canvas+vxp.c added as a new example. C scripts can be used to produce VXP data. 2020-08-04 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.3 * This version of xpaint requires in principle libXaw3dXft-1.6.2h (but would run with 1.6.2d,e by removing the compilation flag -DHAVE_NEWEDITINGSTYLE) * graphic.c: a new option has been introduced, allowing xpaint to use more easily graphics tablets, more specifically the user space drivers provided with deskwrite on Sourceforge. * menu.c: SetFocusOn() has been fixed. This allows the input focus to be preserved in active text fields, even when the cursor leaves the top parent window (as is usually expected with modern desktop interface guidelines ...) * iprocess.c: small improvement of the Gamma/RGB filter. * Further small fixes throughout, especially in the build scripts and the debian packaging. 2020-06-29 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.2 * This version of xpaint requires libXaw3dXft-1.6.2h (or later versions of the libXaw3dxft library - the changes between 'f', 'g' and 'h' merely consist of introducing a new parameter to allow scrollbars of text widgets to be on the right side, plus some minor improvements in the edition process) Removing -DHAVE_NEWEDITINGSTYLE in Makefile.am would make xpaint compatible with earlier versions 1.6.2d,e of libxaw3dxft with essentially no change, except for the text input editing behavior of Backspace and Delete keys. * xpaintrw/readWritePNM.c: is now using a more recent version of libnetpbm, rather than the completely obsolete version from the 1990's that was embedded in the original code of xpaint. One consequence is that libnetpbm10-dev or preferably libnetpbm11-dev are now needed to compile xpaint, another one is that PPM/PAM files with an alpha channel can now be read and written. Adjust the NETPBM defines (-DNETPBM10 or -DNETPBM11) according to the installed version of libnetpbm. * help.c: the help widget now has two independently resizable panes (topics and explanations). * pattern.c: correction of old bug (that had however no visible effect before 3.0.1). * graphic.c: exchange of primary and secondary colors or patterns is now accessible by clicking on the red cross below the color picker (shown as an eye). Similar addition for pattern.c 2020-06-16 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.1 * This version of xpaint requires libXaw3dXft-1.6.2f (or later versions of the libXaw3dxft library). Removing -DHAVE_NEWEDITINGSTYLE in Makefile.am would make it compatible with earlier versions 1.6.2d,e with essentially no change except for the text input editing behavior of Backspace and Delete keys. * print.c: by default, xpaint no longer depends on cups-bsd commands, (but they can be re-enabled via an adjutsment of the app-defaults files). * xpaintrw/readWritePS.c: the BoundingBox of a file saved as PS/PDF should now be set appropriately. * graphic.c, *Op.c: extensive additions. Xpaint can now record all operations that are performed as vector data, in the so called VXP format. The recording starts as soon as the VXP editor under the Options menu is started, and these data can be saved into a file <name>.vxp * readWriteJP2K.c: has been ported to work with openjpeg version 2 (JPEG2000 format), including alpha channel. * Various other small fixes throughout (SVG import, ...) * At a later stage, it will be possible to convert these VXP files to other vector formats such as eps, pdf or svg, and import them back to xpaint. There will be also an option to insert TeX input and convert the data into a (La)TeX file. 2020-05-25 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.0 * bitmaps/toolicons: new set of icons, generated from SVG data. * app_defaults: the app_defaults files have been reorganized so as to separate linguistic strings and other data, especially widget sizes. Three sizes are now offered: big, medium, small, to accommodate HiDPI screens or low resolution screens. * operation.c: the tool window is now fully resizable. In order to actually change the size of icons, users can copy /usr/share/xpaint/bitmaps/toolicons/ into $HOME/.xpaint/toolicons/ and generate icons with larger or smaller size there. Just type ./generate_icons <height> in $HOME/.xpaint/toolicons/ to produce a new set of icons with the given height (the xpaint package is distributed with icons of default height 36). The shell script "generate_icons" requires inkscape to work. * graphic.c: the parameter btnheight is now used to resize the palette elements as well as the height of buttons. This is useful for HiDPI screens (as well as for lower resolution screens of older computers). * main.c: new option -blind that keeps xpaint running under the hood when batch procedures are invoked. * xpaintrw/readWritePS.c: SVG import has been updated to work with inkscape-1.0. * The change of major number in this version anticipates the introduction of some vector graphics capabilities in the versions 3.x.y to come. (Right now, the only vector graphics capabilities are PS, PDF, SVG import). 2020-05-21 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 2.10.3 * lineOp.c : under the "segment" operation, users will now find new "Position" and "Measurement" tools. These tools do not draw anything, but instead they record the locations of pixels that are clicked on, and compute lengths and angles. * iprocess.c : The "Perspective" filter has been vastly improved. It should now enable users to correct the perspective of a distorted picture taken by a camera, or to create artificial perspective when producing a drawing. This can be used in connection with the new "Position" tool, so as to specify points on the canvas. * iprocess.c : The API of C scripts introduces a new public procedure PixelInterpolate(unsigned char *op, Image *input, double x, double y) that can be used to smooth pixels, under transformations that map integer coordinates into float values (as is the case e.g. for rotations or homotheties with arbitrary factor). This will sometimes improve the output of such operations (but may also make the image fuzzier). * Two new C scripts "similarity.c" and "projective.c" have been added. They show in particular how to exploit the PixelInterpolate() procedure. * Help and message files have been edited to explain details of the new functionalities. 2017-11-13 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 2.10.2 * Minor compilation fixes in iprocess.c and xpaintrw/readWriteJP2K.c thanks to the OpenSUSE team. * Bug in operation.c : exitPaint(...) could trigger a segfault when quitting xpaint without saving the canvas. Thanks to Anthony J. Bentley from the OpenBSD team for reporting the bug. * misc.h : srandom() is nowadays always of void type. * Minor fixes for the calculation of the maximum canvas size. 2016-12-10 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 2.10.1 (a substantial update!). * Xpaint includes a new command line option -btnheight that adjusts appropriately the size of all internal widgets in case a big menu font is used (e.g. by setting the option -menufont , or by changing the app-defaults file). This is very useful if you have a high resolution screen. Many small local modifications of various source files in the main tree have been necessary for this. * A new option -toolmode 0,1,2 can be used to initialize the display of the tool window. Also adjustable dynamically by resizing that window. * Default canvas size has been set to 1024x768 Related command line options are -canvassize and -winsize that can be used independently to adjust the default size of canvas and main window. * The app-defaults files and help files have been modified to accommodate the above additions. * The "Print" widget has been improved, and its menubar is now again available to adjust page formats (a bug introduced probably a long time ago prevented it to work !) * A newer version libXaw3dXft-1.6.2e.tar.bz2 has been posted. The only change is a 3 lines addition that circumvents (what seems to be) a bug occurring in certain X11/Xorg implementations, e.g. the intel driver, version 2.99.917. Otherwise this will make no difference. * Changed the library name librw to libxpaintrw to avoid shared library conflicts. Thanks to Michael Orlitzky for pointing out the issue. * Applied a number of patches from gentoo.org that substantially improve the compilation process. Thanks to Julian Ospald <hasufell@gentoo.org> 2015-01-02 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10.3 * Port to the newer libXaw3dXft-1.6.2d.tar.bz2 (the latter is actually a requirement, this version no longer compiles with libXaw3dXft-1.6.2c). The point is that libXaw3dXft-1.6.2d has improved binary compatibility with plain libXaw3d-1.6.x * Only further cosmetic changes, no change in functionality. 2014-04-17 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10.2 * Minor fixes in 'configure.ac' and 'configure.old' scripts Xpaint can now be compiled again with plain Xaw or Xaw3d (this is NOT recommended, Xaw3dxft definitely gives much better results !) Thanks to Stefan Husmann (Arch Linux) for helpful reports in this respect. * 'configure' (based on autotools) and 'configure.old' (based on imake) should in most cases give essentially equivalent binaries. * PDF files are now read by using mudraw if mupdf & mupdf-tools are installed (otherwise Xpaint falls back to the formerly used solution: pdf2ps + ghostscript, a much slower one...) * Xpaint can now even import libreoffice files as images as soon as libreoffice is installed (assuming /usr/bin/libreoffice is a valid path to the main program) 2014-04-09 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10.1 * Includes the "version_and_focus_patch_for_2.9.10" and other minor fixes. * The alpha channel menu now includes a new function that allows editing as RGB values the image that appears when transparency is applied on a background of the selected background color - white being the default (this removes the transparency levels afterwards, so as to get a pure RGB image). * Bug (probably very old) corrected : selection of background color always resulted in black being chosen ! 2014-03-03 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10 * This version should preferably be compiled with libXaw3dXft-1.6.2c, although it still works Ok with libXaw3dXft-1.6.2b. * readWritePNG.c: fixed bug occurring when writing grayscale images possessing no more than 16 colors. * readWriteJPEG.c: JPEG images in CMYK colorspace are now handled properly (they will still be memorized as RGB, so the original CMYK information is lost, but at least they are shown correctly). * fileBrowser.c: "Save" and "Save as" menus now include the option to adjust JPEG quality between 50% and 100% (default is 90%) * fileBrowser.c: improved logic : the file browser now remembers file names when changing directories, and also takes into account default extension when specifying file format. * fileBrowser.c: thanks to a new feature from libXaw3dXft-1.6.2c (possibility of creating colored lists), xpaint now implements file type coloring in its file browser - at this point this is guessed merely from the suffix of the file. * operation.c: Canvas menu reorganized - it is now named "File menu" so as to conform to general use. Except from reordering the items, the main functionality is unchanged. * pattern.c: bug fixes. A segfault problem in the zoom selector has been corrected, and contextual help has been fixed. 2013-01-27 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.9.4 * This version should be compiled with libXaw3dXft-1.6.2b * RGB channel separation procedure fixed and improved * Fix in CRC data handling of regions in memory. * XPaint now remembers better the position of regions saved in memory. The recorded position can now be changed or reset to origin through the memory management menu. * compilation fix for pgf2pnm with newer libpgf-6.12.24 * Avoid "bool" variable throughout, as this is a typedef in <stdbool.h> * Fixes to configure scripts, thanks to Daniel Macks (fink project) * Minor GUI improvements 2012-02-14 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.9 * Xpaint now uses (or tries to use!) autotools. * libxaw3dxft is now a separate package (but is still a requirement, and in fact should be installed before). * xpaintrw/rwTable.c : segfault fix (occurring randomly) fixed in readMagic(). * minor fix in fontSelect.c, certain fonts were possibly missing in the font browser, in some rare circumstances. * very minor fix of scrollbar behaviour in graphic.c. * misc.c : new procedure SetWMInputHint() that helps solving some quirks. 2012-01-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8.4 * minor fixes in fileBrowser.c (adjustable height of text entry for the file name, resize procedure improved). 2011-10-13 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8.3 * xpaintrw/pgf-util/Makefile : add '-fpermissive' flag to allow compilation with recent (more picky!) versions of g++ * Xaw3dxft/Viewport.c : position of scrollbars can now be adjusted through parameters sbShift[X,Y][1,2]. No public API change, so this addition should be upward compatible. * graphic.c : some small fixes in the shellHandler routine to accommodate odd behavior of scrollbars with xorg recent versions, using the new sbShift feature. 2010-12-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8.2 - nothing really new, just very small fixes * Integrated patch to facilitate compilation with gcc-4.5 * app-defaults files : slight improvement of X event management in pull-down menus. * print.c : slight improvement of X event management in print widget. * fontOp.c : fixed color issue (color not initialized) when moving written text with arrow keys. * Very small changes in Xaw3dxft (minor Xaw3dXft.h API update) 2010-11-08 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8 * Xaw3dxft : code clean-up. New files Xaw3dXft.h and Xaw3dXft.c now contain the specific Xaw3dxft parameters and routines. A couple of small improvements to correct minor quirks in the menu entry highlighting behaviour. * main.c, graphic.c : changes made to accommodate the API changes introduced in Xaw3dxft. Further code clean-up. * image.h, graphic.c, iprocess.c : modified definition of the imageprocessinfo struct, so that hopefully compilation still works with gcc 4.5 (gcc-4.5 appears to be more picky with struct definitions). Thanks to Fedora maintainer Paulo Roma Cavalcanti <promac@gmail.com> for reporting the issue. 2010-11-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.7 * Arrow keys and "Backspace", "Return", "Escape" keys can now be used in all drawing operations whose effect is not immediate, especially all routines from arcOp.c, lineOp.c, polygonOp.c, freehandOp.c, splineOp.c, TextOp.c Arrow keys allow moving objects around before they are completely drawn, "Escape" restarts the operation from scratch, "Return" terminates the operation, and "Backspace" rewinds the course of operation backwards. * freehandOp.c : this operation now allows to draw arbitrary combinations of freehand and polygonal shapes and should be easier to use or to modify interactively thanks to the key bindings. * sprayOp.c : minor code clean-up. * updated accordingly Help files. 2010-10-25 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6.4 A couple of small improvements in spline, polygon, text and color operations. * fontOp.c, splineOp.c, polygonOp.c : implemented "Backspace" key action, i.e. removing last point or last character; "Escape" now entirely restarts the operation from the beginning. Other small improvements (including correction of a potential segfault occurring in some strange circumstances...); polygonOp() code is now also much simpler and easier to read. * graphic.c : multiple clicks on any of the three color/pattern selection discs now switch primary and secondary colors/patterns. * updated accordingly Help files. 2010-10-08 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6.3 - minor bug fix release - nothing really serious. * ops.h : minor compilation issue fixed. * graphic.c : corrected segfault bug of RegionToRGBA channels (occurring only when alpha channel was to be saved.) * chroma.c : fixed minor scrolling issue in color variance scrollbars. * graphic.c : added new menu lines to proceed more easily to editing of alpha channels or images in memory. * updated accordingly Help files, messages and app-defaults files. 2010-09-26 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6.2 * print.c : printing was completely broken, as a result of using double values instead of float values. Reverted to float ! * chroma.c, color.c, magnifier.c, fontSelect.c : revert to float ! * iprocess.c : fixed bug occurring only in very rare circumstances (creation of image with an alpha channel, being edited and compiled on the fly through the embedded C-script editor) * graphic.c : small improvement in ModifyRGB (new routine to rescale gray levels linearly from given thresholds). 2010-09-14 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6 * xpaintrw/rwTable.c, xpaintrw/readWriteTGA.c : fixes in TGA format, so as to prevent that xpaint could hang on certain non TGA files. Make sure anyway that TGA is parsed as a last resort, since TGA is a strange format without signature. * image.c, iprocess.c, graphic.c : substantial improvements in filter routines : - Added new "Merge" filter : helpful to combine smoothly an image with the underlying canvas. Works according to 4 different modes - Added new "Distortion" filter which can be used to produce local deformations - Added powerful Floyd-Steinberg algorithm (color quantification enhanced with a diffusion process). - Replaced "ModifyRGB" by a generalized RGB transformation procedure with 7 different modes, including Gamma correction (with independent r_gamma, g_gamma, b_gamma parameters), and linear transform. - Fixed several shortcomings of "Normalize contrast" and "Emboss" routines; "Emboss" now has 2 parameters allowing linear correction. - Renamed "Tilt" as "Projective Transform" with several enhancements. - Renamed "ImageCopy" as "ImageCopyData" which says more accurately what it does. * graphic.c : Memory menu : management of R,G,B and alpha channels : - Added extraction of red, green, blue, alpha channels from region - Added merge procedure for those channels * msgedit.c : new utility which can be used to extract strings from the English version of "Messages" and combine them with a partially localized "Messages_XY" for any other language - useful as well to avoid discrepancies between languages! * Many updates to Message and Help files. 2010-09-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.5 * xpaintrw/readWritePNG.c : fixed WritePNG() for alpha channel images possessing less than 16 black and white colors, which xpaint tried to write in an incorrect PNG mode. * graphic.c : fixed segfault bug when invoking "Clone Canvas" procedure. * xaw3dxft : a few hacks to work around minor display bugs related to Xft anti-aliasing/composition effects on certain X servers (especially proprietary NVIDIA ...) * main.c : new command line options -tooltips, -notooltips * operation.c, graphic.c : implemented tooltips (they can be disabled from the tools/help menu). * man page and help files : updated. 2010-08-15 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.4 * xpaintrw/readWriteTGA.c : added support for TGA format (borrowed mostly from mtpaint project). * xpaintrw/rwTable.c : code clean-up. * Paint.c, PaintRegion.c : fixes for certain complex situations involving region selection with masks and alpha channel. (Segfault could occur in Fatbits editor under those circumstances). * graphic.c : Suppression of alpha channel could lead to segfault. 2010-08-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.3 * xpaintrw/readWriteICO.c : imported a lot of code from the 'icoutil' GPLed package. As a result, xpaint can now read most Windows ICO files, even those containing embedded compressed PNG/JPG images which icoutil cannot fully open. Support for ICO masks as alpha channel, and for writing single image ICO files. * xpaintrw/readWritePGF.c : PGF image format support improved, thanks to 'pgf2pnm' provided by Christoph Stamm <christoph.stamm@fhnw.ch> (creator of the PGF format). libpgf and libpgf-dev are needed only optionally to compile 'pgf2pnm', which then provides PGF support in xpaint. However, xpaint itself does not link with libpgf and does not need libpgf-dev to be compiled. The alpha channel of PGF images is fully supported. * graphic.c : improvements/bug fixes in the "Clone with Zoom" procedure. Now works for zooming/downscaling images, with/without interpolation, and for adjusting alpha channel as well. * graphic.c, PaintEvent.c : much more powerful implementation of the "Delimit region" procedure, according to six different options (connected/non connected/color range regions, or complements of such regions). * The help files have been updated to reflect all current functionality of XPaint (Spanish help additions should be revised by a native speaker !) 2010-07-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.2 * xpaintrw/*.c : huge code clean-up. Saving files now show up a warning when the image possesses an alpha channel, but the format chosen does not support it (completely or in part). Note: saving in PNG should almost always be a safe choice ... * xpaintrw/readWriteTIFF.c : support substantially improved, including alpha channel read/write. More exotic TIFF formats unsupported. * xpaintrw/readWriteBMP.c : many more BMP image format types are now supported, including full support for images with an alpha channel (read/write). * xpaintrw/readWritePNM.c : provisions made to include support for alpha channel in PNM (this is a specific extension of xpaint : an RGB image concatenated with a gray level image of the same size - and '\n' in between - is viewed as RGBA data). * xpaintrw/readWriteJP2K.c : added support for JPEG2000 image format. Either libopenjpeg (default) or libjasper (optionally) can be used. Full support for alpha channel (requires openJPEG from subversion at this point now, since "stable" version 1.3 has insufficient alpha channel implementation...). * xpaintrw/readWritePGF.c : added support for PGF image format. This requires libpgf and pgf to be installed (but xpaint does not need to be linked against libpgf, and its compilation does not require libpgf-dev files either.) * xpaintrw/readWriteSGI.c : repaired old dormant code to read run-length encoded SGI/Irix image files. Checked to work fine. * xpaintrw/readWriteICO.c : unsupported, very buggy code. Disabled at this point. Instead, use e.g. 'icoutil' to convert those files to PNG ... * dialog.c : very small fix providing UTF8 support in AlertBox window titles (and always raising warning windows). * configure : if libXaw3dxft is installed as a shared library, compilation is now set by default to use it, rather than linking statically xpaint to libXaw3dxf.a 2010-07-18 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.1.5 * graphic.c : added "*allowResize: False" in Canvas*pane*form to prevent annoying widget initialization on certain platforms * xpaintrw/readWritePS.c : small fixes to handle correctly PS/PDF files whose names contain quotes or blank characters. 2010-07-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.1.4 * fatBitsEdit.c, Paint.c , Paintregion.c : several fixes in handling of alpha channel in fatbits editor - some affecting alpha channel image bits. * app-defaults : change zoom labels to correct values xx:1 instead of 1:xx * graphic.c : prevent fatbits editor getting called undeservedly by GetNonDirtyCanvas() routine ; removing alpha channel now moves it to memory rather than destroying it right away. * xpaintrw/readWritePS.c : fix for compilation of TeX/LaTeX files being called from random directories. * minor fixes throughout - thanks to the SUSE-Packman maintainer Detlef Reichelt <detlef@die-mafia.de> for help. 2010-06-02 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.1 * Paint.c , Paintregion.c : fixes in alpha channel routines. * fatBitsEdit.c : many fixes in fatbits editor. Refresh button added * graphic.c : reload file procedure didn't reload alpha channel - this is now fixed. * fontOp.c : potential segfault corrected. * small other (mostly random) improvements. 2010-05-16 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.0 * graphic.c, Paint.c : big improvements in handling of alpha channel ; alpha management menu is now explicit from canvas menu bar. Support still not quite complete at this point (regions do not appear yet in alpha mode). Should come for 2.9.1... * Paint.c, PaintRegion.c : fixed segfault occurring when using region operations in fatbits editor (regression introduced already in 2.8.9 which remained unnoticed up to 2.8.19 ...) * fontOp.c, fontSelect.c : UTF8 support should now be essentially complete. * xpaintrw/readWritePNG.c : fixed bug when writing PNG_COLOR_TYPE_PALETTE images with less than 16 colors (those images were wrongly converted to gray palette...) * several other small fixes and improvements throughout. 2010-04-17 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.19.1 (mostly cosmetic changes) * fileBrowser.c : added "ongoing" mode in File Browser (widget no longer closes when opening an image, allowing to browse files continuously). Performed a substantial code clean-up as well. * operation.c, graphic.c : menu improvements; one can now open an image from any canvas window. * misc.c : added RaiseWindow() routine to comply better with ewmh specifications. XMapRaised() replaced by RaiseWindow() throughout. * "snapshot" replaced by "screenshot" throughout. 2010-04-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.19 * fileBrowser.c : fixed minor annoyance in "save" and "saveas" routines - name of file is now again remembered when a filename has already been set. * graphic.c : fixed bug in ToolSelection switcher; "font" menu replaced by more powerful "text" menu; new entry added to edit/write text from text editor embedded in font browser. * iprocess.c : fixed bug in filter "adjust RGB colors" * fontSelect.c, fontOp.c : text sample is now editable, and this text can be imported on canvases. This includes being able to set fonts, colors, linespacing (etc) as editable text. Any UTF8 encoded file can be read and edited, and a small number of special commands are available to format such texts; for hints on how to use this, see "Doc/TextFormat.doc". Xpaint can thus be used as a text editor (sort of!), useful e.g. to create posters with text and graphics. * xpaintrw/readWritePS.c : support for reading a file as "enriched text". * main.c : new command line options -textfont and -astext, the latter for opening files as enriched text. * share/bin/imgmerge : small tweak to use a static PageInfo struct, otherwise imgmerge would segfault (gcc bug ?) 2010-03-13 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.18 * Minor fixes (UTF8 names in windows, rare segfault when using external viewer) * xpaintrw/readWritePNG.c : xpaint now saves correctly gray images which have an alpha channel. * xpaintrw/rwTable.c : introduces auto-detect mode for writing files (image type is guessed from suffix of file name, and set to PNG as a fallback). * xaw3dxft : changed library name to libXaw3dxft to avoid interfering with regular libXaw3d. Added hooks in 'configure' to (possibly) install and compile it as a shared library. Corrected an issue in xaw3dxft/List.c which could sometimes lead to a fatal X error. * Added man pages for imgmerge and pngconcat (provided by Debian maintainer Josué Abarca) * Removed dependency on Xft.h in PaintP.h which had the unfortunate effect of breaking C-Script compilation, e.g. in imgmerge. 2010-03-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.17 * Xpaint is now fully UTF8 compliant. This has been done rather cheaply by linking statically with a modified xaw3d library which is UTF8 & Freetype aware. This also means that anti-aliasing is enabled in the menus and text widgets, and that the X core font protocol is no longer used anywhere. * By default, Xpaint no longer depends on external xaw/xaw3d/xaw3dg libraries as it is compiled with its own improved xaw3d clone; this only adds approximately 250 kB to the binary executable. * Xpaint can still be used with 8 bit encoding by specifying the command option 'xpaint -encoding 8'. However the resource files XPaint* Messages* Help* should then preferably be converted back to a 8bit locale, otherwise some strange characters will show up in the menus, at least in languages which use non ASCII characters. 2010-02-17 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.16.1 * fontSelect.c, misc.c : introduced clickFocusCallback which fixes keyboard focus in fontSelect and in color picker ascii text input widgets (problem occurred e.g. under KDE). Use 2.8.16 with xpaint-2.8.16-keyboard-input.patch. 2010-02-12 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.16 * graphic.c, fontOp.c, fontSelect.c : Xpaint now uses the Xft protocol to display fonts, so that (in particular) all TrueType fonts are available, and the corresponding glyphs are nicely anti-aliased without resorting to a use of sub-pixel resolution. Another benefit is the possibility of rotating text, or even applying arbitrary linear transformation (however, writing fonts with a pattern instead of a plain color is no longer possible directly - for this, one can use instead masks or a fill procedure). * xpaintrw/readWritePNG.c : applied small patch from Stefan Husmann (Arch Linux maintainer) to take care of API deprecation in newer versions libpng-1.4.x. 2010-02-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.15 * PaintRegion.c : finally found and corrected long standing bug which plagued iteration of filters and undo procedures. * fileBrowser.c : several GUI improvements. * xpaintrw/readWritePS.c : improved handling of BoundingBoxes. Fixed bug in the use of 'psselect' which was found on the Fedora bugzilla list (many thanks to Paulo Roma Cavalcanti <promac@superig.com.br> for analyzing the issue) 2010-01-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.14 * graphic.c : memory management simplified and improved; added CRC32 checksum control to avoid duplicates. * xpaintrw/readScript.c : fixed potential bug occurring in rare circumstances. * Various fixes in batch scripts 'imgmerge', 'batch.c' and 'xpaint_ocr' GPLv3 licence specified there. * Included new debian files released by Debian maintainer Josué Abarca * xpaint.man.in : corrected a ­ issue (thanks again to Josué Abarca) 2010-01-20 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.13 * Paint.c : corrected nasty bug * graphic.c : GUI improvements. Border color of paint widget now indicates status of image (red: non editable, green: resize enabled, blue: has an alpha layer, black: otherwise). * image.c : ImagaToPixmap() et al modified so as to manage alpha channel mode once for all (rather than repeating this for each of the image loaders). 2010-01-18 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.12 * misc.c, graphic.c : some more fixes for alpha channel issues. 2010-01-17 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.11 * fileBrowser.c : browserResized() : included patch for accommodating bug in certain versions of the Xaw3d library * Paint.c : PwGetPixmap() modified so as to work independently of zoom value. Saving a file under zoom<1 now works !! * graphic.c : there is now support for adjusting join and cap style of lines being drawn. Fixed handling of memory box. * Code for alpha channel completed and made more robust (substantial changes in graphic.c, Paint.c, PaintRegion.c) 2010-01-10 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.10 * graphic.c : many GUI improvements. Some alpha channel fixes. (arbitrary linear transformation of alpha channel still not implemented). * lineOp.c : fixed arrow and vector drawing under zoom != 1 (were correctly written to pixmap but incorrectly shown on canvas). * fileBrowser.c : a few cosmetic changes to make code more robust. * xpaintrw/readWritePNG.c : fixed readPNG() for non transparent PNG images possessing a palette of colors. 2010-01-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.9 * polygonOp.c : segfault bug corrected. Polygonal regions can now be selected correctly under zoom values other than 1. * xpaint.h : various API modified to include alpha channel (in images, paint canvases, clipboard, memory stack...) * PaintUndo.c : implemented alpha channel in Undo stacks * PaintRegion.c, graphic.c : routines to set/show/edit the alpha channel are now implemented in a fairly complete manner. * readWritePNG.c : xpaint now saves a canvas with an alpha channel as a PNG file with a corresponding alpha channel. * readWriteXPM.c : xpaint now saves a canvas with an alpha channel as an XPM file with a "None" color (reduced to a 0/1 mask). (By default, alpha<128 is considered to be transparent and alpha>=128 to be opaque. The threshold value 128 can be changed from the options.) * readGIF.c : xpaint can now read alpha channel of GIF89 files possessing transparent pixels (setting transparent pixel in writeGIF.c not yet implemented). 2009-12-09 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.8 Interim release with partial support for transparent images; alpha channel is now correctly read when loading PNG and XPM images. Easier management and writing support will be implemented in 2.8.9. * xpaintrw/readGIF.c : xpaint will now open all frames of animated GIF images, and not just the first frame - support of this feature was already there, but had never been made accessible from the GUI ! * xpaintrw/readWritePNG.c : xpaint now detects PNG images possessing an alpha channel and loads them properly. The RGB values and alpha channels can be edited separately (but not yet mixed back easily). * xpaintrw/readLXP.c : preliminary implementation of layered xpaint image format LXP. File share/c_scripts/templates/script.c used as template. * pattern.c : new button introduced to modify background color (thus duplicating functionality from the separate background color widget). * fileBrowser.c : widget improved. Four new buttons added to get directly to home, root and current directory, and to show/hide dot files. The browser of loaded files now has buttons for editing C scripts and managing layers (implementation somehow works, but is not yet complete). * iprocess.c : corrected segfault bug occurring in certain circumstances, e.g. when loading recursive image C-scripts. In particular, "layer" example share/c_scripts/layers/combine.c now works again. 2009-11-18 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7.3 (very minor changes) * graphic.c : corrected very tiny bug in resizeCanvas() routine which resulted in occasional disappearance of Fatbits cursor, when the canvas was resized under certain zoom reduction values. * fatBitsEdit.c : added convenience routine FatbitsEditorDestroy(paint) (not yet used inline - could possibly be used from C scripts). * small addition in Local.config file 2009-11-15 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7.2 (very minor changes) * Further cosmetic fixes and code cleaning ; X error handler improved (just in case). * snapshot.c : taking a snapshot from the tools window now unmaps the window (so that any window stacked behind can be captured); spurious warning 'bad pixmap' from libX11 has been eliminated. 2009-11-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7.1 (released only as a patch to 2.8.7). * Further cosmetic improvements and code cleaning not really worth bothering (e.g. popup menus which, when users change their mind and no longer want to use them, may not immediately popdown as would be expected when clicking randomly outside, e.g. on the canvas ...) 2009-11-04 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7 released. * graphic.c, menu.c, PaintEvent.c : a substantial number of cosmetic changes made to further improve the menu behaviour. * fileName.c renamed as fileBrowser.c * fileBrowser.c : Some "flickering" issues in the browser have been corrected. The file browser of "loaded files" now include ad hoc fields and buttons for modifying the scaling of vector format images (PS/PDF/DVI/TeX/LaTeX/SVG) as well as for selecting a page in multi-page documents. Now, Xpaint can thus be used as a practical viewer for such documents - though for this purpose it's certainly not as fast and optimized as specialized viewers ... * readWritePS.c : multipage PostScript files require 'psselect' from the psutils package. (This is a very simple program so we may consider including it in the next version of xpaint to remove that dependency.) DVI files are now accepted, along with PS/PDF/TeX/LaTeX/SVG. * print.c : selecting PDF option now (really) saves file as PDF rather than PostScript. * Merged Changelog and (unmaintained) file Doc/CHANGES 2009-10-27 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.6.1 released. * bug fixes : main.c : xpaint did not accept setting default zoom < 100% through command line graphic.c : underestimated evaluation of canvas window size for large images, resulting in image not being fully displayed even when it could. PaintRegion.c : segfault bug occurring in certain circumstances when dragging a region outside viewport, in region transparency mode. 2009-10-26 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.6 released. * Extensive changes in many parts, to provide capability for zoom = 1/n, while performing all possible operations under such a zoom. This means that anti-aliasing can be obtained by using e.g. zoom = 1/3 and then cloning the canvas with the given reduction. * magnifier.c: Introduced a magnifying glass, based on code of 'xlupe' by Thomas Runge (runge@rostock.zgdv.de) * operation.c: menu now includes an item to open the magnifying glass, and a browser for all images which have been opened or loaded from the command line. * fileName.c : the buildBrowser() routine has been extended to have a mode ('type=4') showing the list of loaded images. * graphic.c: edit menu includes 2 items for cloning the canvas (with or without reduction) * a lot of bugs have been ironed out, e.g. a crash in the polygon selection area, and a very long-standing bug in the memory management of menu.c which used to cause (fortunately unfrequent) random crashes. 2009-10-16 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.5 released. * graphic.c, user visible changes : added a zoom button and a new toggle allowing to resize the canvas, using mouse or arrow keys. Several other related improvements have been made for zooming/resizing, along with a few minor fixes (the layer example "layer.c" compiles again without segfaulting.) 2009-10-13 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.4 released. * pattern.c : Fixed segfault bug in color/pattern budget, which occurred when creating new brushes. * print.c : added new toggle so as to possibly produce a compressed PS file, or send to printer a PDF file rather than a PS file. The annoying printing notification popup has been replaced by a less intrusive notification. Many other small improvements - e.g. output postcript file can be selected with a file browser. * xpaintrw/readWritePS.c : the PostScript generator has been considerably improved. XPaint is now capable of producing strongly compressed PostScript files, of weight increased hardly by more than 30%-35% when starting from a PNG file of the same resolution, and the process is faster than before - it seems that even gimp does not yet take care of this, its PS files can often be reduced to less than 50% of their current size (huge thanks to Peter Szabo for showing the way with his sam2p program.) A standalone 'ppmtops' utility has been included for potential re-use elsewhere. * Clarification of the licence. Xpaint is an old program, many parts of which were written at a time when the GPL was not so pervasive. To the best knowledge of the current maintainer, all parts where written under permissive licences which are compatible with the GPL. J.-P. Demailly thus puts under the GPLv3 all code developped by him in the last twelve years - that's probably more than 30% of the total amount of code, and the program as a whole should thus be considered as GPLv3. All related utilities ('ppmtops', C scripts, etc) are also put under the GPLv3. 2009-10-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.3 released. * Included 2 patches from Mandriva packagement experts, fixing some minor compilation problems and potential security issues. * xpaintrw/readWritePS.c : xpaint is now able to display TeX, LaTeX, PDF and SVG files using image conversion from external ad hoc programs. Option -dpi <dpi value> can be used to adjust size of image. 2009-10-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.2 released. * pattern.c : found and fixed two long standing segfault bugs (fortunately occurring only in not so frequent circumstances) * Set default gridcolor to grey80 on TrueColor displays, a less intrusive color than black. 2009-09-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.1 released. * Introduced rectangular (not just square) snap grids. Color of grid can be changed to arbitrary color. * graphic.c : corrected segfault bug in simplemenu switcher (selector popup). 2009-09-27 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.0 released. * Menu popups have been entirely reworked. Their behaviour is now more fluid - and similar to the default behaviour of modern toolkits like GTK/qt - so users should feel less disturbed. (this required numerous changes in menu.c and app-defaults) * Fixed size handling of Canvas windows under maximize/unmaximize procedures. * Stability should be considerably improved. Some memory leaks have been removed as well. * Added new command line options: -undosize <num> (set undo memory limit) -operation <num> (start with operation <num> set in tool panel) -filter <file> (define filter by using <file> as C-script) -proc <file> (define procedure by using <file> as C-script) * Added support for using menu popups in C script filters See share/c_scripts/filters/clean.c for an example. This means that C script filters can involve adjustable parameters which can be easily changed (i.e. without needing a recompilation each time the parameters are changed.) * Added support for using menu popups in C script procedures See share/c_scripts/procedures/proc_with_params.c for an example * iprocess.c, xpaintrw/readScriptC.c : added support for running batch jobs (for mass processing of images, using xpaint as the engine); see share/c_scripts/batch/batch.c share/bin/imgmerge * Added batch script 'imgmerge' which uses xpaint to convert and concatenate image files into a single PDF file. This also makes use of Peter Szabo's 'pdfconcat' program (GPL, included). * Added support for OCR (with the ocrad engine by default) The OCR engine(s) can be specified in the bash script /usr/share/xpaint/c_scripts/bin/xpaint_ocr This means that xpaint can be easily used as a GUI for command line OCR engines ('xpaint_ocr' makes use of the 'xless' pager, by default, but any other pager/editor can be used instead). * brushOp.c: system wide brushes are no longer hardwired, and can now be configured from the SHAREDIR directory. * Added additional brushes provided by John David Gray <kahdgarxi@gmail.com> which are useful to draw electronic circuitry. Also included a patch of him introducing three new patterns and extending the drawVisibleGrid() routine in Paint.c * Fixed (and improved as well) behaviour of snap and grid routines, also using ideas of JD Gray. * Changed rotations to use trigonometric positive rotation rather than clockwise. This was too unnatural to me ! * Numerous bug fixes. Thanks to Mattis Michel <sic_zer0@hotmail.com> for correcting a bug in the snap routines and for providing further improvements; Mattis noticed - and urged correction - of a critical bug in the "Load clipboard" procedure; he also suggested putting WM hints on minimal size of widgets so as to avoid random crashes under wild resizing of the windows. * Updated the man page - which had actually been neglected for a couple of years ...
2023-01-22 18:41:52 +01:00
share/xpaint/bin/xpaint_ocr
share/xpaint/bitmaps/brushbox.cfg
share/xpaint/bitmaps/brushes/paint0.xpm
share/xpaint/bitmaps/brushes/paint1.xpm
share/xpaint/bitmaps/brushes/paint2.xpm
share/xpaint/bitmaps/brushes/paint3.xpm
share/xpaint/bitmaps/brushes/paint4.xpm
share/xpaint/bitmaps/brushes/paint5.xpm
share/xpaint/bitmaps/brushes/paint6.xpm
share/xpaint/bitmaps/brushes/paintA.xpm
share/xpaint/bitmaps/brushes/paintB.xpm
share/xpaint/bitmaps/brushes/paintC.xpm
share/xpaint/bitmaps/brushes/paintD.xpm
share/xpaint/bitmaps/brushes/paintE.xpm
share/xpaint/bitmaps/brushes/paintF.xpm
share/xpaint/bitmaps/brushes/paintG.xpm
share/xpaint/bitmaps/brushes/paintH.xpm
share/xpaint/bitmaps/brushes/paintI.xpm
share/xpaint/bitmaps/brushes/paintJ.xpm
share/xpaint/bitmaps/brushes/paintK.xpm
share/xpaint/bitmaps/brushes/paintL.xpm
share/xpaint/bitmaps/brushes/paintM.xpm
share/xpaint/bitmaps/brushes/paintN.xpm
share/xpaint/bitmaps/brushes/paintO.xpm
share/xpaint/bitmaps/brushes/paintP.xpm
share/xpaint/bitmaps/brushes/paintQ.xpm
share/xpaint/bitmaps/brushes/paintR.xpm
share/xpaint/bitmaps/brushes/paintS.xpm
share/xpaint/bitmaps/brushes/paintT.xpm
share/xpaint/bitmaps/brushes/paintU.xpm
share/xpaint/bitmaps/brushes/paintV.xpm
share/xpaint/bitmaps/brushes/paintW.xpm
share/xpaint/bitmaps/brushes/paintX.xpm
share/xpaint/bitmaps/brushes/paintY.xpm
share/xpaint/bitmaps/brushes/paintZ.xpm
share/xpaint/bitmaps/elec/busH.xpm
share/xpaint/bitmaps/elec/busV.xpm
share/xpaint/bitmaps/elec/capH.xpm
share/xpaint/bitmaps/elec/capV.xpm
share/xpaint/bitmaps/elec/coilV.xpm
share/xpaint/bitmaps/elec/dioV.xpm
share/xpaint/bitmaps/elec/fetV.xpm
share/xpaint/bitmaps/elec/grid.xpm
share/xpaint/bitmaps/elec/op_amp.xpm
share/xpaint/bitmaps/elec/resH.xpm
share/xpaint/bitmaps/elec/resV.xpm
share/xpaint/bitmaps/elec/tfxV.xpm
share/xpaint/bitmaps/elec/traV.xpm
share/xpaint/bitmaps/toolicons/arcOp.xpm
share/xpaint/bitmaps/toolicons/arrowOp.xpm
share/xpaint/bitmaps/toolicons/boxOp.xpm
share/xpaint/bitmaps/toolicons/brokenlineOp.xpm
share/xpaint/bitmaps/toolicons/brushOp.xpm
share/xpaint/bitmaps/toolicons/dotPenOp.xpm
share/xpaint/bitmaps/toolicons/dynPenOp.xpm
share/xpaint/bitmaps/toolicons/ellipseOp.xpm
share/xpaint/bitmaps/toolicons/eraseOp.xpm
share/xpaint/bitmaps/toolicons/fillOp.xpm
share/xpaint/bitmaps/toolicons/filledBoxOp.xpm
share/xpaint/bitmaps/toolicons/filledEllipseOp.xpm
share/xpaint/bitmaps/toolicons/filledFreehandOp.xpm
share/xpaint/bitmaps/toolicons/filledPolygonOp.xpm
share/xpaint/bitmaps/toolicons/filledSplineOp.xpm
share/xpaint/bitmaps/toolicons/fractalFillOp.xpm
share/xpaint/bitmaps/toolicons/freehandOp.xpm
share/xpaint/bitmaps/toolicons/gradientFillOp.xpm
share/xpaint/bitmaps/toolicons/lineOp.xpm
share/xpaint/bitmaps/toolicons/pencil.xpm
share/xpaint/bitmaps/toolicons/pencilOp.xpm
share/xpaint/bitmaps/toolicons/polygonOp.xpm
share/xpaint/bitmaps/toolicons/selectBoxOp.xpm
share/xpaint/bitmaps/toolicons/selectEllipseOp.xpm
share/xpaint/bitmaps/toolicons/selectFreeHandOp.xpm
share/xpaint/bitmaps/toolicons/selectFreehandOp.xpm
share/xpaint/bitmaps/toolicons/selectPolygonOp.xpm
share/xpaint/bitmaps/toolicons/selectSplineOp.xpm
share/xpaint/bitmaps/toolicons/smearOp.xpm
share/xpaint/bitmaps/toolicons/splineOp.xpm
share/xpaint/bitmaps/toolicons/sprayOp.xpm
share/xpaint/bitmaps/toolicons/svg/arc.svg
share/xpaint/bitmaps/toolicons/svg/arrow.svg
share/xpaint/bitmaps/toolicons/svg/box.svg
share/xpaint/bitmaps/toolicons/svg/brokenline.svg
share/xpaint/bitmaps/toolicons/svg/brush.svg
share/xpaint/bitmaps/toolicons/svg/dotPen.svg
share/xpaint/bitmaps/toolicons/svg/dynPen.svg
share/xpaint/bitmaps/toolicons/svg/ellipse.svg
share/xpaint/bitmaps/toolicons/svg/erase.svg
share/xpaint/bitmaps/toolicons/svg/fill.svg
share/xpaint/bitmaps/toolicons/svg/filledBox.svg
share/xpaint/bitmaps/toolicons/svg/filledEllipse.svg
share/xpaint/bitmaps/toolicons/svg/filledFreehand.svg
share/xpaint/bitmaps/toolicons/svg/filledPolygon.svg
share/xpaint/bitmaps/toolicons/svg/filledSpline.svg
share/xpaint/bitmaps/toolicons/svg/fractalFill.svg
share/xpaint/bitmaps/toolicons/svg/freehand.svg
share/xpaint/bitmaps/toolicons/svg/gradientFill.svg
share/xpaint/bitmaps/toolicons/svg/line.svg
share/xpaint/bitmaps/toolicons/svg/pencil.svg
share/xpaint/bitmaps/toolicons/svg/polygon.svg
share/xpaint/bitmaps/toolicons/svg/selectBox.svg
share/xpaint/bitmaps/toolicons/svg/selectEllipse.svg
share/xpaint/bitmaps/toolicons/svg/selectFreehand.svg
share/xpaint/bitmaps/toolicons/svg/selectPolygon.svg
share/xpaint/bitmaps/toolicons/svg/selectSpline.svg
share/xpaint/bitmaps/toolicons/svg/smear.svg
share/xpaint/bitmaps/toolicons/svg/spline.svg
share/xpaint/bitmaps/toolicons/svg/spray.svg
share/xpaint/bitmaps/toolicons/svg/text.svg
share/xpaint/bitmaps/toolicons/textOp.xpm
share/xpaint/c_scripts/3d_curves/helicoid.c
share/xpaint/c_scripts/3d_curves/lissajous.c
share/xpaint/c_scripts/3d_surfaces/ellipsoid.c
xpaint: update to release 3.1.4, using wip/xpaint. Packaged in wip by @adam + a couple of changes by @vins Changes (since version 2.7.8) 2021-08-14 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.4 * arcOp.c : the DrawArc procedure now checks that the arc is not drawn with a zero linewidth - otherwise some pixels could have been missing, and any later fill area procedure could then have led to unexpected results. This minor bug (or misbehavior?) has been fixed. * image.c : if installed, dvipng can now be used as an alternative to the libdvipgm library, at the expense of a small slowdown in the output. This allows TeX input even without libdvipgm installed, dvipng being installable independently. 2021-02-12 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.3 * graphic.c : the "Text" menu has been substantially improved. Text and TeX/LaTeX input of arbitrary length, size, color can now be edited and converted to either a bitmap image or vector PostScript/PDF with embedded fonts. * More extensive testing - and a lot of small details fixed 2021-01-28 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.2 * Small improvement of versions 3.1.0, 3.1.1 with bug fixes. Xpaint can now be compiled without dvipgm (at the expense of losing some TeX functionality). Thanks to testers for feedback! * This version supports the use of layers (files *.lxp = Layered XPaint files). This is done via the C script editor. Any collection of images can be combined into a new merged image by a suitable C procedure. See example in directory share/c_scripts/templates/ * Compiling against libkpathsea and libdvipgm (from the dvipgm-1.x.tar.bz2 package, x >= 2) is needed to enable TeX input processing - otherwise the compilation scripts will disable TeX input. A minimal TeX environment is also needed to allow TeX interaction. * xpaintrw/readLXP.c : routines for reading LXP files * iprocess.c : routines for the creation of LXP files * image.c : ImageDup() procedure added * operation.c : new option for cleaning temporary files * This version has reached all capabilities that had been planned since a long time: layer handling, vector graphics operations, possibility of TeX input and of mathematical drawings, programmatic creation of images, filters and graphical functions. Therefore Xpaint will probably enter into maintainance and bug correction mode. 2021-01-27 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.1 * Small improvement of version 3.1.0 with bug fixes. * This version supports the use of layers (files *.lxp = Layered XPaint files). This is done via the C script editor. Any collection of images can be combined into a new merged image by a suitable C procedure. See example in directory share/c_scripts/templates/ * Compiling against libkpathsea and libdvipgm (from the dvipgm-1.x.tar.bz2 package, x >= 2) is needed to enable TeX input processing - otherwise the compilation scripts will disable TeX input. A minimal TeX environment is also needed to allow TeX interaction. * xpaintrw/readLXP.c : routines for reading LXP files * iprocess.c : routines for the creation of LXP files * image.c : ImageDup() procedure added * operation.c : new option for cleaning temporary files * This version has reached all capabilities that had been planned since a long time: layer handling, vector graphics operations, possibility of TeX input and of mathematical drawings, programmatic creation of images, filters and graphical functions. Therefore Xpaint will probably enter into maintainance and bug correction mode. 2021-01-24 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.0 * This version now supports the use of layers (files *.lxp = Layered XPaint files). This is done via the C script editor. Any collection of images can be combined into a new merged image by a suitable C procedure. See example in directory share/c_scripts/templates/ * Compiling against libkpathsea and libdvipgm (from the dvipgm-1.x.tar.bz2 package, x >= 2) is needed to enable TeX input processing - otherwise the compilation scripts will disable TeX input. A minimal TeX environment is also needed to allow TeX interaction. * xpaintrw/readLXP.c : routines for reading LXP files * iprocess.c : routines for the creation of LXP files * image.c : ImageDup() procedure added * operation.c : new option for cleaning temporary files * This version has reached all capabilities that had been planned since a long time: layer handling, vector graphics operations, possibility of TeX input and of mathematical drawings, programmatic creation of images, filters and graphical functions. Therefore Xpaint will probably enter into maintainance and bug correction mode ... 2021-01-21 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.5 * Vector drawing capabilities improved and hopefully almost complete. * Xpaint now allows the use of TeX input in mathematical drawings, provided it is compiled with the compilation flag -DHAVE_DVIPGM. The libdvipgm and libkpathsea libraries are required for this. * The new 'vxp2tex' utility converts VXP data into a TeX file that can be used with pdftex or pdflatex. * lineOp.c : ticks and graduation procedure added. * graphic.c, image.c, iprocess.c : several fixes and improvements. 2021-01-09 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.4 * This version has acquired substantial vector drawing capabilities. Just open 'Options->VXP vector data Editor' to enable vector drawing operations. Most of them are recorded in a plain text "VXP format" *.vxp. The external program 'vxp2ps' converts these data into (vector) postscript, and 'vxp2dkw' can be used to convert them for use in in the handwritten note editor deskwrite. Such Postscript files can be easily converted to PDF or SVG. * Xpaint can also read and rasterize *.vxp files (but at this point all operations that are not translated right away into vector data are ignored, even though they are recorded in the VXP file). * graphic.c, operation.c, misc.c, iprocess.c : extensive additions to implement VXP data processing. * share/c_scripts/procedures : canvas+vxp.c added as a new example. C scripts can be used to produce VXP data. 2020-08-04 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.3 * This version of xpaint requires in principle libXaw3dXft-1.6.2h (but would run with 1.6.2d,e by removing the compilation flag -DHAVE_NEWEDITINGSTYLE) * graphic.c: a new option has been introduced, allowing xpaint to use more easily graphics tablets, more specifically the user space drivers provided with deskwrite on Sourceforge. * menu.c: SetFocusOn() has been fixed. This allows the input focus to be preserved in active text fields, even when the cursor leaves the top parent window (as is usually expected with modern desktop interface guidelines ...) * iprocess.c: small improvement of the Gamma/RGB filter. * Further small fixes throughout, especially in the build scripts and the debian packaging. 2020-06-29 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.2 * This version of xpaint requires libXaw3dXft-1.6.2h (or later versions of the libXaw3dxft library - the changes between 'f', 'g' and 'h' merely consist of introducing a new parameter to allow scrollbars of text widgets to be on the right side, plus some minor improvements in the edition process) Removing -DHAVE_NEWEDITINGSTYLE in Makefile.am would make xpaint compatible with earlier versions 1.6.2d,e of libxaw3dxft with essentially no change, except for the text input editing behavior of Backspace and Delete keys. * xpaintrw/readWritePNM.c: is now using a more recent version of libnetpbm, rather than the completely obsolete version from the 1990's that was embedded in the original code of xpaint. One consequence is that libnetpbm10-dev or preferably libnetpbm11-dev are now needed to compile xpaint, another one is that PPM/PAM files with an alpha channel can now be read and written. Adjust the NETPBM defines (-DNETPBM10 or -DNETPBM11) according to the installed version of libnetpbm. * help.c: the help widget now has two independently resizable panes (topics and explanations). * pattern.c: correction of old bug (that had however no visible effect before 3.0.1). * graphic.c: exchange of primary and secondary colors or patterns is now accessible by clicking on the red cross below the color picker (shown as an eye). Similar addition for pattern.c 2020-06-16 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.1 * This version of xpaint requires libXaw3dXft-1.6.2f (or later versions of the libXaw3dxft library). Removing -DHAVE_NEWEDITINGSTYLE in Makefile.am would make it compatible with earlier versions 1.6.2d,e with essentially no change except for the text input editing behavior of Backspace and Delete keys. * print.c: by default, xpaint no longer depends on cups-bsd commands, (but they can be re-enabled via an adjutsment of the app-defaults files). * xpaintrw/readWritePS.c: the BoundingBox of a file saved as PS/PDF should now be set appropriately. * graphic.c, *Op.c: extensive additions. Xpaint can now record all operations that are performed as vector data, in the so called VXP format. The recording starts as soon as the VXP editor under the Options menu is started, and these data can be saved into a file <name>.vxp * readWriteJP2K.c: has been ported to work with openjpeg version 2 (JPEG2000 format), including alpha channel. * Various other small fixes throughout (SVG import, ...) * At a later stage, it will be possible to convert these VXP files to other vector formats such as eps, pdf or svg, and import them back to xpaint. There will be also an option to insert TeX input and convert the data into a (La)TeX file. 2020-05-25 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.0 * bitmaps/toolicons: new set of icons, generated from SVG data. * app_defaults: the app_defaults files have been reorganized so as to separate linguistic strings and other data, especially widget sizes. Three sizes are now offered: big, medium, small, to accommodate HiDPI screens or low resolution screens. * operation.c: the tool window is now fully resizable. In order to actually change the size of icons, users can copy /usr/share/xpaint/bitmaps/toolicons/ into $HOME/.xpaint/toolicons/ and generate icons with larger or smaller size there. Just type ./generate_icons <height> in $HOME/.xpaint/toolicons/ to produce a new set of icons with the given height (the xpaint package is distributed with icons of default height 36). The shell script "generate_icons" requires inkscape to work. * graphic.c: the parameter btnheight is now used to resize the palette elements as well as the height of buttons. This is useful for HiDPI screens (as well as for lower resolution screens of older computers). * main.c: new option -blind that keeps xpaint running under the hood when batch procedures are invoked. * xpaintrw/readWritePS.c: SVG import has been updated to work with inkscape-1.0. * The change of major number in this version anticipates the introduction of some vector graphics capabilities in the versions 3.x.y to come. (Right now, the only vector graphics capabilities are PS, PDF, SVG import). 2020-05-21 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 2.10.3 * lineOp.c : under the "segment" operation, users will now find new "Position" and "Measurement" tools. These tools do not draw anything, but instead they record the locations of pixels that are clicked on, and compute lengths and angles. * iprocess.c : The "Perspective" filter has been vastly improved. It should now enable users to correct the perspective of a distorted picture taken by a camera, or to create artificial perspective when producing a drawing. This can be used in connection with the new "Position" tool, so as to specify points on the canvas. * iprocess.c : The API of C scripts introduces a new public procedure PixelInterpolate(unsigned char *op, Image *input, double x, double y) that can be used to smooth pixels, under transformations that map integer coordinates into float values (as is the case e.g. for rotations or homotheties with arbitrary factor). This will sometimes improve the output of such operations (but may also make the image fuzzier). * Two new C scripts "similarity.c" and "projective.c" have been added. They show in particular how to exploit the PixelInterpolate() procedure. * Help and message files have been edited to explain details of the new functionalities. 2017-11-13 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 2.10.2 * Minor compilation fixes in iprocess.c and xpaintrw/readWriteJP2K.c thanks to the OpenSUSE team. * Bug in operation.c : exitPaint(...) could trigger a segfault when quitting xpaint without saving the canvas. Thanks to Anthony J. Bentley from the OpenBSD team for reporting the bug. * misc.h : srandom() is nowadays always of void type. * Minor fixes for the calculation of the maximum canvas size. 2016-12-10 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 2.10.1 (a substantial update!). * Xpaint includes a new command line option -btnheight that adjusts appropriately the size of all internal widgets in case a big menu font is used (e.g. by setting the option -menufont , or by changing the app-defaults file). This is very useful if you have a high resolution screen. Many small local modifications of various source files in the main tree have been necessary for this. * A new option -toolmode 0,1,2 can be used to initialize the display of the tool window. Also adjustable dynamically by resizing that window. * Default canvas size has been set to 1024x768 Related command line options are -canvassize and -winsize that can be used independently to adjust the default size of canvas and main window. * The app-defaults files and help files have been modified to accommodate the above additions. * The "Print" widget has been improved, and its menubar is now again available to adjust page formats (a bug introduced probably a long time ago prevented it to work !) * A newer version libXaw3dXft-1.6.2e.tar.bz2 has been posted. The only change is a 3 lines addition that circumvents (what seems to be) a bug occurring in certain X11/Xorg implementations, e.g. the intel driver, version 2.99.917. Otherwise this will make no difference. * Changed the library name librw to libxpaintrw to avoid shared library conflicts. Thanks to Michael Orlitzky for pointing out the issue. * Applied a number of patches from gentoo.org that substantially improve the compilation process. Thanks to Julian Ospald <hasufell@gentoo.org> 2015-01-02 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10.3 * Port to the newer libXaw3dXft-1.6.2d.tar.bz2 (the latter is actually a requirement, this version no longer compiles with libXaw3dXft-1.6.2c). The point is that libXaw3dXft-1.6.2d has improved binary compatibility with plain libXaw3d-1.6.x * Only further cosmetic changes, no change in functionality. 2014-04-17 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10.2 * Minor fixes in 'configure.ac' and 'configure.old' scripts Xpaint can now be compiled again with plain Xaw or Xaw3d (this is NOT recommended, Xaw3dxft definitely gives much better results !) Thanks to Stefan Husmann (Arch Linux) for helpful reports in this respect. * 'configure' (based on autotools) and 'configure.old' (based on imake) should in most cases give essentially equivalent binaries. * PDF files are now read by using mudraw if mupdf & mupdf-tools are installed (otherwise Xpaint falls back to the formerly used solution: pdf2ps + ghostscript, a much slower one...) * Xpaint can now even import libreoffice files as images as soon as libreoffice is installed (assuming /usr/bin/libreoffice is a valid path to the main program) 2014-04-09 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10.1 * Includes the "version_and_focus_patch_for_2.9.10" and other minor fixes. * The alpha channel menu now includes a new function that allows editing as RGB values the image that appears when transparency is applied on a background of the selected background color - white being the default (this removes the transparency levels afterwards, so as to get a pure RGB image). * Bug (probably very old) corrected : selection of background color always resulted in black being chosen ! 2014-03-03 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10 * This version should preferably be compiled with libXaw3dXft-1.6.2c, although it still works Ok with libXaw3dXft-1.6.2b. * readWritePNG.c: fixed bug occurring when writing grayscale images possessing no more than 16 colors. * readWriteJPEG.c: JPEG images in CMYK colorspace are now handled properly (they will still be memorized as RGB, so the original CMYK information is lost, but at least they are shown correctly). * fileBrowser.c: "Save" and "Save as" menus now include the option to adjust JPEG quality between 50% and 100% (default is 90%) * fileBrowser.c: improved logic : the file browser now remembers file names when changing directories, and also takes into account default extension when specifying file format. * fileBrowser.c: thanks to a new feature from libXaw3dXft-1.6.2c (possibility of creating colored lists), xpaint now implements file type coloring in its file browser - at this point this is guessed merely from the suffix of the file. * operation.c: Canvas menu reorganized - it is now named "File menu" so as to conform to general use. Except from reordering the items, the main functionality is unchanged. * pattern.c: bug fixes. A segfault problem in the zoom selector has been corrected, and contextual help has been fixed. 2013-01-27 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.9.4 * This version should be compiled with libXaw3dXft-1.6.2b * RGB channel separation procedure fixed and improved * Fix in CRC data handling of regions in memory. * XPaint now remembers better the position of regions saved in memory. The recorded position can now be changed or reset to origin through the memory management menu. * compilation fix for pgf2pnm with newer libpgf-6.12.24 * Avoid "bool" variable throughout, as this is a typedef in <stdbool.h> * Fixes to configure scripts, thanks to Daniel Macks (fink project) * Minor GUI improvements 2012-02-14 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.9 * Xpaint now uses (or tries to use!) autotools. * libxaw3dxft is now a separate package (but is still a requirement, and in fact should be installed before). * xpaintrw/rwTable.c : segfault fix (occurring randomly) fixed in readMagic(). * minor fix in fontSelect.c, certain fonts were possibly missing in the font browser, in some rare circumstances. * very minor fix of scrollbar behaviour in graphic.c. * misc.c : new procedure SetWMInputHint() that helps solving some quirks. 2012-01-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8.4 * minor fixes in fileBrowser.c (adjustable height of text entry for the file name, resize procedure improved). 2011-10-13 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8.3 * xpaintrw/pgf-util/Makefile : add '-fpermissive' flag to allow compilation with recent (more picky!) versions of g++ * Xaw3dxft/Viewport.c : position of scrollbars can now be adjusted through parameters sbShift[X,Y][1,2]. No public API change, so this addition should be upward compatible. * graphic.c : some small fixes in the shellHandler routine to accommodate odd behavior of scrollbars with xorg recent versions, using the new sbShift feature. 2010-12-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8.2 - nothing really new, just very small fixes * Integrated patch to facilitate compilation with gcc-4.5 * app-defaults files : slight improvement of X event management in pull-down menus. * print.c : slight improvement of X event management in print widget. * fontOp.c : fixed color issue (color not initialized) when moving written text with arrow keys. * Very small changes in Xaw3dxft (minor Xaw3dXft.h API update) 2010-11-08 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8 * Xaw3dxft : code clean-up. New files Xaw3dXft.h and Xaw3dXft.c now contain the specific Xaw3dxft parameters and routines. A couple of small improvements to correct minor quirks in the menu entry highlighting behaviour. * main.c, graphic.c : changes made to accommodate the API changes introduced in Xaw3dxft. Further code clean-up. * image.h, graphic.c, iprocess.c : modified definition of the imageprocessinfo struct, so that hopefully compilation still works with gcc 4.5 (gcc-4.5 appears to be more picky with struct definitions). Thanks to Fedora maintainer Paulo Roma Cavalcanti <promac@gmail.com> for reporting the issue. 2010-11-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.7 * Arrow keys and "Backspace", "Return", "Escape" keys can now be used in all drawing operations whose effect is not immediate, especially all routines from arcOp.c, lineOp.c, polygonOp.c, freehandOp.c, splineOp.c, TextOp.c Arrow keys allow moving objects around before they are completely drawn, "Escape" restarts the operation from scratch, "Return" terminates the operation, and "Backspace" rewinds the course of operation backwards. * freehandOp.c : this operation now allows to draw arbitrary combinations of freehand and polygonal shapes and should be easier to use or to modify interactively thanks to the key bindings. * sprayOp.c : minor code clean-up. * updated accordingly Help files. 2010-10-25 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6.4 A couple of small improvements in spline, polygon, text and color operations. * fontOp.c, splineOp.c, polygonOp.c : implemented "Backspace" key action, i.e. removing last point or last character; "Escape" now entirely restarts the operation from the beginning. Other small improvements (including correction of a potential segfault occurring in some strange circumstances...); polygonOp() code is now also much simpler and easier to read. * graphic.c : multiple clicks on any of the three color/pattern selection discs now switch primary and secondary colors/patterns. * updated accordingly Help files. 2010-10-08 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6.3 - minor bug fix release - nothing really serious. * ops.h : minor compilation issue fixed. * graphic.c : corrected segfault bug of RegionToRGBA channels (occurring only when alpha channel was to be saved.) * chroma.c : fixed minor scrolling issue in color variance scrollbars. * graphic.c : added new menu lines to proceed more easily to editing of alpha channels or images in memory. * updated accordingly Help files, messages and app-defaults files. 2010-09-26 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6.2 * print.c : printing was completely broken, as a result of using double values instead of float values. Reverted to float ! * chroma.c, color.c, magnifier.c, fontSelect.c : revert to float ! * iprocess.c : fixed bug occurring only in very rare circumstances (creation of image with an alpha channel, being edited and compiled on the fly through the embedded C-script editor) * graphic.c : small improvement in ModifyRGB (new routine to rescale gray levels linearly from given thresholds). 2010-09-14 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6 * xpaintrw/rwTable.c, xpaintrw/readWriteTGA.c : fixes in TGA format, so as to prevent that xpaint could hang on certain non TGA files. Make sure anyway that TGA is parsed as a last resort, since TGA is a strange format without signature. * image.c, iprocess.c, graphic.c : substantial improvements in filter routines : - Added new "Merge" filter : helpful to combine smoothly an image with the underlying canvas. Works according to 4 different modes - Added new "Distortion" filter which can be used to produce local deformations - Added powerful Floyd-Steinberg algorithm (color quantification enhanced with a diffusion process). - Replaced "ModifyRGB" by a generalized RGB transformation procedure with 7 different modes, including Gamma correction (with independent r_gamma, g_gamma, b_gamma parameters), and linear transform. - Fixed several shortcomings of "Normalize contrast" and "Emboss" routines; "Emboss" now has 2 parameters allowing linear correction. - Renamed "Tilt" as "Projective Transform" with several enhancements. - Renamed "ImageCopy" as "ImageCopyData" which says more accurately what it does. * graphic.c : Memory menu : management of R,G,B and alpha channels : - Added extraction of red, green, blue, alpha channels from region - Added merge procedure for those channels * msgedit.c : new utility which can be used to extract strings from the English version of "Messages" and combine them with a partially localized "Messages_XY" for any other language - useful as well to avoid discrepancies between languages! * Many updates to Message and Help files. 2010-09-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.5 * xpaintrw/readWritePNG.c : fixed WritePNG() for alpha channel images possessing less than 16 black and white colors, which xpaint tried to write in an incorrect PNG mode. * graphic.c : fixed segfault bug when invoking "Clone Canvas" procedure. * xaw3dxft : a few hacks to work around minor display bugs related to Xft anti-aliasing/composition effects on certain X servers (especially proprietary NVIDIA ...) * main.c : new command line options -tooltips, -notooltips * operation.c, graphic.c : implemented tooltips (they can be disabled from the tools/help menu). * man page and help files : updated. 2010-08-15 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.4 * xpaintrw/readWriteTGA.c : added support for TGA format (borrowed mostly from mtpaint project). * xpaintrw/rwTable.c : code clean-up. * Paint.c, PaintRegion.c : fixes for certain complex situations involving region selection with masks and alpha channel. (Segfault could occur in Fatbits editor under those circumstances). * graphic.c : Suppression of alpha channel could lead to segfault. 2010-08-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.3 * xpaintrw/readWriteICO.c : imported a lot of code from the 'icoutil' GPLed package. As a result, xpaint can now read most Windows ICO files, even those containing embedded compressed PNG/JPG images which icoutil cannot fully open. Support for ICO masks as alpha channel, and for writing single image ICO files. * xpaintrw/readWritePGF.c : PGF image format support improved, thanks to 'pgf2pnm' provided by Christoph Stamm <christoph.stamm@fhnw.ch> (creator of the PGF format). libpgf and libpgf-dev are needed only optionally to compile 'pgf2pnm', which then provides PGF support in xpaint. However, xpaint itself does not link with libpgf and does not need libpgf-dev to be compiled. The alpha channel of PGF images is fully supported. * graphic.c : improvements/bug fixes in the "Clone with Zoom" procedure. Now works for zooming/downscaling images, with/without interpolation, and for adjusting alpha channel as well. * graphic.c, PaintEvent.c : much more powerful implementation of the "Delimit region" procedure, according to six different options (connected/non connected/color range regions, or complements of such regions). * The help files have been updated to reflect all current functionality of XPaint (Spanish help additions should be revised by a native speaker !) 2010-07-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.2 * xpaintrw/*.c : huge code clean-up. Saving files now show up a warning when the image possesses an alpha channel, but the format chosen does not support it (completely or in part). Note: saving in PNG should almost always be a safe choice ... * xpaintrw/readWriteTIFF.c : support substantially improved, including alpha channel read/write. More exotic TIFF formats unsupported. * xpaintrw/readWriteBMP.c : many more BMP image format types are now supported, including full support for images with an alpha channel (read/write). * xpaintrw/readWritePNM.c : provisions made to include support for alpha channel in PNM (this is a specific extension of xpaint : an RGB image concatenated with a gray level image of the same size - and '\n' in between - is viewed as RGBA data). * xpaintrw/readWriteJP2K.c : added support for JPEG2000 image format. Either libopenjpeg (default) or libjasper (optionally) can be used. Full support for alpha channel (requires openJPEG from subversion at this point now, since "stable" version 1.3 has insufficient alpha channel implementation...). * xpaintrw/readWritePGF.c : added support for PGF image format. This requires libpgf and pgf to be installed (but xpaint does not need to be linked against libpgf, and its compilation does not require libpgf-dev files either.) * xpaintrw/readWriteSGI.c : repaired old dormant code to read run-length encoded SGI/Irix image files. Checked to work fine. * xpaintrw/readWriteICO.c : unsupported, very buggy code. Disabled at this point. Instead, use e.g. 'icoutil' to convert those files to PNG ... * dialog.c : very small fix providing UTF8 support in AlertBox window titles (and always raising warning windows). * configure : if libXaw3dxft is installed as a shared library, compilation is now set by default to use it, rather than linking statically xpaint to libXaw3dxf.a 2010-07-18 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.1.5 * graphic.c : added "*allowResize: False" in Canvas*pane*form to prevent annoying widget initialization on certain platforms * xpaintrw/readWritePS.c : small fixes to handle correctly PS/PDF files whose names contain quotes or blank characters. 2010-07-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.1.4 * fatBitsEdit.c, Paint.c , Paintregion.c : several fixes in handling of alpha channel in fatbits editor - some affecting alpha channel image bits. * app-defaults : change zoom labels to correct values xx:1 instead of 1:xx * graphic.c : prevent fatbits editor getting called undeservedly by GetNonDirtyCanvas() routine ; removing alpha channel now moves it to memory rather than destroying it right away. * xpaintrw/readWritePS.c : fix for compilation of TeX/LaTeX files being called from random directories. * minor fixes throughout - thanks to the SUSE-Packman maintainer Detlef Reichelt <detlef@die-mafia.de> for help. 2010-06-02 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.1 * Paint.c , Paintregion.c : fixes in alpha channel routines. * fatBitsEdit.c : many fixes in fatbits editor. Refresh button added * graphic.c : reload file procedure didn't reload alpha channel - this is now fixed. * fontOp.c : potential segfault corrected. * small other (mostly random) improvements. 2010-05-16 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.0 * graphic.c, Paint.c : big improvements in handling of alpha channel ; alpha management menu is now explicit from canvas menu bar. Support still not quite complete at this point (regions do not appear yet in alpha mode). Should come for 2.9.1... * Paint.c, PaintRegion.c : fixed segfault occurring when using region operations in fatbits editor (regression introduced already in 2.8.9 which remained unnoticed up to 2.8.19 ...) * fontOp.c, fontSelect.c : UTF8 support should now be essentially complete. * xpaintrw/readWritePNG.c : fixed bug when writing PNG_COLOR_TYPE_PALETTE images with less than 16 colors (those images were wrongly converted to gray palette...) * several other small fixes and improvements throughout. 2010-04-17 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.19.1 (mostly cosmetic changes) * fileBrowser.c : added "ongoing" mode in File Browser (widget no longer closes when opening an image, allowing to browse files continuously). Performed a substantial code clean-up as well. * operation.c, graphic.c : menu improvements; one can now open an image from any canvas window. * misc.c : added RaiseWindow() routine to comply better with ewmh specifications. XMapRaised() replaced by RaiseWindow() throughout. * "snapshot" replaced by "screenshot" throughout. 2010-04-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.19 * fileBrowser.c : fixed minor annoyance in "save" and "saveas" routines - name of file is now again remembered when a filename has already been set. * graphic.c : fixed bug in ToolSelection switcher; "font" menu replaced by more powerful "text" menu; new entry added to edit/write text from text editor embedded in font browser. * iprocess.c : fixed bug in filter "adjust RGB colors" * fontSelect.c, fontOp.c : text sample is now editable, and this text can be imported on canvases. This includes being able to set fonts, colors, linespacing (etc) as editable text. Any UTF8 encoded file can be read and edited, and a small number of special commands are available to format such texts; for hints on how to use this, see "Doc/TextFormat.doc". Xpaint can thus be used as a text editor (sort of!), useful e.g. to create posters with text and graphics. * xpaintrw/readWritePS.c : support for reading a file as "enriched text". * main.c : new command line options -textfont and -astext, the latter for opening files as enriched text. * share/bin/imgmerge : small tweak to use a static PageInfo struct, otherwise imgmerge would segfault (gcc bug ?) 2010-03-13 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.18 * Minor fixes (UTF8 names in windows, rare segfault when using external viewer) * xpaintrw/readWritePNG.c : xpaint now saves correctly gray images which have an alpha channel. * xpaintrw/rwTable.c : introduces auto-detect mode for writing files (image type is guessed from suffix of file name, and set to PNG as a fallback). * xaw3dxft : changed library name to libXaw3dxft to avoid interfering with regular libXaw3d. Added hooks in 'configure' to (possibly) install and compile it as a shared library. Corrected an issue in xaw3dxft/List.c which could sometimes lead to a fatal X error. * Added man pages for imgmerge and pngconcat (provided by Debian maintainer Josué Abarca) * Removed dependency on Xft.h in PaintP.h which had the unfortunate effect of breaking C-Script compilation, e.g. in imgmerge. 2010-03-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.17 * Xpaint is now fully UTF8 compliant. This has been done rather cheaply by linking statically with a modified xaw3d library which is UTF8 & Freetype aware. This also means that anti-aliasing is enabled in the menus and text widgets, and that the X core font protocol is no longer used anywhere. * By default, Xpaint no longer depends on external xaw/xaw3d/xaw3dg libraries as it is compiled with its own improved xaw3d clone; this only adds approximately 250 kB to the binary executable. * Xpaint can still be used with 8 bit encoding by specifying the command option 'xpaint -encoding 8'. However the resource files XPaint* Messages* Help* should then preferably be converted back to a 8bit locale, otherwise some strange characters will show up in the menus, at least in languages which use non ASCII characters. 2010-02-17 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.16.1 * fontSelect.c, misc.c : introduced clickFocusCallback which fixes keyboard focus in fontSelect and in color picker ascii text input widgets (problem occurred e.g. under KDE). Use 2.8.16 with xpaint-2.8.16-keyboard-input.patch. 2010-02-12 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.16 * graphic.c, fontOp.c, fontSelect.c : Xpaint now uses the Xft protocol to display fonts, so that (in particular) all TrueType fonts are available, and the corresponding glyphs are nicely anti-aliased without resorting to a use of sub-pixel resolution. Another benefit is the possibility of rotating text, or even applying arbitrary linear transformation (however, writing fonts with a pattern instead of a plain color is no longer possible directly - for this, one can use instead masks or a fill procedure). * xpaintrw/readWritePNG.c : applied small patch from Stefan Husmann (Arch Linux maintainer) to take care of API deprecation in newer versions libpng-1.4.x. 2010-02-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.15 * PaintRegion.c : finally found and corrected long standing bug which plagued iteration of filters and undo procedures. * fileBrowser.c : several GUI improvements. * xpaintrw/readWritePS.c : improved handling of BoundingBoxes. Fixed bug in the use of 'psselect' which was found on the Fedora bugzilla list (many thanks to Paulo Roma Cavalcanti <promac@superig.com.br> for analyzing the issue) 2010-01-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.14 * graphic.c : memory management simplified and improved; added CRC32 checksum control to avoid duplicates. * xpaintrw/readScript.c : fixed potential bug occurring in rare circumstances. * Various fixes in batch scripts 'imgmerge', 'batch.c' and 'xpaint_ocr' GPLv3 licence specified there. * Included new debian files released by Debian maintainer Josué Abarca * xpaint.man.in : corrected a ­ issue (thanks again to Josué Abarca) 2010-01-20 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.13 * Paint.c : corrected nasty bug * graphic.c : GUI improvements. Border color of paint widget now indicates status of image (red: non editable, green: resize enabled, blue: has an alpha layer, black: otherwise). * image.c : ImagaToPixmap() et al modified so as to manage alpha channel mode once for all (rather than repeating this for each of the image loaders). 2010-01-18 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.12 * misc.c, graphic.c : some more fixes for alpha channel issues. 2010-01-17 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.11 * fileBrowser.c : browserResized() : included patch for accommodating bug in certain versions of the Xaw3d library * Paint.c : PwGetPixmap() modified so as to work independently of zoom value. Saving a file under zoom<1 now works !! * graphic.c : there is now support for adjusting join and cap style of lines being drawn. Fixed handling of memory box. * Code for alpha channel completed and made more robust (substantial changes in graphic.c, Paint.c, PaintRegion.c) 2010-01-10 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.10 * graphic.c : many GUI improvements. Some alpha channel fixes. (arbitrary linear transformation of alpha channel still not implemented). * lineOp.c : fixed arrow and vector drawing under zoom != 1 (were correctly written to pixmap but incorrectly shown on canvas). * fileBrowser.c : a few cosmetic changes to make code more robust. * xpaintrw/readWritePNG.c : fixed readPNG() for non transparent PNG images possessing a palette of colors. 2010-01-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.9 * polygonOp.c : segfault bug corrected. Polygonal regions can now be selected correctly under zoom values other than 1. * xpaint.h : various API modified to include alpha channel (in images, paint canvases, clipboard, memory stack...) * PaintUndo.c : implemented alpha channel in Undo stacks * PaintRegion.c, graphic.c : routines to set/show/edit the alpha channel are now implemented in a fairly complete manner. * readWritePNG.c : xpaint now saves a canvas with an alpha channel as a PNG file with a corresponding alpha channel. * readWriteXPM.c : xpaint now saves a canvas with an alpha channel as an XPM file with a "None" color (reduced to a 0/1 mask). (By default, alpha<128 is considered to be transparent and alpha>=128 to be opaque. The threshold value 128 can be changed from the options.) * readGIF.c : xpaint can now read alpha channel of GIF89 files possessing transparent pixels (setting transparent pixel in writeGIF.c not yet implemented). 2009-12-09 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.8 Interim release with partial support for transparent images; alpha channel is now correctly read when loading PNG and XPM images. Easier management and writing support will be implemented in 2.8.9. * xpaintrw/readGIF.c : xpaint will now open all frames of animated GIF images, and not just the first frame - support of this feature was already there, but had never been made accessible from the GUI ! * xpaintrw/readWritePNG.c : xpaint now detects PNG images possessing an alpha channel and loads them properly. The RGB values and alpha channels can be edited separately (but not yet mixed back easily). * xpaintrw/readLXP.c : preliminary implementation of layered xpaint image format LXP. File share/c_scripts/templates/script.c used as template. * pattern.c : new button introduced to modify background color (thus duplicating functionality from the separate background color widget). * fileBrowser.c : widget improved. Four new buttons added to get directly to home, root and current directory, and to show/hide dot files. The browser of loaded files now has buttons for editing C scripts and managing layers (implementation somehow works, but is not yet complete). * iprocess.c : corrected segfault bug occurring in certain circumstances, e.g. when loading recursive image C-scripts. In particular, "layer" example share/c_scripts/layers/combine.c now works again. 2009-11-18 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7.3 (very minor changes) * graphic.c : corrected very tiny bug in resizeCanvas() routine which resulted in occasional disappearance of Fatbits cursor, when the canvas was resized under certain zoom reduction values. * fatBitsEdit.c : added convenience routine FatbitsEditorDestroy(paint) (not yet used inline - could possibly be used from C scripts). * small addition in Local.config file 2009-11-15 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7.2 (very minor changes) * Further cosmetic fixes and code cleaning ; X error handler improved (just in case). * snapshot.c : taking a snapshot from the tools window now unmaps the window (so that any window stacked behind can be captured); spurious warning 'bad pixmap' from libX11 has been eliminated. 2009-11-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7.1 (released only as a patch to 2.8.7). * Further cosmetic improvements and code cleaning not really worth bothering (e.g. popup menus which, when users change their mind and no longer want to use them, may not immediately popdown as would be expected when clicking randomly outside, e.g. on the canvas ...) 2009-11-04 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7 released. * graphic.c, menu.c, PaintEvent.c : a substantial number of cosmetic changes made to further improve the menu behaviour. * fileName.c renamed as fileBrowser.c * fileBrowser.c : Some "flickering" issues in the browser have been corrected. The file browser of "loaded files" now include ad hoc fields and buttons for modifying the scaling of vector format images (PS/PDF/DVI/TeX/LaTeX/SVG) as well as for selecting a page in multi-page documents. Now, Xpaint can thus be used as a practical viewer for such documents - though for this purpose it's certainly not as fast and optimized as specialized viewers ... * readWritePS.c : multipage PostScript files require 'psselect' from the psutils package. (This is a very simple program so we may consider including it in the next version of xpaint to remove that dependency.) DVI files are now accepted, along with PS/PDF/TeX/LaTeX/SVG. * print.c : selecting PDF option now (really) saves file as PDF rather than PostScript. * Merged Changelog and (unmaintained) file Doc/CHANGES 2009-10-27 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.6.1 released. * bug fixes : main.c : xpaint did not accept setting default zoom < 100% through command line graphic.c : underestimated evaluation of canvas window size for large images, resulting in image not being fully displayed even when it could. PaintRegion.c : segfault bug occurring in certain circumstances when dragging a region outside viewport, in region transparency mode. 2009-10-26 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.6 released. * Extensive changes in many parts, to provide capability for zoom = 1/n, while performing all possible operations under such a zoom. This means that anti-aliasing can be obtained by using e.g. zoom = 1/3 and then cloning the canvas with the given reduction. * magnifier.c: Introduced a magnifying glass, based on code of 'xlupe' by Thomas Runge (runge@rostock.zgdv.de) * operation.c: menu now includes an item to open the magnifying glass, and a browser for all images which have been opened or loaded from the command line. * fileName.c : the buildBrowser() routine has been extended to have a mode ('type=4') showing the list of loaded images. * graphic.c: edit menu includes 2 items for cloning the canvas (with or without reduction) * a lot of bugs have been ironed out, e.g. a crash in the polygon selection area, and a very long-standing bug in the memory management of menu.c which used to cause (fortunately unfrequent) random crashes. 2009-10-16 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.5 released. * graphic.c, user visible changes : added a zoom button and a new toggle allowing to resize the canvas, using mouse or arrow keys. Several other related improvements have been made for zooming/resizing, along with a few minor fixes (the layer example "layer.c" compiles again without segfaulting.) 2009-10-13 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.4 released. * pattern.c : Fixed segfault bug in color/pattern budget, which occurred when creating new brushes. * print.c : added new toggle so as to possibly produce a compressed PS file, or send to printer a PDF file rather than a PS file. The annoying printing notification popup has been replaced by a less intrusive notification. Many other small improvements - e.g. output postcript file can be selected with a file browser. * xpaintrw/readWritePS.c : the PostScript generator has been considerably improved. XPaint is now capable of producing strongly compressed PostScript files, of weight increased hardly by more than 30%-35% when starting from a PNG file of the same resolution, and the process is faster than before - it seems that even gimp does not yet take care of this, its PS files can often be reduced to less than 50% of their current size (huge thanks to Peter Szabo for showing the way with his sam2p program.) A standalone 'ppmtops' utility has been included for potential re-use elsewhere. * Clarification of the licence. Xpaint is an old program, many parts of which were written at a time when the GPL was not so pervasive. To the best knowledge of the current maintainer, all parts where written under permissive licences which are compatible with the GPL. J.-P. Demailly thus puts under the GPLv3 all code developped by him in the last twelve years - that's probably more than 30% of the total amount of code, and the program as a whole should thus be considered as GPLv3. All related utilities ('ppmtops', C scripts, etc) are also put under the GPLv3. 2009-10-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.3 released. * Included 2 patches from Mandriva packagement experts, fixing some minor compilation problems and potential security issues. * xpaintrw/readWritePS.c : xpaint is now able to display TeX, LaTeX, PDF and SVG files using image conversion from external ad hoc programs. Option -dpi <dpi value> can be used to adjust size of image. 2009-10-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.2 released. * pattern.c : found and fixed two long standing segfault bugs (fortunately occurring only in not so frequent circumstances) * Set default gridcolor to grey80 on TrueColor displays, a less intrusive color than black. 2009-09-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.1 released. * Introduced rectangular (not just square) snap grids. Color of grid can be changed to arbitrary color. * graphic.c : corrected segfault bug in simplemenu switcher (selector popup). 2009-09-27 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.0 released. * Menu popups have been entirely reworked. Their behaviour is now more fluid - and similar to the default behaviour of modern toolkits like GTK/qt - so users should feel less disturbed. (this required numerous changes in menu.c and app-defaults) * Fixed size handling of Canvas windows under maximize/unmaximize procedures. * Stability should be considerably improved. Some memory leaks have been removed as well. * Added new command line options: -undosize <num> (set undo memory limit) -operation <num> (start with operation <num> set in tool panel) -filter <file> (define filter by using <file> as C-script) -proc <file> (define procedure by using <file> as C-script) * Added support for using menu popups in C script filters See share/c_scripts/filters/clean.c for an example. This means that C script filters can involve adjustable parameters which can be easily changed (i.e. without needing a recompilation each time the parameters are changed.) * Added support for using menu popups in C script procedures See share/c_scripts/procedures/proc_with_params.c for an example * iprocess.c, xpaintrw/readScriptC.c : added support for running batch jobs (for mass processing of images, using xpaint as the engine); see share/c_scripts/batch/batch.c share/bin/imgmerge * Added batch script 'imgmerge' which uses xpaint to convert and concatenate image files into a single PDF file. This also makes use of Peter Szabo's 'pdfconcat' program (GPL, included). * Added support for OCR (with the ocrad engine by default) The OCR engine(s) can be specified in the bash script /usr/share/xpaint/c_scripts/bin/xpaint_ocr This means that xpaint can be easily used as a GUI for command line OCR engines ('xpaint_ocr' makes use of the 'xless' pager, by default, but any other pager/editor can be used instead). * brushOp.c: system wide brushes are no longer hardwired, and can now be configured from the SHAREDIR directory. * Added additional brushes provided by John David Gray <kahdgarxi@gmail.com> which are useful to draw electronic circuitry. Also included a patch of him introducing three new patterns and extending the drawVisibleGrid() routine in Paint.c * Fixed (and improved as well) behaviour of snap and grid routines, also using ideas of JD Gray. * Changed rotations to use trigonometric positive rotation rather than clockwise. This was too unnatural to me ! * Numerous bug fixes. Thanks to Mattis Michel <sic_zer0@hotmail.com> for correcting a bug in the snap routines and for providing further improvements; Mattis noticed - and urged correction - of a critical bug in the "Load clipboard" procedure; he also suggested putting WM hints on minimal size of widgets so as to avoid random crashes under wild resizing of the windows. * Updated the man page - which had actually been neglected for a couple of years ...
2023-01-22 18:41:52 +01:00
share/xpaint/c_scripts/3d_surfaces/genre_g.c
share/xpaint/c_scripts/3d_surfaces/heart.c
share/xpaint/c_scripts/3d_surfaces/hyperboloid.c
share/xpaint/c_scripts/3d_surfaces/polyhedra.c
share/xpaint/c_scripts/3d_surfaces/torus.c
share/xpaint/c_scripts/3d_surfaces/trefoil.c
share/xpaint/c_scripts/3d_surfaces/waves.c
xpaint: update to release 3.1.4, using wip/xpaint. Packaged in wip by @adam + a couple of changes by @vins Changes (since version 2.7.8) 2021-08-14 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.4 * arcOp.c : the DrawArc procedure now checks that the arc is not drawn with a zero linewidth - otherwise some pixels could have been missing, and any later fill area procedure could then have led to unexpected results. This minor bug (or misbehavior?) has been fixed. * image.c : if installed, dvipng can now be used as an alternative to the libdvipgm library, at the expense of a small slowdown in the output. This allows TeX input even without libdvipgm installed, dvipng being installable independently. 2021-02-12 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.3 * graphic.c : the "Text" menu has been substantially improved. Text and TeX/LaTeX input of arbitrary length, size, color can now be edited and converted to either a bitmap image or vector PostScript/PDF with embedded fonts. * More extensive testing - and a lot of small details fixed 2021-01-28 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.2 * Small improvement of versions 3.1.0, 3.1.1 with bug fixes. Xpaint can now be compiled without dvipgm (at the expense of losing some TeX functionality). Thanks to testers for feedback! * This version supports the use of layers (files *.lxp = Layered XPaint files). This is done via the C script editor. Any collection of images can be combined into a new merged image by a suitable C procedure. See example in directory share/c_scripts/templates/ * Compiling against libkpathsea and libdvipgm (from the dvipgm-1.x.tar.bz2 package, x >= 2) is needed to enable TeX input processing - otherwise the compilation scripts will disable TeX input. A minimal TeX environment is also needed to allow TeX interaction. * xpaintrw/readLXP.c : routines for reading LXP files * iprocess.c : routines for the creation of LXP files * image.c : ImageDup() procedure added * operation.c : new option for cleaning temporary files * This version has reached all capabilities that had been planned since a long time: layer handling, vector graphics operations, possibility of TeX input and of mathematical drawings, programmatic creation of images, filters and graphical functions. Therefore Xpaint will probably enter into maintainance and bug correction mode. 2021-01-27 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.1 * Small improvement of version 3.1.0 with bug fixes. * This version supports the use of layers (files *.lxp = Layered XPaint files). This is done via the C script editor. Any collection of images can be combined into a new merged image by a suitable C procedure. See example in directory share/c_scripts/templates/ * Compiling against libkpathsea and libdvipgm (from the dvipgm-1.x.tar.bz2 package, x >= 2) is needed to enable TeX input processing - otherwise the compilation scripts will disable TeX input. A minimal TeX environment is also needed to allow TeX interaction. * xpaintrw/readLXP.c : routines for reading LXP files * iprocess.c : routines for the creation of LXP files * image.c : ImageDup() procedure added * operation.c : new option for cleaning temporary files * This version has reached all capabilities that had been planned since a long time: layer handling, vector graphics operations, possibility of TeX input and of mathematical drawings, programmatic creation of images, filters and graphical functions. Therefore Xpaint will probably enter into maintainance and bug correction mode. 2021-01-24 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.0 * This version now supports the use of layers (files *.lxp = Layered XPaint files). This is done via the C script editor. Any collection of images can be combined into a new merged image by a suitable C procedure. See example in directory share/c_scripts/templates/ * Compiling against libkpathsea and libdvipgm (from the dvipgm-1.x.tar.bz2 package, x >= 2) is needed to enable TeX input processing - otherwise the compilation scripts will disable TeX input. A minimal TeX environment is also needed to allow TeX interaction. * xpaintrw/readLXP.c : routines for reading LXP files * iprocess.c : routines for the creation of LXP files * image.c : ImageDup() procedure added * operation.c : new option for cleaning temporary files * This version has reached all capabilities that had been planned since a long time: layer handling, vector graphics operations, possibility of TeX input and of mathematical drawings, programmatic creation of images, filters and graphical functions. Therefore Xpaint will probably enter into maintainance and bug correction mode ... 2021-01-21 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.5 * Vector drawing capabilities improved and hopefully almost complete. * Xpaint now allows the use of TeX input in mathematical drawings, provided it is compiled with the compilation flag -DHAVE_DVIPGM. The libdvipgm and libkpathsea libraries are required for this. * The new 'vxp2tex' utility converts VXP data into a TeX file that can be used with pdftex or pdflatex. * lineOp.c : ticks and graduation procedure added. * graphic.c, image.c, iprocess.c : several fixes and improvements. 2021-01-09 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.4 * This version has acquired substantial vector drawing capabilities. Just open 'Options->VXP vector data Editor' to enable vector drawing operations. Most of them are recorded in a plain text "VXP format" *.vxp. The external program 'vxp2ps' converts these data into (vector) postscript, and 'vxp2dkw' can be used to convert them for use in in the handwritten note editor deskwrite. Such Postscript files can be easily converted to PDF or SVG. * Xpaint can also read and rasterize *.vxp files (but at this point all operations that are not translated right away into vector data are ignored, even though they are recorded in the VXP file). * graphic.c, operation.c, misc.c, iprocess.c : extensive additions to implement VXP data processing. * share/c_scripts/procedures : canvas+vxp.c added as a new example. C scripts can be used to produce VXP data. 2020-08-04 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.3 * This version of xpaint requires in principle libXaw3dXft-1.6.2h (but would run with 1.6.2d,e by removing the compilation flag -DHAVE_NEWEDITINGSTYLE) * graphic.c: a new option has been introduced, allowing xpaint to use more easily graphics tablets, more specifically the user space drivers provided with deskwrite on Sourceforge. * menu.c: SetFocusOn() has been fixed. This allows the input focus to be preserved in active text fields, even when the cursor leaves the top parent window (as is usually expected with modern desktop interface guidelines ...) * iprocess.c: small improvement of the Gamma/RGB filter. * Further small fixes throughout, especially in the build scripts and the debian packaging. 2020-06-29 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.2 * This version of xpaint requires libXaw3dXft-1.6.2h (or later versions of the libXaw3dxft library - the changes between 'f', 'g' and 'h' merely consist of introducing a new parameter to allow scrollbars of text widgets to be on the right side, plus some minor improvements in the edition process) Removing -DHAVE_NEWEDITINGSTYLE in Makefile.am would make xpaint compatible with earlier versions 1.6.2d,e of libxaw3dxft with essentially no change, except for the text input editing behavior of Backspace and Delete keys. * xpaintrw/readWritePNM.c: is now using a more recent version of libnetpbm, rather than the completely obsolete version from the 1990's that was embedded in the original code of xpaint. One consequence is that libnetpbm10-dev or preferably libnetpbm11-dev are now needed to compile xpaint, another one is that PPM/PAM files with an alpha channel can now be read and written. Adjust the NETPBM defines (-DNETPBM10 or -DNETPBM11) according to the installed version of libnetpbm. * help.c: the help widget now has two independently resizable panes (topics and explanations). * pattern.c: correction of old bug (that had however no visible effect before 3.0.1). * graphic.c: exchange of primary and secondary colors or patterns is now accessible by clicking on the red cross below the color picker (shown as an eye). Similar addition for pattern.c 2020-06-16 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.1 * This version of xpaint requires libXaw3dXft-1.6.2f (or later versions of the libXaw3dxft library). Removing -DHAVE_NEWEDITINGSTYLE in Makefile.am would make it compatible with earlier versions 1.6.2d,e with essentially no change except for the text input editing behavior of Backspace and Delete keys. * print.c: by default, xpaint no longer depends on cups-bsd commands, (but they can be re-enabled via an adjutsment of the app-defaults files). * xpaintrw/readWritePS.c: the BoundingBox of a file saved as PS/PDF should now be set appropriately. * graphic.c, *Op.c: extensive additions. Xpaint can now record all operations that are performed as vector data, in the so called VXP format. The recording starts as soon as the VXP editor under the Options menu is started, and these data can be saved into a file <name>.vxp * readWriteJP2K.c: has been ported to work with openjpeg version 2 (JPEG2000 format), including alpha channel. * Various other small fixes throughout (SVG import, ...) * At a later stage, it will be possible to convert these VXP files to other vector formats such as eps, pdf or svg, and import them back to xpaint. There will be also an option to insert TeX input and convert the data into a (La)TeX file. 2020-05-25 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.0 * bitmaps/toolicons: new set of icons, generated from SVG data. * app_defaults: the app_defaults files have been reorganized so as to separate linguistic strings and other data, especially widget sizes. Three sizes are now offered: big, medium, small, to accommodate HiDPI screens or low resolution screens. * operation.c: the tool window is now fully resizable. In order to actually change the size of icons, users can copy /usr/share/xpaint/bitmaps/toolicons/ into $HOME/.xpaint/toolicons/ and generate icons with larger or smaller size there. Just type ./generate_icons <height> in $HOME/.xpaint/toolicons/ to produce a new set of icons with the given height (the xpaint package is distributed with icons of default height 36). The shell script "generate_icons" requires inkscape to work. * graphic.c: the parameter btnheight is now used to resize the palette elements as well as the height of buttons. This is useful for HiDPI screens (as well as for lower resolution screens of older computers). * main.c: new option -blind that keeps xpaint running under the hood when batch procedures are invoked. * xpaintrw/readWritePS.c: SVG import has been updated to work with inkscape-1.0. * The change of major number in this version anticipates the introduction of some vector graphics capabilities in the versions 3.x.y to come. (Right now, the only vector graphics capabilities are PS, PDF, SVG import). 2020-05-21 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 2.10.3 * lineOp.c : under the "segment" operation, users will now find new "Position" and "Measurement" tools. These tools do not draw anything, but instead they record the locations of pixels that are clicked on, and compute lengths and angles. * iprocess.c : The "Perspective" filter has been vastly improved. It should now enable users to correct the perspective of a distorted picture taken by a camera, or to create artificial perspective when producing a drawing. This can be used in connection with the new "Position" tool, so as to specify points on the canvas. * iprocess.c : The API of C scripts introduces a new public procedure PixelInterpolate(unsigned char *op, Image *input, double x, double y) that can be used to smooth pixels, under transformations that map integer coordinates into float values (as is the case e.g. for rotations or homotheties with arbitrary factor). This will sometimes improve the output of such operations (but may also make the image fuzzier). * Two new C scripts "similarity.c" and "projective.c" have been added. They show in particular how to exploit the PixelInterpolate() procedure. * Help and message files have been edited to explain details of the new functionalities. 2017-11-13 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 2.10.2 * Minor compilation fixes in iprocess.c and xpaintrw/readWriteJP2K.c thanks to the OpenSUSE team. * Bug in operation.c : exitPaint(...) could trigger a segfault when quitting xpaint without saving the canvas. Thanks to Anthony J. Bentley from the OpenBSD team for reporting the bug. * misc.h : srandom() is nowadays always of void type. * Minor fixes for the calculation of the maximum canvas size. 2016-12-10 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 2.10.1 (a substantial update!). * Xpaint includes a new command line option -btnheight that adjusts appropriately the size of all internal widgets in case a big menu font is used (e.g. by setting the option -menufont , or by changing the app-defaults file). This is very useful if you have a high resolution screen. Many small local modifications of various source files in the main tree have been necessary for this. * A new option -toolmode 0,1,2 can be used to initialize the display of the tool window. Also adjustable dynamically by resizing that window. * Default canvas size has been set to 1024x768 Related command line options are -canvassize and -winsize that can be used independently to adjust the default size of canvas and main window. * The app-defaults files and help files have been modified to accommodate the above additions. * The "Print" widget has been improved, and its menubar is now again available to adjust page formats (a bug introduced probably a long time ago prevented it to work !) * A newer version libXaw3dXft-1.6.2e.tar.bz2 has been posted. The only change is a 3 lines addition that circumvents (what seems to be) a bug occurring in certain X11/Xorg implementations, e.g. the intel driver, version 2.99.917. Otherwise this will make no difference. * Changed the library name librw to libxpaintrw to avoid shared library conflicts. Thanks to Michael Orlitzky for pointing out the issue. * Applied a number of patches from gentoo.org that substantially improve the compilation process. Thanks to Julian Ospald <hasufell@gentoo.org> 2015-01-02 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10.3 * Port to the newer libXaw3dXft-1.6.2d.tar.bz2 (the latter is actually a requirement, this version no longer compiles with libXaw3dXft-1.6.2c). The point is that libXaw3dXft-1.6.2d has improved binary compatibility with plain libXaw3d-1.6.x * Only further cosmetic changes, no change in functionality. 2014-04-17 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10.2 * Minor fixes in 'configure.ac' and 'configure.old' scripts Xpaint can now be compiled again with plain Xaw or Xaw3d (this is NOT recommended, Xaw3dxft definitely gives much better results !) Thanks to Stefan Husmann (Arch Linux) for helpful reports in this respect. * 'configure' (based on autotools) and 'configure.old' (based on imake) should in most cases give essentially equivalent binaries. * PDF files are now read by using mudraw if mupdf & mupdf-tools are installed (otherwise Xpaint falls back to the formerly used solution: pdf2ps + ghostscript, a much slower one...) * Xpaint can now even import libreoffice files as images as soon as libreoffice is installed (assuming /usr/bin/libreoffice is a valid path to the main program) 2014-04-09 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10.1 * Includes the "version_and_focus_patch_for_2.9.10" and other minor fixes. * The alpha channel menu now includes a new function that allows editing as RGB values the image that appears when transparency is applied on a background of the selected background color - white being the default (this removes the transparency levels afterwards, so as to get a pure RGB image). * Bug (probably very old) corrected : selection of background color always resulted in black being chosen ! 2014-03-03 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10 * This version should preferably be compiled with libXaw3dXft-1.6.2c, although it still works Ok with libXaw3dXft-1.6.2b. * readWritePNG.c: fixed bug occurring when writing grayscale images possessing no more than 16 colors. * readWriteJPEG.c: JPEG images in CMYK colorspace are now handled properly (they will still be memorized as RGB, so the original CMYK information is lost, but at least they are shown correctly). * fileBrowser.c: "Save" and "Save as" menus now include the option to adjust JPEG quality between 50% and 100% (default is 90%) * fileBrowser.c: improved logic : the file browser now remembers file names when changing directories, and also takes into account default extension when specifying file format. * fileBrowser.c: thanks to a new feature from libXaw3dXft-1.6.2c (possibility of creating colored lists), xpaint now implements file type coloring in its file browser - at this point this is guessed merely from the suffix of the file. * operation.c: Canvas menu reorganized - it is now named "File menu" so as to conform to general use. Except from reordering the items, the main functionality is unchanged. * pattern.c: bug fixes. A segfault problem in the zoom selector has been corrected, and contextual help has been fixed. 2013-01-27 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.9.4 * This version should be compiled with libXaw3dXft-1.6.2b * RGB channel separation procedure fixed and improved * Fix in CRC data handling of regions in memory. * XPaint now remembers better the position of regions saved in memory. The recorded position can now be changed or reset to origin through the memory management menu. * compilation fix for pgf2pnm with newer libpgf-6.12.24 * Avoid "bool" variable throughout, as this is a typedef in <stdbool.h> * Fixes to configure scripts, thanks to Daniel Macks (fink project) * Minor GUI improvements 2012-02-14 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.9 * Xpaint now uses (or tries to use!) autotools. * libxaw3dxft is now a separate package (but is still a requirement, and in fact should be installed before). * xpaintrw/rwTable.c : segfault fix (occurring randomly) fixed in readMagic(). * minor fix in fontSelect.c, certain fonts were possibly missing in the font browser, in some rare circumstances. * very minor fix of scrollbar behaviour in graphic.c. * misc.c : new procedure SetWMInputHint() that helps solving some quirks. 2012-01-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8.4 * minor fixes in fileBrowser.c (adjustable height of text entry for the file name, resize procedure improved). 2011-10-13 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8.3 * xpaintrw/pgf-util/Makefile : add '-fpermissive' flag to allow compilation with recent (more picky!) versions of g++ * Xaw3dxft/Viewport.c : position of scrollbars can now be adjusted through parameters sbShift[X,Y][1,2]. No public API change, so this addition should be upward compatible. * graphic.c : some small fixes in the shellHandler routine to accommodate odd behavior of scrollbars with xorg recent versions, using the new sbShift feature. 2010-12-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8.2 - nothing really new, just very small fixes * Integrated patch to facilitate compilation with gcc-4.5 * app-defaults files : slight improvement of X event management in pull-down menus. * print.c : slight improvement of X event management in print widget. * fontOp.c : fixed color issue (color not initialized) when moving written text with arrow keys. * Very small changes in Xaw3dxft (minor Xaw3dXft.h API update) 2010-11-08 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8 * Xaw3dxft : code clean-up. New files Xaw3dXft.h and Xaw3dXft.c now contain the specific Xaw3dxft parameters and routines. A couple of small improvements to correct minor quirks in the menu entry highlighting behaviour. * main.c, graphic.c : changes made to accommodate the API changes introduced in Xaw3dxft. Further code clean-up. * image.h, graphic.c, iprocess.c : modified definition of the imageprocessinfo struct, so that hopefully compilation still works with gcc 4.5 (gcc-4.5 appears to be more picky with struct definitions). Thanks to Fedora maintainer Paulo Roma Cavalcanti <promac@gmail.com> for reporting the issue. 2010-11-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.7 * Arrow keys and "Backspace", "Return", "Escape" keys can now be used in all drawing operations whose effect is not immediate, especially all routines from arcOp.c, lineOp.c, polygonOp.c, freehandOp.c, splineOp.c, TextOp.c Arrow keys allow moving objects around before they are completely drawn, "Escape" restarts the operation from scratch, "Return" terminates the operation, and "Backspace" rewinds the course of operation backwards. * freehandOp.c : this operation now allows to draw arbitrary combinations of freehand and polygonal shapes and should be easier to use or to modify interactively thanks to the key bindings. * sprayOp.c : minor code clean-up. * updated accordingly Help files. 2010-10-25 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6.4 A couple of small improvements in spline, polygon, text and color operations. * fontOp.c, splineOp.c, polygonOp.c : implemented "Backspace" key action, i.e. removing last point or last character; "Escape" now entirely restarts the operation from the beginning. Other small improvements (including correction of a potential segfault occurring in some strange circumstances...); polygonOp() code is now also much simpler and easier to read. * graphic.c : multiple clicks on any of the three color/pattern selection discs now switch primary and secondary colors/patterns. * updated accordingly Help files. 2010-10-08 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6.3 - minor bug fix release - nothing really serious. * ops.h : minor compilation issue fixed. * graphic.c : corrected segfault bug of RegionToRGBA channels (occurring only when alpha channel was to be saved.) * chroma.c : fixed minor scrolling issue in color variance scrollbars. * graphic.c : added new menu lines to proceed more easily to editing of alpha channels or images in memory. * updated accordingly Help files, messages and app-defaults files. 2010-09-26 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6.2 * print.c : printing was completely broken, as a result of using double values instead of float values. Reverted to float ! * chroma.c, color.c, magnifier.c, fontSelect.c : revert to float ! * iprocess.c : fixed bug occurring only in very rare circumstances (creation of image with an alpha channel, being edited and compiled on the fly through the embedded C-script editor) * graphic.c : small improvement in ModifyRGB (new routine to rescale gray levels linearly from given thresholds). 2010-09-14 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6 * xpaintrw/rwTable.c, xpaintrw/readWriteTGA.c : fixes in TGA format, so as to prevent that xpaint could hang on certain non TGA files. Make sure anyway that TGA is parsed as a last resort, since TGA is a strange format without signature. * image.c, iprocess.c, graphic.c : substantial improvements in filter routines : - Added new "Merge" filter : helpful to combine smoothly an image with the underlying canvas. Works according to 4 different modes - Added new "Distortion" filter which can be used to produce local deformations - Added powerful Floyd-Steinberg algorithm (color quantification enhanced with a diffusion process). - Replaced "ModifyRGB" by a generalized RGB transformation procedure with 7 different modes, including Gamma correction (with independent r_gamma, g_gamma, b_gamma parameters), and linear transform. - Fixed several shortcomings of "Normalize contrast" and "Emboss" routines; "Emboss" now has 2 parameters allowing linear correction. - Renamed "Tilt" as "Projective Transform" with several enhancements. - Renamed "ImageCopy" as "ImageCopyData" which says more accurately what it does. * graphic.c : Memory menu : management of R,G,B and alpha channels : - Added extraction of red, green, blue, alpha channels from region - Added merge procedure for those channels * msgedit.c : new utility which can be used to extract strings from the English version of "Messages" and combine them with a partially localized "Messages_XY" for any other language - useful as well to avoid discrepancies between languages! * Many updates to Message and Help files. 2010-09-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.5 * xpaintrw/readWritePNG.c : fixed WritePNG() for alpha channel images possessing less than 16 black and white colors, which xpaint tried to write in an incorrect PNG mode. * graphic.c : fixed segfault bug when invoking "Clone Canvas" procedure. * xaw3dxft : a few hacks to work around minor display bugs related to Xft anti-aliasing/composition effects on certain X servers (especially proprietary NVIDIA ...) * main.c : new command line options -tooltips, -notooltips * operation.c, graphic.c : implemented tooltips (they can be disabled from the tools/help menu). * man page and help files : updated. 2010-08-15 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.4 * xpaintrw/readWriteTGA.c : added support for TGA format (borrowed mostly from mtpaint project). * xpaintrw/rwTable.c : code clean-up. * Paint.c, PaintRegion.c : fixes for certain complex situations involving region selection with masks and alpha channel. (Segfault could occur in Fatbits editor under those circumstances). * graphic.c : Suppression of alpha channel could lead to segfault. 2010-08-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.3 * xpaintrw/readWriteICO.c : imported a lot of code from the 'icoutil' GPLed package. As a result, xpaint can now read most Windows ICO files, even those containing embedded compressed PNG/JPG images which icoutil cannot fully open. Support for ICO masks as alpha channel, and for writing single image ICO files. * xpaintrw/readWritePGF.c : PGF image format support improved, thanks to 'pgf2pnm' provided by Christoph Stamm <christoph.stamm@fhnw.ch> (creator of the PGF format). libpgf and libpgf-dev are needed only optionally to compile 'pgf2pnm', which then provides PGF support in xpaint. However, xpaint itself does not link with libpgf and does not need libpgf-dev to be compiled. The alpha channel of PGF images is fully supported. * graphic.c : improvements/bug fixes in the "Clone with Zoom" procedure. Now works for zooming/downscaling images, with/without interpolation, and for adjusting alpha channel as well. * graphic.c, PaintEvent.c : much more powerful implementation of the "Delimit region" procedure, according to six different options (connected/non connected/color range regions, or complements of such regions). * The help files have been updated to reflect all current functionality of XPaint (Spanish help additions should be revised by a native speaker !) 2010-07-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.2 * xpaintrw/*.c : huge code clean-up. Saving files now show up a warning when the image possesses an alpha channel, but the format chosen does not support it (completely or in part). Note: saving in PNG should almost always be a safe choice ... * xpaintrw/readWriteTIFF.c : support substantially improved, including alpha channel read/write. More exotic TIFF formats unsupported. * xpaintrw/readWriteBMP.c : many more BMP image format types are now supported, including full support for images with an alpha channel (read/write). * xpaintrw/readWritePNM.c : provisions made to include support for alpha channel in PNM (this is a specific extension of xpaint : an RGB image concatenated with a gray level image of the same size - and '\n' in between - is viewed as RGBA data). * xpaintrw/readWriteJP2K.c : added support for JPEG2000 image format. Either libopenjpeg (default) or libjasper (optionally) can be used. Full support for alpha channel (requires openJPEG from subversion at this point now, since "stable" version 1.3 has insufficient alpha channel implementation...). * xpaintrw/readWritePGF.c : added support for PGF image format. This requires libpgf and pgf to be installed (but xpaint does not need to be linked against libpgf, and its compilation does not require libpgf-dev files either.) * xpaintrw/readWriteSGI.c : repaired old dormant code to read run-length encoded SGI/Irix image files. Checked to work fine. * xpaintrw/readWriteICO.c : unsupported, very buggy code. Disabled at this point. Instead, use e.g. 'icoutil' to convert those files to PNG ... * dialog.c : very small fix providing UTF8 support in AlertBox window titles (and always raising warning windows). * configure : if libXaw3dxft is installed as a shared library, compilation is now set by default to use it, rather than linking statically xpaint to libXaw3dxf.a 2010-07-18 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.1.5 * graphic.c : added "*allowResize: False" in Canvas*pane*form to prevent annoying widget initialization on certain platforms * xpaintrw/readWritePS.c : small fixes to handle correctly PS/PDF files whose names contain quotes or blank characters. 2010-07-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.1.4 * fatBitsEdit.c, Paint.c , Paintregion.c : several fixes in handling of alpha channel in fatbits editor - some affecting alpha channel image bits. * app-defaults : change zoom labels to correct values xx:1 instead of 1:xx * graphic.c : prevent fatbits editor getting called undeservedly by GetNonDirtyCanvas() routine ; removing alpha channel now moves it to memory rather than destroying it right away. * xpaintrw/readWritePS.c : fix for compilation of TeX/LaTeX files being called from random directories. * minor fixes throughout - thanks to the SUSE-Packman maintainer Detlef Reichelt <detlef@die-mafia.de> for help. 2010-06-02 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.1 * Paint.c , Paintregion.c : fixes in alpha channel routines. * fatBitsEdit.c : many fixes in fatbits editor. Refresh button added * graphic.c : reload file procedure didn't reload alpha channel - this is now fixed. * fontOp.c : potential segfault corrected. * small other (mostly random) improvements. 2010-05-16 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.0 * graphic.c, Paint.c : big improvements in handling of alpha channel ; alpha management menu is now explicit from canvas menu bar. Support still not quite complete at this point (regions do not appear yet in alpha mode). Should come for 2.9.1... * Paint.c, PaintRegion.c : fixed segfault occurring when using region operations in fatbits editor (regression introduced already in 2.8.9 which remained unnoticed up to 2.8.19 ...) * fontOp.c, fontSelect.c : UTF8 support should now be essentially complete. * xpaintrw/readWritePNG.c : fixed bug when writing PNG_COLOR_TYPE_PALETTE images with less than 16 colors (those images were wrongly converted to gray palette...) * several other small fixes and improvements throughout. 2010-04-17 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.19.1 (mostly cosmetic changes) * fileBrowser.c : added "ongoing" mode in File Browser (widget no longer closes when opening an image, allowing to browse files continuously). Performed a substantial code clean-up as well. * operation.c, graphic.c : menu improvements; one can now open an image from any canvas window. * misc.c : added RaiseWindow() routine to comply better with ewmh specifications. XMapRaised() replaced by RaiseWindow() throughout. * "snapshot" replaced by "screenshot" throughout. 2010-04-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.19 * fileBrowser.c : fixed minor annoyance in "save" and "saveas" routines - name of file is now again remembered when a filename has already been set. * graphic.c : fixed bug in ToolSelection switcher; "font" menu replaced by more powerful "text" menu; new entry added to edit/write text from text editor embedded in font browser. * iprocess.c : fixed bug in filter "adjust RGB colors" * fontSelect.c, fontOp.c : text sample is now editable, and this text can be imported on canvases. This includes being able to set fonts, colors, linespacing (etc) as editable text. Any UTF8 encoded file can be read and edited, and a small number of special commands are available to format such texts; for hints on how to use this, see "Doc/TextFormat.doc". Xpaint can thus be used as a text editor (sort of!), useful e.g. to create posters with text and graphics. * xpaintrw/readWritePS.c : support for reading a file as "enriched text". * main.c : new command line options -textfont and -astext, the latter for opening files as enriched text. * share/bin/imgmerge : small tweak to use a static PageInfo struct, otherwise imgmerge would segfault (gcc bug ?) 2010-03-13 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.18 * Minor fixes (UTF8 names in windows, rare segfault when using external viewer) * xpaintrw/readWritePNG.c : xpaint now saves correctly gray images which have an alpha channel. * xpaintrw/rwTable.c : introduces auto-detect mode for writing files (image type is guessed from suffix of file name, and set to PNG as a fallback). * xaw3dxft : changed library name to libXaw3dxft to avoid interfering with regular libXaw3d. Added hooks in 'configure' to (possibly) install and compile it as a shared library. Corrected an issue in xaw3dxft/List.c which could sometimes lead to a fatal X error. * Added man pages for imgmerge and pngconcat (provided by Debian maintainer Josué Abarca) * Removed dependency on Xft.h in PaintP.h which had the unfortunate effect of breaking C-Script compilation, e.g. in imgmerge. 2010-03-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.17 * Xpaint is now fully UTF8 compliant. This has been done rather cheaply by linking statically with a modified xaw3d library which is UTF8 & Freetype aware. This also means that anti-aliasing is enabled in the menus and text widgets, and that the X core font protocol is no longer used anywhere. * By default, Xpaint no longer depends on external xaw/xaw3d/xaw3dg libraries as it is compiled with its own improved xaw3d clone; this only adds approximately 250 kB to the binary executable. * Xpaint can still be used with 8 bit encoding by specifying the command option 'xpaint -encoding 8'. However the resource files XPaint* Messages* Help* should then preferably be converted back to a 8bit locale, otherwise some strange characters will show up in the menus, at least in languages which use non ASCII characters. 2010-02-17 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.16.1 * fontSelect.c, misc.c : introduced clickFocusCallback which fixes keyboard focus in fontSelect and in color picker ascii text input widgets (problem occurred e.g. under KDE). Use 2.8.16 with xpaint-2.8.16-keyboard-input.patch. 2010-02-12 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.16 * graphic.c, fontOp.c, fontSelect.c : Xpaint now uses the Xft protocol to display fonts, so that (in particular) all TrueType fonts are available, and the corresponding glyphs are nicely anti-aliased without resorting to a use of sub-pixel resolution. Another benefit is the possibility of rotating text, or even applying arbitrary linear transformation (however, writing fonts with a pattern instead of a plain color is no longer possible directly - for this, one can use instead masks or a fill procedure). * xpaintrw/readWritePNG.c : applied small patch from Stefan Husmann (Arch Linux maintainer) to take care of API deprecation in newer versions libpng-1.4.x. 2010-02-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.15 * PaintRegion.c : finally found and corrected long standing bug which plagued iteration of filters and undo procedures. * fileBrowser.c : several GUI improvements. * xpaintrw/readWritePS.c : improved handling of BoundingBoxes. Fixed bug in the use of 'psselect' which was found on the Fedora bugzilla list (many thanks to Paulo Roma Cavalcanti <promac@superig.com.br> for analyzing the issue) 2010-01-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.14 * graphic.c : memory management simplified and improved; added CRC32 checksum control to avoid duplicates. * xpaintrw/readScript.c : fixed potential bug occurring in rare circumstances. * Various fixes in batch scripts 'imgmerge', 'batch.c' and 'xpaint_ocr' GPLv3 licence specified there. * Included new debian files released by Debian maintainer Josué Abarca * xpaint.man.in : corrected a ­ issue (thanks again to Josué Abarca) 2010-01-20 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.13 * Paint.c : corrected nasty bug * graphic.c : GUI improvements. Border color of paint widget now indicates status of image (red: non editable, green: resize enabled, blue: has an alpha layer, black: otherwise). * image.c : ImagaToPixmap() et al modified so as to manage alpha channel mode once for all (rather than repeating this for each of the image loaders). 2010-01-18 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.12 * misc.c, graphic.c : some more fixes for alpha channel issues. 2010-01-17 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.11 * fileBrowser.c : browserResized() : included patch for accommodating bug in certain versions of the Xaw3d library * Paint.c : PwGetPixmap() modified so as to work independently of zoom value. Saving a file under zoom<1 now works !! * graphic.c : there is now support for adjusting join and cap style of lines being drawn. Fixed handling of memory box. * Code for alpha channel completed and made more robust (substantial changes in graphic.c, Paint.c, PaintRegion.c) 2010-01-10 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.10 * graphic.c : many GUI improvements. Some alpha channel fixes. (arbitrary linear transformation of alpha channel still not implemented). * lineOp.c : fixed arrow and vector drawing under zoom != 1 (were correctly written to pixmap but incorrectly shown on canvas). * fileBrowser.c : a few cosmetic changes to make code more robust. * xpaintrw/readWritePNG.c : fixed readPNG() for non transparent PNG images possessing a palette of colors. 2010-01-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.9 * polygonOp.c : segfault bug corrected. Polygonal regions can now be selected correctly under zoom values other than 1. * xpaint.h : various API modified to include alpha channel (in images, paint canvases, clipboard, memory stack...) * PaintUndo.c : implemented alpha channel in Undo stacks * PaintRegion.c, graphic.c : routines to set/show/edit the alpha channel are now implemented in a fairly complete manner. * readWritePNG.c : xpaint now saves a canvas with an alpha channel as a PNG file with a corresponding alpha channel. * readWriteXPM.c : xpaint now saves a canvas with an alpha channel as an XPM file with a "None" color (reduced to a 0/1 mask). (By default, alpha<128 is considered to be transparent and alpha>=128 to be opaque. The threshold value 128 can be changed from the options.) * readGIF.c : xpaint can now read alpha channel of GIF89 files possessing transparent pixels (setting transparent pixel in writeGIF.c not yet implemented). 2009-12-09 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.8 Interim release with partial support for transparent images; alpha channel is now correctly read when loading PNG and XPM images. Easier management and writing support will be implemented in 2.8.9. * xpaintrw/readGIF.c : xpaint will now open all frames of animated GIF images, and not just the first frame - support of this feature was already there, but had never been made accessible from the GUI ! * xpaintrw/readWritePNG.c : xpaint now detects PNG images possessing an alpha channel and loads them properly. The RGB values and alpha channels can be edited separately (but not yet mixed back easily). * xpaintrw/readLXP.c : preliminary implementation of layered xpaint image format LXP. File share/c_scripts/templates/script.c used as template. * pattern.c : new button introduced to modify background color (thus duplicating functionality from the separate background color widget). * fileBrowser.c : widget improved. Four new buttons added to get directly to home, root and current directory, and to show/hide dot files. The browser of loaded files now has buttons for editing C scripts and managing layers (implementation somehow works, but is not yet complete). * iprocess.c : corrected segfault bug occurring in certain circumstances, e.g. when loading recursive image C-scripts. In particular, "layer" example share/c_scripts/layers/combine.c now works again. 2009-11-18 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7.3 (very minor changes) * graphic.c : corrected very tiny bug in resizeCanvas() routine which resulted in occasional disappearance of Fatbits cursor, when the canvas was resized under certain zoom reduction values. * fatBitsEdit.c : added convenience routine FatbitsEditorDestroy(paint) (not yet used inline - could possibly be used from C scripts). * small addition in Local.config file 2009-11-15 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7.2 (very minor changes) * Further cosmetic fixes and code cleaning ; X error handler improved (just in case). * snapshot.c : taking a snapshot from the tools window now unmaps the window (so that any window stacked behind can be captured); spurious warning 'bad pixmap' from libX11 has been eliminated. 2009-11-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7.1 (released only as a patch to 2.8.7). * Further cosmetic improvements and code cleaning not really worth bothering (e.g. popup menus which, when users change their mind and no longer want to use them, may not immediately popdown as would be expected when clicking randomly outside, e.g. on the canvas ...) 2009-11-04 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7 released. * graphic.c, menu.c, PaintEvent.c : a substantial number of cosmetic changes made to further improve the menu behaviour. * fileName.c renamed as fileBrowser.c * fileBrowser.c : Some "flickering" issues in the browser have been corrected. The file browser of "loaded files" now include ad hoc fields and buttons for modifying the scaling of vector format images (PS/PDF/DVI/TeX/LaTeX/SVG) as well as for selecting a page in multi-page documents. Now, Xpaint can thus be used as a practical viewer for such documents - though for this purpose it's certainly not as fast and optimized as specialized viewers ... * readWritePS.c : multipage PostScript files require 'psselect' from the psutils package. (This is a very simple program so we may consider including it in the next version of xpaint to remove that dependency.) DVI files are now accepted, along with PS/PDF/TeX/LaTeX/SVG. * print.c : selecting PDF option now (really) saves file as PDF rather than PostScript. * Merged Changelog and (unmaintained) file Doc/CHANGES 2009-10-27 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.6.1 released. * bug fixes : main.c : xpaint did not accept setting default zoom < 100% through command line graphic.c : underestimated evaluation of canvas window size for large images, resulting in image not being fully displayed even when it could. PaintRegion.c : segfault bug occurring in certain circumstances when dragging a region outside viewport, in region transparency mode. 2009-10-26 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.6 released. * Extensive changes in many parts, to provide capability for zoom = 1/n, while performing all possible operations under such a zoom. This means that anti-aliasing can be obtained by using e.g. zoom = 1/3 and then cloning the canvas with the given reduction. * magnifier.c: Introduced a magnifying glass, based on code of 'xlupe' by Thomas Runge (runge@rostock.zgdv.de) * operation.c: menu now includes an item to open the magnifying glass, and a browser for all images which have been opened or loaded from the command line. * fileName.c : the buildBrowser() routine has been extended to have a mode ('type=4') showing the list of loaded images. * graphic.c: edit menu includes 2 items for cloning the canvas (with or without reduction) * a lot of bugs have been ironed out, e.g. a crash in the polygon selection area, and a very long-standing bug in the memory management of menu.c which used to cause (fortunately unfrequent) random crashes. 2009-10-16 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.5 released. * graphic.c, user visible changes : added a zoom button and a new toggle allowing to resize the canvas, using mouse or arrow keys. Several other related improvements have been made for zooming/resizing, along with a few minor fixes (the layer example "layer.c" compiles again without segfaulting.) 2009-10-13 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.4 released. * pattern.c : Fixed segfault bug in color/pattern budget, which occurred when creating new brushes. * print.c : added new toggle so as to possibly produce a compressed PS file, or send to printer a PDF file rather than a PS file. The annoying printing notification popup has been replaced by a less intrusive notification. Many other small improvements - e.g. output postcript file can be selected with a file browser. * xpaintrw/readWritePS.c : the PostScript generator has been considerably improved. XPaint is now capable of producing strongly compressed PostScript files, of weight increased hardly by more than 30%-35% when starting from a PNG file of the same resolution, and the process is faster than before - it seems that even gimp does not yet take care of this, its PS files can often be reduced to less than 50% of their current size (huge thanks to Peter Szabo for showing the way with his sam2p program.) A standalone 'ppmtops' utility has been included for potential re-use elsewhere. * Clarification of the licence. Xpaint is an old program, many parts of which were written at a time when the GPL was not so pervasive. To the best knowledge of the current maintainer, all parts where written under permissive licences which are compatible with the GPL. J.-P. Demailly thus puts under the GPLv3 all code developped by him in the last twelve years - that's probably more than 30% of the total amount of code, and the program as a whole should thus be considered as GPLv3. All related utilities ('ppmtops', C scripts, etc) are also put under the GPLv3. 2009-10-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.3 released. * Included 2 patches from Mandriva packagement experts, fixing some minor compilation problems and potential security issues. * xpaintrw/readWritePS.c : xpaint is now able to display TeX, LaTeX, PDF and SVG files using image conversion from external ad hoc programs. Option -dpi <dpi value> can be used to adjust size of image. 2009-10-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.2 released. * pattern.c : found and fixed two long standing segfault bugs (fortunately occurring only in not so frequent circumstances) * Set default gridcolor to grey80 on TrueColor displays, a less intrusive color than black. 2009-09-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.1 released. * Introduced rectangular (not just square) snap grids. Color of grid can be changed to arbitrary color. * graphic.c : corrected segfault bug in simplemenu switcher (selector popup). 2009-09-27 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.0 released. * Menu popups have been entirely reworked. Their behaviour is now more fluid - and similar to the default behaviour of modern toolkits like GTK/qt - so users should feel less disturbed. (this required numerous changes in menu.c and app-defaults) * Fixed size handling of Canvas windows under maximize/unmaximize procedures. * Stability should be considerably improved. Some memory leaks have been removed as well. * Added new command line options: -undosize <num> (set undo memory limit) -operation <num> (start with operation <num> set in tool panel) -filter <file> (define filter by using <file> as C-script) -proc <file> (define procedure by using <file> as C-script) * Added support for using menu popups in C script filters See share/c_scripts/filters/clean.c for an example. This means that C script filters can involve adjustable parameters which can be easily changed (i.e. without needing a recompilation each time the parameters are changed.) * Added support for using menu popups in C script procedures See share/c_scripts/procedures/proc_with_params.c for an example * iprocess.c, xpaintrw/readScriptC.c : added support for running batch jobs (for mass processing of images, using xpaint as the engine); see share/c_scripts/batch/batch.c share/bin/imgmerge * Added batch script 'imgmerge' which uses xpaint to convert and concatenate image files into a single PDF file. This also makes use of Peter Szabo's 'pdfconcat' program (GPL, included). * Added support for OCR (with the ocrad engine by default) The OCR engine(s) can be specified in the bash script /usr/share/xpaint/c_scripts/bin/xpaint_ocr This means that xpaint can be easily used as a GUI for command line OCR engines ('xpaint_ocr' makes use of the 'xless' pager, by default, but any other pager/editor can be used instead). * brushOp.c: system wide brushes are no longer hardwired, and can now be configured from the SHAREDIR directory. * Added additional brushes provided by John David Gray <kahdgarxi@gmail.com> which are useful to draw electronic circuitry. Also included a patch of him introducing three new patterns and extending the drawVisibleGrid() routine in Paint.c * Fixed (and improved as well) behaviour of snap and grid routines, also using ideas of JD Gray. * Changed rotations to use trigonometric positive rotation rather than clockwise. This was too unnatural to me ! * Numerous bug fixes. Thanks to Mattis Michel <sic_zer0@hotmail.com> for correcting a bug in the snap routines and for providing further improvements; Mattis noticed - and urged correction - of a critical bug in the "Load clipboard" procedure; he also suggested putting WM hints on minimal size of widgets so as to avoid random crashes under wild resizing of the windows. * Updated the man page - which had actually been neglected for a couple of years ...
2023-01-22 18:41:52 +01:00
share/xpaint/c_scripts/batch/batch.c
share/xpaint/c_scripts/filters/clean.c
share/xpaint/c_scripts/filters/leftright.c
share/xpaint/c_scripts/filters/mapping.c
share/xpaint/c_scripts/filters/merge.c
share/xpaint/c_scripts/filters/permute.c
xpaint: update to release 3.1.4, using wip/xpaint. Packaged in wip by @adam + a couple of changes by @vins Changes (since version 2.7.8) 2021-08-14 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.4 * arcOp.c : the DrawArc procedure now checks that the arc is not drawn with a zero linewidth - otherwise some pixels could have been missing, and any later fill area procedure could then have led to unexpected results. This minor bug (or misbehavior?) has been fixed. * image.c : if installed, dvipng can now be used as an alternative to the libdvipgm library, at the expense of a small slowdown in the output. This allows TeX input even without libdvipgm installed, dvipng being installable independently. 2021-02-12 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.3 * graphic.c : the "Text" menu has been substantially improved. Text and TeX/LaTeX input of arbitrary length, size, color can now be edited and converted to either a bitmap image or vector PostScript/PDF with embedded fonts. * More extensive testing - and a lot of small details fixed 2021-01-28 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.2 * Small improvement of versions 3.1.0, 3.1.1 with bug fixes. Xpaint can now be compiled without dvipgm (at the expense of losing some TeX functionality). Thanks to testers for feedback! * This version supports the use of layers (files *.lxp = Layered XPaint files). This is done via the C script editor. Any collection of images can be combined into a new merged image by a suitable C procedure. See example in directory share/c_scripts/templates/ * Compiling against libkpathsea and libdvipgm (from the dvipgm-1.x.tar.bz2 package, x >= 2) is needed to enable TeX input processing - otherwise the compilation scripts will disable TeX input. A minimal TeX environment is also needed to allow TeX interaction. * xpaintrw/readLXP.c : routines for reading LXP files * iprocess.c : routines for the creation of LXP files * image.c : ImageDup() procedure added * operation.c : new option for cleaning temporary files * This version has reached all capabilities that had been planned since a long time: layer handling, vector graphics operations, possibility of TeX input and of mathematical drawings, programmatic creation of images, filters and graphical functions. Therefore Xpaint will probably enter into maintainance and bug correction mode. 2021-01-27 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.1 * Small improvement of version 3.1.0 with bug fixes. * This version supports the use of layers (files *.lxp = Layered XPaint files). This is done via the C script editor. Any collection of images can be combined into a new merged image by a suitable C procedure. See example in directory share/c_scripts/templates/ * Compiling against libkpathsea and libdvipgm (from the dvipgm-1.x.tar.bz2 package, x >= 2) is needed to enable TeX input processing - otherwise the compilation scripts will disable TeX input. A minimal TeX environment is also needed to allow TeX interaction. * xpaintrw/readLXP.c : routines for reading LXP files * iprocess.c : routines for the creation of LXP files * image.c : ImageDup() procedure added * operation.c : new option for cleaning temporary files * This version has reached all capabilities that had been planned since a long time: layer handling, vector graphics operations, possibility of TeX input and of mathematical drawings, programmatic creation of images, filters and graphical functions. Therefore Xpaint will probably enter into maintainance and bug correction mode. 2021-01-24 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.0 * This version now supports the use of layers (files *.lxp = Layered XPaint files). This is done via the C script editor. Any collection of images can be combined into a new merged image by a suitable C procedure. See example in directory share/c_scripts/templates/ * Compiling against libkpathsea and libdvipgm (from the dvipgm-1.x.tar.bz2 package, x >= 2) is needed to enable TeX input processing - otherwise the compilation scripts will disable TeX input. A minimal TeX environment is also needed to allow TeX interaction. * xpaintrw/readLXP.c : routines for reading LXP files * iprocess.c : routines for the creation of LXP files * image.c : ImageDup() procedure added * operation.c : new option for cleaning temporary files * This version has reached all capabilities that had been planned since a long time: layer handling, vector graphics operations, possibility of TeX input and of mathematical drawings, programmatic creation of images, filters and graphical functions. Therefore Xpaint will probably enter into maintainance and bug correction mode ... 2021-01-21 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.5 * Vector drawing capabilities improved and hopefully almost complete. * Xpaint now allows the use of TeX input in mathematical drawings, provided it is compiled with the compilation flag -DHAVE_DVIPGM. The libdvipgm and libkpathsea libraries are required for this. * The new 'vxp2tex' utility converts VXP data into a TeX file that can be used with pdftex or pdflatex. * lineOp.c : ticks and graduation procedure added. * graphic.c, image.c, iprocess.c : several fixes and improvements. 2021-01-09 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.4 * This version has acquired substantial vector drawing capabilities. Just open 'Options->VXP vector data Editor' to enable vector drawing operations. Most of them are recorded in a plain text "VXP format" *.vxp. The external program 'vxp2ps' converts these data into (vector) postscript, and 'vxp2dkw' can be used to convert them for use in in the handwritten note editor deskwrite. Such Postscript files can be easily converted to PDF or SVG. * Xpaint can also read and rasterize *.vxp files (but at this point all operations that are not translated right away into vector data are ignored, even though they are recorded in the VXP file). * graphic.c, operation.c, misc.c, iprocess.c : extensive additions to implement VXP data processing. * share/c_scripts/procedures : canvas+vxp.c added as a new example. C scripts can be used to produce VXP data. 2020-08-04 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.3 * This version of xpaint requires in principle libXaw3dXft-1.6.2h (but would run with 1.6.2d,e by removing the compilation flag -DHAVE_NEWEDITINGSTYLE) * graphic.c: a new option has been introduced, allowing xpaint to use more easily graphics tablets, more specifically the user space drivers provided with deskwrite on Sourceforge. * menu.c: SetFocusOn() has been fixed. This allows the input focus to be preserved in active text fields, even when the cursor leaves the top parent window (as is usually expected with modern desktop interface guidelines ...) * iprocess.c: small improvement of the Gamma/RGB filter. * Further small fixes throughout, especially in the build scripts and the debian packaging. 2020-06-29 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.2 * This version of xpaint requires libXaw3dXft-1.6.2h (or later versions of the libXaw3dxft library - the changes between 'f', 'g' and 'h' merely consist of introducing a new parameter to allow scrollbars of text widgets to be on the right side, plus some minor improvements in the edition process) Removing -DHAVE_NEWEDITINGSTYLE in Makefile.am would make xpaint compatible with earlier versions 1.6.2d,e of libxaw3dxft with essentially no change, except for the text input editing behavior of Backspace and Delete keys. * xpaintrw/readWritePNM.c: is now using a more recent version of libnetpbm, rather than the completely obsolete version from the 1990's that was embedded in the original code of xpaint. One consequence is that libnetpbm10-dev or preferably libnetpbm11-dev are now needed to compile xpaint, another one is that PPM/PAM files with an alpha channel can now be read and written. Adjust the NETPBM defines (-DNETPBM10 or -DNETPBM11) according to the installed version of libnetpbm. * help.c: the help widget now has two independently resizable panes (topics and explanations). * pattern.c: correction of old bug (that had however no visible effect before 3.0.1). * graphic.c: exchange of primary and secondary colors or patterns is now accessible by clicking on the red cross below the color picker (shown as an eye). Similar addition for pattern.c 2020-06-16 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.1 * This version of xpaint requires libXaw3dXft-1.6.2f (or later versions of the libXaw3dxft library). Removing -DHAVE_NEWEDITINGSTYLE in Makefile.am would make it compatible with earlier versions 1.6.2d,e with essentially no change except for the text input editing behavior of Backspace and Delete keys. * print.c: by default, xpaint no longer depends on cups-bsd commands, (but they can be re-enabled via an adjutsment of the app-defaults files). * xpaintrw/readWritePS.c: the BoundingBox of a file saved as PS/PDF should now be set appropriately. * graphic.c, *Op.c: extensive additions. Xpaint can now record all operations that are performed as vector data, in the so called VXP format. The recording starts as soon as the VXP editor under the Options menu is started, and these data can be saved into a file <name>.vxp * readWriteJP2K.c: has been ported to work with openjpeg version 2 (JPEG2000 format), including alpha channel. * Various other small fixes throughout (SVG import, ...) * At a later stage, it will be possible to convert these VXP files to other vector formats such as eps, pdf or svg, and import them back to xpaint. There will be also an option to insert TeX input and convert the data into a (La)TeX file. 2020-05-25 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.0 * bitmaps/toolicons: new set of icons, generated from SVG data. * app_defaults: the app_defaults files have been reorganized so as to separate linguistic strings and other data, especially widget sizes. Three sizes are now offered: big, medium, small, to accommodate HiDPI screens or low resolution screens. * operation.c: the tool window is now fully resizable. In order to actually change the size of icons, users can copy /usr/share/xpaint/bitmaps/toolicons/ into $HOME/.xpaint/toolicons/ and generate icons with larger or smaller size there. Just type ./generate_icons <height> in $HOME/.xpaint/toolicons/ to produce a new set of icons with the given height (the xpaint package is distributed with icons of default height 36). The shell script "generate_icons" requires inkscape to work. * graphic.c: the parameter btnheight is now used to resize the palette elements as well as the height of buttons. This is useful for HiDPI screens (as well as for lower resolution screens of older computers). * main.c: new option -blind that keeps xpaint running under the hood when batch procedures are invoked. * xpaintrw/readWritePS.c: SVG import has been updated to work with inkscape-1.0. * The change of major number in this version anticipates the introduction of some vector graphics capabilities in the versions 3.x.y to come. (Right now, the only vector graphics capabilities are PS, PDF, SVG import). 2020-05-21 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 2.10.3 * lineOp.c : under the "segment" operation, users will now find new "Position" and "Measurement" tools. These tools do not draw anything, but instead they record the locations of pixels that are clicked on, and compute lengths and angles. * iprocess.c : The "Perspective" filter has been vastly improved. It should now enable users to correct the perspective of a distorted picture taken by a camera, or to create artificial perspective when producing a drawing. This can be used in connection with the new "Position" tool, so as to specify points on the canvas. * iprocess.c : The API of C scripts introduces a new public procedure PixelInterpolate(unsigned char *op, Image *input, double x, double y) that can be used to smooth pixels, under transformations that map integer coordinates into float values (as is the case e.g. for rotations or homotheties with arbitrary factor). This will sometimes improve the output of such operations (but may also make the image fuzzier). * Two new C scripts "similarity.c" and "projective.c" have been added. They show in particular how to exploit the PixelInterpolate() procedure. * Help and message files have been edited to explain details of the new functionalities. 2017-11-13 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 2.10.2 * Minor compilation fixes in iprocess.c and xpaintrw/readWriteJP2K.c thanks to the OpenSUSE team. * Bug in operation.c : exitPaint(...) could trigger a segfault when quitting xpaint without saving the canvas. Thanks to Anthony J. Bentley from the OpenBSD team for reporting the bug. * misc.h : srandom() is nowadays always of void type. * Minor fixes for the calculation of the maximum canvas size. 2016-12-10 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 2.10.1 (a substantial update!). * Xpaint includes a new command line option -btnheight that adjusts appropriately the size of all internal widgets in case a big menu font is used (e.g. by setting the option -menufont , or by changing the app-defaults file). This is very useful if you have a high resolution screen. Many small local modifications of various source files in the main tree have been necessary for this. * A new option -toolmode 0,1,2 can be used to initialize the display of the tool window. Also adjustable dynamically by resizing that window. * Default canvas size has been set to 1024x768 Related command line options are -canvassize and -winsize that can be used independently to adjust the default size of canvas and main window. * The app-defaults files and help files have been modified to accommodate the above additions. * The "Print" widget has been improved, and its menubar is now again available to adjust page formats (a bug introduced probably a long time ago prevented it to work !) * A newer version libXaw3dXft-1.6.2e.tar.bz2 has been posted. The only change is a 3 lines addition that circumvents (what seems to be) a bug occurring in certain X11/Xorg implementations, e.g. the intel driver, version 2.99.917. Otherwise this will make no difference. * Changed the library name librw to libxpaintrw to avoid shared library conflicts. Thanks to Michael Orlitzky for pointing out the issue. * Applied a number of patches from gentoo.org that substantially improve the compilation process. Thanks to Julian Ospald <hasufell@gentoo.org> 2015-01-02 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10.3 * Port to the newer libXaw3dXft-1.6.2d.tar.bz2 (the latter is actually a requirement, this version no longer compiles with libXaw3dXft-1.6.2c). The point is that libXaw3dXft-1.6.2d has improved binary compatibility with plain libXaw3d-1.6.x * Only further cosmetic changes, no change in functionality. 2014-04-17 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10.2 * Minor fixes in 'configure.ac' and 'configure.old' scripts Xpaint can now be compiled again with plain Xaw or Xaw3d (this is NOT recommended, Xaw3dxft definitely gives much better results !) Thanks to Stefan Husmann (Arch Linux) for helpful reports in this respect. * 'configure' (based on autotools) and 'configure.old' (based on imake) should in most cases give essentially equivalent binaries. * PDF files are now read by using mudraw if mupdf & mupdf-tools are installed (otherwise Xpaint falls back to the formerly used solution: pdf2ps + ghostscript, a much slower one...) * Xpaint can now even import libreoffice files as images as soon as libreoffice is installed (assuming /usr/bin/libreoffice is a valid path to the main program) 2014-04-09 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10.1 * Includes the "version_and_focus_patch_for_2.9.10" and other minor fixes. * The alpha channel menu now includes a new function that allows editing as RGB values the image that appears when transparency is applied on a background of the selected background color - white being the default (this removes the transparency levels afterwards, so as to get a pure RGB image). * Bug (probably very old) corrected : selection of background color always resulted in black being chosen ! 2014-03-03 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10 * This version should preferably be compiled with libXaw3dXft-1.6.2c, although it still works Ok with libXaw3dXft-1.6.2b. * readWritePNG.c: fixed bug occurring when writing grayscale images possessing no more than 16 colors. * readWriteJPEG.c: JPEG images in CMYK colorspace are now handled properly (they will still be memorized as RGB, so the original CMYK information is lost, but at least they are shown correctly). * fileBrowser.c: "Save" and "Save as" menus now include the option to adjust JPEG quality between 50% and 100% (default is 90%) * fileBrowser.c: improved logic : the file browser now remembers file names when changing directories, and also takes into account default extension when specifying file format. * fileBrowser.c: thanks to a new feature from libXaw3dXft-1.6.2c (possibility of creating colored lists), xpaint now implements file type coloring in its file browser - at this point this is guessed merely from the suffix of the file. * operation.c: Canvas menu reorganized - it is now named "File menu" so as to conform to general use. Except from reordering the items, the main functionality is unchanged. * pattern.c: bug fixes. A segfault problem in the zoom selector has been corrected, and contextual help has been fixed. 2013-01-27 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.9.4 * This version should be compiled with libXaw3dXft-1.6.2b * RGB channel separation procedure fixed and improved * Fix in CRC data handling of regions in memory. * XPaint now remembers better the position of regions saved in memory. The recorded position can now be changed or reset to origin through the memory management menu. * compilation fix for pgf2pnm with newer libpgf-6.12.24 * Avoid "bool" variable throughout, as this is a typedef in <stdbool.h> * Fixes to configure scripts, thanks to Daniel Macks (fink project) * Minor GUI improvements 2012-02-14 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.9 * Xpaint now uses (or tries to use!) autotools. * libxaw3dxft is now a separate package (but is still a requirement, and in fact should be installed before). * xpaintrw/rwTable.c : segfault fix (occurring randomly) fixed in readMagic(). * minor fix in fontSelect.c, certain fonts were possibly missing in the font browser, in some rare circumstances. * very minor fix of scrollbar behaviour in graphic.c. * misc.c : new procedure SetWMInputHint() that helps solving some quirks. 2012-01-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8.4 * minor fixes in fileBrowser.c (adjustable height of text entry for the file name, resize procedure improved). 2011-10-13 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8.3 * xpaintrw/pgf-util/Makefile : add '-fpermissive' flag to allow compilation with recent (more picky!) versions of g++ * Xaw3dxft/Viewport.c : position of scrollbars can now be adjusted through parameters sbShift[X,Y][1,2]. No public API change, so this addition should be upward compatible. * graphic.c : some small fixes in the shellHandler routine to accommodate odd behavior of scrollbars with xorg recent versions, using the new sbShift feature. 2010-12-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8.2 - nothing really new, just very small fixes * Integrated patch to facilitate compilation with gcc-4.5 * app-defaults files : slight improvement of X event management in pull-down menus. * print.c : slight improvement of X event management in print widget. * fontOp.c : fixed color issue (color not initialized) when moving written text with arrow keys. * Very small changes in Xaw3dxft (minor Xaw3dXft.h API update) 2010-11-08 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8 * Xaw3dxft : code clean-up. New files Xaw3dXft.h and Xaw3dXft.c now contain the specific Xaw3dxft parameters and routines. A couple of small improvements to correct minor quirks in the menu entry highlighting behaviour. * main.c, graphic.c : changes made to accommodate the API changes introduced in Xaw3dxft. Further code clean-up. * image.h, graphic.c, iprocess.c : modified definition of the imageprocessinfo struct, so that hopefully compilation still works with gcc 4.5 (gcc-4.5 appears to be more picky with struct definitions). Thanks to Fedora maintainer Paulo Roma Cavalcanti <promac@gmail.com> for reporting the issue. 2010-11-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.7 * Arrow keys and "Backspace", "Return", "Escape" keys can now be used in all drawing operations whose effect is not immediate, especially all routines from arcOp.c, lineOp.c, polygonOp.c, freehandOp.c, splineOp.c, TextOp.c Arrow keys allow moving objects around before they are completely drawn, "Escape" restarts the operation from scratch, "Return" terminates the operation, and "Backspace" rewinds the course of operation backwards. * freehandOp.c : this operation now allows to draw arbitrary combinations of freehand and polygonal shapes and should be easier to use or to modify interactively thanks to the key bindings. * sprayOp.c : minor code clean-up. * updated accordingly Help files. 2010-10-25 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6.4 A couple of small improvements in spline, polygon, text and color operations. * fontOp.c, splineOp.c, polygonOp.c : implemented "Backspace" key action, i.e. removing last point or last character; "Escape" now entirely restarts the operation from the beginning. Other small improvements (including correction of a potential segfault occurring in some strange circumstances...); polygonOp() code is now also much simpler and easier to read. * graphic.c : multiple clicks on any of the three color/pattern selection discs now switch primary and secondary colors/patterns. * updated accordingly Help files. 2010-10-08 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6.3 - minor bug fix release - nothing really serious. * ops.h : minor compilation issue fixed. * graphic.c : corrected segfault bug of RegionToRGBA channels (occurring only when alpha channel was to be saved.) * chroma.c : fixed minor scrolling issue in color variance scrollbars. * graphic.c : added new menu lines to proceed more easily to editing of alpha channels or images in memory. * updated accordingly Help files, messages and app-defaults files. 2010-09-26 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6.2 * print.c : printing was completely broken, as a result of using double values instead of float values. Reverted to float ! * chroma.c, color.c, magnifier.c, fontSelect.c : revert to float ! * iprocess.c : fixed bug occurring only in very rare circumstances (creation of image with an alpha channel, being edited and compiled on the fly through the embedded C-script editor) * graphic.c : small improvement in ModifyRGB (new routine to rescale gray levels linearly from given thresholds). 2010-09-14 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6 * xpaintrw/rwTable.c, xpaintrw/readWriteTGA.c : fixes in TGA format, so as to prevent that xpaint could hang on certain non TGA files. Make sure anyway that TGA is parsed as a last resort, since TGA is a strange format without signature. * image.c, iprocess.c, graphic.c : substantial improvements in filter routines : - Added new "Merge" filter : helpful to combine smoothly an image with the underlying canvas. Works according to 4 different modes - Added new "Distortion" filter which can be used to produce local deformations - Added powerful Floyd-Steinberg algorithm (color quantification enhanced with a diffusion process). - Replaced "ModifyRGB" by a generalized RGB transformation procedure with 7 different modes, including Gamma correction (with independent r_gamma, g_gamma, b_gamma parameters), and linear transform. - Fixed several shortcomings of "Normalize contrast" and "Emboss" routines; "Emboss" now has 2 parameters allowing linear correction. - Renamed "Tilt" as "Projective Transform" with several enhancements. - Renamed "ImageCopy" as "ImageCopyData" which says more accurately what it does. * graphic.c : Memory menu : management of R,G,B and alpha channels : - Added extraction of red, green, blue, alpha channels from region - Added merge procedure for those channels * msgedit.c : new utility which can be used to extract strings from the English version of "Messages" and combine them with a partially localized "Messages_XY" for any other language - useful as well to avoid discrepancies between languages! * Many updates to Message and Help files. 2010-09-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.5 * xpaintrw/readWritePNG.c : fixed WritePNG() for alpha channel images possessing less than 16 black and white colors, which xpaint tried to write in an incorrect PNG mode. * graphic.c : fixed segfault bug when invoking "Clone Canvas" procedure. * xaw3dxft : a few hacks to work around minor display bugs related to Xft anti-aliasing/composition effects on certain X servers (especially proprietary NVIDIA ...) * main.c : new command line options -tooltips, -notooltips * operation.c, graphic.c : implemented tooltips (they can be disabled from the tools/help menu). * man page and help files : updated. 2010-08-15 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.4 * xpaintrw/readWriteTGA.c : added support for TGA format (borrowed mostly from mtpaint project). * xpaintrw/rwTable.c : code clean-up. * Paint.c, PaintRegion.c : fixes for certain complex situations involving region selection with masks and alpha channel. (Segfault could occur in Fatbits editor under those circumstances). * graphic.c : Suppression of alpha channel could lead to segfault. 2010-08-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.3 * xpaintrw/readWriteICO.c : imported a lot of code from the 'icoutil' GPLed package. As a result, xpaint can now read most Windows ICO files, even those containing embedded compressed PNG/JPG images which icoutil cannot fully open. Support for ICO masks as alpha channel, and for writing single image ICO files. * xpaintrw/readWritePGF.c : PGF image format support improved, thanks to 'pgf2pnm' provided by Christoph Stamm <christoph.stamm@fhnw.ch> (creator of the PGF format). libpgf and libpgf-dev are needed only optionally to compile 'pgf2pnm', which then provides PGF support in xpaint. However, xpaint itself does not link with libpgf and does not need libpgf-dev to be compiled. The alpha channel of PGF images is fully supported. * graphic.c : improvements/bug fixes in the "Clone with Zoom" procedure. Now works for zooming/downscaling images, with/without interpolation, and for adjusting alpha channel as well. * graphic.c, PaintEvent.c : much more powerful implementation of the "Delimit region" procedure, according to six different options (connected/non connected/color range regions, or complements of such regions). * The help files have been updated to reflect all current functionality of XPaint (Spanish help additions should be revised by a native speaker !) 2010-07-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.2 * xpaintrw/*.c : huge code clean-up. Saving files now show up a warning when the image possesses an alpha channel, but the format chosen does not support it (completely or in part). Note: saving in PNG should almost always be a safe choice ... * xpaintrw/readWriteTIFF.c : support substantially improved, including alpha channel read/write. More exotic TIFF formats unsupported. * xpaintrw/readWriteBMP.c : many more BMP image format types are now supported, including full support for images with an alpha channel (read/write). * xpaintrw/readWritePNM.c : provisions made to include support for alpha channel in PNM (this is a specific extension of xpaint : an RGB image concatenated with a gray level image of the same size - and '\n' in between - is viewed as RGBA data). * xpaintrw/readWriteJP2K.c : added support for JPEG2000 image format. Either libopenjpeg (default) or libjasper (optionally) can be used. Full support for alpha channel (requires openJPEG from subversion at this point now, since "stable" version 1.3 has insufficient alpha channel implementation...). * xpaintrw/readWritePGF.c : added support for PGF image format. This requires libpgf and pgf to be installed (but xpaint does not need to be linked against libpgf, and its compilation does not require libpgf-dev files either.) * xpaintrw/readWriteSGI.c : repaired old dormant code to read run-length encoded SGI/Irix image files. Checked to work fine. * xpaintrw/readWriteICO.c : unsupported, very buggy code. Disabled at this point. Instead, use e.g. 'icoutil' to convert those files to PNG ... * dialog.c : very small fix providing UTF8 support in AlertBox window titles (and always raising warning windows). * configure : if libXaw3dxft is installed as a shared library, compilation is now set by default to use it, rather than linking statically xpaint to libXaw3dxf.a 2010-07-18 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.1.5 * graphic.c : added "*allowResize: False" in Canvas*pane*form to prevent annoying widget initialization on certain platforms * xpaintrw/readWritePS.c : small fixes to handle correctly PS/PDF files whose names contain quotes or blank characters. 2010-07-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.1.4 * fatBitsEdit.c, Paint.c , Paintregion.c : several fixes in handling of alpha channel in fatbits editor - some affecting alpha channel image bits. * app-defaults : change zoom labels to correct values xx:1 instead of 1:xx * graphic.c : prevent fatbits editor getting called undeservedly by GetNonDirtyCanvas() routine ; removing alpha channel now moves it to memory rather than destroying it right away. * xpaintrw/readWritePS.c : fix for compilation of TeX/LaTeX files being called from random directories. * minor fixes throughout - thanks to the SUSE-Packman maintainer Detlef Reichelt <detlef@die-mafia.de> for help. 2010-06-02 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.1 * Paint.c , Paintregion.c : fixes in alpha channel routines. * fatBitsEdit.c : many fixes in fatbits editor. Refresh button added * graphic.c : reload file procedure didn't reload alpha channel - this is now fixed. * fontOp.c : potential segfault corrected. * small other (mostly random) improvements. 2010-05-16 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.0 * graphic.c, Paint.c : big improvements in handling of alpha channel ; alpha management menu is now explicit from canvas menu bar. Support still not quite complete at this point (regions do not appear yet in alpha mode). Should come for 2.9.1... * Paint.c, PaintRegion.c : fixed segfault occurring when using region operations in fatbits editor (regression introduced already in 2.8.9 which remained unnoticed up to 2.8.19 ...) * fontOp.c, fontSelect.c : UTF8 support should now be essentially complete. * xpaintrw/readWritePNG.c : fixed bug when writing PNG_COLOR_TYPE_PALETTE images with less than 16 colors (those images were wrongly converted to gray palette...) * several other small fixes and improvements throughout. 2010-04-17 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.19.1 (mostly cosmetic changes) * fileBrowser.c : added "ongoing" mode in File Browser (widget no longer closes when opening an image, allowing to browse files continuously). Performed a substantial code clean-up as well. * operation.c, graphic.c : menu improvements; one can now open an image from any canvas window. * misc.c : added RaiseWindow() routine to comply better with ewmh specifications. XMapRaised() replaced by RaiseWindow() throughout. * "snapshot" replaced by "screenshot" throughout. 2010-04-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.19 * fileBrowser.c : fixed minor annoyance in "save" and "saveas" routines - name of file is now again remembered when a filename has already been set. * graphic.c : fixed bug in ToolSelection switcher; "font" menu replaced by more powerful "text" menu; new entry added to edit/write text from text editor embedded in font browser. * iprocess.c : fixed bug in filter "adjust RGB colors" * fontSelect.c, fontOp.c : text sample is now editable, and this text can be imported on canvases. This includes being able to set fonts, colors, linespacing (etc) as editable text. Any UTF8 encoded file can be read and edited, and a small number of special commands are available to format such texts; for hints on how to use this, see "Doc/TextFormat.doc". Xpaint can thus be used as a text editor (sort of!), useful e.g. to create posters with text and graphics. * xpaintrw/readWritePS.c : support for reading a file as "enriched text". * main.c : new command line options -textfont and -astext, the latter for opening files as enriched text. * share/bin/imgmerge : small tweak to use a static PageInfo struct, otherwise imgmerge would segfault (gcc bug ?) 2010-03-13 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.18 * Minor fixes (UTF8 names in windows, rare segfault when using external viewer) * xpaintrw/readWritePNG.c : xpaint now saves correctly gray images which have an alpha channel. * xpaintrw/rwTable.c : introduces auto-detect mode for writing files (image type is guessed from suffix of file name, and set to PNG as a fallback). * xaw3dxft : changed library name to libXaw3dxft to avoid interfering with regular libXaw3d. Added hooks in 'configure' to (possibly) install and compile it as a shared library. Corrected an issue in xaw3dxft/List.c which could sometimes lead to a fatal X error. * Added man pages for imgmerge and pngconcat (provided by Debian maintainer Josué Abarca) * Removed dependency on Xft.h in PaintP.h which had the unfortunate effect of breaking C-Script compilation, e.g. in imgmerge. 2010-03-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.17 * Xpaint is now fully UTF8 compliant. This has been done rather cheaply by linking statically with a modified xaw3d library which is UTF8 & Freetype aware. This also means that anti-aliasing is enabled in the menus and text widgets, and that the X core font protocol is no longer used anywhere. * By default, Xpaint no longer depends on external xaw/xaw3d/xaw3dg libraries as it is compiled with its own improved xaw3d clone; this only adds approximately 250 kB to the binary executable. * Xpaint can still be used with 8 bit encoding by specifying the command option 'xpaint -encoding 8'. However the resource files XPaint* Messages* Help* should then preferably be converted back to a 8bit locale, otherwise some strange characters will show up in the menus, at least in languages which use non ASCII characters. 2010-02-17 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.16.1 * fontSelect.c, misc.c : introduced clickFocusCallback which fixes keyboard focus in fontSelect and in color picker ascii text input widgets (problem occurred e.g. under KDE). Use 2.8.16 with xpaint-2.8.16-keyboard-input.patch. 2010-02-12 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.16 * graphic.c, fontOp.c, fontSelect.c : Xpaint now uses the Xft protocol to display fonts, so that (in particular) all TrueType fonts are available, and the corresponding glyphs are nicely anti-aliased without resorting to a use of sub-pixel resolution. Another benefit is the possibility of rotating text, or even applying arbitrary linear transformation (however, writing fonts with a pattern instead of a plain color is no longer possible directly - for this, one can use instead masks or a fill procedure). * xpaintrw/readWritePNG.c : applied small patch from Stefan Husmann (Arch Linux maintainer) to take care of API deprecation in newer versions libpng-1.4.x. 2010-02-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.15 * PaintRegion.c : finally found and corrected long standing bug which plagued iteration of filters and undo procedures. * fileBrowser.c : several GUI improvements. * xpaintrw/readWritePS.c : improved handling of BoundingBoxes. Fixed bug in the use of 'psselect' which was found on the Fedora bugzilla list (many thanks to Paulo Roma Cavalcanti <promac@superig.com.br> for analyzing the issue) 2010-01-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.14 * graphic.c : memory management simplified and improved; added CRC32 checksum control to avoid duplicates. * xpaintrw/readScript.c : fixed potential bug occurring in rare circumstances. * Various fixes in batch scripts 'imgmerge', 'batch.c' and 'xpaint_ocr' GPLv3 licence specified there. * Included new debian files released by Debian maintainer Josué Abarca * xpaint.man.in : corrected a ­ issue (thanks again to Josué Abarca) 2010-01-20 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.13 * Paint.c : corrected nasty bug * graphic.c : GUI improvements. Border color of paint widget now indicates status of image (red: non editable, green: resize enabled, blue: has an alpha layer, black: otherwise). * image.c : ImagaToPixmap() et al modified so as to manage alpha channel mode once for all (rather than repeating this for each of the image loaders). 2010-01-18 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.12 * misc.c, graphic.c : some more fixes for alpha channel issues. 2010-01-17 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.11 * fileBrowser.c : browserResized() : included patch for accommodating bug in certain versions of the Xaw3d library * Paint.c : PwGetPixmap() modified so as to work independently of zoom value. Saving a file under zoom<1 now works !! * graphic.c : there is now support for adjusting join and cap style of lines being drawn. Fixed handling of memory box. * Code for alpha channel completed and made more robust (substantial changes in graphic.c, Paint.c, PaintRegion.c) 2010-01-10 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.10 * graphic.c : many GUI improvements. Some alpha channel fixes. (arbitrary linear transformation of alpha channel still not implemented). * lineOp.c : fixed arrow and vector drawing under zoom != 1 (were correctly written to pixmap but incorrectly shown on canvas). * fileBrowser.c : a few cosmetic changes to make code more robust. * xpaintrw/readWritePNG.c : fixed readPNG() for non transparent PNG images possessing a palette of colors. 2010-01-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.9 * polygonOp.c : segfault bug corrected. Polygonal regions can now be selected correctly under zoom values other than 1. * xpaint.h : various API modified to include alpha channel (in images, paint canvases, clipboard, memory stack...) * PaintUndo.c : implemented alpha channel in Undo stacks * PaintRegion.c, graphic.c : routines to set/show/edit the alpha channel are now implemented in a fairly complete manner. * readWritePNG.c : xpaint now saves a canvas with an alpha channel as a PNG file with a corresponding alpha channel. * readWriteXPM.c : xpaint now saves a canvas with an alpha channel as an XPM file with a "None" color (reduced to a 0/1 mask). (By default, alpha<128 is considered to be transparent and alpha>=128 to be opaque. The threshold value 128 can be changed from the options.) * readGIF.c : xpaint can now read alpha channel of GIF89 files possessing transparent pixels (setting transparent pixel in writeGIF.c not yet implemented). 2009-12-09 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.8 Interim release with partial support for transparent images; alpha channel is now correctly read when loading PNG and XPM images. Easier management and writing support will be implemented in 2.8.9. * xpaintrw/readGIF.c : xpaint will now open all frames of animated GIF images, and not just the first frame - support of this feature was already there, but had never been made accessible from the GUI ! * xpaintrw/readWritePNG.c : xpaint now detects PNG images possessing an alpha channel and loads them properly. The RGB values and alpha channels can be edited separately (but not yet mixed back easily). * xpaintrw/readLXP.c : preliminary implementation of layered xpaint image format LXP. File share/c_scripts/templates/script.c used as template. * pattern.c : new button introduced to modify background color (thus duplicating functionality from the separate background color widget). * fileBrowser.c : widget improved. Four new buttons added to get directly to home, root and current directory, and to show/hide dot files. The browser of loaded files now has buttons for editing C scripts and managing layers (implementation somehow works, but is not yet complete). * iprocess.c : corrected segfault bug occurring in certain circumstances, e.g. when loading recursive image C-scripts. In particular, "layer" example share/c_scripts/layers/combine.c now works again. 2009-11-18 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7.3 (very minor changes) * graphic.c : corrected very tiny bug in resizeCanvas() routine which resulted in occasional disappearance of Fatbits cursor, when the canvas was resized under certain zoom reduction values. * fatBitsEdit.c : added convenience routine FatbitsEditorDestroy(paint) (not yet used inline - could possibly be used from C scripts). * small addition in Local.config file 2009-11-15 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7.2 (very minor changes) * Further cosmetic fixes and code cleaning ; X error handler improved (just in case). * snapshot.c : taking a snapshot from the tools window now unmaps the window (so that any window stacked behind can be captured); spurious warning 'bad pixmap' from libX11 has been eliminated. 2009-11-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7.1 (released only as a patch to 2.8.7). * Further cosmetic improvements and code cleaning not really worth bothering (e.g. popup menus which, when users change their mind and no longer want to use them, may not immediately popdown as would be expected when clicking randomly outside, e.g. on the canvas ...) 2009-11-04 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7 released. * graphic.c, menu.c, PaintEvent.c : a substantial number of cosmetic changes made to further improve the menu behaviour. * fileName.c renamed as fileBrowser.c * fileBrowser.c : Some "flickering" issues in the browser have been corrected. The file browser of "loaded files" now include ad hoc fields and buttons for modifying the scaling of vector format images (PS/PDF/DVI/TeX/LaTeX/SVG) as well as for selecting a page in multi-page documents. Now, Xpaint can thus be used as a practical viewer for such documents - though for this purpose it's certainly not as fast and optimized as specialized viewers ... * readWritePS.c : multipage PostScript files require 'psselect' from the psutils package. (This is a very simple program so we may consider including it in the next version of xpaint to remove that dependency.) DVI files are now accepted, along with PS/PDF/TeX/LaTeX/SVG. * print.c : selecting PDF option now (really) saves file as PDF rather than PostScript. * Merged Changelog and (unmaintained) file Doc/CHANGES 2009-10-27 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.6.1 released. * bug fixes : main.c : xpaint did not accept setting default zoom < 100% through command line graphic.c : underestimated evaluation of canvas window size for large images, resulting in image not being fully displayed even when it could. PaintRegion.c : segfault bug occurring in certain circumstances when dragging a region outside viewport, in region transparency mode. 2009-10-26 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.6 released. * Extensive changes in many parts, to provide capability for zoom = 1/n, while performing all possible operations under such a zoom. This means that anti-aliasing can be obtained by using e.g. zoom = 1/3 and then cloning the canvas with the given reduction. * magnifier.c: Introduced a magnifying glass, based on code of 'xlupe' by Thomas Runge (runge@rostock.zgdv.de) * operation.c: menu now includes an item to open the magnifying glass, and a browser for all images which have been opened or loaded from the command line. * fileName.c : the buildBrowser() routine has been extended to have a mode ('type=4') showing the list of loaded images. * graphic.c: edit menu includes 2 items for cloning the canvas (with or without reduction) * a lot of bugs have been ironed out, e.g. a crash in the polygon selection area, and a very long-standing bug in the memory management of menu.c which used to cause (fortunately unfrequent) random crashes. 2009-10-16 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.5 released. * graphic.c, user visible changes : added a zoom button and a new toggle allowing to resize the canvas, using mouse or arrow keys. Several other related improvements have been made for zooming/resizing, along with a few minor fixes (the layer example "layer.c" compiles again without segfaulting.) 2009-10-13 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.4 released. * pattern.c : Fixed segfault bug in color/pattern budget, which occurred when creating new brushes. * print.c : added new toggle so as to possibly produce a compressed PS file, or send to printer a PDF file rather than a PS file. The annoying printing notification popup has been replaced by a less intrusive notification. Many other small improvements - e.g. output postcript file can be selected with a file browser. * xpaintrw/readWritePS.c : the PostScript generator has been considerably improved. XPaint is now capable of producing strongly compressed PostScript files, of weight increased hardly by more than 30%-35% when starting from a PNG file of the same resolution, and the process is faster than before - it seems that even gimp does not yet take care of this, its PS files can often be reduced to less than 50% of their current size (huge thanks to Peter Szabo for showing the way with his sam2p program.) A standalone 'ppmtops' utility has been included for potential re-use elsewhere. * Clarification of the licence. Xpaint is an old program, many parts of which were written at a time when the GPL was not so pervasive. To the best knowledge of the current maintainer, all parts where written under permissive licences which are compatible with the GPL. J.-P. Demailly thus puts under the GPLv3 all code developped by him in the last twelve years - that's probably more than 30% of the total amount of code, and the program as a whole should thus be considered as GPLv3. All related utilities ('ppmtops', C scripts, etc) are also put under the GPLv3. 2009-10-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.3 released. * Included 2 patches from Mandriva packagement experts, fixing some minor compilation problems and potential security issues. * xpaintrw/readWritePS.c : xpaint is now able to display TeX, LaTeX, PDF and SVG files using image conversion from external ad hoc programs. Option -dpi <dpi value> can be used to adjust size of image. 2009-10-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.2 released. * pattern.c : found and fixed two long standing segfault bugs (fortunately occurring only in not so frequent circumstances) * Set default gridcolor to grey80 on TrueColor displays, a less intrusive color than black. 2009-09-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.1 released. * Introduced rectangular (not just square) snap grids. Color of grid can be changed to arbitrary color. * graphic.c : corrected segfault bug in simplemenu switcher (selector popup). 2009-09-27 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.0 released. * Menu popups have been entirely reworked. Their behaviour is now more fluid - and similar to the default behaviour of modern toolkits like GTK/qt - so users should feel less disturbed. (this required numerous changes in menu.c and app-defaults) * Fixed size handling of Canvas windows under maximize/unmaximize procedures. * Stability should be considerably improved. Some memory leaks have been removed as well. * Added new command line options: -undosize <num> (set undo memory limit) -operation <num> (start with operation <num> set in tool panel) -filter <file> (define filter by using <file> as C-script) -proc <file> (define procedure by using <file> as C-script) * Added support for using menu popups in C script filters See share/c_scripts/filters/clean.c for an example. This means that C script filters can involve adjustable parameters which can be easily changed (i.e. without needing a recompilation each time the parameters are changed.) * Added support for using menu popups in C script procedures See share/c_scripts/procedures/proc_with_params.c for an example * iprocess.c, xpaintrw/readScriptC.c : added support for running batch jobs (for mass processing of images, using xpaint as the engine); see share/c_scripts/batch/batch.c share/bin/imgmerge * Added batch script 'imgmerge' which uses xpaint to convert and concatenate image files into a single PDF file. This also makes use of Peter Szabo's 'pdfconcat' program (GPL, included). * Added support for OCR (with the ocrad engine by default) The OCR engine(s) can be specified in the bash script /usr/share/xpaint/c_scripts/bin/xpaint_ocr This means that xpaint can be easily used as a GUI for command line OCR engines ('xpaint_ocr' makes use of the 'xless' pager, by default, but any other pager/editor can be used instead). * brushOp.c: system wide brushes are no longer hardwired, and can now be configured from the SHAREDIR directory. * Added additional brushes provided by John David Gray <kahdgarxi@gmail.com> which are useful to draw electronic circuitry. Also included a patch of him introducing three new patterns and extending the drawVisibleGrid() routine in Paint.c * Fixed (and improved as well) behaviour of snap and grid routines, also using ideas of JD Gray. * Changed rotations to use trigonometric positive rotation rather than clockwise. This was too unnatural to me ! * Numerous bug fixes. Thanks to Mattis Michel <sic_zer0@hotmail.com> for correcting a bug in the snap routines and for providing further improvements; Mattis noticed - and urged correction - of a critical bug in the "Load clipboard" procedure; he also suggested putting WM hints on minimal size of widgets so as to avoid random crashes under wild resizing of the windows. * Updated the man page - which had actually been neglected for a couple of years ...
2023-01-22 18:41:52 +01:00
share/xpaint/c_scripts/filters/projective.c
share/xpaint/c_scripts/filters/rotleft.c
share/xpaint/c_scripts/filters/rotright.c
xpaint: update to release 3.1.4, using wip/xpaint. Packaged in wip by @adam + a couple of changes by @vins Changes (since version 2.7.8) 2021-08-14 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.4 * arcOp.c : the DrawArc procedure now checks that the arc is not drawn with a zero linewidth - otherwise some pixels could have been missing, and any later fill area procedure could then have led to unexpected results. This minor bug (or misbehavior?) has been fixed. * image.c : if installed, dvipng can now be used as an alternative to the libdvipgm library, at the expense of a small slowdown in the output. This allows TeX input even without libdvipgm installed, dvipng being installable independently. 2021-02-12 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.3 * graphic.c : the "Text" menu has been substantially improved. Text and TeX/LaTeX input of arbitrary length, size, color can now be edited and converted to either a bitmap image or vector PostScript/PDF with embedded fonts. * More extensive testing - and a lot of small details fixed 2021-01-28 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.2 * Small improvement of versions 3.1.0, 3.1.1 with bug fixes. Xpaint can now be compiled without dvipgm (at the expense of losing some TeX functionality). Thanks to testers for feedback! * This version supports the use of layers (files *.lxp = Layered XPaint files). This is done via the C script editor. Any collection of images can be combined into a new merged image by a suitable C procedure. See example in directory share/c_scripts/templates/ * Compiling against libkpathsea and libdvipgm (from the dvipgm-1.x.tar.bz2 package, x >= 2) is needed to enable TeX input processing - otherwise the compilation scripts will disable TeX input. A minimal TeX environment is also needed to allow TeX interaction. * xpaintrw/readLXP.c : routines for reading LXP files * iprocess.c : routines for the creation of LXP files * image.c : ImageDup() procedure added * operation.c : new option for cleaning temporary files * This version has reached all capabilities that had been planned since a long time: layer handling, vector graphics operations, possibility of TeX input and of mathematical drawings, programmatic creation of images, filters and graphical functions. Therefore Xpaint will probably enter into maintainance and bug correction mode. 2021-01-27 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.1 * Small improvement of version 3.1.0 with bug fixes. * This version supports the use of layers (files *.lxp = Layered XPaint files). This is done via the C script editor. Any collection of images can be combined into a new merged image by a suitable C procedure. See example in directory share/c_scripts/templates/ * Compiling against libkpathsea and libdvipgm (from the dvipgm-1.x.tar.bz2 package, x >= 2) is needed to enable TeX input processing - otherwise the compilation scripts will disable TeX input. A minimal TeX environment is also needed to allow TeX interaction. * xpaintrw/readLXP.c : routines for reading LXP files * iprocess.c : routines for the creation of LXP files * image.c : ImageDup() procedure added * operation.c : new option for cleaning temporary files * This version has reached all capabilities that had been planned since a long time: layer handling, vector graphics operations, possibility of TeX input and of mathematical drawings, programmatic creation of images, filters and graphical functions. Therefore Xpaint will probably enter into maintainance and bug correction mode. 2021-01-24 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.0 * This version now supports the use of layers (files *.lxp = Layered XPaint files). This is done via the C script editor. Any collection of images can be combined into a new merged image by a suitable C procedure. See example in directory share/c_scripts/templates/ * Compiling against libkpathsea and libdvipgm (from the dvipgm-1.x.tar.bz2 package, x >= 2) is needed to enable TeX input processing - otherwise the compilation scripts will disable TeX input. A minimal TeX environment is also needed to allow TeX interaction. * xpaintrw/readLXP.c : routines for reading LXP files * iprocess.c : routines for the creation of LXP files * image.c : ImageDup() procedure added * operation.c : new option for cleaning temporary files * This version has reached all capabilities that had been planned since a long time: layer handling, vector graphics operations, possibility of TeX input and of mathematical drawings, programmatic creation of images, filters and graphical functions. Therefore Xpaint will probably enter into maintainance and bug correction mode ... 2021-01-21 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.5 * Vector drawing capabilities improved and hopefully almost complete. * Xpaint now allows the use of TeX input in mathematical drawings, provided it is compiled with the compilation flag -DHAVE_DVIPGM. The libdvipgm and libkpathsea libraries are required for this. * The new 'vxp2tex' utility converts VXP data into a TeX file that can be used with pdftex or pdflatex. * lineOp.c : ticks and graduation procedure added. * graphic.c, image.c, iprocess.c : several fixes and improvements. 2021-01-09 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.4 * This version has acquired substantial vector drawing capabilities. Just open 'Options->VXP vector data Editor' to enable vector drawing operations. Most of them are recorded in a plain text "VXP format" *.vxp. The external program 'vxp2ps' converts these data into (vector) postscript, and 'vxp2dkw' can be used to convert them for use in in the handwritten note editor deskwrite. Such Postscript files can be easily converted to PDF or SVG. * Xpaint can also read and rasterize *.vxp files (but at this point all operations that are not translated right away into vector data are ignored, even though they are recorded in the VXP file). * graphic.c, operation.c, misc.c, iprocess.c : extensive additions to implement VXP data processing. * share/c_scripts/procedures : canvas+vxp.c added as a new example. C scripts can be used to produce VXP data. 2020-08-04 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.3 * This version of xpaint requires in principle libXaw3dXft-1.6.2h (but would run with 1.6.2d,e by removing the compilation flag -DHAVE_NEWEDITINGSTYLE) * graphic.c: a new option has been introduced, allowing xpaint to use more easily graphics tablets, more specifically the user space drivers provided with deskwrite on Sourceforge. * menu.c: SetFocusOn() has been fixed. This allows the input focus to be preserved in active text fields, even when the cursor leaves the top parent window (as is usually expected with modern desktop interface guidelines ...) * iprocess.c: small improvement of the Gamma/RGB filter. * Further small fixes throughout, especially in the build scripts and the debian packaging. 2020-06-29 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.2 * This version of xpaint requires libXaw3dXft-1.6.2h (or later versions of the libXaw3dxft library - the changes between 'f', 'g' and 'h' merely consist of introducing a new parameter to allow scrollbars of text widgets to be on the right side, plus some minor improvements in the edition process) Removing -DHAVE_NEWEDITINGSTYLE in Makefile.am would make xpaint compatible with earlier versions 1.6.2d,e of libxaw3dxft with essentially no change, except for the text input editing behavior of Backspace and Delete keys. * xpaintrw/readWritePNM.c: is now using a more recent version of libnetpbm, rather than the completely obsolete version from the 1990's that was embedded in the original code of xpaint. One consequence is that libnetpbm10-dev or preferably libnetpbm11-dev are now needed to compile xpaint, another one is that PPM/PAM files with an alpha channel can now be read and written. Adjust the NETPBM defines (-DNETPBM10 or -DNETPBM11) according to the installed version of libnetpbm. * help.c: the help widget now has two independently resizable panes (topics and explanations). * pattern.c: correction of old bug (that had however no visible effect before 3.0.1). * graphic.c: exchange of primary and secondary colors or patterns is now accessible by clicking on the red cross below the color picker (shown as an eye). Similar addition for pattern.c 2020-06-16 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.1 * This version of xpaint requires libXaw3dXft-1.6.2f (or later versions of the libXaw3dxft library). Removing -DHAVE_NEWEDITINGSTYLE in Makefile.am would make it compatible with earlier versions 1.6.2d,e with essentially no change except for the text input editing behavior of Backspace and Delete keys. * print.c: by default, xpaint no longer depends on cups-bsd commands, (but they can be re-enabled via an adjutsment of the app-defaults files). * xpaintrw/readWritePS.c: the BoundingBox of a file saved as PS/PDF should now be set appropriately. * graphic.c, *Op.c: extensive additions. Xpaint can now record all operations that are performed as vector data, in the so called VXP format. The recording starts as soon as the VXP editor under the Options menu is started, and these data can be saved into a file <name>.vxp * readWriteJP2K.c: has been ported to work with openjpeg version 2 (JPEG2000 format), including alpha channel. * Various other small fixes throughout (SVG import, ...) * At a later stage, it will be possible to convert these VXP files to other vector formats such as eps, pdf or svg, and import them back to xpaint. There will be also an option to insert TeX input and convert the data into a (La)TeX file. 2020-05-25 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.0 * bitmaps/toolicons: new set of icons, generated from SVG data. * app_defaults: the app_defaults files have been reorganized so as to separate linguistic strings and other data, especially widget sizes. Three sizes are now offered: big, medium, small, to accommodate HiDPI screens or low resolution screens. * operation.c: the tool window is now fully resizable. In order to actually change the size of icons, users can copy /usr/share/xpaint/bitmaps/toolicons/ into $HOME/.xpaint/toolicons/ and generate icons with larger or smaller size there. Just type ./generate_icons <height> in $HOME/.xpaint/toolicons/ to produce a new set of icons with the given height (the xpaint package is distributed with icons of default height 36). The shell script "generate_icons" requires inkscape to work. * graphic.c: the parameter btnheight is now used to resize the palette elements as well as the height of buttons. This is useful for HiDPI screens (as well as for lower resolution screens of older computers). * main.c: new option -blind that keeps xpaint running under the hood when batch procedures are invoked. * xpaintrw/readWritePS.c: SVG import has been updated to work with inkscape-1.0. * The change of major number in this version anticipates the introduction of some vector graphics capabilities in the versions 3.x.y to come. (Right now, the only vector graphics capabilities are PS, PDF, SVG import). 2020-05-21 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 2.10.3 * lineOp.c : under the "segment" operation, users will now find new "Position" and "Measurement" tools. These tools do not draw anything, but instead they record the locations of pixels that are clicked on, and compute lengths and angles. * iprocess.c : The "Perspective" filter has been vastly improved. It should now enable users to correct the perspective of a distorted picture taken by a camera, or to create artificial perspective when producing a drawing. This can be used in connection with the new "Position" tool, so as to specify points on the canvas. * iprocess.c : The API of C scripts introduces a new public procedure PixelInterpolate(unsigned char *op, Image *input, double x, double y) that can be used to smooth pixels, under transformations that map integer coordinates into float values (as is the case e.g. for rotations or homotheties with arbitrary factor). This will sometimes improve the output of such operations (but may also make the image fuzzier). * Two new C scripts "similarity.c" and "projective.c" have been added. They show in particular how to exploit the PixelInterpolate() procedure. * Help and message files have been edited to explain details of the new functionalities. 2017-11-13 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 2.10.2 * Minor compilation fixes in iprocess.c and xpaintrw/readWriteJP2K.c thanks to the OpenSUSE team. * Bug in operation.c : exitPaint(...) could trigger a segfault when quitting xpaint without saving the canvas. Thanks to Anthony J. Bentley from the OpenBSD team for reporting the bug. * misc.h : srandom() is nowadays always of void type. * Minor fixes for the calculation of the maximum canvas size. 2016-12-10 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 2.10.1 (a substantial update!). * Xpaint includes a new command line option -btnheight that adjusts appropriately the size of all internal widgets in case a big menu font is used (e.g. by setting the option -menufont , or by changing the app-defaults file). This is very useful if you have a high resolution screen. Many small local modifications of various source files in the main tree have been necessary for this. * A new option -toolmode 0,1,2 can be used to initialize the display of the tool window. Also adjustable dynamically by resizing that window. * Default canvas size has been set to 1024x768 Related command line options are -canvassize and -winsize that can be used independently to adjust the default size of canvas and main window. * The app-defaults files and help files have been modified to accommodate the above additions. * The "Print" widget has been improved, and its menubar is now again available to adjust page formats (a bug introduced probably a long time ago prevented it to work !) * A newer version libXaw3dXft-1.6.2e.tar.bz2 has been posted. The only change is a 3 lines addition that circumvents (what seems to be) a bug occurring in certain X11/Xorg implementations, e.g. the intel driver, version 2.99.917. Otherwise this will make no difference. * Changed the library name librw to libxpaintrw to avoid shared library conflicts. Thanks to Michael Orlitzky for pointing out the issue. * Applied a number of patches from gentoo.org that substantially improve the compilation process. Thanks to Julian Ospald <hasufell@gentoo.org> 2015-01-02 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10.3 * Port to the newer libXaw3dXft-1.6.2d.tar.bz2 (the latter is actually a requirement, this version no longer compiles with libXaw3dXft-1.6.2c). The point is that libXaw3dXft-1.6.2d has improved binary compatibility with plain libXaw3d-1.6.x * Only further cosmetic changes, no change in functionality. 2014-04-17 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10.2 * Minor fixes in 'configure.ac' and 'configure.old' scripts Xpaint can now be compiled again with plain Xaw or Xaw3d (this is NOT recommended, Xaw3dxft definitely gives much better results !) Thanks to Stefan Husmann (Arch Linux) for helpful reports in this respect. * 'configure' (based on autotools) and 'configure.old' (based on imake) should in most cases give essentially equivalent binaries. * PDF files are now read by using mudraw if mupdf & mupdf-tools are installed (otherwise Xpaint falls back to the formerly used solution: pdf2ps + ghostscript, a much slower one...) * Xpaint can now even import libreoffice files as images as soon as libreoffice is installed (assuming /usr/bin/libreoffice is a valid path to the main program) 2014-04-09 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10.1 * Includes the "version_and_focus_patch_for_2.9.10" and other minor fixes. * The alpha channel menu now includes a new function that allows editing as RGB values the image that appears when transparency is applied on a background of the selected background color - white being the default (this removes the transparency levels afterwards, so as to get a pure RGB image). * Bug (probably very old) corrected : selection of background color always resulted in black being chosen ! 2014-03-03 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10 * This version should preferably be compiled with libXaw3dXft-1.6.2c, although it still works Ok with libXaw3dXft-1.6.2b. * readWritePNG.c: fixed bug occurring when writing grayscale images possessing no more than 16 colors. * readWriteJPEG.c: JPEG images in CMYK colorspace are now handled properly (they will still be memorized as RGB, so the original CMYK information is lost, but at least they are shown correctly). * fileBrowser.c: "Save" and "Save as" menus now include the option to adjust JPEG quality between 50% and 100% (default is 90%) * fileBrowser.c: improved logic : the file browser now remembers file names when changing directories, and also takes into account default extension when specifying file format. * fileBrowser.c: thanks to a new feature from libXaw3dXft-1.6.2c (possibility of creating colored lists), xpaint now implements file type coloring in its file browser - at this point this is guessed merely from the suffix of the file. * operation.c: Canvas menu reorganized - it is now named "File menu" so as to conform to general use. Except from reordering the items, the main functionality is unchanged. * pattern.c: bug fixes. A segfault problem in the zoom selector has been corrected, and contextual help has been fixed. 2013-01-27 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.9.4 * This version should be compiled with libXaw3dXft-1.6.2b * RGB channel separation procedure fixed and improved * Fix in CRC data handling of regions in memory. * XPaint now remembers better the position of regions saved in memory. The recorded position can now be changed or reset to origin through the memory management menu. * compilation fix for pgf2pnm with newer libpgf-6.12.24 * Avoid "bool" variable throughout, as this is a typedef in <stdbool.h> * Fixes to configure scripts, thanks to Daniel Macks (fink project) * Minor GUI improvements 2012-02-14 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.9 * Xpaint now uses (or tries to use!) autotools. * libxaw3dxft is now a separate package (but is still a requirement, and in fact should be installed before). * xpaintrw/rwTable.c : segfault fix (occurring randomly) fixed in readMagic(). * minor fix in fontSelect.c, certain fonts were possibly missing in the font browser, in some rare circumstances. * very minor fix of scrollbar behaviour in graphic.c. * misc.c : new procedure SetWMInputHint() that helps solving some quirks. 2012-01-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8.4 * minor fixes in fileBrowser.c (adjustable height of text entry for the file name, resize procedure improved). 2011-10-13 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8.3 * xpaintrw/pgf-util/Makefile : add '-fpermissive' flag to allow compilation with recent (more picky!) versions of g++ * Xaw3dxft/Viewport.c : position of scrollbars can now be adjusted through parameters sbShift[X,Y][1,2]. No public API change, so this addition should be upward compatible. * graphic.c : some small fixes in the shellHandler routine to accommodate odd behavior of scrollbars with xorg recent versions, using the new sbShift feature. 2010-12-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8.2 - nothing really new, just very small fixes * Integrated patch to facilitate compilation with gcc-4.5 * app-defaults files : slight improvement of X event management in pull-down menus. * print.c : slight improvement of X event management in print widget. * fontOp.c : fixed color issue (color not initialized) when moving written text with arrow keys. * Very small changes in Xaw3dxft (minor Xaw3dXft.h API update) 2010-11-08 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8 * Xaw3dxft : code clean-up. New files Xaw3dXft.h and Xaw3dXft.c now contain the specific Xaw3dxft parameters and routines. A couple of small improvements to correct minor quirks in the menu entry highlighting behaviour. * main.c, graphic.c : changes made to accommodate the API changes introduced in Xaw3dxft. Further code clean-up. * image.h, graphic.c, iprocess.c : modified definition of the imageprocessinfo struct, so that hopefully compilation still works with gcc 4.5 (gcc-4.5 appears to be more picky with struct definitions). Thanks to Fedora maintainer Paulo Roma Cavalcanti <promac@gmail.com> for reporting the issue. 2010-11-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.7 * Arrow keys and "Backspace", "Return", "Escape" keys can now be used in all drawing operations whose effect is not immediate, especially all routines from arcOp.c, lineOp.c, polygonOp.c, freehandOp.c, splineOp.c, TextOp.c Arrow keys allow moving objects around before they are completely drawn, "Escape" restarts the operation from scratch, "Return" terminates the operation, and "Backspace" rewinds the course of operation backwards. * freehandOp.c : this operation now allows to draw arbitrary combinations of freehand and polygonal shapes and should be easier to use or to modify interactively thanks to the key bindings. * sprayOp.c : minor code clean-up. * updated accordingly Help files. 2010-10-25 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6.4 A couple of small improvements in spline, polygon, text and color operations. * fontOp.c, splineOp.c, polygonOp.c : implemented "Backspace" key action, i.e. removing last point or last character; "Escape" now entirely restarts the operation from the beginning. Other small improvements (including correction of a potential segfault occurring in some strange circumstances...); polygonOp() code is now also much simpler and easier to read. * graphic.c : multiple clicks on any of the three color/pattern selection discs now switch primary and secondary colors/patterns. * updated accordingly Help files. 2010-10-08 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6.3 - minor bug fix release - nothing really serious. * ops.h : minor compilation issue fixed. * graphic.c : corrected segfault bug of RegionToRGBA channels (occurring only when alpha channel was to be saved.) * chroma.c : fixed minor scrolling issue in color variance scrollbars. * graphic.c : added new menu lines to proceed more easily to editing of alpha channels or images in memory. * updated accordingly Help files, messages and app-defaults files. 2010-09-26 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6.2 * print.c : printing was completely broken, as a result of using double values instead of float values. Reverted to float ! * chroma.c, color.c, magnifier.c, fontSelect.c : revert to float ! * iprocess.c : fixed bug occurring only in very rare circumstances (creation of image with an alpha channel, being edited and compiled on the fly through the embedded C-script editor) * graphic.c : small improvement in ModifyRGB (new routine to rescale gray levels linearly from given thresholds). 2010-09-14 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6 * xpaintrw/rwTable.c, xpaintrw/readWriteTGA.c : fixes in TGA format, so as to prevent that xpaint could hang on certain non TGA files. Make sure anyway that TGA is parsed as a last resort, since TGA is a strange format without signature. * image.c, iprocess.c, graphic.c : substantial improvements in filter routines : - Added new "Merge" filter : helpful to combine smoothly an image with the underlying canvas. Works according to 4 different modes - Added new "Distortion" filter which can be used to produce local deformations - Added powerful Floyd-Steinberg algorithm (color quantification enhanced with a diffusion process). - Replaced "ModifyRGB" by a generalized RGB transformation procedure with 7 different modes, including Gamma correction (with independent r_gamma, g_gamma, b_gamma parameters), and linear transform. - Fixed several shortcomings of "Normalize contrast" and "Emboss" routines; "Emboss" now has 2 parameters allowing linear correction. - Renamed "Tilt" as "Projective Transform" with several enhancements. - Renamed "ImageCopy" as "ImageCopyData" which says more accurately what it does. * graphic.c : Memory menu : management of R,G,B and alpha channels : - Added extraction of red, green, blue, alpha channels from region - Added merge procedure for those channels * msgedit.c : new utility which can be used to extract strings from the English version of "Messages" and combine them with a partially localized "Messages_XY" for any other language - useful as well to avoid discrepancies between languages! * Many updates to Message and Help files. 2010-09-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.5 * xpaintrw/readWritePNG.c : fixed WritePNG() for alpha channel images possessing less than 16 black and white colors, which xpaint tried to write in an incorrect PNG mode. * graphic.c : fixed segfault bug when invoking "Clone Canvas" procedure. * xaw3dxft : a few hacks to work around minor display bugs related to Xft anti-aliasing/composition effects on certain X servers (especially proprietary NVIDIA ...) * main.c : new command line options -tooltips, -notooltips * operation.c, graphic.c : implemented tooltips (they can be disabled from the tools/help menu). * man page and help files : updated. 2010-08-15 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.4 * xpaintrw/readWriteTGA.c : added support for TGA format (borrowed mostly from mtpaint project). * xpaintrw/rwTable.c : code clean-up. * Paint.c, PaintRegion.c : fixes for certain complex situations involving region selection with masks and alpha channel. (Segfault could occur in Fatbits editor under those circumstances). * graphic.c : Suppression of alpha channel could lead to segfault. 2010-08-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.3 * xpaintrw/readWriteICO.c : imported a lot of code from the 'icoutil' GPLed package. As a result, xpaint can now read most Windows ICO files, even those containing embedded compressed PNG/JPG images which icoutil cannot fully open. Support for ICO masks as alpha channel, and for writing single image ICO files. * xpaintrw/readWritePGF.c : PGF image format support improved, thanks to 'pgf2pnm' provided by Christoph Stamm <christoph.stamm@fhnw.ch> (creator of the PGF format). libpgf and libpgf-dev are needed only optionally to compile 'pgf2pnm', which then provides PGF support in xpaint. However, xpaint itself does not link with libpgf and does not need libpgf-dev to be compiled. The alpha channel of PGF images is fully supported. * graphic.c : improvements/bug fixes in the "Clone with Zoom" procedure. Now works for zooming/downscaling images, with/without interpolation, and for adjusting alpha channel as well. * graphic.c, PaintEvent.c : much more powerful implementation of the "Delimit region" procedure, according to six different options (connected/non connected/color range regions, or complements of such regions). * The help files have been updated to reflect all current functionality of XPaint (Spanish help additions should be revised by a native speaker !) 2010-07-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.2 * xpaintrw/*.c : huge code clean-up. Saving files now show up a warning when the image possesses an alpha channel, but the format chosen does not support it (completely or in part). Note: saving in PNG should almost always be a safe choice ... * xpaintrw/readWriteTIFF.c : support substantially improved, including alpha channel read/write. More exotic TIFF formats unsupported. * xpaintrw/readWriteBMP.c : many more BMP image format types are now supported, including full support for images with an alpha channel (read/write). * xpaintrw/readWritePNM.c : provisions made to include support for alpha channel in PNM (this is a specific extension of xpaint : an RGB image concatenated with a gray level image of the same size - and '\n' in between - is viewed as RGBA data). * xpaintrw/readWriteJP2K.c : added support for JPEG2000 image format. Either libopenjpeg (default) or libjasper (optionally) can be used. Full support for alpha channel (requires openJPEG from subversion at this point now, since "stable" version 1.3 has insufficient alpha channel implementation...). * xpaintrw/readWritePGF.c : added support for PGF image format. This requires libpgf and pgf to be installed (but xpaint does not need to be linked against libpgf, and its compilation does not require libpgf-dev files either.) * xpaintrw/readWriteSGI.c : repaired old dormant code to read run-length encoded SGI/Irix image files. Checked to work fine. * xpaintrw/readWriteICO.c : unsupported, very buggy code. Disabled at this point. Instead, use e.g. 'icoutil' to convert those files to PNG ... * dialog.c : very small fix providing UTF8 support in AlertBox window titles (and always raising warning windows). * configure : if libXaw3dxft is installed as a shared library, compilation is now set by default to use it, rather than linking statically xpaint to libXaw3dxf.a 2010-07-18 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.1.5 * graphic.c : added "*allowResize: False" in Canvas*pane*form to prevent annoying widget initialization on certain platforms * xpaintrw/readWritePS.c : small fixes to handle correctly PS/PDF files whose names contain quotes or blank characters. 2010-07-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.1.4 * fatBitsEdit.c, Paint.c , Paintregion.c : several fixes in handling of alpha channel in fatbits editor - some affecting alpha channel image bits. * app-defaults : change zoom labels to correct values xx:1 instead of 1:xx * graphic.c : prevent fatbits editor getting called undeservedly by GetNonDirtyCanvas() routine ; removing alpha channel now moves it to memory rather than destroying it right away. * xpaintrw/readWritePS.c : fix for compilation of TeX/LaTeX files being called from random directories. * minor fixes throughout - thanks to the SUSE-Packman maintainer Detlef Reichelt <detlef@die-mafia.de> for help. 2010-06-02 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.1 * Paint.c , Paintregion.c : fixes in alpha channel routines. * fatBitsEdit.c : many fixes in fatbits editor. Refresh button added * graphic.c : reload file procedure didn't reload alpha channel - this is now fixed. * fontOp.c : potential segfault corrected. * small other (mostly random) improvements. 2010-05-16 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.0 * graphic.c, Paint.c : big improvements in handling of alpha channel ; alpha management menu is now explicit from canvas menu bar. Support still not quite complete at this point (regions do not appear yet in alpha mode). Should come for 2.9.1... * Paint.c, PaintRegion.c : fixed segfault occurring when using region operations in fatbits editor (regression introduced already in 2.8.9 which remained unnoticed up to 2.8.19 ...) * fontOp.c, fontSelect.c : UTF8 support should now be essentially complete. * xpaintrw/readWritePNG.c : fixed bug when writing PNG_COLOR_TYPE_PALETTE images with less than 16 colors (those images were wrongly converted to gray palette...) * several other small fixes and improvements throughout. 2010-04-17 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.19.1 (mostly cosmetic changes) * fileBrowser.c : added "ongoing" mode in File Browser (widget no longer closes when opening an image, allowing to browse files continuously). Performed a substantial code clean-up as well. * operation.c, graphic.c : menu improvements; one can now open an image from any canvas window. * misc.c : added RaiseWindow() routine to comply better with ewmh specifications. XMapRaised() replaced by RaiseWindow() throughout. * "snapshot" replaced by "screenshot" throughout. 2010-04-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.19 * fileBrowser.c : fixed minor annoyance in "save" and "saveas" routines - name of file is now again remembered when a filename has already been set. * graphic.c : fixed bug in ToolSelection switcher; "font" menu replaced by more powerful "text" menu; new entry added to edit/write text from text editor embedded in font browser. * iprocess.c : fixed bug in filter "adjust RGB colors" * fontSelect.c, fontOp.c : text sample is now editable, and this text can be imported on canvases. This includes being able to set fonts, colors, linespacing (etc) as editable text. Any UTF8 encoded file can be read and edited, and a small number of special commands are available to format such texts; for hints on how to use this, see "Doc/TextFormat.doc". Xpaint can thus be used as a text editor (sort of!), useful e.g. to create posters with text and graphics. * xpaintrw/readWritePS.c : support for reading a file as "enriched text". * main.c : new command line options -textfont and -astext, the latter for opening files as enriched text. * share/bin/imgmerge : small tweak to use a static PageInfo struct, otherwise imgmerge would segfault (gcc bug ?) 2010-03-13 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.18 * Minor fixes (UTF8 names in windows, rare segfault when using external viewer) * xpaintrw/readWritePNG.c : xpaint now saves correctly gray images which have an alpha channel. * xpaintrw/rwTable.c : introduces auto-detect mode for writing files (image type is guessed from suffix of file name, and set to PNG as a fallback). * xaw3dxft : changed library name to libXaw3dxft to avoid interfering with regular libXaw3d. Added hooks in 'configure' to (possibly) install and compile it as a shared library. Corrected an issue in xaw3dxft/List.c which could sometimes lead to a fatal X error. * Added man pages for imgmerge and pngconcat (provided by Debian maintainer Josué Abarca) * Removed dependency on Xft.h in PaintP.h which had the unfortunate effect of breaking C-Script compilation, e.g. in imgmerge. 2010-03-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.17 * Xpaint is now fully UTF8 compliant. This has been done rather cheaply by linking statically with a modified xaw3d library which is UTF8 & Freetype aware. This also means that anti-aliasing is enabled in the menus and text widgets, and that the X core font protocol is no longer used anywhere. * By default, Xpaint no longer depends on external xaw/xaw3d/xaw3dg libraries as it is compiled with its own improved xaw3d clone; this only adds approximately 250 kB to the binary executable. * Xpaint can still be used with 8 bit encoding by specifying the command option 'xpaint -encoding 8'. However the resource files XPaint* Messages* Help* should then preferably be converted back to a 8bit locale, otherwise some strange characters will show up in the menus, at least in languages which use non ASCII characters. 2010-02-17 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.16.1 * fontSelect.c, misc.c : introduced clickFocusCallback which fixes keyboard focus in fontSelect and in color picker ascii text input widgets (problem occurred e.g. under KDE). Use 2.8.16 with xpaint-2.8.16-keyboard-input.patch. 2010-02-12 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.16 * graphic.c, fontOp.c, fontSelect.c : Xpaint now uses the Xft protocol to display fonts, so that (in particular) all TrueType fonts are available, and the corresponding glyphs are nicely anti-aliased without resorting to a use of sub-pixel resolution. Another benefit is the possibility of rotating text, or even applying arbitrary linear transformation (however, writing fonts with a pattern instead of a plain color is no longer possible directly - for this, one can use instead masks or a fill procedure). * xpaintrw/readWritePNG.c : applied small patch from Stefan Husmann (Arch Linux maintainer) to take care of API deprecation in newer versions libpng-1.4.x. 2010-02-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.15 * PaintRegion.c : finally found and corrected long standing bug which plagued iteration of filters and undo procedures. * fileBrowser.c : several GUI improvements. * xpaintrw/readWritePS.c : improved handling of BoundingBoxes. Fixed bug in the use of 'psselect' which was found on the Fedora bugzilla list (many thanks to Paulo Roma Cavalcanti <promac@superig.com.br> for analyzing the issue) 2010-01-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.14 * graphic.c : memory management simplified and improved; added CRC32 checksum control to avoid duplicates. * xpaintrw/readScript.c : fixed potential bug occurring in rare circumstances. * Various fixes in batch scripts 'imgmerge', 'batch.c' and 'xpaint_ocr' GPLv3 licence specified there. * Included new debian files released by Debian maintainer Josué Abarca * xpaint.man.in : corrected a ­ issue (thanks again to Josué Abarca) 2010-01-20 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.13 * Paint.c : corrected nasty bug * graphic.c : GUI improvements. Border color of paint widget now indicates status of image (red: non editable, green: resize enabled, blue: has an alpha layer, black: otherwise). * image.c : ImagaToPixmap() et al modified so as to manage alpha channel mode once for all (rather than repeating this for each of the image loaders). 2010-01-18 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.12 * misc.c, graphic.c : some more fixes for alpha channel issues. 2010-01-17 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.11 * fileBrowser.c : browserResized() : included patch for accommodating bug in certain versions of the Xaw3d library * Paint.c : PwGetPixmap() modified so as to work independently of zoom value. Saving a file under zoom<1 now works !! * graphic.c : there is now support for adjusting join and cap style of lines being drawn. Fixed handling of memory box. * Code for alpha channel completed and made more robust (substantial changes in graphic.c, Paint.c, PaintRegion.c) 2010-01-10 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.10 * graphic.c : many GUI improvements. Some alpha channel fixes. (arbitrary linear transformation of alpha channel still not implemented). * lineOp.c : fixed arrow and vector drawing under zoom != 1 (were correctly written to pixmap but incorrectly shown on canvas). * fileBrowser.c : a few cosmetic changes to make code more robust. * xpaintrw/readWritePNG.c : fixed readPNG() for non transparent PNG images possessing a palette of colors. 2010-01-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.9 * polygonOp.c : segfault bug corrected. Polygonal regions can now be selected correctly under zoom values other than 1. * xpaint.h : various API modified to include alpha channel (in images, paint canvases, clipboard, memory stack...) * PaintUndo.c : implemented alpha channel in Undo stacks * PaintRegion.c, graphic.c : routines to set/show/edit the alpha channel are now implemented in a fairly complete manner. * readWritePNG.c : xpaint now saves a canvas with an alpha channel as a PNG file with a corresponding alpha channel. * readWriteXPM.c : xpaint now saves a canvas with an alpha channel as an XPM file with a "None" color (reduced to a 0/1 mask). (By default, alpha<128 is considered to be transparent and alpha>=128 to be opaque. The threshold value 128 can be changed from the options.) * readGIF.c : xpaint can now read alpha channel of GIF89 files possessing transparent pixels (setting transparent pixel in writeGIF.c not yet implemented). 2009-12-09 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.8 Interim release with partial support for transparent images; alpha channel is now correctly read when loading PNG and XPM images. Easier management and writing support will be implemented in 2.8.9. * xpaintrw/readGIF.c : xpaint will now open all frames of animated GIF images, and not just the first frame - support of this feature was already there, but had never been made accessible from the GUI ! * xpaintrw/readWritePNG.c : xpaint now detects PNG images possessing an alpha channel and loads them properly. The RGB values and alpha channels can be edited separately (but not yet mixed back easily). * xpaintrw/readLXP.c : preliminary implementation of layered xpaint image format LXP. File share/c_scripts/templates/script.c used as template. * pattern.c : new button introduced to modify background color (thus duplicating functionality from the separate background color widget). * fileBrowser.c : widget improved. Four new buttons added to get directly to home, root and current directory, and to show/hide dot files. The browser of loaded files now has buttons for editing C scripts and managing layers (implementation somehow works, but is not yet complete). * iprocess.c : corrected segfault bug occurring in certain circumstances, e.g. when loading recursive image C-scripts. In particular, "layer" example share/c_scripts/layers/combine.c now works again. 2009-11-18 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7.3 (very minor changes) * graphic.c : corrected very tiny bug in resizeCanvas() routine which resulted in occasional disappearance of Fatbits cursor, when the canvas was resized under certain zoom reduction values. * fatBitsEdit.c : added convenience routine FatbitsEditorDestroy(paint) (not yet used inline - could possibly be used from C scripts). * small addition in Local.config file 2009-11-15 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7.2 (very minor changes) * Further cosmetic fixes and code cleaning ; X error handler improved (just in case). * snapshot.c : taking a snapshot from the tools window now unmaps the window (so that any window stacked behind can be captured); spurious warning 'bad pixmap' from libX11 has been eliminated. 2009-11-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7.1 (released only as a patch to 2.8.7). * Further cosmetic improvements and code cleaning not really worth bothering (e.g. popup menus which, when users change their mind and no longer want to use them, may not immediately popdown as would be expected when clicking randomly outside, e.g. on the canvas ...) 2009-11-04 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7 released. * graphic.c, menu.c, PaintEvent.c : a substantial number of cosmetic changes made to further improve the menu behaviour. * fileName.c renamed as fileBrowser.c * fileBrowser.c : Some "flickering" issues in the browser have been corrected. The file browser of "loaded files" now include ad hoc fields and buttons for modifying the scaling of vector format images (PS/PDF/DVI/TeX/LaTeX/SVG) as well as for selecting a page in multi-page documents. Now, Xpaint can thus be used as a practical viewer for such documents - though for this purpose it's certainly not as fast and optimized as specialized viewers ... * readWritePS.c : multipage PostScript files require 'psselect' from the psutils package. (This is a very simple program so we may consider including it in the next version of xpaint to remove that dependency.) DVI files are now accepted, along with PS/PDF/TeX/LaTeX/SVG. * print.c : selecting PDF option now (really) saves file as PDF rather than PostScript. * Merged Changelog and (unmaintained) file Doc/CHANGES 2009-10-27 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.6.1 released. * bug fixes : main.c : xpaint did not accept setting default zoom < 100% through command line graphic.c : underestimated evaluation of canvas window size for large images, resulting in image not being fully displayed even when it could. PaintRegion.c : segfault bug occurring in certain circumstances when dragging a region outside viewport, in region transparency mode. 2009-10-26 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.6 released. * Extensive changes in many parts, to provide capability for zoom = 1/n, while performing all possible operations under such a zoom. This means that anti-aliasing can be obtained by using e.g. zoom = 1/3 and then cloning the canvas with the given reduction. * magnifier.c: Introduced a magnifying glass, based on code of 'xlupe' by Thomas Runge (runge@rostock.zgdv.de) * operation.c: menu now includes an item to open the magnifying glass, and a browser for all images which have been opened or loaded from the command line. * fileName.c : the buildBrowser() routine has been extended to have a mode ('type=4') showing the list of loaded images. * graphic.c: edit menu includes 2 items for cloning the canvas (with or without reduction) * a lot of bugs have been ironed out, e.g. a crash in the polygon selection area, and a very long-standing bug in the memory management of menu.c which used to cause (fortunately unfrequent) random crashes. 2009-10-16 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.5 released. * graphic.c, user visible changes : added a zoom button and a new toggle allowing to resize the canvas, using mouse or arrow keys. Several other related improvements have been made for zooming/resizing, along with a few minor fixes (the layer example "layer.c" compiles again without segfaulting.) 2009-10-13 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.4 released. * pattern.c : Fixed segfault bug in color/pattern budget, which occurred when creating new brushes. * print.c : added new toggle so as to possibly produce a compressed PS file, or send to printer a PDF file rather than a PS file. The annoying printing notification popup has been replaced by a less intrusive notification. Many other small improvements - e.g. output postcript file can be selected with a file browser. * xpaintrw/readWritePS.c : the PostScript generator has been considerably improved. XPaint is now capable of producing strongly compressed PostScript files, of weight increased hardly by more than 30%-35% when starting from a PNG file of the same resolution, and the process is faster than before - it seems that even gimp does not yet take care of this, its PS files can often be reduced to less than 50% of their current size (huge thanks to Peter Szabo for showing the way with his sam2p program.) A standalone 'ppmtops' utility has been included for potential re-use elsewhere. * Clarification of the licence. Xpaint is an old program, many parts of which were written at a time when the GPL was not so pervasive. To the best knowledge of the current maintainer, all parts where written under permissive licences which are compatible with the GPL. J.-P. Demailly thus puts under the GPLv3 all code developped by him in the last twelve years - that's probably more than 30% of the total amount of code, and the program as a whole should thus be considered as GPLv3. All related utilities ('ppmtops', C scripts, etc) are also put under the GPLv3. 2009-10-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.3 released. * Included 2 patches from Mandriva packagement experts, fixing some minor compilation problems and potential security issues. * xpaintrw/readWritePS.c : xpaint is now able to display TeX, LaTeX, PDF and SVG files using image conversion from external ad hoc programs. Option -dpi <dpi value> can be used to adjust size of image. 2009-10-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.2 released. * pattern.c : found and fixed two long standing segfault bugs (fortunately occurring only in not so frequent circumstances) * Set default gridcolor to grey80 on TrueColor displays, a less intrusive color than black. 2009-09-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.1 released. * Introduced rectangular (not just square) snap grids. Color of grid can be changed to arbitrary color. * graphic.c : corrected segfault bug in simplemenu switcher (selector popup). 2009-09-27 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.0 released. * Menu popups have been entirely reworked. Their behaviour is now more fluid - and similar to the default behaviour of modern toolkits like GTK/qt - so users should feel less disturbed. (this required numerous changes in menu.c and app-defaults) * Fixed size handling of Canvas windows under maximize/unmaximize procedures. * Stability should be considerably improved. Some memory leaks have been removed as well. * Added new command line options: -undosize <num> (set undo memory limit) -operation <num> (start with operation <num> set in tool panel) -filter <file> (define filter by using <file> as C-script) -proc <file> (define procedure by using <file> as C-script) * Added support for using menu popups in C script filters See share/c_scripts/filters/clean.c for an example. This means that C script filters can involve adjustable parameters which can be easily changed (i.e. without needing a recompilation each time the parameters are changed.) * Added support for using menu popups in C script procedures See share/c_scripts/procedures/proc_with_params.c for an example * iprocess.c, xpaintrw/readScriptC.c : added support for running batch jobs (for mass processing of images, using xpaint as the engine); see share/c_scripts/batch/batch.c share/bin/imgmerge * Added batch script 'imgmerge' which uses xpaint to convert and concatenate image files into a single PDF file. This also makes use of Peter Szabo's 'pdfconcat' program (GPL, included). * Added support for OCR (with the ocrad engine by default) The OCR engine(s) can be specified in the bash script /usr/share/xpaint/c_scripts/bin/xpaint_ocr This means that xpaint can be easily used as a GUI for command line OCR engines ('xpaint_ocr' makes use of the 'xless' pager, by default, but any other pager/editor can be used instead). * brushOp.c: system wide brushes are no longer hardwired, and can now be configured from the SHAREDIR directory. * Added additional brushes provided by John David Gray <kahdgarxi@gmail.com> which are useful to draw electronic circuitry. Also included a patch of him introducing three new patterns and extending the drawVisibleGrid() routine in Paint.c * Fixed (and improved as well) behaviour of snap and grid routines, also using ideas of JD Gray. * Changed rotations to use trigonometric positive rotation rather than clockwise. This was too unnatural to me ! * Numerous bug fixes. Thanks to Mattis Michel <sic_zer0@hotmail.com> for correcting a bug in the snap routines and for providing further improvements; Mattis noticed - and urged correction - of a critical bug in the "Load clipboard" procedure; he also suggested putting WM hints on minimal size of widgets so as to avoid random crashes under wild resizing of the windows. * Updated the man page - which had actually been neglected for a couple of years ...
2023-01-22 18:41:52 +01:00
share/xpaint/c_scripts/filters/similarity.c
share/xpaint/c_scripts/filters/updown.c
xpaint: update to release 3.1.4, using wip/xpaint. Packaged in wip by @adam + a couple of changes by @vins Changes (since version 2.7.8) 2021-08-14 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.4 * arcOp.c : the DrawArc procedure now checks that the arc is not drawn with a zero linewidth - otherwise some pixels could have been missing, and any later fill area procedure could then have led to unexpected results. This minor bug (or misbehavior?) has been fixed. * image.c : if installed, dvipng can now be used as an alternative to the libdvipgm library, at the expense of a small slowdown in the output. This allows TeX input even without libdvipgm installed, dvipng being installable independently. 2021-02-12 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.3 * graphic.c : the "Text" menu has been substantially improved. Text and TeX/LaTeX input of arbitrary length, size, color can now be edited and converted to either a bitmap image or vector PostScript/PDF with embedded fonts. * More extensive testing - and a lot of small details fixed 2021-01-28 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.2 * Small improvement of versions 3.1.0, 3.1.1 with bug fixes. Xpaint can now be compiled without dvipgm (at the expense of losing some TeX functionality). Thanks to testers for feedback! * This version supports the use of layers (files *.lxp = Layered XPaint files). This is done via the C script editor. Any collection of images can be combined into a new merged image by a suitable C procedure. See example in directory share/c_scripts/templates/ * Compiling against libkpathsea and libdvipgm (from the dvipgm-1.x.tar.bz2 package, x >= 2) is needed to enable TeX input processing - otherwise the compilation scripts will disable TeX input. A minimal TeX environment is also needed to allow TeX interaction. * xpaintrw/readLXP.c : routines for reading LXP files * iprocess.c : routines for the creation of LXP files * image.c : ImageDup() procedure added * operation.c : new option for cleaning temporary files * This version has reached all capabilities that had been planned since a long time: layer handling, vector graphics operations, possibility of TeX input and of mathematical drawings, programmatic creation of images, filters and graphical functions. Therefore Xpaint will probably enter into maintainance and bug correction mode. 2021-01-27 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.1 * Small improvement of version 3.1.0 with bug fixes. * This version supports the use of layers (files *.lxp = Layered XPaint files). This is done via the C script editor. Any collection of images can be combined into a new merged image by a suitable C procedure. See example in directory share/c_scripts/templates/ * Compiling against libkpathsea and libdvipgm (from the dvipgm-1.x.tar.bz2 package, x >= 2) is needed to enable TeX input processing - otherwise the compilation scripts will disable TeX input. A minimal TeX environment is also needed to allow TeX interaction. * xpaintrw/readLXP.c : routines for reading LXP files * iprocess.c : routines for the creation of LXP files * image.c : ImageDup() procedure added * operation.c : new option for cleaning temporary files * This version has reached all capabilities that had been planned since a long time: layer handling, vector graphics operations, possibility of TeX input and of mathematical drawings, programmatic creation of images, filters and graphical functions. Therefore Xpaint will probably enter into maintainance and bug correction mode. 2021-01-24 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.0 * This version now supports the use of layers (files *.lxp = Layered XPaint files). This is done via the C script editor. Any collection of images can be combined into a new merged image by a suitable C procedure. See example in directory share/c_scripts/templates/ * Compiling against libkpathsea and libdvipgm (from the dvipgm-1.x.tar.bz2 package, x >= 2) is needed to enable TeX input processing - otherwise the compilation scripts will disable TeX input. A minimal TeX environment is also needed to allow TeX interaction. * xpaintrw/readLXP.c : routines for reading LXP files * iprocess.c : routines for the creation of LXP files * image.c : ImageDup() procedure added * operation.c : new option for cleaning temporary files * This version has reached all capabilities that had been planned since a long time: layer handling, vector graphics operations, possibility of TeX input and of mathematical drawings, programmatic creation of images, filters and graphical functions. Therefore Xpaint will probably enter into maintainance and bug correction mode ... 2021-01-21 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.5 * Vector drawing capabilities improved and hopefully almost complete. * Xpaint now allows the use of TeX input in mathematical drawings, provided it is compiled with the compilation flag -DHAVE_DVIPGM. The libdvipgm and libkpathsea libraries are required for this. * The new 'vxp2tex' utility converts VXP data into a TeX file that can be used with pdftex or pdflatex. * lineOp.c : ticks and graduation procedure added. * graphic.c, image.c, iprocess.c : several fixes and improvements. 2021-01-09 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.4 * This version has acquired substantial vector drawing capabilities. Just open 'Options->VXP vector data Editor' to enable vector drawing operations. Most of them are recorded in a plain text "VXP format" *.vxp. The external program 'vxp2ps' converts these data into (vector) postscript, and 'vxp2dkw' can be used to convert them for use in in the handwritten note editor deskwrite. Such Postscript files can be easily converted to PDF or SVG. * Xpaint can also read and rasterize *.vxp files (but at this point all operations that are not translated right away into vector data are ignored, even though they are recorded in the VXP file). * graphic.c, operation.c, misc.c, iprocess.c : extensive additions to implement VXP data processing. * share/c_scripts/procedures : canvas+vxp.c added as a new example. C scripts can be used to produce VXP data. 2020-08-04 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.3 * This version of xpaint requires in principle libXaw3dXft-1.6.2h (but would run with 1.6.2d,e by removing the compilation flag -DHAVE_NEWEDITINGSTYLE) * graphic.c: a new option has been introduced, allowing xpaint to use more easily graphics tablets, more specifically the user space drivers provided with deskwrite on Sourceforge. * menu.c: SetFocusOn() has been fixed. This allows the input focus to be preserved in active text fields, even when the cursor leaves the top parent window (as is usually expected with modern desktop interface guidelines ...) * iprocess.c: small improvement of the Gamma/RGB filter. * Further small fixes throughout, especially in the build scripts and the debian packaging. 2020-06-29 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.2 * This version of xpaint requires libXaw3dXft-1.6.2h (or later versions of the libXaw3dxft library - the changes between 'f', 'g' and 'h' merely consist of introducing a new parameter to allow scrollbars of text widgets to be on the right side, plus some minor improvements in the edition process) Removing -DHAVE_NEWEDITINGSTYLE in Makefile.am would make xpaint compatible with earlier versions 1.6.2d,e of libxaw3dxft with essentially no change, except for the text input editing behavior of Backspace and Delete keys. * xpaintrw/readWritePNM.c: is now using a more recent version of libnetpbm, rather than the completely obsolete version from the 1990's that was embedded in the original code of xpaint. One consequence is that libnetpbm10-dev or preferably libnetpbm11-dev are now needed to compile xpaint, another one is that PPM/PAM files with an alpha channel can now be read and written. Adjust the NETPBM defines (-DNETPBM10 or -DNETPBM11) according to the installed version of libnetpbm. * help.c: the help widget now has two independently resizable panes (topics and explanations). * pattern.c: correction of old bug (that had however no visible effect before 3.0.1). * graphic.c: exchange of primary and secondary colors or patterns is now accessible by clicking on the red cross below the color picker (shown as an eye). Similar addition for pattern.c 2020-06-16 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.1 * This version of xpaint requires libXaw3dXft-1.6.2f (or later versions of the libXaw3dxft library). Removing -DHAVE_NEWEDITINGSTYLE in Makefile.am would make it compatible with earlier versions 1.6.2d,e with essentially no change except for the text input editing behavior of Backspace and Delete keys. * print.c: by default, xpaint no longer depends on cups-bsd commands, (but they can be re-enabled via an adjutsment of the app-defaults files). * xpaintrw/readWritePS.c: the BoundingBox of a file saved as PS/PDF should now be set appropriately. * graphic.c, *Op.c: extensive additions. Xpaint can now record all operations that are performed as vector data, in the so called VXP format. The recording starts as soon as the VXP editor under the Options menu is started, and these data can be saved into a file <name>.vxp * readWriteJP2K.c: has been ported to work with openjpeg version 2 (JPEG2000 format), including alpha channel. * Various other small fixes throughout (SVG import, ...) * At a later stage, it will be possible to convert these VXP files to other vector formats such as eps, pdf or svg, and import them back to xpaint. There will be also an option to insert TeX input and convert the data into a (La)TeX file. 2020-05-25 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.0 * bitmaps/toolicons: new set of icons, generated from SVG data. * app_defaults: the app_defaults files have been reorganized so as to separate linguistic strings and other data, especially widget sizes. Three sizes are now offered: big, medium, small, to accommodate HiDPI screens or low resolution screens. * operation.c: the tool window is now fully resizable. In order to actually change the size of icons, users can copy /usr/share/xpaint/bitmaps/toolicons/ into $HOME/.xpaint/toolicons/ and generate icons with larger or smaller size there. Just type ./generate_icons <height> in $HOME/.xpaint/toolicons/ to produce a new set of icons with the given height (the xpaint package is distributed with icons of default height 36). The shell script "generate_icons" requires inkscape to work. * graphic.c: the parameter btnheight is now used to resize the palette elements as well as the height of buttons. This is useful for HiDPI screens (as well as for lower resolution screens of older computers). * main.c: new option -blind that keeps xpaint running under the hood when batch procedures are invoked. * xpaintrw/readWritePS.c: SVG import has been updated to work with inkscape-1.0. * The change of major number in this version anticipates the introduction of some vector graphics capabilities in the versions 3.x.y to come. (Right now, the only vector graphics capabilities are PS, PDF, SVG import). 2020-05-21 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 2.10.3 * lineOp.c : under the "segment" operation, users will now find new "Position" and "Measurement" tools. These tools do not draw anything, but instead they record the locations of pixels that are clicked on, and compute lengths and angles. * iprocess.c : The "Perspective" filter has been vastly improved. It should now enable users to correct the perspective of a distorted picture taken by a camera, or to create artificial perspective when producing a drawing. This can be used in connection with the new "Position" tool, so as to specify points on the canvas. * iprocess.c : The API of C scripts introduces a new public procedure PixelInterpolate(unsigned char *op, Image *input, double x, double y) that can be used to smooth pixels, under transformations that map integer coordinates into float values (as is the case e.g. for rotations or homotheties with arbitrary factor). This will sometimes improve the output of such operations (but may also make the image fuzzier). * Two new C scripts "similarity.c" and "projective.c" have been added. They show in particular how to exploit the PixelInterpolate() procedure. * Help and message files have been edited to explain details of the new functionalities. 2017-11-13 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 2.10.2 * Minor compilation fixes in iprocess.c and xpaintrw/readWriteJP2K.c thanks to the OpenSUSE team. * Bug in operation.c : exitPaint(...) could trigger a segfault when quitting xpaint without saving the canvas. Thanks to Anthony J. Bentley from the OpenBSD team for reporting the bug. * misc.h : srandom() is nowadays always of void type. * Minor fixes for the calculation of the maximum canvas size. 2016-12-10 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 2.10.1 (a substantial update!). * Xpaint includes a new command line option -btnheight that adjusts appropriately the size of all internal widgets in case a big menu font is used (e.g. by setting the option -menufont , or by changing the app-defaults file). This is very useful if you have a high resolution screen. Many small local modifications of various source files in the main tree have been necessary for this. * A new option -toolmode 0,1,2 can be used to initialize the display of the tool window. Also adjustable dynamically by resizing that window. * Default canvas size has been set to 1024x768 Related command line options are -canvassize and -winsize that can be used independently to adjust the default size of canvas and main window. * The app-defaults files and help files have been modified to accommodate the above additions. * The "Print" widget has been improved, and its menubar is now again available to adjust page formats (a bug introduced probably a long time ago prevented it to work !) * A newer version libXaw3dXft-1.6.2e.tar.bz2 has been posted. The only change is a 3 lines addition that circumvents (what seems to be) a bug occurring in certain X11/Xorg implementations, e.g. the intel driver, version 2.99.917. Otherwise this will make no difference. * Changed the library name librw to libxpaintrw to avoid shared library conflicts. Thanks to Michael Orlitzky for pointing out the issue. * Applied a number of patches from gentoo.org that substantially improve the compilation process. Thanks to Julian Ospald <hasufell@gentoo.org> 2015-01-02 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10.3 * Port to the newer libXaw3dXft-1.6.2d.tar.bz2 (the latter is actually a requirement, this version no longer compiles with libXaw3dXft-1.6.2c). The point is that libXaw3dXft-1.6.2d has improved binary compatibility with plain libXaw3d-1.6.x * Only further cosmetic changes, no change in functionality. 2014-04-17 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10.2 * Minor fixes in 'configure.ac' and 'configure.old' scripts Xpaint can now be compiled again with plain Xaw or Xaw3d (this is NOT recommended, Xaw3dxft definitely gives much better results !) Thanks to Stefan Husmann (Arch Linux) for helpful reports in this respect. * 'configure' (based on autotools) and 'configure.old' (based on imake) should in most cases give essentially equivalent binaries. * PDF files are now read by using mudraw if mupdf & mupdf-tools are installed (otherwise Xpaint falls back to the formerly used solution: pdf2ps + ghostscript, a much slower one...) * Xpaint can now even import libreoffice files as images as soon as libreoffice is installed (assuming /usr/bin/libreoffice is a valid path to the main program) 2014-04-09 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10.1 * Includes the "version_and_focus_patch_for_2.9.10" and other minor fixes. * The alpha channel menu now includes a new function that allows editing as RGB values the image that appears when transparency is applied on a background of the selected background color - white being the default (this removes the transparency levels afterwards, so as to get a pure RGB image). * Bug (probably very old) corrected : selection of background color always resulted in black being chosen ! 2014-03-03 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10 * This version should preferably be compiled with libXaw3dXft-1.6.2c, although it still works Ok with libXaw3dXft-1.6.2b. * readWritePNG.c: fixed bug occurring when writing grayscale images possessing no more than 16 colors. * readWriteJPEG.c: JPEG images in CMYK colorspace are now handled properly (they will still be memorized as RGB, so the original CMYK information is lost, but at least they are shown correctly). * fileBrowser.c: "Save" and "Save as" menus now include the option to adjust JPEG quality between 50% and 100% (default is 90%) * fileBrowser.c: improved logic : the file browser now remembers file names when changing directories, and also takes into account default extension when specifying file format. * fileBrowser.c: thanks to a new feature from libXaw3dXft-1.6.2c (possibility of creating colored lists), xpaint now implements file type coloring in its file browser - at this point this is guessed merely from the suffix of the file. * operation.c: Canvas menu reorganized - it is now named "File menu" so as to conform to general use. Except from reordering the items, the main functionality is unchanged. * pattern.c: bug fixes. A segfault problem in the zoom selector has been corrected, and contextual help has been fixed. 2013-01-27 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.9.4 * This version should be compiled with libXaw3dXft-1.6.2b * RGB channel separation procedure fixed and improved * Fix in CRC data handling of regions in memory. * XPaint now remembers better the position of regions saved in memory. The recorded position can now be changed or reset to origin through the memory management menu. * compilation fix for pgf2pnm with newer libpgf-6.12.24 * Avoid "bool" variable throughout, as this is a typedef in <stdbool.h> * Fixes to configure scripts, thanks to Daniel Macks (fink project) * Minor GUI improvements 2012-02-14 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.9 * Xpaint now uses (or tries to use!) autotools. * libxaw3dxft is now a separate package (but is still a requirement, and in fact should be installed before). * xpaintrw/rwTable.c : segfault fix (occurring randomly) fixed in readMagic(). * minor fix in fontSelect.c, certain fonts were possibly missing in the font browser, in some rare circumstances. * very minor fix of scrollbar behaviour in graphic.c. * misc.c : new procedure SetWMInputHint() that helps solving some quirks. 2012-01-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8.4 * minor fixes in fileBrowser.c (adjustable height of text entry for the file name, resize procedure improved). 2011-10-13 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8.3 * xpaintrw/pgf-util/Makefile : add '-fpermissive' flag to allow compilation with recent (more picky!) versions of g++ * Xaw3dxft/Viewport.c : position of scrollbars can now be adjusted through parameters sbShift[X,Y][1,2]. No public API change, so this addition should be upward compatible. * graphic.c : some small fixes in the shellHandler routine to accommodate odd behavior of scrollbars with xorg recent versions, using the new sbShift feature. 2010-12-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8.2 - nothing really new, just very small fixes * Integrated patch to facilitate compilation with gcc-4.5 * app-defaults files : slight improvement of X event management in pull-down menus. * print.c : slight improvement of X event management in print widget. * fontOp.c : fixed color issue (color not initialized) when moving written text with arrow keys. * Very small changes in Xaw3dxft (minor Xaw3dXft.h API update) 2010-11-08 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8 * Xaw3dxft : code clean-up. New files Xaw3dXft.h and Xaw3dXft.c now contain the specific Xaw3dxft parameters and routines. A couple of small improvements to correct minor quirks in the menu entry highlighting behaviour. * main.c, graphic.c : changes made to accommodate the API changes introduced in Xaw3dxft. Further code clean-up. * image.h, graphic.c, iprocess.c : modified definition of the imageprocessinfo struct, so that hopefully compilation still works with gcc 4.5 (gcc-4.5 appears to be more picky with struct definitions). Thanks to Fedora maintainer Paulo Roma Cavalcanti <promac@gmail.com> for reporting the issue. 2010-11-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.7 * Arrow keys and "Backspace", "Return", "Escape" keys can now be used in all drawing operations whose effect is not immediate, especially all routines from arcOp.c, lineOp.c, polygonOp.c, freehandOp.c, splineOp.c, TextOp.c Arrow keys allow moving objects around before they are completely drawn, "Escape" restarts the operation from scratch, "Return" terminates the operation, and "Backspace" rewinds the course of operation backwards. * freehandOp.c : this operation now allows to draw arbitrary combinations of freehand and polygonal shapes and should be easier to use or to modify interactively thanks to the key bindings. * sprayOp.c : minor code clean-up. * updated accordingly Help files. 2010-10-25 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6.4 A couple of small improvements in spline, polygon, text and color operations. * fontOp.c, splineOp.c, polygonOp.c : implemented "Backspace" key action, i.e. removing last point or last character; "Escape" now entirely restarts the operation from the beginning. Other small improvements (including correction of a potential segfault occurring in some strange circumstances...); polygonOp() code is now also much simpler and easier to read. * graphic.c : multiple clicks on any of the three color/pattern selection discs now switch primary and secondary colors/patterns. * updated accordingly Help files. 2010-10-08 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6.3 - minor bug fix release - nothing really serious. * ops.h : minor compilation issue fixed. * graphic.c : corrected segfault bug of RegionToRGBA channels (occurring only when alpha channel was to be saved.) * chroma.c : fixed minor scrolling issue in color variance scrollbars. * graphic.c : added new menu lines to proceed more easily to editing of alpha channels or images in memory. * updated accordingly Help files, messages and app-defaults files. 2010-09-26 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6.2 * print.c : printing was completely broken, as a result of using double values instead of float values. Reverted to float ! * chroma.c, color.c, magnifier.c, fontSelect.c : revert to float ! * iprocess.c : fixed bug occurring only in very rare circumstances (creation of image with an alpha channel, being edited and compiled on the fly through the embedded C-script editor) * graphic.c : small improvement in ModifyRGB (new routine to rescale gray levels linearly from given thresholds). 2010-09-14 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6 * xpaintrw/rwTable.c, xpaintrw/readWriteTGA.c : fixes in TGA format, so as to prevent that xpaint could hang on certain non TGA files. Make sure anyway that TGA is parsed as a last resort, since TGA is a strange format without signature. * image.c, iprocess.c, graphic.c : substantial improvements in filter routines : - Added new "Merge" filter : helpful to combine smoothly an image with the underlying canvas. Works according to 4 different modes - Added new "Distortion" filter which can be used to produce local deformations - Added powerful Floyd-Steinberg algorithm (color quantification enhanced with a diffusion process). - Replaced "ModifyRGB" by a generalized RGB transformation procedure with 7 different modes, including Gamma correction (with independent r_gamma, g_gamma, b_gamma parameters), and linear transform. - Fixed several shortcomings of "Normalize contrast" and "Emboss" routines; "Emboss" now has 2 parameters allowing linear correction. - Renamed "Tilt" as "Projective Transform" with several enhancements. - Renamed "ImageCopy" as "ImageCopyData" which says more accurately what it does. * graphic.c : Memory menu : management of R,G,B and alpha channels : - Added extraction of red, green, blue, alpha channels from region - Added merge procedure for those channels * msgedit.c : new utility which can be used to extract strings from the English version of "Messages" and combine them with a partially localized "Messages_XY" for any other language - useful as well to avoid discrepancies between languages! * Many updates to Message and Help files. 2010-09-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.5 * xpaintrw/readWritePNG.c : fixed WritePNG() for alpha channel images possessing less than 16 black and white colors, which xpaint tried to write in an incorrect PNG mode. * graphic.c : fixed segfault bug when invoking "Clone Canvas" procedure. * xaw3dxft : a few hacks to work around minor display bugs related to Xft anti-aliasing/composition effects on certain X servers (especially proprietary NVIDIA ...) * main.c : new command line options -tooltips, -notooltips * operation.c, graphic.c : implemented tooltips (they can be disabled from the tools/help menu). * man page and help files : updated. 2010-08-15 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.4 * xpaintrw/readWriteTGA.c : added support for TGA format (borrowed mostly from mtpaint project). * xpaintrw/rwTable.c : code clean-up. * Paint.c, PaintRegion.c : fixes for certain complex situations involving region selection with masks and alpha channel. (Segfault could occur in Fatbits editor under those circumstances). * graphic.c : Suppression of alpha channel could lead to segfault. 2010-08-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.3 * xpaintrw/readWriteICO.c : imported a lot of code from the 'icoutil' GPLed package. As a result, xpaint can now read most Windows ICO files, even those containing embedded compressed PNG/JPG images which icoutil cannot fully open. Support for ICO masks as alpha channel, and for writing single image ICO files. * xpaintrw/readWritePGF.c : PGF image format support improved, thanks to 'pgf2pnm' provided by Christoph Stamm <christoph.stamm@fhnw.ch> (creator of the PGF format). libpgf and libpgf-dev are needed only optionally to compile 'pgf2pnm', which then provides PGF support in xpaint. However, xpaint itself does not link with libpgf and does not need libpgf-dev to be compiled. The alpha channel of PGF images is fully supported. * graphic.c : improvements/bug fixes in the "Clone with Zoom" procedure. Now works for zooming/downscaling images, with/without interpolation, and for adjusting alpha channel as well. * graphic.c, PaintEvent.c : much more powerful implementation of the "Delimit region" procedure, according to six different options (connected/non connected/color range regions, or complements of such regions). * The help files have been updated to reflect all current functionality of XPaint (Spanish help additions should be revised by a native speaker !) 2010-07-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.2 * xpaintrw/*.c : huge code clean-up. Saving files now show up a warning when the image possesses an alpha channel, but the format chosen does not support it (completely or in part). Note: saving in PNG should almost always be a safe choice ... * xpaintrw/readWriteTIFF.c : support substantially improved, including alpha channel read/write. More exotic TIFF formats unsupported. * xpaintrw/readWriteBMP.c : many more BMP image format types are now supported, including full support for images with an alpha channel (read/write). * xpaintrw/readWritePNM.c : provisions made to include support for alpha channel in PNM (this is a specific extension of xpaint : an RGB image concatenated with a gray level image of the same size - and '\n' in between - is viewed as RGBA data). * xpaintrw/readWriteJP2K.c : added support for JPEG2000 image format. Either libopenjpeg (default) or libjasper (optionally) can be used. Full support for alpha channel (requires openJPEG from subversion at this point now, since "stable" version 1.3 has insufficient alpha channel implementation...). * xpaintrw/readWritePGF.c : added support for PGF image format. This requires libpgf and pgf to be installed (but xpaint does not need to be linked against libpgf, and its compilation does not require libpgf-dev files either.) * xpaintrw/readWriteSGI.c : repaired old dormant code to read run-length encoded SGI/Irix image files. Checked to work fine. * xpaintrw/readWriteICO.c : unsupported, very buggy code. Disabled at this point. Instead, use e.g. 'icoutil' to convert those files to PNG ... * dialog.c : very small fix providing UTF8 support in AlertBox window titles (and always raising warning windows). * configure : if libXaw3dxft is installed as a shared library, compilation is now set by default to use it, rather than linking statically xpaint to libXaw3dxf.a 2010-07-18 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.1.5 * graphic.c : added "*allowResize: False" in Canvas*pane*form to prevent annoying widget initialization on certain platforms * xpaintrw/readWritePS.c : small fixes to handle correctly PS/PDF files whose names contain quotes or blank characters. 2010-07-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.1.4 * fatBitsEdit.c, Paint.c , Paintregion.c : several fixes in handling of alpha channel in fatbits editor - some affecting alpha channel image bits. * app-defaults : change zoom labels to correct values xx:1 instead of 1:xx * graphic.c : prevent fatbits editor getting called undeservedly by GetNonDirtyCanvas() routine ; removing alpha channel now moves it to memory rather than destroying it right away. * xpaintrw/readWritePS.c : fix for compilation of TeX/LaTeX files being called from random directories. * minor fixes throughout - thanks to the SUSE-Packman maintainer Detlef Reichelt <detlef@die-mafia.de> for help. 2010-06-02 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.1 * Paint.c , Paintregion.c : fixes in alpha channel routines. * fatBitsEdit.c : many fixes in fatbits editor. Refresh button added * graphic.c : reload file procedure didn't reload alpha channel - this is now fixed. * fontOp.c : potential segfault corrected. * small other (mostly random) improvements. 2010-05-16 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.0 * graphic.c, Paint.c : big improvements in handling of alpha channel ; alpha management menu is now explicit from canvas menu bar. Support still not quite complete at this point (regions do not appear yet in alpha mode). Should come for 2.9.1... * Paint.c, PaintRegion.c : fixed segfault occurring when using region operations in fatbits editor (regression introduced already in 2.8.9 which remained unnoticed up to 2.8.19 ...) * fontOp.c, fontSelect.c : UTF8 support should now be essentially complete. * xpaintrw/readWritePNG.c : fixed bug when writing PNG_COLOR_TYPE_PALETTE images with less than 16 colors (those images were wrongly converted to gray palette...) * several other small fixes and improvements throughout. 2010-04-17 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.19.1 (mostly cosmetic changes) * fileBrowser.c : added "ongoing" mode in File Browser (widget no longer closes when opening an image, allowing to browse files continuously). Performed a substantial code clean-up as well. * operation.c, graphic.c : menu improvements; one can now open an image from any canvas window. * misc.c : added RaiseWindow() routine to comply better with ewmh specifications. XMapRaised() replaced by RaiseWindow() throughout. * "snapshot" replaced by "screenshot" throughout. 2010-04-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.19 * fileBrowser.c : fixed minor annoyance in "save" and "saveas" routines - name of file is now again remembered when a filename has already been set. * graphic.c : fixed bug in ToolSelection switcher; "font" menu replaced by more powerful "text" menu; new entry added to edit/write text from text editor embedded in font browser. * iprocess.c : fixed bug in filter "adjust RGB colors" * fontSelect.c, fontOp.c : text sample is now editable, and this text can be imported on canvases. This includes being able to set fonts, colors, linespacing (etc) as editable text. Any UTF8 encoded file can be read and edited, and a small number of special commands are available to format such texts; for hints on how to use this, see "Doc/TextFormat.doc". Xpaint can thus be used as a text editor (sort of!), useful e.g. to create posters with text and graphics. * xpaintrw/readWritePS.c : support for reading a file as "enriched text". * main.c : new command line options -textfont and -astext, the latter for opening files as enriched text. * share/bin/imgmerge : small tweak to use a static PageInfo struct, otherwise imgmerge would segfault (gcc bug ?) 2010-03-13 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.18 * Minor fixes (UTF8 names in windows, rare segfault when using external viewer) * xpaintrw/readWritePNG.c : xpaint now saves correctly gray images which have an alpha channel. * xpaintrw/rwTable.c : introduces auto-detect mode for writing files (image type is guessed from suffix of file name, and set to PNG as a fallback). * xaw3dxft : changed library name to libXaw3dxft to avoid interfering with regular libXaw3d. Added hooks in 'configure' to (possibly) install and compile it as a shared library. Corrected an issue in xaw3dxft/List.c which could sometimes lead to a fatal X error. * Added man pages for imgmerge and pngconcat (provided by Debian maintainer Josué Abarca) * Removed dependency on Xft.h in PaintP.h which had the unfortunate effect of breaking C-Script compilation, e.g. in imgmerge. 2010-03-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.17 * Xpaint is now fully UTF8 compliant. This has been done rather cheaply by linking statically with a modified xaw3d library which is UTF8 & Freetype aware. This also means that anti-aliasing is enabled in the menus and text widgets, and that the X core font protocol is no longer used anywhere. * By default, Xpaint no longer depends on external xaw/xaw3d/xaw3dg libraries as it is compiled with its own improved xaw3d clone; this only adds approximately 250 kB to the binary executable. * Xpaint can still be used with 8 bit encoding by specifying the command option 'xpaint -encoding 8'. However the resource files XPaint* Messages* Help* should then preferably be converted back to a 8bit locale, otherwise some strange characters will show up in the menus, at least in languages which use non ASCII characters. 2010-02-17 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.16.1 * fontSelect.c, misc.c : introduced clickFocusCallback which fixes keyboard focus in fontSelect and in color picker ascii text input widgets (problem occurred e.g. under KDE). Use 2.8.16 with xpaint-2.8.16-keyboard-input.patch. 2010-02-12 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.16 * graphic.c, fontOp.c, fontSelect.c : Xpaint now uses the Xft protocol to display fonts, so that (in particular) all TrueType fonts are available, and the corresponding glyphs are nicely anti-aliased without resorting to a use of sub-pixel resolution. Another benefit is the possibility of rotating text, or even applying arbitrary linear transformation (however, writing fonts with a pattern instead of a plain color is no longer possible directly - for this, one can use instead masks or a fill procedure). * xpaintrw/readWritePNG.c : applied small patch from Stefan Husmann (Arch Linux maintainer) to take care of API deprecation in newer versions libpng-1.4.x. 2010-02-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.15 * PaintRegion.c : finally found and corrected long standing bug which plagued iteration of filters and undo procedures. * fileBrowser.c : several GUI improvements. * xpaintrw/readWritePS.c : improved handling of BoundingBoxes. Fixed bug in the use of 'psselect' which was found on the Fedora bugzilla list (many thanks to Paulo Roma Cavalcanti <promac@superig.com.br> for analyzing the issue) 2010-01-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.14 * graphic.c : memory management simplified and improved; added CRC32 checksum control to avoid duplicates. * xpaintrw/readScript.c : fixed potential bug occurring in rare circumstances. * Various fixes in batch scripts 'imgmerge', 'batch.c' and 'xpaint_ocr' GPLv3 licence specified there. * Included new debian files released by Debian maintainer Josué Abarca * xpaint.man.in : corrected a ­ issue (thanks again to Josué Abarca) 2010-01-20 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.13 * Paint.c : corrected nasty bug * graphic.c : GUI improvements. Border color of paint widget now indicates status of image (red: non editable, green: resize enabled, blue: has an alpha layer, black: otherwise). * image.c : ImagaToPixmap() et al modified so as to manage alpha channel mode once for all (rather than repeating this for each of the image loaders). 2010-01-18 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.12 * misc.c, graphic.c : some more fixes for alpha channel issues. 2010-01-17 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.11 * fileBrowser.c : browserResized() : included patch for accommodating bug in certain versions of the Xaw3d library * Paint.c : PwGetPixmap() modified so as to work independently of zoom value. Saving a file under zoom<1 now works !! * graphic.c : there is now support for adjusting join and cap style of lines being drawn. Fixed handling of memory box. * Code for alpha channel completed and made more robust (substantial changes in graphic.c, Paint.c, PaintRegion.c) 2010-01-10 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.10 * graphic.c : many GUI improvements. Some alpha channel fixes. (arbitrary linear transformation of alpha channel still not implemented). * lineOp.c : fixed arrow and vector drawing under zoom != 1 (were correctly written to pixmap but incorrectly shown on canvas). * fileBrowser.c : a few cosmetic changes to make code more robust. * xpaintrw/readWritePNG.c : fixed readPNG() for non transparent PNG images possessing a palette of colors. 2010-01-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.9 * polygonOp.c : segfault bug corrected. Polygonal regions can now be selected correctly under zoom values other than 1. * xpaint.h : various API modified to include alpha channel (in images, paint canvases, clipboard, memory stack...) * PaintUndo.c : implemented alpha channel in Undo stacks * PaintRegion.c, graphic.c : routines to set/show/edit the alpha channel are now implemented in a fairly complete manner. * readWritePNG.c : xpaint now saves a canvas with an alpha channel as a PNG file with a corresponding alpha channel. * readWriteXPM.c : xpaint now saves a canvas with an alpha channel as an XPM file with a "None" color (reduced to a 0/1 mask). (By default, alpha<128 is considered to be transparent and alpha>=128 to be opaque. The threshold value 128 can be changed from the options.) * readGIF.c : xpaint can now read alpha channel of GIF89 files possessing transparent pixels (setting transparent pixel in writeGIF.c not yet implemented). 2009-12-09 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.8 Interim release with partial support for transparent images; alpha channel is now correctly read when loading PNG and XPM images. Easier management and writing support will be implemented in 2.8.9. * xpaintrw/readGIF.c : xpaint will now open all frames of animated GIF images, and not just the first frame - support of this feature was already there, but had never been made accessible from the GUI ! * xpaintrw/readWritePNG.c : xpaint now detects PNG images possessing an alpha channel and loads them properly. The RGB values and alpha channels can be edited separately (but not yet mixed back easily). * xpaintrw/readLXP.c : preliminary implementation of layered xpaint image format LXP. File share/c_scripts/templates/script.c used as template. * pattern.c : new button introduced to modify background color (thus duplicating functionality from the separate background color widget). * fileBrowser.c : widget improved. Four new buttons added to get directly to home, root and current directory, and to show/hide dot files. The browser of loaded files now has buttons for editing C scripts and managing layers (implementation somehow works, but is not yet complete). * iprocess.c : corrected segfault bug occurring in certain circumstances, e.g. when loading recursive image C-scripts. In particular, "layer" example share/c_scripts/layers/combine.c now works again. 2009-11-18 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7.3 (very minor changes) * graphic.c : corrected very tiny bug in resizeCanvas() routine which resulted in occasional disappearance of Fatbits cursor, when the canvas was resized under certain zoom reduction values. * fatBitsEdit.c : added convenience routine FatbitsEditorDestroy(paint) (not yet used inline - could possibly be used from C scripts). * small addition in Local.config file 2009-11-15 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7.2 (very minor changes) * Further cosmetic fixes and code cleaning ; X error handler improved (just in case). * snapshot.c : taking a snapshot from the tools window now unmaps the window (so that any window stacked behind can be captured); spurious warning 'bad pixmap' from libX11 has been eliminated. 2009-11-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7.1 (released only as a patch to 2.8.7). * Further cosmetic improvements and code cleaning not really worth bothering (e.g. popup menus which, when users change their mind and no longer want to use them, may not immediately popdown as would be expected when clicking randomly outside, e.g. on the canvas ...) 2009-11-04 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7 released. * graphic.c, menu.c, PaintEvent.c : a substantial number of cosmetic changes made to further improve the menu behaviour. * fileName.c renamed as fileBrowser.c * fileBrowser.c : Some "flickering" issues in the browser have been corrected. The file browser of "loaded files" now include ad hoc fields and buttons for modifying the scaling of vector format images (PS/PDF/DVI/TeX/LaTeX/SVG) as well as for selecting a page in multi-page documents. Now, Xpaint can thus be used as a practical viewer for such documents - though for this purpose it's certainly not as fast and optimized as specialized viewers ... * readWritePS.c : multipage PostScript files require 'psselect' from the psutils package. (This is a very simple program so we may consider including it in the next version of xpaint to remove that dependency.) DVI files are now accepted, along with PS/PDF/TeX/LaTeX/SVG. * print.c : selecting PDF option now (really) saves file as PDF rather than PostScript. * Merged Changelog and (unmaintained) file Doc/CHANGES 2009-10-27 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.6.1 released. * bug fixes : main.c : xpaint did not accept setting default zoom < 100% through command line graphic.c : underestimated evaluation of canvas window size for large images, resulting in image not being fully displayed even when it could. PaintRegion.c : segfault bug occurring in certain circumstances when dragging a region outside viewport, in region transparency mode. 2009-10-26 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.6 released. * Extensive changes in many parts, to provide capability for zoom = 1/n, while performing all possible operations under such a zoom. This means that anti-aliasing can be obtained by using e.g. zoom = 1/3 and then cloning the canvas with the given reduction. * magnifier.c: Introduced a magnifying glass, based on code of 'xlupe' by Thomas Runge (runge@rostock.zgdv.de) * operation.c: menu now includes an item to open the magnifying glass, and a browser for all images which have been opened or loaded from the command line. * fileName.c : the buildBrowser() routine has been extended to have a mode ('type=4') showing the list of loaded images. * graphic.c: edit menu includes 2 items for cloning the canvas (with or without reduction) * a lot of bugs have been ironed out, e.g. a crash in the polygon selection area, and a very long-standing bug in the memory management of menu.c which used to cause (fortunately unfrequent) random crashes. 2009-10-16 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.5 released. * graphic.c, user visible changes : added a zoom button and a new toggle allowing to resize the canvas, using mouse or arrow keys. Several other related improvements have been made for zooming/resizing, along with a few minor fixes (the layer example "layer.c" compiles again without segfaulting.) 2009-10-13 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.4 released. * pattern.c : Fixed segfault bug in color/pattern budget, which occurred when creating new brushes. * print.c : added new toggle so as to possibly produce a compressed PS file, or send to printer a PDF file rather than a PS file. The annoying printing notification popup has been replaced by a less intrusive notification. Many other small improvements - e.g. output postcript file can be selected with a file browser. * xpaintrw/readWritePS.c : the PostScript generator has been considerably improved. XPaint is now capable of producing strongly compressed PostScript files, of weight increased hardly by more than 30%-35% when starting from a PNG file of the same resolution, and the process is faster than before - it seems that even gimp does not yet take care of this, its PS files can often be reduced to less than 50% of their current size (huge thanks to Peter Szabo for showing the way with his sam2p program.) A standalone 'ppmtops' utility has been included for potential re-use elsewhere. * Clarification of the licence. Xpaint is an old program, many parts of which were written at a time when the GPL was not so pervasive. To the best knowledge of the current maintainer, all parts where written under permissive licences which are compatible with the GPL. J.-P. Demailly thus puts under the GPLv3 all code developped by him in the last twelve years - that's probably more than 30% of the total amount of code, and the program as a whole should thus be considered as GPLv3. All related utilities ('ppmtops', C scripts, etc) are also put under the GPLv3. 2009-10-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.3 released. * Included 2 patches from Mandriva packagement experts, fixing some minor compilation problems and potential security issues. * xpaintrw/readWritePS.c : xpaint is now able to display TeX, LaTeX, PDF and SVG files using image conversion from external ad hoc programs. Option -dpi <dpi value> can be used to adjust size of image. 2009-10-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.2 released. * pattern.c : found and fixed two long standing segfault bugs (fortunately occurring only in not so frequent circumstances) * Set default gridcolor to grey80 on TrueColor displays, a less intrusive color than black. 2009-09-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.1 released. * Introduced rectangular (not just square) snap grids. Color of grid can be changed to arbitrary color. * graphic.c : corrected segfault bug in simplemenu switcher (selector popup). 2009-09-27 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.0 released. * Menu popups have been entirely reworked. Their behaviour is now more fluid - and similar to the default behaviour of modern toolkits like GTK/qt - so users should feel less disturbed. (this required numerous changes in menu.c and app-defaults) * Fixed size handling of Canvas windows under maximize/unmaximize procedures. * Stability should be considerably improved. Some memory leaks have been removed as well. * Added new command line options: -undosize <num> (set undo memory limit) -operation <num> (start with operation <num> set in tool panel) -filter <file> (define filter by using <file> as C-script) -proc <file> (define procedure by using <file> as C-script) * Added support for using menu popups in C script filters See share/c_scripts/filters/clean.c for an example. This means that C script filters can involve adjustable parameters which can be easily changed (i.e. without needing a recompilation each time the parameters are changed.) * Added support for using menu popups in C script procedures See share/c_scripts/procedures/proc_with_params.c for an example * iprocess.c, xpaintrw/readScriptC.c : added support for running batch jobs (for mass processing of images, using xpaint as the engine); see share/c_scripts/batch/batch.c share/bin/imgmerge * Added batch script 'imgmerge' which uses xpaint to convert and concatenate image files into a single PDF file. This also makes use of Peter Szabo's 'pdfconcat' program (GPL, included). * Added support for OCR (with the ocrad engine by default) The OCR engine(s) can be specified in the bash script /usr/share/xpaint/c_scripts/bin/xpaint_ocr This means that xpaint can be easily used as a GUI for command line OCR engines ('xpaint_ocr' makes use of the 'xless' pager, by default, but any other pager/editor can be used instead). * brushOp.c: system wide brushes are no longer hardwired, and can now be configured from the SHAREDIR directory. * Added additional brushes provided by John David Gray <kahdgarxi@gmail.com> which are useful to draw electronic circuitry. Also included a patch of him introducing three new patterns and extending the drawVisibleGrid() routine in Paint.c * Fixed (and improved as well) behaviour of snap and grid routines, also using ideas of JD Gray. * Changed rotations to use trigonometric positive rotation rather than clockwise. This was too unnatural to me ! * Numerous bug fixes. Thanks to Mattis Michel <sic_zer0@hotmail.com> for correcting a bug in the snap routines and for providing further improvements; Mattis noticed - and urged correction - of a critical bug in the "Load clipboard" procedure; he also suggested putting WM hints on minimal size of widgets so as to avoid random crashes under wild resizing of the windows. * Updated the man page - which had actually been neglected for a couple of years ...
2023-01-22 18:41:52 +01:00
share/xpaint/c_scripts/images/alpha_test.c
share/xpaint/c_scripts/images/rgb_test.c
share/xpaint/c_scripts/layers/combine.c
xpaint: update to release 3.1.4, using wip/xpaint. Packaged in wip by @adam + a couple of changes by @vins Changes (since version 2.7.8) 2021-08-14 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.4 * arcOp.c : the DrawArc procedure now checks that the arc is not drawn with a zero linewidth - otherwise some pixels could have been missing, and any later fill area procedure could then have led to unexpected results. This minor bug (or misbehavior?) has been fixed. * image.c : if installed, dvipng can now be used as an alternative to the libdvipgm library, at the expense of a small slowdown in the output. This allows TeX input even without libdvipgm installed, dvipng being installable independently. 2021-02-12 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.3 * graphic.c : the "Text" menu has been substantially improved. Text and TeX/LaTeX input of arbitrary length, size, color can now be edited and converted to either a bitmap image or vector PostScript/PDF with embedded fonts. * More extensive testing - and a lot of small details fixed 2021-01-28 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.2 * Small improvement of versions 3.1.0, 3.1.1 with bug fixes. Xpaint can now be compiled without dvipgm (at the expense of losing some TeX functionality). Thanks to testers for feedback! * This version supports the use of layers (files *.lxp = Layered XPaint files). This is done via the C script editor. Any collection of images can be combined into a new merged image by a suitable C procedure. See example in directory share/c_scripts/templates/ * Compiling against libkpathsea and libdvipgm (from the dvipgm-1.x.tar.bz2 package, x >= 2) is needed to enable TeX input processing - otherwise the compilation scripts will disable TeX input. A minimal TeX environment is also needed to allow TeX interaction. * xpaintrw/readLXP.c : routines for reading LXP files * iprocess.c : routines for the creation of LXP files * image.c : ImageDup() procedure added * operation.c : new option for cleaning temporary files * This version has reached all capabilities that had been planned since a long time: layer handling, vector graphics operations, possibility of TeX input and of mathematical drawings, programmatic creation of images, filters and graphical functions. Therefore Xpaint will probably enter into maintainance and bug correction mode. 2021-01-27 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.1 * Small improvement of version 3.1.0 with bug fixes. * This version supports the use of layers (files *.lxp = Layered XPaint files). This is done via the C script editor. Any collection of images can be combined into a new merged image by a suitable C procedure. See example in directory share/c_scripts/templates/ * Compiling against libkpathsea and libdvipgm (from the dvipgm-1.x.tar.bz2 package, x >= 2) is needed to enable TeX input processing - otherwise the compilation scripts will disable TeX input. A minimal TeX environment is also needed to allow TeX interaction. * xpaintrw/readLXP.c : routines for reading LXP files * iprocess.c : routines for the creation of LXP files * image.c : ImageDup() procedure added * operation.c : new option for cleaning temporary files * This version has reached all capabilities that had been planned since a long time: layer handling, vector graphics operations, possibility of TeX input and of mathematical drawings, programmatic creation of images, filters and graphical functions. Therefore Xpaint will probably enter into maintainance and bug correction mode. 2021-01-24 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.0 * This version now supports the use of layers (files *.lxp = Layered XPaint files). This is done via the C script editor. Any collection of images can be combined into a new merged image by a suitable C procedure. See example in directory share/c_scripts/templates/ * Compiling against libkpathsea and libdvipgm (from the dvipgm-1.x.tar.bz2 package, x >= 2) is needed to enable TeX input processing - otherwise the compilation scripts will disable TeX input. A minimal TeX environment is also needed to allow TeX interaction. * xpaintrw/readLXP.c : routines for reading LXP files * iprocess.c : routines for the creation of LXP files * image.c : ImageDup() procedure added * operation.c : new option for cleaning temporary files * This version has reached all capabilities that had been planned since a long time: layer handling, vector graphics operations, possibility of TeX input and of mathematical drawings, programmatic creation of images, filters and graphical functions. Therefore Xpaint will probably enter into maintainance and bug correction mode ... 2021-01-21 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.5 * Vector drawing capabilities improved and hopefully almost complete. * Xpaint now allows the use of TeX input in mathematical drawings, provided it is compiled with the compilation flag -DHAVE_DVIPGM. The libdvipgm and libkpathsea libraries are required for this. * The new 'vxp2tex' utility converts VXP data into a TeX file that can be used with pdftex or pdflatex. * lineOp.c : ticks and graduation procedure added. * graphic.c, image.c, iprocess.c : several fixes and improvements. 2021-01-09 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.4 * This version has acquired substantial vector drawing capabilities. Just open 'Options->VXP vector data Editor' to enable vector drawing operations. Most of them are recorded in a plain text "VXP format" *.vxp. The external program 'vxp2ps' converts these data into (vector) postscript, and 'vxp2dkw' can be used to convert them for use in in the handwritten note editor deskwrite. Such Postscript files can be easily converted to PDF or SVG. * Xpaint can also read and rasterize *.vxp files (but at this point all operations that are not translated right away into vector data are ignored, even though they are recorded in the VXP file). * graphic.c, operation.c, misc.c, iprocess.c : extensive additions to implement VXP data processing. * share/c_scripts/procedures : canvas+vxp.c added as a new example. C scripts can be used to produce VXP data. 2020-08-04 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.3 * This version of xpaint requires in principle libXaw3dXft-1.6.2h (but would run with 1.6.2d,e by removing the compilation flag -DHAVE_NEWEDITINGSTYLE) * graphic.c: a new option has been introduced, allowing xpaint to use more easily graphics tablets, more specifically the user space drivers provided with deskwrite on Sourceforge. * menu.c: SetFocusOn() has been fixed. This allows the input focus to be preserved in active text fields, even when the cursor leaves the top parent window (as is usually expected with modern desktop interface guidelines ...) * iprocess.c: small improvement of the Gamma/RGB filter. * Further small fixes throughout, especially in the build scripts and the debian packaging. 2020-06-29 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.2 * This version of xpaint requires libXaw3dXft-1.6.2h (or later versions of the libXaw3dxft library - the changes between 'f', 'g' and 'h' merely consist of introducing a new parameter to allow scrollbars of text widgets to be on the right side, plus some minor improvements in the edition process) Removing -DHAVE_NEWEDITINGSTYLE in Makefile.am would make xpaint compatible with earlier versions 1.6.2d,e of libxaw3dxft with essentially no change, except for the text input editing behavior of Backspace and Delete keys. * xpaintrw/readWritePNM.c: is now using a more recent version of libnetpbm, rather than the completely obsolete version from the 1990's that was embedded in the original code of xpaint. One consequence is that libnetpbm10-dev or preferably libnetpbm11-dev are now needed to compile xpaint, another one is that PPM/PAM files with an alpha channel can now be read and written. Adjust the NETPBM defines (-DNETPBM10 or -DNETPBM11) according to the installed version of libnetpbm. * help.c: the help widget now has two independently resizable panes (topics and explanations). * pattern.c: correction of old bug (that had however no visible effect before 3.0.1). * graphic.c: exchange of primary and secondary colors or patterns is now accessible by clicking on the red cross below the color picker (shown as an eye). Similar addition for pattern.c 2020-06-16 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.1 * This version of xpaint requires libXaw3dXft-1.6.2f (or later versions of the libXaw3dxft library). Removing -DHAVE_NEWEDITINGSTYLE in Makefile.am would make it compatible with earlier versions 1.6.2d,e with essentially no change except for the text input editing behavior of Backspace and Delete keys. * print.c: by default, xpaint no longer depends on cups-bsd commands, (but they can be re-enabled via an adjutsment of the app-defaults files). * xpaintrw/readWritePS.c: the BoundingBox of a file saved as PS/PDF should now be set appropriately. * graphic.c, *Op.c: extensive additions. Xpaint can now record all operations that are performed as vector data, in the so called VXP format. The recording starts as soon as the VXP editor under the Options menu is started, and these data can be saved into a file <name>.vxp * readWriteJP2K.c: has been ported to work with openjpeg version 2 (JPEG2000 format), including alpha channel. * Various other small fixes throughout (SVG import, ...) * At a later stage, it will be possible to convert these VXP files to other vector formats such as eps, pdf or svg, and import them back to xpaint. There will be also an option to insert TeX input and convert the data into a (La)TeX file. 2020-05-25 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.0 * bitmaps/toolicons: new set of icons, generated from SVG data. * app_defaults: the app_defaults files have been reorganized so as to separate linguistic strings and other data, especially widget sizes. Three sizes are now offered: big, medium, small, to accommodate HiDPI screens or low resolution screens. * operation.c: the tool window is now fully resizable. In order to actually change the size of icons, users can copy /usr/share/xpaint/bitmaps/toolicons/ into $HOME/.xpaint/toolicons/ and generate icons with larger or smaller size there. Just type ./generate_icons <height> in $HOME/.xpaint/toolicons/ to produce a new set of icons with the given height (the xpaint package is distributed with icons of default height 36). The shell script "generate_icons" requires inkscape to work. * graphic.c: the parameter btnheight is now used to resize the palette elements as well as the height of buttons. This is useful for HiDPI screens (as well as for lower resolution screens of older computers). * main.c: new option -blind that keeps xpaint running under the hood when batch procedures are invoked. * xpaintrw/readWritePS.c: SVG import has been updated to work with inkscape-1.0. * The change of major number in this version anticipates the introduction of some vector graphics capabilities in the versions 3.x.y to come. (Right now, the only vector graphics capabilities are PS, PDF, SVG import). 2020-05-21 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 2.10.3 * lineOp.c : under the "segment" operation, users will now find new "Position" and "Measurement" tools. These tools do not draw anything, but instead they record the locations of pixels that are clicked on, and compute lengths and angles. * iprocess.c : The "Perspective" filter has been vastly improved. It should now enable users to correct the perspective of a distorted picture taken by a camera, or to create artificial perspective when producing a drawing. This can be used in connection with the new "Position" tool, so as to specify points on the canvas. * iprocess.c : The API of C scripts introduces a new public procedure PixelInterpolate(unsigned char *op, Image *input, double x, double y) that can be used to smooth pixels, under transformations that map integer coordinates into float values (as is the case e.g. for rotations or homotheties with arbitrary factor). This will sometimes improve the output of such operations (but may also make the image fuzzier). * Two new C scripts "similarity.c" and "projective.c" have been added. They show in particular how to exploit the PixelInterpolate() procedure. * Help and message files have been edited to explain details of the new functionalities. 2017-11-13 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 2.10.2 * Minor compilation fixes in iprocess.c and xpaintrw/readWriteJP2K.c thanks to the OpenSUSE team. * Bug in operation.c : exitPaint(...) could trigger a segfault when quitting xpaint without saving the canvas. Thanks to Anthony J. Bentley from the OpenBSD team for reporting the bug. * misc.h : srandom() is nowadays always of void type. * Minor fixes for the calculation of the maximum canvas size. 2016-12-10 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 2.10.1 (a substantial update!). * Xpaint includes a new command line option -btnheight that adjusts appropriately the size of all internal widgets in case a big menu font is used (e.g. by setting the option -menufont , or by changing the app-defaults file). This is very useful if you have a high resolution screen. Many small local modifications of various source files in the main tree have been necessary for this. * A new option -toolmode 0,1,2 can be used to initialize the display of the tool window. Also adjustable dynamically by resizing that window. * Default canvas size has been set to 1024x768 Related command line options are -canvassize and -winsize that can be used independently to adjust the default size of canvas and main window. * The app-defaults files and help files have been modified to accommodate the above additions. * The "Print" widget has been improved, and its menubar is now again available to adjust page formats (a bug introduced probably a long time ago prevented it to work !) * A newer version libXaw3dXft-1.6.2e.tar.bz2 has been posted. The only change is a 3 lines addition that circumvents (what seems to be) a bug occurring in certain X11/Xorg implementations, e.g. the intel driver, version 2.99.917. Otherwise this will make no difference. * Changed the library name librw to libxpaintrw to avoid shared library conflicts. Thanks to Michael Orlitzky for pointing out the issue. * Applied a number of patches from gentoo.org that substantially improve the compilation process. Thanks to Julian Ospald <hasufell@gentoo.org> 2015-01-02 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10.3 * Port to the newer libXaw3dXft-1.6.2d.tar.bz2 (the latter is actually a requirement, this version no longer compiles with libXaw3dXft-1.6.2c). The point is that libXaw3dXft-1.6.2d has improved binary compatibility with plain libXaw3d-1.6.x * Only further cosmetic changes, no change in functionality. 2014-04-17 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10.2 * Minor fixes in 'configure.ac' and 'configure.old' scripts Xpaint can now be compiled again with plain Xaw or Xaw3d (this is NOT recommended, Xaw3dxft definitely gives much better results !) Thanks to Stefan Husmann (Arch Linux) for helpful reports in this respect. * 'configure' (based on autotools) and 'configure.old' (based on imake) should in most cases give essentially equivalent binaries. * PDF files are now read by using mudraw if mupdf & mupdf-tools are installed (otherwise Xpaint falls back to the formerly used solution: pdf2ps + ghostscript, a much slower one...) * Xpaint can now even import libreoffice files as images as soon as libreoffice is installed (assuming /usr/bin/libreoffice is a valid path to the main program) 2014-04-09 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10.1 * Includes the "version_and_focus_patch_for_2.9.10" and other minor fixes. * The alpha channel menu now includes a new function that allows editing as RGB values the image that appears when transparency is applied on a background of the selected background color - white being the default (this removes the transparency levels afterwards, so as to get a pure RGB image). * Bug (probably very old) corrected : selection of background color always resulted in black being chosen ! 2014-03-03 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10 * This version should preferably be compiled with libXaw3dXft-1.6.2c, although it still works Ok with libXaw3dXft-1.6.2b. * readWritePNG.c: fixed bug occurring when writing grayscale images possessing no more than 16 colors. * readWriteJPEG.c: JPEG images in CMYK colorspace are now handled properly (they will still be memorized as RGB, so the original CMYK information is lost, but at least they are shown correctly). * fileBrowser.c: "Save" and "Save as" menus now include the option to adjust JPEG quality between 50% and 100% (default is 90%) * fileBrowser.c: improved logic : the file browser now remembers file names when changing directories, and also takes into account default extension when specifying file format. * fileBrowser.c: thanks to a new feature from libXaw3dXft-1.6.2c (possibility of creating colored lists), xpaint now implements file type coloring in its file browser - at this point this is guessed merely from the suffix of the file. * operation.c: Canvas menu reorganized - it is now named "File menu" so as to conform to general use. Except from reordering the items, the main functionality is unchanged. * pattern.c: bug fixes. A segfault problem in the zoom selector has been corrected, and contextual help has been fixed. 2013-01-27 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.9.4 * This version should be compiled with libXaw3dXft-1.6.2b * RGB channel separation procedure fixed and improved * Fix in CRC data handling of regions in memory. * XPaint now remembers better the position of regions saved in memory. The recorded position can now be changed or reset to origin through the memory management menu. * compilation fix for pgf2pnm with newer libpgf-6.12.24 * Avoid "bool" variable throughout, as this is a typedef in <stdbool.h> * Fixes to configure scripts, thanks to Daniel Macks (fink project) * Minor GUI improvements 2012-02-14 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.9 * Xpaint now uses (or tries to use!) autotools. * libxaw3dxft is now a separate package (but is still a requirement, and in fact should be installed before). * xpaintrw/rwTable.c : segfault fix (occurring randomly) fixed in readMagic(). * minor fix in fontSelect.c, certain fonts were possibly missing in the font browser, in some rare circumstances. * very minor fix of scrollbar behaviour in graphic.c. * misc.c : new procedure SetWMInputHint() that helps solving some quirks. 2012-01-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8.4 * minor fixes in fileBrowser.c (adjustable height of text entry for the file name, resize procedure improved). 2011-10-13 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8.3 * xpaintrw/pgf-util/Makefile : add '-fpermissive' flag to allow compilation with recent (more picky!) versions of g++ * Xaw3dxft/Viewport.c : position of scrollbars can now be adjusted through parameters sbShift[X,Y][1,2]. No public API change, so this addition should be upward compatible. * graphic.c : some small fixes in the shellHandler routine to accommodate odd behavior of scrollbars with xorg recent versions, using the new sbShift feature. 2010-12-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8.2 - nothing really new, just very small fixes * Integrated patch to facilitate compilation with gcc-4.5 * app-defaults files : slight improvement of X event management in pull-down menus. * print.c : slight improvement of X event management in print widget. * fontOp.c : fixed color issue (color not initialized) when moving written text with arrow keys. * Very small changes in Xaw3dxft (minor Xaw3dXft.h API update) 2010-11-08 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8 * Xaw3dxft : code clean-up. New files Xaw3dXft.h and Xaw3dXft.c now contain the specific Xaw3dxft parameters and routines. A couple of small improvements to correct minor quirks in the menu entry highlighting behaviour. * main.c, graphic.c : changes made to accommodate the API changes introduced in Xaw3dxft. Further code clean-up. * image.h, graphic.c, iprocess.c : modified definition of the imageprocessinfo struct, so that hopefully compilation still works with gcc 4.5 (gcc-4.5 appears to be more picky with struct definitions). Thanks to Fedora maintainer Paulo Roma Cavalcanti <promac@gmail.com> for reporting the issue. 2010-11-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.7 * Arrow keys and "Backspace", "Return", "Escape" keys can now be used in all drawing operations whose effect is not immediate, especially all routines from arcOp.c, lineOp.c, polygonOp.c, freehandOp.c, splineOp.c, TextOp.c Arrow keys allow moving objects around before they are completely drawn, "Escape" restarts the operation from scratch, "Return" terminates the operation, and "Backspace" rewinds the course of operation backwards. * freehandOp.c : this operation now allows to draw arbitrary combinations of freehand and polygonal shapes and should be easier to use or to modify interactively thanks to the key bindings. * sprayOp.c : minor code clean-up. * updated accordingly Help files. 2010-10-25 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6.4 A couple of small improvements in spline, polygon, text and color operations. * fontOp.c, splineOp.c, polygonOp.c : implemented "Backspace" key action, i.e. removing last point or last character; "Escape" now entirely restarts the operation from the beginning. Other small improvements (including correction of a potential segfault occurring in some strange circumstances...); polygonOp() code is now also much simpler and easier to read. * graphic.c : multiple clicks on any of the three color/pattern selection discs now switch primary and secondary colors/patterns. * updated accordingly Help files. 2010-10-08 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6.3 - minor bug fix release - nothing really serious. * ops.h : minor compilation issue fixed. * graphic.c : corrected segfault bug of RegionToRGBA channels (occurring only when alpha channel was to be saved.) * chroma.c : fixed minor scrolling issue in color variance scrollbars. * graphic.c : added new menu lines to proceed more easily to editing of alpha channels or images in memory. * updated accordingly Help files, messages and app-defaults files. 2010-09-26 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6.2 * print.c : printing was completely broken, as a result of using double values instead of float values. Reverted to float ! * chroma.c, color.c, magnifier.c, fontSelect.c : revert to float ! * iprocess.c : fixed bug occurring only in very rare circumstances (creation of image with an alpha channel, being edited and compiled on the fly through the embedded C-script editor) * graphic.c : small improvement in ModifyRGB (new routine to rescale gray levels linearly from given thresholds). 2010-09-14 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6 * xpaintrw/rwTable.c, xpaintrw/readWriteTGA.c : fixes in TGA format, so as to prevent that xpaint could hang on certain non TGA files. Make sure anyway that TGA is parsed as a last resort, since TGA is a strange format without signature. * image.c, iprocess.c, graphic.c : substantial improvements in filter routines : - Added new "Merge" filter : helpful to combine smoothly an image with the underlying canvas. Works according to 4 different modes - Added new "Distortion" filter which can be used to produce local deformations - Added powerful Floyd-Steinberg algorithm (color quantification enhanced with a diffusion process). - Replaced "ModifyRGB" by a generalized RGB transformation procedure with 7 different modes, including Gamma correction (with independent r_gamma, g_gamma, b_gamma parameters), and linear transform. - Fixed several shortcomings of "Normalize contrast" and "Emboss" routines; "Emboss" now has 2 parameters allowing linear correction. - Renamed "Tilt" as "Projective Transform" with several enhancements. - Renamed "ImageCopy" as "ImageCopyData" which says more accurately what it does. * graphic.c : Memory menu : management of R,G,B and alpha channels : - Added extraction of red, green, blue, alpha channels from region - Added merge procedure for those channels * msgedit.c : new utility which can be used to extract strings from the English version of "Messages" and combine them with a partially localized "Messages_XY" for any other language - useful as well to avoid discrepancies between languages! * Many updates to Message and Help files. 2010-09-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.5 * xpaintrw/readWritePNG.c : fixed WritePNG() for alpha channel images possessing less than 16 black and white colors, which xpaint tried to write in an incorrect PNG mode. * graphic.c : fixed segfault bug when invoking "Clone Canvas" procedure. * xaw3dxft : a few hacks to work around minor display bugs related to Xft anti-aliasing/composition effects on certain X servers (especially proprietary NVIDIA ...) * main.c : new command line options -tooltips, -notooltips * operation.c, graphic.c : implemented tooltips (they can be disabled from the tools/help menu). * man page and help files : updated. 2010-08-15 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.4 * xpaintrw/readWriteTGA.c : added support for TGA format (borrowed mostly from mtpaint project). * xpaintrw/rwTable.c : code clean-up. * Paint.c, PaintRegion.c : fixes for certain complex situations involving region selection with masks and alpha channel. (Segfault could occur in Fatbits editor under those circumstances). * graphic.c : Suppression of alpha channel could lead to segfault. 2010-08-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.3 * xpaintrw/readWriteICO.c : imported a lot of code from the 'icoutil' GPLed package. As a result, xpaint can now read most Windows ICO files, even those containing embedded compressed PNG/JPG images which icoutil cannot fully open. Support for ICO masks as alpha channel, and for writing single image ICO files. * xpaintrw/readWritePGF.c : PGF image format support improved, thanks to 'pgf2pnm' provided by Christoph Stamm <christoph.stamm@fhnw.ch> (creator of the PGF format). libpgf and libpgf-dev are needed only optionally to compile 'pgf2pnm', which then provides PGF support in xpaint. However, xpaint itself does not link with libpgf and does not need libpgf-dev to be compiled. The alpha channel of PGF images is fully supported. * graphic.c : improvements/bug fixes in the "Clone with Zoom" procedure. Now works for zooming/downscaling images, with/without interpolation, and for adjusting alpha channel as well. * graphic.c, PaintEvent.c : much more powerful implementation of the "Delimit region" procedure, according to six different options (connected/non connected/color range regions, or complements of such regions). * The help files have been updated to reflect all current functionality of XPaint (Spanish help additions should be revised by a native speaker !) 2010-07-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.2 * xpaintrw/*.c : huge code clean-up. Saving files now show up a warning when the image possesses an alpha channel, but the format chosen does not support it (completely or in part). Note: saving in PNG should almost always be a safe choice ... * xpaintrw/readWriteTIFF.c : support substantially improved, including alpha channel read/write. More exotic TIFF formats unsupported. * xpaintrw/readWriteBMP.c : many more BMP image format types are now supported, including full support for images with an alpha channel (read/write). * xpaintrw/readWritePNM.c : provisions made to include support for alpha channel in PNM (this is a specific extension of xpaint : an RGB image concatenated with a gray level image of the same size - and '\n' in between - is viewed as RGBA data). * xpaintrw/readWriteJP2K.c : added support for JPEG2000 image format. Either libopenjpeg (default) or libjasper (optionally) can be used. Full support for alpha channel (requires openJPEG from subversion at this point now, since "stable" version 1.3 has insufficient alpha channel implementation...). * xpaintrw/readWritePGF.c : added support for PGF image format. This requires libpgf and pgf to be installed (but xpaint does not need to be linked against libpgf, and its compilation does not require libpgf-dev files either.) * xpaintrw/readWriteSGI.c : repaired old dormant code to read run-length encoded SGI/Irix image files. Checked to work fine. * xpaintrw/readWriteICO.c : unsupported, very buggy code. Disabled at this point. Instead, use e.g. 'icoutil' to convert those files to PNG ... * dialog.c : very small fix providing UTF8 support in AlertBox window titles (and always raising warning windows). * configure : if libXaw3dxft is installed as a shared library, compilation is now set by default to use it, rather than linking statically xpaint to libXaw3dxf.a 2010-07-18 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.1.5 * graphic.c : added "*allowResize: False" in Canvas*pane*form to prevent annoying widget initialization on certain platforms * xpaintrw/readWritePS.c : small fixes to handle correctly PS/PDF files whose names contain quotes or blank characters. 2010-07-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.1.4 * fatBitsEdit.c, Paint.c , Paintregion.c : several fixes in handling of alpha channel in fatbits editor - some affecting alpha channel image bits. * app-defaults : change zoom labels to correct values xx:1 instead of 1:xx * graphic.c : prevent fatbits editor getting called undeservedly by GetNonDirtyCanvas() routine ; removing alpha channel now moves it to memory rather than destroying it right away. * xpaintrw/readWritePS.c : fix for compilation of TeX/LaTeX files being called from random directories. * minor fixes throughout - thanks to the SUSE-Packman maintainer Detlef Reichelt <detlef@die-mafia.de> for help. 2010-06-02 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.1 * Paint.c , Paintregion.c : fixes in alpha channel routines. * fatBitsEdit.c : many fixes in fatbits editor. Refresh button added * graphic.c : reload file procedure didn't reload alpha channel - this is now fixed. * fontOp.c : potential segfault corrected. * small other (mostly random) improvements. 2010-05-16 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.0 * graphic.c, Paint.c : big improvements in handling of alpha channel ; alpha management menu is now explicit from canvas menu bar. Support still not quite complete at this point (regions do not appear yet in alpha mode). Should come for 2.9.1... * Paint.c, PaintRegion.c : fixed segfault occurring when using region operations in fatbits editor (regression introduced already in 2.8.9 which remained unnoticed up to 2.8.19 ...) * fontOp.c, fontSelect.c : UTF8 support should now be essentially complete. * xpaintrw/readWritePNG.c : fixed bug when writing PNG_COLOR_TYPE_PALETTE images with less than 16 colors (those images were wrongly converted to gray palette...) * several other small fixes and improvements throughout. 2010-04-17 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.19.1 (mostly cosmetic changes) * fileBrowser.c : added "ongoing" mode in File Browser (widget no longer closes when opening an image, allowing to browse files continuously). Performed a substantial code clean-up as well. * operation.c, graphic.c : menu improvements; one can now open an image from any canvas window. * misc.c : added RaiseWindow() routine to comply better with ewmh specifications. XMapRaised() replaced by RaiseWindow() throughout. * "snapshot" replaced by "screenshot" throughout. 2010-04-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.19 * fileBrowser.c : fixed minor annoyance in "save" and "saveas" routines - name of file is now again remembered when a filename has already been set. * graphic.c : fixed bug in ToolSelection switcher; "font" menu replaced by more powerful "text" menu; new entry added to edit/write text from text editor embedded in font browser. * iprocess.c : fixed bug in filter "adjust RGB colors" * fontSelect.c, fontOp.c : text sample is now editable, and this text can be imported on canvases. This includes being able to set fonts, colors, linespacing (etc) as editable text. Any UTF8 encoded file can be read and edited, and a small number of special commands are available to format such texts; for hints on how to use this, see "Doc/TextFormat.doc". Xpaint can thus be used as a text editor (sort of!), useful e.g. to create posters with text and graphics. * xpaintrw/readWritePS.c : support for reading a file as "enriched text". * main.c : new command line options -textfont and -astext, the latter for opening files as enriched text. * share/bin/imgmerge : small tweak to use a static PageInfo struct, otherwise imgmerge would segfault (gcc bug ?) 2010-03-13 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.18 * Minor fixes (UTF8 names in windows, rare segfault when using external viewer) * xpaintrw/readWritePNG.c : xpaint now saves correctly gray images which have an alpha channel. * xpaintrw/rwTable.c : introduces auto-detect mode for writing files (image type is guessed from suffix of file name, and set to PNG as a fallback). * xaw3dxft : changed library name to libXaw3dxft to avoid interfering with regular libXaw3d. Added hooks in 'configure' to (possibly) install and compile it as a shared library. Corrected an issue in xaw3dxft/List.c which could sometimes lead to a fatal X error. * Added man pages for imgmerge and pngconcat (provided by Debian maintainer Josué Abarca) * Removed dependency on Xft.h in PaintP.h which had the unfortunate effect of breaking C-Script compilation, e.g. in imgmerge. 2010-03-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.17 * Xpaint is now fully UTF8 compliant. This has been done rather cheaply by linking statically with a modified xaw3d library which is UTF8 & Freetype aware. This also means that anti-aliasing is enabled in the menus and text widgets, and that the X core font protocol is no longer used anywhere. * By default, Xpaint no longer depends on external xaw/xaw3d/xaw3dg libraries as it is compiled with its own improved xaw3d clone; this only adds approximately 250 kB to the binary executable. * Xpaint can still be used with 8 bit encoding by specifying the command option 'xpaint -encoding 8'. However the resource files XPaint* Messages* Help* should then preferably be converted back to a 8bit locale, otherwise some strange characters will show up in the menus, at least in languages which use non ASCII characters. 2010-02-17 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.16.1 * fontSelect.c, misc.c : introduced clickFocusCallback which fixes keyboard focus in fontSelect and in color picker ascii text input widgets (problem occurred e.g. under KDE). Use 2.8.16 with xpaint-2.8.16-keyboard-input.patch. 2010-02-12 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.16 * graphic.c, fontOp.c, fontSelect.c : Xpaint now uses the Xft protocol to display fonts, so that (in particular) all TrueType fonts are available, and the corresponding glyphs are nicely anti-aliased without resorting to a use of sub-pixel resolution. Another benefit is the possibility of rotating text, or even applying arbitrary linear transformation (however, writing fonts with a pattern instead of a plain color is no longer possible directly - for this, one can use instead masks or a fill procedure). * xpaintrw/readWritePNG.c : applied small patch from Stefan Husmann (Arch Linux maintainer) to take care of API deprecation in newer versions libpng-1.4.x. 2010-02-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.15 * PaintRegion.c : finally found and corrected long standing bug which plagued iteration of filters and undo procedures. * fileBrowser.c : several GUI improvements. * xpaintrw/readWritePS.c : improved handling of BoundingBoxes. Fixed bug in the use of 'psselect' which was found on the Fedora bugzilla list (many thanks to Paulo Roma Cavalcanti <promac@superig.com.br> for analyzing the issue) 2010-01-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.14 * graphic.c : memory management simplified and improved; added CRC32 checksum control to avoid duplicates. * xpaintrw/readScript.c : fixed potential bug occurring in rare circumstances. * Various fixes in batch scripts 'imgmerge', 'batch.c' and 'xpaint_ocr' GPLv3 licence specified there. * Included new debian files released by Debian maintainer Josué Abarca * xpaint.man.in : corrected a ­ issue (thanks again to Josué Abarca) 2010-01-20 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.13 * Paint.c : corrected nasty bug * graphic.c : GUI improvements. Border color of paint widget now indicates status of image (red: non editable, green: resize enabled, blue: has an alpha layer, black: otherwise). * image.c : ImagaToPixmap() et al modified so as to manage alpha channel mode once for all (rather than repeating this for each of the image loaders). 2010-01-18 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.12 * misc.c, graphic.c : some more fixes for alpha channel issues. 2010-01-17 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.11 * fileBrowser.c : browserResized() : included patch for accommodating bug in certain versions of the Xaw3d library * Paint.c : PwGetPixmap() modified so as to work independently of zoom value. Saving a file under zoom<1 now works !! * graphic.c : there is now support for adjusting join and cap style of lines being drawn. Fixed handling of memory box. * Code for alpha channel completed and made more robust (substantial changes in graphic.c, Paint.c, PaintRegion.c) 2010-01-10 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.10 * graphic.c : many GUI improvements. Some alpha channel fixes. (arbitrary linear transformation of alpha channel still not implemented). * lineOp.c : fixed arrow and vector drawing under zoom != 1 (were correctly written to pixmap but incorrectly shown on canvas). * fileBrowser.c : a few cosmetic changes to make code more robust. * xpaintrw/readWritePNG.c : fixed readPNG() for non transparent PNG images possessing a palette of colors. 2010-01-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.9 * polygonOp.c : segfault bug corrected. Polygonal regions can now be selected correctly under zoom values other than 1. * xpaint.h : various API modified to include alpha channel (in images, paint canvases, clipboard, memory stack...) * PaintUndo.c : implemented alpha channel in Undo stacks * PaintRegion.c, graphic.c : routines to set/show/edit the alpha channel are now implemented in a fairly complete manner. * readWritePNG.c : xpaint now saves a canvas with an alpha channel as a PNG file with a corresponding alpha channel. * readWriteXPM.c : xpaint now saves a canvas with an alpha channel as an XPM file with a "None" color (reduced to a 0/1 mask). (By default, alpha<128 is considered to be transparent and alpha>=128 to be opaque. The threshold value 128 can be changed from the options.) * readGIF.c : xpaint can now read alpha channel of GIF89 files possessing transparent pixels (setting transparent pixel in writeGIF.c not yet implemented). 2009-12-09 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.8 Interim release with partial support for transparent images; alpha channel is now correctly read when loading PNG and XPM images. Easier management and writing support will be implemented in 2.8.9. * xpaintrw/readGIF.c : xpaint will now open all frames of animated GIF images, and not just the first frame - support of this feature was already there, but had never been made accessible from the GUI ! * xpaintrw/readWritePNG.c : xpaint now detects PNG images possessing an alpha channel and loads them properly. The RGB values and alpha channels can be edited separately (but not yet mixed back easily). * xpaintrw/readLXP.c : preliminary implementation of layered xpaint image format LXP. File share/c_scripts/templates/script.c used as template. * pattern.c : new button introduced to modify background color (thus duplicating functionality from the separate background color widget). * fileBrowser.c : widget improved. Four new buttons added to get directly to home, root and current directory, and to show/hide dot files. The browser of loaded files now has buttons for editing C scripts and managing layers (implementation somehow works, but is not yet complete). * iprocess.c : corrected segfault bug occurring in certain circumstances, e.g. when loading recursive image C-scripts. In particular, "layer" example share/c_scripts/layers/combine.c now works again. 2009-11-18 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7.3 (very minor changes) * graphic.c : corrected very tiny bug in resizeCanvas() routine which resulted in occasional disappearance of Fatbits cursor, when the canvas was resized under certain zoom reduction values. * fatBitsEdit.c : added convenience routine FatbitsEditorDestroy(paint) (not yet used inline - could possibly be used from C scripts). * small addition in Local.config file 2009-11-15 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7.2 (very minor changes) * Further cosmetic fixes and code cleaning ; X error handler improved (just in case). * snapshot.c : taking a snapshot from the tools window now unmaps the window (so that any window stacked behind can be captured); spurious warning 'bad pixmap' from libX11 has been eliminated. 2009-11-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7.1 (released only as a patch to 2.8.7). * Further cosmetic improvements and code cleaning not really worth bothering (e.g. popup menus which, when users change their mind and no longer want to use them, may not immediately popdown as would be expected when clicking randomly outside, e.g. on the canvas ...) 2009-11-04 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7 released. * graphic.c, menu.c, PaintEvent.c : a substantial number of cosmetic changes made to further improve the menu behaviour. * fileName.c renamed as fileBrowser.c * fileBrowser.c : Some "flickering" issues in the browser have been corrected. The file browser of "loaded files" now include ad hoc fields and buttons for modifying the scaling of vector format images (PS/PDF/DVI/TeX/LaTeX/SVG) as well as for selecting a page in multi-page documents. Now, Xpaint can thus be used as a practical viewer for such documents - though for this purpose it's certainly not as fast and optimized as specialized viewers ... * readWritePS.c : multipage PostScript files require 'psselect' from the psutils package. (This is a very simple program so we may consider including it in the next version of xpaint to remove that dependency.) DVI files are now accepted, along with PS/PDF/TeX/LaTeX/SVG. * print.c : selecting PDF option now (really) saves file as PDF rather than PostScript. * Merged Changelog and (unmaintained) file Doc/CHANGES 2009-10-27 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.6.1 released. * bug fixes : main.c : xpaint did not accept setting default zoom < 100% through command line graphic.c : underestimated evaluation of canvas window size for large images, resulting in image not being fully displayed even when it could. PaintRegion.c : segfault bug occurring in certain circumstances when dragging a region outside viewport, in region transparency mode. 2009-10-26 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.6 released. * Extensive changes in many parts, to provide capability for zoom = 1/n, while performing all possible operations under such a zoom. This means that anti-aliasing can be obtained by using e.g. zoom = 1/3 and then cloning the canvas with the given reduction. * magnifier.c: Introduced a magnifying glass, based on code of 'xlupe' by Thomas Runge (runge@rostock.zgdv.de) * operation.c: menu now includes an item to open the magnifying glass, and a browser for all images which have been opened or loaded from the command line. * fileName.c : the buildBrowser() routine has been extended to have a mode ('type=4') showing the list of loaded images. * graphic.c: edit menu includes 2 items for cloning the canvas (with or without reduction) * a lot of bugs have been ironed out, e.g. a crash in the polygon selection area, and a very long-standing bug in the memory management of menu.c which used to cause (fortunately unfrequent) random crashes. 2009-10-16 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.5 released. * graphic.c, user visible changes : added a zoom button and a new toggle allowing to resize the canvas, using mouse or arrow keys. Several other related improvements have been made for zooming/resizing, along with a few minor fixes (the layer example "layer.c" compiles again without segfaulting.) 2009-10-13 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.4 released. * pattern.c : Fixed segfault bug in color/pattern budget, which occurred when creating new brushes. * print.c : added new toggle so as to possibly produce a compressed PS file, or send to printer a PDF file rather than a PS file. The annoying printing notification popup has been replaced by a less intrusive notification. Many other small improvements - e.g. output postcript file can be selected with a file browser. * xpaintrw/readWritePS.c : the PostScript generator has been considerably improved. XPaint is now capable of producing strongly compressed PostScript files, of weight increased hardly by more than 30%-35% when starting from a PNG file of the same resolution, and the process is faster than before - it seems that even gimp does not yet take care of this, its PS files can often be reduced to less than 50% of their current size (huge thanks to Peter Szabo for showing the way with his sam2p program.) A standalone 'ppmtops' utility has been included for potential re-use elsewhere. * Clarification of the licence. Xpaint is an old program, many parts of which were written at a time when the GPL was not so pervasive. To the best knowledge of the current maintainer, all parts where written under permissive licences which are compatible with the GPL. J.-P. Demailly thus puts under the GPLv3 all code developped by him in the last twelve years - that's probably more than 30% of the total amount of code, and the program as a whole should thus be considered as GPLv3. All related utilities ('ppmtops', C scripts, etc) are also put under the GPLv3. 2009-10-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.3 released. * Included 2 patches from Mandriva packagement experts, fixing some minor compilation problems and potential security issues. * xpaintrw/readWritePS.c : xpaint is now able to display TeX, LaTeX, PDF and SVG files using image conversion from external ad hoc programs. Option -dpi <dpi value> can be used to adjust size of image. 2009-10-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.2 released. * pattern.c : found and fixed two long standing segfault bugs (fortunately occurring only in not so frequent circumstances) * Set default gridcolor to grey80 on TrueColor displays, a less intrusive color than black. 2009-09-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.1 released. * Introduced rectangular (not just square) snap grids. Color of grid can be changed to arbitrary color. * graphic.c : corrected segfault bug in simplemenu switcher (selector popup). 2009-09-27 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.0 released. * Menu popups have been entirely reworked. Their behaviour is now more fluid - and similar to the default behaviour of modern toolkits like GTK/qt - so users should feel less disturbed. (this required numerous changes in menu.c and app-defaults) * Fixed size handling of Canvas windows under maximize/unmaximize procedures. * Stability should be considerably improved. Some memory leaks have been removed as well. * Added new command line options: -undosize <num> (set undo memory limit) -operation <num> (start with operation <num> set in tool panel) -filter <file> (define filter by using <file> as C-script) -proc <file> (define procedure by using <file> as C-script) * Added support for using menu popups in C script filters See share/c_scripts/filters/clean.c for an example. This means that C script filters can involve adjustable parameters which can be easily changed (i.e. without needing a recompilation each time the parameters are changed.) * Added support for using menu popups in C script procedures See share/c_scripts/procedures/proc_with_params.c for an example * iprocess.c, xpaintrw/readScriptC.c : added support for running batch jobs (for mass processing of images, using xpaint as the engine); see share/c_scripts/batch/batch.c share/bin/imgmerge * Added batch script 'imgmerge' which uses xpaint to convert and concatenate image files into a single PDF file. This also makes use of Peter Szabo's 'pdfconcat' program (GPL, included). * Added support for OCR (with the ocrad engine by default) The OCR engine(s) can be specified in the bash script /usr/share/xpaint/c_scripts/bin/xpaint_ocr This means that xpaint can be easily used as a GUI for command line OCR engines ('xpaint_ocr' makes use of the 'xless' pager, by default, but any other pager/editor can be used instead). * brushOp.c: system wide brushes are no longer hardwired, and can now be configured from the SHAREDIR directory. * Added additional brushes provided by John David Gray <kahdgarxi@gmail.com> which are useful to draw electronic circuitry. Also included a patch of him introducing three new patterns and extending the drawVisibleGrid() routine in Paint.c * Fixed (and improved as well) behaviour of snap and grid routines, also using ideas of JD Gray. * Changed rotations to use trigonometric positive rotation rather than clockwise. This was too unnatural to me ! * Numerous bug fixes. Thanks to Mattis Michel <sic_zer0@hotmail.com> for correcting a bug in the snap routines and for providing further improvements; Mattis noticed - and urged correction - of a critical bug in the "Load clipboard" procedure; he also suggested putting WM hints on minimal size of widgets so as to avoid random crashes under wild resizing of the windows. * Updated the man page - which had actually been neglected for a couple of years ...
2023-01-22 18:41:52 +01:00
share/xpaint/c_scripts/procedures/canvas+vxp.c
share/xpaint/c_scripts/procedures/proc_with_params.c
share/xpaint/c_scripts/procedures/setmemory.c
xpaint: update to release 3.1.4, using wip/xpaint. Packaged in wip by @adam + a couple of changes by @vins Changes (since version 2.7.8) 2021-08-14 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.4 * arcOp.c : the DrawArc procedure now checks that the arc is not drawn with a zero linewidth - otherwise some pixels could have been missing, and any later fill area procedure could then have led to unexpected results. This minor bug (or misbehavior?) has been fixed. * image.c : if installed, dvipng can now be used as an alternative to the libdvipgm library, at the expense of a small slowdown in the output. This allows TeX input even without libdvipgm installed, dvipng being installable independently. 2021-02-12 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.3 * graphic.c : the "Text" menu has been substantially improved. Text and TeX/LaTeX input of arbitrary length, size, color can now be edited and converted to either a bitmap image or vector PostScript/PDF with embedded fonts. * More extensive testing - and a lot of small details fixed 2021-01-28 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.2 * Small improvement of versions 3.1.0, 3.1.1 with bug fixes. Xpaint can now be compiled without dvipgm (at the expense of losing some TeX functionality). Thanks to testers for feedback! * This version supports the use of layers (files *.lxp = Layered XPaint files). This is done via the C script editor. Any collection of images can be combined into a new merged image by a suitable C procedure. See example in directory share/c_scripts/templates/ * Compiling against libkpathsea and libdvipgm (from the dvipgm-1.x.tar.bz2 package, x >= 2) is needed to enable TeX input processing - otherwise the compilation scripts will disable TeX input. A minimal TeX environment is also needed to allow TeX interaction. * xpaintrw/readLXP.c : routines for reading LXP files * iprocess.c : routines for the creation of LXP files * image.c : ImageDup() procedure added * operation.c : new option for cleaning temporary files * This version has reached all capabilities that had been planned since a long time: layer handling, vector graphics operations, possibility of TeX input and of mathematical drawings, programmatic creation of images, filters and graphical functions. Therefore Xpaint will probably enter into maintainance and bug correction mode. 2021-01-27 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.1 * Small improvement of version 3.1.0 with bug fixes. * This version supports the use of layers (files *.lxp = Layered XPaint files). This is done via the C script editor. Any collection of images can be combined into a new merged image by a suitable C procedure. See example in directory share/c_scripts/templates/ * Compiling against libkpathsea and libdvipgm (from the dvipgm-1.x.tar.bz2 package, x >= 2) is needed to enable TeX input processing - otherwise the compilation scripts will disable TeX input. A minimal TeX environment is also needed to allow TeX interaction. * xpaintrw/readLXP.c : routines for reading LXP files * iprocess.c : routines for the creation of LXP files * image.c : ImageDup() procedure added * operation.c : new option for cleaning temporary files * This version has reached all capabilities that had been planned since a long time: layer handling, vector graphics operations, possibility of TeX input and of mathematical drawings, programmatic creation of images, filters and graphical functions. Therefore Xpaint will probably enter into maintainance and bug correction mode. 2021-01-24 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.0 * This version now supports the use of layers (files *.lxp = Layered XPaint files). This is done via the C script editor. Any collection of images can be combined into a new merged image by a suitable C procedure. See example in directory share/c_scripts/templates/ * Compiling against libkpathsea and libdvipgm (from the dvipgm-1.x.tar.bz2 package, x >= 2) is needed to enable TeX input processing - otherwise the compilation scripts will disable TeX input. A minimal TeX environment is also needed to allow TeX interaction. * xpaintrw/readLXP.c : routines for reading LXP files * iprocess.c : routines for the creation of LXP files * image.c : ImageDup() procedure added * operation.c : new option for cleaning temporary files * This version has reached all capabilities that had been planned since a long time: layer handling, vector graphics operations, possibility of TeX input and of mathematical drawings, programmatic creation of images, filters and graphical functions. Therefore Xpaint will probably enter into maintainance and bug correction mode ... 2021-01-21 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.5 * Vector drawing capabilities improved and hopefully almost complete. * Xpaint now allows the use of TeX input in mathematical drawings, provided it is compiled with the compilation flag -DHAVE_DVIPGM. The libdvipgm and libkpathsea libraries are required for this. * The new 'vxp2tex' utility converts VXP data into a TeX file that can be used with pdftex or pdflatex. * lineOp.c : ticks and graduation procedure added. * graphic.c, image.c, iprocess.c : several fixes and improvements. 2021-01-09 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.4 * This version has acquired substantial vector drawing capabilities. Just open 'Options->VXP vector data Editor' to enable vector drawing operations. Most of them are recorded in a plain text "VXP format" *.vxp. The external program 'vxp2ps' converts these data into (vector) postscript, and 'vxp2dkw' can be used to convert them for use in in the handwritten note editor deskwrite. Such Postscript files can be easily converted to PDF or SVG. * Xpaint can also read and rasterize *.vxp files (but at this point all operations that are not translated right away into vector data are ignored, even though they are recorded in the VXP file). * graphic.c, operation.c, misc.c, iprocess.c : extensive additions to implement VXP data processing. * share/c_scripts/procedures : canvas+vxp.c added as a new example. C scripts can be used to produce VXP data. 2020-08-04 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.3 * This version of xpaint requires in principle libXaw3dXft-1.6.2h (but would run with 1.6.2d,e by removing the compilation flag -DHAVE_NEWEDITINGSTYLE) * graphic.c: a new option has been introduced, allowing xpaint to use more easily graphics tablets, more specifically the user space drivers provided with deskwrite on Sourceforge. * menu.c: SetFocusOn() has been fixed. This allows the input focus to be preserved in active text fields, even when the cursor leaves the top parent window (as is usually expected with modern desktop interface guidelines ...) * iprocess.c: small improvement of the Gamma/RGB filter. * Further small fixes throughout, especially in the build scripts and the debian packaging. 2020-06-29 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.2 * This version of xpaint requires libXaw3dXft-1.6.2h (or later versions of the libXaw3dxft library - the changes between 'f', 'g' and 'h' merely consist of introducing a new parameter to allow scrollbars of text widgets to be on the right side, plus some minor improvements in the edition process) Removing -DHAVE_NEWEDITINGSTYLE in Makefile.am would make xpaint compatible with earlier versions 1.6.2d,e of libxaw3dxft with essentially no change, except for the text input editing behavior of Backspace and Delete keys. * xpaintrw/readWritePNM.c: is now using a more recent version of libnetpbm, rather than the completely obsolete version from the 1990's that was embedded in the original code of xpaint. One consequence is that libnetpbm10-dev or preferably libnetpbm11-dev are now needed to compile xpaint, another one is that PPM/PAM files with an alpha channel can now be read and written. Adjust the NETPBM defines (-DNETPBM10 or -DNETPBM11) according to the installed version of libnetpbm. * help.c: the help widget now has two independently resizable panes (topics and explanations). * pattern.c: correction of old bug (that had however no visible effect before 3.0.1). * graphic.c: exchange of primary and secondary colors or patterns is now accessible by clicking on the red cross below the color picker (shown as an eye). Similar addition for pattern.c 2020-06-16 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.1 * This version of xpaint requires libXaw3dXft-1.6.2f (or later versions of the libXaw3dxft library). Removing -DHAVE_NEWEDITINGSTYLE in Makefile.am would make it compatible with earlier versions 1.6.2d,e with essentially no change except for the text input editing behavior of Backspace and Delete keys. * print.c: by default, xpaint no longer depends on cups-bsd commands, (but they can be re-enabled via an adjutsment of the app-defaults files). * xpaintrw/readWritePS.c: the BoundingBox of a file saved as PS/PDF should now be set appropriately. * graphic.c, *Op.c: extensive additions. Xpaint can now record all operations that are performed as vector data, in the so called VXP format. The recording starts as soon as the VXP editor under the Options menu is started, and these data can be saved into a file <name>.vxp * readWriteJP2K.c: has been ported to work with openjpeg version 2 (JPEG2000 format), including alpha channel. * Various other small fixes throughout (SVG import, ...) * At a later stage, it will be possible to convert these VXP files to other vector formats such as eps, pdf or svg, and import them back to xpaint. There will be also an option to insert TeX input and convert the data into a (La)TeX file. 2020-05-25 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.0 * bitmaps/toolicons: new set of icons, generated from SVG data. * app_defaults: the app_defaults files have been reorganized so as to separate linguistic strings and other data, especially widget sizes. Three sizes are now offered: big, medium, small, to accommodate HiDPI screens or low resolution screens. * operation.c: the tool window is now fully resizable. In order to actually change the size of icons, users can copy /usr/share/xpaint/bitmaps/toolicons/ into $HOME/.xpaint/toolicons/ and generate icons with larger or smaller size there. Just type ./generate_icons <height> in $HOME/.xpaint/toolicons/ to produce a new set of icons with the given height (the xpaint package is distributed with icons of default height 36). The shell script "generate_icons" requires inkscape to work. * graphic.c: the parameter btnheight is now used to resize the palette elements as well as the height of buttons. This is useful for HiDPI screens (as well as for lower resolution screens of older computers). * main.c: new option -blind that keeps xpaint running under the hood when batch procedures are invoked. * xpaintrw/readWritePS.c: SVG import has been updated to work with inkscape-1.0. * The change of major number in this version anticipates the introduction of some vector graphics capabilities in the versions 3.x.y to come. (Right now, the only vector graphics capabilities are PS, PDF, SVG import). 2020-05-21 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 2.10.3 * lineOp.c : under the "segment" operation, users will now find new "Position" and "Measurement" tools. These tools do not draw anything, but instead they record the locations of pixels that are clicked on, and compute lengths and angles. * iprocess.c : The "Perspective" filter has been vastly improved. It should now enable users to correct the perspective of a distorted picture taken by a camera, or to create artificial perspective when producing a drawing. This can be used in connection with the new "Position" tool, so as to specify points on the canvas. * iprocess.c : The API of C scripts introduces a new public procedure PixelInterpolate(unsigned char *op, Image *input, double x, double y) that can be used to smooth pixels, under transformations that map integer coordinates into float values (as is the case e.g. for rotations or homotheties with arbitrary factor). This will sometimes improve the output of such operations (but may also make the image fuzzier). * Two new C scripts "similarity.c" and "projective.c" have been added. They show in particular how to exploit the PixelInterpolate() procedure. * Help and message files have been edited to explain details of the new functionalities. 2017-11-13 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 2.10.2 * Minor compilation fixes in iprocess.c and xpaintrw/readWriteJP2K.c thanks to the OpenSUSE team. * Bug in operation.c : exitPaint(...) could trigger a segfault when quitting xpaint without saving the canvas. Thanks to Anthony J. Bentley from the OpenBSD team for reporting the bug. * misc.h : srandom() is nowadays always of void type. * Minor fixes for the calculation of the maximum canvas size. 2016-12-10 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 2.10.1 (a substantial update!). * Xpaint includes a new command line option -btnheight that adjusts appropriately the size of all internal widgets in case a big menu font is used (e.g. by setting the option -menufont , or by changing the app-defaults file). This is very useful if you have a high resolution screen. Many small local modifications of various source files in the main tree have been necessary for this. * A new option -toolmode 0,1,2 can be used to initialize the display of the tool window. Also adjustable dynamically by resizing that window. * Default canvas size has been set to 1024x768 Related command line options are -canvassize and -winsize that can be used independently to adjust the default size of canvas and main window. * The app-defaults files and help files have been modified to accommodate the above additions. * The "Print" widget has been improved, and its menubar is now again available to adjust page formats (a bug introduced probably a long time ago prevented it to work !) * A newer version libXaw3dXft-1.6.2e.tar.bz2 has been posted. The only change is a 3 lines addition that circumvents (what seems to be) a bug occurring in certain X11/Xorg implementations, e.g. the intel driver, version 2.99.917. Otherwise this will make no difference. * Changed the library name librw to libxpaintrw to avoid shared library conflicts. Thanks to Michael Orlitzky for pointing out the issue. * Applied a number of patches from gentoo.org that substantially improve the compilation process. Thanks to Julian Ospald <hasufell@gentoo.org> 2015-01-02 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10.3 * Port to the newer libXaw3dXft-1.6.2d.tar.bz2 (the latter is actually a requirement, this version no longer compiles with libXaw3dXft-1.6.2c). The point is that libXaw3dXft-1.6.2d has improved binary compatibility with plain libXaw3d-1.6.x * Only further cosmetic changes, no change in functionality. 2014-04-17 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10.2 * Minor fixes in 'configure.ac' and 'configure.old' scripts Xpaint can now be compiled again with plain Xaw or Xaw3d (this is NOT recommended, Xaw3dxft definitely gives much better results !) Thanks to Stefan Husmann (Arch Linux) for helpful reports in this respect. * 'configure' (based on autotools) and 'configure.old' (based on imake) should in most cases give essentially equivalent binaries. * PDF files are now read by using mudraw if mupdf & mupdf-tools are installed (otherwise Xpaint falls back to the formerly used solution: pdf2ps + ghostscript, a much slower one...) * Xpaint can now even import libreoffice files as images as soon as libreoffice is installed (assuming /usr/bin/libreoffice is a valid path to the main program) 2014-04-09 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10.1 * Includes the "version_and_focus_patch_for_2.9.10" and other minor fixes. * The alpha channel menu now includes a new function that allows editing as RGB values the image that appears when transparency is applied on a background of the selected background color - white being the default (this removes the transparency levels afterwards, so as to get a pure RGB image). * Bug (probably very old) corrected : selection of background color always resulted in black being chosen ! 2014-03-03 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10 * This version should preferably be compiled with libXaw3dXft-1.6.2c, although it still works Ok with libXaw3dXft-1.6.2b. * readWritePNG.c: fixed bug occurring when writing grayscale images possessing no more than 16 colors. * readWriteJPEG.c: JPEG images in CMYK colorspace are now handled properly (they will still be memorized as RGB, so the original CMYK information is lost, but at least they are shown correctly). * fileBrowser.c: "Save" and "Save as" menus now include the option to adjust JPEG quality between 50% and 100% (default is 90%) * fileBrowser.c: improved logic : the file browser now remembers file names when changing directories, and also takes into account default extension when specifying file format. * fileBrowser.c: thanks to a new feature from libXaw3dXft-1.6.2c (possibility of creating colored lists), xpaint now implements file type coloring in its file browser - at this point this is guessed merely from the suffix of the file. * operation.c: Canvas menu reorganized - it is now named "File menu" so as to conform to general use. Except from reordering the items, the main functionality is unchanged. * pattern.c: bug fixes. A segfault problem in the zoom selector has been corrected, and contextual help has been fixed. 2013-01-27 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.9.4 * This version should be compiled with libXaw3dXft-1.6.2b * RGB channel separation procedure fixed and improved * Fix in CRC data handling of regions in memory. * XPaint now remembers better the position of regions saved in memory. The recorded position can now be changed or reset to origin through the memory management menu. * compilation fix for pgf2pnm with newer libpgf-6.12.24 * Avoid "bool" variable throughout, as this is a typedef in <stdbool.h> * Fixes to configure scripts, thanks to Daniel Macks (fink project) * Minor GUI improvements 2012-02-14 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.9 * Xpaint now uses (or tries to use!) autotools. * libxaw3dxft is now a separate package (but is still a requirement, and in fact should be installed before). * xpaintrw/rwTable.c : segfault fix (occurring randomly) fixed in readMagic(). * minor fix in fontSelect.c, certain fonts were possibly missing in the font browser, in some rare circumstances. * very minor fix of scrollbar behaviour in graphic.c. * misc.c : new procedure SetWMInputHint() that helps solving some quirks. 2012-01-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8.4 * minor fixes in fileBrowser.c (adjustable height of text entry for the file name, resize procedure improved). 2011-10-13 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8.3 * xpaintrw/pgf-util/Makefile : add '-fpermissive' flag to allow compilation with recent (more picky!) versions of g++ * Xaw3dxft/Viewport.c : position of scrollbars can now be adjusted through parameters sbShift[X,Y][1,2]. No public API change, so this addition should be upward compatible. * graphic.c : some small fixes in the shellHandler routine to accommodate odd behavior of scrollbars with xorg recent versions, using the new sbShift feature. 2010-12-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8.2 - nothing really new, just very small fixes * Integrated patch to facilitate compilation with gcc-4.5 * app-defaults files : slight improvement of X event management in pull-down menus. * print.c : slight improvement of X event management in print widget. * fontOp.c : fixed color issue (color not initialized) when moving written text with arrow keys. * Very small changes in Xaw3dxft (minor Xaw3dXft.h API update) 2010-11-08 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8 * Xaw3dxft : code clean-up. New files Xaw3dXft.h and Xaw3dXft.c now contain the specific Xaw3dxft parameters and routines. A couple of small improvements to correct minor quirks in the menu entry highlighting behaviour. * main.c, graphic.c : changes made to accommodate the API changes introduced in Xaw3dxft. Further code clean-up. * image.h, graphic.c, iprocess.c : modified definition of the imageprocessinfo struct, so that hopefully compilation still works with gcc 4.5 (gcc-4.5 appears to be more picky with struct definitions). Thanks to Fedora maintainer Paulo Roma Cavalcanti <promac@gmail.com> for reporting the issue. 2010-11-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.7 * Arrow keys and "Backspace", "Return", "Escape" keys can now be used in all drawing operations whose effect is not immediate, especially all routines from arcOp.c, lineOp.c, polygonOp.c, freehandOp.c, splineOp.c, TextOp.c Arrow keys allow moving objects around before they are completely drawn, "Escape" restarts the operation from scratch, "Return" terminates the operation, and "Backspace" rewinds the course of operation backwards. * freehandOp.c : this operation now allows to draw arbitrary combinations of freehand and polygonal shapes and should be easier to use or to modify interactively thanks to the key bindings. * sprayOp.c : minor code clean-up. * updated accordingly Help files. 2010-10-25 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6.4 A couple of small improvements in spline, polygon, text and color operations. * fontOp.c, splineOp.c, polygonOp.c : implemented "Backspace" key action, i.e. removing last point or last character; "Escape" now entirely restarts the operation from the beginning. Other small improvements (including correction of a potential segfault occurring in some strange circumstances...); polygonOp() code is now also much simpler and easier to read. * graphic.c : multiple clicks on any of the three color/pattern selection discs now switch primary and secondary colors/patterns. * updated accordingly Help files. 2010-10-08 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6.3 - minor bug fix release - nothing really serious. * ops.h : minor compilation issue fixed. * graphic.c : corrected segfault bug of RegionToRGBA channels (occurring only when alpha channel was to be saved.) * chroma.c : fixed minor scrolling issue in color variance scrollbars. * graphic.c : added new menu lines to proceed more easily to editing of alpha channels or images in memory. * updated accordingly Help files, messages and app-defaults files. 2010-09-26 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6.2 * print.c : printing was completely broken, as a result of using double values instead of float values. Reverted to float ! * chroma.c, color.c, magnifier.c, fontSelect.c : revert to float ! * iprocess.c : fixed bug occurring only in very rare circumstances (creation of image with an alpha channel, being edited and compiled on the fly through the embedded C-script editor) * graphic.c : small improvement in ModifyRGB (new routine to rescale gray levels linearly from given thresholds). 2010-09-14 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6 * xpaintrw/rwTable.c, xpaintrw/readWriteTGA.c : fixes in TGA format, so as to prevent that xpaint could hang on certain non TGA files. Make sure anyway that TGA is parsed as a last resort, since TGA is a strange format without signature. * image.c, iprocess.c, graphic.c : substantial improvements in filter routines : - Added new "Merge" filter : helpful to combine smoothly an image with the underlying canvas. Works according to 4 different modes - Added new "Distortion" filter which can be used to produce local deformations - Added powerful Floyd-Steinberg algorithm (color quantification enhanced with a diffusion process). - Replaced "ModifyRGB" by a generalized RGB transformation procedure with 7 different modes, including Gamma correction (with independent r_gamma, g_gamma, b_gamma parameters), and linear transform. - Fixed several shortcomings of "Normalize contrast" and "Emboss" routines; "Emboss" now has 2 parameters allowing linear correction. - Renamed "Tilt" as "Projective Transform" with several enhancements. - Renamed "ImageCopy" as "ImageCopyData" which says more accurately what it does. * graphic.c : Memory menu : management of R,G,B and alpha channels : - Added extraction of red, green, blue, alpha channels from region - Added merge procedure for those channels * msgedit.c : new utility which can be used to extract strings from the English version of "Messages" and combine them with a partially localized "Messages_XY" for any other language - useful as well to avoid discrepancies between languages! * Many updates to Message and Help files. 2010-09-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.5 * xpaintrw/readWritePNG.c : fixed WritePNG() for alpha channel images possessing less than 16 black and white colors, which xpaint tried to write in an incorrect PNG mode. * graphic.c : fixed segfault bug when invoking "Clone Canvas" procedure. * xaw3dxft : a few hacks to work around minor display bugs related to Xft anti-aliasing/composition effects on certain X servers (especially proprietary NVIDIA ...) * main.c : new command line options -tooltips, -notooltips * operation.c, graphic.c : implemented tooltips (they can be disabled from the tools/help menu). * man page and help files : updated. 2010-08-15 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.4 * xpaintrw/readWriteTGA.c : added support for TGA format (borrowed mostly from mtpaint project). * xpaintrw/rwTable.c : code clean-up. * Paint.c, PaintRegion.c : fixes for certain complex situations involving region selection with masks and alpha channel. (Segfault could occur in Fatbits editor under those circumstances). * graphic.c : Suppression of alpha channel could lead to segfault. 2010-08-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.3 * xpaintrw/readWriteICO.c : imported a lot of code from the 'icoutil' GPLed package. As a result, xpaint can now read most Windows ICO files, even those containing embedded compressed PNG/JPG images which icoutil cannot fully open. Support for ICO masks as alpha channel, and for writing single image ICO files. * xpaintrw/readWritePGF.c : PGF image format support improved, thanks to 'pgf2pnm' provided by Christoph Stamm <christoph.stamm@fhnw.ch> (creator of the PGF format). libpgf and libpgf-dev are needed only optionally to compile 'pgf2pnm', which then provides PGF support in xpaint. However, xpaint itself does not link with libpgf and does not need libpgf-dev to be compiled. The alpha channel of PGF images is fully supported. * graphic.c : improvements/bug fixes in the "Clone with Zoom" procedure. Now works for zooming/downscaling images, with/without interpolation, and for adjusting alpha channel as well. * graphic.c, PaintEvent.c : much more powerful implementation of the "Delimit region" procedure, according to six different options (connected/non connected/color range regions, or complements of such regions). * The help files have been updated to reflect all current functionality of XPaint (Spanish help additions should be revised by a native speaker !) 2010-07-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.2 * xpaintrw/*.c : huge code clean-up. Saving files now show up a warning when the image possesses an alpha channel, but the format chosen does not support it (completely or in part). Note: saving in PNG should almost always be a safe choice ... * xpaintrw/readWriteTIFF.c : support substantially improved, including alpha channel read/write. More exotic TIFF formats unsupported. * xpaintrw/readWriteBMP.c : many more BMP image format types are now supported, including full support for images with an alpha channel (read/write). * xpaintrw/readWritePNM.c : provisions made to include support for alpha channel in PNM (this is a specific extension of xpaint : an RGB image concatenated with a gray level image of the same size - and '\n' in between - is viewed as RGBA data). * xpaintrw/readWriteJP2K.c : added support for JPEG2000 image format. Either libopenjpeg (default) or libjasper (optionally) can be used. Full support for alpha channel (requires openJPEG from subversion at this point now, since "stable" version 1.3 has insufficient alpha channel implementation...). * xpaintrw/readWritePGF.c : added support for PGF image format. This requires libpgf and pgf to be installed (but xpaint does not need to be linked against libpgf, and its compilation does not require libpgf-dev files either.) * xpaintrw/readWriteSGI.c : repaired old dormant code to read run-length encoded SGI/Irix image files. Checked to work fine. * xpaintrw/readWriteICO.c : unsupported, very buggy code. Disabled at this point. Instead, use e.g. 'icoutil' to convert those files to PNG ... * dialog.c : very small fix providing UTF8 support in AlertBox window titles (and always raising warning windows). * configure : if libXaw3dxft is installed as a shared library, compilation is now set by default to use it, rather than linking statically xpaint to libXaw3dxf.a 2010-07-18 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.1.5 * graphic.c : added "*allowResize: False" in Canvas*pane*form to prevent annoying widget initialization on certain platforms * xpaintrw/readWritePS.c : small fixes to handle correctly PS/PDF files whose names contain quotes or blank characters. 2010-07-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.1.4 * fatBitsEdit.c, Paint.c , Paintregion.c : several fixes in handling of alpha channel in fatbits editor - some affecting alpha channel image bits. * app-defaults : change zoom labels to correct values xx:1 instead of 1:xx * graphic.c : prevent fatbits editor getting called undeservedly by GetNonDirtyCanvas() routine ; removing alpha channel now moves it to memory rather than destroying it right away. * xpaintrw/readWritePS.c : fix for compilation of TeX/LaTeX files being called from random directories. * minor fixes throughout - thanks to the SUSE-Packman maintainer Detlef Reichelt <detlef@die-mafia.de> for help. 2010-06-02 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.1 * Paint.c , Paintregion.c : fixes in alpha channel routines. * fatBitsEdit.c : many fixes in fatbits editor. Refresh button added * graphic.c : reload file procedure didn't reload alpha channel - this is now fixed. * fontOp.c : potential segfault corrected. * small other (mostly random) improvements. 2010-05-16 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.0 * graphic.c, Paint.c : big improvements in handling of alpha channel ; alpha management menu is now explicit from canvas menu bar. Support still not quite complete at this point (regions do not appear yet in alpha mode). Should come for 2.9.1... * Paint.c, PaintRegion.c : fixed segfault occurring when using region operations in fatbits editor (regression introduced already in 2.8.9 which remained unnoticed up to 2.8.19 ...) * fontOp.c, fontSelect.c : UTF8 support should now be essentially complete. * xpaintrw/readWritePNG.c : fixed bug when writing PNG_COLOR_TYPE_PALETTE images with less than 16 colors (those images were wrongly converted to gray palette...) * several other small fixes and improvements throughout. 2010-04-17 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.19.1 (mostly cosmetic changes) * fileBrowser.c : added "ongoing" mode in File Browser (widget no longer closes when opening an image, allowing to browse files continuously). Performed a substantial code clean-up as well. * operation.c, graphic.c : menu improvements; one can now open an image from any canvas window. * misc.c : added RaiseWindow() routine to comply better with ewmh specifications. XMapRaised() replaced by RaiseWindow() throughout. * "snapshot" replaced by "screenshot" throughout. 2010-04-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.19 * fileBrowser.c : fixed minor annoyance in "save" and "saveas" routines - name of file is now again remembered when a filename has already been set. * graphic.c : fixed bug in ToolSelection switcher; "font" menu replaced by more powerful "text" menu; new entry added to edit/write text from text editor embedded in font browser. * iprocess.c : fixed bug in filter "adjust RGB colors" * fontSelect.c, fontOp.c : text sample is now editable, and this text can be imported on canvases. This includes being able to set fonts, colors, linespacing (etc) as editable text. Any UTF8 encoded file can be read and edited, and a small number of special commands are available to format such texts; for hints on how to use this, see "Doc/TextFormat.doc". Xpaint can thus be used as a text editor (sort of!), useful e.g. to create posters with text and graphics. * xpaintrw/readWritePS.c : support for reading a file as "enriched text". * main.c : new command line options -textfont and -astext, the latter for opening files as enriched text. * share/bin/imgmerge : small tweak to use a static PageInfo struct, otherwise imgmerge would segfault (gcc bug ?) 2010-03-13 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.18 * Minor fixes (UTF8 names in windows, rare segfault when using external viewer) * xpaintrw/readWritePNG.c : xpaint now saves correctly gray images which have an alpha channel. * xpaintrw/rwTable.c : introduces auto-detect mode for writing files (image type is guessed from suffix of file name, and set to PNG as a fallback). * xaw3dxft : changed library name to libXaw3dxft to avoid interfering with regular libXaw3d. Added hooks in 'configure' to (possibly) install and compile it as a shared library. Corrected an issue in xaw3dxft/List.c which could sometimes lead to a fatal X error. * Added man pages for imgmerge and pngconcat (provided by Debian maintainer Josué Abarca) * Removed dependency on Xft.h in PaintP.h which had the unfortunate effect of breaking C-Script compilation, e.g. in imgmerge. 2010-03-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.17 * Xpaint is now fully UTF8 compliant. This has been done rather cheaply by linking statically with a modified xaw3d library which is UTF8 & Freetype aware. This also means that anti-aliasing is enabled in the menus and text widgets, and that the X core font protocol is no longer used anywhere. * By default, Xpaint no longer depends on external xaw/xaw3d/xaw3dg libraries as it is compiled with its own improved xaw3d clone; this only adds approximately 250 kB to the binary executable. * Xpaint can still be used with 8 bit encoding by specifying the command option 'xpaint -encoding 8'. However the resource files XPaint* Messages* Help* should then preferably be converted back to a 8bit locale, otherwise some strange characters will show up in the menus, at least in languages which use non ASCII characters. 2010-02-17 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.16.1 * fontSelect.c, misc.c : introduced clickFocusCallback which fixes keyboard focus in fontSelect and in color picker ascii text input widgets (problem occurred e.g. under KDE). Use 2.8.16 with xpaint-2.8.16-keyboard-input.patch. 2010-02-12 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.16 * graphic.c, fontOp.c, fontSelect.c : Xpaint now uses the Xft protocol to display fonts, so that (in particular) all TrueType fonts are available, and the corresponding glyphs are nicely anti-aliased without resorting to a use of sub-pixel resolution. Another benefit is the possibility of rotating text, or even applying arbitrary linear transformation (however, writing fonts with a pattern instead of a plain color is no longer possible directly - for this, one can use instead masks or a fill procedure). * xpaintrw/readWritePNG.c : applied small patch from Stefan Husmann (Arch Linux maintainer) to take care of API deprecation in newer versions libpng-1.4.x. 2010-02-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.15 * PaintRegion.c : finally found and corrected long standing bug which plagued iteration of filters and undo procedures. * fileBrowser.c : several GUI improvements. * xpaintrw/readWritePS.c : improved handling of BoundingBoxes. Fixed bug in the use of 'psselect' which was found on the Fedora bugzilla list (many thanks to Paulo Roma Cavalcanti <promac@superig.com.br> for analyzing the issue) 2010-01-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.14 * graphic.c : memory management simplified and improved; added CRC32 checksum control to avoid duplicates. * xpaintrw/readScript.c : fixed potential bug occurring in rare circumstances. * Various fixes in batch scripts 'imgmerge', 'batch.c' and 'xpaint_ocr' GPLv3 licence specified there. * Included new debian files released by Debian maintainer Josué Abarca * xpaint.man.in : corrected a ­ issue (thanks again to Josué Abarca) 2010-01-20 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.13 * Paint.c : corrected nasty bug * graphic.c : GUI improvements. Border color of paint widget now indicates status of image (red: non editable, green: resize enabled, blue: has an alpha layer, black: otherwise). * image.c : ImagaToPixmap() et al modified so as to manage alpha channel mode once for all (rather than repeating this for each of the image loaders). 2010-01-18 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.12 * misc.c, graphic.c : some more fixes for alpha channel issues. 2010-01-17 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.11 * fileBrowser.c : browserResized() : included patch for accommodating bug in certain versions of the Xaw3d library * Paint.c : PwGetPixmap() modified so as to work independently of zoom value. Saving a file under zoom<1 now works !! * graphic.c : there is now support for adjusting join and cap style of lines being drawn. Fixed handling of memory box. * Code for alpha channel completed and made more robust (substantial changes in graphic.c, Paint.c, PaintRegion.c) 2010-01-10 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.10 * graphic.c : many GUI improvements. Some alpha channel fixes. (arbitrary linear transformation of alpha channel still not implemented). * lineOp.c : fixed arrow and vector drawing under zoom != 1 (were correctly written to pixmap but incorrectly shown on canvas). * fileBrowser.c : a few cosmetic changes to make code more robust. * xpaintrw/readWritePNG.c : fixed readPNG() for non transparent PNG images possessing a palette of colors. 2010-01-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.9 * polygonOp.c : segfault bug corrected. Polygonal regions can now be selected correctly under zoom values other than 1. * xpaint.h : various API modified to include alpha channel (in images, paint canvases, clipboard, memory stack...) * PaintUndo.c : implemented alpha channel in Undo stacks * PaintRegion.c, graphic.c : routines to set/show/edit the alpha channel are now implemented in a fairly complete manner. * readWritePNG.c : xpaint now saves a canvas with an alpha channel as a PNG file with a corresponding alpha channel. * readWriteXPM.c : xpaint now saves a canvas with an alpha channel as an XPM file with a "None" color (reduced to a 0/1 mask). (By default, alpha<128 is considered to be transparent and alpha>=128 to be opaque. The threshold value 128 can be changed from the options.) * readGIF.c : xpaint can now read alpha channel of GIF89 files possessing transparent pixels (setting transparent pixel in writeGIF.c not yet implemented). 2009-12-09 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.8 Interim release with partial support for transparent images; alpha channel is now correctly read when loading PNG and XPM images. Easier management and writing support will be implemented in 2.8.9. * xpaintrw/readGIF.c : xpaint will now open all frames of animated GIF images, and not just the first frame - support of this feature was already there, but had never been made accessible from the GUI ! * xpaintrw/readWritePNG.c : xpaint now detects PNG images possessing an alpha channel and loads them properly. The RGB values and alpha channels can be edited separately (but not yet mixed back easily). * xpaintrw/readLXP.c : preliminary implementation of layered xpaint image format LXP. File share/c_scripts/templates/script.c used as template. * pattern.c : new button introduced to modify background color (thus duplicating functionality from the separate background color widget). * fileBrowser.c : widget improved. Four new buttons added to get directly to home, root and current directory, and to show/hide dot files. The browser of loaded files now has buttons for editing C scripts and managing layers (implementation somehow works, but is not yet complete). * iprocess.c : corrected segfault bug occurring in certain circumstances, e.g. when loading recursive image C-scripts. In particular, "layer" example share/c_scripts/layers/combine.c now works again. 2009-11-18 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7.3 (very minor changes) * graphic.c : corrected very tiny bug in resizeCanvas() routine which resulted in occasional disappearance of Fatbits cursor, when the canvas was resized under certain zoom reduction values. * fatBitsEdit.c : added convenience routine FatbitsEditorDestroy(paint) (not yet used inline - could possibly be used from C scripts). * small addition in Local.config file 2009-11-15 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7.2 (very minor changes) * Further cosmetic fixes and code cleaning ; X error handler improved (just in case). * snapshot.c : taking a snapshot from the tools window now unmaps the window (so that any window stacked behind can be captured); spurious warning 'bad pixmap' from libX11 has been eliminated. 2009-11-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7.1 (released only as a patch to 2.8.7). * Further cosmetic improvements and code cleaning not really worth bothering (e.g. popup menus which, when users change their mind and no longer want to use them, may not immediately popdown as would be expected when clicking randomly outside, e.g. on the canvas ...) 2009-11-04 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7 released. * graphic.c, menu.c, PaintEvent.c : a substantial number of cosmetic changes made to further improve the menu behaviour. * fileName.c renamed as fileBrowser.c * fileBrowser.c : Some "flickering" issues in the browser have been corrected. The file browser of "loaded files" now include ad hoc fields and buttons for modifying the scaling of vector format images (PS/PDF/DVI/TeX/LaTeX/SVG) as well as for selecting a page in multi-page documents. Now, Xpaint can thus be used as a practical viewer for such documents - though for this purpose it's certainly not as fast and optimized as specialized viewers ... * readWritePS.c : multipage PostScript files require 'psselect' from the psutils package. (This is a very simple program so we may consider including it in the next version of xpaint to remove that dependency.) DVI files are now accepted, along with PS/PDF/TeX/LaTeX/SVG. * print.c : selecting PDF option now (really) saves file as PDF rather than PostScript. * Merged Changelog and (unmaintained) file Doc/CHANGES 2009-10-27 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.6.1 released. * bug fixes : main.c : xpaint did not accept setting default zoom < 100% through command line graphic.c : underestimated evaluation of canvas window size for large images, resulting in image not being fully displayed even when it could. PaintRegion.c : segfault bug occurring in certain circumstances when dragging a region outside viewport, in region transparency mode. 2009-10-26 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.6 released. * Extensive changes in many parts, to provide capability for zoom = 1/n, while performing all possible operations under such a zoom. This means that anti-aliasing can be obtained by using e.g. zoom = 1/3 and then cloning the canvas with the given reduction. * magnifier.c: Introduced a magnifying glass, based on code of 'xlupe' by Thomas Runge (runge@rostock.zgdv.de) * operation.c: menu now includes an item to open the magnifying glass, and a browser for all images which have been opened or loaded from the command line. * fileName.c : the buildBrowser() routine has been extended to have a mode ('type=4') showing the list of loaded images. * graphic.c: edit menu includes 2 items for cloning the canvas (with or without reduction) * a lot of bugs have been ironed out, e.g. a crash in the polygon selection area, and a very long-standing bug in the memory management of menu.c which used to cause (fortunately unfrequent) random crashes. 2009-10-16 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.5 released. * graphic.c, user visible changes : added a zoom button and a new toggle allowing to resize the canvas, using mouse or arrow keys. Several other related improvements have been made for zooming/resizing, along with a few minor fixes (the layer example "layer.c" compiles again without segfaulting.) 2009-10-13 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.4 released. * pattern.c : Fixed segfault bug in color/pattern budget, which occurred when creating new brushes. * print.c : added new toggle so as to possibly produce a compressed PS file, or send to printer a PDF file rather than a PS file. The annoying printing notification popup has been replaced by a less intrusive notification. Many other small improvements - e.g. output postcript file can be selected with a file browser. * xpaintrw/readWritePS.c : the PostScript generator has been considerably improved. XPaint is now capable of producing strongly compressed PostScript files, of weight increased hardly by more than 30%-35% when starting from a PNG file of the same resolution, and the process is faster than before - it seems that even gimp does not yet take care of this, its PS files can often be reduced to less than 50% of their current size (huge thanks to Peter Szabo for showing the way with his sam2p program.) A standalone 'ppmtops' utility has been included for potential re-use elsewhere. * Clarification of the licence. Xpaint is an old program, many parts of which were written at a time when the GPL was not so pervasive. To the best knowledge of the current maintainer, all parts where written under permissive licences which are compatible with the GPL. J.-P. Demailly thus puts under the GPLv3 all code developped by him in the last twelve years - that's probably more than 30% of the total amount of code, and the program as a whole should thus be considered as GPLv3. All related utilities ('ppmtops', C scripts, etc) are also put under the GPLv3. 2009-10-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.3 released. * Included 2 patches from Mandriva packagement experts, fixing some minor compilation problems and potential security issues. * xpaintrw/readWritePS.c : xpaint is now able to display TeX, LaTeX, PDF and SVG files using image conversion from external ad hoc programs. Option -dpi <dpi value> can be used to adjust size of image. 2009-10-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.2 released. * pattern.c : found and fixed two long standing segfault bugs (fortunately occurring only in not so frequent circumstances) * Set default gridcolor to grey80 on TrueColor displays, a less intrusive color than black. 2009-09-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.1 released. * Introduced rectangular (not just square) snap grids. Color of grid can be changed to arbitrary color. * graphic.c : corrected segfault bug in simplemenu switcher (selector popup). 2009-09-27 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.0 released. * Menu popups have been entirely reworked. Their behaviour is now more fluid - and similar to the default behaviour of modern toolkits like GTK/qt - so users should feel less disturbed. (this required numerous changes in menu.c and app-defaults) * Fixed size handling of Canvas windows under maximize/unmaximize procedures. * Stability should be considerably improved. Some memory leaks have been removed as well. * Added new command line options: -undosize <num> (set undo memory limit) -operation <num> (start with operation <num> set in tool panel) -filter <file> (define filter by using <file> as C-script) -proc <file> (define procedure by using <file> as C-script) * Added support for using menu popups in C script filters See share/c_scripts/filters/clean.c for an example. This means that C script filters can involve adjustable parameters which can be easily changed (i.e. without needing a recompilation each time the parameters are changed.) * Added support for using menu popups in C script procedures See share/c_scripts/procedures/proc_with_params.c for an example * iprocess.c, xpaintrw/readScriptC.c : added support for running batch jobs (for mass processing of images, using xpaint as the engine); see share/c_scripts/batch/batch.c share/bin/imgmerge * Added batch script 'imgmerge' which uses xpaint to convert and concatenate image files into a single PDF file. This also makes use of Peter Szabo's 'pdfconcat' program (GPL, included). * Added support for OCR (with the ocrad engine by default) The OCR engine(s) can be specified in the bash script /usr/share/xpaint/c_scripts/bin/xpaint_ocr This means that xpaint can be easily used as a GUI for command line OCR engines ('xpaint_ocr' makes use of the 'xless' pager, by default, but any other pager/editor can be used instead). * brushOp.c: system wide brushes are no longer hardwired, and can now be configured from the SHAREDIR directory. * Added additional brushes provided by John David Gray <kahdgarxi@gmail.com> which are useful to draw electronic circuitry. Also included a patch of him introducing three new patterns and extending the drawVisibleGrid() routine in Paint.c * Fixed (and improved as well) behaviour of snap and grid routines, also using ideas of JD Gray. * Changed rotations to use trigonometric positive rotation rather than clockwise. This was too unnatural to me ! * Numerous bug fixes. Thanks to Mattis Michel <sic_zer0@hotmail.com> for correcting a bug in the snap routines and for providing further improvements; Mattis noticed - and urged correction - of a critical bug in the "Load clipboard" procedure; he also suggested putting WM hints on minimal size of widgets so as to avoid random crashes under wild resizing of the windows. * Updated the man page - which had actually been neglected for a couple of years ...
2023-01-22 18:41:52 +01:00
share/xpaint/c_scripts/templates/bird.png
share/xpaint/c_scripts/templates/cat.jpg
share/xpaint/c_scripts/templates/script.c
share/xpaint/help/Help
share/xpaint/help/Help_es
share/xpaint/help/Help_fr
share/xpaint/include/Colormap.h
share/xpaint/include/ColormapP.h
share/xpaint/include/DefaultRC.txt.h
share/xpaint/include/Paint.h
share/xpaint/include/PaintP.h
share/xpaint/include/XPaint.ad.h
share/xpaint/include/Xpaint.h
share/xpaint/include/Xpaint3d.h
xpaint: update to release 3.1.4, using wip/xpaint. Packaged in wip by @adam + a couple of changes by @vins Changes (since version 2.7.8) 2021-08-14 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.4 * arcOp.c : the DrawArc procedure now checks that the arc is not drawn with a zero linewidth - otherwise some pixels could have been missing, and any later fill area procedure could then have led to unexpected results. This minor bug (or misbehavior?) has been fixed. * image.c : if installed, dvipng can now be used as an alternative to the libdvipgm library, at the expense of a small slowdown in the output. This allows TeX input even without libdvipgm installed, dvipng being installable independently. 2021-02-12 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.3 * graphic.c : the "Text" menu has been substantially improved. Text and TeX/LaTeX input of arbitrary length, size, color can now be edited and converted to either a bitmap image or vector PostScript/PDF with embedded fonts. * More extensive testing - and a lot of small details fixed 2021-01-28 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.2 * Small improvement of versions 3.1.0, 3.1.1 with bug fixes. Xpaint can now be compiled without dvipgm (at the expense of losing some TeX functionality). Thanks to testers for feedback! * This version supports the use of layers (files *.lxp = Layered XPaint files). This is done via the C script editor. Any collection of images can be combined into a new merged image by a suitable C procedure. See example in directory share/c_scripts/templates/ * Compiling against libkpathsea and libdvipgm (from the dvipgm-1.x.tar.bz2 package, x >= 2) is needed to enable TeX input processing - otherwise the compilation scripts will disable TeX input. A minimal TeX environment is also needed to allow TeX interaction. * xpaintrw/readLXP.c : routines for reading LXP files * iprocess.c : routines for the creation of LXP files * image.c : ImageDup() procedure added * operation.c : new option for cleaning temporary files * This version has reached all capabilities that had been planned since a long time: layer handling, vector graphics operations, possibility of TeX input and of mathematical drawings, programmatic creation of images, filters and graphical functions. Therefore Xpaint will probably enter into maintainance and bug correction mode. 2021-01-27 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.1 * Small improvement of version 3.1.0 with bug fixes. * This version supports the use of layers (files *.lxp = Layered XPaint files). This is done via the C script editor. Any collection of images can be combined into a new merged image by a suitable C procedure. See example in directory share/c_scripts/templates/ * Compiling against libkpathsea and libdvipgm (from the dvipgm-1.x.tar.bz2 package, x >= 2) is needed to enable TeX input processing - otherwise the compilation scripts will disable TeX input. A minimal TeX environment is also needed to allow TeX interaction. * xpaintrw/readLXP.c : routines for reading LXP files * iprocess.c : routines for the creation of LXP files * image.c : ImageDup() procedure added * operation.c : new option for cleaning temporary files * This version has reached all capabilities that had been planned since a long time: layer handling, vector graphics operations, possibility of TeX input and of mathematical drawings, programmatic creation of images, filters and graphical functions. Therefore Xpaint will probably enter into maintainance and bug correction mode. 2021-01-24 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.0 * This version now supports the use of layers (files *.lxp = Layered XPaint files). This is done via the C script editor. Any collection of images can be combined into a new merged image by a suitable C procedure. See example in directory share/c_scripts/templates/ * Compiling against libkpathsea and libdvipgm (from the dvipgm-1.x.tar.bz2 package, x >= 2) is needed to enable TeX input processing - otherwise the compilation scripts will disable TeX input. A minimal TeX environment is also needed to allow TeX interaction. * xpaintrw/readLXP.c : routines for reading LXP files * iprocess.c : routines for the creation of LXP files * image.c : ImageDup() procedure added * operation.c : new option for cleaning temporary files * This version has reached all capabilities that had been planned since a long time: layer handling, vector graphics operations, possibility of TeX input and of mathematical drawings, programmatic creation of images, filters and graphical functions. Therefore Xpaint will probably enter into maintainance and bug correction mode ... 2021-01-21 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.5 * Vector drawing capabilities improved and hopefully almost complete. * Xpaint now allows the use of TeX input in mathematical drawings, provided it is compiled with the compilation flag -DHAVE_DVIPGM. The libdvipgm and libkpathsea libraries are required for this. * The new 'vxp2tex' utility converts VXP data into a TeX file that can be used with pdftex or pdflatex. * lineOp.c : ticks and graduation procedure added. * graphic.c, image.c, iprocess.c : several fixes and improvements. 2021-01-09 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.4 * This version has acquired substantial vector drawing capabilities. Just open 'Options->VXP vector data Editor' to enable vector drawing operations. Most of them are recorded in a plain text "VXP format" *.vxp. The external program 'vxp2ps' converts these data into (vector) postscript, and 'vxp2dkw' can be used to convert them for use in in the handwritten note editor deskwrite. Such Postscript files can be easily converted to PDF or SVG. * Xpaint can also read and rasterize *.vxp files (but at this point all operations that are not translated right away into vector data are ignored, even though they are recorded in the VXP file). * graphic.c, operation.c, misc.c, iprocess.c : extensive additions to implement VXP data processing. * share/c_scripts/procedures : canvas+vxp.c added as a new example. C scripts can be used to produce VXP data. 2020-08-04 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.3 * This version of xpaint requires in principle libXaw3dXft-1.6.2h (but would run with 1.6.2d,e by removing the compilation flag -DHAVE_NEWEDITINGSTYLE) * graphic.c: a new option has been introduced, allowing xpaint to use more easily graphics tablets, more specifically the user space drivers provided with deskwrite on Sourceforge. * menu.c: SetFocusOn() has been fixed. This allows the input focus to be preserved in active text fields, even when the cursor leaves the top parent window (as is usually expected with modern desktop interface guidelines ...) * iprocess.c: small improvement of the Gamma/RGB filter. * Further small fixes throughout, especially in the build scripts and the debian packaging. 2020-06-29 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.2 * This version of xpaint requires libXaw3dXft-1.6.2h (or later versions of the libXaw3dxft library - the changes between 'f', 'g' and 'h' merely consist of introducing a new parameter to allow scrollbars of text widgets to be on the right side, plus some minor improvements in the edition process) Removing -DHAVE_NEWEDITINGSTYLE in Makefile.am would make xpaint compatible with earlier versions 1.6.2d,e of libxaw3dxft with essentially no change, except for the text input editing behavior of Backspace and Delete keys. * xpaintrw/readWritePNM.c: is now using a more recent version of libnetpbm, rather than the completely obsolete version from the 1990's that was embedded in the original code of xpaint. One consequence is that libnetpbm10-dev or preferably libnetpbm11-dev are now needed to compile xpaint, another one is that PPM/PAM files with an alpha channel can now be read and written. Adjust the NETPBM defines (-DNETPBM10 or -DNETPBM11) according to the installed version of libnetpbm. * help.c: the help widget now has two independently resizable panes (topics and explanations). * pattern.c: correction of old bug (that had however no visible effect before 3.0.1). * graphic.c: exchange of primary and secondary colors or patterns is now accessible by clicking on the red cross below the color picker (shown as an eye). Similar addition for pattern.c 2020-06-16 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.1 * This version of xpaint requires libXaw3dXft-1.6.2f (or later versions of the libXaw3dxft library). Removing -DHAVE_NEWEDITINGSTYLE in Makefile.am would make it compatible with earlier versions 1.6.2d,e with essentially no change except for the text input editing behavior of Backspace and Delete keys. * print.c: by default, xpaint no longer depends on cups-bsd commands, (but they can be re-enabled via an adjutsment of the app-defaults files). * xpaintrw/readWritePS.c: the BoundingBox of a file saved as PS/PDF should now be set appropriately. * graphic.c, *Op.c: extensive additions. Xpaint can now record all operations that are performed as vector data, in the so called VXP format. The recording starts as soon as the VXP editor under the Options menu is started, and these data can be saved into a file <name>.vxp * readWriteJP2K.c: has been ported to work with openjpeg version 2 (JPEG2000 format), including alpha channel. * Various other small fixes throughout (SVG import, ...) * At a later stage, it will be possible to convert these VXP files to other vector formats such as eps, pdf or svg, and import them back to xpaint. There will be also an option to insert TeX input and convert the data into a (La)TeX file. 2020-05-25 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.0 * bitmaps/toolicons: new set of icons, generated from SVG data. * app_defaults: the app_defaults files have been reorganized so as to separate linguistic strings and other data, especially widget sizes. Three sizes are now offered: big, medium, small, to accommodate HiDPI screens or low resolution screens. * operation.c: the tool window is now fully resizable. In order to actually change the size of icons, users can copy /usr/share/xpaint/bitmaps/toolicons/ into $HOME/.xpaint/toolicons/ and generate icons with larger or smaller size there. Just type ./generate_icons <height> in $HOME/.xpaint/toolicons/ to produce a new set of icons with the given height (the xpaint package is distributed with icons of default height 36). The shell script "generate_icons" requires inkscape to work. * graphic.c: the parameter btnheight is now used to resize the palette elements as well as the height of buttons. This is useful for HiDPI screens (as well as for lower resolution screens of older computers). * main.c: new option -blind that keeps xpaint running under the hood when batch procedures are invoked. * xpaintrw/readWritePS.c: SVG import has been updated to work with inkscape-1.0. * The change of major number in this version anticipates the introduction of some vector graphics capabilities in the versions 3.x.y to come. (Right now, the only vector graphics capabilities are PS, PDF, SVG import). 2020-05-21 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 2.10.3 * lineOp.c : under the "segment" operation, users will now find new "Position" and "Measurement" tools. These tools do not draw anything, but instead they record the locations of pixels that are clicked on, and compute lengths and angles. * iprocess.c : The "Perspective" filter has been vastly improved. It should now enable users to correct the perspective of a distorted picture taken by a camera, or to create artificial perspective when producing a drawing. This can be used in connection with the new "Position" tool, so as to specify points on the canvas. * iprocess.c : The API of C scripts introduces a new public procedure PixelInterpolate(unsigned char *op, Image *input, double x, double y) that can be used to smooth pixels, under transformations that map integer coordinates into float values (as is the case e.g. for rotations or homotheties with arbitrary factor). This will sometimes improve the output of such operations (but may also make the image fuzzier). * Two new C scripts "similarity.c" and "projective.c" have been added. They show in particular how to exploit the PixelInterpolate() procedure. * Help and message files have been edited to explain details of the new functionalities. 2017-11-13 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 2.10.2 * Minor compilation fixes in iprocess.c and xpaintrw/readWriteJP2K.c thanks to the OpenSUSE team. * Bug in operation.c : exitPaint(...) could trigger a segfault when quitting xpaint without saving the canvas. Thanks to Anthony J. Bentley from the OpenBSD team for reporting the bug. * misc.h : srandom() is nowadays always of void type. * Minor fixes for the calculation of the maximum canvas size. 2016-12-10 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 2.10.1 (a substantial update!). * Xpaint includes a new command line option -btnheight that adjusts appropriately the size of all internal widgets in case a big menu font is used (e.g. by setting the option -menufont , or by changing the app-defaults file). This is very useful if you have a high resolution screen. Many small local modifications of various source files in the main tree have been necessary for this. * A new option -toolmode 0,1,2 can be used to initialize the display of the tool window. Also adjustable dynamically by resizing that window. * Default canvas size has been set to 1024x768 Related command line options are -canvassize and -winsize that can be used independently to adjust the default size of canvas and main window. * The app-defaults files and help files have been modified to accommodate the above additions. * The "Print" widget has been improved, and its menubar is now again available to adjust page formats (a bug introduced probably a long time ago prevented it to work !) * A newer version libXaw3dXft-1.6.2e.tar.bz2 has been posted. The only change is a 3 lines addition that circumvents (what seems to be) a bug occurring in certain X11/Xorg implementations, e.g. the intel driver, version 2.99.917. Otherwise this will make no difference. * Changed the library name librw to libxpaintrw to avoid shared library conflicts. Thanks to Michael Orlitzky for pointing out the issue. * Applied a number of patches from gentoo.org that substantially improve the compilation process. Thanks to Julian Ospald <hasufell@gentoo.org> 2015-01-02 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10.3 * Port to the newer libXaw3dXft-1.6.2d.tar.bz2 (the latter is actually a requirement, this version no longer compiles with libXaw3dXft-1.6.2c). The point is that libXaw3dXft-1.6.2d has improved binary compatibility with plain libXaw3d-1.6.x * Only further cosmetic changes, no change in functionality. 2014-04-17 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10.2 * Minor fixes in 'configure.ac' and 'configure.old' scripts Xpaint can now be compiled again with plain Xaw or Xaw3d (this is NOT recommended, Xaw3dxft definitely gives much better results !) Thanks to Stefan Husmann (Arch Linux) for helpful reports in this respect. * 'configure' (based on autotools) and 'configure.old' (based on imake) should in most cases give essentially equivalent binaries. * PDF files are now read by using mudraw if mupdf & mupdf-tools are installed (otherwise Xpaint falls back to the formerly used solution: pdf2ps + ghostscript, a much slower one...) * Xpaint can now even import libreoffice files as images as soon as libreoffice is installed (assuming /usr/bin/libreoffice is a valid path to the main program) 2014-04-09 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10.1 * Includes the "version_and_focus_patch_for_2.9.10" and other minor fixes. * The alpha channel menu now includes a new function that allows editing as RGB values the image that appears when transparency is applied on a background of the selected background color - white being the default (this removes the transparency levels afterwards, so as to get a pure RGB image). * Bug (probably very old) corrected : selection of background color always resulted in black being chosen ! 2014-03-03 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10 * This version should preferably be compiled with libXaw3dXft-1.6.2c, although it still works Ok with libXaw3dXft-1.6.2b. * readWritePNG.c: fixed bug occurring when writing grayscale images possessing no more than 16 colors. * readWriteJPEG.c: JPEG images in CMYK colorspace are now handled properly (they will still be memorized as RGB, so the original CMYK information is lost, but at least they are shown correctly). * fileBrowser.c: "Save" and "Save as" menus now include the option to adjust JPEG quality between 50% and 100% (default is 90%) * fileBrowser.c: improved logic : the file browser now remembers file names when changing directories, and also takes into account default extension when specifying file format. * fileBrowser.c: thanks to a new feature from libXaw3dXft-1.6.2c (possibility of creating colored lists), xpaint now implements file type coloring in its file browser - at this point this is guessed merely from the suffix of the file. * operation.c: Canvas menu reorganized - it is now named "File menu" so as to conform to general use. Except from reordering the items, the main functionality is unchanged. * pattern.c: bug fixes. A segfault problem in the zoom selector has been corrected, and contextual help has been fixed. 2013-01-27 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.9.4 * This version should be compiled with libXaw3dXft-1.6.2b * RGB channel separation procedure fixed and improved * Fix in CRC data handling of regions in memory. * XPaint now remembers better the position of regions saved in memory. The recorded position can now be changed or reset to origin through the memory management menu. * compilation fix for pgf2pnm with newer libpgf-6.12.24 * Avoid "bool" variable throughout, as this is a typedef in <stdbool.h> * Fixes to configure scripts, thanks to Daniel Macks (fink project) * Minor GUI improvements 2012-02-14 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.9 * Xpaint now uses (or tries to use!) autotools. * libxaw3dxft is now a separate package (but is still a requirement, and in fact should be installed before). * xpaintrw/rwTable.c : segfault fix (occurring randomly) fixed in readMagic(). * minor fix in fontSelect.c, certain fonts were possibly missing in the font browser, in some rare circumstances. * very minor fix of scrollbar behaviour in graphic.c. * misc.c : new procedure SetWMInputHint() that helps solving some quirks. 2012-01-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8.4 * minor fixes in fileBrowser.c (adjustable height of text entry for the file name, resize procedure improved). 2011-10-13 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8.3 * xpaintrw/pgf-util/Makefile : add '-fpermissive' flag to allow compilation with recent (more picky!) versions of g++ * Xaw3dxft/Viewport.c : position of scrollbars can now be adjusted through parameters sbShift[X,Y][1,2]. No public API change, so this addition should be upward compatible. * graphic.c : some small fixes in the shellHandler routine to accommodate odd behavior of scrollbars with xorg recent versions, using the new sbShift feature. 2010-12-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8.2 - nothing really new, just very small fixes * Integrated patch to facilitate compilation with gcc-4.5 * app-defaults files : slight improvement of X event management in pull-down menus. * print.c : slight improvement of X event management in print widget. * fontOp.c : fixed color issue (color not initialized) when moving written text with arrow keys. * Very small changes in Xaw3dxft (minor Xaw3dXft.h API update) 2010-11-08 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8 * Xaw3dxft : code clean-up. New files Xaw3dXft.h and Xaw3dXft.c now contain the specific Xaw3dxft parameters and routines. A couple of small improvements to correct minor quirks in the menu entry highlighting behaviour. * main.c, graphic.c : changes made to accommodate the API changes introduced in Xaw3dxft. Further code clean-up. * image.h, graphic.c, iprocess.c : modified definition of the imageprocessinfo struct, so that hopefully compilation still works with gcc 4.5 (gcc-4.5 appears to be more picky with struct definitions). Thanks to Fedora maintainer Paulo Roma Cavalcanti <promac@gmail.com> for reporting the issue. 2010-11-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.7 * Arrow keys and "Backspace", "Return", "Escape" keys can now be used in all drawing operations whose effect is not immediate, especially all routines from arcOp.c, lineOp.c, polygonOp.c, freehandOp.c, splineOp.c, TextOp.c Arrow keys allow moving objects around before they are completely drawn, "Escape" restarts the operation from scratch, "Return" terminates the operation, and "Backspace" rewinds the course of operation backwards. * freehandOp.c : this operation now allows to draw arbitrary combinations of freehand and polygonal shapes and should be easier to use or to modify interactively thanks to the key bindings. * sprayOp.c : minor code clean-up. * updated accordingly Help files. 2010-10-25 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6.4 A couple of small improvements in spline, polygon, text and color operations. * fontOp.c, splineOp.c, polygonOp.c : implemented "Backspace" key action, i.e. removing last point or last character; "Escape" now entirely restarts the operation from the beginning. Other small improvements (including correction of a potential segfault occurring in some strange circumstances...); polygonOp() code is now also much simpler and easier to read. * graphic.c : multiple clicks on any of the three color/pattern selection discs now switch primary and secondary colors/patterns. * updated accordingly Help files. 2010-10-08 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6.3 - minor bug fix release - nothing really serious. * ops.h : minor compilation issue fixed. * graphic.c : corrected segfault bug of RegionToRGBA channels (occurring only when alpha channel was to be saved.) * chroma.c : fixed minor scrolling issue in color variance scrollbars. * graphic.c : added new menu lines to proceed more easily to editing of alpha channels or images in memory. * updated accordingly Help files, messages and app-defaults files. 2010-09-26 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6.2 * print.c : printing was completely broken, as a result of using double values instead of float values. Reverted to float ! * chroma.c, color.c, magnifier.c, fontSelect.c : revert to float ! * iprocess.c : fixed bug occurring only in very rare circumstances (creation of image with an alpha channel, being edited and compiled on the fly through the embedded C-script editor) * graphic.c : small improvement in ModifyRGB (new routine to rescale gray levels linearly from given thresholds). 2010-09-14 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6 * xpaintrw/rwTable.c, xpaintrw/readWriteTGA.c : fixes in TGA format, so as to prevent that xpaint could hang on certain non TGA files. Make sure anyway that TGA is parsed as a last resort, since TGA is a strange format without signature. * image.c, iprocess.c, graphic.c : substantial improvements in filter routines : - Added new "Merge" filter : helpful to combine smoothly an image with the underlying canvas. Works according to 4 different modes - Added new "Distortion" filter which can be used to produce local deformations - Added powerful Floyd-Steinberg algorithm (color quantification enhanced with a diffusion process). - Replaced "ModifyRGB" by a generalized RGB transformation procedure with 7 different modes, including Gamma correction (with independent r_gamma, g_gamma, b_gamma parameters), and linear transform. - Fixed several shortcomings of "Normalize contrast" and "Emboss" routines; "Emboss" now has 2 parameters allowing linear correction. - Renamed "Tilt" as "Projective Transform" with several enhancements. - Renamed "ImageCopy" as "ImageCopyData" which says more accurately what it does. * graphic.c : Memory menu : management of R,G,B and alpha channels : - Added extraction of red, green, blue, alpha channels from region - Added merge procedure for those channels * msgedit.c : new utility which can be used to extract strings from the English version of "Messages" and combine them with a partially localized "Messages_XY" for any other language - useful as well to avoid discrepancies between languages! * Many updates to Message and Help files. 2010-09-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.5 * xpaintrw/readWritePNG.c : fixed WritePNG() for alpha channel images possessing less than 16 black and white colors, which xpaint tried to write in an incorrect PNG mode. * graphic.c : fixed segfault bug when invoking "Clone Canvas" procedure. * xaw3dxft : a few hacks to work around minor display bugs related to Xft anti-aliasing/composition effects on certain X servers (especially proprietary NVIDIA ...) * main.c : new command line options -tooltips, -notooltips * operation.c, graphic.c : implemented tooltips (they can be disabled from the tools/help menu). * man page and help files : updated. 2010-08-15 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.4 * xpaintrw/readWriteTGA.c : added support for TGA format (borrowed mostly from mtpaint project). * xpaintrw/rwTable.c : code clean-up. * Paint.c, PaintRegion.c : fixes for certain complex situations involving region selection with masks and alpha channel. (Segfault could occur in Fatbits editor under those circumstances). * graphic.c : Suppression of alpha channel could lead to segfault. 2010-08-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.3 * xpaintrw/readWriteICO.c : imported a lot of code from the 'icoutil' GPLed package. As a result, xpaint can now read most Windows ICO files, even those containing embedded compressed PNG/JPG images which icoutil cannot fully open. Support for ICO masks as alpha channel, and for writing single image ICO files. * xpaintrw/readWritePGF.c : PGF image format support improved, thanks to 'pgf2pnm' provided by Christoph Stamm <christoph.stamm@fhnw.ch> (creator of the PGF format). libpgf and libpgf-dev are needed only optionally to compile 'pgf2pnm', which then provides PGF support in xpaint. However, xpaint itself does not link with libpgf and does not need libpgf-dev to be compiled. The alpha channel of PGF images is fully supported. * graphic.c : improvements/bug fixes in the "Clone with Zoom" procedure. Now works for zooming/downscaling images, with/without interpolation, and for adjusting alpha channel as well. * graphic.c, PaintEvent.c : much more powerful implementation of the "Delimit region" procedure, according to six different options (connected/non connected/color range regions, or complements of such regions). * The help files have been updated to reflect all current functionality of XPaint (Spanish help additions should be revised by a native speaker !) 2010-07-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.2 * xpaintrw/*.c : huge code clean-up. Saving files now show up a warning when the image possesses an alpha channel, but the format chosen does not support it (completely or in part). Note: saving in PNG should almost always be a safe choice ... * xpaintrw/readWriteTIFF.c : support substantially improved, including alpha channel read/write. More exotic TIFF formats unsupported. * xpaintrw/readWriteBMP.c : many more BMP image format types are now supported, including full support for images with an alpha channel (read/write). * xpaintrw/readWritePNM.c : provisions made to include support for alpha channel in PNM (this is a specific extension of xpaint : an RGB image concatenated with a gray level image of the same size - and '\n' in between - is viewed as RGBA data). * xpaintrw/readWriteJP2K.c : added support for JPEG2000 image format. Either libopenjpeg (default) or libjasper (optionally) can be used. Full support for alpha channel (requires openJPEG from subversion at this point now, since "stable" version 1.3 has insufficient alpha channel implementation...). * xpaintrw/readWritePGF.c : added support for PGF image format. This requires libpgf and pgf to be installed (but xpaint does not need to be linked against libpgf, and its compilation does not require libpgf-dev files either.) * xpaintrw/readWriteSGI.c : repaired old dormant code to read run-length encoded SGI/Irix image files. Checked to work fine. * xpaintrw/readWriteICO.c : unsupported, very buggy code. Disabled at this point. Instead, use e.g. 'icoutil' to convert those files to PNG ... * dialog.c : very small fix providing UTF8 support in AlertBox window titles (and always raising warning windows). * configure : if libXaw3dxft is installed as a shared library, compilation is now set by default to use it, rather than linking statically xpaint to libXaw3dxf.a 2010-07-18 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.1.5 * graphic.c : added "*allowResize: False" in Canvas*pane*form to prevent annoying widget initialization on certain platforms * xpaintrw/readWritePS.c : small fixes to handle correctly PS/PDF files whose names contain quotes or blank characters. 2010-07-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.1.4 * fatBitsEdit.c, Paint.c , Paintregion.c : several fixes in handling of alpha channel in fatbits editor - some affecting alpha channel image bits. * app-defaults : change zoom labels to correct values xx:1 instead of 1:xx * graphic.c : prevent fatbits editor getting called undeservedly by GetNonDirtyCanvas() routine ; removing alpha channel now moves it to memory rather than destroying it right away. * xpaintrw/readWritePS.c : fix for compilation of TeX/LaTeX files being called from random directories. * minor fixes throughout - thanks to the SUSE-Packman maintainer Detlef Reichelt <detlef@die-mafia.de> for help. 2010-06-02 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.1 * Paint.c , Paintregion.c : fixes in alpha channel routines. * fatBitsEdit.c : many fixes in fatbits editor. Refresh button added * graphic.c : reload file procedure didn't reload alpha channel - this is now fixed. * fontOp.c : potential segfault corrected. * small other (mostly random) improvements. 2010-05-16 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.0 * graphic.c, Paint.c : big improvements in handling of alpha channel ; alpha management menu is now explicit from canvas menu bar. Support still not quite complete at this point (regions do not appear yet in alpha mode). Should come for 2.9.1... * Paint.c, PaintRegion.c : fixed segfault occurring when using region operations in fatbits editor (regression introduced already in 2.8.9 which remained unnoticed up to 2.8.19 ...) * fontOp.c, fontSelect.c : UTF8 support should now be essentially complete. * xpaintrw/readWritePNG.c : fixed bug when writing PNG_COLOR_TYPE_PALETTE images with less than 16 colors (those images were wrongly converted to gray palette...) * several other small fixes and improvements throughout. 2010-04-17 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.19.1 (mostly cosmetic changes) * fileBrowser.c : added "ongoing" mode in File Browser (widget no longer closes when opening an image, allowing to browse files continuously). Performed a substantial code clean-up as well. * operation.c, graphic.c : menu improvements; one can now open an image from any canvas window. * misc.c : added RaiseWindow() routine to comply better with ewmh specifications. XMapRaised() replaced by RaiseWindow() throughout. * "snapshot" replaced by "screenshot" throughout. 2010-04-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.19 * fileBrowser.c : fixed minor annoyance in "save" and "saveas" routines - name of file is now again remembered when a filename has already been set. * graphic.c : fixed bug in ToolSelection switcher; "font" menu replaced by more powerful "text" menu; new entry added to edit/write text from text editor embedded in font browser. * iprocess.c : fixed bug in filter "adjust RGB colors" * fontSelect.c, fontOp.c : text sample is now editable, and this text can be imported on canvases. This includes being able to set fonts, colors, linespacing (etc) as editable text. Any UTF8 encoded file can be read and edited, and a small number of special commands are available to format such texts; for hints on how to use this, see "Doc/TextFormat.doc". Xpaint can thus be used as a text editor (sort of!), useful e.g. to create posters with text and graphics. * xpaintrw/readWritePS.c : support for reading a file as "enriched text". * main.c : new command line options -textfont and -astext, the latter for opening files as enriched text. * share/bin/imgmerge : small tweak to use a static PageInfo struct, otherwise imgmerge would segfault (gcc bug ?) 2010-03-13 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.18 * Minor fixes (UTF8 names in windows, rare segfault when using external viewer) * xpaintrw/readWritePNG.c : xpaint now saves correctly gray images which have an alpha channel. * xpaintrw/rwTable.c : introduces auto-detect mode for writing files (image type is guessed from suffix of file name, and set to PNG as a fallback). * xaw3dxft : changed library name to libXaw3dxft to avoid interfering with regular libXaw3d. Added hooks in 'configure' to (possibly) install and compile it as a shared library. Corrected an issue in xaw3dxft/List.c which could sometimes lead to a fatal X error. * Added man pages for imgmerge and pngconcat (provided by Debian maintainer Josué Abarca) * Removed dependency on Xft.h in PaintP.h which had the unfortunate effect of breaking C-Script compilation, e.g. in imgmerge. 2010-03-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.17 * Xpaint is now fully UTF8 compliant. This has been done rather cheaply by linking statically with a modified xaw3d library which is UTF8 & Freetype aware. This also means that anti-aliasing is enabled in the menus and text widgets, and that the X core font protocol is no longer used anywhere. * By default, Xpaint no longer depends on external xaw/xaw3d/xaw3dg libraries as it is compiled with its own improved xaw3d clone; this only adds approximately 250 kB to the binary executable. * Xpaint can still be used with 8 bit encoding by specifying the command option 'xpaint -encoding 8'. However the resource files XPaint* Messages* Help* should then preferably be converted back to a 8bit locale, otherwise some strange characters will show up in the menus, at least in languages which use non ASCII characters. 2010-02-17 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.16.1 * fontSelect.c, misc.c : introduced clickFocusCallback which fixes keyboard focus in fontSelect and in color picker ascii text input widgets (problem occurred e.g. under KDE). Use 2.8.16 with xpaint-2.8.16-keyboard-input.patch. 2010-02-12 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.16 * graphic.c, fontOp.c, fontSelect.c : Xpaint now uses the Xft protocol to display fonts, so that (in particular) all TrueType fonts are available, and the corresponding glyphs are nicely anti-aliased without resorting to a use of sub-pixel resolution. Another benefit is the possibility of rotating text, or even applying arbitrary linear transformation (however, writing fonts with a pattern instead of a plain color is no longer possible directly - for this, one can use instead masks or a fill procedure). * xpaintrw/readWritePNG.c : applied small patch from Stefan Husmann (Arch Linux maintainer) to take care of API deprecation in newer versions libpng-1.4.x. 2010-02-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.15 * PaintRegion.c : finally found and corrected long standing bug which plagued iteration of filters and undo procedures. * fileBrowser.c : several GUI improvements. * xpaintrw/readWritePS.c : improved handling of BoundingBoxes. Fixed bug in the use of 'psselect' which was found on the Fedora bugzilla list (many thanks to Paulo Roma Cavalcanti <promac@superig.com.br> for analyzing the issue) 2010-01-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.14 * graphic.c : memory management simplified and improved; added CRC32 checksum control to avoid duplicates. * xpaintrw/readScript.c : fixed potential bug occurring in rare circumstances. * Various fixes in batch scripts 'imgmerge', 'batch.c' and 'xpaint_ocr' GPLv3 licence specified there. * Included new debian files released by Debian maintainer Josué Abarca * xpaint.man.in : corrected a ­ issue (thanks again to Josué Abarca) 2010-01-20 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.13 * Paint.c : corrected nasty bug * graphic.c : GUI improvements. Border color of paint widget now indicates status of image (red: non editable, green: resize enabled, blue: has an alpha layer, black: otherwise). * image.c : ImagaToPixmap() et al modified so as to manage alpha channel mode once for all (rather than repeating this for each of the image loaders). 2010-01-18 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.12 * misc.c, graphic.c : some more fixes for alpha channel issues. 2010-01-17 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.11 * fileBrowser.c : browserResized() : included patch for accommodating bug in certain versions of the Xaw3d library * Paint.c : PwGetPixmap() modified so as to work independently of zoom value. Saving a file under zoom<1 now works !! * graphic.c : there is now support for adjusting join and cap style of lines being drawn. Fixed handling of memory box. * Code for alpha channel completed and made more robust (substantial changes in graphic.c, Paint.c, PaintRegion.c) 2010-01-10 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.10 * graphic.c : many GUI improvements. Some alpha channel fixes. (arbitrary linear transformation of alpha channel still not implemented). * lineOp.c : fixed arrow and vector drawing under zoom != 1 (were correctly written to pixmap but incorrectly shown on canvas). * fileBrowser.c : a few cosmetic changes to make code more robust. * xpaintrw/readWritePNG.c : fixed readPNG() for non transparent PNG images possessing a palette of colors. 2010-01-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.9 * polygonOp.c : segfault bug corrected. Polygonal regions can now be selected correctly under zoom values other than 1. * xpaint.h : various API modified to include alpha channel (in images, paint canvases, clipboard, memory stack...) * PaintUndo.c : implemented alpha channel in Undo stacks * PaintRegion.c, graphic.c : routines to set/show/edit the alpha channel are now implemented in a fairly complete manner. * readWritePNG.c : xpaint now saves a canvas with an alpha channel as a PNG file with a corresponding alpha channel. * readWriteXPM.c : xpaint now saves a canvas with an alpha channel as an XPM file with a "None" color (reduced to a 0/1 mask). (By default, alpha<128 is considered to be transparent and alpha>=128 to be opaque. The threshold value 128 can be changed from the options.) * readGIF.c : xpaint can now read alpha channel of GIF89 files possessing transparent pixels (setting transparent pixel in writeGIF.c not yet implemented). 2009-12-09 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.8 Interim release with partial support for transparent images; alpha channel is now correctly read when loading PNG and XPM images. Easier management and writing support will be implemented in 2.8.9. * xpaintrw/readGIF.c : xpaint will now open all frames of animated GIF images, and not just the first frame - support of this feature was already there, but had never been made accessible from the GUI ! * xpaintrw/readWritePNG.c : xpaint now detects PNG images possessing an alpha channel and loads them properly. The RGB values and alpha channels can be edited separately (but not yet mixed back easily). * xpaintrw/readLXP.c : preliminary implementation of layered xpaint image format LXP. File share/c_scripts/templates/script.c used as template. * pattern.c : new button introduced to modify background color (thus duplicating functionality from the separate background color widget). * fileBrowser.c : widget improved. Four new buttons added to get directly to home, root and current directory, and to show/hide dot files. The browser of loaded files now has buttons for editing C scripts and managing layers (implementation somehow works, but is not yet complete). * iprocess.c : corrected segfault bug occurring in certain circumstances, e.g. when loading recursive image C-scripts. In particular, "layer" example share/c_scripts/layers/combine.c now works again. 2009-11-18 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7.3 (very minor changes) * graphic.c : corrected very tiny bug in resizeCanvas() routine which resulted in occasional disappearance of Fatbits cursor, when the canvas was resized under certain zoom reduction values. * fatBitsEdit.c : added convenience routine FatbitsEditorDestroy(paint) (not yet used inline - could possibly be used from C scripts). * small addition in Local.config file 2009-11-15 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7.2 (very minor changes) * Further cosmetic fixes and code cleaning ; X error handler improved (just in case). * snapshot.c : taking a snapshot from the tools window now unmaps the window (so that any window stacked behind can be captured); spurious warning 'bad pixmap' from libX11 has been eliminated. 2009-11-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7.1 (released only as a patch to 2.8.7). * Further cosmetic improvements and code cleaning not really worth bothering (e.g. popup menus which, when users change their mind and no longer want to use them, may not immediately popdown as would be expected when clicking randomly outside, e.g. on the canvas ...) 2009-11-04 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7 released. * graphic.c, menu.c, PaintEvent.c : a substantial number of cosmetic changes made to further improve the menu behaviour. * fileName.c renamed as fileBrowser.c * fileBrowser.c : Some "flickering" issues in the browser have been corrected. The file browser of "loaded files" now include ad hoc fields and buttons for modifying the scaling of vector format images (PS/PDF/DVI/TeX/LaTeX/SVG) as well as for selecting a page in multi-page documents. Now, Xpaint can thus be used as a practical viewer for such documents - though for this purpose it's certainly not as fast and optimized as specialized viewers ... * readWritePS.c : multipage PostScript files require 'psselect' from the psutils package. (This is a very simple program so we may consider including it in the next version of xpaint to remove that dependency.) DVI files are now accepted, along with PS/PDF/TeX/LaTeX/SVG. * print.c : selecting PDF option now (really) saves file as PDF rather than PostScript. * Merged Changelog and (unmaintained) file Doc/CHANGES 2009-10-27 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.6.1 released. * bug fixes : main.c : xpaint did not accept setting default zoom < 100% through command line graphic.c : underestimated evaluation of canvas window size for large images, resulting in image not being fully displayed even when it could. PaintRegion.c : segfault bug occurring in certain circumstances when dragging a region outside viewport, in region transparency mode. 2009-10-26 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.6 released. * Extensive changes in many parts, to provide capability for zoom = 1/n, while performing all possible operations under such a zoom. This means that anti-aliasing can be obtained by using e.g. zoom = 1/3 and then cloning the canvas with the given reduction. * magnifier.c: Introduced a magnifying glass, based on code of 'xlupe' by Thomas Runge (runge@rostock.zgdv.de) * operation.c: menu now includes an item to open the magnifying glass, and a browser for all images which have been opened or loaded from the command line. * fileName.c : the buildBrowser() routine has been extended to have a mode ('type=4') showing the list of loaded images. * graphic.c: edit menu includes 2 items for cloning the canvas (with or without reduction) * a lot of bugs have been ironed out, e.g. a crash in the polygon selection area, and a very long-standing bug in the memory management of menu.c which used to cause (fortunately unfrequent) random crashes. 2009-10-16 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.5 released. * graphic.c, user visible changes : added a zoom button and a new toggle allowing to resize the canvas, using mouse or arrow keys. Several other related improvements have been made for zooming/resizing, along with a few minor fixes (the layer example "layer.c" compiles again without segfaulting.) 2009-10-13 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.4 released. * pattern.c : Fixed segfault bug in color/pattern budget, which occurred when creating new brushes. * print.c : added new toggle so as to possibly produce a compressed PS file, or send to printer a PDF file rather than a PS file. The annoying printing notification popup has been replaced by a less intrusive notification. Many other small improvements - e.g. output postcript file can be selected with a file browser. * xpaintrw/readWritePS.c : the PostScript generator has been considerably improved. XPaint is now capable of producing strongly compressed PostScript files, of weight increased hardly by more than 30%-35% when starting from a PNG file of the same resolution, and the process is faster than before - it seems that even gimp does not yet take care of this, its PS files can often be reduced to less than 50% of their current size (huge thanks to Peter Szabo for showing the way with his sam2p program.) A standalone 'ppmtops' utility has been included for potential re-use elsewhere. * Clarification of the licence. Xpaint is an old program, many parts of which were written at a time when the GPL was not so pervasive. To the best knowledge of the current maintainer, all parts where written under permissive licences which are compatible with the GPL. J.-P. Demailly thus puts under the GPLv3 all code developped by him in the last twelve years - that's probably more than 30% of the total amount of code, and the program as a whole should thus be considered as GPLv3. All related utilities ('ppmtops', C scripts, etc) are also put under the GPLv3. 2009-10-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.3 released. * Included 2 patches from Mandriva packagement experts, fixing some minor compilation problems and potential security issues. * xpaintrw/readWritePS.c : xpaint is now able to display TeX, LaTeX, PDF and SVG files using image conversion from external ad hoc programs. Option -dpi <dpi value> can be used to adjust size of image. 2009-10-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.2 released. * pattern.c : found and fixed two long standing segfault bugs (fortunately occurring only in not so frequent circumstances) * Set default gridcolor to grey80 on TrueColor displays, a less intrusive color than black. 2009-09-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.1 released. * Introduced rectangular (not just square) snap grids. Color of grid can be changed to arbitrary color. * graphic.c : corrected segfault bug in simplemenu switcher (selector popup). 2009-09-27 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.0 released. * Menu popups have been entirely reworked. Their behaviour is now more fluid - and similar to the default behaviour of modern toolkits like GTK/qt - so users should feel less disturbed. (this required numerous changes in menu.c and app-defaults) * Fixed size handling of Canvas windows under maximize/unmaximize procedures. * Stability should be considerably improved. Some memory leaks have been removed as well. * Added new command line options: -undosize <num> (set undo memory limit) -operation <num> (start with operation <num> set in tool panel) -filter <file> (define filter by using <file> as C-script) -proc <file> (define procedure by using <file> as C-script) * Added support for using menu popups in C script filters See share/c_scripts/filters/clean.c for an example. This means that C script filters can involve adjustable parameters which can be easily changed (i.e. without needing a recompilation each time the parameters are changed.) * Added support for using menu popups in C script procedures See share/c_scripts/procedures/proc_with_params.c for an example * iprocess.c, xpaintrw/readScriptC.c : added support for running batch jobs (for mass processing of images, using xpaint as the engine); see share/c_scripts/batch/batch.c share/bin/imgmerge * Added batch script 'imgmerge' which uses xpaint to convert and concatenate image files into a single PDF file. This also makes use of Peter Szabo's 'pdfconcat' program (GPL, included). * Added support for OCR (with the ocrad engine by default) The OCR engine(s) can be specified in the bash script /usr/share/xpaint/c_scripts/bin/xpaint_ocr This means that xpaint can be easily used as a GUI for command line OCR engines ('xpaint_ocr' makes use of the 'xless' pager, by default, but any other pager/editor can be used instead). * brushOp.c: system wide brushes are no longer hardwired, and can now be configured from the SHAREDIR directory. * Added additional brushes provided by John David Gray <kahdgarxi@gmail.com> which are useful to draw electronic circuitry. Also included a patch of him introducing three new patterns and extending the drawVisibleGrid() routine in Paint.c * Fixed (and improved as well) behaviour of snap and grid routines, also using ideas of JD Gray. * Changed rotations to use trigonometric positive rotation rather than clockwise. This was too unnatural to me ! * Numerous bug fixes. Thanks to Mattis Michel <sic_zer0@hotmail.com> for correcting a bug in the snap routines and for providing further improvements; Mattis noticed - and urged correction - of a critical bug in the "Load clipboard" procedure; he also suggested putting WM hints on minimal size of widgets so as to avoid random crashes under wild resizing of the windows. * Updated the man page - which had actually been neglected for a couple of years ...
2023-01-22 18:41:52 +01:00
share/xpaint/include/bitmap.h
share/xpaint/include/color.h
xpaint: update to release 3.1.4, using wip/xpaint. Packaged in wip by @adam + a couple of changes by @vins Changes (since version 2.7.8) 2021-08-14 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.4 * arcOp.c : the DrawArc procedure now checks that the arc is not drawn with a zero linewidth - otherwise some pixels could have been missing, and any later fill area procedure could then have led to unexpected results. This minor bug (or misbehavior?) has been fixed. * image.c : if installed, dvipng can now be used as an alternative to the libdvipgm library, at the expense of a small slowdown in the output. This allows TeX input even without libdvipgm installed, dvipng being installable independently. 2021-02-12 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.3 * graphic.c : the "Text" menu has been substantially improved. Text and TeX/LaTeX input of arbitrary length, size, color can now be edited and converted to either a bitmap image or vector PostScript/PDF with embedded fonts. * More extensive testing - and a lot of small details fixed 2021-01-28 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.2 * Small improvement of versions 3.1.0, 3.1.1 with bug fixes. Xpaint can now be compiled without dvipgm (at the expense of losing some TeX functionality). Thanks to testers for feedback! * This version supports the use of layers (files *.lxp = Layered XPaint files). This is done via the C script editor. Any collection of images can be combined into a new merged image by a suitable C procedure. See example in directory share/c_scripts/templates/ * Compiling against libkpathsea and libdvipgm (from the dvipgm-1.x.tar.bz2 package, x >= 2) is needed to enable TeX input processing - otherwise the compilation scripts will disable TeX input. A minimal TeX environment is also needed to allow TeX interaction. * xpaintrw/readLXP.c : routines for reading LXP files * iprocess.c : routines for the creation of LXP files * image.c : ImageDup() procedure added * operation.c : new option for cleaning temporary files * This version has reached all capabilities that had been planned since a long time: layer handling, vector graphics operations, possibility of TeX input and of mathematical drawings, programmatic creation of images, filters and graphical functions. Therefore Xpaint will probably enter into maintainance and bug correction mode. 2021-01-27 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.1 * Small improvement of version 3.1.0 with bug fixes. * This version supports the use of layers (files *.lxp = Layered XPaint files). This is done via the C script editor. Any collection of images can be combined into a new merged image by a suitable C procedure. See example in directory share/c_scripts/templates/ * Compiling against libkpathsea and libdvipgm (from the dvipgm-1.x.tar.bz2 package, x >= 2) is needed to enable TeX input processing - otherwise the compilation scripts will disable TeX input. A minimal TeX environment is also needed to allow TeX interaction. * xpaintrw/readLXP.c : routines for reading LXP files * iprocess.c : routines for the creation of LXP files * image.c : ImageDup() procedure added * operation.c : new option for cleaning temporary files * This version has reached all capabilities that had been planned since a long time: layer handling, vector graphics operations, possibility of TeX input and of mathematical drawings, programmatic creation of images, filters and graphical functions. Therefore Xpaint will probably enter into maintainance and bug correction mode. 2021-01-24 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.0 * This version now supports the use of layers (files *.lxp = Layered XPaint files). This is done via the C script editor. Any collection of images can be combined into a new merged image by a suitable C procedure. See example in directory share/c_scripts/templates/ * Compiling against libkpathsea and libdvipgm (from the dvipgm-1.x.tar.bz2 package, x >= 2) is needed to enable TeX input processing - otherwise the compilation scripts will disable TeX input. A minimal TeX environment is also needed to allow TeX interaction. * xpaintrw/readLXP.c : routines for reading LXP files * iprocess.c : routines for the creation of LXP files * image.c : ImageDup() procedure added * operation.c : new option for cleaning temporary files * This version has reached all capabilities that had been planned since a long time: layer handling, vector graphics operations, possibility of TeX input and of mathematical drawings, programmatic creation of images, filters and graphical functions. Therefore Xpaint will probably enter into maintainance and bug correction mode ... 2021-01-21 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.5 * Vector drawing capabilities improved and hopefully almost complete. * Xpaint now allows the use of TeX input in mathematical drawings, provided it is compiled with the compilation flag -DHAVE_DVIPGM. The libdvipgm and libkpathsea libraries are required for this. * The new 'vxp2tex' utility converts VXP data into a TeX file that can be used with pdftex or pdflatex. * lineOp.c : ticks and graduation procedure added. * graphic.c, image.c, iprocess.c : several fixes and improvements. 2021-01-09 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.4 * This version has acquired substantial vector drawing capabilities. Just open 'Options->VXP vector data Editor' to enable vector drawing operations. Most of them are recorded in a plain text "VXP format" *.vxp. The external program 'vxp2ps' converts these data into (vector) postscript, and 'vxp2dkw' can be used to convert them for use in in the handwritten note editor deskwrite. Such Postscript files can be easily converted to PDF or SVG. * Xpaint can also read and rasterize *.vxp files (but at this point all operations that are not translated right away into vector data are ignored, even though they are recorded in the VXP file). * graphic.c, operation.c, misc.c, iprocess.c : extensive additions to implement VXP data processing. * share/c_scripts/procedures : canvas+vxp.c added as a new example. C scripts can be used to produce VXP data. 2020-08-04 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.3 * This version of xpaint requires in principle libXaw3dXft-1.6.2h (but would run with 1.6.2d,e by removing the compilation flag -DHAVE_NEWEDITINGSTYLE) * graphic.c: a new option has been introduced, allowing xpaint to use more easily graphics tablets, more specifically the user space drivers provided with deskwrite on Sourceforge. * menu.c: SetFocusOn() has been fixed. This allows the input focus to be preserved in active text fields, even when the cursor leaves the top parent window (as is usually expected with modern desktop interface guidelines ...) * iprocess.c: small improvement of the Gamma/RGB filter. * Further small fixes throughout, especially in the build scripts and the debian packaging. 2020-06-29 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.2 * This version of xpaint requires libXaw3dXft-1.6.2h (or later versions of the libXaw3dxft library - the changes between 'f', 'g' and 'h' merely consist of introducing a new parameter to allow scrollbars of text widgets to be on the right side, plus some minor improvements in the edition process) Removing -DHAVE_NEWEDITINGSTYLE in Makefile.am would make xpaint compatible with earlier versions 1.6.2d,e of libxaw3dxft with essentially no change, except for the text input editing behavior of Backspace and Delete keys. * xpaintrw/readWritePNM.c: is now using a more recent version of libnetpbm, rather than the completely obsolete version from the 1990's that was embedded in the original code of xpaint. One consequence is that libnetpbm10-dev or preferably libnetpbm11-dev are now needed to compile xpaint, another one is that PPM/PAM files with an alpha channel can now be read and written. Adjust the NETPBM defines (-DNETPBM10 or -DNETPBM11) according to the installed version of libnetpbm. * help.c: the help widget now has two independently resizable panes (topics and explanations). * pattern.c: correction of old bug (that had however no visible effect before 3.0.1). * graphic.c: exchange of primary and secondary colors or patterns is now accessible by clicking on the red cross below the color picker (shown as an eye). Similar addition for pattern.c 2020-06-16 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.1 * This version of xpaint requires libXaw3dXft-1.6.2f (or later versions of the libXaw3dxft library). Removing -DHAVE_NEWEDITINGSTYLE in Makefile.am would make it compatible with earlier versions 1.6.2d,e with essentially no change except for the text input editing behavior of Backspace and Delete keys. * print.c: by default, xpaint no longer depends on cups-bsd commands, (but they can be re-enabled via an adjutsment of the app-defaults files). * xpaintrw/readWritePS.c: the BoundingBox of a file saved as PS/PDF should now be set appropriately. * graphic.c, *Op.c: extensive additions. Xpaint can now record all operations that are performed as vector data, in the so called VXP format. The recording starts as soon as the VXP editor under the Options menu is started, and these data can be saved into a file <name>.vxp * readWriteJP2K.c: has been ported to work with openjpeg version 2 (JPEG2000 format), including alpha channel. * Various other small fixes throughout (SVG import, ...) * At a later stage, it will be possible to convert these VXP files to other vector formats such as eps, pdf or svg, and import them back to xpaint. There will be also an option to insert TeX input and convert the data into a (La)TeX file. 2020-05-25 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.0 * bitmaps/toolicons: new set of icons, generated from SVG data. * app_defaults: the app_defaults files have been reorganized so as to separate linguistic strings and other data, especially widget sizes. Three sizes are now offered: big, medium, small, to accommodate HiDPI screens or low resolution screens. * operation.c: the tool window is now fully resizable. In order to actually change the size of icons, users can copy /usr/share/xpaint/bitmaps/toolicons/ into $HOME/.xpaint/toolicons/ and generate icons with larger or smaller size there. Just type ./generate_icons <height> in $HOME/.xpaint/toolicons/ to produce a new set of icons with the given height (the xpaint package is distributed with icons of default height 36). The shell script "generate_icons" requires inkscape to work. * graphic.c: the parameter btnheight is now used to resize the palette elements as well as the height of buttons. This is useful for HiDPI screens (as well as for lower resolution screens of older computers). * main.c: new option -blind that keeps xpaint running under the hood when batch procedures are invoked. * xpaintrw/readWritePS.c: SVG import has been updated to work with inkscape-1.0. * The change of major number in this version anticipates the introduction of some vector graphics capabilities in the versions 3.x.y to come. (Right now, the only vector graphics capabilities are PS, PDF, SVG import). 2020-05-21 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 2.10.3 * lineOp.c : under the "segment" operation, users will now find new "Position" and "Measurement" tools. These tools do not draw anything, but instead they record the locations of pixels that are clicked on, and compute lengths and angles. * iprocess.c : The "Perspective" filter has been vastly improved. It should now enable users to correct the perspective of a distorted picture taken by a camera, or to create artificial perspective when producing a drawing. This can be used in connection with the new "Position" tool, so as to specify points on the canvas. * iprocess.c : The API of C scripts introduces a new public procedure PixelInterpolate(unsigned char *op, Image *input, double x, double y) that can be used to smooth pixels, under transformations that map integer coordinates into float values (as is the case e.g. for rotations or homotheties with arbitrary factor). This will sometimes improve the output of such operations (but may also make the image fuzzier). * Two new C scripts "similarity.c" and "projective.c" have been added. They show in particular how to exploit the PixelInterpolate() procedure. * Help and message files have been edited to explain details of the new functionalities. 2017-11-13 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 2.10.2 * Minor compilation fixes in iprocess.c and xpaintrw/readWriteJP2K.c thanks to the OpenSUSE team. * Bug in operation.c : exitPaint(...) could trigger a segfault when quitting xpaint without saving the canvas. Thanks to Anthony J. Bentley from the OpenBSD team for reporting the bug. * misc.h : srandom() is nowadays always of void type. * Minor fixes for the calculation of the maximum canvas size. 2016-12-10 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 2.10.1 (a substantial update!). * Xpaint includes a new command line option -btnheight that adjusts appropriately the size of all internal widgets in case a big menu font is used (e.g. by setting the option -menufont , or by changing the app-defaults file). This is very useful if you have a high resolution screen. Many small local modifications of various source files in the main tree have been necessary for this. * A new option -toolmode 0,1,2 can be used to initialize the display of the tool window. Also adjustable dynamically by resizing that window. * Default canvas size has been set to 1024x768 Related command line options are -canvassize and -winsize that can be used independently to adjust the default size of canvas and main window. * The app-defaults files and help files have been modified to accommodate the above additions. * The "Print" widget has been improved, and its menubar is now again available to adjust page formats (a bug introduced probably a long time ago prevented it to work !) * A newer version libXaw3dXft-1.6.2e.tar.bz2 has been posted. The only change is a 3 lines addition that circumvents (what seems to be) a bug occurring in certain X11/Xorg implementations, e.g. the intel driver, version 2.99.917. Otherwise this will make no difference. * Changed the library name librw to libxpaintrw to avoid shared library conflicts. Thanks to Michael Orlitzky for pointing out the issue. * Applied a number of patches from gentoo.org that substantially improve the compilation process. Thanks to Julian Ospald <hasufell@gentoo.org> 2015-01-02 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10.3 * Port to the newer libXaw3dXft-1.6.2d.tar.bz2 (the latter is actually a requirement, this version no longer compiles with libXaw3dXft-1.6.2c). The point is that libXaw3dXft-1.6.2d has improved binary compatibility with plain libXaw3d-1.6.x * Only further cosmetic changes, no change in functionality. 2014-04-17 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10.2 * Minor fixes in 'configure.ac' and 'configure.old' scripts Xpaint can now be compiled again with plain Xaw or Xaw3d (this is NOT recommended, Xaw3dxft definitely gives much better results !) Thanks to Stefan Husmann (Arch Linux) for helpful reports in this respect. * 'configure' (based on autotools) and 'configure.old' (based on imake) should in most cases give essentially equivalent binaries. * PDF files are now read by using mudraw if mupdf & mupdf-tools are installed (otherwise Xpaint falls back to the formerly used solution: pdf2ps + ghostscript, a much slower one...) * Xpaint can now even import libreoffice files as images as soon as libreoffice is installed (assuming /usr/bin/libreoffice is a valid path to the main program) 2014-04-09 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10.1 * Includes the "version_and_focus_patch_for_2.9.10" and other minor fixes. * The alpha channel menu now includes a new function that allows editing as RGB values the image that appears when transparency is applied on a background of the selected background color - white being the default (this removes the transparency levels afterwards, so as to get a pure RGB image). * Bug (probably very old) corrected : selection of background color always resulted in black being chosen ! 2014-03-03 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10 * This version should preferably be compiled with libXaw3dXft-1.6.2c, although it still works Ok with libXaw3dXft-1.6.2b. * readWritePNG.c: fixed bug occurring when writing grayscale images possessing no more than 16 colors. * readWriteJPEG.c: JPEG images in CMYK colorspace are now handled properly (they will still be memorized as RGB, so the original CMYK information is lost, but at least they are shown correctly). * fileBrowser.c: "Save" and "Save as" menus now include the option to adjust JPEG quality between 50% and 100% (default is 90%) * fileBrowser.c: improved logic : the file browser now remembers file names when changing directories, and also takes into account default extension when specifying file format. * fileBrowser.c: thanks to a new feature from libXaw3dXft-1.6.2c (possibility of creating colored lists), xpaint now implements file type coloring in its file browser - at this point this is guessed merely from the suffix of the file. * operation.c: Canvas menu reorganized - it is now named "File menu" so as to conform to general use. Except from reordering the items, the main functionality is unchanged. * pattern.c: bug fixes. A segfault problem in the zoom selector has been corrected, and contextual help has been fixed. 2013-01-27 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.9.4 * This version should be compiled with libXaw3dXft-1.6.2b * RGB channel separation procedure fixed and improved * Fix in CRC data handling of regions in memory. * XPaint now remembers better the position of regions saved in memory. The recorded position can now be changed or reset to origin through the memory management menu. * compilation fix for pgf2pnm with newer libpgf-6.12.24 * Avoid "bool" variable throughout, as this is a typedef in <stdbool.h> * Fixes to configure scripts, thanks to Daniel Macks (fink project) * Minor GUI improvements 2012-02-14 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.9 * Xpaint now uses (or tries to use!) autotools. * libxaw3dxft is now a separate package (but is still a requirement, and in fact should be installed before). * xpaintrw/rwTable.c : segfault fix (occurring randomly) fixed in readMagic(). * minor fix in fontSelect.c, certain fonts were possibly missing in the font browser, in some rare circumstances. * very minor fix of scrollbar behaviour in graphic.c. * misc.c : new procedure SetWMInputHint() that helps solving some quirks. 2012-01-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8.4 * minor fixes in fileBrowser.c (adjustable height of text entry for the file name, resize procedure improved). 2011-10-13 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8.3 * xpaintrw/pgf-util/Makefile : add '-fpermissive' flag to allow compilation with recent (more picky!) versions of g++ * Xaw3dxft/Viewport.c : position of scrollbars can now be adjusted through parameters sbShift[X,Y][1,2]. No public API change, so this addition should be upward compatible. * graphic.c : some small fixes in the shellHandler routine to accommodate odd behavior of scrollbars with xorg recent versions, using the new sbShift feature. 2010-12-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8.2 - nothing really new, just very small fixes * Integrated patch to facilitate compilation with gcc-4.5 * app-defaults files : slight improvement of X event management in pull-down menus. * print.c : slight improvement of X event management in print widget. * fontOp.c : fixed color issue (color not initialized) when moving written text with arrow keys. * Very small changes in Xaw3dxft (minor Xaw3dXft.h API update) 2010-11-08 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8 * Xaw3dxft : code clean-up. New files Xaw3dXft.h and Xaw3dXft.c now contain the specific Xaw3dxft parameters and routines. A couple of small improvements to correct minor quirks in the menu entry highlighting behaviour. * main.c, graphic.c : changes made to accommodate the API changes introduced in Xaw3dxft. Further code clean-up. * image.h, graphic.c, iprocess.c : modified definition of the imageprocessinfo struct, so that hopefully compilation still works with gcc 4.5 (gcc-4.5 appears to be more picky with struct definitions). Thanks to Fedora maintainer Paulo Roma Cavalcanti <promac@gmail.com> for reporting the issue. 2010-11-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.7 * Arrow keys and "Backspace", "Return", "Escape" keys can now be used in all drawing operations whose effect is not immediate, especially all routines from arcOp.c, lineOp.c, polygonOp.c, freehandOp.c, splineOp.c, TextOp.c Arrow keys allow moving objects around before they are completely drawn, "Escape" restarts the operation from scratch, "Return" terminates the operation, and "Backspace" rewinds the course of operation backwards. * freehandOp.c : this operation now allows to draw arbitrary combinations of freehand and polygonal shapes and should be easier to use or to modify interactively thanks to the key bindings. * sprayOp.c : minor code clean-up. * updated accordingly Help files. 2010-10-25 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6.4 A couple of small improvements in spline, polygon, text and color operations. * fontOp.c, splineOp.c, polygonOp.c : implemented "Backspace" key action, i.e. removing last point or last character; "Escape" now entirely restarts the operation from the beginning. Other small improvements (including correction of a potential segfault occurring in some strange circumstances...); polygonOp() code is now also much simpler and easier to read. * graphic.c : multiple clicks on any of the three color/pattern selection discs now switch primary and secondary colors/patterns. * updated accordingly Help files. 2010-10-08 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6.3 - minor bug fix release - nothing really serious. * ops.h : minor compilation issue fixed. * graphic.c : corrected segfault bug of RegionToRGBA channels (occurring only when alpha channel was to be saved.) * chroma.c : fixed minor scrolling issue in color variance scrollbars. * graphic.c : added new menu lines to proceed more easily to editing of alpha channels or images in memory. * updated accordingly Help files, messages and app-defaults files. 2010-09-26 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6.2 * print.c : printing was completely broken, as a result of using double values instead of float values. Reverted to float ! * chroma.c, color.c, magnifier.c, fontSelect.c : revert to float ! * iprocess.c : fixed bug occurring only in very rare circumstances (creation of image with an alpha channel, being edited and compiled on the fly through the embedded C-script editor) * graphic.c : small improvement in ModifyRGB (new routine to rescale gray levels linearly from given thresholds). 2010-09-14 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6 * xpaintrw/rwTable.c, xpaintrw/readWriteTGA.c : fixes in TGA format, so as to prevent that xpaint could hang on certain non TGA files. Make sure anyway that TGA is parsed as a last resort, since TGA is a strange format without signature. * image.c, iprocess.c, graphic.c : substantial improvements in filter routines : - Added new "Merge" filter : helpful to combine smoothly an image with the underlying canvas. Works according to 4 different modes - Added new "Distortion" filter which can be used to produce local deformations - Added powerful Floyd-Steinberg algorithm (color quantification enhanced with a diffusion process). - Replaced "ModifyRGB" by a generalized RGB transformation procedure with 7 different modes, including Gamma correction (with independent r_gamma, g_gamma, b_gamma parameters), and linear transform. - Fixed several shortcomings of "Normalize contrast" and "Emboss" routines; "Emboss" now has 2 parameters allowing linear correction. - Renamed "Tilt" as "Projective Transform" with several enhancements. - Renamed "ImageCopy" as "ImageCopyData" which says more accurately what it does. * graphic.c : Memory menu : management of R,G,B and alpha channels : - Added extraction of red, green, blue, alpha channels from region - Added merge procedure for those channels * msgedit.c : new utility which can be used to extract strings from the English version of "Messages" and combine them with a partially localized "Messages_XY" for any other language - useful as well to avoid discrepancies between languages! * Many updates to Message and Help files. 2010-09-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.5 * xpaintrw/readWritePNG.c : fixed WritePNG() for alpha channel images possessing less than 16 black and white colors, which xpaint tried to write in an incorrect PNG mode. * graphic.c : fixed segfault bug when invoking "Clone Canvas" procedure. * xaw3dxft : a few hacks to work around minor display bugs related to Xft anti-aliasing/composition effects on certain X servers (especially proprietary NVIDIA ...) * main.c : new command line options -tooltips, -notooltips * operation.c, graphic.c : implemented tooltips (they can be disabled from the tools/help menu). * man page and help files : updated. 2010-08-15 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.4 * xpaintrw/readWriteTGA.c : added support for TGA format (borrowed mostly from mtpaint project). * xpaintrw/rwTable.c : code clean-up. * Paint.c, PaintRegion.c : fixes for certain complex situations involving region selection with masks and alpha channel. (Segfault could occur in Fatbits editor under those circumstances). * graphic.c : Suppression of alpha channel could lead to segfault. 2010-08-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.3 * xpaintrw/readWriteICO.c : imported a lot of code from the 'icoutil' GPLed package. As a result, xpaint can now read most Windows ICO files, even those containing embedded compressed PNG/JPG images which icoutil cannot fully open. Support for ICO masks as alpha channel, and for writing single image ICO files. * xpaintrw/readWritePGF.c : PGF image format support improved, thanks to 'pgf2pnm' provided by Christoph Stamm <christoph.stamm@fhnw.ch> (creator of the PGF format). libpgf and libpgf-dev are needed only optionally to compile 'pgf2pnm', which then provides PGF support in xpaint. However, xpaint itself does not link with libpgf and does not need libpgf-dev to be compiled. The alpha channel of PGF images is fully supported. * graphic.c : improvements/bug fixes in the "Clone with Zoom" procedure. Now works for zooming/downscaling images, with/without interpolation, and for adjusting alpha channel as well. * graphic.c, PaintEvent.c : much more powerful implementation of the "Delimit region" procedure, according to six different options (connected/non connected/color range regions, or complements of such regions). * The help files have been updated to reflect all current functionality of XPaint (Spanish help additions should be revised by a native speaker !) 2010-07-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.2 * xpaintrw/*.c : huge code clean-up. Saving files now show up a warning when the image possesses an alpha channel, but the format chosen does not support it (completely or in part). Note: saving in PNG should almost always be a safe choice ... * xpaintrw/readWriteTIFF.c : support substantially improved, including alpha channel read/write. More exotic TIFF formats unsupported. * xpaintrw/readWriteBMP.c : many more BMP image format types are now supported, including full support for images with an alpha channel (read/write). * xpaintrw/readWritePNM.c : provisions made to include support for alpha channel in PNM (this is a specific extension of xpaint : an RGB image concatenated with a gray level image of the same size - and '\n' in between - is viewed as RGBA data). * xpaintrw/readWriteJP2K.c : added support for JPEG2000 image format. Either libopenjpeg (default) or libjasper (optionally) can be used. Full support for alpha channel (requires openJPEG from subversion at this point now, since "stable" version 1.3 has insufficient alpha channel implementation...). * xpaintrw/readWritePGF.c : added support for PGF image format. This requires libpgf and pgf to be installed (but xpaint does not need to be linked against libpgf, and its compilation does not require libpgf-dev files either.) * xpaintrw/readWriteSGI.c : repaired old dormant code to read run-length encoded SGI/Irix image files. Checked to work fine. * xpaintrw/readWriteICO.c : unsupported, very buggy code. Disabled at this point. Instead, use e.g. 'icoutil' to convert those files to PNG ... * dialog.c : very small fix providing UTF8 support in AlertBox window titles (and always raising warning windows). * configure : if libXaw3dxft is installed as a shared library, compilation is now set by default to use it, rather than linking statically xpaint to libXaw3dxf.a 2010-07-18 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.1.5 * graphic.c : added "*allowResize: False" in Canvas*pane*form to prevent annoying widget initialization on certain platforms * xpaintrw/readWritePS.c : small fixes to handle correctly PS/PDF files whose names contain quotes or blank characters. 2010-07-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.1.4 * fatBitsEdit.c, Paint.c , Paintregion.c : several fixes in handling of alpha channel in fatbits editor - some affecting alpha channel image bits. * app-defaults : change zoom labels to correct values xx:1 instead of 1:xx * graphic.c : prevent fatbits editor getting called undeservedly by GetNonDirtyCanvas() routine ; removing alpha channel now moves it to memory rather than destroying it right away. * xpaintrw/readWritePS.c : fix for compilation of TeX/LaTeX files being called from random directories. * minor fixes throughout - thanks to the SUSE-Packman maintainer Detlef Reichelt <detlef@die-mafia.de> for help. 2010-06-02 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.1 * Paint.c , Paintregion.c : fixes in alpha channel routines. * fatBitsEdit.c : many fixes in fatbits editor. Refresh button added * graphic.c : reload file procedure didn't reload alpha channel - this is now fixed. * fontOp.c : potential segfault corrected. * small other (mostly random) improvements. 2010-05-16 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.0 * graphic.c, Paint.c : big improvements in handling of alpha channel ; alpha management menu is now explicit from canvas menu bar. Support still not quite complete at this point (regions do not appear yet in alpha mode). Should come for 2.9.1... * Paint.c, PaintRegion.c : fixed segfault occurring when using region operations in fatbits editor (regression introduced already in 2.8.9 which remained unnoticed up to 2.8.19 ...) * fontOp.c, fontSelect.c : UTF8 support should now be essentially complete. * xpaintrw/readWritePNG.c : fixed bug when writing PNG_COLOR_TYPE_PALETTE images with less than 16 colors (those images were wrongly converted to gray palette...) * several other small fixes and improvements throughout. 2010-04-17 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.19.1 (mostly cosmetic changes) * fileBrowser.c : added "ongoing" mode in File Browser (widget no longer closes when opening an image, allowing to browse files continuously). Performed a substantial code clean-up as well. * operation.c, graphic.c : menu improvements; one can now open an image from any canvas window. * misc.c : added RaiseWindow() routine to comply better with ewmh specifications. XMapRaised() replaced by RaiseWindow() throughout. * "snapshot" replaced by "screenshot" throughout. 2010-04-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.19 * fileBrowser.c : fixed minor annoyance in "save" and "saveas" routines - name of file is now again remembered when a filename has already been set. * graphic.c : fixed bug in ToolSelection switcher; "font" menu replaced by more powerful "text" menu; new entry added to edit/write text from text editor embedded in font browser. * iprocess.c : fixed bug in filter "adjust RGB colors" * fontSelect.c, fontOp.c : text sample is now editable, and this text can be imported on canvases. This includes being able to set fonts, colors, linespacing (etc) as editable text. Any UTF8 encoded file can be read and edited, and a small number of special commands are available to format such texts; for hints on how to use this, see "Doc/TextFormat.doc". Xpaint can thus be used as a text editor (sort of!), useful e.g. to create posters with text and graphics. * xpaintrw/readWritePS.c : support for reading a file as "enriched text". * main.c : new command line options -textfont and -astext, the latter for opening files as enriched text. * share/bin/imgmerge : small tweak to use a static PageInfo struct, otherwise imgmerge would segfault (gcc bug ?) 2010-03-13 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.18 * Minor fixes (UTF8 names in windows, rare segfault when using external viewer) * xpaintrw/readWritePNG.c : xpaint now saves correctly gray images which have an alpha channel. * xpaintrw/rwTable.c : introduces auto-detect mode for writing files (image type is guessed from suffix of file name, and set to PNG as a fallback). * xaw3dxft : changed library name to libXaw3dxft to avoid interfering with regular libXaw3d. Added hooks in 'configure' to (possibly) install and compile it as a shared library. Corrected an issue in xaw3dxft/List.c which could sometimes lead to a fatal X error. * Added man pages for imgmerge and pngconcat (provided by Debian maintainer Josué Abarca) * Removed dependency on Xft.h in PaintP.h which had the unfortunate effect of breaking C-Script compilation, e.g. in imgmerge. 2010-03-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.17 * Xpaint is now fully UTF8 compliant. This has been done rather cheaply by linking statically with a modified xaw3d library which is UTF8 & Freetype aware. This also means that anti-aliasing is enabled in the menus and text widgets, and that the X core font protocol is no longer used anywhere. * By default, Xpaint no longer depends on external xaw/xaw3d/xaw3dg libraries as it is compiled with its own improved xaw3d clone; this only adds approximately 250 kB to the binary executable. * Xpaint can still be used with 8 bit encoding by specifying the command option 'xpaint -encoding 8'. However the resource files XPaint* Messages* Help* should then preferably be converted back to a 8bit locale, otherwise some strange characters will show up in the menus, at least in languages which use non ASCII characters. 2010-02-17 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.16.1 * fontSelect.c, misc.c : introduced clickFocusCallback which fixes keyboard focus in fontSelect and in color picker ascii text input widgets (problem occurred e.g. under KDE). Use 2.8.16 with xpaint-2.8.16-keyboard-input.patch. 2010-02-12 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.16 * graphic.c, fontOp.c, fontSelect.c : Xpaint now uses the Xft protocol to display fonts, so that (in particular) all TrueType fonts are available, and the corresponding glyphs are nicely anti-aliased without resorting to a use of sub-pixel resolution. Another benefit is the possibility of rotating text, or even applying arbitrary linear transformation (however, writing fonts with a pattern instead of a plain color is no longer possible directly - for this, one can use instead masks or a fill procedure). * xpaintrw/readWritePNG.c : applied small patch from Stefan Husmann (Arch Linux maintainer) to take care of API deprecation in newer versions libpng-1.4.x. 2010-02-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.15 * PaintRegion.c : finally found and corrected long standing bug which plagued iteration of filters and undo procedures. * fileBrowser.c : several GUI improvements. * xpaintrw/readWritePS.c : improved handling of BoundingBoxes. Fixed bug in the use of 'psselect' which was found on the Fedora bugzilla list (many thanks to Paulo Roma Cavalcanti <promac@superig.com.br> for analyzing the issue) 2010-01-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.14 * graphic.c : memory management simplified and improved; added CRC32 checksum control to avoid duplicates. * xpaintrw/readScript.c : fixed potential bug occurring in rare circumstances. * Various fixes in batch scripts 'imgmerge', 'batch.c' and 'xpaint_ocr' GPLv3 licence specified there. * Included new debian files released by Debian maintainer Josué Abarca * xpaint.man.in : corrected a ­ issue (thanks again to Josué Abarca) 2010-01-20 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.13 * Paint.c : corrected nasty bug * graphic.c : GUI improvements. Border color of paint widget now indicates status of image (red: non editable, green: resize enabled, blue: has an alpha layer, black: otherwise). * image.c : ImagaToPixmap() et al modified so as to manage alpha channel mode once for all (rather than repeating this for each of the image loaders). 2010-01-18 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.12 * misc.c, graphic.c : some more fixes for alpha channel issues. 2010-01-17 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.11 * fileBrowser.c : browserResized() : included patch for accommodating bug in certain versions of the Xaw3d library * Paint.c : PwGetPixmap() modified so as to work independently of zoom value. Saving a file under zoom<1 now works !! * graphic.c : there is now support for adjusting join and cap style of lines being drawn. Fixed handling of memory box. * Code for alpha channel completed and made more robust (substantial changes in graphic.c, Paint.c, PaintRegion.c) 2010-01-10 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.10 * graphic.c : many GUI improvements. Some alpha channel fixes. (arbitrary linear transformation of alpha channel still not implemented). * lineOp.c : fixed arrow and vector drawing under zoom != 1 (were correctly written to pixmap but incorrectly shown on canvas). * fileBrowser.c : a few cosmetic changes to make code more robust. * xpaintrw/readWritePNG.c : fixed readPNG() for non transparent PNG images possessing a palette of colors. 2010-01-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.9 * polygonOp.c : segfault bug corrected. Polygonal regions can now be selected correctly under zoom values other than 1. * xpaint.h : various API modified to include alpha channel (in images, paint canvases, clipboard, memory stack...) * PaintUndo.c : implemented alpha channel in Undo stacks * PaintRegion.c, graphic.c : routines to set/show/edit the alpha channel are now implemented in a fairly complete manner. * readWritePNG.c : xpaint now saves a canvas with an alpha channel as a PNG file with a corresponding alpha channel. * readWriteXPM.c : xpaint now saves a canvas with an alpha channel as an XPM file with a "None" color (reduced to a 0/1 mask). (By default, alpha<128 is considered to be transparent and alpha>=128 to be opaque. The threshold value 128 can be changed from the options.) * readGIF.c : xpaint can now read alpha channel of GIF89 files possessing transparent pixels (setting transparent pixel in writeGIF.c not yet implemented). 2009-12-09 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.8 Interim release with partial support for transparent images; alpha channel is now correctly read when loading PNG and XPM images. Easier management and writing support will be implemented in 2.8.9. * xpaintrw/readGIF.c : xpaint will now open all frames of animated GIF images, and not just the first frame - support of this feature was already there, but had never been made accessible from the GUI ! * xpaintrw/readWritePNG.c : xpaint now detects PNG images possessing an alpha channel and loads them properly. The RGB values and alpha channels can be edited separately (but not yet mixed back easily). * xpaintrw/readLXP.c : preliminary implementation of layered xpaint image format LXP. File share/c_scripts/templates/script.c used as template. * pattern.c : new button introduced to modify background color (thus duplicating functionality from the separate background color widget). * fileBrowser.c : widget improved. Four new buttons added to get directly to home, root and current directory, and to show/hide dot files. The browser of loaded files now has buttons for editing C scripts and managing layers (implementation somehow works, but is not yet complete). * iprocess.c : corrected segfault bug occurring in certain circumstances, e.g. when loading recursive image C-scripts. In particular, "layer" example share/c_scripts/layers/combine.c now works again. 2009-11-18 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7.3 (very minor changes) * graphic.c : corrected very tiny bug in resizeCanvas() routine which resulted in occasional disappearance of Fatbits cursor, when the canvas was resized under certain zoom reduction values. * fatBitsEdit.c : added convenience routine FatbitsEditorDestroy(paint) (not yet used inline - could possibly be used from C scripts). * small addition in Local.config file 2009-11-15 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7.2 (very minor changes) * Further cosmetic fixes and code cleaning ; X error handler improved (just in case). * snapshot.c : taking a snapshot from the tools window now unmaps the window (so that any window stacked behind can be captured); spurious warning 'bad pixmap' from libX11 has been eliminated. 2009-11-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7.1 (released only as a patch to 2.8.7). * Further cosmetic improvements and code cleaning not really worth bothering (e.g. popup menus which, when users change their mind and no longer want to use them, may not immediately popdown as would be expected when clicking randomly outside, e.g. on the canvas ...) 2009-11-04 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7 released. * graphic.c, menu.c, PaintEvent.c : a substantial number of cosmetic changes made to further improve the menu behaviour. * fileName.c renamed as fileBrowser.c * fileBrowser.c : Some "flickering" issues in the browser have been corrected. The file browser of "loaded files" now include ad hoc fields and buttons for modifying the scaling of vector format images (PS/PDF/DVI/TeX/LaTeX/SVG) as well as for selecting a page in multi-page documents. Now, Xpaint can thus be used as a practical viewer for such documents - though for this purpose it's certainly not as fast and optimized as specialized viewers ... * readWritePS.c : multipage PostScript files require 'psselect' from the psutils package. (This is a very simple program so we may consider including it in the next version of xpaint to remove that dependency.) DVI files are now accepted, along with PS/PDF/TeX/LaTeX/SVG. * print.c : selecting PDF option now (really) saves file as PDF rather than PostScript. * Merged Changelog and (unmaintained) file Doc/CHANGES 2009-10-27 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.6.1 released. * bug fixes : main.c : xpaint did not accept setting default zoom < 100% through command line graphic.c : underestimated evaluation of canvas window size for large images, resulting in image not being fully displayed even when it could. PaintRegion.c : segfault bug occurring in certain circumstances when dragging a region outside viewport, in region transparency mode. 2009-10-26 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.6 released. * Extensive changes in many parts, to provide capability for zoom = 1/n, while performing all possible operations under such a zoom. This means that anti-aliasing can be obtained by using e.g. zoom = 1/3 and then cloning the canvas with the given reduction. * magnifier.c: Introduced a magnifying glass, based on code of 'xlupe' by Thomas Runge (runge@rostock.zgdv.de) * operation.c: menu now includes an item to open the magnifying glass, and a browser for all images which have been opened or loaded from the command line. * fileName.c : the buildBrowser() routine has been extended to have a mode ('type=4') showing the list of loaded images. * graphic.c: edit menu includes 2 items for cloning the canvas (with or without reduction) * a lot of bugs have been ironed out, e.g. a crash in the polygon selection area, and a very long-standing bug in the memory management of menu.c which used to cause (fortunately unfrequent) random crashes. 2009-10-16 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.5 released. * graphic.c, user visible changes : added a zoom button and a new toggle allowing to resize the canvas, using mouse or arrow keys. Several other related improvements have been made for zooming/resizing, along with a few minor fixes (the layer example "layer.c" compiles again without segfaulting.) 2009-10-13 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.4 released. * pattern.c : Fixed segfault bug in color/pattern budget, which occurred when creating new brushes. * print.c : added new toggle so as to possibly produce a compressed PS file, or send to printer a PDF file rather than a PS file. The annoying printing notification popup has been replaced by a less intrusive notification. Many other small improvements - e.g. output postcript file can be selected with a file browser. * xpaintrw/readWritePS.c : the PostScript generator has been considerably improved. XPaint is now capable of producing strongly compressed PostScript files, of weight increased hardly by more than 30%-35% when starting from a PNG file of the same resolution, and the process is faster than before - it seems that even gimp does not yet take care of this, its PS files can often be reduced to less than 50% of their current size (huge thanks to Peter Szabo for showing the way with his sam2p program.) A standalone 'ppmtops' utility has been included for potential re-use elsewhere. * Clarification of the licence. Xpaint is an old program, many parts of which were written at a time when the GPL was not so pervasive. To the best knowledge of the current maintainer, all parts where written under permissive licences which are compatible with the GPL. J.-P. Demailly thus puts under the GPLv3 all code developped by him in the last twelve years - that's probably more than 30% of the total amount of code, and the program as a whole should thus be considered as GPLv3. All related utilities ('ppmtops', C scripts, etc) are also put under the GPLv3. 2009-10-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.3 released. * Included 2 patches from Mandriva packagement experts, fixing some minor compilation problems and potential security issues. * xpaintrw/readWritePS.c : xpaint is now able to display TeX, LaTeX, PDF and SVG files using image conversion from external ad hoc programs. Option -dpi <dpi value> can be used to adjust size of image. 2009-10-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.2 released. * pattern.c : found and fixed two long standing segfault bugs (fortunately occurring only in not so frequent circumstances) * Set default gridcolor to grey80 on TrueColor displays, a less intrusive color than black. 2009-09-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.1 released. * Introduced rectangular (not just square) snap grids. Color of grid can be changed to arbitrary color. * graphic.c : corrected segfault bug in simplemenu switcher (selector popup). 2009-09-27 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.0 released. * Menu popups have been entirely reworked. Their behaviour is now more fluid - and similar to the default behaviour of modern toolkits like GTK/qt - so users should feel less disturbed. (this required numerous changes in menu.c and app-defaults) * Fixed size handling of Canvas windows under maximize/unmaximize procedures. * Stability should be considerably improved. Some memory leaks have been removed as well. * Added new command line options: -undosize <num> (set undo memory limit) -operation <num> (start with operation <num> set in tool panel) -filter <file> (define filter by using <file> as C-script) -proc <file> (define procedure by using <file> as C-script) * Added support for using menu popups in C script filters See share/c_scripts/filters/clean.c for an example. This means that C script filters can involve adjustable parameters which can be easily changed (i.e. without needing a recompilation each time the parameters are changed.) * Added support for using menu popups in C script procedures See share/c_scripts/procedures/proc_with_params.c for an example * iprocess.c, xpaintrw/readScriptC.c : added support for running batch jobs (for mass processing of images, using xpaint as the engine); see share/c_scripts/batch/batch.c share/bin/imgmerge * Added batch script 'imgmerge' which uses xpaint to convert and concatenate image files into a single PDF file. This also makes use of Peter Szabo's 'pdfconcat' program (GPL, included). * Added support for OCR (with the ocrad engine by default) The OCR engine(s) can be specified in the bash script /usr/share/xpaint/c_scripts/bin/xpaint_ocr This means that xpaint can be easily used as a GUI for command line OCR engines ('xpaint_ocr' makes use of the 'xless' pager, by default, but any other pager/editor can be used instead). * brushOp.c: system wide brushes are no longer hardwired, and can now be configured from the SHAREDIR directory. * Added additional brushes provided by John David Gray <kahdgarxi@gmail.com> which are useful to draw electronic circuitry. Also included a patch of him introducing three new patterns and extending the drawVisibleGrid() routine in Paint.c * Fixed (and improved as well) behaviour of snap and grid routines, also using ideas of JD Gray. * Changed rotations to use trigonometric positive rotation rather than clockwise. This was too unnatural to me ! * Numerous bug fixes. Thanks to Mattis Michel <sic_zer0@hotmail.com> for correcting a bug in the snap routines and for providing further improvements; Mattis noticed - and urged correction - of a critical bug in the "Load clipboard" procedure; he also suggested putting WM hints on minimal size of widgets so as to avoid random crashes under wild resizing of the windows. * Updated the man page - which had actually been neglected for a couple of years ...
2023-01-22 18:41:52 +01:00
share/xpaint/include/crc32.h
share/xpaint/include/graphic.h
share/xpaint/include/hash.h
share/xpaint/include/image.h
share/xpaint/include/menu.h
share/xpaint/include/messages.h
share/xpaint/include/misc.h
share/xpaint/include/operation.h
share/xpaint/include/ops.h
share/xpaint/include/palette.h
share/xpaint/include/patchlevel.h
xpaint: update to release 3.1.4, using wip/xpaint. Packaged in wip by @adam + a couple of changes by @vins Changes (since version 2.7.8) 2021-08-14 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.4 * arcOp.c : the DrawArc procedure now checks that the arc is not drawn with a zero linewidth - otherwise some pixels could have been missing, and any later fill area procedure could then have led to unexpected results. This minor bug (or misbehavior?) has been fixed. * image.c : if installed, dvipng can now be used as an alternative to the libdvipgm library, at the expense of a small slowdown in the output. This allows TeX input even without libdvipgm installed, dvipng being installable independently. 2021-02-12 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.3 * graphic.c : the "Text" menu has been substantially improved. Text and TeX/LaTeX input of arbitrary length, size, color can now be edited and converted to either a bitmap image or vector PostScript/PDF with embedded fonts. * More extensive testing - and a lot of small details fixed 2021-01-28 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.2 * Small improvement of versions 3.1.0, 3.1.1 with bug fixes. Xpaint can now be compiled without dvipgm (at the expense of losing some TeX functionality). Thanks to testers for feedback! * This version supports the use of layers (files *.lxp = Layered XPaint files). This is done via the C script editor. Any collection of images can be combined into a new merged image by a suitable C procedure. See example in directory share/c_scripts/templates/ * Compiling against libkpathsea and libdvipgm (from the dvipgm-1.x.tar.bz2 package, x >= 2) is needed to enable TeX input processing - otherwise the compilation scripts will disable TeX input. A minimal TeX environment is also needed to allow TeX interaction. * xpaintrw/readLXP.c : routines for reading LXP files * iprocess.c : routines for the creation of LXP files * image.c : ImageDup() procedure added * operation.c : new option for cleaning temporary files * This version has reached all capabilities that had been planned since a long time: layer handling, vector graphics operations, possibility of TeX input and of mathematical drawings, programmatic creation of images, filters and graphical functions. Therefore Xpaint will probably enter into maintainance and bug correction mode. 2021-01-27 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.1 * Small improvement of version 3.1.0 with bug fixes. * This version supports the use of layers (files *.lxp = Layered XPaint files). This is done via the C script editor. Any collection of images can be combined into a new merged image by a suitable C procedure. See example in directory share/c_scripts/templates/ * Compiling against libkpathsea and libdvipgm (from the dvipgm-1.x.tar.bz2 package, x >= 2) is needed to enable TeX input processing - otherwise the compilation scripts will disable TeX input. A minimal TeX environment is also needed to allow TeX interaction. * xpaintrw/readLXP.c : routines for reading LXP files * iprocess.c : routines for the creation of LXP files * image.c : ImageDup() procedure added * operation.c : new option for cleaning temporary files * This version has reached all capabilities that had been planned since a long time: layer handling, vector graphics operations, possibility of TeX input and of mathematical drawings, programmatic creation of images, filters and graphical functions. Therefore Xpaint will probably enter into maintainance and bug correction mode. 2021-01-24 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.0 * This version now supports the use of layers (files *.lxp = Layered XPaint files). This is done via the C script editor. Any collection of images can be combined into a new merged image by a suitable C procedure. See example in directory share/c_scripts/templates/ * Compiling against libkpathsea and libdvipgm (from the dvipgm-1.x.tar.bz2 package, x >= 2) is needed to enable TeX input processing - otherwise the compilation scripts will disable TeX input. A minimal TeX environment is also needed to allow TeX interaction. * xpaintrw/readLXP.c : routines for reading LXP files * iprocess.c : routines for the creation of LXP files * image.c : ImageDup() procedure added * operation.c : new option for cleaning temporary files * This version has reached all capabilities that had been planned since a long time: layer handling, vector graphics operations, possibility of TeX input and of mathematical drawings, programmatic creation of images, filters and graphical functions. Therefore Xpaint will probably enter into maintainance and bug correction mode ... 2021-01-21 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.5 * Vector drawing capabilities improved and hopefully almost complete. * Xpaint now allows the use of TeX input in mathematical drawings, provided it is compiled with the compilation flag -DHAVE_DVIPGM. The libdvipgm and libkpathsea libraries are required for this. * The new 'vxp2tex' utility converts VXP data into a TeX file that can be used with pdftex or pdflatex. * lineOp.c : ticks and graduation procedure added. * graphic.c, image.c, iprocess.c : several fixes and improvements. 2021-01-09 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.4 * This version has acquired substantial vector drawing capabilities. Just open 'Options->VXP vector data Editor' to enable vector drawing operations. Most of them are recorded in a plain text "VXP format" *.vxp. The external program 'vxp2ps' converts these data into (vector) postscript, and 'vxp2dkw' can be used to convert them for use in in the handwritten note editor deskwrite. Such Postscript files can be easily converted to PDF or SVG. * Xpaint can also read and rasterize *.vxp files (but at this point all operations that are not translated right away into vector data are ignored, even though they are recorded in the VXP file). * graphic.c, operation.c, misc.c, iprocess.c : extensive additions to implement VXP data processing. * share/c_scripts/procedures : canvas+vxp.c added as a new example. C scripts can be used to produce VXP data. 2020-08-04 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.3 * This version of xpaint requires in principle libXaw3dXft-1.6.2h (but would run with 1.6.2d,e by removing the compilation flag -DHAVE_NEWEDITINGSTYLE) * graphic.c: a new option has been introduced, allowing xpaint to use more easily graphics tablets, more specifically the user space drivers provided with deskwrite on Sourceforge. * menu.c: SetFocusOn() has been fixed. This allows the input focus to be preserved in active text fields, even when the cursor leaves the top parent window (as is usually expected with modern desktop interface guidelines ...) * iprocess.c: small improvement of the Gamma/RGB filter. * Further small fixes throughout, especially in the build scripts and the debian packaging. 2020-06-29 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.2 * This version of xpaint requires libXaw3dXft-1.6.2h (or later versions of the libXaw3dxft library - the changes between 'f', 'g' and 'h' merely consist of introducing a new parameter to allow scrollbars of text widgets to be on the right side, plus some minor improvements in the edition process) Removing -DHAVE_NEWEDITINGSTYLE in Makefile.am would make xpaint compatible with earlier versions 1.6.2d,e of libxaw3dxft with essentially no change, except for the text input editing behavior of Backspace and Delete keys. * xpaintrw/readWritePNM.c: is now using a more recent version of libnetpbm, rather than the completely obsolete version from the 1990's that was embedded in the original code of xpaint. One consequence is that libnetpbm10-dev or preferably libnetpbm11-dev are now needed to compile xpaint, another one is that PPM/PAM files with an alpha channel can now be read and written. Adjust the NETPBM defines (-DNETPBM10 or -DNETPBM11) according to the installed version of libnetpbm. * help.c: the help widget now has two independently resizable panes (topics and explanations). * pattern.c: correction of old bug (that had however no visible effect before 3.0.1). * graphic.c: exchange of primary and secondary colors or patterns is now accessible by clicking on the red cross below the color picker (shown as an eye). Similar addition for pattern.c 2020-06-16 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.1 * This version of xpaint requires libXaw3dXft-1.6.2f (or later versions of the libXaw3dxft library). Removing -DHAVE_NEWEDITINGSTYLE in Makefile.am would make it compatible with earlier versions 1.6.2d,e with essentially no change except for the text input editing behavior of Backspace and Delete keys. * print.c: by default, xpaint no longer depends on cups-bsd commands, (but they can be re-enabled via an adjutsment of the app-defaults files). * xpaintrw/readWritePS.c: the BoundingBox of a file saved as PS/PDF should now be set appropriately. * graphic.c, *Op.c: extensive additions. Xpaint can now record all operations that are performed as vector data, in the so called VXP format. The recording starts as soon as the VXP editor under the Options menu is started, and these data can be saved into a file <name>.vxp * readWriteJP2K.c: has been ported to work with openjpeg version 2 (JPEG2000 format), including alpha channel. * Various other small fixes throughout (SVG import, ...) * At a later stage, it will be possible to convert these VXP files to other vector formats such as eps, pdf or svg, and import them back to xpaint. There will be also an option to insert TeX input and convert the data into a (La)TeX file. 2020-05-25 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.0 * bitmaps/toolicons: new set of icons, generated from SVG data. * app_defaults: the app_defaults files have been reorganized so as to separate linguistic strings and other data, especially widget sizes. Three sizes are now offered: big, medium, small, to accommodate HiDPI screens or low resolution screens. * operation.c: the tool window is now fully resizable. In order to actually change the size of icons, users can copy /usr/share/xpaint/bitmaps/toolicons/ into $HOME/.xpaint/toolicons/ and generate icons with larger or smaller size there. Just type ./generate_icons <height> in $HOME/.xpaint/toolicons/ to produce a new set of icons with the given height (the xpaint package is distributed with icons of default height 36). The shell script "generate_icons" requires inkscape to work. * graphic.c: the parameter btnheight is now used to resize the palette elements as well as the height of buttons. This is useful for HiDPI screens (as well as for lower resolution screens of older computers). * main.c: new option -blind that keeps xpaint running under the hood when batch procedures are invoked. * xpaintrw/readWritePS.c: SVG import has been updated to work with inkscape-1.0. * The change of major number in this version anticipates the introduction of some vector graphics capabilities in the versions 3.x.y to come. (Right now, the only vector graphics capabilities are PS, PDF, SVG import). 2020-05-21 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 2.10.3 * lineOp.c : under the "segment" operation, users will now find new "Position" and "Measurement" tools. These tools do not draw anything, but instead they record the locations of pixels that are clicked on, and compute lengths and angles. * iprocess.c : The "Perspective" filter has been vastly improved. It should now enable users to correct the perspective of a distorted picture taken by a camera, or to create artificial perspective when producing a drawing. This can be used in connection with the new "Position" tool, so as to specify points on the canvas. * iprocess.c : The API of C scripts introduces a new public procedure PixelInterpolate(unsigned char *op, Image *input, double x, double y) that can be used to smooth pixels, under transformations that map integer coordinates into float values (as is the case e.g. for rotations or homotheties with arbitrary factor). This will sometimes improve the output of such operations (but may also make the image fuzzier). * Two new C scripts "similarity.c" and "projective.c" have been added. They show in particular how to exploit the PixelInterpolate() procedure. * Help and message files have been edited to explain details of the new functionalities. 2017-11-13 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 2.10.2 * Minor compilation fixes in iprocess.c and xpaintrw/readWriteJP2K.c thanks to the OpenSUSE team. * Bug in operation.c : exitPaint(...) could trigger a segfault when quitting xpaint without saving the canvas. Thanks to Anthony J. Bentley from the OpenBSD team for reporting the bug. * misc.h : srandom() is nowadays always of void type. * Minor fixes for the calculation of the maximum canvas size. 2016-12-10 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 2.10.1 (a substantial update!). * Xpaint includes a new command line option -btnheight that adjusts appropriately the size of all internal widgets in case a big menu font is used (e.g. by setting the option -menufont , or by changing the app-defaults file). This is very useful if you have a high resolution screen. Many small local modifications of various source files in the main tree have been necessary for this. * A new option -toolmode 0,1,2 can be used to initialize the display of the tool window. Also adjustable dynamically by resizing that window. * Default canvas size has been set to 1024x768 Related command line options are -canvassize and -winsize that can be used independently to adjust the default size of canvas and main window. * The app-defaults files and help files have been modified to accommodate the above additions. * The "Print" widget has been improved, and its menubar is now again available to adjust page formats (a bug introduced probably a long time ago prevented it to work !) * A newer version libXaw3dXft-1.6.2e.tar.bz2 has been posted. The only change is a 3 lines addition that circumvents (what seems to be) a bug occurring in certain X11/Xorg implementations, e.g. the intel driver, version 2.99.917. Otherwise this will make no difference. * Changed the library name librw to libxpaintrw to avoid shared library conflicts. Thanks to Michael Orlitzky for pointing out the issue. * Applied a number of patches from gentoo.org that substantially improve the compilation process. Thanks to Julian Ospald <hasufell@gentoo.org> 2015-01-02 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10.3 * Port to the newer libXaw3dXft-1.6.2d.tar.bz2 (the latter is actually a requirement, this version no longer compiles with libXaw3dXft-1.6.2c). The point is that libXaw3dXft-1.6.2d has improved binary compatibility with plain libXaw3d-1.6.x * Only further cosmetic changes, no change in functionality. 2014-04-17 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10.2 * Minor fixes in 'configure.ac' and 'configure.old' scripts Xpaint can now be compiled again with plain Xaw or Xaw3d (this is NOT recommended, Xaw3dxft definitely gives much better results !) Thanks to Stefan Husmann (Arch Linux) for helpful reports in this respect. * 'configure' (based on autotools) and 'configure.old' (based on imake) should in most cases give essentially equivalent binaries. * PDF files are now read by using mudraw if mupdf & mupdf-tools are installed (otherwise Xpaint falls back to the formerly used solution: pdf2ps + ghostscript, a much slower one...) * Xpaint can now even import libreoffice files as images as soon as libreoffice is installed (assuming /usr/bin/libreoffice is a valid path to the main program) 2014-04-09 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10.1 * Includes the "version_and_focus_patch_for_2.9.10" and other minor fixes. * The alpha channel menu now includes a new function that allows editing as RGB values the image that appears when transparency is applied on a background of the selected background color - white being the default (this removes the transparency levels afterwards, so as to get a pure RGB image). * Bug (probably very old) corrected : selection of background color always resulted in black being chosen ! 2014-03-03 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10 * This version should preferably be compiled with libXaw3dXft-1.6.2c, although it still works Ok with libXaw3dXft-1.6.2b. * readWritePNG.c: fixed bug occurring when writing grayscale images possessing no more than 16 colors. * readWriteJPEG.c: JPEG images in CMYK colorspace are now handled properly (they will still be memorized as RGB, so the original CMYK information is lost, but at least they are shown correctly). * fileBrowser.c: "Save" and "Save as" menus now include the option to adjust JPEG quality between 50% and 100% (default is 90%) * fileBrowser.c: improved logic : the file browser now remembers file names when changing directories, and also takes into account default extension when specifying file format. * fileBrowser.c: thanks to a new feature from libXaw3dXft-1.6.2c (possibility of creating colored lists), xpaint now implements file type coloring in its file browser - at this point this is guessed merely from the suffix of the file. * operation.c: Canvas menu reorganized - it is now named "File menu" so as to conform to general use. Except from reordering the items, the main functionality is unchanged. * pattern.c: bug fixes. A segfault problem in the zoom selector has been corrected, and contextual help has been fixed. 2013-01-27 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.9.4 * This version should be compiled with libXaw3dXft-1.6.2b * RGB channel separation procedure fixed and improved * Fix in CRC data handling of regions in memory. * XPaint now remembers better the position of regions saved in memory. The recorded position can now be changed or reset to origin through the memory management menu. * compilation fix for pgf2pnm with newer libpgf-6.12.24 * Avoid "bool" variable throughout, as this is a typedef in <stdbool.h> * Fixes to configure scripts, thanks to Daniel Macks (fink project) * Minor GUI improvements 2012-02-14 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.9 * Xpaint now uses (or tries to use!) autotools. * libxaw3dxft is now a separate package (but is still a requirement, and in fact should be installed before). * xpaintrw/rwTable.c : segfault fix (occurring randomly) fixed in readMagic(). * minor fix in fontSelect.c, certain fonts were possibly missing in the font browser, in some rare circumstances. * very minor fix of scrollbar behaviour in graphic.c. * misc.c : new procedure SetWMInputHint() that helps solving some quirks. 2012-01-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8.4 * minor fixes in fileBrowser.c (adjustable height of text entry for the file name, resize procedure improved). 2011-10-13 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8.3 * xpaintrw/pgf-util/Makefile : add '-fpermissive' flag to allow compilation with recent (more picky!) versions of g++ * Xaw3dxft/Viewport.c : position of scrollbars can now be adjusted through parameters sbShift[X,Y][1,2]. No public API change, so this addition should be upward compatible. * graphic.c : some small fixes in the shellHandler routine to accommodate odd behavior of scrollbars with xorg recent versions, using the new sbShift feature. 2010-12-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8.2 - nothing really new, just very small fixes * Integrated patch to facilitate compilation with gcc-4.5 * app-defaults files : slight improvement of X event management in pull-down menus. * print.c : slight improvement of X event management in print widget. * fontOp.c : fixed color issue (color not initialized) when moving written text with arrow keys. * Very small changes in Xaw3dxft (minor Xaw3dXft.h API update) 2010-11-08 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8 * Xaw3dxft : code clean-up. New files Xaw3dXft.h and Xaw3dXft.c now contain the specific Xaw3dxft parameters and routines. A couple of small improvements to correct minor quirks in the menu entry highlighting behaviour. * main.c, graphic.c : changes made to accommodate the API changes introduced in Xaw3dxft. Further code clean-up. * image.h, graphic.c, iprocess.c : modified definition of the imageprocessinfo struct, so that hopefully compilation still works with gcc 4.5 (gcc-4.5 appears to be more picky with struct definitions). Thanks to Fedora maintainer Paulo Roma Cavalcanti <promac@gmail.com> for reporting the issue. 2010-11-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.7 * Arrow keys and "Backspace", "Return", "Escape" keys can now be used in all drawing operations whose effect is not immediate, especially all routines from arcOp.c, lineOp.c, polygonOp.c, freehandOp.c, splineOp.c, TextOp.c Arrow keys allow moving objects around before they are completely drawn, "Escape" restarts the operation from scratch, "Return" terminates the operation, and "Backspace" rewinds the course of operation backwards. * freehandOp.c : this operation now allows to draw arbitrary combinations of freehand and polygonal shapes and should be easier to use or to modify interactively thanks to the key bindings. * sprayOp.c : minor code clean-up. * updated accordingly Help files. 2010-10-25 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6.4 A couple of small improvements in spline, polygon, text and color operations. * fontOp.c, splineOp.c, polygonOp.c : implemented "Backspace" key action, i.e. removing last point or last character; "Escape" now entirely restarts the operation from the beginning. Other small improvements (including correction of a potential segfault occurring in some strange circumstances...); polygonOp() code is now also much simpler and easier to read. * graphic.c : multiple clicks on any of the three color/pattern selection discs now switch primary and secondary colors/patterns. * updated accordingly Help files. 2010-10-08 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6.3 - minor bug fix release - nothing really serious. * ops.h : minor compilation issue fixed. * graphic.c : corrected segfault bug of RegionToRGBA channels (occurring only when alpha channel was to be saved.) * chroma.c : fixed minor scrolling issue in color variance scrollbars. * graphic.c : added new menu lines to proceed more easily to editing of alpha channels or images in memory. * updated accordingly Help files, messages and app-defaults files. 2010-09-26 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6.2 * print.c : printing was completely broken, as a result of using double values instead of float values. Reverted to float ! * chroma.c, color.c, magnifier.c, fontSelect.c : revert to float ! * iprocess.c : fixed bug occurring only in very rare circumstances (creation of image with an alpha channel, being edited and compiled on the fly through the embedded C-script editor) * graphic.c : small improvement in ModifyRGB (new routine to rescale gray levels linearly from given thresholds). 2010-09-14 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6 * xpaintrw/rwTable.c, xpaintrw/readWriteTGA.c : fixes in TGA format, so as to prevent that xpaint could hang on certain non TGA files. Make sure anyway that TGA is parsed as a last resort, since TGA is a strange format without signature. * image.c, iprocess.c, graphic.c : substantial improvements in filter routines : - Added new "Merge" filter : helpful to combine smoothly an image with the underlying canvas. Works according to 4 different modes - Added new "Distortion" filter which can be used to produce local deformations - Added powerful Floyd-Steinberg algorithm (color quantification enhanced with a diffusion process). - Replaced "ModifyRGB" by a generalized RGB transformation procedure with 7 different modes, including Gamma correction (with independent r_gamma, g_gamma, b_gamma parameters), and linear transform. - Fixed several shortcomings of "Normalize contrast" and "Emboss" routines; "Emboss" now has 2 parameters allowing linear correction. - Renamed "Tilt" as "Projective Transform" with several enhancements. - Renamed "ImageCopy" as "ImageCopyData" which says more accurately what it does. * graphic.c : Memory menu : management of R,G,B and alpha channels : - Added extraction of red, green, blue, alpha channels from region - Added merge procedure for those channels * msgedit.c : new utility which can be used to extract strings from the English version of "Messages" and combine them with a partially localized "Messages_XY" for any other language - useful as well to avoid discrepancies between languages! * Many updates to Message and Help files. 2010-09-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.5 * xpaintrw/readWritePNG.c : fixed WritePNG() for alpha channel images possessing less than 16 black and white colors, which xpaint tried to write in an incorrect PNG mode. * graphic.c : fixed segfault bug when invoking "Clone Canvas" procedure. * xaw3dxft : a few hacks to work around minor display bugs related to Xft anti-aliasing/composition effects on certain X servers (especially proprietary NVIDIA ...) * main.c : new command line options -tooltips, -notooltips * operation.c, graphic.c : implemented tooltips (they can be disabled from the tools/help menu). * man page and help files : updated. 2010-08-15 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.4 * xpaintrw/readWriteTGA.c : added support for TGA format (borrowed mostly from mtpaint project). * xpaintrw/rwTable.c : code clean-up. * Paint.c, PaintRegion.c : fixes for certain complex situations involving region selection with masks and alpha channel. (Segfault could occur in Fatbits editor under those circumstances). * graphic.c : Suppression of alpha channel could lead to segfault. 2010-08-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.3 * xpaintrw/readWriteICO.c : imported a lot of code from the 'icoutil' GPLed package. As a result, xpaint can now read most Windows ICO files, even those containing embedded compressed PNG/JPG images which icoutil cannot fully open. Support for ICO masks as alpha channel, and for writing single image ICO files. * xpaintrw/readWritePGF.c : PGF image format support improved, thanks to 'pgf2pnm' provided by Christoph Stamm <christoph.stamm@fhnw.ch> (creator of the PGF format). libpgf and libpgf-dev are needed only optionally to compile 'pgf2pnm', which then provides PGF support in xpaint. However, xpaint itself does not link with libpgf and does not need libpgf-dev to be compiled. The alpha channel of PGF images is fully supported. * graphic.c : improvements/bug fixes in the "Clone with Zoom" procedure. Now works for zooming/downscaling images, with/without interpolation, and for adjusting alpha channel as well. * graphic.c, PaintEvent.c : much more powerful implementation of the "Delimit region" procedure, according to six different options (connected/non connected/color range regions, or complements of such regions). * The help files have been updated to reflect all current functionality of XPaint (Spanish help additions should be revised by a native speaker !) 2010-07-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.2 * xpaintrw/*.c : huge code clean-up. Saving files now show up a warning when the image possesses an alpha channel, but the format chosen does not support it (completely or in part). Note: saving in PNG should almost always be a safe choice ... * xpaintrw/readWriteTIFF.c : support substantially improved, including alpha channel read/write. More exotic TIFF formats unsupported. * xpaintrw/readWriteBMP.c : many more BMP image format types are now supported, including full support for images with an alpha channel (read/write). * xpaintrw/readWritePNM.c : provisions made to include support for alpha channel in PNM (this is a specific extension of xpaint : an RGB image concatenated with a gray level image of the same size - and '\n' in between - is viewed as RGBA data). * xpaintrw/readWriteJP2K.c : added support for JPEG2000 image format. Either libopenjpeg (default) or libjasper (optionally) can be used. Full support for alpha channel (requires openJPEG from subversion at this point now, since "stable" version 1.3 has insufficient alpha channel implementation...). * xpaintrw/readWritePGF.c : added support for PGF image format. This requires libpgf and pgf to be installed (but xpaint does not need to be linked against libpgf, and its compilation does not require libpgf-dev files either.) * xpaintrw/readWriteSGI.c : repaired old dormant code to read run-length encoded SGI/Irix image files. Checked to work fine. * xpaintrw/readWriteICO.c : unsupported, very buggy code. Disabled at this point. Instead, use e.g. 'icoutil' to convert those files to PNG ... * dialog.c : very small fix providing UTF8 support in AlertBox window titles (and always raising warning windows). * configure : if libXaw3dxft is installed as a shared library, compilation is now set by default to use it, rather than linking statically xpaint to libXaw3dxf.a 2010-07-18 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.1.5 * graphic.c : added "*allowResize: False" in Canvas*pane*form to prevent annoying widget initialization on certain platforms * xpaintrw/readWritePS.c : small fixes to handle correctly PS/PDF files whose names contain quotes or blank characters. 2010-07-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.1.4 * fatBitsEdit.c, Paint.c , Paintregion.c : several fixes in handling of alpha channel in fatbits editor - some affecting alpha channel image bits. * app-defaults : change zoom labels to correct values xx:1 instead of 1:xx * graphic.c : prevent fatbits editor getting called undeservedly by GetNonDirtyCanvas() routine ; removing alpha channel now moves it to memory rather than destroying it right away. * xpaintrw/readWritePS.c : fix for compilation of TeX/LaTeX files being called from random directories. * minor fixes throughout - thanks to the SUSE-Packman maintainer Detlef Reichelt <detlef@die-mafia.de> for help. 2010-06-02 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.1 * Paint.c , Paintregion.c : fixes in alpha channel routines. * fatBitsEdit.c : many fixes in fatbits editor. Refresh button added * graphic.c : reload file procedure didn't reload alpha channel - this is now fixed. * fontOp.c : potential segfault corrected. * small other (mostly random) improvements. 2010-05-16 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.0 * graphic.c, Paint.c : big improvements in handling of alpha channel ; alpha management menu is now explicit from canvas menu bar. Support still not quite complete at this point (regions do not appear yet in alpha mode). Should come for 2.9.1... * Paint.c, PaintRegion.c : fixed segfault occurring when using region operations in fatbits editor (regression introduced already in 2.8.9 which remained unnoticed up to 2.8.19 ...) * fontOp.c, fontSelect.c : UTF8 support should now be essentially complete. * xpaintrw/readWritePNG.c : fixed bug when writing PNG_COLOR_TYPE_PALETTE images with less than 16 colors (those images were wrongly converted to gray palette...) * several other small fixes and improvements throughout. 2010-04-17 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.19.1 (mostly cosmetic changes) * fileBrowser.c : added "ongoing" mode in File Browser (widget no longer closes when opening an image, allowing to browse files continuously). Performed a substantial code clean-up as well. * operation.c, graphic.c : menu improvements; one can now open an image from any canvas window. * misc.c : added RaiseWindow() routine to comply better with ewmh specifications. XMapRaised() replaced by RaiseWindow() throughout. * "snapshot" replaced by "screenshot" throughout. 2010-04-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.19 * fileBrowser.c : fixed minor annoyance in "save" and "saveas" routines - name of file is now again remembered when a filename has already been set. * graphic.c : fixed bug in ToolSelection switcher; "font" menu replaced by more powerful "text" menu; new entry added to edit/write text from text editor embedded in font browser. * iprocess.c : fixed bug in filter "adjust RGB colors" * fontSelect.c, fontOp.c : text sample is now editable, and this text can be imported on canvases. This includes being able to set fonts, colors, linespacing (etc) as editable text. Any UTF8 encoded file can be read and edited, and a small number of special commands are available to format such texts; for hints on how to use this, see "Doc/TextFormat.doc". Xpaint can thus be used as a text editor (sort of!), useful e.g. to create posters with text and graphics. * xpaintrw/readWritePS.c : support for reading a file as "enriched text". * main.c : new command line options -textfont and -astext, the latter for opening files as enriched text. * share/bin/imgmerge : small tweak to use a static PageInfo struct, otherwise imgmerge would segfault (gcc bug ?) 2010-03-13 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.18 * Minor fixes (UTF8 names in windows, rare segfault when using external viewer) * xpaintrw/readWritePNG.c : xpaint now saves correctly gray images which have an alpha channel. * xpaintrw/rwTable.c : introduces auto-detect mode for writing files (image type is guessed from suffix of file name, and set to PNG as a fallback). * xaw3dxft : changed library name to libXaw3dxft to avoid interfering with regular libXaw3d. Added hooks in 'configure' to (possibly) install and compile it as a shared library. Corrected an issue in xaw3dxft/List.c which could sometimes lead to a fatal X error. * Added man pages for imgmerge and pngconcat (provided by Debian maintainer Josué Abarca) * Removed dependency on Xft.h in PaintP.h which had the unfortunate effect of breaking C-Script compilation, e.g. in imgmerge. 2010-03-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.17 * Xpaint is now fully UTF8 compliant. This has been done rather cheaply by linking statically with a modified xaw3d library which is UTF8 & Freetype aware. This also means that anti-aliasing is enabled in the menus and text widgets, and that the X core font protocol is no longer used anywhere. * By default, Xpaint no longer depends on external xaw/xaw3d/xaw3dg libraries as it is compiled with its own improved xaw3d clone; this only adds approximately 250 kB to the binary executable. * Xpaint can still be used with 8 bit encoding by specifying the command option 'xpaint -encoding 8'. However the resource files XPaint* Messages* Help* should then preferably be converted back to a 8bit locale, otherwise some strange characters will show up in the menus, at least in languages which use non ASCII characters. 2010-02-17 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.16.1 * fontSelect.c, misc.c : introduced clickFocusCallback which fixes keyboard focus in fontSelect and in color picker ascii text input widgets (problem occurred e.g. under KDE). Use 2.8.16 with xpaint-2.8.16-keyboard-input.patch. 2010-02-12 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.16 * graphic.c, fontOp.c, fontSelect.c : Xpaint now uses the Xft protocol to display fonts, so that (in particular) all TrueType fonts are available, and the corresponding glyphs are nicely anti-aliased without resorting to a use of sub-pixel resolution. Another benefit is the possibility of rotating text, or even applying arbitrary linear transformation (however, writing fonts with a pattern instead of a plain color is no longer possible directly - for this, one can use instead masks or a fill procedure). * xpaintrw/readWritePNG.c : applied small patch from Stefan Husmann (Arch Linux maintainer) to take care of API deprecation in newer versions libpng-1.4.x. 2010-02-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.15 * PaintRegion.c : finally found and corrected long standing bug which plagued iteration of filters and undo procedures. * fileBrowser.c : several GUI improvements. * xpaintrw/readWritePS.c : improved handling of BoundingBoxes. Fixed bug in the use of 'psselect' which was found on the Fedora bugzilla list (many thanks to Paulo Roma Cavalcanti <promac@superig.com.br> for analyzing the issue) 2010-01-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.14 * graphic.c : memory management simplified and improved; added CRC32 checksum control to avoid duplicates. * xpaintrw/readScript.c : fixed potential bug occurring in rare circumstances. * Various fixes in batch scripts 'imgmerge', 'batch.c' and 'xpaint_ocr' GPLv3 licence specified there. * Included new debian files released by Debian maintainer Josué Abarca * xpaint.man.in : corrected a ­ issue (thanks again to Josué Abarca) 2010-01-20 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.13 * Paint.c : corrected nasty bug * graphic.c : GUI improvements. Border color of paint widget now indicates status of image (red: non editable, green: resize enabled, blue: has an alpha layer, black: otherwise). * image.c : ImagaToPixmap() et al modified so as to manage alpha channel mode once for all (rather than repeating this for each of the image loaders). 2010-01-18 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.12 * misc.c, graphic.c : some more fixes for alpha channel issues. 2010-01-17 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.11 * fileBrowser.c : browserResized() : included patch for accommodating bug in certain versions of the Xaw3d library * Paint.c : PwGetPixmap() modified so as to work independently of zoom value. Saving a file under zoom<1 now works !! * graphic.c : there is now support for adjusting join and cap style of lines being drawn. Fixed handling of memory box. * Code for alpha channel completed and made more robust (substantial changes in graphic.c, Paint.c, PaintRegion.c) 2010-01-10 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.10 * graphic.c : many GUI improvements. Some alpha channel fixes. (arbitrary linear transformation of alpha channel still not implemented). * lineOp.c : fixed arrow and vector drawing under zoom != 1 (were correctly written to pixmap but incorrectly shown on canvas). * fileBrowser.c : a few cosmetic changes to make code more robust. * xpaintrw/readWritePNG.c : fixed readPNG() for non transparent PNG images possessing a palette of colors. 2010-01-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.9 * polygonOp.c : segfault bug corrected. Polygonal regions can now be selected correctly under zoom values other than 1. * xpaint.h : various API modified to include alpha channel (in images, paint canvases, clipboard, memory stack...) * PaintUndo.c : implemented alpha channel in Undo stacks * PaintRegion.c, graphic.c : routines to set/show/edit the alpha channel are now implemented in a fairly complete manner. * readWritePNG.c : xpaint now saves a canvas with an alpha channel as a PNG file with a corresponding alpha channel. * readWriteXPM.c : xpaint now saves a canvas with an alpha channel as an XPM file with a "None" color (reduced to a 0/1 mask). (By default, alpha<128 is considered to be transparent and alpha>=128 to be opaque. The threshold value 128 can be changed from the options.) * readGIF.c : xpaint can now read alpha channel of GIF89 files possessing transparent pixels (setting transparent pixel in writeGIF.c not yet implemented). 2009-12-09 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.8 Interim release with partial support for transparent images; alpha channel is now correctly read when loading PNG and XPM images. Easier management and writing support will be implemented in 2.8.9. * xpaintrw/readGIF.c : xpaint will now open all frames of animated GIF images, and not just the first frame - support of this feature was already there, but had never been made accessible from the GUI ! * xpaintrw/readWritePNG.c : xpaint now detects PNG images possessing an alpha channel and loads them properly. The RGB values and alpha channels can be edited separately (but not yet mixed back easily). * xpaintrw/readLXP.c : preliminary implementation of layered xpaint image format LXP. File share/c_scripts/templates/script.c used as template. * pattern.c : new button introduced to modify background color (thus duplicating functionality from the separate background color widget). * fileBrowser.c : widget improved. Four new buttons added to get directly to home, root and current directory, and to show/hide dot files. The browser of loaded files now has buttons for editing C scripts and managing layers (implementation somehow works, but is not yet complete). * iprocess.c : corrected segfault bug occurring in certain circumstances, e.g. when loading recursive image C-scripts. In particular, "layer" example share/c_scripts/layers/combine.c now works again. 2009-11-18 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7.3 (very minor changes) * graphic.c : corrected very tiny bug in resizeCanvas() routine which resulted in occasional disappearance of Fatbits cursor, when the canvas was resized under certain zoom reduction values. * fatBitsEdit.c : added convenience routine FatbitsEditorDestroy(paint) (not yet used inline - could possibly be used from C scripts). * small addition in Local.config file 2009-11-15 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7.2 (very minor changes) * Further cosmetic fixes and code cleaning ; X error handler improved (just in case). * snapshot.c : taking a snapshot from the tools window now unmaps the window (so that any window stacked behind can be captured); spurious warning 'bad pixmap' from libX11 has been eliminated. 2009-11-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7.1 (released only as a patch to 2.8.7). * Further cosmetic improvements and code cleaning not really worth bothering (e.g. popup menus which, when users change their mind and no longer want to use them, may not immediately popdown as would be expected when clicking randomly outside, e.g. on the canvas ...) 2009-11-04 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7 released. * graphic.c, menu.c, PaintEvent.c : a substantial number of cosmetic changes made to further improve the menu behaviour. * fileName.c renamed as fileBrowser.c * fileBrowser.c : Some "flickering" issues in the browser have been corrected. The file browser of "loaded files" now include ad hoc fields and buttons for modifying the scaling of vector format images (PS/PDF/DVI/TeX/LaTeX/SVG) as well as for selecting a page in multi-page documents. Now, Xpaint can thus be used as a practical viewer for such documents - though for this purpose it's certainly not as fast and optimized as specialized viewers ... * readWritePS.c : multipage PostScript files require 'psselect' from the psutils package. (This is a very simple program so we may consider including it in the next version of xpaint to remove that dependency.) DVI files are now accepted, along with PS/PDF/TeX/LaTeX/SVG. * print.c : selecting PDF option now (really) saves file as PDF rather than PostScript. * Merged Changelog and (unmaintained) file Doc/CHANGES 2009-10-27 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.6.1 released. * bug fixes : main.c : xpaint did not accept setting default zoom < 100% through command line graphic.c : underestimated evaluation of canvas window size for large images, resulting in image not being fully displayed even when it could. PaintRegion.c : segfault bug occurring in certain circumstances when dragging a region outside viewport, in region transparency mode. 2009-10-26 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.6 released. * Extensive changes in many parts, to provide capability for zoom = 1/n, while performing all possible operations under such a zoom. This means that anti-aliasing can be obtained by using e.g. zoom = 1/3 and then cloning the canvas with the given reduction. * magnifier.c: Introduced a magnifying glass, based on code of 'xlupe' by Thomas Runge (runge@rostock.zgdv.de) * operation.c: menu now includes an item to open the magnifying glass, and a browser for all images which have been opened or loaded from the command line. * fileName.c : the buildBrowser() routine has been extended to have a mode ('type=4') showing the list of loaded images. * graphic.c: edit menu includes 2 items for cloning the canvas (with or without reduction) * a lot of bugs have been ironed out, e.g. a crash in the polygon selection area, and a very long-standing bug in the memory management of menu.c which used to cause (fortunately unfrequent) random crashes. 2009-10-16 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.5 released. * graphic.c, user visible changes : added a zoom button and a new toggle allowing to resize the canvas, using mouse or arrow keys. Several other related improvements have been made for zooming/resizing, along with a few minor fixes (the layer example "layer.c" compiles again without segfaulting.) 2009-10-13 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.4 released. * pattern.c : Fixed segfault bug in color/pattern budget, which occurred when creating new brushes. * print.c : added new toggle so as to possibly produce a compressed PS file, or send to printer a PDF file rather than a PS file. The annoying printing notification popup has been replaced by a less intrusive notification. Many other small improvements - e.g. output postcript file can be selected with a file browser. * xpaintrw/readWritePS.c : the PostScript generator has been considerably improved. XPaint is now capable of producing strongly compressed PostScript files, of weight increased hardly by more than 30%-35% when starting from a PNG file of the same resolution, and the process is faster than before - it seems that even gimp does not yet take care of this, its PS files can often be reduced to less than 50% of their current size (huge thanks to Peter Szabo for showing the way with his sam2p program.) A standalone 'ppmtops' utility has been included for potential re-use elsewhere. * Clarification of the licence. Xpaint is an old program, many parts of which were written at a time when the GPL was not so pervasive. To the best knowledge of the current maintainer, all parts where written under permissive licences which are compatible with the GPL. J.-P. Demailly thus puts under the GPLv3 all code developped by him in the last twelve years - that's probably more than 30% of the total amount of code, and the program as a whole should thus be considered as GPLv3. All related utilities ('ppmtops', C scripts, etc) are also put under the GPLv3. 2009-10-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.3 released. * Included 2 patches from Mandriva packagement experts, fixing some minor compilation problems and potential security issues. * xpaintrw/readWritePS.c : xpaint is now able to display TeX, LaTeX, PDF and SVG files using image conversion from external ad hoc programs. Option -dpi <dpi value> can be used to adjust size of image. 2009-10-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.2 released. * pattern.c : found and fixed two long standing segfault bugs (fortunately occurring only in not so frequent circumstances) * Set default gridcolor to grey80 on TrueColor displays, a less intrusive color than black. 2009-09-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.1 released. * Introduced rectangular (not just square) snap grids. Color of grid can be changed to arbitrary color. * graphic.c : corrected segfault bug in simplemenu switcher (selector popup). 2009-09-27 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.0 released. * Menu popups have been entirely reworked. Their behaviour is now more fluid - and similar to the default behaviour of modern toolkits like GTK/qt - so users should feel less disturbed. (this required numerous changes in menu.c and app-defaults) * Fixed size handling of Canvas windows under maximize/unmaximize procedures. * Stability should be considerably improved. Some memory leaks have been removed as well. * Added new command line options: -undosize <num> (set undo memory limit) -operation <num> (start with operation <num> set in tool panel) -filter <file> (define filter by using <file> as C-script) -proc <file> (define procedure by using <file> as C-script) * Added support for using menu popups in C script filters See share/c_scripts/filters/clean.c for an example. This means that C script filters can involve adjustable parameters which can be easily changed (i.e. without needing a recompilation each time the parameters are changed.) * Added support for using menu popups in C script procedures See share/c_scripts/procedures/proc_with_params.c for an example * iprocess.c, xpaintrw/readScriptC.c : added support for running batch jobs (for mass processing of images, using xpaint as the engine); see share/c_scripts/batch/batch.c share/bin/imgmerge * Added batch script 'imgmerge' which uses xpaint to convert and concatenate image files into a single PDF file. This also makes use of Peter Szabo's 'pdfconcat' program (GPL, included). * Added support for OCR (with the ocrad engine by default) The OCR engine(s) can be specified in the bash script /usr/share/xpaint/c_scripts/bin/xpaint_ocr This means that xpaint can be easily used as a GUI for command line OCR engines ('xpaint_ocr' makes use of the 'xless' pager, by default, but any other pager/editor can be used instead). * brushOp.c: system wide brushes are no longer hardwired, and can now be configured from the SHAREDIR directory. * Added additional brushes provided by John David Gray <kahdgarxi@gmail.com> which are useful to draw electronic circuitry. Also included a patch of him introducing three new patterns and extending the drawVisibleGrid() routine in Paint.c * Fixed (and improved as well) behaviour of snap and grid routines, also using ideas of JD Gray. * Changed rotations to use trigonometric positive rotation rather than clockwise. This was too unnatural to me ! * Numerous bug fixes. Thanks to Mattis Michel <sic_zer0@hotmail.com> for correcting a bug in the snap routines and for providing further improvements; Mattis noticed - and urged correction - of a critical bug in the "Load clipboard" procedure; he also suggested putting WM hints on minimal size of widgets so as to avoid random crashes under wild resizing of the windows. * Updated the man page - which had actually been neglected for a couple of years ...
2023-01-22 18:41:52 +01:00
share/xpaint/include/print.h
share/xpaint/include/protocol.h
share/xpaint/include/rc.h
share/xpaint/include/region.h
xpaint: update to release 3.1.4, using wip/xpaint. Packaged in wip by @adam + a couple of changes by @vins Changes (since version 2.7.8) 2021-08-14 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.4 * arcOp.c : the DrawArc procedure now checks that the arc is not drawn with a zero linewidth - otherwise some pixels could have been missing, and any later fill area procedure could then have led to unexpected results. This minor bug (or misbehavior?) has been fixed. * image.c : if installed, dvipng can now be used as an alternative to the libdvipgm library, at the expense of a small slowdown in the output. This allows TeX input even without libdvipgm installed, dvipng being installable independently. 2021-02-12 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.3 * graphic.c : the "Text" menu has been substantially improved. Text and TeX/LaTeX input of arbitrary length, size, color can now be edited and converted to either a bitmap image or vector PostScript/PDF with embedded fonts. * More extensive testing - and a lot of small details fixed 2021-01-28 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.2 * Small improvement of versions 3.1.0, 3.1.1 with bug fixes. Xpaint can now be compiled without dvipgm (at the expense of losing some TeX functionality). Thanks to testers for feedback! * This version supports the use of layers (files *.lxp = Layered XPaint files). This is done via the C script editor. Any collection of images can be combined into a new merged image by a suitable C procedure. See example in directory share/c_scripts/templates/ * Compiling against libkpathsea and libdvipgm (from the dvipgm-1.x.tar.bz2 package, x >= 2) is needed to enable TeX input processing - otherwise the compilation scripts will disable TeX input. A minimal TeX environment is also needed to allow TeX interaction. * xpaintrw/readLXP.c : routines for reading LXP files * iprocess.c : routines for the creation of LXP files * image.c : ImageDup() procedure added * operation.c : new option for cleaning temporary files * This version has reached all capabilities that had been planned since a long time: layer handling, vector graphics operations, possibility of TeX input and of mathematical drawings, programmatic creation of images, filters and graphical functions. Therefore Xpaint will probably enter into maintainance and bug correction mode. 2021-01-27 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.1 * Small improvement of version 3.1.0 with bug fixes. * This version supports the use of layers (files *.lxp = Layered XPaint files). This is done via the C script editor. Any collection of images can be combined into a new merged image by a suitable C procedure. See example in directory share/c_scripts/templates/ * Compiling against libkpathsea and libdvipgm (from the dvipgm-1.x.tar.bz2 package, x >= 2) is needed to enable TeX input processing - otherwise the compilation scripts will disable TeX input. A minimal TeX environment is also needed to allow TeX interaction. * xpaintrw/readLXP.c : routines for reading LXP files * iprocess.c : routines for the creation of LXP files * image.c : ImageDup() procedure added * operation.c : new option for cleaning temporary files * This version has reached all capabilities that had been planned since a long time: layer handling, vector graphics operations, possibility of TeX input and of mathematical drawings, programmatic creation of images, filters and graphical functions. Therefore Xpaint will probably enter into maintainance and bug correction mode. 2021-01-24 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.0 * This version now supports the use of layers (files *.lxp = Layered XPaint files). This is done via the C script editor. Any collection of images can be combined into a new merged image by a suitable C procedure. See example in directory share/c_scripts/templates/ * Compiling against libkpathsea and libdvipgm (from the dvipgm-1.x.tar.bz2 package, x >= 2) is needed to enable TeX input processing - otherwise the compilation scripts will disable TeX input. A minimal TeX environment is also needed to allow TeX interaction. * xpaintrw/readLXP.c : routines for reading LXP files * iprocess.c : routines for the creation of LXP files * image.c : ImageDup() procedure added * operation.c : new option for cleaning temporary files * This version has reached all capabilities that had been planned since a long time: layer handling, vector graphics operations, possibility of TeX input and of mathematical drawings, programmatic creation of images, filters and graphical functions. Therefore Xpaint will probably enter into maintainance and bug correction mode ... 2021-01-21 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.5 * Vector drawing capabilities improved and hopefully almost complete. * Xpaint now allows the use of TeX input in mathematical drawings, provided it is compiled with the compilation flag -DHAVE_DVIPGM. The libdvipgm and libkpathsea libraries are required for this. * The new 'vxp2tex' utility converts VXP data into a TeX file that can be used with pdftex or pdflatex. * lineOp.c : ticks and graduation procedure added. * graphic.c, image.c, iprocess.c : several fixes and improvements. 2021-01-09 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.4 * This version has acquired substantial vector drawing capabilities. Just open 'Options->VXP vector data Editor' to enable vector drawing operations. Most of them are recorded in a plain text "VXP format" *.vxp. The external program 'vxp2ps' converts these data into (vector) postscript, and 'vxp2dkw' can be used to convert them for use in in the handwritten note editor deskwrite. Such Postscript files can be easily converted to PDF or SVG. * Xpaint can also read and rasterize *.vxp files (but at this point all operations that are not translated right away into vector data are ignored, even though they are recorded in the VXP file). * graphic.c, operation.c, misc.c, iprocess.c : extensive additions to implement VXP data processing. * share/c_scripts/procedures : canvas+vxp.c added as a new example. C scripts can be used to produce VXP data. 2020-08-04 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.3 * This version of xpaint requires in principle libXaw3dXft-1.6.2h (but would run with 1.6.2d,e by removing the compilation flag -DHAVE_NEWEDITINGSTYLE) * graphic.c: a new option has been introduced, allowing xpaint to use more easily graphics tablets, more specifically the user space drivers provided with deskwrite on Sourceforge. * menu.c: SetFocusOn() has been fixed. This allows the input focus to be preserved in active text fields, even when the cursor leaves the top parent window (as is usually expected with modern desktop interface guidelines ...) * iprocess.c: small improvement of the Gamma/RGB filter. * Further small fixes throughout, especially in the build scripts and the debian packaging. 2020-06-29 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.2 * This version of xpaint requires libXaw3dXft-1.6.2h (or later versions of the libXaw3dxft library - the changes between 'f', 'g' and 'h' merely consist of introducing a new parameter to allow scrollbars of text widgets to be on the right side, plus some minor improvements in the edition process) Removing -DHAVE_NEWEDITINGSTYLE in Makefile.am would make xpaint compatible with earlier versions 1.6.2d,e of libxaw3dxft with essentially no change, except for the text input editing behavior of Backspace and Delete keys. * xpaintrw/readWritePNM.c: is now using a more recent version of libnetpbm, rather than the completely obsolete version from the 1990's that was embedded in the original code of xpaint. One consequence is that libnetpbm10-dev or preferably libnetpbm11-dev are now needed to compile xpaint, another one is that PPM/PAM files with an alpha channel can now be read and written. Adjust the NETPBM defines (-DNETPBM10 or -DNETPBM11) according to the installed version of libnetpbm. * help.c: the help widget now has two independently resizable panes (topics and explanations). * pattern.c: correction of old bug (that had however no visible effect before 3.0.1). * graphic.c: exchange of primary and secondary colors or patterns is now accessible by clicking on the red cross below the color picker (shown as an eye). Similar addition for pattern.c 2020-06-16 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.1 * This version of xpaint requires libXaw3dXft-1.6.2f (or later versions of the libXaw3dxft library). Removing -DHAVE_NEWEDITINGSTYLE in Makefile.am would make it compatible with earlier versions 1.6.2d,e with essentially no change except for the text input editing behavior of Backspace and Delete keys. * print.c: by default, xpaint no longer depends on cups-bsd commands, (but they can be re-enabled via an adjutsment of the app-defaults files). * xpaintrw/readWritePS.c: the BoundingBox of a file saved as PS/PDF should now be set appropriately. * graphic.c, *Op.c: extensive additions. Xpaint can now record all operations that are performed as vector data, in the so called VXP format. The recording starts as soon as the VXP editor under the Options menu is started, and these data can be saved into a file <name>.vxp * readWriteJP2K.c: has been ported to work with openjpeg version 2 (JPEG2000 format), including alpha channel. * Various other small fixes throughout (SVG import, ...) * At a later stage, it will be possible to convert these VXP files to other vector formats such as eps, pdf or svg, and import them back to xpaint. There will be also an option to insert TeX input and convert the data into a (La)TeX file. 2020-05-25 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.0 * bitmaps/toolicons: new set of icons, generated from SVG data. * app_defaults: the app_defaults files have been reorganized so as to separate linguistic strings and other data, especially widget sizes. Three sizes are now offered: big, medium, small, to accommodate HiDPI screens or low resolution screens. * operation.c: the tool window is now fully resizable. In order to actually change the size of icons, users can copy /usr/share/xpaint/bitmaps/toolicons/ into $HOME/.xpaint/toolicons/ and generate icons with larger or smaller size there. Just type ./generate_icons <height> in $HOME/.xpaint/toolicons/ to produce a new set of icons with the given height (the xpaint package is distributed with icons of default height 36). The shell script "generate_icons" requires inkscape to work. * graphic.c: the parameter btnheight is now used to resize the palette elements as well as the height of buttons. This is useful for HiDPI screens (as well as for lower resolution screens of older computers). * main.c: new option -blind that keeps xpaint running under the hood when batch procedures are invoked. * xpaintrw/readWritePS.c: SVG import has been updated to work with inkscape-1.0. * The change of major number in this version anticipates the introduction of some vector graphics capabilities in the versions 3.x.y to come. (Right now, the only vector graphics capabilities are PS, PDF, SVG import). 2020-05-21 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 2.10.3 * lineOp.c : under the "segment" operation, users will now find new "Position" and "Measurement" tools. These tools do not draw anything, but instead they record the locations of pixels that are clicked on, and compute lengths and angles. * iprocess.c : The "Perspective" filter has been vastly improved. It should now enable users to correct the perspective of a distorted picture taken by a camera, or to create artificial perspective when producing a drawing. This can be used in connection with the new "Position" tool, so as to specify points on the canvas. * iprocess.c : The API of C scripts introduces a new public procedure PixelInterpolate(unsigned char *op, Image *input, double x, double y) that can be used to smooth pixels, under transformations that map integer coordinates into float values (as is the case e.g. for rotations or homotheties with arbitrary factor). This will sometimes improve the output of such operations (but may also make the image fuzzier). * Two new C scripts "similarity.c" and "projective.c" have been added. They show in particular how to exploit the PixelInterpolate() procedure. * Help and message files have been edited to explain details of the new functionalities. 2017-11-13 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 2.10.2 * Minor compilation fixes in iprocess.c and xpaintrw/readWriteJP2K.c thanks to the OpenSUSE team. * Bug in operation.c : exitPaint(...) could trigger a segfault when quitting xpaint without saving the canvas. Thanks to Anthony J. Bentley from the OpenBSD team for reporting the bug. * misc.h : srandom() is nowadays always of void type. * Minor fixes for the calculation of the maximum canvas size. 2016-12-10 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 2.10.1 (a substantial update!). * Xpaint includes a new command line option -btnheight that adjusts appropriately the size of all internal widgets in case a big menu font is used (e.g. by setting the option -menufont , or by changing the app-defaults file). This is very useful if you have a high resolution screen. Many small local modifications of various source files in the main tree have been necessary for this. * A new option -toolmode 0,1,2 can be used to initialize the display of the tool window. Also adjustable dynamically by resizing that window. * Default canvas size has been set to 1024x768 Related command line options are -canvassize and -winsize that can be used independently to adjust the default size of canvas and main window. * The app-defaults files and help files have been modified to accommodate the above additions. * The "Print" widget has been improved, and its menubar is now again available to adjust page formats (a bug introduced probably a long time ago prevented it to work !) * A newer version libXaw3dXft-1.6.2e.tar.bz2 has been posted. The only change is a 3 lines addition that circumvents (what seems to be) a bug occurring in certain X11/Xorg implementations, e.g. the intel driver, version 2.99.917. Otherwise this will make no difference. * Changed the library name librw to libxpaintrw to avoid shared library conflicts. Thanks to Michael Orlitzky for pointing out the issue. * Applied a number of patches from gentoo.org that substantially improve the compilation process. Thanks to Julian Ospald <hasufell@gentoo.org> 2015-01-02 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10.3 * Port to the newer libXaw3dXft-1.6.2d.tar.bz2 (the latter is actually a requirement, this version no longer compiles with libXaw3dXft-1.6.2c). The point is that libXaw3dXft-1.6.2d has improved binary compatibility with plain libXaw3d-1.6.x * Only further cosmetic changes, no change in functionality. 2014-04-17 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10.2 * Minor fixes in 'configure.ac' and 'configure.old' scripts Xpaint can now be compiled again with plain Xaw or Xaw3d (this is NOT recommended, Xaw3dxft definitely gives much better results !) Thanks to Stefan Husmann (Arch Linux) for helpful reports in this respect. * 'configure' (based on autotools) and 'configure.old' (based on imake) should in most cases give essentially equivalent binaries. * PDF files are now read by using mudraw if mupdf & mupdf-tools are installed (otherwise Xpaint falls back to the formerly used solution: pdf2ps + ghostscript, a much slower one...) * Xpaint can now even import libreoffice files as images as soon as libreoffice is installed (assuming /usr/bin/libreoffice is a valid path to the main program) 2014-04-09 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10.1 * Includes the "version_and_focus_patch_for_2.9.10" and other minor fixes. * The alpha channel menu now includes a new function that allows editing as RGB values the image that appears when transparency is applied on a background of the selected background color - white being the default (this removes the transparency levels afterwards, so as to get a pure RGB image). * Bug (probably very old) corrected : selection of background color always resulted in black being chosen ! 2014-03-03 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10 * This version should preferably be compiled with libXaw3dXft-1.6.2c, although it still works Ok with libXaw3dXft-1.6.2b. * readWritePNG.c: fixed bug occurring when writing grayscale images possessing no more than 16 colors. * readWriteJPEG.c: JPEG images in CMYK colorspace are now handled properly (they will still be memorized as RGB, so the original CMYK information is lost, but at least they are shown correctly). * fileBrowser.c: "Save" and "Save as" menus now include the option to adjust JPEG quality between 50% and 100% (default is 90%) * fileBrowser.c: improved logic : the file browser now remembers file names when changing directories, and also takes into account default extension when specifying file format. * fileBrowser.c: thanks to a new feature from libXaw3dXft-1.6.2c (possibility of creating colored lists), xpaint now implements file type coloring in its file browser - at this point this is guessed merely from the suffix of the file. * operation.c: Canvas menu reorganized - it is now named "File menu" so as to conform to general use. Except from reordering the items, the main functionality is unchanged. * pattern.c: bug fixes. A segfault problem in the zoom selector has been corrected, and contextual help has been fixed. 2013-01-27 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.9.4 * This version should be compiled with libXaw3dXft-1.6.2b * RGB channel separation procedure fixed and improved * Fix in CRC data handling of regions in memory. * XPaint now remembers better the position of regions saved in memory. The recorded position can now be changed or reset to origin through the memory management menu. * compilation fix for pgf2pnm with newer libpgf-6.12.24 * Avoid "bool" variable throughout, as this is a typedef in <stdbool.h> * Fixes to configure scripts, thanks to Daniel Macks (fink project) * Minor GUI improvements 2012-02-14 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.9 * Xpaint now uses (or tries to use!) autotools. * libxaw3dxft is now a separate package (but is still a requirement, and in fact should be installed before). * xpaintrw/rwTable.c : segfault fix (occurring randomly) fixed in readMagic(). * minor fix in fontSelect.c, certain fonts were possibly missing in the font browser, in some rare circumstances. * very minor fix of scrollbar behaviour in graphic.c. * misc.c : new procedure SetWMInputHint() that helps solving some quirks. 2012-01-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8.4 * minor fixes in fileBrowser.c (adjustable height of text entry for the file name, resize procedure improved). 2011-10-13 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8.3 * xpaintrw/pgf-util/Makefile : add '-fpermissive' flag to allow compilation with recent (more picky!) versions of g++ * Xaw3dxft/Viewport.c : position of scrollbars can now be adjusted through parameters sbShift[X,Y][1,2]. No public API change, so this addition should be upward compatible. * graphic.c : some small fixes in the shellHandler routine to accommodate odd behavior of scrollbars with xorg recent versions, using the new sbShift feature. 2010-12-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8.2 - nothing really new, just very small fixes * Integrated patch to facilitate compilation with gcc-4.5 * app-defaults files : slight improvement of X event management in pull-down menus. * print.c : slight improvement of X event management in print widget. * fontOp.c : fixed color issue (color not initialized) when moving written text with arrow keys. * Very small changes in Xaw3dxft (minor Xaw3dXft.h API update) 2010-11-08 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8 * Xaw3dxft : code clean-up. New files Xaw3dXft.h and Xaw3dXft.c now contain the specific Xaw3dxft parameters and routines. A couple of small improvements to correct minor quirks in the menu entry highlighting behaviour. * main.c, graphic.c : changes made to accommodate the API changes introduced in Xaw3dxft. Further code clean-up. * image.h, graphic.c, iprocess.c : modified definition of the imageprocessinfo struct, so that hopefully compilation still works with gcc 4.5 (gcc-4.5 appears to be more picky with struct definitions). Thanks to Fedora maintainer Paulo Roma Cavalcanti <promac@gmail.com> for reporting the issue. 2010-11-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.7 * Arrow keys and "Backspace", "Return", "Escape" keys can now be used in all drawing operations whose effect is not immediate, especially all routines from arcOp.c, lineOp.c, polygonOp.c, freehandOp.c, splineOp.c, TextOp.c Arrow keys allow moving objects around before they are completely drawn, "Escape" restarts the operation from scratch, "Return" terminates the operation, and "Backspace" rewinds the course of operation backwards. * freehandOp.c : this operation now allows to draw arbitrary combinations of freehand and polygonal shapes and should be easier to use or to modify interactively thanks to the key bindings. * sprayOp.c : minor code clean-up. * updated accordingly Help files. 2010-10-25 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6.4 A couple of small improvements in spline, polygon, text and color operations. * fontOp.c, splineOp.c, polygonOp.c : implemented "Backspace" key action, i.e. removing last point or last character; "Escape" now entirely restarts the operation from the beginning. Other small improvements (including correction of a potential segfault occurring in some strange circumstances...); polygonOp() code is now also much simpler and easier to read. * graphic.c : multiple clicks on any of the three color/pattern selection discs now switch primary and secondary colors/patterns. * updated accordingly Help files. 2010-10-08 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6.3 - minor bug fix release - nothing really serious. * ops.h : minor compilation issue fixed. * graphic.c : corrected segfault bug of RegionToRGBA channels (occurring only when alpha channel was to be saved.) * chroma.c : fixed minor scrolling issue in color variance scrollbars. * graphic.c : added new menu lines to proceed more easily to editing of alpha channels or images in memory. * updated accordingly Help files, messages and app-defaults files. 2010-09-26 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6.2 * print.c : printing was completely broken, as a result of using double values instead of float values. Reverted to float ! * chroma.c, color.c, magnifier.c, fontSelect.c : revert to float ! * iprocess.c : fixed bug occurring only in very rare circumstances (creation of image with an alpha channel, being edited and compiled on the fly through the embedded C-script editor) * graphic.c : small improvement in ModifyRGB (new routine to rescale gray levels linearly from given thresholds). 2010-09-14 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6 * xpaintrw/rwTable.c, xpaintrw/readWriteTGA.c : fixes in TGA format, so as to prevent that xpaint could hang on certain non TGA files. Make sure anyway that TGA is parsed as a last resort, since TGA is a strange format without signature. * image.c, iprocess.c, graphic.c : substantial improvements in filter routines : - Added new "Merge" filter : helpful to combine smoothly an image with the underlying canvas. Works according to 4 different modes - Added new "Distortion" filter which can be used to produce local deformations - Added powerful Floyd-Steinberg algorithm (color quantification enhanced with a diffusion process). - Replaced "ModifyRGB" by a generalized RGB transformation procedure with 7 different modes, including Gamma correction (with independent r_gamma, g_gamma, b_gamma parameters), and linear transform. - Fixed several shortcomings of "Normalize contrast" and "Emboss" routines; "Emboss" now has 2 parameters allowing linear correction. - Renamed "Tilt" as "Projective Transform" with several enhancements. - Renamed "ImageCopy" as "ImageCopyData" which says more accurately what it does. * graphic.c : Memory menu : management of R,G,B and alpha channels : - Added extraction of red, green, blue, alpha channels from region - Added merge procedure for those channels * msgedit.c : new utility which can be used to extract strings from the English version of "Messages" and combine them with a partially localized "Messages_XY" for any other language - useful as well to avoid discrepancies between languages! * Many updates to Message and Help files. 2010-09-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.5 * xpaintrw/readWritePNG.c : fixed WritePNG() for alpha channel images possessing less than 16 black and white colors, which xpaint tried to write in an incorrect PNG mode. * graphic.c : fixed segfault bug when invoking "Clone Canvas" procedure. * xaw3dxft : a few hacks to work around minor display bugs related to Xft anti-aliasing/composition effects on certain X servers (especially proprietary NVIDIA ...) * main.c : new command line options -tooltips, -notooltips * operation.c, graphic.c : implemented tooltips (they can be disabled from the tools/help menu). * man page and help files : updated. 2010-08-15 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.4 * xpaintrw/readWriteTGA.c : added support for TGA format (borrowed mostly from mtpaint project). * xpaintrw/rwTable.c : code clean-up. * Paint.c, PaintRegion.c : fixes for certain complex situations involving region selection with masks and alpha channel. (Segfault could occur in Fatbits editor under those circumstances). * graphic.c : Suppression of alpha channel could lead to segfault. 2010-08-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.3 * xpaintrw/readWriteICO.c : imported a lot of code from the 'icoutil' GPLed package. As a result, xpaint can now read most Windows ICO files, even those containing embedded compressed PNG/JPG images which icoutil cannot fully open. Support for ICO masks as alpha channel, and for writing single image ICO files. * xpaintrw/readWritePGF.c : PGF image format support improved, thanks to 'pgf2pnm' provided by Christoph Stamm <christoph.stamm@fhnw.ch> (creator of the PGF format). libpgf and libpgf-dev are needed only optionally to compile 'pgf2pnm', which then provides PGF support in xpaint. However, xpaint itself does not link with libpgf and does not need libpgf-dev to be compiled. The alpha channel of PGF images is fully supported. * graphic.c : improvements/bug fixes in the "Clone with Zoom" procedure. Now works for zooming/downscaling images, with/without interpolation, and for adjusting alpha channel as well. * graphic.c, PaintEvent.c : much more powerful implementation of the "Delimit region" procedure, according to six different options (connected/non connected/color range regions, or complements of such regions). * The help files have been updated to reflect all current functionality of XPaint (Spanish help additions should be revised by a native speaker !) 2010-07-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.2 * xpaintrw/*.c : huge code clean-up. Saving files now show up a warning when the image possesses an alpha channel, but the format chosen does not support it (completely or in part). Note: saving in PNG should almost always be a safe choice ... * xpaintrw/readWriteTIFF.c : support substantially improved, including alpha channel read/write. More exotic TIFF formats unsupported. * xpaintrw/readWriteBMP.c : many more BMP image format types are now supported, including full support for images with an alpha channel (read/write). * xpaintrw/readWritePNM.c : provisions made to include support for alpha channel in PNM (this is a specific extension of xpaint : an RGB image concatenated with a gray level image of the same size - and '\n' in between - is viewed as RGBA data). * xpaintrw/readWriteJP2K.c : added support for JPEG2000 image format. Either libopenjpeg (default) or libjasper (optionally) can be used. Full support for alpha channel (requires openJPEG from subversion at this point now, since "stable" version 1.3 has insufficient alpha channel implementation...). * xpaintrw/readWritePGF.c : added support for PGF image format. This requires libpgf and pgf to be installed (but xpaint does not need to be linked against libpgf, and its compilation does not require libpgf-dev files either.) * xpaintrw/readWriteSGI.c : repaired old dormant code to read run-length encoded SGI/Irix image files. Checked to work fine. * xpaintrw/readWriteICO.c : unsupported, very buggy code. Disabled at this point. Instead, use e.g. 'icoutil' to convert those files to PNG ... * dialog.c : very small fix providing UTF8 support in AlertBox window titles (and always raising warning windows). * configure : if libXaw3dxft is installed as a shared library, compilation is now set by default to use it, rather than linking statically xpaint to libXaw3dxf.a 2010-07-18 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.1.5 * graphic.c : added "*allowResize: False" in Canvas*pane*form to prevent annoying widget initialization on certain platforms * xpaintrw/readWritePS.c : small fixes to handle correctly PS/PDF files whose names contain quotes or blank characters. 2010-07-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.1.4 * fatBitsEdit.c, Paint.c , Paintregion.c : several fixes in handling of alpha channel in fatbits editor - some affecting alpha channel image bits. * app-defaults : change zoom labels to correct values xx:1 instead of 1:xx * graphic.c : prevent fatbits editor getting called undeservedly by GetNonDirtyCanvas() routine ; removing alpha channel now moves it to memory rather than destroying it right away. * xpaintrw/readWritePS.c : fix for compilation of TeX/LaTeX files being called from random directories. * minor fixes throughout - thanks to the SUSE-Packman maintainer Detlef Reichelt <detlef@die-mafia.de> for help. 2010-06-02 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.1 * Paint.c , Paintregion.c : fixes in alpha channel routines. * fatBitsEdit.c : many fixes in fatbits editor. Refresh button added * graphic.c : reload file procedure didn't reload alpha channel - this is now fixed. * fontOp.c : potential segfault corrected. * small other (mostly random) improvements. 2010-05-16 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.0 * graphic.c, Paint.c : big improvements in handling of alpha channel ; alpha management menu is now explicit from canvas menu bar. Support still not quite complete at this point (regions do not appear yet in alpha mode). Should come for 2.9.1... * Paint.c, PaintRegion.c : fixed segfault occurring when using region operations in fatbits editor (regression introduced already in 2.8.9 which remained unnoticed up to 2.8.19 ...) * fontOp.c, fontSelect.c : UTF8 support should now be essentially complete. * xpaintrw/readWritePNG.c : fixed bug when writing PNG_COLOR_TYPE_PALETTE images with less than 16 colors (those images were wrongly converted to gray palette...) * several other small fixes and improvements throughout. 2010-04-17 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.19.1 (mostly cosmetic changes) * fileBrowser.c : added "ongoing" mode in File Browser (widget no longer closes when opening an image, allowing to browse files continuously). Performed a substantial code clean-up as well. * operation.c, graphic.c : menu improvements; one can now open an image from any canvas window. * misc.c : added RaiseWindow() routine to comply better with ewmh specifications. XMapRaised() replaced by RaiseWindow() throughout. * "snapshot" replaced by "screenshot" throughout. 2010-04-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.19 * fileBrowser.c : fixed minor annoyance in "save" and "saveas" routines - name of file is now again remembered when a filename has already been set. * graphic.c : fixed bug in ToolSelection switcher; "font" menu replaced by more powerful "text" menu; new entry added to edit/write text from text editor embedded in font browser. * iprocess.c : fixed bug in filter "adjust RGB colors" * fontSelect.c, fontOp.c : text sample is now editable, and this text can be imported on canvases. This includes being able to set fonts, colors, linespacing (etc) as editable text. Any UTF8 encoded file can be read and edited, and a small number of special commands are available to format such texts; for hints on how to use this, see "Doc/TextFormat.doc". Xpaint can thus be used as a text editor (sort of!), useful e.g. to create posters with text and graphics. * xpaintrw/readWritePS.c : support for reading a file as "enriched text". * main.c : new command line options -textfont and -astext, the latter for opening files as enriched text. * share/bin/imgmerge : small tweak to use a static PageInfo struct, otherwise imgmerge would segfault (gcc bug ?) 2010-03-13 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.18 * Minor fixes (UTF8 names in windows, rare segfault when using external viewer) * xpaintrw/readWritePNG.c : xpaint now saves correctly gray images which have an alpha channel. * xpaintrw/rwTable.c : introduces auto-detect mode for writing files (image type is guessed from suffix of file name, and set to PNG as a fallback). * xaw3dxft : changed library name to libXaw3dxft to avoid interfering with regular libXaw3d. Added hooks in 'configure' to (possibly) install and compile it as a shared library. Corrected an issue in xaw3dxft/List.c which could sometimes lead to a fatal X error. * Added man pages for imgmerge and pngconcat (provided by Debian maintainer Josué Abarca) * Removed dependency on Xft.h in PaintP.h which had the unfortunate effect of breaking C-Script compilation, e.g. in imgmerge. 2010-03-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.17 * Xpaint is now fully UTF8 compliant. This has been done rather cheaply by linking statically with a modified xaw3d library which is UTF8 & Freetype aware. This also means that anti-aliasing is enabled in the menus and text widgets, and that the X core font protocol is no longer used anywhere. * By default, Xpaint no longer depends on external xaw/xaw3d/xaw3dg libraries as it is compiled with its own improved xaw3d clone; this only adds approximately 250 kB to the binary executable. * Xpaint can still be used with 8 bit encoding by specifying the command option 'xpaint -encoding 8'. However the resource files XPaint* Messages* Help* should then preferably be converted back to a 8bit locale, otherwise some strange characters will show up in the menus, at least in languages which use non ASCII characters. 2010-02-17 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.16.1 * fontSelect.c, misc.c : introduced clickFocusCallback which fixes keyboard focus in fontSelect and in color picker ascii text input widgets (problem occurred e.g. under KDE). Use 2.8.16 with xpaint-2.8.16-keyboard-input.patch. 2010-02-12 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.16 * graphic.c, fontOp.c, fontSelect.c : Xpaint now uses the Xft protocol to display fonts, so that (in particular) all TrueType fonts are available, and the corresponding glyphs are nicely anti-aliased without resorting to a use of sub-pixel resolution. Another benefit is the possibility of rotating text, or even applying arbitrary linear transformation (however, writing fonts with a pattern instead of a plain color is no longer possible directly - for this, one can use instead masks or a fill procedure). * xpaintrw/readWritePNG.c : applied small patch from Stefan Husmann (Arch Linux maintainer) to take care of API deprecation in newer versions libpng-1.4.x. 2010-02-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.15 * PaintRegion.c : finally found and corrected long standing bug which plagued iteration of filters and undo procedures. * fileBrowser.c : several GUI improvements. * xpaintrw/readWritePS.c : improved handling of BoundingBoxes. Fixed bug in the use of 'psselect' which was found on the Fedora bugzilla list (many thanks to Paulo Roma Cavalcanti <promac@superig.com.br> for analyzing the issue) 2010-01-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.14 * graphic.c : memory management simplified and improved; added CRC32 checksum control to avoid duplicates. * xpaintrw/readScript.c : fixed potential bug occurring in rare circumstances. * Various fixes in batch scripts 'imgmerge', 'batch.c' and 'xpaint_ocr' GPLv3 licence specified there. * Included new debian files released by Debian maintainer Josué Abarca * xpaint.man.in : corrected a ­ issue (thanks again to Josué Abarca) 2010-01-20 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.13 * Paint.c : corrected nasty bug * graphic.c : GUI improvements. Border color of paint widget now indicates status of image (red: non editable, green: resize enabled, blue: has an alpha layer, black: otherwise). * image.c : ImagaToPixmap() et al modified so as to manage alpha channel mode once for all (rather than repeating this for each of the image loaders). 2010-01-18 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.12 * misc.c, graphic.c : some more fixes for alpha channel issues. 2010-01-17 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.11 * fileBrowser.c : browserResized() : included patch for accommodating bug in certain versions of the Xaw3d library * Paint.c : PwGetPixmap() modified so as to work independently of zoom value. Saving a file under zoom<1 now works !! * graphic.c : there is now support for adjusting join and cap style of lines being drawn. Fixed handling of memory box. * Code for alpha channel completed and made more robust (substantial changes in graphic.c, Paint.c, PaintRegion.c) 2010-01-10 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.10 * graphic.c : many GUI improvements. Some alpha channel fixes. (arbitrary linear transformation of alpha channel still not implemented). * lineOp.c : fixed arrow and vector drawing under zoom != 1 (were correctly written to pixmap but incorrectly shown on canvas). * fileBrowser.c : a few cosmetic changes to make code more robust. * xpaintrw/readWritePNG.c : fixed readPNG() for non transparent PNG images possessing a palette of colors. 2010-01-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.9 * polygonOp.c : segfault bug corrected. Polygonal regions can now be selected correctly under zoom values other than 1. * xpaint.h : various API modified to include alpha channel (in images, paint canvases, clipboard, memory stack...) * PaintUndo.c : implemented alpha channel in Undo stacks * PaintRegion.c, graphic.c : routines to set/show/edit the alpha channel are now implemented in a fairly complete manner. * readWritePNG.c : xpaint now saves a canvas with an alpha channel as a PNG file with a corresponding alpha channel. * readWriteXPM.c : xpaint now saves a canvas with an alpha channel as an XPM file with a "None" color (reduced to a 0/1 mask). (By default, alpha<128 is considered to be transparent and alpha>=128 to be opaque. The threshold value 128 can be changed from the options.) * readGIF.c : xpaint can now read alpha channel of GIF89 files possessing transparent pixels (setting transparent pixel in writeGIF.c not yet implemented). 2009-12-09 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.8 Interim release with partial support for transparent images; alpha channel is now correctly read when loading PNG and XPM images. Easier management and writing support will be implemented in 2.8.9. * xpaintrw/readGIF.c : xpaint will now open all frames of animated GIF images, and not just the first frame - support of this feature was already there, but had never been made accessible from the GUI ! * xpaintrw/readWritePNG.c : xpaint now detects PNG images possessing an alpha channel and loads them properly. The RGB values and alpha channels can be edited separately (but not yet mixed back easily). * xpaintrw/readLXP.c : preliminary implementation of layered xpaint image format LXP. File share/c_scripts/templates/script.c used as template. * pattern.c : new button introduced to modify background color (thus duplicating functionality from the separate background color widget). * fileBrowser.c : widget improved. Four new buttons added to get directly to home, root and current directory, and to show/hide dot files. The browser of loaded files now has buttons for editing C scripts and managing layers (implementation somehow works, but is not yet complete). * iprocess.c : corrected segfault bug occurring in certain circumstances, e.g. when loading recursive image C-scripts. In particular, "layer" example share/c_scripts/layers/combine.c now works again. 2009-11-18 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7.3 (very minor changes) * graphic.c : corrected very tiny bug in resizeCanvas() routine which resulted in occasional disappearance of Fatbits cursor, when the canvas was resized under certain zoom reduction values. * fatBitsEdit.c : added convenience routine FatbitsEditorDestroy(paint) (not yet used inline - could possibly be used from C scripts). * small addition in Local.config file 2009-11-15 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7.2 (very minor changes) * Further cosmetic fixes and code cleaning ; X error handler improved (just in case). * snapshot.c : taking a snapshot from the tools window now unmaps the window (so that any window stacked behind can be captured); spurious warning 'bad pixmap' from libX11 has been eliminated. 2009-11-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7.1 (released only as a patch to 2.8.7). * Further cosmetic improvements and code cleaning not really worth bothering (e.g. popup menus which, when users change their mind and no longer want to use them, may not immediately popdown as would be expected when clicking randomly outside, e.g. on the canvas ...) 2009-11-04 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7 released. * graphic.c, menu.c, PaintEvent.c : a substantial number of cosmetic changes made to further improve the menu behaviour. * fileName.c renamed as fileBrowser.c * fileBrowser.c : Some "flickering" issues in the browser have been corrected. The file browser of "loaded files" now include ad hoc fields and buttons for modifying the scaling of vector format images (PS/PDF/DVI/TeX/LaTeX/SVG) as well as for selecting a page in multi-page documents. Now, Xpaint can thus be used as a practical viewer for such documents - though for this purpose it's certainly not as fast and optimized as specialized viewers ... * readWritePS.c : multipage PostScript files require 'psselect' from the psutils package. (This is a very simple program so we may consider including it in the next version of xpaint to remove that dependency.) DVI files are now accepted, along with PS/PDF/TeX/LaTeX/SVG. * print.c : selecting PDF option now (really) saves file as PDF rather than PostScript. * Merged Changelog and (unmaintained) file Doc/CHANGES 2009-10-27 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.6.1 released. * bug fixes : main.c : xpaint did not accept setting default zoom < 100% through command line graphic.c : underestimated evaluation of canvas window size for large images, resulting in image not being fully displayed even when it could. PaintRegion.c : segfault bug occurring in certain circumstances when dragging a region outside viewport, in region transparency mode. 2009-10-26 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.6 released. * Extensive changes in many parts, to provide capability for zoom = 1/n, while performing all possible operations under such a zoom. This means that anti-aliasing can be obtained by using e.g. zoom = 1/3 and then cloning the canvas with the given reduction. * magnifier.c: Introduced a magnifying glass, based on code of 'xlupe' by Thomas Runge (runge@rostock.zgdv.de) * operation.c: menu now includes an item to open the magnifying glass, and a browser for all images which have been opened or loaded from the command line. * fileName.c : the buildBrowser() routine has been extended to have a mode ('type=4') showing the list of loaded images. * graphic.c: edit menu includes 2 items for cloning the canvas (with or without reduction) * a lot of bugs have been ironed out, e.g. a crash in the polygon selection area, and a very long-standing bug in the memory management of menu.c which used to cause (fortunately unfrequent) random crashes. 2009-10-16 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.5 released. * graphic.c, user visible changes : added a zoom button and a new toggle allowing to resize the canvas, using mouse or arrow keys. Several other related improvements have been made for zooming/resizing, along with a few minor fixes (the layer example "layer.c" compiles again without segfaulting.) 2009-10-13 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.4 released. * pattern.c : Fixed segfault bug in color/pattern budget, which occurred when creating new brushes. * print.c : added new toggle so as to possibly produce a compressed PS file, or send to printer a PDF file rather than a PS file. The annoying printing notification popup has been replaced by a less intrusive notification. Many other small improvements - e.g. output postcript file can be selected with a file browser. * xpaintrw/readWritePS.c : the PostScript generator has been considerably improved. XPaint is now capable of producing strongly compressed PostScript files, of weight increased hardly by more than 30%-35% when starting from a PNG file of the same resolution, and the process is faster than before - it seems that even gimp does not yet take care of this, its PS files can often be reduced to less than 50% of their current size (huge thanks to Peter Szabo for showing the way with his sam2p program.) A standalone 'ppmtops' utility has been included for potential re-use elsewhere. * Clarification of the licence. Xpaint is an old program, many parts of which were written at a time when the GPL was not so pervasive. To the best knowledge of the current maintainer, all parts where written under permissive licences which are compatible with the GPL. J.-P. Demailly thus puts under the GPLv3 all code developped by him in the last twelve years - that's probably more than 30% of the total amount of code, and the program as a whole should thus be considered as GPLv3. All related utilities ('ppmtops', C scripts, etc) are also put under the GPLv3. 2009-10-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.3 released. * Included 2 patches from Mandriva packagement experts, fixing some minor compilation problems and potential security issues. * xpaintrw/readWritePS.c : xpaint is now able to display TeX, LaTeX, PDF and SVG files using image conversion from external ad hoc programs. Option -dpi <dpi value> can be used to adjust size of image. 2009-10-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.2 released. * pattern.c : found and fixed two long standing segfault bugs (fortunately occurring only in not so frequent circumstances) * Set default gridcolor to grey80 on TrueColor displays, a less intrusive color than black. 2009-09-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.1 released. * Introduced rectangular (not just square) snap grids. Color of grid can be changed to arbitrary color. * graphic.c : corrected segfault bug in simplemenu switcher (selector popup). 2009-09-27 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.0 released. * Menu popups have been entirely reworked. Their behaviour is now more fluid - and similar to the default behaviour of modern toolkits like GTK/qt - so users should feel less disturbed. (this required numerous changes in menu.c and app-defaults) * Fixed size handling of Canvas windows under maximize/unmaximize procedures. * Stability should be considerably improved. Some memory leaks have been removed as well. * Added new command line options: -undosize <num> (set undo memory limit) -operation <num> (start with operation <num> set in tool panel) -filter <file> (define filter by using <file> as C-script) -proc <file> (define procedure by using <file> as C-script) * Added support for using menu popups in C script filters See share/c_scripts/filters/clean.c for an example. This means that C script filters can involve adjustable parameters which can be easily changed (i.e. without needing a recompilation each time the parameters are changed.) * Added support for using menu popups in C script procedures See share/c_scripts/procedures/proc_with_params.c for an example * iprocess.c, xpaintrw/readScriptC.c : added support for running batch jobs (for mass processing of images, using xpaint as the engine); see share/c_scripts/batch/batch.c share/bin/imgmerge * Added batch script 'imgmerge' which uses xpaint to convert and concatenate image files into a single PDF file. This also makes use of Peter Szabo's 'pdfconcat' program (GPL, included). * Added support for OCR (with the ocrad engine by default) The OCR engine(s) can be specified in the bash script /usr/share/xpaint/c_scripts/bin/xpaint_ocr This means that xpaint can be easily used as a GUI for command line OCR engines ('xpaint_ocr' makes use of the 'xless' pager, by default, but any other pager/editor can be used instead). * brushOp.c: system wide brushes are no longer hardwired, and can now be configured from the SHAREDIR directory. * Added additional brushes provided by John David Gray <kahdgarxi@gmail.com> which are useful to draw electronic circuitry. Also included a patch of him introducing three new patterns and extending the drawVisibleGrid() routine in Paint.c * Fixed (and improved as well) behaviour of snap and grid routines, also using ideas of JD Gray. * Changed rotations to use trigonometric positive rotation rather than clockwise. This was too unnatural to me ! * Numerous bug fixes. Thanks to Mattis Michel <sic_zer0@hotmail.com> for correcting a bug in the snap routines and for providing further improvements; Mattis noticed - and urged correction - of a critical bug in the "Load clipboard" procedure; he also suggested putting WM hints on minimal size of widgets so as to avoid random crashes under wild resizing of the windows. * Updated the man page - which had actually been neglected for a couple of years ...
2023-01-22 18:41:52 +01:00
share/xpaint/include/rwTable.h
share/xpaint/include/text.h
xpaint: update to release 3.1.4, using wip/xpaint. Packaged in wip by @adam + a couple of changes by @vins Changes (since version 2.7.8) 2021-08-14 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.4 * arcOp.c : the DrawArc procedure now checks that the arc is not drawn with a zero linewidth - otherwise some pixels could have been missing, and any later fill area procedure could then have led to unexpected results. This minor bug (or misbehavior?) has been fixed. * image.c : if installed, dvipng can now be used as an alternative to the libdvipgm library, at the expense of a small slowdown in the output. This allows TeX input even without libdvipgm installed, dvipng being installable independently. 2021-02-12 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.3 * graphic.c : the "Text" menu has been substantially improved. Text and TeX/LaTeX input of arbitrary length, size, color can now be edited and converted to either a bitmap image or vector PostScript/PDF with embedded fonts. * More extensive testing - and a lot of small details fixed 2021-01-28 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.2 * Small improvement of versions 3.1.0, 3.1.1 with bug fixes. Xpaint can now be compiled without dvipgm (at the expense of losing some TeX functionality). Thanks to testers for feedback! * This version supports the use of layers (files *.lxp = Layered XPaint files). This is done via the C script editor. Any collection of images can be combined into a new merged image by a suitable C procedure. See example in directory share/c_scripts/templates/ * Compiling against libkpathsea and libdvipgm (from the dvipgm-1.x.tar.bz2 package, x >= 2) is needed to enable TeX input processing - otherwise the compilation scripts will disable TeX input. A minimal TeX environment is also needed to allow TeX interaction. * xpaintrw/readLXP.c : routines for reading LXP files * iprocess.c : routines for the creation of LXP files * image.c : ImageDup() procedure added * operation.c : new option for cleaning temporary files * This version has reached all capabilities that had been planned since a long time: layer handling, vector graphics operations, possibility of TeX input and of mathematical drawings, programmatic creation of images, filters and graphical functions. Therefore Xpaint will probably enter into maintainance and bug correction mode. 2021-01-27 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.1 * Small improvement of version 3.1.0 with bug fixes. * This version supports the use of layers (files *.lxp = Layered XPaint files). This is done via the C script editor. Any collection of images can be combined into a new merged image by a suitable C procedure. See example in directory share/c_scripts/templates/ * Compiling against libkpathsea and libdvipgm (from the dvipgm-1.x.tar.bz2 package, x >= 2) is needed to enable TeX input processing - otherwise the compilation scripts will disable TeX input. A minimal TeX environment is also needed to allow TeX interaction. * xpaintrw/readLXP.c : routines for reading LXP files * iprocess.c : routines for the creation of LXP files * image.c : ImageDup() procedure added * operation.c : new option for cleaning temporary files * This version has reached all capabilities that had been planned since a long time: layer handling, vector graphics operations, possibility of TeX input and of mathematical drawings, programmatic creation of images, filters and graphical functions. Therefore Xpaint will probably enter into maintainance and bug correction mode. 2021-01-24 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.0 * This version now supports the use of layers (files *.lxp = Layered XPaint files). This is done via the C script editor. Any collection of images can be combined into a new merged image by a suitable C procedure. See example in directory share/c_scripts/templates/ * Compiling against libkpathsea and libdvipgm (from the dvipgm-1.x.tar.bz2 package, x >= 2) is needed to enable TeX input processing - otherwise the compilation scripts will disable TeX input. A minimal TeX environment is also needed to allow TeX interaction. * xpaintrw/readLXP.c : routines for reading LXP files * iprocess.c : routines for the creation of LXP files * image.c : ImageDup() procedure added * operation.c : new option for cleaning temporary files * This version has reached all capabilities that had been planned since a long time: layer handling, vector graphics operations, possibility of TeX input and of mathematical drawings, programmatic creation of images, filters and graphical functions. Therefore Xpaint will probably enter into maintainance and bug correction mode ... 2021-01-21 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.5 * Vector drawing capabilities improved and hopefully almost complete. * Xpaint now allows the use of TeX input in mathematical drawings, provided it is compiled with the compilation flag -DHAVE_DVIPGM. The libdvipgm and libkpathsea libraries are required for this. * The new 'vxp2tex' utility converts VXP data into a TeX file that can be used with pdftex or pdflatex. * lineOp.c : ticks and graduation procedure added. * graphic.c, image.c, iprocess.c : several fixes and improvements. 2021-01-09 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.4 * This version has acquired substantial vector drawing capabilities. Just open 'Options->VXP vector data Editor' to enable vector drawing operations. Most of them are recorded in a plain text "VXP format" *.vxp. The external program 'vxp2ps' converts these data into (vector) postscript, and 'vxp2dkw' can be used to convert them for use in in the handwritten note editor deskwrite. Such Postscript files can be easily converted to PDF or SVG. * Xpaint can also read and rasterize *.vxp files (but at this point all operations that are not translated right away into vector data are ignored, even though they are recorded in the VXP file). * graphic.c, operation.c, misc.c, iprocess.c : extensive additions to implement VXP data processing. * share/c_scripts/procedures : canvas+vxp.c added as a new example. C scripts can be used to produce VXP data. 2020-08-04 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.3 * This version of xpaint requires in principle libXaw3dXft-1.6.2h (but would run with 1.6.2d,e by removing the compilation flag -DHAVE_NEWEDITINGSTYLE) * graphic.c: a new option has been introduced, allowing xpaint to use more easily graphics tablets, more specifically the user space drivers provided with deskwrite on Sourceforge. * menu.c: SetFocusOn() has been fixed. This allows the input focus to be preserved in active text fields, even when the cursor leaves the top parent window (as is usually expected with modern desktop interface guidelines ...) * iprocess.c: small improvement of the Gamma/RGB filter. * Further small fixes throughout, especially in the build scripts and the debian packaging. 2020-06-29 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.2 * This version of xpaint requires libXaw3dXft-1.6.2h (or later versions of the libXaw3dxft library - the changes between 'f', 'g' and 'h' merely consist of introducing a new parameter to allow scrollbars of text widgets to be on the right side, plus some minor improvements in the edition process) Removing -DHAVE_NEWEDITINGSTYLE in Makefile.am would make xpaint compatible with earlier versions 1.6.2d,e of libxaw3dxft with essentially no change, except for the text input editing behavior of Backspace and Delete keys. * xpaintrw/readWritePNM.c: is now using a more recent version of libnetpbm, rather than the completely obsolete version from the 1990's that was embedded in the original code of xpaint. One consequence is that libnetpbm10-dev or preferably libnetpbm11-dev are now needed to compile xpaint, another one is that PPM/PAM files with an alpha channel can now be read and written. Adjust the NETPBM defines (-DNETPBM10 or -DNETPBM11) according to the installed version of libnetpbm. * help.c: the help widget now has two independently resizable panes (topics and explanations). * pattern.c: correction of old bug (that had however no visible effect before 3.0.1). * graphic.c: exchange of primary and secondary colors or patterns is now accessible by clicking on the red cross below the color picker (shown as an eye). Similar addition for pattern.c 2020-06-16 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.1 * This version of xpaint requires libXaw3dXft-1.6.2f (or later versions of the libXaw3dxft library). Removing -DHAVE_NEWEDITINGSTYLE in Makefile.am would make it compatible with earlier versions 1.6.2d,e with essentially no change except for the text input editing behavior of Backspace and Delete keys. * print.c: by default, xpaint no longer depends on cups-bsd commands, (but they can be re-enabled via an adjutsment of the app-defaults files). * xpaintrw/readWritePS.c: the BoundingBox of a file saved as PS/PDF should now be set appropriately. * graphic.c, *Op.c: extensive additions. Xpaint can now record all operations that are performed as vector data, in the so called VXP format. The recording starts as soon as the VXP editor under the Options menu is started, and these data can be saved into a file <name>.vxp * readWriteJP2K.c: has been ported to work with openjpeg version 2 (JPEG2000 format), including alpha channel. * Various other small fixes throughout (SVG import, ...) * At a later stage, it will be possible to convert these VXP files to other vector formats such as eps, pdf or svg, and import them back to xpaint. There will be also an option to insert TeX input and convert the data into a (La)TeX file. 2020-05-25 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.0 * bitmaps/toolicons: new set of icons, generated from SVG data. * app_defaults: the app_defaults files have been reorganized so as to separate linguistic strings and other data, especially widget sizes. Three sizes are now offered: big, medium, small, to accommodate HiDPI screens or low resolution screens. * operation.c: the tool window is now fully resizable. In order to actually change the size of icons, users can copy /usr/share/xpaint/bitmaps/toolicons/ into $HOME/.xpaint/toolicons/ and generate icons with larger or smaller size there. Just type ./generate_icons <height> in $HOME/.xpaint/toolicons/ to produce a new set of icons with the given height (the xpaint package is distributed with icons of default height 36). The shell script "generate_icons" requires inkscape to work. * graphic.c: the parameter btnheight is now used to resize the palette elements as well as the height of buttons. This is useful for HiDPI screens (as well as for lower resolution screens of older computers). * main.c: new option -blind that keeps xpaint running under the hood when batch procedures are invoked. * xpaintrw/readWritePS.c: SVG import has been updated to work with inkscape-1.0. * The change of major number in this version anticipates the introduction of some vector graphics capabilities in the versions 3.x.y to come. (Right now, the only vector graphics capabilities are PS, PDF, SVG import). 2020-05-21 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 2.10.3 * lineOp.c : under the "segment" operation, users will now find new "Position" and "Measurement" tools. These tools do not draw anything, but instead they record the locations of pixels that are clicked on, and compute lengths and angles. * iprocess.c : The "Perspective" filter has been vastly improved. It should now enable users to correct the perspective of a distorted picture taken by a camera, or to create artificial perspective when producing a drawing. This can be used in connection with the new "Position" tool, so as to specify points on the canvas. * iprocess.c : The API of C scripts introduces a new public procedure PixelInterpolate(unsigned char *op, Image *input, double x, double y) that can be used to smooth pixels, under transformations that map integer coordinates into float values (as is the case e.g. for rotations or homotheties with arbitrary factor). This will sometimes improve the output of such operations (but may also make the image fuzzier). * Two new C scripts "similarity.c" and "projective.c" have been added. They show in particular how to exploit the PixelInterpolate() procedure. * Help and message files have been edited to explain details of the new functionalities. 2017-11-13 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 2.10.2 * Minor compilation fixes in iprocess.c and xpaintrw/readWriteJP2K.c thanks to the OpenSUSE team. * Bug in operation.c : exitPaint(...) could trigger a segfault when quitting xpaint without saving the canvas. Thanks to Anthony J. Bentley from the OpenBSD team for reporting the bug. * misc.h : srandom() is nowadays always of void type. * Minor fixes for the calculation of the maximum canvas size. 2016-12-10 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 2.10.1 (a substantial update!). * Xpaint includes a new command line option -btnheight that adjusts appropriately the size of all internal widgets in case a big menu font is used (e.g. by setting the option -menufont , or by changing the app-defaults file). This is very useful if you have a high resolution screen. Many small local modifications of various source files in the main tree have been necessary for this. * A new option -toolmode 0,1,2 can be used to initialize the display of the tool window. Also adjustable dynamically by resizing that window. * Default canvas size has been set to 1024x768 Related command line options are -canvassize and -winsize that can be used independently to adjust the default size of canvas and main window. * The app-defaults files and help files have been modified to accommodate the above additions. * The "Print" widget has been improved, and its menubar is now again available to adjust page formats (a bug introduced probably a long time ago prevented it to work !) * A newer version libXaw3dXft-1.6.2e.tar.bz2 has been posted. The only change is a 3 lines addition that circumvents (what seems to be) a bug occurring in certain X11/Xorg implementations, e.g. the intel driver, version 2.99.917. Otherwise this will make no difference. * Changed the library name librw to libxpaintrw to avoid shared library conflicts. Thanks to Michael Orlitzky for pointing out the issue. * Applied a number of patches from gentoo.org that substantially improve the compilation process. Thanks to Julian Ospald <hasufell@gentoo.org> 2015-01-02 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10.3 * Port to the newer libXaw3dXft-1.6.2d.tar.bz2 (the latter is actually a requirement, this version no longer compiles with libXaw3dXft-1.6.2c). The point is that libXaw3dXft-1.6.2d has improved binary compatibility with plain libXaw3d-1.6.x * Only further cosmetic changes, no change in functionality. 2014-04-17 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10.2 * Minor fixes in 'configure.ac' and 'configure.old' scripts Xpaint can now be compiled again with plain Xaw or Xaw3d (this is NOT recommended, Xaw3dxft definitely gives much better results !) Thanks to Stefan Husmann (Arch Linux) for helpful reports in this respect. * 'configure' (based on autotools) and 'configure.old' (based on imake) should in most cases give essentially equivalent binaries. * PDF files are now read by using mudraw if mupdf & mupdf-tools are installed (otherwise Xpaint falls back to the formerly used solution: pdf2ps + ghostscript, a much slower one...) * Xpaint can now even import libreoffice files as images as soon as libreoffice is installed (assuming /usr/bin/libreoffice is a valid path to the main program) 2014-04-09 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10.1 * Includes the "version_and_focus_patch_for_2.9.10" and other minor fixes. * The alpha channel menu now includes a new function that allows editing as RGB values the image that appears when transparency is applied on a background of the selected background color - white being the default (this removes the transparency levels afterwards, so as to get a pure RGB image). * Bug (probably very old) corrected : selection of background color always resulted in black being chosen ! 2014-03-03 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10 * This version should preferably be compiled with libXaw3dXft-1.6.2c, although it still works Ok with libXaw3dXft-1.6.2b. * readWritePNG.c: fixed bug occurring when writing grayscale images possessing no more than 16 colors. * readWriteJPEG.c: JPEG images in CMYK colorspace are now handled properly (they will still be memorized as RGB, so the original CMYK information is lost, but at least they are shown correctly). * fileBrowser.c: "Save" and "Save as" menus now include the option to adjust JPEG quality between 50% and 100% (default is 90%) * fileBrowser.c: improved logic : the file browser now remembers file names when changing directories, and also takes into account default extension when specifying file format. * fileBrowser.c: thanks to a new feature from libXaw3dXft-1.6.2c (possibility of creating colored lists), xpaint now implements file type coloring in its file browser - at this point this is guessed merely from the suffix of the file. * operation.c: Canvas menu reorganized - it is now named "File menu" so as to conform to general use. Except from reordering the items, the main functionality is unchanged. * pattern.c: bug fixes. A segfault problem in the zoom selector has been corrected, and contextual help has been fixed. 2013-01-27 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.9.4 * This version should be compiled with libXaw3dXft-1.6.2b * RGB channel separation procedure fixed and improved * Fix in CRC data handling of regions in memory. * XPaint now remembers better the position of regions saved in memory. The recorded position can now be changed or reset to origin through the memory management menu. * compilation fix for pgf2pnm with newer libpgf-6.12.24 * Avoid "bool" variable throughout, as this is a typedef in <stdbool.h> * Fixes to configure scripts, thanks to Daniel Macks (fink project) * Minor GUI improvements 2012-02-14 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.9 * Xpaint now uses (or tries to use!) autotools. * libxaw3dxft is now a separate package (but is still a requirement, and in fact should be installed before). * xpaintrw/rwTable.c : segfault fix (occurring randomly) fixed in readMagic(). * minor fix in fontSelect.c, certain fonts were possibly missing in the font browser, in some rare circumstances. * very minor fix of scrollbar behaviour in graphic.c. * misc.c : new procedure SetWMInputHint() that helps solving some quirks. 2012-01-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8.4 * minor fixes in fileBrowser.c (adjustable height of text entry for the file name, resize procedure improved). 2011-10-13 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8.3 * xpaintrw/pgf-util/Makefile : add '-fpermissive' flag to allow compilation with recent (more picky!) versions of g++ * Xaw3dxft/Viewport.c : position of scrollbars can now be adjusted through parameters sbShift[X,Y][1,2]. No public API change, so this addition should be upward compatible. * graphic.c : some small fixes in the shellHandler routine to accommodate odd behavior of scrollbars with xorg recent versions, using the new sbShift feature. 2010-12-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8.2 - nothing really new, just very small fixes * Integrated patch to facilitate compilation with gcc-4.5 * app-defaults files : slight improvement of X event management in pull-down menus. * print.c : slight improvement of X event management in print widget. * fontOp.c : fixed color issue (color not initialized) when moving written text with arrow keys. * Very small changes in Xaw3dxft (minor Xaw3dXft.h API update) 2010-11-08 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8 * Xaw3dxft : code clean-up. New files Xaw3dXft.h and Xaw3dXft.c now contain the specific Xaw3dxft parameters and routines. A couple of small improvements to correct minor quirks in the menu entry highlighting behaviour. * main.c, graphic.c : changes made to accommodate the API changes introduced in Xaw3dxft. Further code clean-up. * image.h, graphic.c, iprocess.c : modified definition of the imageprocessinfo struct, so that hopefully compilation still works with gcc 4.5 (gcc-4.5 appears to be more picky with struct definitions). Thanks to Fedora maintainer Paulo Roma Cavalcanti <promac@gmail.com> for reporting the issue. 2010-11-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.7 * Arrow keys and "Backspace", "Return", "Escape" keys can now be used in all drawing operations whose effect is not immediate, especially all routines from arcOp.c, lineOp.c, polygonOp.c, freehandOp.c, splineOp.c, TextOp.c Arrow keys allow moving objects around before they are completely drawn, "Escape" restarts the operation from scratch, "Return" terminates the operation, and "Backspace" rewinds the course of operation backwards. * freehandOp.c : this operation now allows to draw arbitrary combinations of freehand and polygonal shapes and should be easier to use or to modify interactively thanks to the key bindings. * sprayOp.c : minor code clean-up. * updated accordingly Help files. 2010-10-25 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6.4 A couple of small improvements in spline, polygon, text and color operations. * fontOp.c, splineOp.c, polygonOp.c : implemented "Backspace" key action, i.e. removing last point or last character; "Escape" now entirely restarts the operation from the beginning. Other small improvements (including correction of a potential segfault occurring in some strange circumstances...); polygonOp() code is now also much simpler and easier to read. * graphic.c : multiple clicks on any of the three color/pattern selection discs now switch primary and secondary colors/patterns. * updated accordingly Help files. 2010-10-08 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6.3 - minor bug fix release - nothing really serious. * ops.h : minor compilation issue fixed. * graphic.c : corrected segfault bug of RegionToRGBA channels (occurring only when alpha channel was to be saved.) * chroma.c : fixed minor scrolling issue in color variance scrollbars. * graphic.c : added new menu lines to proceed more easily to editing of alpha channels or images in memory. * updated accordingly Help files, messages and app-defaults files. 2010-09-26 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6.2 * print.c : printing was completely broken, as a result of using double values instead of float values. Reverted to float ! * chroma.c, color.c, magnifier.c, fontSelect.c : revert to float ! * iprocess.c : fixed bug occurring only in very rare circumstances (creation of image with an alpha channel, being edited and compiled on the fly through the embedded C-script editor) * graphic.c : small improvement in ModifyRGB (new routine to rescale gray levels linearly from given thresholds). 2010-09-14 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6 * xpaintrw/rwTable.c, xpaintrw/readWriteTGA.c : fixes in TGA format, so as to prevent that xpaint could hang on certain non TGA files. Make sure anyway that TGA is parsed as a last resort, since TGA is a strange format without signature. * image.c, iprocess.c, graphic.c : substantial improvements in filter routines : - Added new "Merge" filter : helpful to combine smoothly an image with the underlying canvas. Works according to 4 different modes - Added new "Distortion" filter which can be used to produce local deformations - Added powerful Floyd-Steinberg algorithm (color quantification enhanced with a diffusion process). - Replaced "ModifyRGB" by a generalized RGB transformation procedure with 7 different modes, including Gamma correction (with independent r_gamma, g_gamma, b_gamma parameters), and linear transform. - Fixed several shortcomings of "Normalize contrast" and "Emboss" routines; "Emboss" now has 2 parameters allowing linear correction. - Renamed "Tilt" as "Projective Transform" with several enhancements. - Renamed "ImageCopy" as "ImageCopyData" which says more accurately what it does. * graphic.c : Memory menu : management of R,G,B and alpha channels : - Added extraction of red, green, blue, alpha channels from region - Added merge procedure for those channels * msgedit.c : new utility which can be used to extract strings from the English version of "Messages" and combine them with a partially localized "Messages_XY" for any other language - useful as well to avoid discrepancies between languages! * Many updates to Message and Help files. 2010-09-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.5 * xpaintrw/readWritePNG.c : fixed WritePNG() for alpha channel images possessing less than 16 black and white colors, which xpaint tried to write in an incorrect PNG mode. * graphic.c : fixed segfault bug when invoking "Clone Canvas" procedure. * xaw3dxft : a few hacks to work around minor display bugs related to Xft anti-aliasing/composition effects on certain X servers (especially proprietary NVIDIA ...) * main.c : new command line options -tooltips, -notooltips * operation.c, graphic.c : implemented tooltips (they can be disabled from the tools/help menu). * man page and help files : updated. 2010-08-15 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.4 * xpaintrw/readWriteTGA.c : added support for TGA format (borrowed mostly from mtpaint project). * xpaintrw/rwTable.c : code clean-up. * Paint.c, PaintRegion.c : fixes for certain complex situations involving region selection with masks and alpha channel. (Segfault could occur in Fatbits editor under those circumstances). * graphic.c : Suppression of alpha channel could lead to segfault. 2010-08-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.3 * xpaintrw/readWriteICO.c : imported a lot of code from the 'icoutil' GPLed package. As a result, xpaint can now read most Windows ICO files, even those containing embedded compressed PNG/JPG images which icoutil cannot fully open. Support for ICO masks as alpha channel, and for writing single image ICO files. * xpaintrw/readWritePGF.c : PGF image format support improved, thanks to 'pgf2pnm' provided by Christoph Stamm <christoph.stamm@fhnw.ch> (creator of the PGF format). libpgf and libpgf-dev are needed only optionally to compile 'pgf2pnm', which then provides PGF support in xpaint. However, xpaint itself does not link with libpgf and does not need libpgf-dev to be compiled. The alpha channel of PGF images is fully supported. * graphic.c : improvements/bug fixes in the "Clone with Zoom" procedure. Now works for zooming/downscaling images, with/without interpolation, and for adjusting alpha channel as well. * graphic.c, PaintEvent.c : much more powerful implementation of the "Delimit region" procedure, according to six different options (connected/non connected/color range regions, or complements of such regions). * The help files have been updated to reflect all current functionality of XPaint (Spanish help additions should be revised by a native speaker !) 2010-07-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.2 * xpaintrw/*.c : huge code clean-up. Saving files now show up a warning when the image possesses an alpha channel, but the format chosen does not support it (completely or in part). Note: saving in PNG should almost always be a safe choice ... * xpaintrw/readWriteTIFF.c : support substantially improved, including alpha channel read/write. More exotic TIFF formats unsupported. * xpaintrw/readWriteBMP.c : many more BMP image format types are now supported, including full support for images with an alpha channel (read/write). * xpaintrw/readWritePNM.c : provisions made to include support for alpha channel in PNM (this is a specific extension of xpaint : an RGB image concatenated with a gray level image of the same size - and '\n' in between - is viewed as RGBA data). * xpaintrw/readWriteJP2K.c : added support for JPEG2000 image format. Either libopenjpeg (default) or libjasper (optionally) can be used. Full support for alpha channel (requires openJPEG from subversion at this point now, since "stable" version 1.3 has insufficient alpha channel implementation...). * xpaintrw/readWritePGF.c : added support for PGF image format. This requires libpgf and pgf to be installed (but xpaint does not need to be linked against libpgf, and its compilation does not require libpgf-dev files either.) * xpaintrw/readWriteSGI.c : repaired old dormant code to read run-length encoded SGI/Irix image files. Checked to work fine. * xpaintrw/readWriteICO.c : unsupported, very buggy code. Disabled at this point. Instead, use e.g. 'icoutil' to convert those files to PNG ... * dialog.c : very small fix providing UTF8 support in AlertBox window titles (and always raising warning windows). * configure : if libXaw3dxft is installed as a shared library, compilation is now set by default to use it, rather than linking statically xpaint to libXaw3dxf.a 2010-07-18 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.1.5 * graphic.c : added "*allowResize: False" in Canvas*pane*form to prevent annoying widget initialization on certain platforms * xpaintrw/readWritePS.c : small fixes to handle correctly PS/PDF files whose names contain quotes or blank characters. 2010-07-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.1.4 * fatBitsEdit.c, Paint.c , Paintregion.c : several fixes in handling of alpha channel in fatbits editor - some affecting alpha channel image bits. * app-defaults : change zoom labels to correct values xx:1 instead of 1:xx * graphic.c : prevent fatbits editor getting called undeservedly by GetNonDirtyCanvas() routine ; removing alpha channel now moves it to memory rather than destroying it right away. * xpaintrw/readWritePS.c : fix for compilation of TeX/LaTeX files being called from random directories. * minor fixes throughout - thanks to the SUSE-Packman maintainer Detlef Reichelt <detlef@die-mafia.de> for help. 2010-06-02 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.1 * Paint.c , Paintregion.c : fixes in alpha channel routines. * fatBitsEdit.c : many fixes in fatbits editor. Refresh button added * graphic.c : reload file procedure didn't reload alpha channel - this is now fixed. * fontOp.c : potential segfault corrected. * small other (mostly random) improvements. 2010-05-16 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.0 * graphic.c, Paint.c : big improvements in handling of alpha channel ; alpha management menu is now explicit from canvas menu bar. Support still not quite complete at this point (regions do not appear yet in alpha mode). Should come for 2.9.1... * Paint.c, PaintRegion.c : fixed segfault occurring when using region operations in fatbits editor (regression introduced already in 2.8.9 which remained unnoticed up to 2.8.19 ...) * fontOp.c, fontSelect.c : UTF8 support should now be essentially complete. * xpaintrw/readWritePNG.c : fixed bug when writing PNG_COLOR_TYPE_PALETTE images with less than 16 colors (those images were wrongly converted to gray palette...) * several other small fixes and improvements throughout. 2010-04-17 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.19.1 (mostly cosmetic changes) * fileBrowser.c : added "ongoing" mode in File Browser (widget no longer closes when opening an image, allowing to browse files continuously). Performed a substantial code clean-up as well. * operation.c, graphic.c : menu improvements; one can now open an image from any canvas window. * misc.c : added RaiseWindow() routine to comply better with ewmh specifications. XMapRaised() replaced by RaiseWindow() throughout. * "snapshot" replaced by "screenshot" throughout. 2010-04-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.19 * fileBrowser.c : fixed minor annoyance in "save" and "saveas" routines - name of file is now again remembered when a filename has already been set. * graphic.c : fixed bug in ToolSelection switcher; "font" menu replaced by more powerful "text" menu; new entry added to edit/write text from text editor embedded in font browser. * iprocess.c : fixed bug in filter "adjust RGB colors" * fontSelect.c, fontOp.c : text sample is now editable, and this text can be imported on canvases. This includes being able to set fonts, colors, linespacing (etc) as editable text. Any UTF8 encoded file can be read and edited, and a small number of special commands are available to format such texts; for hints on how to use this, see "Doc/TextFormat.doc". Xpaint can thus be used as a text editor (sort of!), useful e.g. to create posters with text and graphics. * xpaintrw/readWritePS.c : support for reading a file as "enriched text". * main.c : new command line options -textfont and -astext, the latter for opening files as enriched text. * share/bin/imgmerge : small tweak to use a static PageInfo struct, otherwise imgmerge would segfault (gcc bug ?) 2010-03-13 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.18 * Minor fixes (UTF8 names in windows, rare segfault when using external viewer) * xpaintrw/readWritePNG.c : xpaint now saves correctly gray images which have an alpha channel. * xpaintrw/rwTable.c : introduces auto-detect mode for writing files (image type is guessed from suffix of file name, and set to PNG as a fallback). * xaw3dxft : changed library name to libXaw3dxft to avoid interfering with regular libXaw3d. Added hooks in 'configure' to (possibly) install and compile it as a shared library. Corrected an issue in xaw3dxft/List.c which could sometimes lead to a fatal X error. * Added man pages for imgmerge and pngconcat (provided by Debian maintainer Josué Abarca) * Removed dependency on Xft.h in PaintP.h which had the unfortunate effect of breaking C-Script compilation, e.g. in imgmerge. 2010-03-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.17 * Xpaint is now fully UTF8 compliant. This has been done rather cheaply by linking statically with a modified xaw3d library which is UTF8 & Freetype aware. This also means that anti-aliasing is enabled in the menus and text widgets, and that the X core font protocol is no longer used anywhere. * By default, Xpaint no longer depends on external xaw/xaw3d/xaw3dg libraries as it is compiled with its own improved xaw3d clone; this only adds approximately 250 kB to the binary executable. * Xpaint can still be used with 8 bit encoding by specifying the command option 'xpaint -encoding 8'. However the resource files XPaint* Messages* Help* should then preferably be converted back to a 8bit locale, otherwise some strange characters will show up in the menus, at least in languages which use non ASCII characters. 2010-02-17 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.16.1 * fontSelect.c, misc.c : introduced clickFocusCallback which fixes keyboard focus in fontSelect and in color picker ascii text input widgets (problem occurred e.g. under KDE). Use 2.8.16 with xpaint-2.8.16-keyboard-input.patch. 2010-02-12 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.16 * graphic.c, fontOp.c, fontSelect.c : Xpaint now uses the Xft protocol to display fonts, so that (in particular) all TrueType fonts are available, and the corresponding glyphs are nicely anti-aliased without resorting to a use of sub-pixel resolution. Another benefit is the possibility of rotating text, or even applying arbitrary linear transformation (however, writing fonts with a pattern instead of a plain color is no longer possible directly - for this, one can use instead masks or a fill procedure). * xpaintrw/readWritePNG.c : applied small patch from Stefan Husmann (Arch Linux maintainer) to take care of API deprecation in newer versions libpng-1.4.x. 2010-02-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.15 * PaintRegion.c : finally found and corrected long standing bug which plagued iteration of filters and undo procedures. * fileBrowser.c : several GUI improvements. * xpaintrw/readWritePS.c : improved handling of BoundingBoxes. Fixed bug in the use of 'psselect' which was found on the Fedora bugzilla list (many thanks to Paulo Roma Cavalcanti <promac@superig.com.br> for analyzing the issue) 2010-01-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.14 * graphic.c : memory management simplified and improved; added CRC32 checksum control to avoid duplicates. * xpaintrw/readScript.c : fixed potential bug occurring in rare circumstances. * Various fixes in batch scripts 'imgmerge', 'batch.c' and 'xpaint_ocr' GPLv3 licence specified there. * Included new debian files released by Debian maintainer Josué Abarca * xpaint.man.in : corrected a ­ issue (thanks again to Josué Abarca) 2010-01-20 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.13 * Paint.c : corrected nasty bug * graphic.c : GUI improvements. Border color of paint widget now indicates status of image (red: non editable, green: resize enabled, blue: has an alpha layer, black: otherwise). * image.c : ImagaToPixmap() et al modified so as to manage alpha channel mode once for all (rather than repeating this for each of the image loaders). 2010-01-18 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.12 * misc.c, graphic.c : some more fixes for alpha channel issues. 2010-01-17 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.11 * fileBrowser.c : browserResized() : included patch for accommodating bug in certain versions of the Xaw3d library * Paint.c : PwGetPixmap() modified so as to work independently of zoom value. Saving a file under zoom<1 now works !! * graphic.c : there is now support for adjusting join and cap style of lines being drawn. Fixed handling of memory box. * Code for alpha channel completed and made more robust (substantial changes in graphic.c, Paint.c, PaintRegion.c) 2010-01-10 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.10 * graphic.c : many GUI improvements. Some alpha channel fixes. (arbitrary linear transformation of alpha channel still not implemented). * lineOp.c : fixed arrow and vector drawing under zoom != 1 (were correctly written to pixmap but incorrectly shown on canvas). * fileBrowser.c : a few cosmetic changes to make code more robust. * xpaintrw/readWritePNG.c : fixed readPNG() for non transparent PNG images possessing a palette of colors. 2010-01-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.9 * polygonOp.c : segfault bug corrected. Polygonal regions can now be selected correctly under zoom values other than 1. * xpaint.h : various API modified to include alpha channel (in images, paint canvases, clipboard, memory stack...) * PaintUndo.c : implemented alpha channel in Undo stacks * PaintRegion.c, graphic.c : routines to set/show/edit the alpha channel are now implemented in a fairly complete manner. * readWritePNG.c : xpaint now saves a canvas with an alpha channel as a PNG file with a corresponding alpha channel. * readWriteXPM.c : xpaint now saves a canvas with an alpha channel as an XPM file with a "None" color (reduced to a 0/1 mask). (By default, alpha<128 is considered to be transparent and alpha>=128 to be opaque. The threshold value 128 can be changed from the options.) * readGIF.c : xpaint can now read alpha channel of GIF89 files possessing transparent pixels (setting transparent pixel in writeGIF.c not yet implemented). 2009-12-09 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.8 Interim release with partial support for transparent images; alpha channel is now correctly read when loading PNG and XPM images. Easier management and writing support will be implemented in 2.8.9. * xpaintrw/readGIF.c : xpaint will now open all frames of animated GIF images, and not just the first frame - support of this feature was already there, but had never been made accessible from the GUI ! * xpaintrw/readWritePNG.c : xpaint now detects PNG images possessing an alpha channel and loads them properly. The RGB values and alpha channels can be edited separately (but not yet mixed back easily). * xpaintrw/readLXP.c : preliminary implementation of layered xpaint image format LXP. File share/c_scripts/templates/script.c used as template. * pattern.c : new button introduced to modify background color (thus duplicating functionality from the separate background color widget). * fileBrowser.c : widget improved. Four new buttons added to get directly to home, root and current directory, and to show/hide dot files. The browser of loaded files now has buttons for editing C scripts and managing layers (implementation somehow works, but is not yet complete). * iprocess.c : corrected segfault bug occurring in certain circumstances, e.g. when loading recursive image C-scripts. In particular, "layer" example share/c_scripts/layers/combine.c now works again. 2009-11-18 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7.3 (very minor changes) * graphic.c : corrected very tiny bug in resizeCanvas() routine which resulted in occasional disappearance of Fatbits cursor, when the canvas was resized under certain zoom reduction values. * fatBitsEdit.c : added convenience routine FatbitsEditorDestroy(paint) (not yet used inline - could possibly be used from C scripts). * small addition in Local.config file 2009-11-15 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7.2 (very minor changes) * Further cosmetic fixes and code cleaning ; X error handler improved (just in case). * snapshot.c : taking a snapshot from the tools window now unmaps the window (so that any window stacked behind can be captured); spurious warning 'bad pixmap' from libX11 has been eliminated. 2009-11-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7.1 (released only as a patch to 2.8.7). * Further cosmetic improvements and code cleaning not really worth bothering (e.g. popup menus which, when users change their mind and no longer want to use them, may not immediately popdown as would be expected when clicking randomly outside, e.g. on the canvas ...) 2009-11-04 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7 released. * graphic.c, menu.c, PaintEvent.c : a substantial number of cosmetic changes made to further improve the menu behaviour. * fileName.c renamed as fileBrowser.c * fileBrowser.c : Some "flickering" issues in the browser have been corrected. The file browser of "loaded files" now include ad hoc fields and buttons for modifying the scaling of vector format images (PS/PDF/DVI/TeX/LaTeX/SVG) as well as for selecting a page in multi-page documents. Now, Xpaint can thus be used as a practical viewer for such documents - though for this purpose it's certainly not as fast and optimized as specialized viewers ... * readWritePS.c : multipage PostScript files require 'psselect' from the psutils package. (This is a very simple program so we may consider including it in the next version of xpaint to remove that dependency.) DVI files are now accepted, along with PS/PDF/TeX/LaTeX/SVG. * print.c : selecting PDF option now (really) saves file as PDF rather than PostScript. * Merged Changelog and (unmaintained) file Doc/CHANGES 2009-10-27 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.6.1 released. * bug fixes : main.c : xpaint did not accept setting default zoom < 100% through command line graphic.c : underestimated evaluation of canvas window size for large images, resulting in image not being fully displayed even when it could. PaintRegion.c : segfault bug occurring in certain circumstances when dragging a region outside viewport, in region transparency mode. 2009-10-26 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.6 released. * Extensive changes in many parts, to provide capability for zoom = 1/n, while performing all possible operations under such a zoom. This means that anti-aliasing can be obtained by using e.g. zoom = 1/3 and then cloning the canvas with the given reduction. * magnifier.c: Introduced a magnifying glass, based on code of 'xlupe' by Thomas Runge (runge@rostock.zgdv.de) * operation.c: menu now includes an item to open the magnifying glass, and a browser for all images which have been opened or loaded from the command line. * fileName.c : the buildBrowser() routine has been extended to have a mode ('type=4') showing the list of loaded images. * graphic.c: edit menu includes 2 items for cloning the canvas (with or without reduction) * a lot of bugs have been ironed out, e.g. a crash in the polygon selection area, and a very long-standing bug in the memory management of menu.c which used to cause (fortunately unfrequent) random crashes. 2009-10-16 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.5 released. * graphic.c, user visible changes : added a zoom button and a new toggle allowing to resize the canvas, using mouse or arrow keys. Several other related improvements have been made for zooming/resizing, along with a few minor fixes (the layer example "layer.c" compiles again without segfaulting.) 2009-10-13 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.4 released. * pattern.c : Fixed segfault bug in color/pattern budget, which occurred when creating new brushes. * print.c : added new toggle so as to possibly produce a compressed PS file, or send to printer a PDF file rather than a PS file. The annoying printing notification popup has been replaced by a less intrusive notification. Many other small improvements - e.g. output postcript file can be selected with a file browser. * xpaintrw/readWritePS.c : the PostScript generator has been considerably improved. XPaint is now capable of producing strongly compressed PostScript files, of weight increased hardly by more than 30%-35% when starting from a PNG file of the same resolution, and the process is faster than before - it seems that even gimp does not yet take care of this, its PS files can often be reduced to less than 50% of their current size (huge thanks to Peter Szabo for showing the way with his sam2p program.) A standalone 'ppmtops' utility has been included for potential re-use elsewhere. * Clarification of the licence. Xpaint is an old program, many parts of which were written at a time when the GPL was not so pervasive. To the best knowledge of the current maintainer, all parts where written under permissive licences which are compatible with the GPL. J.-P. Demailly thus puts under the GPLv3 all code developped by him in the last twelve years - that's probably more than 30% of the total amount of code, and the program as a whole should thus be considered as GPLv3. All related utilities ('ppmtops', C scripts, etc) are also put under the GPLv3. 2009-10-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.3 released. * Included 2 patches from Mandriva packagement experts, fixing some minor compilation problems and potential security issues. * xpaintrw/readWritePS.c : xpaint is now able to display TeX, LaTeX, PDF and SVG files using image conversion from external ad hoc programs. Option -dpi <dpi value> can be used to adjust size of image. 2009-10-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.2 released. * pattern.c : found and fixed two long standing segfault bugs (fortunately occurring only in not so frequent circumstances) * Set default gridcolor to grey80 on TrueColor displays, a less intrusive color than black. 2009-09-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.1 released. * Introduced rectangular (not just square) snap grids. Color of grid can be changed to arbitrary color. * graphic.c : corrected segfault bug in simplemenu switcher (selector popup). 2009-09-27 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.0 released. * Menu popups have been entirely reworked. Their behaviour is now more fluid - and similar to the default behaviour of modern toolkits like GTK/qt - so users should feel less disturbed. (this required numerous changes in menu.c and app-defaults) * Fixed size handling of Canvas windows under maximize/unmaximize procedures. * Stability should be considerably improved. Some memory leaks have been removed as well. * Added new command line options: -undosize <num> (set undo memory limit) -operation <num> (start with operation <num> set in tool panel) -filter <file> (define filter by using <file> as C-script) -proc <file> (define procedure by using <file> as C-script) * Added support for using menu popups in C script filters See share/c_scripts/filters/clean.c for an example. This means that C script filters can involve adjustable parameters which can be easily changed (i.e. without needing a recompilation each time the parameters are changed.) * Added support for using menu popups in C script procedures See share/c_scripts/procedures/proc_with_params.c for an example * iprocess.c, xpaintrw/readScriptC.c : added support for running batch jobs (for mass processing of images, using xpaint as the engine); see share/c_scripts/batch/batch.c share/bin/imgmerge * Added batch script 'imgmerge' which uses xpaint to convert and concatenate image files into a single PDF file. This also makes use of Peter Szabo's 'pdfconcat' program (GPL, included). * Added support for OCR (with the ocrad engine by default) The OCR engine(s) can be specified in the bash script /usr/share/xpaint/c_scripts/bin/xpaint_ocr This means that xpaint can be easily used as a GUI for command line OCR engines ('xpaint_ocr' makes use of the 'xless' pager, by default, but any other pager/editor can be used instead). * brushOp.c: system wide brushes are no longer hardwired, and can now be configured from the SHAREDIR directory. * Added additional brushes provided by John David Gray <kahdgarxi@gmail.com> which are useful to draw electronic circuitry. Also included a patch of him introducing three new patterns and extending the drawVisibleGrid() routine in Paint.c * Fixed (and improved as well) behaviour of snap and grid routines, also using ideas of JD Gray. * Changed rotations to use trigonometric positive rotation rather than clockwise. This was too unnatural to me ! * Numerous bug fixes. Thanks to Mattis Michel <sic_zer0@hotmail.com> for correcting a bug in the snap routines and for providing further improvements; Mattis noticed - and urged correction - of a critical bug in the "Load clipboard" procedure; he also suggested putting WM hints on minimal size of widgets so as to avoid random crashes under wild resizing of the windows. * Updated the man page - which had actually been neglected for a couple of years ...
2023-01-22 18:41:52 +01:00
share/xpaint/include/version.h
share/xpaint/include/xpaint.h
xpaint: update to release 3.1.4, using wip/xpaint. Packaged in wip by @adam + a couple of changes by @vins Changes (since version 2.7.8) 2021-08-14 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.4 * arcOp.c : the DrawArc procedure now checks that the arc is not drawn with a zero linewidth - otherwise some pixels could have been missing, and any later fill area procedure could then have led to unexpected results. This minor bug (or misbehavior?) has been fixed. * image.c : if installed, dvipng can now be used as an alternative to the libdvipgm library, at the expense of a small slowdown in the output. This allows TeX input even without libdvipgm installed, dvipng being installable independently. 2021-02-12 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.3 * graphic.c : the "Text" menu has been substantially improved. Text and TeX/LaTeX input of arbitrary length, size, color can now be edited and converted to either a bitmap image or vector PostScript/PDF with embedded fonts. * More extensive testing - and a lot of small details fixed 2021-01-28 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.2 * Small improvement of versions 3.1.0, 3.1.1 with bug fixes. Xpaint can now be compiled without dvipgm (at the expense of losing some TeX functionality). Thanks to testers for feedback! * This version supports the use of layers (files *.lxp = Layered XPaint files). This is done via the C script editor. Any collection of images can be combined into a new merged image by a suitable C procedure. See example in directory share/c_scripts/templates/ * Compiling against libkpathsea and libdvipgm (from the dvipgm-1.x.tar.bz2 package, x >= 2) is needed to enable TeX input processing - otherwise the compilation scripts will disable TeX input. A minimal TeX environment is also needed to allow TeX interaction. * xpaintrw/readLXP.c : routines for reading LXP files * iprocess.c : routines for the creation of LXP files * image.c : ImageDup() procedure added * operation.c : new option for cleaning temporary files * This version has reached all capabilities that had been planned since a long time: layer handling, vector graphics operations, possibility of TeX input and of mathematical drawings, programmatic creation of images, filters and graphical functions. Therefore Xpaint will probably enter into maintainance and bug correction mode. 2021-01-27 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.1 * Small improvement of version 3.1.0 with bug fixes. * This version supports the use of layers (files *.lxp = Layered XPaint files). This is done via the C script editor. Any collection of images can be combined into a new merged image by a suitable C procedure. See example in directory share/c_scripts/templates/ * Compiling against libkpathsea and libdvipgm (from the dvipgm-1.x.tar.bz2 package, x >= 2) is needed to enable TeX input processing - otherwise the compilation scripts will disable TeX input. A minimal TeX environment is also needed to allow TeX interaction. * xpaintrw/readLXP.c : routines for reading LXP files * iprocess.c : routines for the creation of LXP files * image.c : ImageDup() procedure added * operation.c : new option for cleaning temporary files * This version has reached all capabilities that had been planned since a long time: layer handling, vector graphics operations, possibility of TeX input and of mathematical drawings, programmatic creation of images, filters and graphical functions. Therefore Xpaint will probably enter into maintainance and bug correction mode. 2021-01-24 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.1.0 * This version now supports the use of layers (files *.lxp = Layered XPaint files). This is done via the C script editor. Any collection of images can be combined into a new merged image by a suitable C procedure. See example in directory share/c_scripts/templates/ * Compiling against libkpathsea and libdvipgm (from the dvipgm-1.x.tar.bz2 package, x >= 2) is needed to enable TeX input processing - otherwise the compilation scripts will disable TeX input. A minimal TeX environment is also needed to allow TeX interaction. * xpaintrw/readLXP.c : routines for reading LXP files * iprocess.c : routines for the creation of LXP files * image.c : ImageDup() procedure added * operation.c : new option for cleaning temporary files * This version has reached all capabilities that had been planned since a long time: layer handling, vector graphics operations, possibility of TeX input and of mathematical drawings, programmatic creation of images, filters and graphical functions. Therefore Xpaint will probably enter into maintainance and bug correction mode ... 2021-01-21 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.5 * Vector drawing capabilities improved and hopefully almost complete. * Xpaint now allows the use of TeX input in mathematical drawings, provided it is compiled with the compilation flag -DHAVE_DVIPGM. The libdvipgm and libkpathsea libraries are required for this. * The new 'vxp2tex' utility converts VXP data into a TeX file that can be used with pdftex or pdflatex. * lineOp.c : ticks and graduation procedure added. * graphic.c, image.c, iprocess.c : several fixes and improvements. 2021-01-09 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.4 * This version has acquired substantial vector drawing capabilities. Just open 'Options->VXP vector data Editor' to enable vector drawing operations. Most of them are recorded in a plain text "VXP format" *.vxp. The external program 'vxp2ps' converts these data into (vector) postscript, and 'vxp2dkw' can be used to convert them for use in in the handwritten note editor deskwrite. Such Postscript files can be easily converted to PDF or SVG. * Xpaint can also read and rasterize *.vxp files (but at this point all operations that are not translated right away into vector data are ignored, even though they are recorded in the VXP file). * graphic.c, operation.c, misc.c, iprocess.c : extensive additions to implement VXP data processing. * share/c_scripts/procedures : canvas+vxp.c added as a new example. C scripts can be used to produce VXP data. 2020-08-04 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.3 * This version of xpaint requires in principle libXaw3dXft-1.6.2h (but would run with 1.6.2d,e by removing the compilation flag -DHAVE_NEWEDITINGSTYLE) * graphic.c: a new option has been introduced, allowing xpaint to use more easily graphics tablets, more specifically the user space drivers provided with deskwrite on Sourceforge. * menu.c: SetFocusOn() has been fixed. This allows the input focus to be preserved in active text fields, even when the cursor leaves the top parent window (as is usually expected with modern desktop interface guidelines ...) * iprocess.c: small improvement of the Gamma/RGB filter. * Further small fixes throughout, especially in the build scripts and the debian packaging. 2020-06-29 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.2 * This version of xpaint requires libXaw3dXft-1.6.2h (or later versions of the libXaw3dxft library - the changes between 'f', 'g' and 'h' merely consist of introducing a new parameter to allow scrollbars of text widgets to be on the right side, plus some minor improvements in the edition process) Removing -DHAVE_NEWEDITINGSTYLE in Makefile.am would make xpaint compatible with earlier versions 1.6.2d,e of libxaw3dxft with essentially no change, except for the text input editing behavior of Backspace and Delete keys. * xpaintrw/readWritePNM.c: is now using a more recent version of libnetpbm, rather than the completely obsolete version from the 1990's that was embedded in the original code of xpaint. One consequence is that libnetpbm10-dev or preferably libnetpbm11-dev are now needed to compile xpaint, another one is that PPM/PAM files with an alpha channel can now be read and written. Adjust the NETPBM defines (-DNETPBM10 or -DNETPBM11) according to the installed version of libnetpbm. * help.c: the help widget now has two independently resizable panes (topics and explanations). * pattern.c: correction of old bug (that had however no visible effect before 3.0.1). * graphic.c: exchange of primary and secondary colors or patterns is now accessible by clicking on the red cross below the color picker (shown as an eye). Similar addition for pattern.c 2020-06-16 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.1 * This version of xpaint requires libXaw3dXft-1.6.2f (or later versions of the libXaw3dxft library). Removing -DHAVE_NEWEDITINGSTYLE in Makefile.am would make it compatible with earlier versions 1.6.2d,e with essentially no change except for the text input editing behavior of Backspace and Delete keys. * print.c: by default, xpaint no longer depends on cups-bsd commands, (but they can be re-enabled via an adjutsment of the app-defaults files). * xpaintrw/readWritePS.c: the BoundingBox of a file saved as PS/PDF should now be set appropriately. * graphic.c, *Op.c: extensive additions. Xpaint can now record all operations that are performed as vector data, in the so called VXP format. The recording starts as soon as the VXP editor under the Options menu is started, and these data can be saved into a file <name>.vxp * readWriteJP2K.c: has been ported to work with openjpeg version 2 (JPEG2000 format), including alpha channel. * Various other small fixes throughout (SVG import, ...) * At a later stage, it will be possible to convert these VXP files to other vector formats such as eps, pdf or svg, and import them back to xpaint. There will be also an option to insert TeX input and convert the data into a (La)TeX file. 2020-05-25 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 3.0.0 * bitmaps/toolicons: new set of icons, generated from SVG data. * app_defaults: the app_defaults files have been reorganized so as to separate linguistic strings and other data, especially widget sizes. Three sizes are now offered: big, medium, small, to accommodate HiDPI screens or low resolution screens. * operation.c: the tool window is now fully resizable. In order to actually change the size of icons, users can copy /usr/share/xpaint/bitmaps/toolicons/ into $HOME/.xpaint/toolicons/ and generate icons with larger or smaller size there. Just type ./generate_icons <height> in $HOME/.xpaint/toolicons/ to produce a new set of icons with the given height (the xpaint package is distributed with icons of default height 36). The shell script "generate_icons" requires inkscape to work. * graphic.c: the parameter btnheight is now used to resize the palette elements as well as the height of buttons. This is useful for HiDPI screens (as well as for lower resolution screens of older computers). * main.c: new option -blind that keeps xpaint running under the hood when batch procedures are invoked. * xpaintrw/readWritePS.c: SVG import has been updated to work with inkscape-1.0. * The change of major number in this version anticipates the introduction of some vector graphics capabilities in the versions 3.x.y to come. (Right now, the only vector graphics capabilities are PS, PDF, SVG import). 2020-05-21 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 2.10.3 * lineOp.c : under the "segment" operation, users will now find new "Position" and "Measurement" tools. These tools do not draw anything, but instead they record the locations of pixels that are clicked on, and compute lengths and angles. * iprocess.c : The "Perspective" filter has been vastly improved. It should now enable users to correct the perspective of a distorted picture taken by a camera, or to create artificial perspective when producing a drawing. This can be used in connection with the new "Position" tool, so as to specify points on the canvas. * iprocess.c : The API of C scripts introduces a new public procedure PixelInterpolate(unsigned char *op, Image *input, double x, double y) that can be used to smooth pixels, under transformations that map integer coordinates into float values (as is the case e.g. for rotations or homotheties with arbitrary factor). This will sometimes improve the output of such operations (but may also make the image fuzzier). * Two new C scripts "similarity.c" and "projective.c" have been added. They show in particular how to exploit the PixelInterpolate() procedure. * Help and message files have been edited to explain details of the new functionalities. 2017-11-13 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 2.10.2 * Minor compilation fixes in iprocess.c and xpaintrw/readWriteJP2K.c thanks to the OpenSUSE team. * Bug in operation.c : exitPaint(...) could trigger a segfault when quitting xpaint without saving the canvas. Thanks to Anthony J. Bentley from the OpenBSD team for reporting the bug. * misc.h : srandom() is nowadays always of void type. * Minor fixes for the calculation of the maximum canvas size. 2016-12-10 J.-P. Demailly <jean-pierre.demailly@univ-grenoble-alpes.fr> * Version 2.10.1 (a substantial update!). * Xpaint includes a new command line option -btnheight that adjusts appropriately the size of all internal widgets in case a big menu font is used (e.g. by setting the option -menufont , or by changing the app-defaults file). This is very useful if you have a high resolution screen. Many small local modifications of various source files in the main tree have been necessary for this. * A new option -toolmode 0,1,2 can be used to initialize the display of the tool window. Also adjustable dynamically by resizing that window. * Default canvas size has been set to 1024x768 Related command line options are -canvassize and -winsize that can be used independently to adjust the default size of canvas and main window. * The app-defaults files and help files have been modified to accommodate the above additions. * The "Print" widget has been improved, and its menubar is now again available to adjust page formats (a bug introduced probably a long time ago prevented it to work !) * A newer version libXaw3dXft-1.6.2e.tar.bz2 has been posted. The only change is a 3 lines addition that circumvents (what seems to be) a bug occurring in certain X11/Xorg implementations, e.g. the intel driver, version 2.99.917. Otherwise this will make no difference. * Changed the library name librw to libxpaintrw to avoid shared library conflicts. Thanks to Michael Orlitzky for pointing out the issue. * Applied a number of patches from gentoo.org that substantially improve the compilation process. Thanks to Julian Ospald <hasufell@gentoo.org> 2015-01-02 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10.3 * Port to the newer libXaw3dXft-1.6.2d.tar.bz2 (the latter is actually a requirement, this version no longer compiles with libXaw3dXft-1.6.2c). The point is that libXaw3dXft-1.6.2d has improved binary compatibility with plain libXaw3d-1.6.x * Only further cosmetic changes, no change in functionality. 2014-04-17 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10.2 * Minor fixes in 'configure.ac' and 'configure.old' scripts Xpaint can now be compiled again with plain Xaw or Xaw3d (this is NOT recommended, Xaw3dxft definitely gives much better results !) Thanks to Stefan Husmann (Arch Linux) for helpful reports in this respect. * 'configure' (based on autotools) and 'configure.old' (based on imake) should in most cases give essentially equivalent binaries. * PDF files are now read by using mudraw if mupdf & mupdf-tools are installed (otherwise Xpaint falls back to the formerly used solution: pdf2ps + ghostscript, a much slower one...) * Xpaint can now even import libreoffice files as images as soon as libreoffice is installed (assuming /usr/bin/libreoffice is a valid path to the main program) 2014-04-09 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10.1 * Includes the "version_and_focus_patch_for_2.9.10" and other minor fixes. * The alpha channel menu now includes a new function that allows editing as RGB values the image that appears when transparency is applied on a background of the selected background color - white being the default (this removes the transparency levels afterwards, so as to get a pure RGB image). * Bug (probably very old) corrected : selection of background color always resulted in black being chosen ! 2014-03-03 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.10 * This version should preferably be compiled with libXaw3dXft-1.6.2c, although it still works Ok with libXaw3dXft-1.6.2b. * readWritePNG.c: fixed bug occurring when writing grayscale images possessing no more than 16 colors. * readWriteJPEG.c: JPEG images in CMYK colorspace are now handled properly (they will still be memorized as RGB, so the original CMYK information is lost, but at least they are shown correctly). * fileBrowser.c: "Save" and "Save as" menus now include the option to adjust JPEG quality between 50% and 100% (default is 90%) * fileBrowser.c: improved logic : the file browser now remembers file names when changing directories, and also takes into account default extension when specifying file format. * fileBrowser.c: thanks to a new feature from libXaw3dXft-1.6.2c (possibility of creating colored lists), xpaint now implements file type coloring in its file browser - at this point this is guessed merely from the suffix of the file. * operation.c: Canvas menu reorganized - it is now named "File menu" so as to conform to general use. Except from reordering the items, the main functionality is unchanged. * pattern.c: bug fixes. A segfault problem in the zoom selector has been corrected, and contextual help has been fixed. 2013-01-27 J.-P. Demailly <jean-pierre.demailly@ujf-grenoble.fr> * Version 2.9.9.4 * This version should be compiled with libXaw3dXft-1.6.2b * RGB channel separation procedure fixed and improved * Fix in CRC data handling of regions in memory. * XPaint now remembers better the position of regions saved in memory. The recorded position can now be changed or reset to origin through the memory management menu. * compilation fix for pgf2pnm with newer libpgf-6.12.24 * Avoid "bool" variable throughout, as this is a typedef in <stdbool.h> * Fixes to configure scripts, thanks to Daniel Macks (fink project) * Minor GUI improvements 2012-02-14 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.9 * Xpaint now uses (or tries to use!) autotools. * libxaw3dxft is now a separate package (but is still a requirement, and in fact should be installed before). * xpaintrw/rwTable.c : segfault fix (occurring randomly) fixed in readMagic(). * minor fix in fontSelect.c, certain fonts were possibly missing in the font browser, in some rare circumstances. * very minor fix of scrollbar behaviour in graphic.c. * misc.c : new procedure SetWMInputHint() that helps solving some quirks. 2012-01-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8.4 * minor fixes in fileBrowser.c (adjustable height of text entry for the file name, resize procedure improved). 2011-10-13 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8.3 * xpaintrw/pgf-util/Makefile : add '-fpermissive' flag to allow compilation with recent (more picky!) versions of g++ * Xaw3dxft/Viewport.c : position of scrollbars can now be adjusted through parameters sbShift[X,Y][1,2]. No public API change, so this addition should be upward compatible. * graphic.c : some small fixes in the shellHandler routine to accommodate odd behavior of scrollbars with xorg recent versions, using the new sbShift feature. 2010-12-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8.2 - nothing really new, just very small fixes * Integrated patch to facilitate compilation with gcc-4.5 * app-defaults files : slight improvement of X event management in pull-down menus. * print.c : slight improvement of X event management in print widget. * fontOp.c : fixed color issue (color not initialized) when moving written text with arrow keys. * Very small changes in Xaw3dxft (minor Xaw3dXft.h API update) 2010-11-08 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.8 * Xaw3dxft : code clean-up. New files Xaw3dXft.h and Xaw3dXft.c now contain the specific Xaw3dxft parameters and routines. A couple of small improvements to correct minor quirks in the menu entry highlighting behaviour. * main.c, graphic.c : changes made to accommodate the API changes introduced in Xaw3dxft. Further code clean-up. * image.h, graphic.c, iprocess.c : modified definition of the imageprocessinfo struct, so that hopefully compilation still works with gcc 4.5 (gcc-4.5 appears to be more picky with struct definitions). Thanks to Fedora maintainer Paulo Roma Cavalcanti <promac@gmail.com> for reporting the issue. 2010-11-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.7 * Arrow keys and "Backspace", "Return", "Escape" keys can now be used in all drawing operations whose effect is not immediate, especially all routines from arcOp.c, lineOp.c, polygonOp.c, freehandOp.c, splineOp.c, TextOp.c Arrow keys allow moving objects around before they are completely drawn, "Escape" restarts the operation from scratch, "Return" terminates the operation, and "Backspace" rewinds the course of operation backwards. * freehandOp.c : this operation now allows to draw arbitrary combinations of freehand and polygonal shapes and should be easier to use or to modify interactively thanks to the key bindings. * sprayOp.c : minor code clean-up. * updated accordingly Help files. 2010-10-25 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6.4 A couple of small improvements in spline, polygon, text and color operations. * fontOp.c, splineOp.c, polygonOp.c : implemented "Backspace" key action, i.e. removing last point or last character; "Escape" now entirely restarts the operation from the beginning. Other small improvements (including correction of a potential segfault occurring in some strange circumstances...); polygonOp() code is now also much simpler and easier to read. * graphic.c : multiple clicks on any of the three color/pattern selection discs now switch primary and secondary colors/patterns. * updated accordingly Help files. 2010-10-08 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6.3 - minor bug fix release - nothing really serious. * ops.h : minor compilation issue fixed. * graphic.c : corrected segfault bug of RegionToRGBA channels (occurring only when alpha channel was to be saved.) * chroma.c : fixed minor scrolling issue in color variance scrollbars. * graphic.c : added new menu lines to proceed more easily to editing of alpha channels or images in memory. * updated accordingly Help files, messages and app-defaults files. 2010-09-26 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6.2 * print.c : printing was completely broken, as a result of using double values instead of float values. Reverted to float ! * chroma.c, color.c, magnifier.c, fontSelect.c : revert to float ! * iprocess.c : fixed bug occurring only in very rare circumstances (creation of image with an alpha channel, being edited and compiled on the fly through the embedded C-script editor) * graphic.c : small improvement in ModifyRGB (new routine to rescale gray levels linearly from given thresholds). 2010-09-14 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.6 * xpaintrw/rwTable.c, xpaintrw/readWriteTGA.c : fixes in TGA format, so as to prevent that xpaint could hang on certain non TGA files. Make sure anyway that TGA is parsed as a last resort, since TGA is a strange format without signature. * image.c, iprocess.c, graphic.c : substantial improvements in filter routines : - Added new "Merge" filter : helpful to combine smoothly an image with the underlying canvas. Works according to 4 different modes - Added new "Distortion" filter which can be used to produce local deformations - Added powerful Floyd-Steinberg algorithm (color quantification enhanced with a diffusion process). - Replaced "ModifyRGB" by a generalized RGB transformation procedure with 7 different modes, including Gamma correction (with independent r_gamma, g_gamma, b_gamma parameters), and linear transform. - Fixed several shortcomings of "Normalize contrast" and "Emboss" routines; "Emboss" now has 2 parameters allowing linear correction. - Renamed "Tilt" as "Projective Transform" with several enhancements. - Renamed "ImageCopy" as "ImageCopyData" which says more accurately what it does. * graphic.c : Memory menu : management of R,G,B and alpha channels : - Added extraction of red, green, blue, alpha channels from region - Added merge procedure for those channels * msgedit.c : new utility which can be used to extract strings from the English version of "Messages" and combine them with a partially localized "Messages_XY" for any other language - useful as well to avoid discrepancies between languages! * Many updates to Message and Help files. 2010-09-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.5 * xpaintrw/readWritePNG.c : fixed WritePNG() for alpha channel images possessing less than 16 black and white colors, which xpaint tried to write in an incorrect PNG mode. * graphic.c : fixed segfault bug when invoking "Clone Canvas" procedure. * xaw3dxft : a few hacks to work around minor display bugs related to Xft anti-aliasing/composition effects on certain X servers (especially proprietary NVIDIA ...) * main.c : new command line options -tooltips, -notooltips * operation.c, graphic.c : implemented tooltips (they can be disabled from the tools/help menu). * man page and help files : updated. 2010-08-15 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.4 * xpaintrw/readWriteTGA.c : added support for TGA format (borrowed mostly from mtpaint project). * xpaintrw/rwTable.c : code clean-up. * Paint.c, PaintRegion.c : fixes for certain complex situations involving region selection with masks and alpha channel. (Segfault could occur in Fatbits editor under those circumstances). * graphic.c : Suppression of alpha channel could lead to segfault. 2010-08-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.3 * xpaintrw/readWriteICO.c : imported a lot of code from the 'icoutil' GPLed package. As a result, xpaint can now read most Windows ICO files, even those containing embedded compressed PNG/JPG images which icoutil cannot fully open. Support for ICO masks as alpha channel, and for writing single image ICO files. * xpaintrw/readWritePGF.c : PGF image format support improved, thanks to 'pgf2pnm' provided by Christoph Stamm <christoph.stamm@fhnw.ch> (creator of the PGF format). libpgf and libpgf-dev are needed only optionally to compile 'pgf2pnm', which then provides PGF support in xpaint. However, xpaint itself does not link with libpgf and does not need libpgf-dev to be compiled. The alpha channel of PGF images is fully supported. * graphic.c : improvements/bug fixes in the "Clone with Zoom" procedure. Now works for zooming/downscaling images, with/without interpolation, and for adjusting alpha channel as well. * graphic.c, PaintEvent.c : much more powerful implementation of the "Delimit region" procedure, according to six different options (connected/non connected/color range regions, or complements of such regions). * The help files have been updated to reflect all current functionality of XPaint (Spanish help additions should be revised by a native speaker !) 2010-07-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.2 * xpaintrw/*.c : huge code clean-up. Saving files now show up a warning when the image possesses an alpha channel, but the format chosen does not support it (completely or in part). Note: saving in PNG should almost always be a safe choice ... * xpaintrw/readWriteTIFF.c : support substantially improved, including alpha channel read/write. More exotic TIFF formats unsupported. * xpaintrw/readWriteBMP.c : many more BMP image format types are now supported, including full support for images with an alpha channel (read/write). * xpaintrw/readWritePNM.c : provisions made to include support for alpha channel in PNM (this is a specific extension of xpaint : an RGB image concatenated with a gray level image of the same size - and '\n' in between - is viewed as RGBA data). * xpaintrw/readWriteJP2K.c : added support for JPEG2000 image format. Either libopenjpeg (default) or libjasper (optionally) can be used. Full support for alpha channel (requires openJPEG from subversion at this point now, since "stable" version 1.3 has insufficient alpha channel implementation...). * xpaintrw/readWritePGF.c : added support for PGF image format. This requires libpgf and pgf to be installed (but xpaint does not need to be linked against libpgf, and its compilation does not require libpgf-dev files either.) * xpaintrw/readWriteSGI.c : repaired old dormant code to read run-length encoded SGI/Irix image files. Checked to work fine. * xpaintrw/readWriteICO.c : unsupported, very buggy code. Disabled at this point. Instead, use e.g. 'icoutil' to convert those files to PNG ... * dialog.c : very small fix providing UTF8 support in AlertBox window titles (and always raising warning windows). * configure : if libXaw3dxft is installed as a shared library, compilation is now set by default to use it, rather than linking statically xpaint to libXaw3dxf.a 2010-07-18 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.1.5 * graphic.c : added "*allowResize: False" in Canvas*pane*form to prevent annoying widget initialization on certain platforms * xpaintrw/readWritePS.c : small fixes to handle correctly PS/PDF files whose names contain quotes or blank characters. 2010-07-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.1.4 * fatBitsEdit.c, Paint.c , Paintregion.c : several fixes in handling of alpha channel in fatbits editor - some affecting alpha channel image bits. * app-defaults : change zoom labels to correct values xx:1 instead of 1:xx * graphic.c : prevent fatbits editor getting called undeservedly by GetNonDirtyCanvas() routine ; removing alpha channel now moves it to memory rather than destroying it right away. * xpaintrw/readWritePS.c : fix for compilation of TeX/LaTeX files being called from random directories. * minor fixes throughout - thanks to the SUSE-Packman maintainer Detlef Reichelt <detlef@die-mafia.de> for help. 2010-06-02 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.1 * Paint.c , Paintregion.c : fixes in alpha channel routines. * fatBitsEdit.c : many fixes in fatbits editor. Refresh button added * graphic.c : reload file procedure didn't reload alpha channel - this is now fixed. * fontOp.c : potential segfault corrected. * small other (mostly random) improvements. 2010-05-16 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.9.0 * graphic.c, Paint.c : big improvements in handling of alpha channel ; alpha management menu is now explicit from canvas menu bar. Support still not quite complete at this point (regions do not appear yet in alpha mode). Should come for 2.9.1... * Paint.c, PaintRegion.c : fixed segfault occurring when using region operations in fatbits editor (regression introduced already in 2.8.9 which remained unnoticed up to 2.8.19 ...) * fontOp.c, fontSelect.c : UTF8 support should now be essentially complete. * xpaintrw/readWritePNG.c : fixed bug when writing PNG_COLOR_TYPE_PALETTE images with less than 16 colors (those images were wrongly converted to gray palette...) * several other small fixes and improvements throughout. 2010-04-17 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.19.1 (mostly cosmetic changes) * fileBrowser.c : added "ongoing" mode in File Browser (widget no longer closes when opening an image, allowing to browse files continuously). Performed a substantial code clean-up as well. * operation.c, graphic.c : menu improvements; one can now open an image from any canvas window. * misc.c : added RaiseWindow() routine to comply better with ewmh specifications. XMapRaised() replaced by RaiseWindow() throughout. * "snapshot" replaced by "screenshot" throughout. 2010-04-05 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.19 * fileBrowser.c : fixed minor annoyance in "save" and "saveas" routines - name of file is now again remembered when a filename has already been set. * graphic.c : fixed bug in ToolSelection switcher; "font" menu replaced by more powerful "text" menu; new entry added to edit/write text from text editor embedded in font browser. * iprocess.c : fixed bug in filter "adjust RGB colors" * fontSelect.c, fontOp.c : text sample is now editable, and this text can be imported on canvases. This includes being able to set fonts, colors, linespacing (etc) as editable text. Any UTF8 encoded file can be read and edited, and a small number of special commands are available to format such texts; for hints on how to use this, see "Doc/TextFormat.doc". Xpaint can thus be used as a text editor (sort of!), useful e.g. to create posters with text and graphics. * xpaintrw/readWritePS.c : support for reading a file as "enriched text". * main.c : new command line options -textfont and -astext, the latter for opening files as enriched text. * share/bin/imgmerge : small tweak to use a static PageInfo struct, otherwise imgmerge would segfault (gcc bug ?) 2010-03-13 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.18 * Minor fixes (UTF8 names in windows, rare segfault when using external viewer) * xpaintrw/readWritePNG.c : xpaint now saves correctly gray images which have an alpha channel. * xpaintrw/rwTable.c : introduces auto-detect mode for writing files (image type is guessed from suffix of file name, and set to PNG as a fallback). * xaw3dxft : changed library name to libXaw3dxft to avoid interfering with regular libXaw3d. Added hooks in 'configure' to (possibly) install and compile it as a shared library. Corrected an issue in xaw3dxft/List.c which could sometimes lead to a fatal X error. * Added man pages for imgmerge and pngconcat (provided by Debian maintainer Josué Abarca) * Removed dependency on Xft.h in PaintP.h which had the unfortunate effect of breaking C-Script compilation, e.g. in imgmerge. 2010-03-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.17 * Xpaint is now fully UTF8 compliant. This has been done rather cheaply by linking statically with a modified xaw3d library which is UTF8 & Freetype aware. This also means that anti-aliasing is enabled in the menus and text widgets, and that the X core font protocol is no longer used anywhere. * By default, Xpaint no longer depends on external xaw/xaw3d/xaw3dg libraries as it is compiled with its own improved xaw3d clone; this only adds approximately 250 kB to the binary executable. * Xpaint can still be used with 8 bit encoding by specifying the command option 'xpaint -encoding 8'. However the resource files XPaint* Messages* Help* should then preferably be converted back to a 8bit locale, otherwise some strange characters will show up in the menus, at least in languages which use non ASCII characters. 2010-02-17 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.16.1 * fontSelect.c, misc.c : introduced clickFocusCallback which fixes keyboard focus in fontSelect and in color picker ascii text input widgets (problem occurred e.g. under KDE). Use 2.8.16 with xpaint-2.8.16-keyboard-input.patch. 2010-02-12 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.16 * graphic.c, fontOp.c, fontSelect.c : Xpaint now uses the Xft protocol to display fonts, so that (in particular) all TrueType fonts are available, and the corresponding glyphs are nicely anti-aliased without resorting to a use of sub-pixel resolution. Another benefit is the possibility of rotating text, or even applying arbitrary linear transformation (however, writing fonts with a pattern instead of a plain color is no longer possible directly - for this, one can use instead masks or a fill procedure). * xpaintrw/readWritePNG.c : applied small patch from Stefan Husmann (Arch Linux maintainer) to take care of API deprecation in newer versions libpng-1.4.x. 2010-02-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.15 * PaintRegion.c : finally found and corrected long standing bug which plagued iteration of filters and undo procedures. * fileBrowser.c : several GUI improvements. * xpaintrw/readWritePS.c : improved handling of BoundingBoxes. Fixed bug in the use of 'psselect' which was found on the Fedora bugzilla list (many thanks to Paulo Roma Cavalcanti <promac@superig.com.br> for analyzing the issue) 2010-01-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.14 * graphic.c : memory management simplified and improved; added CRC32 checksum control to avoid duplicates. * xpaintrw/readScript.c : fixed potential bug occurring in rare circumstances. * Various fixes in batch scripts 'imgmerge', 'batch.c' and 'xpaint_ocr' GPLv3 licence specified there. * Included new debian files released by Debian maintainer Josué Abarca * xpaint.man.in : corrected a ­ issue (thanks again to Josué Abarca) 2010-01-20 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.13 * Paint.c : corrected nasty bug * graphic.c : GUI improvements. Border color of paint widget now indicates status of image (red: non editable, green: resize enabled, blue: has an alpha layer, black: otherwise). * image.c : ImagaToPixmap() et al modified so as to manage alpha channel mode once for all (rather than repeating this for each of the image loaders). 2010-01-18 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.12 * misc.c, graphic.c : some more fixes for alpha channel issues. 2010-01-17 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.11 * fileBrowser.c : browserResized() : included patch for accommodating bug in certain versions of the Xaw3d library * Paint.c : PwGetPixmap() modified so as to work independently of zoom value. Saving a file under zoom<1 now works !! * graphic.c : there is now support for adjusting join and cap style of lines being drawn. Fixed handling of memory box. * Code for alpha channel completed and made more robust (substantial changes in graphic.c, Paint.c, PaintRegion.c) 2010-01-10 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.10 * graphic.c : many GUI improvements. Some alpha channel fixes. (arbitrary linear transformation of alpha channel still not implemented). * lineOp.c : fixed arrow and vector drawing under zoom != 1 (were correctly written to pixmap but incorrectly shown on canvas). * fileBrowser.c : a few cosmetic changes to make code more robust. * xpaintrw/readWritePNG.c : fixed readPNG() for non transparent PNG images possessing a palette of colors. 2010-01-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.9 * polygonOp.c : segfault bug corrected. Polygonal regions can now be selected correctly under zoom values other than 1. * xpaint.h : various API modified to include alpha channel (in images, paint canvases, clipboard, memory stack...) * PaintUndo.c : implemented alpha channel in Undo stacks * PaintRegion.c, graphic.c : routines to set/show/edit the alpha channel are now implemented in a fairly complete manner. * readWritePNG.c : xpaint now saves a canvas with an alpha channel as a PNG file with a corresponding alpha channel. * readWriteXPM.c : xpaint now saves a canvas with an alpha channel as an XPM file with a "None" color (reduced to a 0/1 mask). (By default, alpha<128 is considered to be transparent and alpha>=128 to be opaque. The threshold value 128 can be changed from the options.) * readGIF.c : xpaint can now read alpha channel of GIF89 files possessing transparent pixels (setting transparent pixel in writeGIF.c not yet implemented). 2009-12-09 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.8 Interim release with partial support for transparent images; alpha channel is now correctly read when loading PNG and XPM images. Easier management and writing support will be implemented in 2.8.9. * xpaintrw/readGIF.c : xpaint will now open all frames of animated GIF images, and not just the first frame - support of this feature was already there, but had never been made accessible from the GUI ! * xpaintrw/readWritePNG.c : xpaint now detects PNG images possessing an alpha channel and loads them properly. The RGB values and alpha channels can be edited separately (but not yet mixed back easily). * xpaintrw/readLXP.c : preliminary implementation of layered xpaint image format LXP. File share/c_scripts/templates/script.c used as template. * pattern.c : new button introduced to modify background color (thus duplicating functionality from the separate background color widget). * fileBrowser.c : widget improved. Four new buttons added to get directly to home, root and current directory, and to show/hide dot files. The browser of loaded files now has buttons for editing C scripts and managing layers (implementation somehow works, but is not yet complete). * iprocess.c : corrected segfault bug occurring in certain circumstances, e.g. when loading recursive image C-scripts. In particular, "layer" example share/c_scripts/layers/combine.c now works again. 2009-11-18 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7.3 (very minor changes) * graphic.c : corrected very tiny bug in resizeCanvas() routine which resulted in occasional disappearance of Fatbits cursor, when the canvas was resized under certain zoom reduction values. * fatBitsEdit.c : added convenience routine FatbitsEditorDestroy(paint) (not yet used inline - could possibly be used from C scripts). * small addition in Local.config file 2009-11-15 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7.2 (very minor changes) * Further cosmetic fixes and code cleaning ; X error handler improved (just in case). * snapshot.c : taking a snapshot from the tools window now unmaps the window (so that any window stacked behind can be captured); spurious warning 'bad pixmap' from libX11 has been eliminated. 2009-11-06 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7.1 (released only as a patch to 2.8.7). * Further cosmetic improvements and code cleaning not really worth bothering (e.g. popup menus which, when users change their mind and no longer want to use them, may not immediately popdown as would be expected when clicking randomly outside, e.g. on the canvas ...) 2009-11-04 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.7 released. * graphic.c, menu.c, PaintEvent.c : a substantial number of cosmetic changes made to further improve the menu behaviour. * fileName.c renamed as fileBrowser.c * fileBrowser.c : Some "flickering" issues in the browser have been corrected. The file browser of "loaded files" now include ad hoc fields and buttons for modifying the scaling of vector format images (PS/PDF/DVI/TeX/LaTeX/SVG) as well as for selecting a page in multi-page documents. Now, Xpaint can thus be used as a practical viewer for such documents - though for this purpose it's certainly not as fast and optimized as specialized viewers ... * readWritePS.c : multipage PostScript files require 'psselect' from the psutils package. (This is a very simple program so we may consider including it in the next version of xpaint to remove that dependency.) DVI files are now accepted, along with PS/PDF/TeX/LaTeX/SVG. * print.c : selecting PDF option now (really) saves file as PDF rather than PostScript. * Merged Changelog and (unmaintained) file Doc/CHANGES 2009-10-27 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.6.1 released. * bug fixes : main.c : xpaint did not accept setting default zoom < 100% through command line graphic.c : underestimated evaluation of canvas window size for large images, resulting in image not being fully displayed even when it could. PaintRegion.c : segfault bug occurring in certain circumstances when dragging a region outside viewport, in region transparency mode. 2009-10-26 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.6 released. * Extensive changes in many parts, to provide capability for zoom = 1/n, while performing all possible operations under such a zoom. This means that anti-aliasing can be obtained by using e.g. zoom = 1/3 and then cloning the canvas with the given reduction. * magnifier.c: Introduced a magnifying glass, based on code of 'xlupe' by Thomas Runge (runge@rostock.zgdv.de) * operation.c: menu now includes an item to open the magnifying glass, and a browser for all images which have been opened or loaded from the command line. * fileName.c : the buildBrowser() routine has been extended to have a mode ('type=4') showing the list of loaded images. * graphic.c: edit menu includes 2 items for cloning the canvas (with or without reduction) * a lot of bugs have been ironed out, e.g. a crash in the polygon selection area, and a very long-standing bug in the memory management of menu.c which used to cause (fortunately unfrequent) random crashes. 2009-10-16 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.5 released. * graphic.c, user visible changes : added a zoom button and a new toggle allowing to resize the canvas, using mouse or arrow keys. Several other related improvements have been made for zooming/resizing, along with a few minor fixes (the layer example "layer.c" compiles again without segfaulting.) 2009-10-13 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.4 released. * pattern.c : Fixed segfault bug in color/pattern budget, which occurred when creating new brushes. * print.c : added new toggle so as to possibly produce a compressed PS file, or send to printer a PDF file rather than a PS file. The annoying printing notification popup has been replaced by a less intrusive notification. Many other small improvements - e.g. output postcript file can be selected with a file browser. * xpaintrw/readWritePS.c : the PostScript generator has been considerably improved. XPaint is now capable of producing strongly compressed PostScript files, of weight increased hardly by more than 30%-35% when starting from a PNG file of the same resolution, and the process is faster than before - it seems that even gimp does not yet take care of this, its PS files can often be reduced to less than 50% of their current size (huge thanks to Peter Szabo for showing the way with his sam2p program.) A standalone 'ppmtops' utility has been included for potential re-use elsewhere. * Clarification of the licence. Xpaint is an old program, many parts of which were written at a time when the GPL was not so pervasive. To the best knowledge of the current maintainer, all parts where written under permissive licences which are compatible with the GPL. J.-P. Demailly thus puts under the GPLv3 all code developped by him in the last twelve years - that's probably more than 30% of the total amount of code, and the program as a whole should thus be considered as GPLv3. All related utilities ('ppmtops', C scripts, etc) are also put under the GPLv3. 2009-10-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.3 released. * Included 2 patches from Mandriva packagement experts, fixing some minor compilation problems and potential security issues. * xpaintrw/readWritePS.c : xpaint is now able to display TeX, LaTeX, PDF and SVG files using image conversion from external ad hoc programs. Option -dpi <dpi value> can be used to adjust size of image. 2009-10-01 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.2 released. * pattern.c : found and fixed two long standing segfault bugs (fortunately occurring only in not so frequent circumstances) * Set default gridcolor to grey80 on TrueColor displays, a less intrusive color than black. 2009-09-29 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.1 released. * Introduced rectangular (not just square) snap grids. Color of grid can be changed to arbitrary color. * graphic.c : corrected segfault bug in simplemenu switcher (selector popup). 2009-09-27 J.-P. Demailly <demailly@fourier.ujf-grenoble.fr> * Version 2.8.0 released. * Menu popups have been entirely reworked. Their behaviour is now more fluid - and similar to the default behaviour of modern toolkits like GTK/qt - so users should feel less disturbed. (this required numerous changes in menu.c and app-defaults) * Fixed size handling of Canvas windows under maximize/unmaximize procedures. * Stability should be considerably improved. Some memory leaks have been removed as well. * Added new command line options: -undosize <num> (set undo memory limit) -operation <num> (start with operation <num> set in tool panel) -filter <file> (define filter by using <file> as C-script) -proc <file> (define procedure by using <file> as C-script) * Added support for using menu popups in C script filters See share/c_scripts/filters/clean.c for an example. This means that C script filters can involve adjustable parameters which can be easily changed (i.e. without needing a recompilation each time the parameters are changed.) * Added support for using menu popups in C script procedures See share/c_scripts/procedures/proc_with_params.c for an example * iprocess.c, xpaintrw/readScriptC.c : added support for running batch jobs (for mass processing of images, using xpaint as the engine); see share/c_scripts/batch/batch.c share/bin/imgmerge * Added batch script 'imgmerge' which uses xpaint to convert and concatenate image files into a single PDF file. This also makes use of Peter Szabo's 'pdfconcat' program (GPL, included). * Added support for OCR (with the ocrad engine by default) The OCR engine(s) can be specified in the bash script /usr/share/xpaint/c_scripts/bin/xpaint_ocr This means that xpaint can be easily used as a GUI for command line OCR engines ('xpaint_ocr' makes use of the 'xless' pager, by default, but any other pager/editor can be used instead). * brushOp.c: system wide brushes are no longer hardwired, and can now be configured from the SHAREDIR directory. * Added additional brushes provided by John David Gray <kahdgarxi@gmail.com> which are useful to draw electronic circuitry. Also included a patch of him introducing three new patterns and extending the drawVisibleGrid() routine in Paint.c * Fixed (and improved as well) behaviour of snap and grid routines, also using ideas of JD Gray. * Changed rotations to use trigonometric positive rotation rather than clockwise. This was too unnatural to me ! * Numerous bug fixes. Thanks to Mattis Michel <sic_zer0@hotmail.com> for correcting a bug in the snap routines and for providing further improvements; Mattis noticed - and urged correction - of a critical bug in the "Load clipboard" procedure; he also suggested putting WM hints on minimal size of widgets so as to avoid random crashes under wild resizing of the windows. * Updated the man page - which had actually been neglected for a couple of years ...
2023-01-22 18:41:52 +01:00
share/xpaint/include/xpaintrw.h
share/xpaint/messages/Messages
share/xpaint/messages/Messages_es
share/xpaint/messages/Messages_fr