Curses::UI::Searchable man page on Mandriva

Man page or keyword search:  
man Server   17060 pages
apropos Keyword Search (all sections)
Output format
Mandriva logo
[printable version]

Curses::UI::SearchableUser Contributed Perl DocumentaCurses::UI::Searchable(3)

NAME
       Curses::UI::Searchable - Add 'less'-like search abilities to a widget

CLASS HIERARCHY
	Curses::UI::Searchable - base class

SYNOPSIS
	   package MyWidget;

	   use Curses::UI::Searchable;
	   use vars qw(@ISA);
	   @ISA = qw(Curses::UI::Searchable);

	   ....

	   sub new () {
	       # Create class instance $this.
	       ....

	       $this->set_routine('search-forward', \&search_forward);
	       $this->set_binding('search-forward', '/');
	       $this->set_routine('search-backward', \&search_backward);
	       $this->set_binding('search-backward', '?');
	   }

	   sub layout_content() {
	       my $this = shift;

	       # Layout your widget's content.
	       ....

	       return $this;
	   }

	   sub number_of_lines() {
	       my $this = shift;

	       # Return the number of lines in
	       # the widget's content.
	       return ....
	   }

	   sub getline_at_ypos($;) {
	       my $this = shift;
	       my $ypos = shift;

	       # Return the content on the line
	       # where ypos = $ypos
	       return ....
	   }

DESCRIPTION
       Using Curses::UI::Searchable, you can add 'less'-like search
       capabilities to your widget.

       To make your widget searchable using this class, your widget should
       meet the following requirements:

       ·   make it a descendant of Curses::UI::Searchable

	   All methods for searching are in Curses::UI::Searchable.  By making
	   your class a descendant of this class, these methods are
	   automatically inherited.

       ·   -ypos data member

	   The current vertical position in the widget should be identified by
	   $this->{-ypos}. This y-position is the index of the line of
	   content. Here's an example for a Listbox widget.

	    -ypos
	      |
	      v
		  +------+
	      0	  |One	 |
	      1	  |Two	 |
	      2	  |Three |
		  +------+

       ·   method: number_of_lines ( )

	   Your widget class should have a method number_of_lines, which
	   returns the total number of lines in the widget's content. So in
	   the example above, this method would return the value 3.

       ·   method: getline_at_ypos ( YPOS )

	   Your widget class should have a method getline_at_ypos, which
	   returns the line of content at -ypos YPOS.  So in the example
	   above, this method would return the value "Two" for YPOS = 1.

       ·   method: layout_content ( )

	   The search routines will set the -ypos of your widget if a match is
	   found for the given search string. Your layout_content routine
	   should make sure that the line of content at -ypos will be made
	   visible if the draw method is called.

       ·   method: draw ( )

	   If the search routines find a match, $this->{-search_highlight}
	   will be set to the -ypos for the line on which the match was found.
	   If no match was found $this->{-search_highlight} will be undefined.
	   If you want a matching line to be highlighted, in your widget, you
	   can use this data member to do so (an example of a widget that uses
	   this option is the Curses::UI::TextViewer widget).

       ·   bindings for searchroutines

	   There are two search routines. These are search_forward and
	   search_backward. These have to be called in order to display the
	   search prompt. The best way to do this is by creating bindings for
	   them. Here's an example which will make '/' a forward search and
	   '?' a backward search:

	       $this->set_routine('search-forward'  , \&search_forward);
	       $this->set_binding('search-forward'  , '/');
	       $this->set_routine('search-backward' , \&search_backward);
	       $this->set_binding('search-backward' , '?');

SEE ALSO
       Curses::UI,

AUTHOR
       Copyright (c) 2001-2002 Maurice Makaay. All rights reserved.

       Maintained by Marcus Thiesen (marcus@cpan.thiesenweb.de)

       This package is free software and is provided "as is" without express
       or implied warranty. It may be used, redistributed and/or modified
       under the same terms as perl itself.

perl v5.10.1			  2009-11-21	     Curses::UI::Searchable(3)
[top]

List of man pages available for Mandriva

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net