Provided by: asciio_1.51.3-1_all bug

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, Gabor Szabo 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 one to access to Asciio commands.

   keyboard shortcuts
       All the keyboard 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.jave.de
               http://search.cpan.org/~osfameron/Text-JavE-0.0.2/JavE.pm
               http://ditaa.sourceforge.net/
               http://www.codeproject.com/KB/macros/codeplotter.aspx
               http://search.cpan.org/~jpierce/Text-FIGlet-1.06/FIGlet.pm
               http://www.fossildraw.com/?gclid=CLanxZXxoJECFRYYEAodnBS8Dg (doesn't always respond)

               http://www.ascii-art.de (used some entries as base for the network stencil)
               http://c2.com/cgi/wiki?UmlAsciiArt
               http://www.textfiles.com/art/
               http://www2.b3ta.com/_bunny/texbunny.gif

            *\o_               _o/*
             /  *             *  \
            <\       *\o/*       />
                       )
                o/*   / >    *\o
                <\            />
        __o     */\          /\*     o__
        * />                        <\ *
         /\*    __o_       _o__     */\
               * /  *     *  \ *
                <\           />
                     *\o/*
        ejm97        __)__