dmmg1176@uxa.cso.uiuc.edu (David M Marcovitz) (02/01/91)
Are there classes in TCL to handle dialogs? I just learned how to use the CBartender class to play with menus, and it makes life really easy. I would think there would be something similar to handle dialog boxes. Is there anything? -- David M. Marcovitz | internet: marcovitz@uiuc.edu Computer-based Education Research Lab | dmmg1176@uxa.cso.uiuc.edu University of Illinois | novanet: marco / cca / cerl
gmarzot@mbunix.mitre.org (G. Marzot) (02/01/91)
There is no dialog class provided with the TCL. However Phillip Keller wrote an extension to the TCL(in ThinkC) to implement dialogs created from resources. The code I think is available via anonymous ftp from sumex-aim.stanford.edu. You'll have to hunt around a little for the directory. GoodLuck -GSM Responsibility for the views expressed here belongs only to myself and not to any organization.
Lawson.English@p88.f15.n300.z1.fidonet.org (Lawson English) (02/03/91)
David M Marcovitz writes in a message to All
DMM> Are there classes in TCL to handle dialogs? I just learned how
DMM> to use the CBartender class to play with menus, and it makes
DMM> life really easy. I would think there would be something similar
DMM> to handle dialog boxes. Is there anything
The closest thing to it is the CAboutBox in the More Classes folder, which is
a real kludge.
What I've been thinking about is to create a new SwitchBoard class and Window
class that handle dialogues the way MacApp does.
Basically, one must put a test into the ProcessEvent method that checks FrontWindow
to see if 1) is it a TCL window, and 2) if so, is it set with an "itsADialogue"
flag = TRUE.
If all of the above then you have to check for clicks outside the content region
of the front window, cmd-key-presses aside from "c," "v" and "x," and SysBeep
'em.
Elsewise you pass the event on to the inherited method. The easiest way to do
it would be to split the functionality (don't you love that word) of ProcessEvent
into two methods: ProcessEvent, which is identical until the line
"if (isMyEvent)"
is reached, and DoEvent, which takes the EventRecord as an arguement. Your new
ProcessEvent class should now say:
if (isMyEvent) then
DoEvent(theEventRecord);
In the base class (which substitutes for CSwitchBoard), DoEvent does exactly
what the old "if (isMyEvent)" block did. In the override method for handling
dialogues, DoEvent handles the special cases discussed above and either eats
them or passes them to inherited DoEvent.
You CDialogueWindow should have an "itsADialogue" flag that is always set to
false unless you need a modal dialogue.
Now you can use a normal TCL window as a Dialogue window and use all the CPanes
and co. to your hearts content. If you want to be fancy, you can create a default
button, a default text field, etc. ala the MacApp dialogues. You can also have
custom controls as methods, and animation without filterprocs, etc. You can
even design the thing to work with the Dialogue templates of ResEdit, and do
a GetDialogue to load the various resources (good luck there!).
Very handy.
I'm still implementing the above, but you now have all my research and thoughts
on the subject. Go fer it if you need a CDialogue class.
Lawson
--
Uucp: ...{gatech,ames,rutgers}!ncar!asuvax!stjhmc!300!15.88!Lawson.English
Internet: Lawson.English@p88.f15.n300.z1.fidonet.orgLawson.English@p88.f15.n300.z1.fidonet.org (Lawson English) (02/03/91)
G. Marzot writes in a message to All
GM> There is no dialog class provided with the TCL. However Phillip
GM> Keller wrote an extension to the TCL(in ThinkC) to implement
GM> dialogs created from resources
Nothing new under the sun...
Sigh...
Lawson
--
Uucp: ...{gatech,ames,rutgers}!ncar!asuvax!stjhmc!300!15.88!Lawson.English
Internet: Lawson.English@p88.f15.n300.z1.fidonet.orgdmmg1176@uxa.cso.uiuc.edu (David M Marcovitz) (02/05/91)
Lawson.English@p88.f15.n300.z1.fidonet.org (Lawson English) writes: >David M Marcovitz writes in a message to All >DMM> Are there classes in TCL to handle dialogs? I just learned how >DMM> to use the CBartender class to play with menus, and it makes >DMM> life really easy. I would think there would be something similar >DMM> to handle dialog boxes. Is there anything >The closest thing to it is the CAboutBox in the More Classes folder, which is >a real kludge. I don't have a CAboutBox in my More Classes folder. The only place I can find a CAboutBox class is in the Art Class Folder. >What I've been thinking about is to create a new SwitchBoard class and Window >class that handle dialogues the way MacApp does. ... preliminary algorithm deleted I was hoping for something simple. At least to start with, I just want a very simple dialog that allows me to input a string (that I will add to a menu). The menu part is so easy. Is there an easy way to do something simple that I can add onto later? -- David M. Marcovitz | internet: marcovitz@uiuc.edu Computer-based Education Research Lab | dmmg1176@uxa.cso.uiuc.edu University of Illinois | novanet: marco / cca / cerl