forked from stepan-mitkin/drakon_editor
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathreadme_mac.html
358 lines (307 loc) · 12.4 KB
/
readme_mac.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
<html>
<header>
<title>DRAKON Editor v.1.27 Readme</title>
<style>
body { width: 800px; }
</style>
</header>
<body>
<h1>DRAKON Editor 1.27</h1>
<p><b>DRAKON helps people understand programs.</b></p>
<p>Some tutorials can be found in the <b>examples</b> folder. Open the .drn files with the DRAKON Editor.</p>
<h2>FAQ</h2>
<p><b>Q: Where is the "Save" button?</b></p>
<p>A: DRAKON Editor does not have one. It saves your changes as you do them.</p>
<p><b>Q: How can I scroll the main window?</b></p>
<p>A: There are several ways to do it: 1. Drag with the mouse wheel pressed. 2. Scroll your mouse wheel (with and without the Shift key pressed). 3. Drag with both mouse keys pressed.</p>
<p><b>Q: Does DRAKON Editor use a proprietary binary file format?</b></p>
<p>A: No. DRAKON Editor keeps your data in an Sqlite database file. There are free viewers that can browse and edit such files. See <b>docs/drn_file_format.html</b> for details.</p>
<p><b>Q: Can I write real programs with DRAKON Editor?</b></p>
<p>A: Yes! Currently, Java, Processing.org, C#, Plain C, C++, Python, Tcl, Javascript, Lua, Erlang, Verilog and AutoHotkey are supported. Tutorials can be found in the <b>examples/language</b> folders.</p>
<p><b>Q: How to change the fonts?</b></p>
<p>A: To change the screen font, go to <b>File/File properties...</b> and choose the <b>Canvas font</b>.</p>
<p>To change the font in the exported PDF:</p>
<ol>
<li>Put a .ttf file to the <b>fonts</b> folder.</li>
<li>Go to <b>File/File properties...</b> and choose the <b>PDF font</b>.</li>
</ol>
<h2>Installation</h2>
<p>DRAKON Editor does not require any installation besides unzipping. It requires, however, <i>tcl</i> to be present on your computer:</p>
<ul>
<li><b>Windows</b> and <b>Mac OS</b>: download and install ActiveTcl 8.6: <a href="http://www.activestate.com/activetcl/downloads">http://www.activestate.com/activetcl/downloads</a></li>
<li><b>Linux</b>: install the following packages: tcl8.6, tk8.6, tcllib, libsqlite3-tcl, libtk-img.
</ul>
<h2>Shortcuts</h2>
<p>Mac users use <b>Command</b> instead of <b>Control</b> for the following shortcuts.</p>
<table cellpadding="3" border="1">
<tr>
<td><b>Action<b></td><td><b>Shortcut</b></td>
</tr><tr>
<td colspan="2"><center>Canvas</center></td>
</tr><tr>
<td>Scroll/pan</td><td>Move mouse with the wheel or middle button pressed.</td>
</tr><tr>
<td>Scroll/pan up and down</td><td>Mouse wheel.</td>
</tr><tr>
<td>Scroll/pan left and right</td><td>Shift + Mouse wheel.</td>
</tr><tr>
<td>Zoom in and out</td><td>Control + Mouse wheel.</td>
</tr><tr>
<td colspan="2"><center>Editing</center></td>
</tr><tr>
<td><em>Smart</em> mode</td><td>Drag items with the mouse when the Shift key is pressed.</td>
</tr><tr>
<td>Edit text</td><td>Double click on text.</td>
</tr><tr>
<td>Select all</td><td>Control + A</td>
</tr><tr>
<td>Delete selected objects</td><td>Del or Backspace</td>
</tr><tr>
<td>Copy</td><td>Control + C</td>
</tr><tr>
<td>Cut</td><td>Control + X</td>
</tr><tr>
<td>Paste</td><td>Control + V</td>
</tr><tr>
<td>Undo</td><td>Control + Z</td>
</tr><tr>
<td>Redo</td><td>Control + Y</td>
</tr><tr>
<td>Edit diagram description</td><td>Control + D</td>
</tr><tr>
<td colspan="2"><center>Search</center></td>
</tr><tr>
<td>Show/hide search panel</td><td>Control + F</td>
</tr><tr>
<td>Jump to diagram</td><td>Control + G</td>
</tr><tr>
<td>Jump to item</td><td>Control + I</td>
</tr><tr>
<td colspan="2"><center>Diagram</center></td>
</tr><tr>
<td>Verify diagram</td><td>Control + R</td>
</tr><tr>
<td>Generate code</td><td>Control + B</td>
</tr><tr>
<td colspan="2"><center>Adding items</center></td>
</tr><tr>
<td>Action item</td><td>A</td>
</tr><tr>
<td>If item</td><td>I</td>
</tr><tr>
<td>Horizontal line</td><td>H</td>
</tr><tr>
<td>Vertical line</td><td>V</td>
</tr><tr>
<td>Loop start item</td><td>L</td>
</tr><tr>
<td>Loop end item</td><td>E</td>
</tr><tr>
<td>Select item</td><td>S</td>
</tr><tr>
<td>Case item</td><td>C</td>
</tr><tr>
<td>Branch item</td><td>B</td>
</tr><tr>
<td>Address item</td><td>D</td>
</tr><tr>
<td>Insertion item</td><td>N</td>
</tr><tr>
<td>Tidy up</td><td>Control + T</td>
</tr><tr>
<td>Edit text in the selected icon</td><td>F2</td>
</tr><tr>
<td>Edit secondary text</td><td>F3</td>
</tr><tr>
<td>Call hierarchy</td><td>Control + E</td>
</tr>
</table>
<h2>Wish a feature? Report a bug?</h2>
<p>Your feedback is greatly appreciated. Please write to<br/>
<b>[email protected]</b></p>
<h2>What's new in version 1.27</h2>
<ul>
<li><a href="https://golang.org/">Go language</a> support.</li>
<li>Nice <strong>foreach</strong> code generation for Java, C#, Python, Tcl, Lua, D.</li>
<li>Better boolean short-circuit detection.</li>
<li>C/C++ code generator does not generate redundant <strong>return</strong> statements anymore.</li>
<li>Erlang generator does not emit <strong>throw</strong> when no default clause is present in a <strong>select</strong> statement.</li>
<li>JavaScript code generator: different <strong>foreach</strong> for objects and arrays.</li>
<li>Stricter handling of <strong>select</strong> keyword inside <strong>select</strong> icon.</li>
</ul>
<h2>What's new in version 1.26</h2>
<ul>
<li>Massive improvements to the Erlang code generator: <strong>receive</strong> statement, <strong>select/case</strong> macroicon produces "case X of" statement, visual supervision tree.</li>
<li>A bug fixed in the JavaScript code generator.</li>
<li>Added a warning before export to PNG.</li>
</ul>
<h2>What's new in version 1.25</h2>
<ul>
<li>Syntax highlighting.</li>
<li>Improvements to the C# state machine generator.</li>
</ul>
<h2>What's new in version 1.24</h2>
<ul>
<li>Setting zoom for all diagrams.</li>
<li>Bug fixes, including a problem with Mac shortcuts, AutoHotkey etc.</li>
</ul>
<h2>What's new in version 1.23</h2>
<ul>
<li>Code generation for the AutoHotkey language.</li>
<li>Code generation for the Verilog language.</li>
<li>Code generation for state machines (finite automata) in Lua and JavaScript.</li>
<li>Improvements in the JavaScript generator: better iteration, support for method functions and "closure" namespaces.</li>
<li>State machines and ERIL support in the code generator for the C language.</li>
<li>More flexibility added to "Select-Case" icons. It is now possible to put any condition in a "Case" icon, not just a value. </li>
<li>Other small improvements in code generation for several languages.</li>
<li>Bug fixes.</li>
<li>Switch to Tcl/Tk 8.6. It's a major change in system requirements. DRAKON Editor now needs Tcl/Tk 8.6 to run. Tcl/Tk 8.5 is not supported any more.</li>
</ul>
<h2>What's new in version 1.22</h2>
<ul>
<li>A bug fix related to inline comment icons in Erlang diagrams.</li>
<li>The content of the "if" icon in Erlang is not limited to the guard syntax any more.</li>
<li>State-machine support for Erlang: gen_fsm-based and standalone state-machines.</li>
<li>D language support.</li>
</ul>
<h2>What's new in version 1.21</h2>
<ul>
<li>State-machine (finite automata) support for C# code generation.</li>
<li>ERIL language support for C# and Tcl code generation. (Entity-relationship and inheritance diagrams.)</li>
<li>Hyperlinks in text. (Available through context meny, "Links".)</li>
<li>Minor bug fixes.</li>
</ul>
<h2>What's new in version 1.20</h2>
<ul>
<li>Bug fixes.</li>
<li>Call hierarchy.</li>
<li>Added support for Processing.org programming language.</li>
<li>Go to branch within a silhouette diagram.</li>
<li>The color of icons can be changed.</li>
</ul>
<h2>What's new in version 1.19</h2>
<ul>
<li>Automatic width for "If" icons has been reduced. Icons take less diagram space.</li>
<li>Modal dialogs improved on Linux.</li>
</ul>
<h2>What's new in version 1.18</h2>
<ul>
<li>DRAKON Editor now supports the full set of DRAKON icons.</li>
<li>Uniform spacing rules in the <b>advanced</b> editing mode (with Shift pressed).</li>
<li>Entity-Relationship diagram type added.</li>
<li>Canvas can be scrolled with mouse drag when both mouse buttons are pressed.</li>
<li>Added more shortcuts: F2 edits primary text, F3 edits secondary text. </li>
</ul>
<h2>What's new in version 1.17</h2>
<ul>
<li>Code generation: warnings removed for C# and Lua compilers.</li>
<li>User can now define custome text instead of "YES", "NO" and "End".</li>
<li>Color themes can be changed from Global settings.</li>
<li>Icon widths get adjusted automatically for the whole skewer after the text is changed for a single icon.</li>
<li>Note comments got a better visual style.</li>
<li>Loop end icons can have text.</li>
</ul>
<h2>What's new in version 1.15</h2>
<ul>
<li>Fixed a bug in the code generator.</li>
<li>Some metaprogramming features for the C language.</li>
</ul>
<h2>What's new in version 1.14</h2>
<ul>
<li>Fixed Lua source code generator.</li>
<li>Double mouse wheel click invokes View / See All.</li>
</ul>
<h2>What's new in version 1.13</h2>
<ul>
<li>Code generation for Lua language.</li>
</ul>
<h2>What's new in version 1.12</h2>
<ul>
<li>Open/Save file dialogs for .drn files and for export remember the last directory.</li>
<li>Inserting "if", "branch", "select" and "loop" items made easier.</li>
<li>Ctrl-X, Ctrl-C, Ctrl-V, Ctrl-A shortcuts fixed for non-English keyboard layouts.</li>
<li>Added menu items: Edit/Tidy up, Edit/Tidy up all diagrams. The shortcut for Tidy up is Ctrl-T.</li>
</ul>
<h2>What's new in version 1.11</h2>
<ul>
<li>Text in <b>Action</b> and <b>Insertion</b> icons is now left-aligned.</li>
<li>Diagrams now look neat and tidy. The <b>Edit/Adjust icon sizes</b> menu command sets equal width to the icons on the same vertical.</li>
<li>Fixed the bug about extracting class names in C++.</li>
<li>Qt support: now you can explicitly mark the diagram as a signal or a slot (see QtC++ folder).</li>
</ul>
<h2>What's new in version 1.10</h2>
<ul>
<li>A few minor usability improvements.</li>
<li>Javascript language support.</li>
<li>Erlang language support.</li>
</ul>
<h2>What's new in version 1.9</h2>
<ul>
<li>Fast insertion of items using keyboard shortcuts.</li>
<li>The list of previously opened files.</li>
<li>Custom fonts.</li>
<li>Java language support.</li>
<li>C# language support.</li>
<li>Code generation for Python and Tcl without <b>goto</b> simulation.</li>
</ul>
<h2>What's new in version 1.8</h2>
<ul>
<li>The performance of the Smart mode has been significantly improved.</li>
</ul>
<h2>What's new in version 1.7</h2>
<ul>
<li>"Smart" editing mode.<br />To activate the Smart mode, hold SHIFT while dragging
items around on the canvas.<br />
When you drag an item in the Smart mode, all connected lines and items also move consistently.
The diagram structure is preserved.</li>
</ul>
<h2>What's new in version 1.6</h2>
<ul>
<li>Fixed a code generation bug (occuring with Insertion icons).</li>
<li>Resolved Ubuntu 11.x incompatibility issues.</li>
</ul>
<h2>What's new in version 1.5</h2>
<ul>
<li>More improvements in the interface:</li>
<ul>
<li>If you grab a line by its end and drag, all the connected items will also move.</li>
<li>The flat list of diagrams has been replaced with a tree.</li>
<li>"Find all references", "Go to definition", "Jump to diagram", "Jump to item" etc.</li>
</ul>
<li>Code generation for:</li>
<ul>
<li>Plain C</li>
<li>C++</li>
<li>Python 2.x and 3.x</li>
<li>Tcl</li>
</ul>
</ul>
<h2>What's new in version 1.4</h2>
<ul>
<li>Verification according to the rules of the DRAKON language (DRAKON-1).</li>
<li>Creation of silhouette diagrams made easier.</li>
<li>Address icons can be directed towards a branch using the context menu.</li>
<li>Address icons update their text when the target branch gets renamed.</li>
</ul>
<h2>What's new in version 1.3</h2>
<ul>
<li>A massive amount of usability improvements.</li>
<li>Export to PNG.</li>
<li>Export to PDF with colors.</li>
</ul>
<h2>What's new in version 1.2</h2>
<ul>
<li>Zoom.</li>
<li>Search.</li>
<li>Colored icons.</li>
<li>Many user interface improvements.</li>
</ul>
<h2>License</h2>
<p>DRAKON Editor is <a href="http://en.wikipedia.org/wiki/Public_domain">PUBLIC DOMAIN</a> except some third-party components (pdf4tcl, Liberation fonts).</p>
<h2>Authors</h2>
<p>Stepan Mitkin, Alexander Ilyin, Maas-Maarten Zeeman, Vasil Dyadov, Vasili Bachiashvili.</p>
<p><a href="http://drakon-editor.sourceforge.net/">http://drakon-editor.sourceforge.net/</a></p>
<p><b>[email protected]</b></p>
<p>10 March 2016.</p>
</body>
</html>