Gtk2-Ex-Clock
view release on metacpan or search on metacpan
inc/my_pod2html
lib/Gtk2/Ex/Clock.pm
Makefile.PL
MANIFEST This list of files
MANIFEST.SKIP
README
SIGNATURE
t/Clock-DateTime.t
t/Clock-display.t
t/Clock-load.t
t/Clock-weaken.t
t/Clock.t
t/MyTestHelpers.pm
xt/0-desktop-file-validate.t
xt/0-examples-xrefs.t
xt/0-exe-shebang.t
xt/0-file-is-part-of.t
xt/0-META-read.t
xt/0-no-debug-left-on.t
xt/0-Test-ConsistentVersion.t
xt/0-Test-DistManifest.t
SHA256 13db0744687ae7fe2e91f9e2336477b27a8129213be35bec1e6066d3ed57b6c2 examples/standalone.pl
SHA256 7650e43ab2eb69c22598c73879eca5abb44e93a9260b03a2c5665fde41e1c434 examples/tai.pl
SHA256 936c129e4cec0162a7d56659415bd3e81c2b942c25d55e8d9cfd7f85aa864463 examples/twoline.pl
SHA256 aaee799f94ec35dc0b22244498f683976ad5e08df97d368773b0c9b989a6c341 examples/world-aatw.pl
SHA256 fb446254200f009daff08fee94e9067fd78dfd9553dfdae118871570c3407226 examples/world.pl
SHA256 3cf06547516f2f258b55aa3613c48e4d8fb6911139db5b5c52c1069e773c8071 inc/my_pod2html
SHA256 a8a4c2f298e07844673ff3c49a17a432d4593b5a5752dcc6e8585b15a616efbf lib/Gtk2/Ex/Clock.pm
SHA256 0337170069bb60e98ec687da000c6e03b9afa6d9eb783973239a50383597bf0e t/Clock-DateTime.t
SHA256 718f39fc63b6a8b690f67f47312a23c10ec9ede8cba6bb0edb6ca9d1f9c162b1 t/Clock-display.t
SHA256 8e58865619493919f4d8ae0d1ed811a5706c6af772f08161a60ae8b340b70718 t/Clock-load.t
SHA256 6b1c42ddd7077b90a34a4f110ba761ea0010e22e568c916e4c8729aa5f3619fd t/Clock-weaken.t
SHA256 bb47f650f81207ff7b83be77375f5d0b41f1ee6e8a56f938c0d47b43c7ca7a6f t/Clock.t
SHA256 91cd2bba3e246abf05c342ed549ed6d902e8a77a43b6c9c4e092e4c918732ac0 t/MyTestHelpers.pm
SHA256 ef75312e02ddcfed7095de7eecebc6b7b863d56acd9b64142737ab7a5edb57e3 xt/0-META-read.t
SHA256 f03d4741c4e6dd385c7bafa06118082bad4809a64e28a094635324ef8ab4f3e5 xt/0-Test-ConsistentVersion.t
SHA256 be42622f3841d04240cb1284e6b30e1af81cb0fcb56d29e853c70af656653488 xt/0-Test-DistManifest.t
SHA256 48b441e0c335e93946d913897e342662387788833229c5ba5fac57f0ff3d567c xt/0-Test-Pod.t
SHA256 2e1e1d896a226aeb190cdcfbe83969f634c1be3e7344302e023915e3f7150732 xt/0-Test-Synopsis.t
SHA256 d33b48c1986680cd934565250bd9e3879674dfe6aad69b1717ed76354a29ff44 xt/0-Test-YAML-Meta.t
SHA256 b31126d6104e3dafd39672af9bd0182ff2fcc077adedbbd76cca60638dd6fe62 xt/0-desktop-file-validate.t
SHA256 1ae41bbd04e6aba264df79250d525e8b2b2e6b311930ef191c5e432936706cdc xt/0-examples-xrefs.t
devel/unmapped.pl view on Meta::CPAN
sub new {
my ($class, $widget) = @_;
if ($widget->flags & 'no-window') {
die;
}
my $events = Gtk2::Ex::WidgetEvents->new ($widget, 'visibility-notify-mask');
my $self = bless { widget => $widget,
events => $events,
}, $class;
Scalar::Util::weaken ($self->{'widget'});
return $self;
}
package Gtk2::Ex::Visibility;
use strict;
use warnings;
use Scalar::Util;
use Glib::Ex::SignalIds;
sub new {
my ($class, $widget) = @_;
if ($widget->flags & 'no-window') {
die;
}
my $self = bless { widget => $widget,
visibility_state => '',
events => Gtk2::Ex::WidgetEvents->new ($widget, 'visibility-notify-mask'),
ids => $ids,
}, $class;
Scalar::Util::weaken ($self->{'widget'});
Scalar::Util::weaken (my $weak_self = $self);
my $self->{'ids'} = Glib::Ex::SignalIds->new
($widget,
$widget->signal_connect ('visibility_notify_event',
\&_do_visibility_notify_event,
\$weak_self));
return $self;
}
sub _do_visibility_notify_event {
lib/Gtk2/Ex/Clock.pm view on Meta::CPAN
# 60*$minute+$second is a little less work.
#
my $milliseconds = POSIX::ceil
(_TIMER_MARGIN_MILLISECONDS
+ (1000
* ($self->{'decided_resolution'}
- ((60*$minute + min(59,$second)) % $self->{'decided_resolution'})
- ($tod - POSIX::floor($tod))))); # fraction part
### timer: "$tod is $minute,$second wait $milliseconds to give ".($tod + $milliseconds / 1000.0)
Scalar::Util::weaken (my $weak_self = $self);
$self->{'timer'} = Glib::Ex::SourceIds->new
(Glib::Timeout->add ($milliseconds,
\&_timer_callback, \$weak_self,
Gtk2::GDK_PRIORITY_REDRAW() - 1)); # before redraws
}
#------------------------------------------------------------------------------
is ($clock->get('timezone-string'), 'DEF');
is ($clock->get('timezone_string'), 'DEF');
$clock->set('timezone', 'GHI');
is ($clock->get('timezone'), 'GHI');
is ($clock->get('timezone-string'), 'GHI');
is ($clock->get('timezone_string'), 'GHI');
}
#-----------------------------------------------------------------------------
# weakening
# no circular reference between the clock and the timer callback it
# installs
{
my $clock = Gtk2::Ex::Clock->new;
require Scalar::Util;
Scalar::Util::weaken ($clock);
is ($clock, undef, 'should be garbage collected when weakened');
}
exit 0;
t/MyTestHelpers.pm view on Meta::CPAN
? "$obj->{$_}" : '[undef]')}
keys %$obj));
}
if (eval { require Devel::FindRef }) {
MyTestHelpers::diag (Devel::FindRef::track($obj, 8));
} else {
MyTestHelpers::diag ("Devel::FindRef not available -- ", $@);
}
}
sub test_weaken_show_leaks {
my ($leaks) = @_;
$leaks || return;
my $unfreed = $leaks->unfreed_proberefs;
my $unfreed_count = scalar(@$unfreed);
MyTestHelpers::diag ("Test-Weaken leaks $unfreed_count objects");
MyTestHelpers::dump ($leaks);
my $proberef;
foreach $proberef (@$unfreed) {
( run in 0.378 second using v1.01-cache-2.11-cpan-1f129e94a17 )