Sketch 0.6.4 (January 11th, 2000)
=================================

 * Fixed a bug in Sketch's postscript procset
   (Resources/Misc/sketch-proc.ps) that caused problems when a
   sketch-eps that contains eps's that use showpage was embedded in a ps
   file which was then run through psnup (got that? :) ) To reproduce
   it, create an eps with dvips, embed it in a Sketch drawing, export as
   eps, embed it in a tex-document, create a psfile from that with dvips
   and 'psnup -2' it. The resulting psfile executes a superfluous
   showpage at the end of the embedded tex-eps.

 * Blending of two path-text objects works now. In previous versions
   attempting this would leave the document in an inconsistent state and
   the user could'nt undo the operation or even save properly.

 * Fixed bugs in the type1 font file parser and the underlying
   postscript tokenizer. Some type 1 font files caused segfaults in the
   tokenizer (e.g. the UTB_____.pfa font that comes with X11).

 * Updated Spanish translation provided by Esteban Manchado Velázquez.

 * More color icons provided by Panos Katsaloulis. Again, if you want to
   use them, put the line

   preferences.color_icons = 1

   into ~/.sketch/preferences.py .

 * Misc/export_raster.py: additional boolean parameter for the
   export_raster and export_alpha functions, use_bbox. If use_bbox is
   true only render the contents of the bounding rectangle, otherwise
   render the entire page.

 * Added Misc/Symbolgroup/, a plugin-object that can be used to build a
   simple symbol library. See Misc/Symbolgroup/README for more details.

 * setup.py: Give a more meaningful error message if _tkinter is not
   configured in Python's Setup

 * The mkfontdb.py script can also generate ghostscript Fontmap files
   now thanks to Jeffrey Boser. The script is now at version 1.3.


Sketch 0.6.3 (December 1st, 1999)
=================================

 * The default properties for new objects can be set now by pressing the
   apply button in the fill-, line- and font-dialogs when no object is
   selected. Sketch will ask whether graphics objects or text objects
   should be affected. You can select both, of course.

   If you don't like this behavior, you can switch it off by putting the
   following line into your ~/.sketch/preferences.py:

   preferences.set_default_properties = 0

 * A new button in the lower left corner of the main window (with an X
   bitmap) that is equivalent to Style/No Fill when pressed with the
   left mouse button and equivalent to Style/No Line when pressed with
   the middle mouse button.

 * When editing bezier curves, the ctrl-key now restricts the movement
   of nodes to horizontal and vertical and when dragging a control
   point, the angle of the tangent is restricted to multiples of 15
   degrees.

 * When drawing bezier curves the ctrl-key now restricts the slope of
   the tangent to multiples of 15 degrees.

 * When drawing poly-lines, the ctrl-key now restricts the slopes of the
   lines to multiples of 15 degrees.

 * Selecting a blend group works a little different now, so that
   clicking on the interpolation selects the entire blend group. In
   earlier versions only the interpolation object was selected in that
   case. Clicking on a control object of a blend group still selects
   just the control object. (The blend group object contains both the
   control objects and the interpolation objects).

   The reason for this change is that it makes it easier to select two
   blend groups to create an interpolation betweem them.

   The change also affects the blend dialog if the selected blend group
   has more than one control object. To change the number of steps in an
   interpolation you have to select the interpolation object by holding
   Ctrl and Shift when clicking on the object, just like you would with
   a normal group to select a contained object.
 
 * A small change in the way Sketch determines which handle to drag when
   editing a bezier curve: When a node and one of its control points
   coincide, it was impossible to drag the control point. Now Sketch
   selects the control point in that case. Coinciding nodes and control
   points can occur when gridding is on and they're often found
   Illustrator files.

 * There's a new directory Misc/ that contains some scripts that I use
   occasionally. These scripts are somewhat unpolished and will probably
   need some tweaking to fit your needs.

   I also consider them 'half-supported', that is I test and fix them
   only as far as I actually use them.

   There are two scripts at the moment. One lets you export raster
   images via ghostscript, and the other reads paths exported by Gimp.

 * A small reorganization of the sfd files in Resources/Fontmetrics. The
   Charter and Utopia fonts are now listed in a separate file gsopt.sfd.

   The rationale behind this is that std.sfd contains the standard
   postscript files--in as far as that can be defined--like Times-Roman
   or Courier. gs.sfd lists the URW fonts that make up the standard
   ghostscript fonts, which are basically clones of the standard
   postscript fonts. gsopt.sfd lists optional ghostscript fonts.

 * The afm-file parser is more tolerant now. It had problems with empty
   lines.

 * fixed a bug that made the context command 'Select Mask' fail.

 * fixed a bug that caused the first few characters of a path-text to be
   misplaced if the start position coincided with a node (but not the
   start-node) of the curve-object.

 * Fixed a small bug in the cmxfilter that flipped the orientation of
   conical gradients.

 * The command line option --version works again.

 * There a new option for ~/.sketch/preferences.py, fallback_font. This
   is the name of the font to use when a font or the corresponding
   metrics can't be found. The default is 'Times-Roman'

 * Added a note about the slightly broken pyimglib package in SuSE Linux
   6.2 to the INSTALL file.

 * Fixed a few typos in the German translation.

 * Updated Spanish translation provided by Esteban Manchado Velázquez.

 * Added a new section about export filters to the developer's guide.

 * setup.py parsed macro definitions in Setup incorrectly. This is fixed
   now. I also documented the --python-setup option.

 * setup.py's build command accepts arguments of the form <KEY>=<VALUE>
   now. These are passed through to make to let you override variables
   like CC or OPT. See the generated Makefiles or Makefile.pre.in for
   more details.

 * The mkfontdb.py script knows a few more foundries and has a new
   commandline option '-f' to specify the foundry used when it can't be
   determined from the afm-file. I also increased its version to 1.2



Sketch 0.6.2 (September 19th, 1999)
===================================

 * Import/Export filters for the proposed Web-standard for vector
   graphics, SVG. For the import filter, but not for the export filter,
   you need the Python xml-package; see the INSTALL file for details on
   where to get it.

   Both filters are very primitive at the moment and only handle some
   simple shapes and fills/strokes. In particular, there's no support
   for Text or gradient fills among others yet.

 * Cleaned up the documentation to have less practically empty
   HTML-files and extended the section on font-configuration. It
   contains information about Sketch's font-path and on how to add
   fonts. 

 * Converted the images in the docs to the PNG format.

 * When editing text objects, you can position the caret with the mouse
   now.

 * The create_star script is now interactive. It pops up a modal dialog
   asking for the parameters of the star as an example how to use
   dialogs is user scripts.

 * The sample scripts select_same_line_color.py and
   select_same_fill_color.py are substantially faster now if there's a
   large number of objects to be selected.

 * The help message in setup.py is more compact now, thanks to Gregor
   Hoffleit.

 * Fixed a bug in the XFig filter that lead to the rejection of files
   with "Flush Left" justification (as generated by pstoedit, for
   example).

 * The AI import filter handles text in ai-files generated by ps2ai
   better now.

 * The AI filter understands font encodings now.

 * Fixed Sketch/Modules/skrect.c and Sketch/Modules/skcolor.c to avoid
   Problems with GCC 2.95.

 * Fixed Sketch's font code to not require the EncodingScheme key in
   afm-files. This key is optional and is not present in afm-files
   generated by ttf2pfa, for instance.



Sketch 0.6.1 (August 5th, 1999)
===============================

 * Spanish messages contributed by Esteban Manchado Velázquez.

 * Color Icons contributed by Panos Katsaloulis. They're not used by
   default because the set of icons is not complete yet. If you like,
   you can switch them on by putting the line

   preferences.color_icons = 1

   into ~/.sketch/preferences.py .

 * The cursor now changes when the mouse is over a selected object or a
   guide line. You can switch this feature off by adding the line

   preferences.active_cursor = 0

   to ~/.sketch/preferences.py .

 * The AI export filter handles axial and radial gradients now.

 * The AI import filter understands gradients better now. In particular,
   it can handle AI files with gradients created by Corel Draw correctly
   now (I hope).

 * The AI import filter knows about guides and places all guides in an
   AI-file on the guide layer. In former versions the guide paths were
   mixed with normal paths resulting in incorrect paths.

 * The CMX import filter also loads radial and conical gradients now (in
   addition to axial gradients).

 * Fixed the bug that caused multiple handles at the same position to
   become invisible in some situations.

 * Two new sample scripts, create_star and create_text.

 * I added a section to the user scripts documentation, covering 'common
   tasks' like the creation of objects, manipulating objects and
   manipulating the current selection.

 * The postscript file generated for a landscape drawing now has a
   %%Orientation: Landscape comment, if the 'rotate ccw' button is
   checked.

 * Updated paxtkinter to work with Tcl/Tk 8.1.


Sketch 0.6.0 (May 18th, 1999)
=============================

 * Support for non-english messages via gettext. Run setup.py with the
   '--with-nls' option to activate this. So far there's only support for
   German.

   If you want to add support for a new language, have a look at
   po/README.

 * The symbolic links created by `setup.py install' use relative
   filenames now.

 * The Developer's Guide has some more documentation on how to implement
   import filters

 * The Illustrator export filter handles embedded raster images and
   some text.

 * The Illustrator import filter handles some embedded raster image formats.

 * Fixed a bug when placing objects (e.g. raster images) while in
   creation mode.

 * Fixed a bug in the PostScript generator, that could lead to wrong
   fill/stroke colors.

 * When drawing poly-lines and you start with just a mouse-click and no
   drag, only only the starting point is defined. If you drag, the first
   two points are defined.

   The old behavior was to always create the first two points which
   resulted in zero-length first segment if the mouse wasn't dragged.

 * The reset button in the align dialog has been removed. To switch off
   alignment in one direction, click on the sunken button.

 * The Type1 font parser is smarter. The old parser had problems with
   fonts using Mac line separators.



Sketch 0.5.5 (April 22nd, 1999)
===============================

* Improved import filters:

  - AI import filter has some text support now for point text and path
    text and it handles transformed gradients slightly better

  - The WMF import filter is much more stable and complete now. The
    version distributed with 0.5.4 was very incomplete and buggy.

  - The CMX import filter is much more stable and complete now. The
    version distributed with 0.5.4 was very incomplete. The new version
    suports 32 bit files.

* The rulers now obey the default unit settings.

* The vertical rulers can display the text either horizontally,
  vertically (similar to GTK) or rotated (my favourite). The default is
  horizontally.

  You configure this by appending

  preferences.ruler_text_type = TYPE

  to ~/.sketch/preferences.py (edit this file while Sketch is not
  running). TYPE can be either 'horizontal', 'vertical' or 'rotated'
  (including the quotes!). 

  The font for the rulers is determined by preferences.ruler_font for
  normal horizontal characters and preferences.ruler_font_rotated for
  rotated text. The default values are:

  preferences.ruler_font = '-*-helvetica-medium-r-*-*-10-*-*-*-*-*-iso8859-1'
  preferences.ruler_font_rotated = '-*-helvetica-medium-r-*-*-[0 10 ~10 0]-*-*-*-*-*-iso8859-1'

  If you use rotated text, ruler_font_rotated must be compatible with
  ruler_font, i.e. one must be a rotated version of the other. 

  The '[0 10 ~10 0]' is a transformation matrix which rotates the
  characters by 90 degrees counter clockwise. This syntax was introduced
  in X11R6, so to use this your X server must be compatible with that
  X11 release.

  Depending on the quality of your font renderer and your
  X-configuration, the rotated fonts might look quite ugly, so you might
  have to test a number of different fonts to get good results. On my
  system, these settings are quite acceptable:

  preferences.ruler_font = '-*-lucida-medium-r-*-*-11-*-*-*-*-*-iso8859-1'
  preferences.ruler_font_rotated = '-*-lucida-medium-r-*-*-[0 11 ~11 0]-*-*-*-*-*-iso8859-1'
  preferences.ruler_text_type = 'rotated'


* The align dialog allows you to align the selected objects relative to
  the lowermost one. It would probably be better to use the first
  selected object instead, but that's not possible with Sketch at the
  moment, due to its implementation.

* Fixed a byte order bug that resulted in wrong colors for images on a
  big-endian X-server.

* Fixed some mask-group bugs: The Effects| Create Maskgroup entry is now
  grayed out correctly again and ungrouping the mask group places the
  mask on top of the objects now. Both bugs were introduced when I
  changed the behaviour of Create Maskgroup for Sketch 0.5.3.

* The AddFunction function of the script-registry has a new keyword
  parameter 'args'. See the user's guide for more details.

* If you delete all characters of a text object (with backspace or DEL)
  and then select a different object or change into another mode, the
  now empty text-object is removed from the drawing.


Sketch 0.5.4 (March 17th, 1999)
===============================

* A user scripting facility. The user's guide has a new section about
  user scripts to get you started. The mechanisms to hook user scripts
  into Sketch are somewhat experimental, though and may change.

* A new import filter for Corel's CMX format. The filter is incomplete
  and only handles 16bit CMX files, because I only have sample files for
  that CMX-version.

* A new import filter for Windows Metafiles (WMF), again incomplete.

* The tooltips are active by default now.

* Setting the unit of the position indicator in the status bar (via its
  context menu) also sets the default unit used else where in Sketch.

* The dimensions of rectangles and ellipses are now given in the current
  default unit.

* When creating ellipses or rectangles the current dimensions are
  displayed in the statusbar.

* Similarly, when transforming an object, information about the current
  transformation is displayed in the statusbar, such as scaling factors
  and rotation angles.

* The ellipse drawing mode has two new variations:

  - When holding down Shift, the ellipse is centered at the start point.

  - When holding down Shift+Ctrl, the ellipse is a circle centered at
    the start point with the current pointer position on its periphery.

* Similarly, holding down Shift while drawing a rectangle uses the
  start point as the center of the rectangle.

* Path-text has been improved, introducing a slight incompatibility:

  - Characters that don't fit on the path are simply not drawn, but they
    are still there. In previous versions, these characters were all
    drawn at the same position at the end of the path.

    It is possible that path-text objects will look slightly different
    in future versions due to improvements in the algorithms used. In
    particular, multiple subpaths in a curve may be supported.

  - You can drag the start position of the text along the path by
    dragging the small rectangular handle in edit mode. This is probably
    not the best interface. Suggestions welcome.

  - In previous versions, the curve-like objects were automatically
    converted to bezier objetcs before the path-text group was created.
    Now, these objects remain as they are, i.e. rectangles will remain
    rectangles and ellipses remain ellipses.

    .sk files with rectangles or ellipses as the curves in path-text
    objects will not be read correctly by earlier versions.


* You can now insert nodes and cut curves at specific positions:

  - Select a curve object in edit mode

  - click on the outline where you want to insert the node or cut the
    curve. A small filled circle appears.

  - Select "Curve | Insert Nodes" or "Curve | Cut Curve" respectively.

  This new method also affects Line->Curve and Curve->Line. They convert
  the segment marked with the filled curve.

  The old behaviour is still there.

* The curve-object in a path-text object and the control-objects in a
  blend-group can now be converted to a bezier object in place.

* Added a few new key-strokes.

* The .sk file version number was updated to "1 2" because of the
  changes for path-text objects.

* Bug fixes:

  - In the font dialog, the sizes list is updated together with the entry
    widget.

  - "Update From..." in the font dialog works now.

  - Images loaded from the same image file share the raster data again.

* Renamed the script mkfontdir.py to mkfontdb.py. This new version
  creates fonts.scale files by default now and is also distributed
  separately from Sketch. It's now distributed under the GPL and not the
  LGPL.


Sketch 0.5.3 (February 7th, 1999)
=================================

* Sketch now has an experimental configure, build and install script.
  This script is modelled after the proposed standard for Python
  packages and applications currently discussed in the Python distutils
  SIG, although it's not much more than a wrapper around the old
  makefiles.

  For details on its use, see the INSTALL file.

* Python 1.5.2 compatibility: 

  I've run Sketch with the 1.5.2b1 release for more than two weeks now,
  and almost everything works as before, with these exceptions:

  The stricter syntax check for functions with default arguments
  produced syntax errors in two places. These have been corrected.

  The new sorting order for objects of different types revealed an error
  in the example file line.sk. This file is fixed in the new release.
  The skloader should really make more checks during import.


* The Drawing modes are now permanent by default. They were mentioned as
  permanent in the NEWS for Sketch 0.5.2, but this was not really true.
  Whether they are permanent or temporary is configurable, and the
  default was `temporary'. To make them temporary again append the line

  preferences.creation_is_temporary = 1

  to the file ~/.sketch/preferences.py. This file (and the directory)
  will be created automatically by Sketch after it has run. Editing the
  preferences file works only if Sketch is not running, because Sketch
  always writes it on exit.

  This option will be moved into the Options-dialog someday.


* If you feel adventurous, you can try the tooltips feature, by adding
  the line

  preferences.activate_tooltips = 1

  to ~/.sketch/preferences.py. I hacked the code recently to make it
  work again, but it probably still has some bugs.


* There's an Illustrator export filter. To save a file in this format,
  select File|Save As... and supply a filename ending in '.ai'. Due to
  limitations in the standard Tk file dialog, selecting the Illustrator
  format in the file type option menu is not sufficient or even
  necessary.

  The current filter is incomplete. 


* Rectangles may have rounded corners now. To create rounded corners,
  select a rectangle in edit mode and drag one of the corners.

* The .sk file version number was updated because of the rounded corner
  rectangles.

* Bezier curves (including poly lines) can now be used as guides. Move
  them to the guide layer and activate Arrange|Snap to guides. This
  already worked for ellipses and rectangles.

* When drawing polylines, the first click-drag-release creates the first
  line and not just the staring point.

* When creating a mask group, the topmost object becomes the mask. This
  is more intuitive, I think, than the lower most used before.

* To create guide lines, you can now simply drag from the rulers into
  the canvas just as in Gimp or CorelDraw.

* To delete a guide line just drag it and drop it somewhere outside of
  the canvas.

* A new command File|Insert Document lets you load a vector drawing in
  any of the supported formats and insert it into the current document
  as a group. You can then ungroup and edit it.

* The default unit for lengths is now configurable via the options menu.
  This does not affect the rulers yet.

* The current position in the status bar shows the snapped position now
  if snapping is active.

* Blending of two closed curves with differing numbers of segments
  produced ill-formed bezier curves. This is now fixed, but results in
  sligthly different blend groups as before in this special case.

* Converting a text object to curves results in a group with separate
  bezier objects for the characters (instead of a single multi-path bezier
  object). 

* Two new window commands. Windows|Hide Dialogs hides (withdraws) all
  dialogs currently visible and Windows|Show Dialogs shows them again.

* Added a few new commands to the context menu for fill and line
  properties.

* A new command to select all nodes of a bezier object. Available from
  the Curve menu and from the context menu.

* Snapping of guide lines works properly now.

* If you want 'live' scrolling in the drawing area, where the display is
  updated while the scrollbars are dragged, add this to your Xresources:

  sketch*canvas_frame.Scrollbar.jump:	0

  The current release is not optimized for this, though, so it might be
  too slow.

* various bug fixes




Sketch 0.5.2  (December 09th 1998)
==================================

* Sketch contains a work-around for a bug in the Python 1.5.1 module
  import code that affected Sketch's import filters.

* An improved AI import filter with a faster and better parser. It is
  still not complete. See the comments in Plugins/Filters/ailoader.py
  for more details about the implemented features and limitations.

* A new (and experimental) print dialog is available via 'File/Print...'

* The script sk2ps.py works.

* The return value of XClearArea is ignored now, because XClearArea is
  declared void on SGIs.

* In the layer dialog, the context menu has been reorganized a bit and
  contains some layer specific entries ('Grid...' for the grid layer
  (the same as Arrange/Grid...) and 'Guide Lines...' for the guide layer
  (the same as Arrange/Guide Lines...))

* In the layer dialog , some of the buttons are grayed out if the
  corresponding layer attribute cannot be changed (e.g. the grid layer
  is always locked).

* The test for X shared memory images should work properly now.

* fixed the bug where images rotated by exactly 90 degrees were not
  drawn.

* the drawing modes (create curve, create rectangle, etc) are now
  permanent. You have to switch to edit-mode or selection mode
  explicitly.

* Switching between modes is now easier. The buttons for edit/select
  mode and for drawing are now `radiobuttons' and provide both a means
  to switch from one mode to another and an indicator for the current
  mode.

* the button for snap to grid now changes its relief from flat to sunken
  if snapping is active (instead of changing its bitmap).

* Added a label to the statusbar that indicates whether the drawing was
  modified since the last save or since it was loaded/created.

* _sketchmodule.so doesn't use drem anymore. (drem is not available on
  Solaris)

* The color allocation strategy for PseudoColor displays is
  configurable. The option is not available from the dialog yet.



Sketch 0.5.1  (November 08th 1998)
==================================

* The bezier related commands of the arrange menu are now in the curve
  menu.

* Sketch now asks for confirmation (again) when the window is closed via
  the window manager. File/Exit did work correctly.

* sketch will print more diagnostic messages by default.

* the code in Sketch/Modules has been rearranged to increase
  portability. Interdependencies between compiled modules are now
  handled in a portable way.

* The test for X shared memory images should work properly now.
  Compiling the paxmodule without shared memory support is now possible.

* sketch used to hang in an infinite loop if a font was not available on
  the X-server and a MessageBox was popped up with an error message.

* Ctrl + cursor keys scrolls the viewport

* the drag&drop bug, when dragging a color from the palette to the
  pattern widget in the fill panel, has been fixed.

* fixed Doc/fonts.scale to agree with Doc/fonts.alias



Sketch 0.5.0  (October 31st 1998)
=================================

first public release
