[vwnc] Problem creating a tab-control with UIPainter

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

[vwnc] Problem creating a tab-control with UIPainter

Hubert D Wagner
Hello List Members :
I'm new to SmallTalk and not a professional programmer.

I've used UI Painters in a number of applications : RealBasic, xCode,  
etc. However, so far, UIPainter has defeated me.

I'm attempting to build a simple GUI using a single tabControl with  
two tabs. One tab will contain a Sub-canvas, a List and some Action  
buttons. The second a Sub-canvas, a scrollling Text Field and an  
Action button.
        a) I can't find a way to switch tabs in UIPainter so I can add a sub-
canvas and widgets to the second tab.
        b) Is there any way to lock down the tabControl and one sub-canvas  
along with its contents so I can move other widgets around on top  
without disturbing what's underneath?

The GUIDevGuide says, "Paint subcanvases for each page (See the  
appearanceSpec, colorsSpec,
and fontsSpec class methods in TabControlExample for examples.)"  
However there is no explicit account of how to achieve that with the  
UIPainter alone.

Do I create the window, the tabControl and Install. Then, create the  
contents of each tab in code?

I welcome all advice and comments.

Regards : Hubert Wagner

_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: [vwnc] Problem creating a tab-control with UIPainter

Steven Kelly
Hello Hubert,

As you've noticed, you can't build the internals of a tab directly in
the same painter where you place the tab. If you place widgets on top of
a tab control, they'll just end up floating around on top of the whole
tab control, rather than being embedded inside a particular tab.

Instead, in one UIPainter you build a main window, e.g. with just a tab
control. In another UIPainter, you build the contents of the first tab,
sized so the edges of the window will be matched to the inside edge of
the tab. In a 3rd UIPainter, you build the contents of the second tab,
and so on. You'll notice that each new UIPainter opens as just a new
canvas, reusing the GUI Painter Tool and Palette; clicking in different
canvases will change which is shown in the GUI Painter Tool.

You install each canvas to the same class, but with different names:
e.g. windowSpec for the main one, then name the others after the
contents of your tabs - for the TabControlExample they were
appearanceSpec, colorsSpec, fontsSpec.

You'll need to set things up so that when the user chooses a new tab,
the contents get read from the right spec - see the manuals and
TabControlExample. I'd suggest you build an example with just a few
simple widgets in each tab, before moving on to having subcanvases
inside tabs etc.

Steve

> -----Original Message-----
> From: [hidden email] [mailto:[hidden email]] On
> Behalf Of Hubert D Wagner
> Sent: 15 September 2008 17:15
> To: [hidden email]
> Subject: [vwnc] Problem creating a tab-control with UIPainter
>
> Hello List Members :
> I'm new to SmallTalk and not a professional programmer.
>
> I've used UI Painters in a number of applications : RealBasic, xCode,
> etc. However, so far, UIPainter has defeated me.
>
> I'm attempting to build a simple GUI using a single tabControl with
> two tabs. One tab will contain a Sub-canvas, a List and some Action
> buttons. The second a Sub-canvas, a scrollling Text Field and an
> Action button.
> a) I can't find a way to switch tabs in UIPainter so I can
add
> a sub-
> canvas and widgets to the second tab.
> b) Is there any way to lock down the tabControl and one
sub-

> canvas
> along with its contents so I can move other widgets around on top
> without disturbing what's underneath?
>
> The GUIDevGuide says, "Paint subcanvases for each page (See the
> appearanceSpec, colorsSpec,
> and fontsSpec class methods in TabControlExample for examples.)"
> However there is no explicit account of how to achieve that with the
> UIPainter alone.
>
> Do I create the window, the tabControl and Install. Then, create the
> contents of each tab in code?
>
> I welcome all advice and comments.
>
> Regards : Hubert Wagner
>
> _______________________________________________
> vwnc mailing list
> [hidden email]
> http://lists.cs.uiuc.edu/mailman/listinfo/vwnc

_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

[vwnc] Fwd: Problem creating a tab-control with UIPainter

Hubert D Wagner
Hello List :
I've had this comprehensive reply from Steven Kelly which I copy  
below. This settles my initial questions. And it confirms my  
impression of UIPainter.

Compared to Apple's "Interface Builder", the UIPainter seems  
primitive to say the least. Even RealBasic is easier to use. Why is  
VW so different? Is this a case of a novice missing the point or is  
this a valid criticism. If the latter, why does this situation exist.  
And does the community believe Cincom is likely to do something about  
it?

I wonder is anyone working on a way to have VW make use of a GUI  
created in, for example, Interface Builder?

Regards : Hubert Wagner

Begin forwarded message:

> From: Steven Kelly <[hidden email]>
> Date:  September 15,  2008 14:03:03 GMT-03:00
> To: [hidden email]
> Cc: Hubert D Wagner <[hidden email]>
> Subject: RE: [vwnc] Problem creating a tab-control with UIPainter
>
> Hello Hubert,
>
> As you've noticed, you can't build the internals of a tab directly in
> the same painter where you place the tab. If you place widgets on  
> top of
> a tab control, they'll just end up floating around on top of the whole
> tab control, rather than being embedded inside a particular tab.
>
> Instead, in one UIPainter you build a main window, e.g. with just a  
> tab
> control. In another UIPainter, you build the contents of the first  
> tab,
> sized so the edges of the window will be matched to the inside edge of
> the tab. In a 3rd UIPainter, you build the contents of the second tab,
> and so on. You'll notice that each new UIPainter opens as just a new
> canvas, reusing the GUI Painter Tool and Palette; clicking in  
> different
> canvases will change which is shown in the GUI Painter Tool.
>
> You install each canvas to the same class, but with different names:
> e.g. windowSpec for the main one, then name the others after the
> contents of your tabs - for the TabControlExample they were
> appearanceSpec, colorsSpec, fontsSpec.
>
> You'll need to set things up so that when the user chooses a new tab,
> the contents get read from the right spec - see the manuals and
> TabControlExample. I'd suggest you build an example with just a few
> simple widgets in each tab, before moving on to having subcanvases
> inside tabs etc.
>
> Steve
>
>> -----Original Message-----
>> From: [hidden email] [mailto:[hidden email]] On
>> Behalf Of Hubert D Wagner
>> Sent: 15 September 2008 17:15
>> To: [hidden email]
>> Subject: [vwnc] Problem creating a tab-control with UIPainter
>>
>> Hello List Members :
>> I'm new to SmallTalk and not a professional programmer.
>>
>> I've used UI Painters in a number of applications : RealBasic, xCode,
>> etc. However, so far, UIPainter has defeated me.
>>
>> I'm attempting to build a simple GUI using a single tabControl with
>> two tabs. One tab will contain a Sub-canvas, a List and some Action
>> buttons. The second a Sub-canvas, a scrollling Text Field and an
>> Action button.
>> a) I can't find a way to switch tabs in UIPainter so I can
> add
>> a sub-
>> canvas and widgets to the second tab.
>> b) Is there any way to lock down the tabControl and one
> sub-
>> canvas
>> along with its contents so I can move other widgets around on top
>> without disturbing what's underneath?
>>
>> The GUIDevGuide says, "Paint subcanvases for each page (See the
>> appearanceSpec, colorsSpec,
>> and fontsSpec class methods in TabControlExample for examples.)"
>> However there is no explicit account of how to achieve that with the
>> UIPainter alone.
>>
>> Do I create the window, the tabControl and Install. Then, create the
>> contents of each tab in code?
>>
>> I welcome all advice and comments.
>>
>> Regards : Hubert Wagner
>>
>> _______________________________________________
>> vwnc mailing list
>> [hidden email]
>> http://lists.cs.uiuc.edu/mailman/listinfo/vwnc

_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: [vwnc] Fwd: Problem creating a tab-control with UIPainter

Steven Kelly
In reply to this post by Hubert D Wagner
The UI Painter, and UI support in general, is something of a painful
subject in VW. Here's my view of the history. I guess VisualWorks 1.0
was well ahead of the curve when it offered a platform-independent GUI
with a graphical builder around 1992. In the graphical builder, very
little has changed since then. The UI support overall has slowly slipped
down the field, with occasional jumps back up to the high side of
"perfectly acceptable", e.g. when supporting a new major Windows look or
a new platform like Mac OS X.

The underlying UI framework, known both affectionately and pejoratively
as Wrapper, became increasingly crufty with age and as it tried to
stretch to graphical looks and control behavior that it hadn't been
designed for. Cincom made the decision in 2001 to start a major project,
Pollock (later renamed as Widgetry), to create a new UI framework and
tools. It was scheduled for full production release in early 2004,
including a new UI painter and tools for automatically upgrading
existing apps. In September 2007, the project was discontinued:
http://www.parcplace.net/list/vw-dev/0709/msg00062.html

no new UI painter was ever built:
http://www.parcplace.net/list/vwnc-archive/0709/msg00041.html
:-) ...and if you think I sounded annoyed, you should read the messages
from the few trusting souls who had implemented their new apps based on
pre-releases of Widgetry!

Paradoxically, I think Cincom made the right decision in both 2001 and
2007. I honestly don't know what the right decision for 2008 might be,
but I like the direction in the roadmap:
http://www.cincomsmalltalk.com/userblogs/cincom/blogView?content=roadmap

With apologies to those for whom any discussion on this just reopens old
wounds,
Steve
 
Hubert D Wagner wrote:

> Compared to Apple's "Interface Builder", the UIPainter seems
> primitive to say the least. Even RealBasic is easier to use. Why is
> VW so different? Is this a case of a novice missing the point or is
> this a valid criticism. If the latter, why does this situation exist.
> And does the community believe Cincom is likely to do something about
> it?
>
> I wonder is anyone working on a way to have VW make use of a GUI
> created in, for example, Interface Builder?
>
> Regards : Hubert Wagner
>
> > From: Steven Kelly
> >
> > Hello Hubert,
> >
> > As you've noticed, you can't build the internals of a tab directly
in

> > the same painter where you place the tab. If you place widgets on
> > top of
> > a tab control, they'll just end up floating around on top of the
> whole
> > tab control, rather than being embedded inside a particular tab.
> >
> > Instead, in one UIPainter you build a main window, e.g. with just a
> > tab
> > control. In another UIPainter, you build the contents of the first
> > tab,
> > sized so the edges of the window will be matched to the inside edge
> of
> > the tab. In a 3rd UIPainter, you build the contents of the second
tab,

> > and so on. You'll notice that each new UIPainter opens as just a new
> > canvas, reusing the GUI Painter Tool and Palette; clicking in
> > different
> > canvases will change which is shown in the GUI Painter Tool.
> >
> > You install each canvas to the same class, but with different names:
> > e.g. windowSpec for the main one, then name the others after the
> > contents of your tabs - for the TabControlExample they were
> > appearanceSpec, colorsSpec, fontsSpec.
> >
> > You'll need to set things up so that when the user chooses a new
tab,

> > the contents get read from the right spec - see the manuals and
> > TabControlExample. I'd suggest you build an example with just a few
> > simple widgets in each tab, before moving on to having subcanvases
> > inside tabs etc.
> >
> > Steve
> >
> >> -----Original Message-----
> >> From: [hidden email] [mailto:[hidden email]] On
> >> Behalf Of Hubert D Wagner
> >> Sent: 15 September 2008 17:15
> >> To: [hidden email]
> >> Subject: [vwnc] Problem creating a tab-control with UIPainter
> >>
> >> Hello List Members :
> >> I'm new to SmallTalk and not a professional programmer.
> >>
> >> I've used UI Painters in a number of applications : RealBasic,
xCode,

> >> etc. However, so far, UIPainter has defeated me.
> >>
> >> I'm attempting to build a simple GUI using a single tabControl with
> >> two tabs. One tab will contain a Sub-canvas, a List and some Action
> >> buttons. The second a Sub-canvas, a scrollling Text Field and an
> >> Action button.
> >> a) I can't find a way to switch tabs in UIPainter so I can
> > add
> >> a sub-
> >> canvas and widgets to the second tab.
> >> b) Is there any way to lock down the tabControl and one
> > sub-
> >> canvas
> >> along with its contents so I can move other widgets around on top
> >> without disturbing what's underneath?
> >>
> >> The GUIDevGuide says, "Paint subcanvases for each page (See the
> >> appearanceSpec, colorsSpec,
> >> and fontsSpec class methods in TabControlExample for examples.)"
> >> However there is no explicit account of how to achieve that with
the
> >> UIPainter alone.
> >>
> >> Do I create the window, the tabControl and Install. Then, create
the

> >> contents of each tab in code?
> >>
> >> I welcome all advice and comments.
> >>
> >> Regards : Hubert Wagner
> >>
> >> _______________________________________________
> >> vwnc mailing list
> >> [hidden email]
> >> http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
>
> _______________________________________________
> vwnc mailing list
> [hidden email]
> http://lists.cs.uiuc.edu/mailman/listinfo/vwnc

_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: [vwnc] Fwd: Problem creating a tab-control with UIPainter

Charles Adams
+1
----- Original Message -----
From: "Steven Kelly" <[hidden email]>
To: <[hidden email]>
Sent: Monday, September 15, 2008 2:53 PM
Subject: Re: [vwnc] Fwd: Problem creating a tab-control with UIPainter


> The UI Painter, and UI support in general, is something of a painful
> subject in VW. Here's my view of the history. I guess VisualWorks 1.0
> was well ahead of the curve when it offered a platform-independent GUI
> with a graphical builder around 1992. In the graphical builder, very
> little has changed since then. The UI support overall has slowly slipped
> down the field, with occasional jumps back up to the high side of
> "perfectly acceptable", e.g. when supporting a new major Windows look or
> a new platform like Mac OS X.
>
> The underlying UI framework, known both affectionately and pejoratively
> as Wrapper, became increasingly crufty with age and as it tried to
> stretch to graphical looks and control behavior that it hadn't been
> designed for. Cincom made the decision in 2001 to start a major project,
> Pollock (later renamed as Widgetry), to create a new UI framework and
> tools. It was scheduled for full production release in early 2004,
> including a new UI painter and tools for automatically upgrading
> existing apps. In September 2007, the project was discontinued:
> http://www.parcplace.net/list/vw-dev/0709/msg00062.html
>
> no new UI painter was ever built:
> http://www.parcplace.net/list/vwnc-archive/0709/msg00041.html
> :-) ...and if you think I sounded annoyed, you should read the messages
> from the few trusting souls who had implemented their new apps based on
> pre-releases of Widgetry!
>
> Paradoxically, I think Cincom made the right decision in both 2001 and
> 2007. I honestly don't know what the right decision for 2008 might be,
> but I like the direction in the roadmap:
> http://www.cincomsmalltalk.com/userblogs/cincom/blogView?content=roadmap
>
> With apologies to those for whom any discussion on this just reopens old
> wounds,
> Steve
>
> Hubert D Wagner wrote:
>> Compared to Apple's "Interface Builder", the UIPainter seems
>> primitive to say the least. Even RealBasic is easier to use. Why is
>> VW so different? Is this a case of a novice missing the point or is
>> this a valid criticism. If the latter, why does this situation exist.
>> And does the community believe Cincom is likely to do something about
>> it?
>>
>> I wonder is anyone working on a way to have VW make use of a GUI
>> created in, for example, Interface Builder?
>>
>> Regards : Hubert Wagner
>>
>> > From: Steven Kelly
>> >
>> > Hello Hubert,
>> >
>> > As you've noticed, you can't build the internals of a tab directly
> in
>> > the same painter where you place the tab. If you place widgets on
>> > top of
>> > a tab control, they'll just end up floating around on top of the
>> whole
>> > tab control, rather than being embedded inside a particular tab.
>> >
>> > Instead, in one UIPainter you build a main window, e.g. with just a
>> > tab
>> > control. In another UIPainter, you build the contents of the first
>> > tab,
>> > sized so the edges of the window will be matched to the inside edge
>> of
>> > the tab. In a 3rd UIPainter, you build the contents of the second
> tab,
>> > and so on. You'll notice that each new UIPainter opens as just a new
>> > canvas, reusing the GUI Painter Tool and Palette; clicking in
>> > different
>> > canvases will change which is shown in the GUI Painter Tool.
>> >
>> > You install each canvas to the same class, but with different names:
>> > e.g. windowSpec for the main one, then name the others after the
>> > contents of your tabs - for the TabControlExample they were
>> > appearanceSpec, colorsSpec, fontsSpec.
>> >
>> > You'll need to set things up so that when the user chooses a new
> tab,
>> > the contents get read from the right spec - see the manuals and
>> > TabControlExample. I'd suggest you build an example with just a few
>> > simple widgets in each tab, before moving on to having subcanvases
>> > inside tabs etc.
>> >
>> > Steve
>> >
>> >> -----Original Message-----
>> >> From: [hidden email] [mailto:[hidden email]] On
>> >> Behalf Of Hubert D Wagner
>> >> Sent: 15 September 2008 17:15
>> >> To: [hidden email]
>> >> Subject: [vwnc] Problem creating a tab-control with UIPainter
>> >>
>> >> Hello List Members :
>> >> I'm new to SmallTalk and not a professional programmer.
>> >>
>> >> I've used UI Painters in a number of applications : RealBasic,
> xCode,
>> >> etc. However, so far, UIPainter has defeated me.
>> >>
>> >> I'm attempting to build a simple GUI using a single tabControl with
>> >> two tabs. One tab will contain a Sub-canvas, a List and some Action
>> >> buttons. The second a Sub-canvas, a scrollling Text Field and an
>> >> Action button.
>> >> a) I can't find a way to switch tabs in UIPainter so I can
>> > add
>> >> a sub-
>> >> canvas and widgets to the second tab.
>> >> b) Is there any way to lock down the tabControl and one
>> > sub-
>> >> canvas
>> >> along with its contents so I can move other widgets around on top
>> >> without disturbing what's underneath?
>> >>
>> >> The GUIDevGuide says, "Paint subcanvases for each page (See the
>> >> appearanceSpec, colorsSpec,
>> >> and fontsSpec class methods in TabControlExample for examples.)"
>> >> However there is no explicit account of how to achieve that with
> the
>> >> UIPainter alone.
>> >>
>> >> Do I create the window, the tabControl and Install. Then, create
> the
>> >> contents of each tab in code?
>> >>
>> >> I welcome all advice and comments.
>> >>
>> >> Regards : Hubert Wagner
>> >>
>> >> _______________________________________________
>> >> vwnc mailing list
>> >> [hidden email]
>> >> http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
>>
>> _______________________________________________
>> vwnc mailing list
>> [hidden email]
>> http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
>
> _______________________________________________
> vwnc mailing list
> [hidden email]
> http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
>
_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: [vwnc] Fwd: Problem creating a tab-control with UIPainter

Andre Schnoor
In reply to this post by Steven Kelly

Am 15.09.2008 um 21:53 schrieb Steven Kelly:

> I like the direction in the roadmap:
> http://www.cincomsmalltalk.com/userblogs/cincom/blogView?content=roadmap

Yes, this roadmap is indeed a very good summary of the most important  
things to do and it shows that Cincom are listening to their customers  
(which obviously led to this roadmap in the first place).

It also shows what a comprehensive platform VisualWorks actually is. I  
would not expect all improvements to happen immediately, but the  
priorities are set right, IMO, and I'm confident this is the right way  
to go.

Andre

BTW: I had my issues with UIPainter too, eventually changed it to my  
needs and now got used to it. The best about VisualWorks is that  
everything is open to change. It might not be the easy way, but at  
least it /is/ a way, while in other environments one would be locked  
out, always depending on the vendor to do something.

_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc