Prima
view release on metacpan or search on metacpan
Prima/VB/VB.pl view on Meta::CPAN
sub preload
{
my $self = $VB::inspector;
my $l = $self-> {plist};
my $cnt = $l-> count;
$self-> {panel}-> hide;
$l-> hide;
$l-> focusedItem( $cnt) while $cnt-- > 0;
$l-> show;
$self-> {panel}-> show;
}
sub on_destroy
{
$VB::inspector = undef;
$VB::main-> {ini}-> {ObjectInspectorRect} = join( ' ', $_[0]-> rect);
}
sub help_lookup
{
return unless $VB::inspector;
my $self = $VB::inspector;
my $list = $self-> {currentList};
my $f = $list-> focusedItem;
return if $f < 0;
my $event = $self-> {mtabs}-> {mode};
my $id = $list-> {id}-> [$f];
$id =~ s/^on// if $event;
$::application-> open_help("Prima::Widget/$id");
}
package Prima::VB::Form;
use strict;
use vars qw(@ISA);
@ISA = qw( Prima::Window Prima::VB::Window);
{
my %RNT = (
%{Prima::Window-> notification_types()},
Load => nt::Default,
);
sub notification_types { return \%RNT; }
}
sub profile_default
{
my $def = $_[ 0]-> SUPER::profile_default;
my %prf = (
sizeDontCare => 0,
originDontCare => 0,
width => 300,
height => 200,
centered => 1,
class => 'Prima::Window',
module => 'Prima::Classes',
selectable => 1,
mainEvent => 'onMouseClick',
popupItems => $VB::main-> menu-> get_items( 'edit'),
ownerIcon => 0,
);
@$def{keys %prf} = values %prf;
return $def;
}
sub init
{
my $self = shift;
my %profile = $self-> SUPER::init(@_);
$profile{profile}-> {name} = $self-> name;
for ( qw( marked sizeable)) {
$self-> {$_}=0;
};
$self-> {dragMode} = 3;
$self-> init_profiler( \%profile);
$self-> {guidelineX} = $self-> width / 2;
$self-> {guidelineY} = $self-> height / 2;
unless ( $self-> {syncRecting}) {
$self-> {syncRecting} = $self;
$self-> prf_set(
origin => [$self-> origin],
size => [$self-> size],
originDontCare => 0,
sizeDontCare => 0,
);
$self-> {syncRecting} = undef;
}
return %profile;
}
sub insert_new_control
{
my ( $self, $x, $y, $where, %profile) = @_;
my $class = exists($profile{class}) ? $profile{class} : $VB::main-> {currentClass};
my $xclass = $VB::main-> {classes}-> {$class}-> {class};
return unless defined $xclass;
my $creatOrder = 0;
my $wn = $where-> name;
for ( $self-> widgets) {
my $po = $_-> prf('owner');
$po = $VB::form-> name unless length $po;
next unless $po eq $wn;
my $co = $_-> {creationOrder};
$creatOrder++;
next if $co < $creatOrder;
$creatOrder = $co + 1;
}
my $j;
my %prf = exists($profile{profile}) ? ( %{$profile{profile}}) : ();
eval {
eval "use $VB::main->{classes}->{$class}->{RTModule};";
die "$@" if $@;
$j = $self-> insert( $xclass,
profile => {
%prf,
owner => $wn,
origin => [$x-4,$y-4],
},
class => $class,
( run in 0.810 second using v1.01-cache-2.11-cpan-364913b4093 )