App-Asciio

 view release on metacpan or  search on metacpan

Todo.txt  view on Meta::CPAN

#----------------------#
# This is the todo.txt #
#----------------------#

use json as file format

diagonal text is kinky, Ian's request

auto connection using A* module http://search.cpan.org/~acdalton/AI-Pathfinding-AStar-0.10/
	- orthogonal or orthogonal and diagonal arrows
	- add get_cost_map to base Asciio
		- get_cost_map can also be implemented in draw in sub classes
	- connectors and elements could have different costs


Optimize the connection optimizer
	- no optimization needed for unchanged objects
		- asciio must keep track of changed objects
			- but we must not be intruisive
				- md5 ??

re-parsable asciio output with minimal data

read
	http://www-cs-students.stanford.edu/~amitp/gameprog.html
	Path finding, see ISBN 2550-0124977820

add actions:
	- select all elements connected to currently selected element(s)
	- select all elemet connected to the element under the pointer
	- expend selection level with '+', also implement '-', '*', ...

	- optimize current arrow (A* pathfinder)
	- click + key on arrow adds a 'flex' point

what's new section

night colors don't change the ruler colors

? generate "nice looking" graph
	- interface to ditaa
	- HTML document?!

copy to clipboard removes empty lines at the begining of the buffer

two section arrow middle connector keeps horizontal with linked element
	this would reduce the amount of changes that need to be done manually

Curses UI

tutorial

add offset input to multiple element creation window

slide mode
	accept a directory as input
		show slides based on sort order or order.slide.txt
	allow saving of modified slides
	allow deletion and insertion of slides
		what if the slides are under git control?
	extra window to show slide order and modify it (and the slides maybe)
	extra slide menu (through actions)
		open
		save
		insert
		delete
	
arrow menu not working

document what ascii_events should contain
	links to gtk doc
	should the content itself be defined in the derived class?

split into two distributions?
	=> easier for those who want to build another interface

setup/actions manipulating asciio object directely move to asciio

transparent background for cmd output
	width > spaces == transparent
	spaces => transparent
	0 => transparent
	
merge arrows and split arrow

arrow merge object
	like a single character text but nicer to use with  arrows
	or merge arrow connections directely (weld them together)
	
multi-ended connectors
	add remove end from multi ended connectors

start and end connectors should have different colors

copy elements to the system clipboard to allow copies between instances

handle multiple versions with one of the following mechanisms:
	- embed git::PurePerl 
	- use PAR 
	- multiple directories

Display version somewhere

connected, non auto-connect, arrows loose their connection if the connectee is resized
	=> this is because resize doesn't keep the connection. The 
		canonizer reconnects elements but non auto-connect objects are not handled by the canonizer
		
		=> make canonizer re connect to the same place instead for changing the connector
		
magnet object for ESD

reload color options after loading file
	display_grid + element_backgound_color
	
search for stripe class in the setup directory
	or list the directories in the setup
	or add the directory as setup data and 'use lib'
	
let actions load stencils

forward KB + mouse events to stripes objects
	
table object
	bulleted lists and otherwise formatted text

record box object

save as pdf and printing

more than one resize handle

zoom on pointer
	#not ctl to zoom
	panning
	scrollbars
	
autosave

connector grouping

cancel button in editing windows

handle unicode (remove write_file)

now arrow can match inside a box, moving an arrow around has become more tricky
	=> do not connect if both ends are unconnected and arrow is being moved

move action constants to module

optimize do_stack serialization
	# use bzip2
	=> diff + compress
		# tests done
		must have a reverse diff that can patch both ways or it's not worth it
		

Todo.txt  view on Meta::CPAN

		=> alt + C

#vertical text
	
!signing objects and diagrams?

#toggle grid

#text object should be resized to the text size when created

#allow non auto-connect to be one character around the object instead for _on_ the object
	=> this could be handled by the box object
		- the box object is asked to match a connector
		- the box object can dynamically create a connector
		- if the box object is resized, the connectors can be moved
			the connectors can remember their position if the
			box object is resized again
		- new connection should connect new connectors
			=> we need to know who we are connecting to

	=> or this could be done by the asciio object
		- asciio asks the box to add a connection
			this let ascioo decide where they should be placed instead for 
			deciding it's around the box
		- the user can add connectors with the same mechanism
		- the connector must be handled when resizing the box object
			by the box object or by the connector itself

#Box added via 'B' shortcut should be selected

#reselect elements after quick link

#select text an focus in text editing window

#error: title has frame when text doesn't

#link to camel box

#background color, grid color

#save file in exit dialog

#continuation _from_ diagonal is not correct

!allow diagonals in setup

#diagonal lines
	#error: connector character is wrong
	#dynamically choose if the arrow allows diagonal or not (keyboard)

#handle error when running external command
	Can't exec "dsq": No such file or directory at '/devel/perl_modules/App/Asciio/blib/lib/App/Asciio/setup//actions/unsorted.pl' line 365.
	Use of uninitialized value in split at /devel/perl_modules/App/Asciio/blib/lib/App/Asciio/stripes/editable_box2.pm line 50.

#paste at the mouse position
	
#per arrow autoconnect

#dynamically add connectors

#copy selected elements to clipboard
	
#move ruler line definition to the setup
	allow removal of rulers
	allow specific location of rulers

#dynamically generate GROUP_COLORS

#figlet support
	Done via external command 
	Emanuel Haupt <ehaupt@freebsd.org>
	Useless use of a constant in void context at /usr/lib64/perl5/site_perl/5.8.8/Text/FIGlet.pm line 177.
	
	hundreds of :
	Use of uninitialized value in substitution (s///) at /usr/lib64/perl5/site_perl/5.8.8/Text/FIGlet.pm line 93.
	Use of uninitialized value in concatenation (.) or string at /usr/lib64/perl5/site_perl/5.8.8/Text/FIGlet.pm line 95.
	Use of uninitialized value in string ne at /usr/lib64/perl5/site_perl/5.8.8/Text/FIGlet.pm line 154.
	Use of uninitialized value in string eq at /usr/lib64/perl5/site_perl/5.8.8/Text/FIGlet.pm line 163.
	Use of uninitialized value in string ne at /usr/lib64/perl5/site_perl/5.8.8/Text/FIGlet.pm line 200.
	
#non connecting section wirl arrows

#external command output
	Emanuel Haupt <ehaupt@freebsd.org>

#screencast demo

#remove section

#export png

#possibility to close the application from a script

#return edits the currently selected box

#error: targets are not opened

#register_action_handlers return own data not the evaled package

#script to generate a list of the actions available

#error: |------------>

#error: moving connectors on each other bugs the connector size
	only when end connector is backed over start connector

#error: multi wirl inter-sections overlays should be taken from the arrow definition
     #      .####
     |      #
     #####-##

#direction change should work on any arrow section

#error: Add section keeps connection
#error: Add section doesn't connect

# multi wirl extension as if we were drawing the arrow
	when the mouse takes a turn, a wirl point is added
	=> or add section when clicked
	
#Add section to cursor position

Todo.txt  view on Meta::CPAN

#do notshow resize rectangle if attribut is not set

#error after aligning box centers, the connectors are real weird in if_elsif.gpad

#verify all the '* $character_' and '\ $character_'

#editing box breaks the connections

#?use DTD::GTK for dumps

!? table element
	=> user defined plugin in the future
	
!one character element should move not resize

#keyboard mapping

#automatic moving of start connector is weird
	=> $moved_connector_name
	
#-init

#export is broken since 'save as' 

#handle file save properly
	#save unnamed to new name OK
	#save unnamed to old name ASK FOR OVERRIDE PERMISSION
	#save named DO NOT ASK NAME
	#save as WORKS as save UNAMED
	#save mark document as NOT MODIFIED (check undo still works)

#redo

#quick insert for text (same as quick insert for boxes)

#save element's X Y in character sizes

#access stencil elements by name

!add module with shared constants (ie setup)
	=> later
	
#update_diagram should be configurable
	make a module so we can optimize a connection at the time
		canonize uses $self for character size only
	? ask for the optimal connection before creating it

#subs to connect specific connectors wherever the elements are and they are sized

#script using cononize_connection doesn't work, path was changed

#make a script library

!update_diagram should be called when running in script mode
	let the script writer decide if they want "optimized" connections or not

# proper setup structure

#editable arrow has connections!! use resize/info/highlight points instead

# export ASCII to clipboard

#quick connect
	if selected elements
		connect element under to selected elements
		deselect all
	else
		select element
		
#forward mouse to ACTIONS

#$dragging moved to class
	setting it should be possible through an API

#auto connect that moves an arrow start should update the end connector

#multi wirl in default gpad.pl

#alignment tool

#single group element copied still thinks it part of a group

#changing text in if reconnect wrong

#set/get_text

#default glyph types for box

#setting X, Y in scipts doesn't generate expected ASCII output

#connector error in multi wirl

#transfor to ASCII output has extra spaces

#multiline arrow take direction for every point (for scripting)

!--script my_script.pl

#save on exit if modified

#multiline arrow

!reapeat box
	given a text, it will repeat it depednding on the size
		!full multiples or not

#process box

#segfault
#can't use Data::TreeDumper in copy to clipboard

# 'new connection' is flashed for a connector that is already connected

#tab to select first element generate 'uninitialzed value at 134'

#undo
	#do not save undo buffer
	
#copy doesn't keep connections

#front back break connections
#keyboard move doesn't move connections

!cycle color for selection points like for groups?

#move $previous_x, $previous_y to the class

#error: drawing connections on move
#error: drawing connections on resize box
#error: drawing connections on edit

#refactor other end offsetting (used in move and resize)

#missing: save connections

#error moving groups looses connection

#thrown a few boxes and arrows in an empty document

#keyboard short cut
	transparent mode
	show connectors connections
	
#resize connectee doesn't move the connector

#move  group looses connections

#resizing downright arrow flips it to rightdown

handle multiple character start and end in angled arrow
handle \t in text

#after changing line glyphs, it becomes right down from right up !!

#ungrouping moves object up
selecting a single group element, through selection rectangle, selects the whole group
	right?

#saving named objects uses the objects contents for the next copy

#save doesn't save grouping !!
	save elements without NAME to avoid overriding object at load time

?? seems that selection rectangle sometimes doesn't work

#selection is done botom  up instead for the opposite!
#when bg selection is on, can't select fg

selecting an element that is between two grouped elements is not possible



( run in 3.168 seconds using v1.01-cache-2.11-cpan-364913b4093 )