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

Re: Tab Widgets?

Rikagaku <t_launey@brain.riken.go.jp> wrote:
> In article <3AD4F212.DAC2CBF@home.com>, t.fulton@home.com says...
> > Hi All,
> > 
> > Is there a WIDGET_TAB or some such function
> > that creates a tab widget?  By tab widget, 
> > I'm referring to a GUI that where you switch
> > between different windows by clicking on
> > file folder-like tabs (Much like the way one
> > can switch between "Groups" and "Build Order" 
> > in the IDL 5.4 DE)
> > 
> > Thanks in advance.
> > 
> > PS  If responding by e-mail, please send
> >     messages to fulton@dansas.usask.ca
> > 
> > 
> Hello,
> I guess there is a better way to do it but this might be a start:
> if all the child of your "Tab Widget" base are of the same size, you 
> could use the /Map keyword of widget_control to make bring a given widget 
> "to the front". All you need is a row (or column) of button, one for each 
> page of your Tab Widget, that call widget_control, page_n, /map
> This has the disadvantage of using explicit size definition to make sure 
> that the front widget hides the others or calling widget_control, 
> all_other_pages, map=0.

I think you can resolve the size problem in a general way.  Once you've
built each of the overlaid widgets (with map=0), call
Widget_Info( widget_base, /geometry) for each widget.  Determine the
largest xsize and ysize and then use Widget_Control on each widget to
set its xsize and ysize to the largest value.  I happened to try this
just yesterday for a similar problem and it seems to be working okay
(at least so far ;-).

Dave Greenwood                Email: Greenwoodde@ORNL.GOV
Oak Ridge National Lab        %STD-W-DISCLAIMER, I only speak for myself