Provided by: blt-dev_2.5.3+dfsg-4_amd64 bug


       container - Widget to contain a foreign window.


       container pathName ?options?


       The  container  widget  lets you swallow another X11/Win32 toplevel or embed an X11 window
       from a foreign application into your Tk application.  The  foreign  window  is  reparented
       inside  of  the widget. You can then place and arrange the container just as you would any
       Tk widget.


       Notebooks are a popular graphical paradigm.  They allow you to organize many windows in  a
       single widget.  For example, you might have an application the displays several X-Y graphs
       at the same time.  Typically, you can't pack the graphs into the same frame  because  they
       are too large.  The other alternative is to pack the graphs into several toplevel widgets,
       allowing them to overlap on the screen.  The problem is that all  the  different  toplevel
       windows clutter the screen and are difficult to manage.

       The  container widget lets organize your application by displaying each graph as a page in
       a folder of a notebook.  Only one page is visible at a time. When you click on a tab,  the
       folder  (graph)  corresponding  to  the  tab  is  displayed  in the container widget.  The
       container also lets you temporarily tear  pages  out  of  the  notebook  into  a  separate
       toplevel widget, and put them back in the container later.  For example, you could compare
       two graphs side-by-side by tearing them out, and then replace them when you are finished.

       A container may contain an unlimited number of folders.  If there are  too  many  tabs  to
       view,  you  can  arrange them as multiple tiers or scroll the tabs. The container uses the
       conventional Tk scrollbar syntax, so you can attach a scrollbar too.


       You create a container widget with the container command.

              # Create a new container
              container .c

       A new Tcl command .c is also created.  This command can be used to query  and  modify  the
       container.   For  example,  to change the default borderwidth, you use the new command and
       the container's configure operation.

              # Change the default font.
              .c configure -borderwidth 2

       You can then add folders using the insert operation.

              # Create a new folder "f1"
              .c coinsert 0 "f1"

       This inserts the new tab named "f1" into the container.  The index 0 indicates location to
       insert  the  new  tab.   You  can also use the index end to append a tab to the end of the
       container.  By default, the text of the tab is the name of the tab.  You can  change  this
       by configuring the -text option.

              # Change the label of "f1"
              .ts tab configure "f1" -label "Tab #1"

       The insert operation lets you add one or more folders at a time.

              .ts insert end "f2" -label "Tab #2" "f3" "f4"

       The  tab  on  each  folder contains a label.  A label may display both an image and a text
       string.  You can reconfigure the tab's  attributes  (foreground/background  colors,  font,
       rotation, etc) using the tab configure operation.

              # Add an image to the label of "f1"
              set image [image create photo -file stopsign.gif]
              .ts tab configure "f1" -image $image
              .ts tab configure "f2" -rotate 90

       Each  folder  may  contain an embedded widget to represent its contents.  The widget to be
       embedded must be a child of the container widget.  Using the -window option,  you  specify
       the name of widget to be embedded.  But don't pack the widget, the container takes care of
       placing and arranging the widget for you.

              graph .ts.graph
              .ts tab configure "f1" -window ".ts.graph" \
                  -fill both -padx 0.25i -pady 0.25i

       The size of the folder is determined the sizes of the  Tk  widgets  embedded  inside  each
       folder.   The  folder  will  be  as  wide  as the widest widget in any folder. The tallest
       determines the height.  You can use the tab's -pagewidth and -pageheight options  override

       Other  options  control  how the widget appears in the folder.  The -fill option says that
       you wish to have the widget stretch to fill the available space in the folder.

              .ts tab configure "f1" -fill both -padx 0.25i -pady 0.25i

       Now when you click the left mouse button on "f1", the  graph  will  be  displayed  in  the
       folder.  It will be automatically hidden when another folder is selected.  If you click on
       the right mouse button, the embedded widget will be moved into a toplevel  widget  of  its
       own.  Clicking again on the right mouse button puts it back into the folder.

       If  you  want  to share a page between two different folders, the -command option lets you
       specify a Tcl command to be invoked whenever the folder is selected.  You  can  reset  the
       -window option for the tab whenever it's clicked.

              .ts tab configure "f2" -command {
                  .ts tab configure "f2" -window ".ts.graph"
              .ts tab configure "f1" -command {
                  .ts tab configure "f1" -window ".ts.graph"

       If  you  have many folders, you may wish to stack tabs in multiple tiers.  The container's
       -tiers option requests a maximum number of tiers.   The default is one tier.

              .ts configure -tiers 2

       If the tabs can fit in less tiers, the widget will use that many.  Whenever there are more
       tabs  than  can  be  displayed  in  the  maximum  number  of  tiers,  the  container  will
       automatically let you scroll the tabs.  You can even attach a scrollbar to the container.

              .ts configure -scrollcommand { .sbar set }  -scrollincrement 20
              .sbar configure -orient horizontal -command { .ts view }

       By default tabs are along the top of the container from left to right.  But  tabs  can  be
       placed on any side of the container using the -side option.

              # Arrange tabs along the right side of the container.
              .ts configure -side right -rotate 270


       The container command creates a new window using the pathName argument and makes it into a
       container widget.

              container pathName ?option value?...

       Additional options may be specified on the command line  or  in  the  option  database  to
       configure  aspects  of  the  container  such  as  its colors, font, text, and relief.  The
       container command returns its pathName argument.  At the time  this  command  is  invoked,
       there must not exist a window named pathName, but pathName's parent must exist.

       When  first  created,  a  new container contains no tabs.  Tabs are added or deleted using
       widget operations described below. It is not necessary for all the tabs to be displayed in
       the  container  window at once; commands described below may be used to change the view in
       the window.  Containers allow scrolling of tabs using  the  -scrollcommand  option.   They
       also  support  scanning  (see the scan operation).  Tabs may be arranged along any side of
       the container window using the -side option.

       The size of the container window is determined the number of tiers of tabs and  the  sizes
       of  the Tk widgets embedded inside each folder.  The widest widget determines the width of
       the folder. The tallest determines the height.  If no folders contain an embedded  widget,
       the size is determined solely by the size of the tabs.

       You can override either dimension with the container's -width and -height options.


       All  container  operations are invoked by specifying the widget's pathname, the operation,
       and any arguments that pertain to that operation.  The general form is:

                pathName operation ?arg arg ...?

       Operation and the args determine  the  exact  behavior  of  the  command.   The  following
       operations are available for container widgets:

       pathName cget option
              Returns  the current value of the configuration option given by option.  Option may
              have any of the values accepted by the configure operation described below.

       pathName configure ?option? ?value option value ...?
              Query or modify  the  configuration  options  of  the  widget.   If  no  option  is
              specified,  returns  a  list describing all the available options for pathName (see
              Tk_ConfigureInfo for information on  the  format  of  this  list).   If  option  is
              specified  with  no value, then the command returns a list describing the one named
              option (this list will be identical to  the  corresponding  sublist  of  the  value
              returned  if  no  option  is  specified).   If  one  or more option-value pairs are
              specified, then the command modifies the given widget option(s) to have  the  given
              value(s);   in this case the command returns an empty string.  Option and value are
              described below:

              -background color
                     Sets the border color of the container.

              -borderwidth pixels
                     Sets the width of the 3-D border around the outside edge of the widget.  The
                     -relief option determines how the border is to be drawn.  The default is 2.

              -command pattern
                     Specifies to search for a window whose WM_COMMAND property matches the given
                     pattern (X11 only).  If no windows, or more than  one  window,  matches  the
                     pattern,  an  error  is  generated.  If pattern is the empty string, then no
                     command search is performed.  The default is "".

              -cursor cursor
                     Specifies the widget's cursor.  The default cursor is "".

              -height pixels
                     Specifies the requested height of widget.  If pixels is 0, then  the  height
                     is height the embedded window plus the specified borderwidth. The default is

              -highlightbackground  color
                     Sets the color to  display  in  the  traversal  highlight  region  when  the
                     container does not have the input focus.

              -highlightcolor color
                     Sets  the  color  to use for the traversal highlight rectangle that is drawn
                     around the widget when it has the input focus.  The default is black.

              -highlightthickness pixels
                     Sets the width of the highlight rectangle to draw around the outside of  the
                     widget  when  it has the input focus. Pixels is a non-negative value and may
                     have any of the forms acceptable to Tk_GetPixels.  If the value is zero,  no
                     focus highlight is drawn around the widget.  The default is 2.

              -name pattern
                     Specifies  to  search  for a window whose WM_NAME property matches the given
                     pattern (X11 only).  If no windows, or more than  one  window,  matches  the
                     pattern,  an  error  is  generated.  If pattern is the empty string, then no
                     name search is performed.  The default is "".

              -relief relief
                     Specifies the 3-D effect for the container widget.  Relief specifies how the
                     container  should  appear  relative  to  widget  that it is packed into; for
                     example, raised means the container should appear to protrude.  The  default
                     is sunken.

              -takefocus focus
                     Provides  information  used  when moving the focus from window to window via
                     keyboard traversal (e.g., Tab and Shift-Tab).  If focus  is  0,  this  means
                     that  this  window  should be skipped entirely during keyboard traversal.  1
                     means that the this window should always receive the input focus.  An  empty
                     value  means  that  the  traversal  scripts  decide  whether to focus on the
                     window.  The default is 1.

              -width pixels
                     Specifies the requested width of the widget.  If pixels is 0, then the width
                     is the width the embedded window and the specified borderwidth.  The default
                     is 0.

              -window id
                     Specifies the foreign embedded using its path or X window id.

       pathName find -command|-name pattern
              Searches for all windows that match the given pattern.  If the -command  switch  is
              given,  all windows whose WWM_COMMAND property match pattern are returned in a list
              (X11 only).  If the -name switch is given,  all  windows  whose  WWM_NAME  property
              match pattern are returned in a list.  The list returned will contains pairs of the
              window id and the matching property.


       container, widget