readme_mac.html 12 KB

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