summaryrefslogtreecommitdiffstats
path: root/ksirc/puke/pobjfinder.pm
blob: 6cf6c5bba8a7bc34cc73b2fbad999f174cee56b2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89

&::PukeSendMessage($PUKE_WIDGET_LOAD, 
		   $::PUKE_CONTROLLER, 
		   $PWIDGET_OBJFINDER,
		   "pobjfinder.so",
		   sub { my %ARG = %{shift()};
			 if($ARG{'iArg'} == 1){
			   print "*E* PLabel Load failed!\n";
			 }
		       }
		  );

package PObjFinder;
@ISA = qw(PBase);
use strict;

sub new {
  my $class = shift;
  my $self = $class->SUPER::new($class, @_);

  $self->{widgetType} = $::PWIDGET_OBJFINDER;

  if($class eq 'PObjFinder'){
    $self->create();
  }

  $self->installHandler($::PUKE_OBJFINDER_NEWOBJECT, sub {$self->newObject(shift())});
  
  return $self;

}

sub newObject {
}

sub interAllObjects {
  my $self = shift;
  my %REPLY = $self->sendMessage('iCommand' => $::PUKE_OBJFINDER_ALLOBJECTS,
                                 'WaitFor' => 1);

  return $REPLY{'cArg'};

}

sub allObjects {
  my $self = shift;
  my $line = $self->interAllObjects();

  $line =~ s/\S+::unnamed//gm;

  return $line;

}


sub allObjectsHash {
  my $self = shift;
  
  my $line = $self->allObjects();

  my $widget;
  my %hash;
  
  foreach $widget (split(/\n/, $line)){
    $hash{$widget} = 1;
  }

  return \%hash;
  
}

sub allObjectsArray {
  my $self = shift;
  
  my $line = $self->allObjects();

  my $widget;
  my @arr;
  
  foreach $widget (split(/\n/, $line)){
    next if $widget eq '';
    $arr[$#arr+1] = $widget;
  }

  return @arr;
}

package main;