.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .ie \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . nr % 0 . rr F .\} .el \{\ . de IX .. .\} .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Curses::UI::Notebook 3pm" .TH Curses::UI::Notebook 3pm "2011-09-01" "perl v5.12.4" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Curses::UI::Notebook \- Create and manipulate notebook widgets. .SH "CLASS HIERARCHY" .IX Header "CLASS HIERARCHY" .Vb 5 \& Curses::UI::Widget \& | \& +\-\-\-\-Curses::UI::Container \& | \& +\-\-\-\-Curses::UI::Notebook .Ve .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 3 \& use Curses::UI; \& my $cui = new Curses::UI; \& my $win = $cui\->add(undef, \*(AqWindow\*(Aq); \& \& my $notebook = $win\->add(undef, \*(AqNotebook\*(Aq); \& my $page1 = $notebook\->add_page(\*(Aqpage 1\*(Aq); \& $page1\->add( \& undef, \*(AqLabel\*(Aq, \& \-x => 15, \& \-y => 6, \& \-text => "Page #1.", \& ); \& my $page2 = $notebook\->add_page(\*(Aqpage 2\*(Aq); \& $page2\->add( \& undef, \*(AqLabel\*(Aq, \& \-x => 15, \& \-y => 6, \& \-text => "Page #2.", \& ); \& my $page3 = $notebook\->add_page(\*(Aqpage 3\*(Aq, \-on_activate => \e&sub ); \& $page3\->add( \& undef, \*(AqLabel\*(Aq, \& \-x => 15, \& \-y => 6, \& \-text => "Page #3.", \& ); \& $notebook\->focus; \& $cui\->mainloop; .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" This package implements a \fInotebook widget\fR similar to that found in Motif. A \fInotebook\fR holds several windows, or \fIpages\fR, only one of which is visible at any given time; tabs at the top of the widget list the pages that are available. In this way, a great deal of information can be fit into a relatively small screen area. [Windows users might recognize this as a \fItabbed dialog\fR.] .SH "STANDARD OPTIONS" .IX Header "STANDARD OPTIONS" \&\fB\-x\fR, \fB\-y\fR, \fB\-width\fR, \fB\-height\fR, \&\fB\-pad\fR, \fB\-padleft\fR, \fB\-padright\fR, \fB\-padtop\fR, \fB\-padbottom\fR, \&\fB\-ipad\fR, \fB\-ipadleft\fR, \fB\-ipadright\fR, \fB\-ipadtop\fR, \fB\-ipadbottom\fR, \&\fB\-border\fR, \fB\-sbborder\fR, \&\fB\-bg\fR, \fB\-fg\fR, \&\fB\-intellidraw\fR, \&\fB\-onchange\fR, \fB\-onblur\fR. .PP See Curses::UI::Widget for a discussion of each of these options. .PP Note that \fB\-border\fR is enabled and both \fB\-ipadleft\fR and \fB\-ipadright\fR are set to \f(CW1\fR by default when creating notebook objects. .SH "WIDGET-SPECIFIC OPTIONS" .IX Header "WIDGET-SPECIFIC OPTIONS" .IP "\(bu" 4 \&\fB\-bindings\fR < \s-1HASHREF\s0 > .Sp The keys in this hash reference are keystrokes and the values are routines to which they should be bound. In the event a key is empty, the corresponding routine will become the default routine that \&\fBprocess_bindings\fR applies to unmatched keystrokes it receives. .Sp By default, the following mappings are used: .Sp .Vb 6 \& KEY ROUTINE \& \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- \-\-\-\-\-\-\-\-\-\- \& KEY_HOME, Ctrl\-A first_page \& KEY_END, Ctrl\-E last_page \& KEY_NPAGE, Ctrl\-N next_page \& KEY_PPAGE, Ctrl\-P prev_page .Ve .IP "\(bu" 4 \&\fB\-routines\fR < \s-1HASHREF\s0 > .Sp The keys in this hash reference are routines and the values are either scalar values or code references. \fBprocess_bindings\fR maps keystrokes to routines and then to either a scalar value, which it returns, or a code reference, which it executes. .Sp By default, the following mappings are used: .Sp .Vb 6 \& ROUTINE ACTION \& \-\-\-\-\-\-\-\-\-\- \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- \& first_page make first page active \& last_page make last page active \& next_page make next page active \& prev_page make previous page active .Ve .IP "\(bu" 4 \&\fB\-wraparound\fR < \s-1BOOLEAN\s0 > .Sp If \s-1BOOLEAN\s0 has a true value, wraparound is enabled. This means that advancing to the next page will cycle from the last back to the first page and similarly, advancing to the previous page will cycle from the first back to the last page. .Sp By default, it is true. .SH "METHODS" .IX Header "METHODS" .IP "\(bu" 4 \&\fBnew\fR ( \s-1OPTIONS\s0 ) .Sp Constructs a new notebook object using options in the hash \s-1OPTIONS\s0. .IP "\(bu" 4 \&\fBlayout\fR ( ) .Sp Lays out the notebook object, makes sure it fits on the available screen, and creates the curses windows for the border / tab labels as well as the effective drawing area. .IP "\(bu" 4 \&\fBdraw\fR ( \s-1BOOLEAN\s0 ) .Sp Draws the notebook object along with the active page's window. If \s-1BOOLEAN\s0 is true, the screen is not updated after drawing. .Sp By default, \s-1BOOLEAN\s0 is true so the screen is updated. .IP "\(bu" 4 \&\fBintellidraw\fR ( ) .IP "\(bu" 4 \&\fBfocus\fR ( ) .IP "\(bu" 4 \&\fBonFocus\fR ( \s-1CODEREF\s0 ) .IP "\(bu" 4 \&\fBonBlur\fR ( \s-1CODEREF\s0 ) .Sp See Curses::UI::Widget for explanations of these methods. .IP "\(bu" 4 \&\fBadd_page\fR ( \s-1PAGE\s0 [ , \-on_activate => sub_ref ] [, \-on_delete => ] ) .Sp Adds the specified page to the notebook object and creates an associated window object. Returns the window object or undef on failure. .Sp Note: the add fails if the page would otherwise cause the tab window to overflow or is already part of the notebook object. .Sp The \f(CW\*(C`\-on_activate\*(C'\fR parameter specifies an optional call-back that will be invoked when the page is activated. This call-back will be called with the notebook widget and page name as parameter. .Sp Likewise for \f(CW\*(C`\-on_delete\*(C'\fR call-back. This one is invoked when the page is deleted. .IP "\(bu" 4 \&\fBdelete_page\fR ( \s-1PAGE\s0 ) .Sp Deletes the specified page from the notebook object and destroys its associated window object. If the page was active, the first page is made active. .IP "\(bu" 4 \&\fBactive_page\fR ( ) .Sp Returns the currently active page in the notebook object. .IP "\(bu" 4 \&\fBfirst_page\fR ( ) .Sp Returns the first page in the notebook object. .IP "\(bu" 4 \&\fBlast_page\fR ( ) .Sp Returns the last page in the notebook object. .IP "\(bu" 4 \&\fBprev_page\fR ( ) .Sp Returns the previous page in the notebook object. .IP "\(bu" 4 \&\fBnext_page\fR ( ) .Sp Returns the next page in the notebook object. .IP "\(bu" 4 \&\fBactivate_page\fR ( \s-1PAGE\s0 ) .Sp Makes the specified page in the notebook object active and returns it, redrawing the notebook object in the process. .IP "\(bu" 4 \&\fBmouse_button1\fR ( ) .Sp Processes mouse button #1 clicks. If the user left-clicks on one of the tabs, \fBactivate_page\fR is called with the corresponding page to make it active; otherwise, the click is passed along to the active window. .SH "SEE ALSO" .IX Header "SEE ALSO" Curses::UI, Curses::UI::Container, Curses::UI::Widget .SH "AUTHOR" .IX Header "AUTHOR" George A. Theall, .SH "COPYRIGHT AND LICENSE" .IX Header "COPYRIGHT AND LICENSE" Copyright (c) 2004, George A. Theall. All rights reserved. .PP This script is free software; you can redistribute it and/or modify it under the same terms as Perl itself.