.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16) .\" .\" 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 "Prima::DetailedList 3" .TH Prima::DetailedList 3 "2009-02-24" "perl v5.14.2" "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" Prima::DetailedList \- a multi\-column list viewer with controlling header widget. .SH "SYNOPSIS" .IX Header "SYNOPSIS" use Prima::DetailedList; .PP .Vb 9 \& my $l = $w\-> insert( \*(AqPrima::DetailedList\*(Aq, \& columns => 2, \& headers => [ \*(AqColumn 1\*(Aq, \*(AqColumn 2\*(Aq ], \& items => [ \& [\*(AqRow 1, Col 1\*(Aq, \*(AqRow 1, Col 2\*(Aq], \& [\*(AqRow 2, Col 1\*(Aq, \*(AqRow 2, Col 2\*(Aq] \& ], \& ); \& $l\-> sort(1); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" Prima::DetailedList is a descendant of Prima::ListViewer, and as such provides a certain level of abstraction. It overloads format of items in order to support multi-column ( 2D ) cell span. It also inserts Prima::Header widget on top of the list, so the user can interactively move, resize and sort the content of the list. The sorting mechanism is realized inside the package; it is activated by the mouse click on a header tab. .PP Since the class inherits Prima::ListViewer, some functionality, like 'item search by key', or \f(CW\*(C`get_item_text\*(C'\fR method can not operate on 2D lists. Therefore, mainColumn property is introduced, that selects the column representing all the data. .SH "API" .IX Header "API" .SS "Events" .IX Subsection "Events" .IP "Sort \s-1COLUMN\s0, \s-1DIRECTION\s0" 4 .IX Item "Sort COLUMN, DIRECTION" Called inside sort method, to facilitate custom algorithms of sorting. If the callback procedure is willing to sort by \s-1COLUMN\s0 index, then it must call \f(CW\*(C`clear_event\*(C'\fR, to signal the event flow stop. The \s-1DIRECTION\s0 is a boolean flag, specifying whether the sorting must be performed is ascending ( 1 ) or descending ( 0 ) order. .Sp The callback procedure must operate on the internal storage of \f(CW\*(C`{items}\*(C'\fR, which is an array of arrays of scalars. .Sp The default action is the literal sorting algorithm, where precedence is arbitrated by \f(CW\*(C`cmp\*(C'\fR operator ( see \*(L"Equality Operators\*(R" in perlop ) . .SS "Properties" .IX Subsection "Properties" .IP "columns \s-1INTEGER\s0" 4 .IX Item "columns INTEGER" Governs the number of columns in items. If set-called, and the new number is different from the old number, both items and headers are restructured. .Sp Default value: 0 .IP "headerClass" 4 .IX Item "headerClass" Assigns a header class. .Sp Create-only property. .Sp Default value: \f(CW\*(C`Prima::Header\*(C'\fR .IP "headerProfile \s-1HASH\s0" 4 .IX Item "headerProfile HASH" Assigns hash of properties, passed to the header widget during the creation. .Sp Create-only property. .IP "headerDelegations \s-1ARRAY\s0" 4 .IX Item "headerDelegations ARRAY" Assigns a header widget list of delegated notifications. .Sp Create-only property. .IP "headers \s-1ARRAY\s0" 4 .IX Item "headers ARRAY" Array of strings, passed to the header widget as column titles. .IP "items \s-1ARRAY\s0" 4 .IX Item "items ARRAY" Array of arrays of scalars, of arbitrary kind. The default behavior, however, assumes that the scalars are strings. The data direction is from left to right and from top to bottom. .IP "mainColumn \s-1INTEGER\s0" 4 .IX Item "mainColumn INTEGER" Selects the column, responsible for representation of all the data. As the user clicks the header tab, \f(CW\*(C`mainColumn\*(C'\fR is automatically changed to the corresponding column. .Sp Default value: 0 .SS "Methods" .IX Subsection "Methods" .IP "sort [ \s-1COLUMN\s0 ]" 4 .IX Item "sort [ COLUMN ]" Sorts items by the \s-1COLUMN\s0 index in ascending order. If \s-1COLUMN\s0 is not specified, sorts by the last specified column, or by #0 if it is the first \f(CW\*(C`sort\*(C'\fR invocation. .Sp If \s-1COLUMN\s0 was specified, and the last specified column equals to \s-1COLUMN\s0, the sort direction is reversed. .Sp The method does not perform sorting itself, but invokes Sort notification, so the sorting algorithms can be overloaded, or be applied differently to the columns. .SH "AUTHOR" .IX Header "AUTHOR" Dmitry Karasik, . .SH "SEE ALSO" .IX Header "SEE ALSO" Prima, Prima::Lists, Prima::Header, \fIexamples/sheet.pl\fR