.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.28) .\" .\" 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" '' . ds C` . ds C' '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. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" 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::Action 3pm" .TH Padre::Wx::Action 3pm "2014-09-11" "perl v5.20.0" "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::Action \- Padre Action Object .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 8 \& my $action = Padre::Wx::Action\->new( \& name => \*(Aqfile.save\*(Aq, \& label => \*(AqSave\*(Aq, \& comment => \*(AqSaves the current file to disk\*(Aq, \& icon => \*(Aq...\*(Aq, \& shortcut => \*(AqCtrl\-S\*(Aq, \& menu_event => sub { }, \& ); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" This is the base class for the Padre Action \s-1API.\s0 .SH "KEYS" .IX Header "KEYS" Each module is constructed using a number of keys. While only the name is technically required there are few reasons for actions which lack a label or menu_event. .PP The keys are listed here in the order they usually appear. .SS "name" .IX Subsection "name" Each action requires an unique name which is used to reference and call it. .PP The name usually has the syntax .PP .Vb 1 \& group.action .Ve .PP Both group and action should only contain \ew+ chars. .SS "label" .IX Subsection "label" Text which is shown in menus and allows the user to see what this action does. .PP Remember to use Wx::gettext to make this translatable. .SS "need_editor" .IX Subsection "need_editor" This action should only be enabled/shown if there is a open editor window with a (potentially unsaved) document in it. .PP The action may be called anyway even if there is no editor (all documents closed), but it shouldn't. .PP Set to a value of 1 to use it. .SS "need_file" .IX Subsection "need_file" This action should only be enabled/shown if the current document has a file name (meaning there is a copy on disk which may be older than the in-memory document). .PP The action may be called anyway even if there is no file name for the current document, but it shouldn't. .PP Set to a value of 1 to use it. .SS "need_modified" .IX Subsection "need_modified" This action should only be enabled/shown if the current document has either been modified after the last save or was never saved on disk at all. .PP The action may be called anyway even if the file is up-to-date with the in-memory document, but it shouldn't. .PP Set to a value of 1 to use it. .SS "need_selection" .IX Subsection "need_selection" This action should only be enabled/shown if there is some text selected within the current document. .PP The action may be called anyway even if nothing is selected, but it shouldn't. .PP Set to a value of 1 to use it. .SS "need" .IX Subsection "need" Expected to contain a \s-1CODE\s0 reference which returns either true or false. .PP If the code returns true, the action should be enabled/shown, otherwise it shouldn't, usually because it won't make sense to use this action without whatever_is_checked_by_the_code. (For example, \s-1UNDO\s0 can't be used if there was no change which could be undone.) .PP The \s-1CODE\s0 receives a list of objects which should help with the decision: .PP .Vb 4 \& config Contains the current configuration object \& editor The current editor object \& document The current document object \& main The main Wx object .Ve .PP A typical sub for handling would look like this: .PP .Vb 5 \& need => sub { \& my $current = shift; \& my $editor = $current\->editor or return 0; \& return $editor\->CanUndo; \& }, .Ve .PP Use this with caution! As this function is called very often there are few to no checks and if this isn't a \s-1CODE\s0 reference, Padre may crash at all or get very slow if your \s-1CODE\s0 is inefficient and requires a lot of processing time. .SS "comment" .IX Subsection "comment" A comment (longer than label) which could be used in lists. It should contain a short description of what this action does. .PP Remember to use Wx::gettext to make this translatable. .SS "icon" .IX Subsection "icon" If there is an icon for this action, specify it here. .SS "shortcut" .IX Subsection "shortcut" The shortcut may be set by the user. This key sets the default shortcut to be used if there is no user-defined value. .SS "menu_event" .IX Subsection "menu_event" This is expected to contain a \s-1CODE\s0 reference which does the job of this action or an \s-1ARRAY\s0 reference of \s-1CODE\s0 references which are executed in order. .SH "METHODS" .IX Header "METHODS" .SS "new" .IX Subsection "new" A default constructor for action objects. .SH "COPYRIGHT & LICENSE" .IX Header "COPYRIGHT & LICENSE" Copyright 2008\-2013 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 itself. .PP The full text of the license can be found in the \&\s-1LICENSE\s0 file included with this module.