1 |
jpaalasm |
606 |
title: Skencil / Release Notes for the Development Version |
2 |
|
|
|
3 |
|
|
<div class="document"> |
4 |
|
|
<p>All changes since version 0.7.5 are covered in detail in the ChangeLog |
5 |
|
|
files. Here you'll only find the most important changes.</p> |
6 |
|
|
<div class="section" id="sketch-0-7-12-february-7th-2003"> |
7 |
|
|
<h2><a name="sketch-0-7-12-february-7th-2003">Sketch 0.7.12 (February 7th, 2003)</a></h2> |
8 |
|
|
<blockquote> |
9 |
|
|
<ul class="simple"> |
10 |
|
|
<li>Translucency works for raster images with alpha channel. Most of the |
11 |
|
|
code for this came from a patch by David Boddie.</li> |
12 |
|
|
<li>Export filter for EPS files. You can now save drawings as EPS by |
13 |
|
|
saving to a file with a .eps extension.</li> |
14 |
|
|
<li>Updates to the CGM filters by Antoon Pardon. These updates are also |
15 |
|
|
in 0.6.15</li> |
16 |
|
|
</ul> |
17 |
|
|
</blockquote> |
18 |
|
|
<p>Bug Fixes:</p> |
19 |
|
|
<blockquote> |
20 |
|
|
<ul class="simple"> |
21 |
|
|
<li>The SVG import filter now handles the viewBox attribute of the svg |
22 |
|
|
element (it doesn't handle the preserveAspectRatio attribute though). |
23 |
|
|
The filter also makes sure that non-text object won't get a font |
24 |
|
|
attribute and it understands more color names. Bugs reported by Keith |
25 |
|
|
Hopper. These fixes are also in 0.6.15</li> |
26 |
|
|
<li>The CMX import filter handles poly-curves with a large number of |
27 |
|
|
points better now. Reported by Tim Wright. These fixes are also in |
28 |
|
|
0.6.15.</li> |
29 |
|
|
</ul> |
30 |
|
|
</blockquote> |
31 |
|
|
</div> |
32 |
|
|
<div class="section" id="sketch-0-7-11-september-14th-2002"> |
33 |
|
|
<h2><a name="sketch-0-7-11-september-14th-2002">Sketch 0.7.11 (September 14th, 2002)</a></h2> |
34 |
|
|
<blockquote> |
35 |
|
|
<ul class="simple"> |
36 |
|
|
<li>CGM import/export filters. Contributed by Antoon Pardon</li> |
37 |
|
|
</ul> |
38 |
|
|
</blockquote> |
39 |
|
|
<p>Bug fixes:</p> |
40 |
|
|
<blockquote> |
41 |
|
|
<ul class="simple"> |
42 |
|
|
<li>This release contains the missing the Plugins/Filters/Lib |
43 |
|
|
subdirectory.</li> |
44 |
|
|
<li>The SVG import filter now only accepts ASCII font names. Before |
45 |
|
|
unicode strings could end up in .sk files which Sketch couldn't read.</li> |
46 |
|
|
</ul> |
47 |
|
|
</blockquote> |
48 |
|
|
</div> |
49 |
|
|
<div class="section" id="sketch-0-7-10-august-2nd-2002"> |
50 |
|
|
<h2><a name="sketch-0-7-10-august-2nd-2002">Sketch 0.7.10 (August 2nd, 2002)</a></h2> |
51 |
|
|
<blockquote> |
52 |
|
|
<ul class="simple"> |
53 |
|
|
<li>New dialog with a color palette. Contributed by Mark Rose</li> |
54 |
|
|
<li>New dialog to edit object properties. Contributed by Mark Rose.</li> |
55 |
|
|
<li>Nodes inserted into bezier segments are now 'smooth' instead of |
56 |
|
|
'symmetric'. Reported by Antoon Pardon</li> |
57 |
|
|
<li>Files can now be saved in the older format used by Sketch 0.6 by |
58 |
|
|
using the extension ".sk1".</li> |
59 |
|
|
<li>Import filter for Acorn Drawfiles, the same as published with 0.6.13. |
60 |
|
|
Contributed by David Boddie.</li> |
61 |
|
|
<li>The wmf import filter supports a PolyPolylines now. Patch from Antoon |
62 |
|
|
Pardon.</li> |
63 |
|
|
<li>The SVG import filter parses paths more correctly now. The old |
64 |
|
|
version didn't accept numbers without delimiters in between, which is |
65 |
|
|
legal in an SVG path if the second number starts with a sign.</li> |
66 |
|
|
<li>The SVG export filter now escapes text properly. Bug reported by |
67 |
|
|
Stefan Eilers (SF #545267).</li> |
68 |
|
|
<li>The SVG export has some basic support for Text. Based on a Patch by |
69 |
|
|
Paul Giotta</li> |
70 |
|
|
<li>The Illustrator-import filter now gives a warning if the file looks |
71 |
|
|
as if it's not generated by AI. Furthermore it understands text |
72 |
|
|
alignment now.</li> |
73 |
|
|
</ul> |
74 |
|
|
</blockquote> |
75 |
|
|
<p>Internal Changes:</p> |
76 |
|
|
<blockquote> |
77 |
|
|
<ul class="simple"> |
78 |
|
|
<li>The load_immediately flag of plugins ported over from 0.6</li> |
79 |
|
|
<li>Plugins can now have plugin specific libraries. Also ported over from |
80 |
|
|
0.6.</li> |
81 |
|
|
</ul> |
82 |
|
|
</blockquote> |
83 |
|
|
<p>Bug fixes:</p> |
84 |
|
|
<blockquote> |
85 |
|
|
<ul class="simple"> |
86 |
|
|
<li>Quote filenames of EPS files properly when rendering the preview. The |
87 |
|
|
previous behavior was a security problem. This is the fix that was |
88 |
|
|
already part of Sketch 0.6.13.</li> |
89 |
|
|
<li>The extension modules in Sketch/Modules and Filter now use the Python |
90 |
|
|
Memory API correctly as specified for Python 1.5.2 but it should also |
91 |
|
|
be compatible with later versions including 2.3 (according to the |
92 |
|
|
discussion in April 2002)</li> |
93 |
|
|
</ul> |
94 |
|
|
</blockquote> |
95 |
|
|
</div> |
96 |
|
|
<div class="section" id="sketch-0-7-9-november-28th-2001"> |
97 |
|
|
<h2><a name="sketch-0-7-9-november-28th-2001">Sketch 0.7.9 (November 28th, 2001)</a></h2> |
98 |
|
|
<blockquote> |
99 |
|
|
<ul class="simple"> |
100 |
|
|
<li>Russian translation contributed by Andrey Kiselev</li> |
101 |
|
|
<li>When given a non-existing file on the command line, open a window for |
102 |
|
|
that file anyway instead of just giving error messages. Based on a |
103 |
|
|
patch by Han-Wen Nienhuys.</li> |
104 |
|
|
<li>Ungrouping works now. Based on a patch by Han-Wen Nienhuys.</li> |
105 |
|
|
<li>Support for Python 2.1</li> |
106 |
|
|
<li>The beginnings of a simple test suite in the test/ subdirectory</li> |
107 |
|
|
</ul> |
108 |
|
|
</blockquote> |
109 |
|
|
<p>Bug fixes:</p> |
110 |
|
|
<blockquote> |
111 |
|
|
<ul class="simple"> |
112 |
|
|
<li>setup.py uses libart-config instead of gnome-config to correctly |
113 |
|
|
support systems that have libart but not GNOME.</li> |
114 |
|
|
<li>Read AFM-files without per character bounding boxes correctly. Based |
115 |
|
|
on a patch by Han-Wen Nienhuys.</li> |
116 |
|
|
<li>Sketch still used an Xlib function directly to read XBM files. This |
117 |
|
|
is now fixed by reding them through PIL.</li> |
118 |
|
|
</ul> |
119 |
|
|
</blockquote> |
120 |
|
|
<p>Internal Changes:</p> |
121 |
|
|
<blockquote> |
122 |
|
|
<ul class="simple"> |
123 |
|
|
<li>remove some code in the insert/remove implementation that was still |
124 |
|
|
left over from the old representation of the selections.</li> |
125 |
|
|
</ul> |
126 |
|
|
</blockquote> |
127 |
|
|
</div> |
128 |
|
|
<div class="section" id="sketch-0-7-8-april-4th-2001"> |
129 |
|
|
<h2><a name="sketch-0-7-8-april-4th-2001">Sketch 0.7.8 (April 4th, 2001)</a></h2> |
130 |
|
|
<blockquote> |
131 |
|
|
<ul class="simple"> |
132 |
|
|
<li>Make bezier segments draggable. Ported from demo code by Simon Budig. |
133 |
|
|
This is the same code that's also in 0.6.8</li> |
134 |
|
|
<li>New menu "Xtns" in the tool box window.</li> |
135 |
|
|
<li>A new dialog reachable through the Xtns menu that displays error |
136 |
|
|
messages</li> |
137 |
|
|
<li>All graphics objects support meta data. There's also a dialog to add, |
138 |
|
|
edit and remove meta data in the Xtns menu.</li> |
139 |
|
|
<li>A PDF export filter. This is the same that's also in 0.6.9.</li> |
140 |
|
|
<li>New implementations of the impert and export filters for the |
141 |
|
|
sk-format. The format has also changed somewhat. The new format is |
142 |
|
|
the native format now. Sketch 0.6.8 can't read those files currently, |
143 |
|
|
but documents can be saved in the old format by saving them with the |
144 |
|
|
extensions .sk1.</li> |
145 |
|
|
<li>As part of the filter rewrite, the way plugin objects are saved has |
146 |
|
|
changed. The PluginObjects that come with Sketch have been updated |
147 |
|
|
accordingly.</li> |
148 |
|
|
</ul> |
149 |
|
|
</blockquote> |
150 |
|
|
<p>Bug fixes:</p> |
151 |
|
|
<blockquote> |
152 |
|
|
<ul class="simple"> |
153 |
|
|
<li>Some small fixes to make Sketch compile with Python 1.6/2.0. Based on |
154 |
|
|
a patch contributed by Thomas Gellekum.</li> |
155 |
|
|
<li>Push the gdkrgb visual and colormap once at the beginning in main |
156 |
|
|
before any widgets are created. This fixes one common cause of the |
157 |
|
|
segmentation faults many users experienced.</li> |
158 |
|
|
<li>Several small fixes in the SVG filters.</li> |
159 |
|
|
</ul> |
160 |
|
|
</blockquote> |
161 |
|
|
<p>Internal Changes:</p> |
162 |
|
|
<blockquote> |
163 |
|
|
<ul class="simple"> |
164 |
|
|
<li>The plugin management code is now in the new subpackage |
165 |
|
|
Sketch.Plugin. This package has its own config file |
166 |
|
|
~/.devsketch/plugin.prefs</li> |
167 |
|
|
<li>Tools are now identified by an object and not just by their name |
168 |
|
|
anymore. These objects are derived from the new class ToolInfo and |
169 |
|
|
have some attributes that describe the object including a method that |
170 |
|
|
instantiates the tool for a given document editor. The old tool |
171 |
|
|
classes like MouseTool and derived classes are the classes for these |
172 |
|
|
editor specific instances.</li> |
173 |
|
|
<li>The code for the old representation of the selection has been |
174 |
|
|
removed.</li> |
175 |
|
|
<li>Added ASCII85 filters to the streamfilter module (In the Filters/ |
176 |
|
|
subdirectory)</li> |
177 |
|
|
</ul> |
178 |
|
|
</blockquote> |
179 |
|
|
</div> |
180 |
|
|
<div class="section" id="sketch-0-7-7-june-24th-2000"> |
181 |
|
|
<h2><a name="sketch-0-7-7-june-24th-2000">Sketch 0.7.7 (June 24th, 2000)</a></h2> |
182 |
|
|
<blockquote> |
183 |
|
|
<ul> |
184 |
|
|
<li><p class="first">Added a button in the top-right corners of the editor windows that |
185 |
|
|
indicates whether the document in the window is the active document. |
186 |
|
|
Clicking on the button makes the document in the window the active |
187 |
|
|
document.</p> |
188 |
|
|
</li> |
189 |
|
|
<li><p class="first">A document can have multiple views and editors now. The menu item |
190 |
|
|
View->New View creates a new view but the same editor as the active |
191 |
|
|
window and View->New Editor creates a new view with a new editor.</p> |
192 |
|
|
<p>A document window always has one associated editor and an editor |
193 |
|
|
always has one associated document, but a document can have multiple |
194 |
|
|
editors and an editor can have multiple windows. Windows that share |
195 |
|
|
an editor (and hence also a document) always have the same selection, |
196 |
|
|
windows with different editors may have different selections even for |
197 |
|
|
the same document.</p> |
198 |
|
|
<p>The "New Editor" command is an advanced feature IMO in that the |
199 |
|
|
difference between "New View" and "New Editor" isn't all that obvious |
200 |
|
|
and I'm not sure whether the "New Editor" command is really useful. |
201 |
|
|
The current implementation has some limitations when the same bezier |
202 |
|
|
curve is selected in different editors in edit mode. The selected |
203 |
|
|
nodes will be the same in both editors. This feature is mostly a side |
204 |
|
|
effect of internal changes anyway. It may be that the "New Editor" |
205 |
|
|
command will not be included in 0.8, but the functionality is |
206 |
|
|
unlikely to be removed.</p> |
207 |
|
|
</li> |
208 |
|
|
<li><p class="first">A somewhat incomplete fill pattern dialog.</p> |
209 |
|
|
</li> |
210 |
|
|
<li><p class="first">The 'modified' label works now.</p> |
211 |
|
|
</li> |
212 |
|
|
</ul> |
213 |
|
|
</blockquote> |
214 |
|
|
<p>Internal Changes:</p> |
215 |
|
|
<blockquote> |
216 |
|
|
<ul> |
217 |
|
|
<li><p class="first">Sketch/Base is now a subpackage. All objects and modules that used to |
218 |
|
|
be directly available in the Sketch package and whose files were in |
219 |
|
|
Sketch/Base are now part of Sketch.Base. The Sketch.base_init |
220 |
|
|
function is now Sketch.Base.init</p> |
221 |
|
|
</li> |
222 |
|
|
<li><p class="first">All objects that are implemented in the Graphics subpackage are now |
223 |
|
|
exported directly by it and should be taken from there and not from |
224 |
|
|
the Sketch package. E.g. Use Sketch.Graphics.Rectangle instead of |
225 |
|
|
Sketch.Rectangle</p> |
226 |
|
|
</li> |
227 |
|
|
<li><p class="first">Pattern and gradient objects are now immutable. This change involves |
228 |
|
|
removing all of the methods that change a pattern/gradient in place |
229 |
|
|
and the addition of new methods that return changed copies of an |
230 |
|
|
object.</p> |
231 |
|
|
</li> |
232 |
|
|
<li><p class="first">A new class of document editor that manages the selection itself. In |
233 |
|
|
the old implementation the selection was managed by the document. The |
234 |
|
|
new approach makes more sense in my opinion and, together with a |
235 |
|
|
somewhat different representation of the set of selected objects, it |
236 |
|
|
offers some new features:</p> |
237 |
|
|
<blockquote> |
238 |
|
|
<ul class="simple"> |
239 |
|
|
<li>It will be possible to 'remember' selections. E.g. the user could |
240 |
|
|
name a particular set of selected objects and later. This isn't |
241 |
|
|
implemented yet.</li> |
242 |
|
|
<li>It's possible to have several views of one document with |
243 |
|
|
different selections.</li> |
244 |
|
|
</ul> |
245 |
|
|
</blockquote> |
246 |
|
|
</li> |
247 |
|
|
<li><p class="first">The document's TRANSACTION_END messages now have parameters.</p> |
248 |
|
|
</li> |
249 |
|
|
<li><p class="first">The representation of menus has changed. Normal menu items are only |
250 |
|
|
stored as command names now which are looked up in the command |
251 |
|
|
registry every time the command object has to be accessed. The title |
252 |
|
|
of the menu item is taken from the command object.</p> |
253 |
|
|
</li> |
254 |
|
|
</ul> |
255 |
|
|
</blockquote> |
256 |
|
|
</div> |
257 |
|
|
<div class="section" id="sketch-0-7-6-march-26th-2000"> |
258 |
|
|
<h2><a name="sketch-0-7-6-march-26th-2000">Sketch 0.7.6 (March 26th, 2000)</a></h2> |
259 |
|
|
<blockquote> |
260 |
|
|
<ul class="simple"> |
261 |
|
|
<li>Sketch is in GNOME CVS now. See README for access instructions</li> |
262 |
|
|
<li>The tree view is actually useful. It reflects the current selection |
263 |
|
|
and you can use it to select objects.</li> |
264 |
|
|
<li>8-Bit PseudoColor visuals are supported again. The implementation is |
265 |
|
|
not very good at the moment, though. The anti-aliased rendering mode |
266 |
|
|
should be fine and you'll even get error diffusion dithering thanks |
267 |
|
|
to GdkRGB, but the colors in the non-anti-aliased mode may be a |
268 |
|
|
little off.</li> |
269 |
|
|
<li>User preferences are no longer saved in ~/.devsketch/preferences.py |
270 |
|
|
but in four different files in the same directory: base.prefs, |
271 |
|
|
graphics.prefs, editor.prefs and ui.prefs. See below for more detail.</li> |
272 |
|
|
<li>Various enhancements for the anti-aliased mode including outlined |
273 |
|
|
drawing of individual layers and the whole document as already |
274 |
|
|
possible in non-anti-aliased mode.</li> |
275 |
|
|
</ul> |
276 |
|
|
</blockquote> |
277 |
|
|
<p>Internal Changes:</p> |
278 |
|
|
<blockquote> |
279 |
|
|
<ul> |
280 |
|
|
<li><p class="first">Added a number of new message channels to the document object which |
281 |
|
|
are also forwarded by the context object.</p> |
282 |
|
|
<p>TRANSACTION_START and TRANSACTION_END are issued at the start and end |
283 |
|
|
of each transaction. OBJECT_CHANGED is issued whenever an object |
284 |
|
|
changes. The message parameters describe which object changed and |
285 |
|
|
what changed, i.e. whether its geometry or properties changed among |
286 |
|
|
others.</p> |
287 |
|
|
</li> |
288 |
|
|
<li><p class="first">The graphics objects aren't message publishers anymore. They only |
289 |
|
|
report changes to their parents and to the document object they |
290 |
|
|
belong to. To be notified of a change in an object, subscribe to the |
291 |
|
|
document's or the context's OBJECT_CHANGED channel</p> |
292 |
|
|
</li> |
293 |
|
|
<li><p class="first">The way the redraw region is determined has changed completely. |
294 |
|
|
Before, it was basically the bounding rectangle of the current |
295 |
|
|
selection and if necessary a few additional rectangles. Now, this is |
296 |
|
|
automatically handled by the object's _changed() methods.</p> |
297 |
|
|
</li> |
298 |
|
|
<li><p class="first">Changed the way user preferences are handled. Instead of only one |
299 |
|
|
preference object in Sketch.config there are now several objects |
300 |
|
|
which are also saved in different files in ~/.devsketch: |
301 |
|
|
Sketch.config.preference for basic configuration (saved in |
302 |
|
|
base.prefs), Sketch.UI.preferences for GUI prefs (ui.prefs), |
303 |
|
|
Sketch.Editor.preferences for GUI independent editor preferences |
304 |
|
|
(editor.prefs) and Sketch.Graphics.preferences (graphics.prefs).</p> |
305 |
|
|
</li> |
306 |
|
|
<li><p class="first">The main entry point for Sketch as a GUI program is now |
307 |
|
|
Sketch.UI.main. Sketch/Base/main.py has been removed.</p> |
308 |
|
|
</li> |
309 |
|
|
</ul> |
310 |
|
|
</blockquote> |
311 |
|
|
</div> |
312 |
|
|
<div class="section" id="sketch-0-7-5-january-23rd-2000"> |
313 |
|
|
<h2><a name="sketch-0-7-5-january-23rd-2000">Sketch 0.7.5 (January 23rd, 2000)</a></h2> |
314 |
|
|
<blockquote> |
315 |
|
|
<ul class="simple"> |
316 |
|
|
<li>The libart renderer now supports dashes, arrows and tiled image |
317 |
|
|
fills.</li> |
318 |
|
|
<li>"Snap To Objects" now also works for raster images and eps files. |
319 |
|
|
They can even be used as guides by moving them onto the guide layer. |
320 |
|
|
They behave just like rectangles in this regard.</li> |
321 |
|
|
<li>bzip2 compressed sk-files (and also ai and svg) can now be |
322 |
|
|
uncompressed transparently if bzip2 is installed. The same |
323 |
|
|
functionality for gzip was already present in 0.5.0.</li> |
324 |
|
|
<li>More accurate papersizes for the A<n> formats, contributed by Martin |
325 |
|
|
Glaser. The sizes used to be derived from first principles, so to |
326 |
|
|
speak, everytime, but that does not yield exactly the same values |
327 |
|
|
that the standard defines. The old code is still there in |
328 |
|
|
Sketch/Graphics/papersize.py, if you're curious.</li> |
329 |
|
|
<li>The DSC parser, used for e.g. extracting the bounding box of EPS |
330 |
|
|
files, can cope with non-Unix line separator conventions.</li> |
331 |
|
|
<li>Fixed a bug in the code that draws axial (linear) gradients on the |
332 |
|
|
screen, postscript output was not affected. In some cases the |
333 |
|
|
direction of diagonal the gradients was incorrect, most noticable for |
334 |
|
|
very large border values.</li> |
335 |
|
|
<li>The way paper formats are stored in the sk-files has changed |
336 |
|
|
slightly. Only formats of a fixed list are stored by name now, for |
337 |
|
|
all others, only the dimensions are saved. This was done to prevent |
338 |
|
|
problems if users add new formats in their userhooks.py.</li> |
339 |
|
|
<li>The files ARROWS and NOTES are now in a subdirectory Doc with |
340 |
|
|
lowercase filenames</li> |
341 |
|
|
<li>A new file Doc/styles that describes the ideas behind the dynamic |
342 |
|
|
styles currently implemented in Sketch</li> |
343 |
|
|
<li>The --imaging-include option of setup.py should work properly with |
344 |
|
|
relative filenames now.</li> |
345 |
|
|
</ul> |
346 |
|
|
</blockquote> |
347 |
|
|
</div> |
348 |
|
|
<div class="section" id="sketch-0-7-4-december-23rd-1999"> |
349 |
|
|
<h2><a name="sketch-0-7-4-december-23rd-1999">Sketch 0.7.4 (December 23rd, 1999)</a></h2> |
350 |
|
|
<blockquote> |
351 |
|
|
<ul> |
352 |
|
|
<li><p class="first">Sketch can use libart for anti-aliased rendering now. The |
353 |
|
|
libart-drawing code is not complete yet, though. For instance, arrow |
354 |
|
|
heads, dashes and tiled images as fill patterns are not yet |
355 |
|
|
implemented. By default sketch still uses the gdk-based drawing |
356 |
|
|
routines but you can swith to antialiased mode with the "Antialiased" |
357 |
|
|
command in the "View" menu.</p> |
358 |
|
|
<p>libart is the rendering library of the GNOME canvas. If you have |
359 |
|
|
gnome installed, the setup script should be able to find libart |
360 |
|
|
automatically. If the script can't find libart, anti-aliased |
361 |
|
|
rendering will not be available.</p> |
362 |
|
|
<p>Sketch only uses libart itself at the moment and it is possible to |
363 |
|
|
install libart without the rest of GNOME as it is completely |
364 |
|
|
independent. If you have installed libart without GNOME, you might |
365 |
|
|
have to use the --libart-cflags and --libart-libs options of setup.py |
366 |
|
|
to point it at your libart installation. E.g. if libart is installed |
367 |
|
|
under /usr/local you could use:</p> |
368 |
|
|
<blockquote> |
369 |
|
|
<dl> |
370 |
|
|
<dt>./setup.py configure --libart-cflags=-I/usr/local/include </dt> |
371 |
|
|
<dd><p class="first last">--libart-libs=-I/usr/local/lib -lart_lgpl</p> |
372 |
|
|
</dd> |
373 |
|
|
</dl> |
374 |
|
|
</blockquote> |
375 |
|
|
</li> |
376 |
|
|
<li><p class="first">Experimental changes to the arrow head code to make the tips of the |
377 |
|
|
arrows `snappable'. See the file ARROWS for a more detailed |
378 |
|
|
discussion. The two solutions described there are available in a new |
379 |
|
|
"Devel" menu for commands only needed for development purposes. Both |
380 |
|
|
commands assing two arrow heads and a line_width of 4 to the selected |
381 |
|
|
object. Both solutions are only implemented in the editor and the |
382 |
|
|
screen display code, you can't print or save them.</p> |
383 |
|
|
</li> |
384 |
|
|
<li><p class="first">Started to work on a property/style dialog, available in the "Devel" |
385 |
|
|
menu. It's very primitive and you can't change anything yet, but it |
386 |
|
|
allows yu to see the information Sketch actually stores with each |
387 |
|
|
object. This is especially interesting if you have a drawing with |
388 |
|
|
styles.</p> |
389 |
|
|
</li> |
390 |
|
|
<li><p class="first">Moved more of the curve fitting code for the freehand tool to C to |
391 |
|
|
make it faster.</p> |
392 |
|
|
</li> |
393 |
|
|
<li><p class="first">Added some experimental Drag and Drop code to the toolbox. It should |
394 |
|
|
be possible to drop files from gmc on the toolbox to make Sketch open |
395 |
|
|
them.</p> |
396 |
|
|
</li> |
397 |
|
|
<li><p class="first">When editing bezier curves, the ctrl-key now restricts the movement |
398 |
|
|
of nodes to horizontal and vertical and when dragging a control |
399 |
|
|
point, the angle of the tangent is restricted to multiples of 15 |
400 |
|
|
degrees.</p> |
401 |
|
|
</li> |
402 |
|
|
<li><p class="first">When drawing bezier curves the ctrl-key now restricts the slope of |
403 |
|
|
the tangent to multiples of 15 degrees.</p> |
404 |
|
|
</li> |
405 |
|
|
<li><p class="first">When drawing poly-lines, the ctrl-key now restricts the slopes of the |
406 |
|
|
lines to multiples of 15 degrees.</p> |
407 |
|
|
</li> |
408 |
|
|
<li><p class="first">Selecting a blend group works a little different now, so that |
409 |
|
|
clicking on the interpolation selects the entire blend group. In |
410 |
|
|
earlier versions only the interpolation object was selected in that |
411 |
|
|
case. Clicking on a control object of a blend group still selects |
412 |
|
|
just the control object. (The blend group object contains both the |
413 |
|
|
control objects and the interpolation objects).</p> |
414 |
|
|
<p>The reason for this change is that it makes it easier to select two |
415 |
|
|
blend groups to create an interpolation betweem them.</p> |
416 |
|
|
</li> |
417 |
|
|
<li><p class="first">There a new option for ~/.sketch/preferences.py, fallback_font. This |
418 |
|
|
is the name of the font to use when a font or the corresponding |
419 |
|
|
metrics can't be found. The default is 'Times-Roman'</p> |
420 |
|
|
</li> |
421 |
|
|
<li><p class="first">Fixed a bug in Sketch's postscript procset |
422 |
|
|
(Resources/Misc/sketch-proc.ps) that caused problems when a |
423 |
|
|
sketch-eps that contains eps's that use showpage was embedded in a ps |
424 |
|
|
file which was then run through psnup (got that? :) ) To reproduce |
425 |
|
|
it, create an eps with dvips, embed it in a Sketch drawing export as |
426 |
|
|
eps, embed it in a tex-document, create a psfile from that with dvips |
427 |
|
|
and 'psnup -2' it. The resulting psfile executes a superfluous |
428 |
|
|
showpage at the end of the embedded tex-eps.</p> |
429 |
|
|
</li> |
430 |
|
|
<li><p class="first">Blending of two path-text objects works now. In previous versions |
431 |
|
|
attempting this would leave the document in an inconsistent state and |
432 |
|
|
the user could neither undo the operation or even save properly.</p> |
433 |
|
|
</li> |
434 |
|
|
<li><p class="first">Fixed bugs in the type1 font file parser and the underlying |
435 |
|
|
postscript tokenizer. Some type 1 font files caused segfaults in the |
436 |
|
|
tokenizer (e.g. the UTB_____.pfa font that comes with X11).</p> |
437 |
|
|
</li> |
438 |
|
|
</ul> |
439 |
|
|
</blockquote> |
440 |
|
|
<p>Internal Changes:</p> |
441 |
|
|
<blockquote> |
442 |
|
|
<ul> |
443 |
|
|
<li><p class="first">Switched _skgtkmodule from using _gtk's _private dictionary to access |
444 |
|
|
_gtk at C level to using init_pygtk().</p> |
445 |
|
|
</li> |
446 |
|
|
<li><p class="first">In gtkdevice.py, distinguish between the associated window |
447 |
|
|
(self.window) and the current drawable (new instance var |
448 |
|
|
self.drawable) to facilitate switching to a pixmap temporarily. All |
449 |
|
|
drawing takes place on self.drawable.</p> |
450 |
|
|
</li> |
451 |
|
|
<li><p class="first">Introduced a new class PatternDevice between SimpleGC and |
452 |
|
|
GraphicsDevice in gtkdevice.py. PatternDevice knows how to draw |
453 |
|
|
gradient and other special fills and is used by the new properties |
454 |
|
|
dialog to draw the preview pixmaps.</p> |
455 |
|
|
</li> |
456 |
|
|
<li><p class="first">Introduced a new class SketchDrawingArea which is basically a clone |
457 |
|
|
of pygtk's GtkDrawingArea class, but has some Sketch specific |
458 |
|
|
features.</p> |
459 |
|
|
</li> |
460 |
|
|
<li><p class="first">Changed the way redraw region is handled inside the document object. |
461 |
|
|
In the old scheme, only the area covered by the selected objects |
462 |
|
|
before and after the transaction were automatically redrawn and some |
463 |
|
|
objects (the blend group) and operations (update style) had to add |
464 |
|
|
rectangles to this region themselves to make sure everything is |
465 |
|
|
redrawn properly. Undo/Redo were also treated specially.</p> |
466 |
|
|
<p>In the new scheme, the object's _changed() method adds self to the |
467 |
|
|
list of changed objects if self is part of a document by calling the |
468 |
|
|
documens object_changed() method. This covers all special cases |
469 |
|
|
listed above and is also much better for user scripts as they might |
470 |
|
|
modify arbitrary objects and not just the selected ones.</p> |
471 |
|
|
</li> |
472 |
|
|
</ul> |
473 |
|
|
</blockquote> |
474 |
|
|
</div> |
475 |
|
|
<div class="section" id="sketch-0-7-3-october-17th-1999"> |
476 |
|
|
<h2><a name="sketch-0-7-3-october-17th-1999">Sketch 0.7.3 (October 17th, 1999)</a></h2> |
477 |
|
|
<blockquote> |
478 |
|
|
<ul> |
479 |
|
|
<li><p class="first">A freehand tool. The implementation of the curve fitting is a bit |
480 |
|
|
slow at the moment, because much of the computation is done in |
481 |
|
|
Python. Moving more parts to C should improve performance |
482 |
|
|
substantially.</p> |
483 |
|
|
<p>The freehand tool has an accuracy option, which you can set by double |
484 |
|
|
clicking on the tool's button. The accuracy determines how close the |
485 |
|
|
fitted bezier curves match the sampled mouse positions, it's |
486 |
|
|
basically the maximum deviation in pixels.</p> |
487 |
|
|
<p>The algorithm, which is basically the same as found in gimp or |
488 |
|
|
autotrace, also needs some more fine tuning</p> |
489 |
|
|
</li> |
490 |
|
|
<li><p class="first">A most recently used file list in the file menu</p> |
491 |
|
|
</li> |
492 |
|
|
<li><p class="first">"Save" and "Save As" commands</p> |
493 |
|
|
</li> |
494 |
|
|
<li><p class="first">Updated svg import filter. It's the same as in 0.6.2 now.</p> |
495 |
|
|
</li> |
496 |
|
|
<li><p class="first">fixed a bug that caused the first few characters of a path-text to be |
497 |
|
|
misplaced if the start position coincided with a node (but not the |
498 |
|
|
start-node) of the curve-object.</p> |
499 |
|
|
</li> |
500 |
|
|
<li><p class="first">The afm-file parser is more tolerant now. It had problems with empty |
501 |
|
|
lines.</p> |
502 |
|
|
</li> |
503 |
|
|
<li><p class="first">The mkfontdb.py script knows a few more foundries and has a new |
504 |
|
|
commandline option '-f' to specify the foundry used when it can't be |
505 |
|
|
determined from the afm-file. I also increased its version to 1.2.</p> |
506 |
|
|
</li> |
507 |
|
|
<li><p class="first">setup.py's build command accepts arguments of the form <KEY>=<VALUE> |
508 |
|
|
now. These are passed through to make to let you override variables |
509 |
|
|
like CC or OPT. See the generated Makefiles or Makefile.pre.in for |
510 |
|
|
more details.</p> |
511 |
|
|
</li> |
512 |
|
|
</ul> |
513 |
|
|
</blockquote> |
514 |
|
|
<p>Internal Changes:</p> |
515 |
|
|
<blockquote> |
516 |
|
|
<ul class="simple"> |
517 |
|
|
<li>I've begun to split the document class in Sketch/Graphics/document.py |
518 |
|
|
into a base class for all Sketch documents and, derived from that, an |
519 |
|
|
InteractiveDocument class that contains code only needed for an |
520 |
|
|
interative editor. InteractiveDocument is defined in |
521 |
|
|
Sketch/Editor/document.py</li> |
522 |
|
|
</ul> |
523 |
|
|
</blockquote> |
524 |
|
|
</div> |
525 |
|
|
<div class="section" id="sketch-0-7-2-september-7th-1999"> |
526 |
|
|
<h2><a name="sketch-0-7-2-september-7th-1999">Sketch 0.7.2 (September 7th, 1999)</a></h2> |
527 |
|
|
<blockquote> |
528 |
|
|
<ul> |
529 |
|
|
<li><p class="first">If your Python is thread enabled, you should upgrade to GTK 1.2.4.</p> |
530 |
|
|
<p>With a thread-enabled Python, Sketch will hang in some situations |
531 |
|
|
with GTK 1.2.3 and earlier. The reason for this is a |
532 |
|
|
threading-related bug in GTK which was fixed in 1.2.4.</p> |
533 |
|
|
<p>Sketch 0.7.1 contained a workaround for this bug, but I took it out |
534 |
|
|
because it caused Sketch to hang with the fixed GTK. You can reenable |
535 |
|
|
this workaround by uncommenting the lines marked THREADBUG in |
536 |
|
|
Sketch/UI/canvas.py</p> |
537 |
|
|
</li> |
538 |
|
|
<li><p class="first">Import/Export filters for the SVG format. They also work with the |
539 |
|
|
current stable release (0.6.1); just copy them to the Plugins/Filters |
540 |
|
|
subdirectory of your Sketch installation.</p> |
541 |
|
|
<p>Both filters are very incomplete and experimental. I don't know how |
542 |
|
|
much time I will have to improve them because at the moment working |
543 |
|
|
on the core parts of Sketch is more important, so I'd appreciate it |
544 |
|
|
if somebody could take over development of these plugins.</p> |
545 |
|
|
<p>SVG is likely to become a very important file format for vector |
546 |
|
|
graphics. I think the ability to read and write SVG files will become |
547 |
|
|
a crucial feature for Sketch to have.</p> |
548 |
|
|
<p>The import filter requires the python xml package. See the INSTALL |
549 |
|
|
file for details on where to get it.</p> |
550 |
|
|
</li> |
551 |
|
|
</ul> |
552 |
|
|
</blockquote> |
553 |
|
|
<p>User Interface:</p> |
554 |
|
|
<blockquote> |
555 |
|
|
<ul> |
556 |
|
|
<li><p class="first">The edit tool can edit several objects at the same time now. This is |
557 |
|
|
especially useful when editing bezier curves. This feature is quite |
558 |
|
|
experimental at the moment and may not work as expected in some |
559 |
|
|
cases.</p> |
560 |
|
|
</li> |
561 |
|
|
<li><p class="first">The (UI of the) text tool is more sophisticated.</p> |
562 |
|
|
<ul class="simple"> |
563 |
|
|
<li>If you click on an existing text object, it is selected and you can |
564 |
|
|
edit the text. The caret is positioned where you clicked.</li> |
565 |
|
|
<li>If you click on a curve-like object, i.e. a bezier curve, a |
566 |
|
|
rectangle or an ellipse, a path text object is created an you can |
567 |
|
|
start editing the text.</li> |
568 |
|
|
<li>If you click somewhere else, a normal text object is created and |
569 |
|
|
you can start editing it. If you click and drag, you create a |
570 |
|
|
rotated text object (This already worked in the stable releases).</li> |
571 |
|
|
</ul> |
572 |
|
|
<p>The mouse cursor changes to indicate which of these things will |
573 |
|
|
happen.</p> |
574 |
|
|
</li> |
575 |
|
|
</ul> |
576 |
|
|
</blockquote> |
577 |
|
|
<p>Internal Changes:</p> |
578 |
|
|
<blockquote> |
579 |
|
|
<ul class="simple"> |
580 |
|
|
<li>The code reorganisation is practically complete.</li> |
581 |
|
|
</ul> |
582 |
|
|
</blockquote> |
583 |
|
|
</div> |
584 |
|
|
<div class="section" id="sketch-0-7-1-july-16th-1999"> |
585 |
|
|
<h2><a name="sketch-0-7-1-july-16th-1999">Sketch 0.7.1 (July 16th, 1999)</a></h2> |
586 |
|
|
<blockquote> |
587 |
|
|
<ul class="simple"> |
588 |
|
|
<li>The rewrite of the scripting/command infrastructure continued and |
589 |
|
|
supports keystrokes and toggle menu entries now</li> |
590 |
|
|
<li>Snapping has been added to the UI</li> |
591 |
|
|
<li>I've begun to implement a tree view of the object hierarchy, but you |
592 |
|
|
can't do anything yet. This will replace the layer dialog and allow |
593 |
|
|
the user to rearrange the stacking order of objects more easily.</li> |
594 |
|
|
<li>There's a simplistic text-tool now.</li> |
595 |
|
|
</ul> |
596 |
|
|
</blockquote> |
597 |
|
|
<p>Internal Changes:</p> |
598 |
|
|
<blockquote> |
599 |
|
|
<ul class="simple"> |
600 |
|
|
<li>Most of the code reorganization is complete. In particular, the |
601 |
|
|
python-level gtk-specific code is in Sketch.UI and the C-level |
602 |
|
|
gtk-specific code is in a separate module, _skgtk.so.</li> |
603 |
|
|
</ul> |
604 |
|
|
</blockquote> |
605 |
|
|
</div> |
606 |
|
|
<div class="section" id="sketch-0-7-0-june-18th-1999"> |
607 |
|
|
<h2><a name="sketch-0-7-0-june-18th-1999">Sketch 0.7.0 (June 18th, 1999)</a></h2> |
608 |
|
|
<blockquote> |
609 |
|
|
<ul class="simple"> |
610 |
|
|
<li>Sketch uses GTK instead of Tcl/Tk now.</li> |
611 |
|
|
<li>The directory for user specific configuration files is ~/.devsketch |
612 |
|
|
to avoid conflicts with a stable Sketch version.</li> |
613 |
|
|
</ul> |
614 |
|
|
</blockquote> |
615 |
|
|
</div> |
616 |
|
|
</div> |