App::Asciio
- NAME
- SYNOPSIS
- DESCRIPTION
- DOCUMENTATION
- Asciio user interface
- context menu
- keyboard shortcuts
- elements
- wirl arrow
- multi section wirl arrow
- angled arrow and axis
- box and text
- "if" box and "process" box
- your own stencils
- your own element type
- exporting to ASCII
- EXAMPLES
- DEPENDENCIES
- BUGS AND LIMITATIONS
- AUTHOR
- LICENSE AND COPYRIGHT
- SUPPORTED OSes
- Gentoo
- FreeBSD
- Ubuntu and Debian
- Windows
- Mac OsX
- other unices
- SEE ALSO
NAME
App::Asciio - Plain ASCII diagram
| | | | | | | | | | | | | | | | v | v | v | v v v _____ _____ /\ _ \ /\ __ \ \ \ \_\ \ ___ ___ _ _\ \ \ \ \ -----> \ \ __ \ / __\ / ___\/\ \/\ \ \ \ \ \ -----> \ \ \ \ \/\__, \/\ \___' \ \ \ \ \ \_\ \ \ \_\ \_\/\____/\ \____/\ \_\ \_\ \_____\ \/_/\/_/\/___/ \/___/ \/_/\/_/\/_____/ | | | | | | | | | | | v | | | v | | | v | | | v | | v v v (\_/) (O.o) ASCII world domination is near! (> <) |
SYNOPSIS
$> perl asciio.pl |
DESCRIPTION
It has always been painful to do ASCII diagrams by hand. This perl application allows you to draw ASCII diagrams in a modern (but simple) graphical interface.
The ASCII graphs can be saved as ASCII or in a format that allows you to modify them later.
Special thanks go to the Muppet and the gtk-perl group, Gábor Szabó for his help and advices.
Adam Kennedy coined the cool name.
DOCUMENTATION
Asciio user interface
.-----------------------------------------------------------------. | Asciio | |-----------------------------------------------------------------| | ............................................................... | | ..............-------------..------------..--------------...... | | .............| stencils > || asciio > || box |..... | | .............| Rulers > || computer > || text |..... | | .............| File > || people > || wirl_arrow |..... | grid---------->....... '-------------' | divers > || axis |..... | | ......................^..... '------------' | boxes > |..... | | ......................|...................| rulers > |..... | | ......................|................... '--------------' ..... | | ......................|........................................ | | ......................|........................................ | | ......................|........................................ | | ......................|........................................ | '-----------------------|-----------------------------------------' | | context menu |
Press 'F1' for help.
context menu
The context menu allows to access to Asciio commands.
keyboard shortcuts
All the keyboad commands definitions can be found under asciio/setup/actions/. Among the commands implemented are:
select all
delete
undo
group/ungroup
open / save
local clipboard operations
send to front/back
insert arrow, boxes, text
...
The available commands are displayed if you press K.
elements
There are a few elements implemented at the moment.
wirl arrow
An arrow that tries to do what you want. Try rotating the end clockwise then counter clockwise to see how it acts
^ | | --------. | | '------- | | O-------------X / | / | / | / v / / v |
multi section wirl arrow
A set of whirl arrows connected to each other
.----------. . | | \ / \ .-------' ^ \ / \ | \ \ / \ | .-----------> \ ' . | '----. \ / | | \ / '--------' '-------' |
angled arrow and axis
-------. .------- \ / \ / \ / / \ / \ / \ ------ ' ' ------- ^ ^ | ^ \ | / \ | / \ | / <-------- --------> / |\ / | \ / | \ v | v v |
box and text
.----------. | title | .----------. |----------| ************ | | | body 1 | * * '----------' | body 2 | ************ '----------' anything in a box (\_/) | edit_me (O.o) <------------' (> <) |
You can also use the 'External commands in box' to direct an external command output to a box. Default shortcuts are 'x' and CTL + 'x'.
"if" box and "process" box
____________ .--------------. \ \ / a == b \ \ \ __________ ( && ) ) process ) \ \ \ 'string' ne '' / / / ) process ) '--------------' /___________/ /_________/ |
your own stencils
Take a look at setup/stencils/computer for a stencil example. Stencils listed in setup/setup.ini will be loaded when Asciio starts.
your own element type
For simple elements, put your design in a box. That should cover 90% of anyone's needs. You can look in lib/stripes for element implementation examples.
exporting to ASCII
You can export to a file in ASCII format but using the .txt extension.
Exporting to the clipboard is done with ctl + e.
EXAMPLES
User code ^ ^ OS code \ / \ / \ / User code <----Mode----->OS code / \ / \ / \ User code v v OS code .---. .---. .---. .---. .---. .---. OS API '---' '---' '---' '---' '---' '---' | | | | | | v v | v | v .------------. | .-----------. | .-----. | Filesystem | | | Scheduler | | | MMU | '------------' | '-----------' | '-----' | | | | v | | v .----. | | .---------. | IO |<----' | | Network | '----' | '---------' | | | v v v .---------------------------------------. | HAL | '---------------------------------------' .---------. .---------. | State 1 | | State 2 | '---------' '---------' ^ \ ^ \ / \ / \ / \ / \ / \ / \ / \ / \ / v v ****** ****** ****** * T1 * * T2 * * T3 * ****** ****** ****** ^ ^ / \ \ / \ \ / \ \ / stimuli \ \ / \ \ v \ .---------. '--------| State 3 | '---------' .--Base::Class::Derived_A / .----Base::Class::Derived_B Something--------. / \ \ / '---Base::Class::Derived::More Something:: else \ / \ \ \ / '-Base::Class::Derived::Deeper \ \ / \ \ .-----------Base::Class::Derived_C \ \ / '-------Base::Class / \ \ \ ' \ \ \ | \ \ '---The::Latest /| \ \ \ With::Some::fantasy ' ' \ \ '----The::Latest::Greatest /| \ \ More::Stuff ' ' \ '-I::Am::Running::Out::Of::Ideas /| \ More::Stuff ' ' \ / '---Last::One More::Stuff' ____[] | ___ | || || device ||___|| loads | ooo |------------------------------------------------------------. | ooo | | | | | ooo | | | | '_____' | | | | | | v v v .-------------------. .---------------------------. .-------------------. | Loadable module C | | Loadable module A | | Loadable module B | '-------------------' |---------------------------| | (instrumented) | | | .-----. | '-------------------' '--------------------->| A.o | | | calls | '-----' | | | .------------------. | | | | A.instrumented.o |<-----------------' | '------------------' | calls '---------------------------' |
DEPENDENCIES
gnome libraries, gtk, gtk-perl for the gtk version
BUGS AND LIMITATIONS
Undoubtedly many as I wrote this as a fun little project where I used no design nor 'methodic' whatsoever.
AUTHOR
Khemir Nadim ibn Hamouda CPAN ID: NKH mailto:nadim @khemir .net |
LICENSE AND COPYRIGHT
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
SUPPORTED OSes
Gentoo
I run gentoo, packages to install gtk-perl exist. Install Asciio with cpan.
FreeBSD
FreeBSD users can now install asciio either by package:
$ pkg_add -r asciio
or from source (out of the ports system) by:
$ cd /usr/ports/graphics/asciio $ make install clean
Thanks to Emanuel Haupt.
Ubuntu and Debian
Ports are on the way.
Windows
Asciio is part of the camelbox distribution and can be found here: http://code.google.com/p/camelbox/. Install, run AsciiO from the 'bin' directory.
.-------------------------------. / /| / camelbox for win32 / | / / | / / | .-------------------------------. | | ______\\_, | | | (_. _ o_ _/ | | | '-' \_. / | | | / / | | | / / .--. .--. | | | ( ( / '' \/ '' \ " | | | \ \_.' \ ) | | | || _ './ | | | |\ \ ___.'\ / | | | '-./ .' \ |/ | | | \| / )|\ | | | |/ // \\ | . | |\ __// \\__ | / | //\\ /__/ mrf\__| | / | .--_/ \_--. | / | /__/ \__\ |/ '-------------------------------' |
camelbox is a great distribution for windows. I hope it will merge with X-berry series of Perl distributions.
Mac OsX
This works too (and I have screenshots to prove it :). I don't own a mac and the mac user hasn't send me how to do it yet.
other unices
YMMV, install gtk-perl and AsciiO from cpan.
SEE ALSO
http://www.fossildraw.com/?gclid=CLanxZXxoJECFRYYEAodnBS8Dg (doesn't always respond) *\o_ _o/* / * * \ <\ *\o/* /> ) o/* / > *\o <\ /> __o */\ /\* o__ * /> <\ * /\* __o_ _o__ */\ * / * * \ * <\ /> *\o/* ejm97 __)__ |
1 POD Error
The following errors were encountered while parsing the POD:
- Around line 68:
-
Non-ASCII character seen before =encoding in 'Gábor'. Assuming ISO8859-1