[GUI] Re: Gtk and Object I/O

Krasimir Angelov ka2_mail@yahoo.com
Thu, 23 Jan 2003 08:26:57 -0800 (PST)


--- Axel Simon <A.Simon@ukc.ac.uk> wrote:
> Dialogs in Windows are specified in dialog units,
> i.e. they scale with the
> font size but cannot be resized by the user: scrap
> Gtk's dynamic sizing
> capability. 

The Dialogs in Windows also can be resizeable. See:
http://www.codeproject.com/dialog/cresizeablefiledialog.asp
for example. The example is for MFC but the principle
it is also usable with raw Win32 API.

> Buttons on Aqua cannot have icons in
> them, scrap icons in Gtk
> and Windows button. 

The buttons in Windows has BS_OWNERDRAW style. Using
this style the programmer can draw its own content
inside the control. This allows to implement "Icon 
Button" and there are many examples how to make this.

> Scrap Aquas hierarchical view in
> several columns
> (could be simulated if Windows supports adding
> columns on the fly, Gtk
> would), scrap additional columns next to a
> hierarchical tree since Windows
> doesn't support that.

There are two solutions: 
   - The library can support two widget types:
          1) ListView - multicolumn view without 
             hirerarhical view
          2) TreeView - single column hirerarhical 
             view
       This reduces advantages of multicolumn
GtkTreeView under GTK. I think that is not good idea. 

    - Development of custom multicolumn TreeView under
Windows and using GtkTreeView under GTK. There are
many already developed multicolumn TreeView controls
for MFC. The best implementation which I 
know is a Stingray CTreeView control. Unfortunately
the Stingray Objective Studio isn't freeware and also
it requires MFC.

Scrap Window's concept of
> groups in dialog and 
> keyboard accelerators in general since Aqua doesn't
> know about hotkeys.

I haven't any experience with MAC platform and don't
know any workaroud. Is it too important?

> AFAIK a lot of UI elements on Windows which are
> considered "standard" are 
> implemented in the Microsoft Foundation Classes.
> Thus to actually use 
> these, one has to use the MFC written in C++ (or
> .net).

The only real MFC control is CSplitterWnd control. All
the rest MFC controls are just wrappers around
standard "Common Controls" implemented in
"comctl32.dll".

> I know that these are all minor issues which could
> be circumvented, but
> where does the native look-and-feel go? Furthermore,
> this "finding the
> common subset" approach will certainly lead to a
> reduction in b)
> functionality. Simon PJ said:

I think that the reduction can be minimalized.

> Last but not least any GUI library has to be
> maintained. Win32/MFC, Gtk 
> (or Qt) and Aqua will all evolve over time. Using a
> single library like 
> Gtk reduces the burden of keeping the Haskell
> library up to date to a 
> single backend. 

I completely agree, support for single backend is
easier than support of the three: GTK, Win32 and Aqua.

Best wishes,
Krasimir

__________________________________________________
Do you Yahoo!?
Yahoo! Mail Plus - Powerful. Affordable. Sign up now.
http://mailplus.yahoo.com