Re: Common GUI API : What would the code look like?

David Sankel <[email protected]>
Newsgroups gmane.comp.lang.haskell.gui
Message-ID <[email protected]>
--- Glynn Clements <[email protected]> wrote:
> David Sankel wrote:
> 
> > Questions ::
> > 1) How does the interface look in
> Test_midlevel.hs? 
> > Is there any critiques in
> >   regard to using this style in CGA (Common GUI
> API)?
> 
> 1. Widgets aren't being given names. This makes it
> impossible to refer
> to them from outside of the code. It also eliminates
> the possibility
> of implementing a useable Xt (e.g. Motif) backend.
> Toolkits which
> don't name widgets can just ignore the name.

I'm sorry, I don't understand what you mean by
"impossible to refer to them from outside of the
code".  Can you give me an example of what you are
talking about.

> 2. Widget properties (label, position, dimension)
> are being embedded
> in the code, which is a bad idea. This point is
> closely tied in with
> point 1.

Where should this be in your opinion?

> 3. Personally, I would prefer a generic widget
> creation function,
> rather than a different function for each type of
> widget. E.g. Xt has
> XtCreateWidget(), with the widget class being passed
> as an argument.
> A more Haskell-ish approach would be to use
> typeclasses, e.g.:
> 
> 	class Widget a where
> 		create :: String -> a -> [Property] -> IO a
> 	--	create name parent properties = ...

Why would you prefer this over the other method?  One
problem with this method seems to be runtime errors
for nonexistant classes.


David J. Sankel
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.