Gtk2-Ex-DateSpinner

 view release on metacpan or  search on metacpan

MANIFEST  view on Meta::CPAN

Makefile.PL
MANIFEST			This list of files
MANIFEST.SKIP
README
SIGNATURE
t/CellRenderer.t
t/DateSpinner-load.t
t/DateSpinner.t
t/MyTestHelpers.pm
t/PopupForEntry.t
t/test-weaken.t
xt/0-examples-xrefs.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
xt/0-Test-Pod.t
xt/0-Test-Synopsis.t
xt/0-Test-YAML-Meta.t
xtools/my-check-copyright-years.sh

SIGNATURE  view on Meta::CPAN

SHA256 e7e4996d038b506896697c8f9f48b40afe963a9b8214d2fe89b7e7c5eb4ee213 examples/simple.pl
SHA256 28bec8fe29b497164cfeac7aa1707d8ed81874bb08ccda5b7a490b0869f4a3ca inc/my_pod2html
SHA256 a657d2fc952ecc1635cf4225addb68e908c56a62ee47e5d6c6a874bceb77a025 lib/Gtk2/Ex/DateSpinner.pm
SHA256 d28d866657b09bfc41c49cc02a55a2f928f71bcea1156942339c5de4545ec2b9 lib/Gtk2/Ex/DateSpinner/CellRenderer.pm
SHA256 d3b02a874c0cce21098745716dcd9bc68f56e56846fdfb6aa756238ffa137347 lib/Gtk2/Ex/DateSpinner/PopupForEntry.pm
SHA256 26e2af4dfa3c2c9ccbfc1676264a50b4db5e897eab176694aea68ccc345415fe t/CellRenderer.t
SHA256 587540c72b72417568e6974815994b270ee8f08d00c9d4bf71a06d0ecfa800cb t/DateSpinner-load.t
SHA256 6ea4e35c6fe20eb7eb858a1b4e57e67289cca96ef1d190a27657d24fc17f6b18 t/DateSpinner.t
SHA256 91cd2bba3e246abf05c342ed549ed6d902e8a77a43b6c9c4e092e4c918732ac0 t/MyTestHelpers.pm
SHA256 9501a0c9c42285c850d979ba367ff83cf2285dd2e888ff0208f8f77a1df02b18 t/PopupForEntry.t
SHA256 ef4b53433c845cc98bde37207b1e9c02c845394d127416aee5e615b814448daf t/test-weaken.t
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 1ae41bbd04e6aba264df79250d525e8b2b2e6b311930ef191c5e432936706cdc xt/0-examples-xrefs.t
SHA256 75a73148514fad2715873d1e02a6fa8e3b9cc43f7aff97aaffac9721c086a319 xt/0-file-is-part-of.t
SHA256 7d9eacc605d8cb575b2869790e4b90d71dea6a97547c725825a49e1db036dee4 xt/0-no-debug-left-on.t
SHA256 330b4711b382ca5c9961eb0270f5bb50d1dc5c43108dc5aa609e1ade77f228fe xtools/my-check-copyright-years.sh

devel/cell.pl  view on Meta::CPAN

$toplevel->show_all;
Gtk2->main;
exit 0;


sub renderer_edited_set_value {
  my ($renderer, $dest, $col_num) = @_;
  (defined $col_num) || croak 'No column number supplied';
  my @userdata = ($dest, $col_num);
  require Scalar::Util;
  Scalar::Util::weaken ($userdata[0]);
  $renderer->signal_connect (edited => \&_renderer_edited_set_value_handler,
                             \@userdata);
}
sub _renderer_edited_set_value_handler {
  my ($renderer, $pathstr, $newtext, $userdata) = @_;
  my ($dest, $col_num) = @$userdata;

  if ($dest->can('get_tree_view')) {
    # on Gtk2::TreeViewColumn go to the Gtk2::TreeView
    $dest = $dest->get_tree_view || croak 'No viewer from get_tree_view';

lib/Gtk2/Ex/DateSpinner/CellRenderer.pm  view on Meta::CPAN


  require Gtk2::Ex::DateSpinner::PopupForEntry;
  Gtk2::Ex::DateSpinner::PopupForEntry->new (entry => $entry);

  my $value = $self->get('text');
  $entry->set_text (defined $value ? $value : '');
  $entry->select_region (0, -1);

  my $ref_weak_self = \$self;
  require Scalar::Util;
  Scalar::Util::weaken ($ref_weak_self);
  $entry->signal_connect (editing_done => \&_do_entry_editing_done,
                          $ref_weak_self);

  # {
  #   $entry->signal_connect (destroy => sub {
  #                             print "editable: destroy\n";
  #                           });
  #   $entry->signal_connect (focus_out_event => sub {
  #                             print "editable: focus_out_event\n";
  #                             return 0; # Gtk2::EVENT_PROPAGATE

lib/Gtk2/Ex/DateSpinner/PopupForEntry.pm  view on Meta::CPAN

#   $self->window->set_decorations (['border']);
# }

sub SET_PROPERTY {
  my ($self, $pspec, $newval) = @_;
  my $pname = $pspec->get_name;
  $self->{$pname} = $newval;

  if ($pname eq 'entry') {
    my $entry = $newval;
    Scalar::Util::weaken ($self->{'entry'});

    $self->{'entry_ids'} = $entry && do {
      require Scalar::Util;
      my $ref_weak_self = \$self;
      Scalar::Util::weaken ($ref_weak_self);

      require Glib::Ex::SignalIds;
      Glib::Ex::SignalIds->new
          ($entry,
           $entry->signal_connect (size_allocate => \&_do_position,
                                   $ref_weak_self),
           $entry->signal_connect (changed => \&_do_entry_changed,
                                   $ref_weak_self),
           $entry->signal_connect (editing_done => \&_do_entry_editing_done,
                                   $ref_weak_self),

t/CellRenderer.t  view on Meta::CPAN

  my $renderer = Gtk2::Ex::DateSpinner::CellRenderer->new;

  ok ($renderer->VERSION >= $want_version, 'VERSION object method');
  ok (eval { $renderer->VERSION($want_version); 1 },
      "VERSION object check $want_version");
  my $check_version = $want_version + 1000;
  ok (! eval { $renderer->VERSION($check_version); 1 },
      "VERSION object check $check_version");

  require Scalar::Util;
  Scalar::Util::weaken ($renderer);
  is ($renderer, undef, 'should be garbage collected when weakened');
}

#-----------------------------------------------------------------------------
# start_editing return object

Gtk2->disable_setlocale;  # leave LC_NUMERIC alone for version nums
my $have_display = Gtk2->init_check;

SKIP: {
  $have_display or skip 'no DISPLAY available', 2;

t/CellRenderer.t  view on Meta::CPAN

  my $rect = Gtk2::Gdk::Rectangle->new (0, 0, 100, 100);
  my $editable = $renderer->start_editing
    ($event, $toplevel, "0", $rect, $rect, ['selected']);
  isa_ok ($editable, 'Gtk2::CellEditable',
          'start_editing return');
  $toplevel->add ($editable);
  $toplevel->remove ($editable);
  MyTestHelpers::main_iterations(); # for idle handler hack

  require Scalar::Util;
  Scalar::Util::weaken ($editable);
  is ($editable, undef, 'editable should be garbage collected when weakened');

  $toplevel->destroy;
}

exit 0;

t/DateSpinner.t  view on Meta::CPAN


  my $check_version = $want_version + 1000;
  ok (! eval{Gtk2::Ex::DateSpinner->VERSION($check_version); 1},
      "VERSION class check $check_version");
}

require Gtk2;
MyTestHelpers::glib_gtk_versions();

#------------------------------------------------------------------------------
# weakening
#
# no circular reference between the datespinner and the spinbuttons
# within it

Gtk2->disable_setlocale;  # leave LC_NUMERIC alone for version nums
my $have_display = Gtk2->init_check;

SKIP: {
  # seem to need a DISPLAY initialized in gtk 2.16 or get a slew of warnings
  # creating a Gtk2::Ex::DateSpinner

t/DateSpinner.t  view on Meta::CPAN

  my $datespinner = Gtk2::Ex::DateSpinner->new;

  ok ($datespinner->VERSION >= $want_version, 'VERSION object method');
  ok (eval { $datespinner->VERSION($want_version); 1 },
      "VERSION object check $want_version");
  my $check_version = $want_version + 1000;
  ok (! eval { $datespinner->VERSION($check_version); 1 },
      "VERSION object check $check_version");

  require Scalar::Util;
  Scalar::Util::weaken ($datespinner);
  is ($datespinner, 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 2.482 seconds using v1.01-cache-2.11-cpan-65fba6d93b7 )