You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
1.6 KiB
80 lines
1.6 KiB
|
|
&::PukeSendMessage($PUKE_WIDGET_LOAD,
|
|
$PUKE_CONTROLLER,
|
|
$PWIDGET_BUTTON,
|
|
"pbutton.so",
|
|
sub { my %ARG = %{shift()};
|
|
if($ARG{'iArg'} == 1){
|
|
print "*E* PButton Load failed!\n";
|
|
}
|
|
}
|
|
);
|
|
|
|
package PButton;
|
|
@ISA = qw(PWidget);
|
|
use strict;
|
|
|
|
sub new {
|
|
my $class = shift;
|
|
my $self = $class->SUPER::new($class, @_);
|
|
|
|
$self->{widgetType} = $::PWIDGET_BUTTON;
|
|
|
|
if($class eq 'PButton'){
|
|
$self->create();
|
|
}
|
|
|
|
$self->installHandler($::PUKE_BUTTON_PRESSED_ACK, sub{});
|
|
$self->installHandler($::PUKE_BUTTON_RELEASED_ACK, sub{});
|
|
$self->installHandler($::PUKE_BUTTON_CLICKED_ACK, sub{});
|
|
$self->installHandler($::PUKE_BUTTON_TOGGLED_ACK, sub{});
|
|
|
|
return $self;
|
|
|
|
}
|
|
|
|
sub setText {
|
|
my $self = shift;
|
|
|
|
my $text = shift;
|
|
|
|
$self->{text} = $text;
|
|
|
|
$self->sendMessage('iCommand' => $::PUKE_BUTTON_SET_TEXT,
|
|
'cArg' => $text,
|
|
'CallBack' => sub {}
|
|
);
|
|
}
|
|
|
|
sub setPixmap {
|
|
my $self = shift;
|
|
|
|
my $file = shift;
|
|
|
|
$self->sendMessage('iCommand' => $::PUKE_BUTTON_SET_PIXMAP,
|
|
'cArg' => $file,
|
|
'CallBack' =>
|
|
sub {
|
|
my $arg = shift();
|
|
# if($arg == undef){ return; }
|
|
#my %ARG = %{shift()};
|
|
#if($ARG{'iArg'} == 0){
|
|
#print "*E* Pixmap set failed\n";
|
|
#}
|
|
}
|
|
);
|
|
}
|
|
|
|
sub setAutoResize {
|
|
my $self = shift;
|
|
|
|
my $resize = shift;
|
|
|
|
$self->sendMessage('iCommand' => $::PUKE_BUTTON_SET_PIXMAP,
|
|
'iArg' => $resize,
|
|
'CallBack' => sub {}
|
|
);
|
|
}
|
|
|
|
package main;
|