1App::Asciio(3) User Contributed Perl Documentation App::Asciio(3)
2
3
4
6 App::Asciio - Plain ASCII diagram
7
8 | | | |
9 | | | | | |
10 | | | | | |
11 v | v | v |
12 v v v
13 _____ _____
14 /\ _ \ /\ __ \
15 \ \ \_\ \ ___ ___ _ _\ \ \ \ \
16 -----> \ \ __ \ / __\ / ___\/\ \/\ \ \ \ \ \ ----->
17 \ \ \ \ \/\__, \/\ \___' \ \ \ \ \ \_\ \
18 \ \_\ \_\/\____/\ \____/\ \_\ \_\ \_____\
19 \/_/\/_/\/___/ \/___/ \/_/\/_/\/_____/
20
21 | | | |
22 | | | | | | |
23 v | | | v | |
24 | v | | |
25 v | | v
26 v v
27 (\_/)
28 (O.o) ASCII world domination is near!
29 (> <)
30
32 $> perl asciio.pl
33
35 It has always been painful to do ASCII diagrams by hand. This perl
36 application allows you to draw ASCII diagrams in a modern (but simple)
37 graphical interface.
38
39 The ASCII graphs can be saved as ASCII or in a format that allows you
40 to modify them later.
41
42 Special thanks go to the Muppet and the gtk-perl group, Gabor Szabo for
43 his help and advices.
44
45 Adam Kennedy coined the cool name.
46
48 Asciio user interface
49 .-----------------------------------------------------------------.
50 | Asciio |
51 |-----------------------------------------------------------------|
52 | ............................................................... |
53 | ..............-------------..------------..--------------...... |
54 | .............| stencils > || asciio > || box |..... |
55 | .............| Rulers > || computer > || text |..... |
56 | .............| File > || people > || wirl_arrow |..... |
57 grid---------->.......'-------------'| divers > || axis |..... |
58 | ......................^.....'------------'| boxes > |..... |
59 | ......................|...................| rulers > |..... |
60 | ......................|...................'--------------'..... |
61 | ......................|........................................ |
62 | ......................|........................................ |
63 | ......................|........................................ |
64 | ......................|........................................ |
65 '-----------------------|-----------------------------------------'
66 |
67 |
68 context menu
69
70 Press 'F1' for help.
71
72 context menu
73 The context menu allows to access to Asciio commands.
74
75 keyboard shortcuts
76 All the keyboad commands definitions can be found under
77 asciio/setup/actions/. Among the commands implemented are:
78
79 • select all
80
81 • delete
82
83 • undo
84
85 • group/ungroup
86
87 • open / save
88
89 • local clipboard operations
90
91 • send to front/back
92
93 • insert arrow, boxes, text
94
95 • ...
96
97 The available commands are displayed if you press K.
98
99 elements
100 There are a few elements implemented at the moment.
101
102 wirl arrow
103
104 An arrow that tries to do what you want. Try rotating the end clockwise
105 then counter clockwise to see how it acts
106
107 ^
108 |
109 | --------.
110 | |
111 '------- |
112 |
113 O-------------X / |
114 / |
115 / |
116 / v
117 /
118 /
119 v
120
121 multi section wirl arrow
122
123 A set of whirl arrows connected to each other
124
125 .----------. .
126 | | \ / \
127 .-------' ^ \ / \
128 | \ \ / \
129 | .-----------> \ ' .
130 | '----. \ /
131 | | \ /
132 '--------' '-------'
133
134 angled arrow and axis
135
136 -------. .-------
137 \ /
138 \ /
139 \ /
140
141 / \
142 / \
143 / \
144 ------' '-------
145
146 ^
147 ^ | ^
148 \ | /
149 \ | /
150 \ | /
151 <-------- -------->
152 / |\
153 / | \
154 / | \
155 v | v
156 v
157
158 box and text
159
160 .----------.
161 | title |
162 .----------. |----------| ************
163 | | | body 1 | * *
164 '----------' | body 2 | ************
165 '----------'
166 anything in a box
167 (\_/) |
168 edit_me (O.o) <------------'
169 (> <)
170
171 You can also use the 'External commands in box' to direct an external
172 command output to a box. Default shortcuts are 'x' and CTL + 'x'.
173
174 "if" box and "process" box
175
176 ____________
177 .--------------. \ \
178 / a == b \ \ \ __________
179 ( && ) ) process ) \ \
180 \ 'string' ne '' / / / ) process )
181 '--------------' /___________/ /_________/
182
183 your own stencils
184
185 Take a look at setup/stencils/computer for a stencil example. Stencils
186 listed in setup/setup.ini will be loaded when Asciio starts.
187
188 your own element type
189
190 For simple elements, put your design in a box. That should cover 90% of
191 anyone's needs. You can look in lib/stripes for element implementation
192 examples.
193
194 exporting to ASCII
195 You can export to a file in ASCII format but using the .txt extension.
196
197 Exporting to the clipboard is done with ctl + e.
198
200 User code ^ ^ OS code
201 \ /
202 \ /
203 \ /
204 User code <----Mode----->OS code
205 / \
206 / \
207 / \
208 User code v v OS code
209
210
211 .---. .---. .---. .---. .---. .---.
212 OS API '---' '---' '---' '---' '---' '---'
213 | | | | | |
214 v v | v | v
215 .------------. | .-----------. | .-----.
216 | Filesystem | | | Scheduler | | | MMU |
217 '------------' | '-----------' | '-----'
218 | | | |
219 v | | v
220 .----. | | .---------.
221 | IO |<----' | | Network |
222 '----' | '---------'
223 | | |
224 v v v
225 .---------------------------------------.
226 | HAL |
227 '---------------------------------------'
228
229
230
231
232 .---------. .---------.
233 | State 1 | | State 2 |
234 '---------' '---------'
235 ^ \ ^ \
236 / \ / \
237 / \ / \
238 / \ / \
239 / \ / \
240 / v v
241 ****** ****** ******
242 * T1 * * T2 * * T3 *
243 ****** ****** ******
244 ^ ^ /
245 \ \ /
246 \ \ /
247 \ \ / stimuli
248 \ \ /
249 \ \ v
250 \ .---------.
251 '--------| State 3 |
252 '---------'
253
254
255 .--Base::Class::Derived_A
256 /
257 .----Base::Class::Derived_B
258 Something--------. / \
259 \ / '---Base::Class::Derived::More
260 Something::else \ / \
261 \ \ / '-Base::Class::Derived::Deeper
262 \ \ /
263 \ \ .-----------Base::Class::Derived_C
264 \ \ /
265 '-------Base::Class
266 / \ \ \
267 ' \ \ \
268 | \ \ '---The::Latest
269 /| \ \ \
270 With::Some::fantasy' ' \ \ '----The::Latest::Greatest
271 /| \ \
272 More::Stuff' ' \ '-I::Am::Running::Out::Of::Ideas
273 /| \
274 More::Stuff' ' \
275 / '---Last::One
276 More::Stuff'
277
278
279 ____[]
280 | ___ |
281 || || device
282 ||___|| loads
283 | ooo |------------------------------------------------------------.
284 | ooo | | | |
285 | ooo | | | |
286 '_____' | | |
287 | | |
288 v v v
289 .-------------------. .---------------------------. .-------------------.
290 | Loadable module C | | Loadable module A | | Loadable module B |
291 '-------------------' |---------------------------| | (instrumented) |
292 | | .-----. | '-------------------'
293 '--------------------->| A.o | | |
294 calls | '-----' | |
295 | .------------------. | |
296 | | A.instrumented.o |<-----------------'
297 | '------------------' | calls
298 '---------------------------'
299
301 gnome libraries, gtk, gtk-perl for the gtk version
302
304 Undoubtedly many as I wrote this as a fun little project where I used
305 no design nor 'methodic' whatsoever.
306
308 Khemir Nadim ibn Hamouda
309 CPAN ID: NKH
310 mailto:nadim@khemir.net
311
313 This program is free software; you can redistribute it and/or modify it
314 under the same terms as Perl itself.
315
317 Gentoo
318 I run gentoo, packages to install gtk-perl exist. Install Asciio with
319 cpan.
320
321 FreeBSD
322 FreeBSD users can now install asciio either by package:
323
324 $ pkg_add -r asciio
325
326 or from source (out of the ports system) by:
327
328 $ cd /usr/ports/graphics/asciio $ make install clean
329
330 Thanks to Emanuel Haupt.
331
332 Ubuntu and Debian
333 Ports are on the way.
334
335 Windows
336 Asciio is part of the camelbox distribution and can be found here:
337 <http://code.google.com/p/camelbox/>. Install, run AsciiO from the
338 'bin' directory.
339
340 .-------------------------------.
341 / /|
342 / camelbox for win32 / |
343 / / |
344 / / |
345 .-------------------------------. |
346 | ______\\_, | |
347 | (_. _ o_ _/ | |
348 | '-' \_. / | |
349 | / / | |
350 | / / .--. .--. | |
351 | ( ( / '' \/ '' \ " | |
352 | \ \_.' \ ) | |
353 | || _ './ | |
354 | |\ \ ___.'\ / | |
355 | '-./ .' \ |/ | |
356 | \| / )|\ | |
357 | |/ // \\ | .
358 | |\ __// \\__ | /
359 | //\\ /__/ mrf\__| | /
360 | .--_/ \_--. | /
361 | /__/ \__\ |/
362 '-------------------------------'
363
364 camelbox is a great distribution for windows. I hope it will merge with
365 X-berry series of Perl distributions.
366
368 This works too (and I have screenshots to prove it :). I don't own a
369 mac and the mac user hasn't send me how to do it yet.
370
372 YMMV, install gtk-perl and AsciiO from cpan.
373
375 http://www.jave.de
376 http://search.cpan.org/~osfameron/Text-JavE-0.0.2/JavE.pm
377 http://ditaa.sourceforge.net/
378 http://www.codeproject.com/KB/macros/codeplotter.aspx
379 http://search.cpan.org/~jpierce/Text-FIGlet-1.06/FIGlet.pm
380 http://www.fossildraw.com/?gclid=CLanxZXxoJECFRYYEAodnBS8Dg (doesn't always respond)
381
382 http://www.ascii-art.de (used some entries as base for the network stencil)
383 http://c2.com/cgi/wiki?UmlAsciiArt
384 http://www.textfiles.com/art/
385 http://www2.b3ta.com/_bunny/texbunny.gif
386
387
388 *\o_ _o/*
389 / * * \
390 <\ *\o/* />
391 )
392 o/* / > *\o
393 <\ />
394 __o */\ /\* o__
395 * /> <\ *
396 /\* __o_ _o__ */\
397 * / * * \ *
398 <\ />
399 *\o/*
400 ejm97 __)__
401
403 Hey! The above document had some coding errors, which are explained
404 below:
405
406 Around line 68:
407 Non-ASCII character seen before =encoding in 'Gabor'. Assuming
408 CP1252
409
410
411
412perl v5.32.1 2021-01-26 App::Asciio(3)