[perl-Gtk3] Add override for Gtk3::TargetEntry



commit 23e9ecd07cd8ca595c66c78b651b54fcb55dd6ad
Author: Jeffrey Ratcliffe <Jeffrey Ratcliffe gmail com>
Date:   Thu May 3 19:52:18 2018 +0200

    Add override for Gtk3::TargetEntry
    
    https://bugzilla.gnome.org/show_bug.cgi?id=795780

 lib/Gtk3.pm   |   15 +++++++++++++++
 t/overrides.t |   26 +++++++++++++++++++++++++-
 2 files changed, 40 insertions(+), 1 deletions(-)
---
diff --git a/lib/Gtk3.pm b/lib/Gtk3.pm
index 13a366d..6a65487 100644
--- a/lib/Gtk3.pm
+++ b/lib/Gtk3.pm
@@ -1577,6 +1577,21 @@ sub Gtk3::StyleContext::get {
   return @values[0..$#values];
 }
 
+=item * An override for C<Gtk3::TargetEntry::new> is provided that
+automatically handles the conversion of the C<flags> argument.
+
+=cut
+
+sub Gtk3::TargetEntry::new {
+  my ($class, $target, $flags, $info) = @_;
+  if ($flags !~ /^\d+$/) {
+    $flags = Glib::Object::Introspection->convert_sv_to_flags (
+      "Gtk3::TargetFlags", $flags)
+  }
+  return Glib::Object::Introspection->invoke (
+    $_GTK_BASENAME, 'TargetEntry', 'new', $class, $target, $flags, $info);
+}
+
 =item * A Perl reimplementation of C<Gtk3::TextBuffer::create_tag> is provided.
 
 =cut
diff --git a/t/overrides.t b/t/overrides.t
index 9f09071..29fe619 100644
--- a/t/overrides.t
+++ b/t/overrides.t
@@ -7,7 +7,7 @@ use warnings;
 use utf8;
 use Encode;
 
-plan tests => 230;
+plan tests => 233;
 
 note('Gtk3::CHECK_VERSION and check_version');
 {
@@ -328,6 +328,30 @@ note('Gtk3::StyleContext::get');
   is (scalar @v, 2, 'two items returned');
 }
 
+note('Gtk3::TargetEntry');
+{
+  my $output;
+  open local *STDERR, '>', \$output;
+  my $target_entry = Gtk3::TargetEntry->new(
+    'Glib::Scalar',
+    Glib::Object::Introspection->convert_sv_to_flags (
+      "Gtk3::TargetFlags", qw/same-widget/),
+    0);
+  is($output, undef, 'convert_sv_to_flags');
+
+  $target_entry = Gtk3::TargetEntry->new(
+    'Glib::Scalar',
+    ${Gtk3::TargetFlags->new (qw/same-widget/)},
+    0);
+  is($output, undef, 'Gtk3::TargetFlags->new');
+
+  $target_entry = Gtk3::TargetEntry->new(
+    'Glib::Scalar',
+    qw/same-widget/,
+    0);
+  is($output, undef, 'override');
+}
+
 note('Gtk3::ToggleButton::new');
 {
   my $button = Gtk3::ToggleButton->new;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]