XUL-Gui
view release on metacpan or search on metacpan
lib/XUL/Gui.pm view on Meta::CPAN
Button( label=>'click me', oncommand=> sub {
my ($self, $event) = @_;
$self->label = $event->type;
})
in the event handler, C< $_ == $_[0] > so a shorter version would be:
oncommand => sub {$_->label = pop->type}
javascript event handlers have C< event > and C< this > set for you
Button( label=>'click me', oncommand=> function q{
this.label = event.type;
})
any attribute with a name that doesn't match C< /^on/ > that has a code ref
value is added to the object as a method. methods are explained in more detail
later on.
=head1 EXPORT
use XUL::Gui; # is the same as
use XUL::Gui qw/:base :util :pragma :xul :html :const :image/;
the following export tags are available:
:base %ID ID alert display quit widget
:tools function gui interval serve timeout toggle XUL
:pragma buffered cached delay doevents flush noevents now
:const BLUR FILL FIT FLEX MIDDLE SCROLL
:widgets ComboBox filepicker prompt
:image bitmap bitmap2src
:util apply mapn trace zip
:internal genid object realid tag
:all (all exports)
:default (same as with 'use XUL::Gui;')
:xul (also exported as Titlecase)
Action ArrowScrollBox Assign BBox Binding Bindings Box Broadcaster
BroadcasterSet Browser Button Caption CheckBox ColorPicker Column Columns
Command CommandSet Conditions Content DatePicker Deck Description Dialog
DialogHeader DropMarker Editor Grid Grippy GroupBox HBox IFrame Image Key
KeySet Label ListBox ListCell ListCol ListCols ListHead ListHeader
ListItem Member Menu MenuBar MenuItem MenuList MenuPopup MenuSeparator
Notification NotificationBox Observes Overlay Page Panel Param PopupSet
PrefPane PrefWindow Preference Preferences ProgressMeter Query QuerySet
Radio RadioGroup Resizer RichListBox RichListItem Row Rows Rule Scale
Script ScrollBar ScrollBox ScrollCorner Separator Spacer SpinButtons
Splitter Stack StatusBar StatusBarPanel StringBundle StringBundleSet Tab
TabBox TabPanel TabPanels Tabs Template TextBox TextNode TimePicker
TitleBar ToolBar ToolBarButton ToolBarGrippy ToolBarItem ToolBarPalette
ToolBarSeparator ToolBarSet ToolBarSpacer ToolBarSpring ToolBox ToolTip
Tree TreeCell TreeChildren TreeCol TreeCols TreeItem TreeRow TreeSeparator
Triple VBox Where Window Wizard WizardPage
:html (also exported as html_lowercase)
A ABBR ACRONYM ADDRESS APPLET AREA AUDIO B BASE BASEFONT BDO BGSOUND BIG
BLINK BLOCKQUOTE BODY BR BUTTON CANVAS CAPTION CENTER CITE CODE COL
COLGROUP COMMENT DD DEL DFN DIR DIV DL DT EM EMBED FIELDSET FONT FORM
FRAME FRAMESET H1 H2 H3 H4 H5 H6 HEAD HR HTML I IFRAME ILAYER IMG INPUT
INS ISINDEX KBD LABEL LAYER LEGEND LI LINK LISTING MAP MARQUEE MENU META
MULTICOL NOBR NOEMBED NOFRAMES NOLAYER NOSCRIPT OBJECT OL OPTGROUP OPTION
P PARAM PLAINTEXT PRE Q RB RBC RP RT RTC RUBY S SAMP SCRIPT SELECT SMALL
SOURCE SPACER SPAN STRIKE STRONG STYLE SUB SUP TABLE TBODY TD TEXTAREA
TFOOT TH THEAD TITLE TR TT U UL VAR VIDEO WBR XML XMP
constants:
FLEX flex => 1
FILL flex => 1, align =>'stretch'
FIT sizeToContent => 1
SCROLL style => 'overflow: auto'
MIDDLE align => 'center', pack => 'center'
BLUR onfocus => 'this.blur()'
each is a function that returns its constant, prepended to its arguments,
thus the following are both valid:
Box FILL pack=>'end';
Box FILL, pack=>'end';
=cut
sub FLEX {flex => 1, @_}
sub FILL {qw/-flex 1 -align stretch/, @_}
sub FIT {sizeToContent => 1, @_}
sub SCROLL {style => 'overflow: auto', @_}
sub MIDDLE {qw/-align center -pack center/, @_}
sub BLUR {qw/-onfocus this.blur()/, @_}
our @Xul = map {$_, (ucfirst lc) x /.[A-Z]/} qw {
Action ArrowScrollBox Assign BBox Binding Bindings Box Broadcaster
BroadcasterSet Browser Button Caption CheckBox ColorPicker Column
Columns Command CommandSet Conditions Content DatePicker Deck
Description Dialog DialogHeader DropMarker Editor Grid Grippy GroupBox
HBox IFrame Image Key KeySet Label ListBox ListCell ListCol ListCols
ListHead ListHeader ListItem Member Menu MenuBar MenuItem MenuList
MenuPopup MenuSeparator Notification NotificationBox Observes Overlay
Page Panel Param PopupSet PrefPane PrefWindow Preference Preferences
ProgressMeter Query QuerySet Radio RadioGroup Resizer RichListBox
RichListItem Row Rows Rule Scale Script ScrollBar ScrollBox ScrollCorner
Separator Spacer SpinButtons Splitter Stack StatusBar StatusBarPanel
StringBundle StringBundleSet Tab TabBox TabPanel TabPanels Tabs Template
TextBox TextNode TimePicker TitleBar ToolBar ToolBarButton ToolBarGrippy
ToolBarItem ToolBarPalette ToolBarSeparator ToolBarSet ToolBarSpacer
ToolBarSpring ToolBox ToolTip Tree TreeCell TreeChildren TreeCol
TreeCols TreeItem TreeRow TreeSeparator Triple VBox Where Window Wizard
WizardPage
};
our %HTML = map {("html_$_" => "html:$_", uc $_ => "html:$_")} qw {
a abbr acronym address applet area audio b base basefont bdo bgsound big
blink blockquote body br button canvas caption center cite code col
colgroup comment dd del dfn dir div dl dt em embed fieldset font form
frame frameset h1 h2 h3 h4 h5 h6 head hr html i iframe ilayer img input
ins isindex kbd label layer legend li link listing map marquee menu meta
multicol nobr noembed noframes nolayer noscript object ol optgroup
option p param plaintext pre q rb rbc rp rt rtc ruby s samp script
select small source spacer span strike strong style sub sup table tbody
td textarea tfoot th thead title tr tt u ul var video wbr xml xmp
};
our %EXPORT_TAGS = (
util => [qw/zip mapn apply trace/],
( run in 1.717 second using v1.01-cache-2.11-cpan-0b58ddf2af1 )