Glade-Perl-Two
view release on metacpan or search on metacpan
Glade/Two/Generate.pm view on Meta::CPAN
if ($type & $STRING) {
# if ((defined $default) and ($value ne $default)) {
# $value =~ s/\n/\\n/g; # To get through add_to_UI
# Backslash escape any single quotes (unless they are already backslashed)
$value =~ s/(?!\\)(.)'/$1\\'/g;
$value =~ s/^'/\\'/g;
$class->add_to_UI($depth, "\$widgets->{'$name'}->$method(_('$value')$args);");
# }
} else {
unless (defined $default and $value == $default) {
$class->add_to_UI($depth, "\$widgets->{'$name'}->$method('$value'$args);");
}
}
}
}
sub use_set_flag {
my ($class, $name, $proto, $property, $type, $depth, $flag, $default) = @_;
$type ||= $BOOL;
$flag ||= $property;
#print Dumper(\@_);
my $value = $class->use_par($proto, $property, $type|$MAYBE);
if (defined $value) {
if (!(defined $default) or ($value != $default)) {
$class->add_to_UI($depth, "${current_form}\{'$name'}->SET_FLAGS('$flag');");
}
}
}
sub use_par {
my ($class, $proto, $key, $request, $default, $dont_undef) = @_;
my $me = (ref $class || $class)."->use_par";
my $type;
my $self;
$request ||= $MAYBE;
if ($request&$NOT_WIDGET) {
$self = $proto->{'property'}{$key}{'value'};
delete $proto->{'property'}{$key} unless $dont_undef;
} elsif ($request&$NOT_PROPERTY) {
$self = $proto->{$key};
delete $proto->{$key} unless $dont_undef;
} else {
if (defined $proto->{'widget'}{'property'}{$key}) {
$self = $proto->{'widget'}{'property'}{$key}{'value'};
delete $proto->{'widget'}{'property'}{$key} unless $dont_undef;
}
}
unless (defined $self) {
if (defined $default) {
$self = $default;
} elsif ($request & $MAYBE) {
return undef;
} else {
# We have no value and no default to use so bail out here
$Glade_Perl->diag_print (1, "error No value in supplied ".
"%s and NO default was supplied in ".
"%s called from %s line %s",
"$proto->{'widget'}{'name'}\->{'$key'}", $me, (caller)[0], (caller)[2]);
return undef;
}
}
# We must have some sort of value to use by now
unless ($request) {
# Nothing to do, we are already $proto->{$key} so
# just drop through to undef the supplied prot->{$key}
} elsif ($request & $DEFAULT) {
# Nothing to do, we are already $proto->{$key} (or default) so
# just drop through to undef the supplied prot->{$key}
} elsif ($request & $LOOKUP) {
return '' unless $self;
my $lookup;
# make an effort to convert from Gtk to Gtk2-Perl constant/enum name
if ($self =~ /^GNOME/) {
$lookup = Glade::Two::Gnome->lookup($self);
} else {
$lookup = Glade::Two::Gtk->lookup($self);
}
unless ($lookup) {
if (defined $default) {
$Glade_Perl->diag_print(2,
"warn Unable to lookup '%s' using default of '%s'",
$self, $default);
$self = $default;
} else {
$Glade_Perl->diag_print(1,
"error Unable to lookup '%s' and no default",
$self);
}
} else {
$self = $lookup;
}
} elsif ($request & $BOOL) {
# Now convert whatever we have ended up with to a BOOL
# undef becomes 0 (== false)
$type = $self;
$self = ('*true*y*yes*on*1*' =~ m/\*$self\*/i) ? '1' : '0';
} elsif ($request & $KEYSYM) {
$self =~ s/GDK_//;
}
# Backslash escape any single quotes (unless they are already backslashed)
$self =~ s/(?!\\)(.)'/$1\\'/g;
$self =~ s/^'/\\'/g;
return $self;
}
#===============================================================================
#=========== Utilities to build UI ============
#===============================================================================
sub get_internal_child {
my ($class, $parent, $name, $proto, $depth) = @_;
( run in 1.922 second using v1.01-cache-2.11-cpan-a49fcb8fa48 )