Martin DeMello wrote:
You
might get some inspiration from sup and raggle too, though I've not
looked at the source of either.
martin
I hope it is not inappropriate to continue this disc here (since its
being mailed to a lot of people).
1. Looked at the source of sup. He does *not* use windows or panels at
all -- only stdscr. One comment from source (the others are
unprintable!):
## since we are currently only doing multiple full-screen modes,
## use stdscr for each window. once we become more sophisticated,
## we may need to use a new Ncurses::WINDOW
##
I had initially asked some questions on the bugs-ncurses list (this is
not ruby) and I had agreed with one person there that one should not use
stdscr *at all* but panels. Panel take care of updating and managing
themselves (in terms of which is on top etc) and when you delete a
panel, what's under it is automatically displayed.
That works excellently with me, since the menu calls other programs
which call others and then you come back ...
So I checked the source and (it seems) whenever a buffer is deleted, he
pops the last one and refreshes/displays that.
The only place he uses a field and form, is at the bottom, where he asks
for From, To, CC etc in the last line, and then invokes my $EDITOR. i
have only sent a mail using sup, not done anything else.
2. I then checked Raggle (not installed just looked at source). He only
uses Windows and not panels. So when a window is removed, it seems he
refreshes all the windows in $win (which is a global array for all
windows).
So my initial impression, is that these project are not ideal for
understanding how ncurses is to be used. However, i think sup would be
great for me to get ideas on how to allow customization of my app. The
sup "TextField" class takes into account history and completions which
could be useful someday.
3. I had checked Shoes some days back, it seems all the windowing code
is in the C compiled file.
----
Anyway, I am wondering if you (or anyone) could give me some inputs on
this problem i face.
A) I have my project files in a folder. The templates, the application
modules and runtime classes etc. In the *same* directory i create my
DSLS and then generate programs to run. Its becoming a mess.
If i use another working folder for my DSLs and output programs, the
requires will fail. How does one go about working on a project in one
location, and using it in another. (I do not want to place my project in
/opt/local/...site_ruby, while I am developing).
B) I have been looking through various projects, and I see one
structure:
Lets say the project is proj v 0.1
proj0.1 - lib/
-- proj.rb
-- proj/
--- x.rb, y.rb etc
Is there a place where this structure is explained? I understand that
proj.rb is a common module. Is this the name of the file that is
required. I would appreciate a link to some place where all this is
explained.
Thanks.