[squeak-dev] displaying attributed characters on workspaces

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

[squeak-dev] displaying attributed characters on workspaces

Ralph Boland
I have some code that draws trees using  '|' and '-' characters to link nodes
in the tree.  For example:

                 8
            8---|
            |     7
      8---|
      |     |     6
      |     6---|
      |           5
8---|
      |           4
      |     4---|
      |     |     3
      4---|
            |     2
            2---|
                  1

I have a number of problems when I display the tree in a workspace (or
debugger for that matter).

1)  I need a fixed font so that symbols are properly aligned.
     This problem can be seen in the above figure but the effect is
worse in Squeak.
2)  I also need to add some additional information to my trees.
     The addition information is text ('|' and '-' characters linking
nodes in the tree)
     and needs to be in color (Red) in order avoid making the figure
too confusing.
     Thus I need to display attributed characters.  Workspaces can
handle this but
     I need for the 'printOn:'  method to handle them as well.
3)  I would like to add my own special characters to use instead of
'|' and '-' so
     that there are no gaps between these special characters when used in my
     tree drawings.  I know how the code works to draw the return and assignment
     arrows but I do not know if I need to use special fonts so that
there are no forced
     gaps between characters and lines of text and if so which ones.

Is it possible for me to do these things and have my tree printed
accordingly when
my tree is displayed in a workspace (or debugger) resulting from a
'printOn: aStream'  message?
I know that the stream I get when the printOn:  is invoked is a
LimitedWriteStream.
but not much more.

If it is not possible to do these things then I will settle for
displaying it in a Text Pane.
I still need to know which font to use though.

The code is part of my implementation of the Spine Tree Decomposition
data structure
which I will release to www.squeaksource.com when it is completed.

Any help most appreciated.

Ralph Boland

Reply | Threaded
Open this post in threaded view
|

[squeak-dev] Re: displaying attributed characters on workspaces

Klaus D. Witzel
On Sat, 20 Jun 2009 15:55:41 +0200, Ralph Boland wrote:

> I have some code that draws trees using  '|' and '-' characters to link  
> nodes in the tree.  For example:
...

> I have a number of problems when I display the tree in a workspace (or
> debugger for that matter).
>
> 1)  I need a fixed font so that symbols are properly aligned.
>      This problem can be seen in the above figure but the effect is
> worse in Squeak.
> 2)  I also need to add some additional information to my trees.
>      The addition information is text ('|' and '-' characters linking
> nodes in the tree)
>      and needs to be in color (Red) in order avoid making the figure
> too confusing.
>      Thus I need to display attributed characters.

As an example you can look how source methods are pretty printed with  
colors and tabs & breaks, see senders of

  #withStyleFor:do:
  #withColor:emphasis:do:

>  Workspaces can
> handle this but
>      I need for the 'printOn:'  method to handle them as well.
> 3)  I would like to add my own special characters to use instead of
> '|' and '-' so
>      that there are no gaps between these special characters when used  
> in my
>      tree drawings.  I know how the code works to draw the return and  
> assignment
>      arrows but I do not know if I need to use special fonts so that
> there are no forced
>      gaps between characters and lines of text and if so which ones.
>
> Is it possible for me to do these things and have my tree printed
> accordingly when
> my tree is displayed in a workspace (or debugger) resulting from a
> 'printOn: aStream'  message?

Looks complicated, why can't you do (myObject myPrintTree) ? I mean  
instead of hacking system-level debugger or support-level workspace ?

> I know that the stream I get when the printOn:  is invoked is a
> LimitedWriteStream.
> but not much more.
>
> If it is not possible to do these things then I will settle for
> displaying it in a Text Pane.
> I still need to know which font to use though.

Depends on what .image you're using, try this: select text in a method and  
do alt-k, that should bring up the list of fonts which are available.

HTH.

/Klaus

> The code is part of my implementation of the Spine Tree Decomposition
> data structure
> which I will release to www.squeaksource.com when it is completed.
>
> Any help most appreciated.
>
> Ralph Boland
>
>



--
"If at first, the idea is not absurd, then there is no hope for it".  
Albert Einstein