On this page:
append
delete
get-item-label
get-number
get-selection
set
set-item-label
set-selection

Inherited methods:

from vertical-panel%

get-orientation

set-orientation

from window<%>

accept-drop-files

client->screen

enable

focus

get-client-size

get-cursor

get-handle

get-height

get-label

get-plain-label

get-size

get-width

get-x

get-y

has-focus?

is-enabled?

is-shown?

on-drop-file

on-focus

on-move

on-size

on-subwindow-char

on-subwindow-event

on-superwindow-enable

on-superwindow-show

popup-menu

refresh

screen->client

set-cursor

set-label

show

from area<%>

get-graphical-min-size

get-parent

get-top-level-window

min-height

min-width

stretchable-height

stretchable-width

from subarea<%>

horiz-margin

vert-margin

from area-container<%>

add-child

after-new-child

begin-container-sequence

border

change-children

container-flow-modified

container-size

delete-child

end-container-sequence

get-alignment

get-children

place-children

reflow-container

set-alignment

spacing

Version: 4.1

tab-panel% : class?

  superclass: vertical-panel%

A tab panel arranges its subwindows in a single column, but also includes a horizontal row of tabs at the top of the panel. See also panel%.

The tab-panel% class does not implement the virtual swapping of the panel content when a new tab is selected. Instead, it merely invokes a callback procedure to indicate that a user changed the tab selection.

(new tab-panel%

 

[choices choices]

 

 

 

[parent parent]

 

 

 [

[callback callback]

 

 

 

[style style]

 

 

 

[font font]

 

 

 

[enabled enabled]

 

 

 

[vert-margin vert-margin]

 

 

 

[horiz-margin horiz-margin]

 

 

 

[border border]

 

 

 

[spacing spacing]

 

 

 

[alignment alignment]

 

 

 

[min-width min-width]

 

 

 

[min-height min-height]

 

 

 

[stretchable-width stretchable-width]

 

 

 

[stretchable-height stretchable-height]])

 

  (is-a?/c tab-panel%)

  choices : (listof label-string?)

  

parent

 

:

 

(or/c (is-a?/c frame%) (is-a?/c dialog%)

      (is-a?/c panel%) (is-a?/c pane%))

  

callback

 

:

 

((is-a?/c tab-panel%) (is-a?/c control-event%)

 . -> . any)

 

 

 

=

 

(lambda (b e) (void))

  style : (listof (one-of/c 'no-border 'deleted)) = null

  font : (is-a?/c font%) = normal-control-font

  enabled : any/c = #t

  vert-margin : (integer-in 0 1000) = 0

  horiz-margin : (integer-in 0 1000) = 0

  border : (integer-in 0 1000) = 0

  spacing : (integer-in 0 1000) = 0

  

alignment

 

:

 

(list/c (one-of/c 'left 'center 'right)

        (one-of/c 'top 'center 'bottom))

 

 

 

=

 

'(center top)

  min-width : (integer-in 0 10000) = graphical-minimum-width

  min-height : (integer-in 0 10000) = graphical-minimum-height

  stretchable-width : any/c = #t

  stretchable-height : any/c = #t

Creates a tab pane, where the choices list specifies the tab labels.

Each string in choices can contain an ampersand, which (in the future) may create a mnemonic for clicking the corresponding tab. A double ampersand is converted to a single ampersand.

The callback procedure is called (with the event type 'tab-panel) when the user changes the tab selection.

If the style list includes 'no-border, no border is drawn around the panel content. If style includes 'deleted, then the tab panel is created as hidden, and it does not affect its parent’s geometry; the tab panel can be made active later by calling parent’s add-child method.

The font argument determines the font for the control. For information about the enabled argument, see window<%>. For information about the horiz-margin and vert-margin arguments, see subarea<%>. For information about the min-width, min-height, stretchable-width, and stretchable-height arguments, see area<%>.

(send a-tab-panel append choice)  void?

  choice : label-string?

Adds a tab to the right end of panel’s top row of tabs.

The label string choice can contain &, which (in the future) may create a mnemonic for clicking the new tab. A && is converted to &.

(send a-tab-panel delete n)  void?

  n : exact-nonnegative-integer?

Deletes an existing tab. If n is equal to or larger than the number of tabs on the panel, an exn:fail:contract exception is raised.

(send a-tab-panel get-item-label n)  string?

  n : exact-nonnegative-integer?

Gets the label of a tab by position. Tabs are numbered from 0. If n is equal to or larger than the number of tabs in the panel, an exn:fail:contract exception is raised.

(send a-tab-panel get-number)  exact-nonnegative-integer?

Returns the number of tabs on the panel.

(send a-tab-panel get-selection)

  (or/c exact-nonnegative-integer? false/c)

Returns the index (counting from 0) of the currently selected tab. If the panel has no tabs, the result is #f.

(send a-tab-panel set choices)  void?

  choices : (listof label-string?)

Removes all tabs from the panel and installs tabs with the given labels.

(send a-tab-panel set-item-label n label)  string?

  n : exact-nonnegative-integer?

  label : label-string?

Set the label for tab n to label. If n is equal to or larger than the number of tabs in the panel, an exn:fail:contract exception is raised.

(send a-tab-panel set-selection n)  void?

  n : exact-nonnegative-integer?

Sets the currently selected tab by index (counting from 0). If n is equal to or larger than the number of tabs in the panel, an exn:fail:contract exception is raised.