diff options
Diffstat (limited to 'ksirc/puke/pbutton.pm')
-rw-r--r-- | ksirc/puke/pbutton.pm | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/ksirc/puke/pbutton.pm b/ksirc/puke/pbutton.pm new file mode 100644 index 00000000..81e524fc --- /dev/null +++ b/ksirc/puke/pbutton.pm @@ -0,0 +1,79 @@ + +&::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; |