[Date Prev][Date Next][Thread Prev][Thread Next] [Search] [Date Index] [Thread Index]

[MacPerl-Toolbox] MacDialogs, MacWindows and a new module



I have been thinking a little about the general business of building 
simple GUI's which is certainly one of the most useful things you can 
do with the Toolbox modules.

If the GUI involves a text entry box then a MacDialog window is the 
obvious choice since it offers pre-programmed 'one-line' TextEdit 
fields which behave appropriately for most applications. However 
there is one fairly serious bug which causes a machine crash if the 
MenuBar 'Cut', 'Copy' and 'Paste' functions are invoked. 
(Interestingly the fault only shows up in the non-modal mode. I don't 
know the reason for this.)

Beyond that, MacDialogs presents difficulties. You cannot readily 
draw in the window (for instance lines and boxes to segregate areas 
of the window visually) and the range of controls available is 
restricted. There are other bugs which get in the way; for instance 
get/set drawing procedures don't work for some reason which I haven't 
yet been able to sleuth out.

So in cases where you need to draw or maybe need access to a wider 
range of controls MacWindows provides the answer. However with 
MacWindows you are stuck with the problem that there is no easy way 
to set up a 'dialog-type' text entry box. You can of course import a 
TextEdit field from 'TextEdit.pm' but in many instances the 
functionality of that field is inappropriate.

The 'MacTextEdit' field consists of a box, X by Y, in which the text 
string wraps at the RH margin and generally behaves as a 
mini-word-processor window. This is not the behaviour you usually 
want in a dialog-type text box. Admittedly 'MacTextEdit' allows you 
to over-ride its functions in the standard toolbox module fashion, 
but the re-write is extensive and has to be done for every GUI window 
you might create. In addition MacTextEdit fields also suffer from the 
same bugs as MacDialogs, namely crashes using Cmd-X/C/V. Garbage is 
also returned from a 'get' call on an empty handle although I think 
Chris Nandor may have fixed that one (in 'Memory.pm' is it?).

In short it seems to me there is room for a new module to allow 
dialog-type text fields to be imported into MacWindows. I have made 
an attempt at such an animal provisionally called 'MacTE.pm' which 
can be found as 'MacTE_1.0.sit.bin' on:

	http://www.afco.demon.co.uk/macos.html

It aims to provide:

	a)  one-line text fields (long strings shuttled left to right)
	b)  provision for font setting
	c)  a simple 'get/set text' interface
	d)  an HTE handle to all other TextEdit functions
	e)  full 'Cut', 'Copy' and 'Paste' functions

I would much value criticism, suggestions, and comments of all kinds 
from anyone interested in GUI applications to see if this offering 
might be the basis of a useful addition to the Toolbox modules.

Alan Fry

==== Want to unsubscribe from this list?
==== Send mail with body "unsubscribe" to macperl-toolbox-request@macperl.org