scrollutil::plainnotebook Commandscrollutil::plainnotebook – Create and manipulate
    plainnotebook widgetspackage require scrollutil_tile scrollutil::plainnotebook pathName ?options?
-cursor
-caller pageIndex-closabletabs
    boolean-forgetcommand
    command-height
    screenDistance-leavecommand
    command-movabletabs
    boolean-side
    left|right-takefocus
    0|1|""|command-title text-width
    screenDistancepathName add
    window ?options?pathName addbutton
    pageIndex text ?image?pathName addlabel
    text ?image?pathName addseparatorpathName attrib ?name
    ?value name value ...??pathName cget
    optionpathName closablestate tabId
    ?boolean?pathName configure
    ?option ?value option value ...??pathName forget
    tabIdpathName hasattrib
    namepathName hastabattrib
    tabId namepathName hide
    tabIdpathName index
    tabIdpathName insert
    pos window ?options?pathName insertbutton
    pos pageIndex text ?image?pathName insertlabel
    pos text ?image?pathName insertseparator pospathName instate
    stateSpec ?script?pathName see
    tabIdpathName select
    ?tabId?pathName state
    ?stateSpec?pathName stylepathName tab
    tabId ?option ?value option value
    ...??pathName tabattrib
    tabId ?name ?value name value
    ...??pathName tabpath
    tabIdpathName tabspathName titlepathpathName unsetattrib
    namepathName unsettabattrib tabId
    namescrollutil::plainnotebook – Create and manipulate
    plainnotebook widgetspackage require scrollutil_tile scrollutil::plainnotebook pathName ?options?
scrollutil::plainnotebook command is
    provided by the Scrollutil_tile package, but not by Scrollutil.scrollutil::plainnotebook command creates a new
    window named pathName and of the class
    Plainnotebook, and makes it into a plainnotebook
    widget.  Additional options, described below, may be specified on the
    command line or in the option database to configure aspects of the
    plainnotebook widget such as its width, height, and side.  The
    scrollutil::plainnotebook 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.see subcommand.  Unlike a ttk::notebook widget
    with vertically aligned tabs, which in most themes has a suboptimal look
    and whose -height option is quite often overridden by
    the total height of the tabs, the plainnotebook widget respects the value
    of its -height option, regardless
    of the space required by the "tabs".-caller and -title widget options.  The ascend button
    displays an image whose shape resembles that of a < character.identify subcommand, the Tcl command associated with a
    plainnotebook widget provides the same subcommands as the one associated
    with a ttk::notebook.  Note that the API doesn't provide any command
    for retrieving the path name of the ttk::notebook widget contained in a
    plainnotebook, because there is no need to access that widget
    directly.  Moreover, using its options or subcommands instead of those
    of the plainnotebook widget will more often than not result in an
    unpredictable behavior.add and insert subcommands are selectable.  The ones
    created with the plainnotebook-specific subcommands addbutton and insertbutton are designed for descending to
    another plainnotebook widget, while the ones created via addlabel, addseparator, insertlabel, and insertseparator can be used as titles and
    delimiters of tab groups.-cursor
| Command-Line Name: | -caller | 
| Database Name: |  caller | 
| Database Class: |  Caller | 
The value of this option must be an integer. If it is nonnegative then the widget's parent must be a pagesman widget. In this case the value is viewed as the numerical index of an already existing page of the parent pagesman widget, and the plainnotebook's ascend button will select that page, which is assumed to be the "caller" of the current plainnotebook widget, meaning that the current plainnotebook was previously selected from within that page. For example, if the option's value is
0then pressing and later releasing the left mouse button over the ascend button will ascend back to the pagesman page of index0, which is assumed to be the page from which the user previously descended to the current one. The default is-1.
| Command-Line Name: | -closabletabs | 
| Database Name: |  closableTabs | 
| Database Class: |  ClosableTabs | 
Specifies a boolean value that determines whether the tabs created with the
addandinsertsubcommands (only) will contain theclosebtnelement. This style element is automatically created by the Scrollutil_tile package and is quite similar to theclosetabelement. See the FURTHER BINDINGS section below for details on closing the tabs with the aid of theclosebtnelement. The default is0. This option can be overridden for individual tabs with the aid of theclosablestatesubcommand.
| Command-Line Name: | -forgetcommand | 
| Database Name: |  forgetCommand | 
| Database Class: |  ForgetCommand | 
Specifies a command to be invoked when attempting to remove a tab and unmanage the associated window with the aid of the
forgetsubcommand. If the option's value is a nonempty string then it is concatenated with the path name of the plainnotebook widget and that of the window to be unmanaged, and the resulting script, which must return a boolean, is evaluated in the global scope. If the return value of this script is false then theforgetsubcommand is aborted, i.e., the tab is not removed and the associated window is not unmanaged. The default is an empty string.
| Command-Line Name: | -height | 
| Database Name: |  height | 
| Database Class: |  Height | 
If present and greater than zero, specifies the desired height of the pane area (not including internal padding) in any of the forms acceptable to
Tk_GetPixels. Otherwise, the maximum height of all panes is used. The default is0
| Command-Line Name: | -leavecommand | 
| Database Name: |  leaveCommand | 
| Database Class: |  LeaveCommand | 
Specifies a command to be invoked when attempting to leave the currently selected window by selecting a different one. If the option's value is a nonempty string then it is concatenated with the path name of the plainnotebook widget and that of the currently selected window, and the resulting script, which must return a boolean, is evaluated in the global scope. If the return value of this script is false then the operation of selecting a different window is aborted. The default is an empty string.
| Command-Line Name: | -movabletabs | 
| Database Name: |  movableTabs | 
| Database Class: |  MovableTabs | 
Specifies a boolean value that determines whether the tabs can be moved with the mouse. See the FURTHER BINDINGS section below for details. The default is
1.
| Command-Line Name: | -side | 
| Database Name: |  side | 
| Database Class: |  Side | 
Specifies on which side (
leftorright) of the widget to show the ttk::frame containing the tabs, the ascend button, and the title label. The default isleft.
| Command-Line Name: | -takefocus | 
| Database Name: |  takeFocus | 
| Database Class: |  TakeFocus | 
This option determines whether the plainnotebook widget accepts the focus during keyboard traversal. It is almost identical to the standard option of the same name (see the options manual entry for details). The only difference is that not the plainnotebook widget itself but the scrollableframe contained in it will receive the focus during keyboard traversal with the standard keys (
TabandShift-Tab). The default is"ttk::takefocus"(just like for ttk::notebook and several other Tk themed widgets).
| Command-Line Name: | -title | 
| Database Name: |  title | 
| Database Class: |  Title | 
Specifies the text to be displayed in the plainnotebook's title label, which is a ttk::label widget of the style
PnbTitle.TLabel. The font used for this style is derived fromTkDefaultFontby increasing the latter's size by a factor of 1.2. To set a different font, use thettk::stylecommand or retrieve the path name of this widget with thetitlepathsubcommand and then invoke... configure -font ....
| Command-Line Name: | -width | 
| Database Name: |  width | 
| Database Class: |  Width | 
If present and greater than zero, specifies the desired width of the pane area (not including internal padding) in any of the forms acceptable to
Tk_GetPixels. Otherwise, the maximum width of all panes is used. The default is0
"@x,y",
    the coordinates are expected to be relative to the plainnotebook
    window.scrollutil::plainnotebook command creates a new
      Tcl command whose name is pathName.  This
      command may be used to invoke various operations on the widget.  It
      has the following general form:
      pathName option ?arg arg ...?
option and the args determine
    the exact behavior of the command.  The following commands are
    possible for plainnotebook widgets:pathName add window
        ?options?window is currently managed by the notebook but
        hidden, the subcommand restores it to its previous position.  This
        holds equally true for the non-selectable (dummy) windows associated
        with the tabs created with the addbutton, addlabel, addseparator, insertbutton, insertlabel, and insertseparator subcommands.  If
        window is not yet managed by the notebook then the
        corresponding tab will be a ttk::radiobutton widget of a toolbutton
        style (Page.Toolbutton or
        ClosablePage.Toolbutton, depending on the value of the
        -closabletabs
        option).pathName addbutton
        pageIndex text ?image?Desc.Toolbutton) that displays, besides the
        specified text and optional
        image, the descend element,
        whose shape resembles that of a > character.  This style
        element is automatically created by the Scrollutil_tile package. 
        Its size depends on the display's scaling percentage (100,
        125, 150, 175, or
        200), while its foreground color is theme-specific and is
        updated whenever the theme changes.  The return value is the path
        name of the above-mentioned ttk::button widget.pageIndex, which must be a nonnegative integer,
        specifies the numerical index of a page within the pagesman widget that
        will be selected when invoking the toolbutton.  It is not expected
        that at the time this subcommand is invoked, the page identified by
        pageIndex already exists; it may be created and
        added to the pagesman widget later.-caller option, makes it easy to to write
        applications in which the user can descend from a plainnotebook to
        another one within a common pagesman parent with a single mouse click
        and switch back in the same way to the original one.  For example,
        if the two plainnotebook widgets have the page indices 0
        and 1 then all you need is to pass the page index
        1 to the first plainnotebook's
        addbutton subcommand and set the
        -caller option of the second one to the page index
        0.pathName addlabel
        text ?image?PnbLabel.TLabel that displays the specified
        text and optional image, and is
        typically used as a title of a group of tabs.  The font used for
        this style is derived from TkDefaultFont by
        increasing the latter's size by a factor of 1.2 and can be changed with
        the ttk::style command.  The return value
        is the path name of the above-mentioned ttk::label widget; you can use
        it, e.g., to override the style's font for this particular label
        via  ... configure -font ....pathName
        addseparatorpathName attrib
        ?name ?value name value ...??name is specified, the command returns a list of
        pairs, each of which contains the name and the value of an attribute
        for pathName.  If name is
        specified with no value, then the command returns
        the value of the one named attribute, or an empty string if no
        corresponding value exists (you can use the hasattrib subcommand to distinguish this
        case from the one that the value of an existing attribute is an
        empty string).  If one or more
        name-value pairs are specified,
        then the command sets the given widget attribute(s) to the given
        value(s); in this case the return value is an empty string.  Each
        name may be an arbitrary string.pathName cget
        optionoption, which may have any of the values accepted
        by the scrollutil::plainnotebook command.pathName
        closablestate tabId ?boolean?closebtn
        element in the tab specified by tabId.  The
        optional argument is only supported for tabs created via
        add or insert.  This subcommand overrides the
        -closabletabs
        option for the specified tab.pathName configure
        ?option ?value option value
        ...??option is specified, the command returns a
        list describing all of 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 return value is an empty
        string.  option may have any of the values
        accepted by the scrollutil::plainnotebook
        command.pathName forget
        tabIdpathName hasattrib
        name1 if the attribute name
        exists and 0 otherwise.pathName
        hastabattrib tabId name1 if the attribute name
        for the tab given by tabId exists and
        0 otherwise.pathName hide
        tabIdpathName index
        tabIdpathName insert
        pos window ?options?window is already managed by the notebook, the
        subcommand moves it to the specified position.  This holds equally
        true for the non-selectable (dummy) windows associated with the tabs
        created with the addbutton, addlabel, addseparator, insertbutton, insertlabel, and insertseparator subcommands.  If
        window is not yet managed by the notebook then the
        corresponding tab will be a ttk::radiobutton widget of a toolbutton
        style (Page.Toolbutton or
        ClosablePage.Toolbutton, depending on the value of the
        -closabletabs
        option).pathName
        insertbutton pos pageIndex text
        ?image?Desc.Toolbutton) that displays, besides
        the specified text and optional
        image, the descend element, at
        the specified position.  The details are quite similar to the ones
        regarding the addbutton
        subcommand.pathName
        insertlabel pos text ?image?PnbLabel.TLabel that displays the specified
        text and optional image, at the
        specified position.  The details are quite similar to the ones
        regarding the addlabel
        subcommand.pathName
        insertseparator posaddseparator subcommand.pathName instate
        stateSpec ?script?pathName see
        tabIdtabId becomes visible in
        it.  Note that when a tab gets selected, this command is
        automatically invoked for it, in order to make that tab visible.pathName select
        ?tabId?pathName state
        ?stateSpec?pathName
        style"Plainnotebook.TNotebook".  For Tk themed widgets
        this subcommand was introduced in Tk 8.7a4, but the plainnotebook
        widget provides it for all supported Tk versions.pathName tab tabId
        ?option ?value option value
        ...??pathName tabattrib
        tabId ?name ?value name value
        ...??tabId.  If no name is
        specified, the command returns a list of pairs, each of which contains
        the name and the value of an attribute for the tab.  If
        name is specified with no
        value, then the command returns the value of the
        one named tab attribute, or an empty string if no corresponding value
        exists (you can use the hastabattrib subcommand to distinguish
        this case from the one that the value of an existing tab
        attribute is an empty string).  If one or more
        name-value pairs are specified,
        then the command sets the given tab attribute(s) to the given
        value(s); in this case the return value is an empty string.  Each
        name may be an arbitrary string.pathName tabpath
        tabIdpathName tabspathName
        titlepathPnbTitle.TLabel.pathName
        unsetattrib namename.  Returns an
        empty string.pathName
        unsettabattrib tabId namename for the tab given by
        tabId.  Returns an empty string.<<NotebookTabChanged>>
    virtual event.  This holds true for plainnotebook widgets, too.<<Button3>> as
      <Button-3> for all windowing systems and
      additionally as <Control-Button-1> for Mac OS
      X/11+.  If this event occurs over a tab of a plainnotebook whose
      disabled widget state flag is not set, and the Tk
      version is 8.5a2 or later, then the widget generates
      a <<MenuItemsRequested>> virtual event,
      by invoking    event generate  with the
      -data option set to a list consisting of the path
      name of an empty pop-up menu and the numerical index of the tab in
      question.  (The support for this option was introduced in Tk
      8.5a2.)  If the application creates a binding for this virtual
      event, the binding script can access the user data as the value of the
      %d field, with the goal to populate the menu with
      application-specific entries.  Note that the pop-up menu is posted
      with a delay of 100 ms, to make sure that it will appear readily
      populated by the application.
      The following example provides a pop-up menu item for closing the tabs
      of a plainnotebook widget $nb:
bind $nb <<MenuItemsRequested>> { populateMenu %W %d } proc populateMenu {nb data} { foreach {menu tabIdx} $data {} $menu add command -label "Close Tab" -command [list $nb forget $tabIdx] }
<<NotebookTabMoved>> and
    <<NotebookTabClosed>>.add and insert subcommands.  A mouse wheel
        tick selects the selectable tab of state normal
        cyclically following/preceding the currently selected one.  (Note
        that the same effect can also be achieved with the keys
        Down, Up, Control-Tab, and
        Control-Shift-Tab.)  On the windowing system
        aqua, if the Option key is down while
        the mouse wheel is being rotated then a wheel tick selects the 10'th
        selectable tab of state normal cyclically
        following/preceding the currently selected one (modulo the number of
        selectable tabs).  The same holds true on the windowing systems
        x11 and win32 if the Tk version
        is 8.7a4 or later and the mouse wheel is rotated with the
        Alt key down.closebtn element
        (if any) and then dragged outside that tab then, provided that the
        value of the widget's -movabletabs option is true, the mouse
        cursor takes on the shape of an up/down arrow, indicating that the tab
        in question is being moved to another position.  This operation
        ends when mouse button 1 is released, and can be canceled by pressing
        the Escape key.  In both cases, the mouse cursor is
        reset to its original value, specified by the
        -cursor configuration option.  After releasing
        mouse button 1, the source tab is moved to the position previously
        pointed to by the arrow (provided that the action was not canceled via
        Escape).  If the Tk version is 8.5a2 or later then
        after moving the tab to its new position, the widget generates a
        <<NotebookTabMoved>> virtual event, by
        invoking  event generate  with the
        -data option set to a list consisting of the path
        name of the widget contained in the source pane and the numerical index
        of the target tab position.  (The support for this option was
        introduced in Tk 8.5a2.)closebtn element:  If mouse button 1 is
        pressed over the closebtn element (if any) of a tab
        and later released over the same element then, provided that the value
        of the tab's -state option is
        normal, the tab is closed by means of the widget's
        forget subcommand.  Recall that this operation
        can get canceled by the command specified as the value of the
        -forgetcommand option;
        if this was not the case and the Tk version is 8.5a2 or later then,
        after closing the tab, the widget generates a
        <<NotebookTabClosed>> virtual event, by
        invoking  event generate  with the
        -data option set to the path name of the widget
        contained in that tab's pane.disabled state flag is
    set then none of the above actions occur: the tabs are completely
    insensitive.