1App::Asciio(3)        User Contributed Perl Documentation       App::Asciio(3)
2
3
4

NAME

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

SYNOPSIS

32               $> perl asciio.pl
33

DESCRIPTION

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, Gábor Szabó for
43       his help and advices.
44
45       Adam Kennedy coined the cool name.
46

DOCUMENTATION

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

EXAMPLES

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

DEPENDENCIES

301       gnome libraries, gtk, gtk-perl for the gtk version
302

BUGS AND LIMITATIONS

304       Undoubtedly many as I wrote this as a fun little project where I used
305       no design nor 'methodic' whatsoever.
306

AUTHOR

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

SUPPORTED OSes

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

Mac OsX

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

other unices

372       YMMV, install gtk-perl and AsciiO from cpan.
373

SEE ALSO

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

POD ERRORS

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 'Gábor'. Assuming
408           CP1252
409
410
411
412perl v5.36.0                      2023-01-19                    App::Asciio(3)
Impressum