.\" 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 "Padre::Wx::Role::Idle 3pm" .TH Padre::Wx::Role::Idle 3pm "2012-06-27" "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" Padre::Wx::Role::Idle \- Role for delaying method calls until idle time .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& # Manually schedule some work on idle \& $self\->idle_method( my_method => \*(Aqparam\*(Aq ); \& \& # Delay work until idle time in response to an event \& Wx::Event::EVT_TREE_ITEM_ACTIVATED( \& $self, \& $self, \& sub { \& shift\->idle_method( my_method => \*(Aqparam\*(Aq ); \& }, \& ); \& \& # The handler for the event \& sub my_method { \& my $self = shift; \& my $param = shift; \& \& # Functionality is implemented here \& } .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" This role provides a standard mechanism for delaying method call dispatch until idle time. .PP The role maintains a dispatch queue for each object, binds or unbinds an \&\f(CW\*(C`EVT_IDLE\*(C'\fR handler depending on whether there is anything in the queue, and dispatches one method from the queue each time idle is fired (to ensure that any large series of tasks will be spread out over time instead of all blocking at once on the first idle event). .SH "METHODS" .IX Header "METHODS" .SS "idle_method" .IX Subsection "idle_method" .Vb 1 \& $self\->idle_method( method_name => @params ); .Ve .PP The \f(CW\*(C`idle_method\*(C'\fR method is used to schedule a method for execution at idle time. .PP The first parameter to the call should be the name of the method to be called on this object. The method will be checked before it is added to the queue to ensure that it exists. .PP Any remaining parameters to \f(CW\*(C`idle_method\*(C'\fR will be passed through as parameters to the specified method call. .PP Please note that Wx::Event objects \fBmust not be used\fR as parameters to this method. While the Perl level object will survive until idle time, the underlying Wx event structure for the event will no longer exist, and any attempt to call a method on the event object will segfault Perl. .PP You should unpack any information you need from the Wx::Event before making the call to \f(CW\*(C`idle_method\*(C'\fR and pass it through as data instead. .SS "idle_handler" .IX Subsection "idle_handler" The \f(CW\*(C`idle_handler\*(C'\fR method is called internally to dispatch the next method in the idle queue. .PP It will dispatch one and only one call on the queue, returning true if there are any remaining calls on the queue of false if the queue is empty. .PP While you generally should not need to know about this method, there are two ways to use this method to influence the behaviour of the role. .PP Firstly, the method call be called directly to trigger the immediate dispatch of an idle method without waiting for the \f(CW\*(C`EVT_IDLE\*(C'\fR event to fire. .PP Secondly, you could overload the \f(CW\*(C`idle_handler\*(C'\fR method to add extra functionality that should be run any time a delayed call of any other type is made. .SH "COPYRIGHT & LICENSE" .IX Header "COPYRIGHT & LICENSE" Copyright 2008\-2012 The Padre development team as listed in Padre.pm. .PP This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself. .PP The full text of the license can be found in the \&\s-1LICENSE\s0 file included with this module.