[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
Re: GtkImageView
- From: "Jeffrey Ratcliffe" <jeffrey ratcliffe gmail com>
- To: muppet <scott asofyet org>
- Cc: gtk2-perl List <gtk-perl-list gnome org>
- Subject: Re: GtkImageView
- Date: Mon, 24 Dec 2007 01:23:21 +0100
On 22/12/2007, muppet <scott asofyet org> wrote:
> interactive.pl: a quick transliteration of gtkimageview/tests/
> interactive.c. Note that the way this program uses the GtkImageTransp
> values in the UI manager actions doesn't really play nicely with perl
> syntax for enums, so there's a terrible, evil, horrible hack in its
> place. If you golf this down to more perlish code, using closures and
> such, you can sidestep the problem.
Do you mind my including this in an examples directory, attributing you?
I was getting:
No anim! Can't call method "set_sensitive" on an undefined value at
./examples/interactive.pl line 74.
*** unhandled exception in callback:
*** FATAL: invalid enum GtkImageTransp value 1, expecting: color /
GTK_IMAGE_TRANSP_COLOR, background / GTK_IMAGE_TRANSP_BACKGROUND, grid
/ GTK_IMAGE_TRANSP_GRID at ./examples/interactive.pl line 206.
*** ignoring at ./examples/interactive.pl line 602.
which the attached patch fixes. But I don't see how to do it
differently with a closure. I'd appreciate a hint.
I attempted to clean up the namespace with the second patch, but now
the tests fail:
t/animview.............NOK 3# Failed test 'The object isa
Gtk2::ImageView::Anim'
# in t/animview.t at line 23.
# The object isn't a 'Gtk2::ImageView::Anim' it's a 'Gtk2::ImageView'
t/imagescrollwin.......ok 1/3Usage: Gtk2::Table::new(class, rows,
columns, homogeneous=FALSE) at /usr/lib/perl5/Glib.pm line 211.
t/imagetooldragger.....ok
t/imagetoolselector....ok 1/4Can't locate object method
"get_selection" via package "Gtk2::ImageView::Tool::Selector" at
t/imagetoolselector.t line 29.
I must have done something right, as t/imagetooldragger is OK, but
t/imagescrollwin is particularly strange.
Thanks for any clue.
Jeff
Index: examples/interactive.pl
===================================================================
--- examples/interactive.pl (revision 447)
+++ examples/interactive.pl (working copy)
@@ -83,12 +100,16 @@
sprintf "(%d, %d)-[%d, %d]", $r->x, $r->y, $r->width, $r->height;
}
+sub get_enum_nick {
+ my ($package, $value) = @_;
+ my @v = Glib::Type->list_values ($package);
+ return $v[$value]{nick};
+}
+
sub get_enum_value {
my ($package, $string) = @_;
my @v = Glib::Type->list_values ($package);
for (my $i = 0 ; $i < @v ; $i++) {
use Data::Dumper;
print Dumper($v[$i]);
return $i if $v[$i]{name} eq $string or $v[$i]{nick} eq $string;
}
}
@@ -199,11 +220,11 @@
sub change_transp_type_cb {
my ($action, $current) = @_;
my $color = 0;
my $transp = $current->get_current_value ();
if ($transp == GTK_IMAGE_TRANSP_COLOR) {
$color = 0x000000;
}
- $view->set_transp ($transp, $color);
+ $view->set_transp (get_enum_nick('Gtk2::ImageTransp', $transp), $color);
}
sub menu_item_select_cb {
@@ -495,7 +516,7 @@
$uimanager->insert_action_group ($image_group, 0);
# Transform group
- my $transform_group = Gtk2::ActionGroup->new ("transform");
+ $transform_group = Gtk2::ActionGroup->new ("transform");
if ($transform_group) {
$transform_group->add_actions (\ transform_actions);
$transform_group->set_sensitive (FALSE);
Index: ImageNav.xs
===================================================================
--- ImageNav.xs (revision 441)
+++ ImageNav.xs (working copy)
@@ -1,7 +1,7 @@
#include "gtkimageviewperl.h"
-MODULE = Gtk2::ImageNav PACKAGE = Gtk2::ImageNav PREFIX = gtk_image_nav_
+MODULE = Gtk2::ImageView::Nav PACKAGE = Gtk2::ImageView::Nav PREFIX = gtk_image_nav_
GtkWidget *
Index: IImageTool.xs
===================================================================
--- IImageTool.xs (revision 441)
+++ IImageTool.xs (working copy)
@@ -79,7 +79,7 @@
}
-MODULE = Gtk2::IImageTool PACKAGE = Gtk2::IImageTool PREFIX = gtk_iimage_tool_
+MODULE = Gtk2::ImageView::Tool PACKAGE = Gtk2::ImageView::Tool PREFIX = gtk_iimage_tool_
gboolean
Index: ImageToolPainter.xs
===================================================================
--- ImageToolPainter.xs (revision 441)
+++ ImageToolPainter.xs (working copy)
@@ -1,7 +1,7 @@
#include "gtkimageviewperl.h"
-MODULE = Gtk2::ImageToolPainter PACKAGE = Gtk2::ImageToolPainter PREFIX = gtk_image_tool_painter_
+MODULE = Gtk2::ImageView::Tool::Painter PACKAGE = Gtk2::ImageView::Tool::Painter PREFIX = gtk_image_tool_painter_
GtkIImageTool *
Index: maps
===================================================================
--- maps (revision 443)
+++ maps (working copy)
@@ -1,9 +1,10 @@
GTK_TYPE_IMAGE_VIEW GtkImageView GObject Gtk2::ImageView
-GTK_TYPE_ANIM_VIEW GtkAnimView GObject Gtk2::AnimView
-GTK_TYPE_IIMAGE_TOOL GtkIImageTool GObject Gtk2::IImageTool
-GTK_TYPE_IMAGE_NAV GtkImageNav GObject Gtk2::ImageNav
-GTK_TYPE_IMAGE_SCROLL_WIN GtkImageScrollWin GObject Gtk2::ImageScrollWin
-GTK_TYPE_IMAGE_TOOL_DRAGGER GtkImageToolDragger GObject Gtk2::ImageToolDragger
-GTK_TYPE_IMAGE_TOOL_SELECTOR GtkImageToolSelector GObject Gtk2::ImageToolSelector
-GTKIMAGEVIEWPERL_TYPE_GTK_IMAGE_TRANSP GtkImageTransp GEnum Gtk2::ImageTransp
-GDK_TYPE_PIXBUF_DRAW_METHOD GdkPixbufDrawMethod GEnum Gtk2::IImageTool
+GTK_TYPE_ANIM_VIEW GtkAnimView GObject Gtk2::ImageView::Anim
+GTK_TYPE_IMAGE_NAV GtkImageNav GObject Gtk2::ImageView::Nav
+GTK_TYPE_IMAGE_SCROLL_WIN GtkImageScrollWin GObject Gtk2::ImageView::ScrollWin
+GTK_TYPE_IIMAGE_TOOL GtkIImageTool GObject Gtk2::ImageView::Tool
+GTK_TYPE_IMAGE_TOOL_DRAGGER GtkImageToolDragger GObject Gtk2::ImageView::Tool::Dragger
+GTK_TYPE_IMAGE_TOOL_PAINTER GtkImageToolPainter GObject Gtk2::ImageView::Tool::Painter
+GTK_TYPE_IMAGE_TOOL_SELECTOR GtkImageToolSelector GObject Gtk2::ImageView::Tool::Selector
+GTKIMAGEVIEWPERL_TYPE_GTK_IMAGE_TRANSP GtkImageTransp GEnum Gtk2::ImageView::Transp
+GDK_TYPE_PIXBUF_DRAW_METHOD GdkPixbufDrawMethod GEnum Gdk::Pixbuf::Draw::Method
Index: t/animview.t
===================================================================
--- t/animview.t (revision 441)
+++ t/animview.t (working copy)
@@ -18,9 +18,9 @@
# Insert your test code below, the Test::More module is use()ed here so read
# its man page ( perldoc Test::More ) for help writing this test script.
-my $animview = Gtk2::AnimView->new;
+my $animview = Gtk2::ImageView::Anim->new;
ok(defined $animview, 'new() works');
-isa_ok($animview, 'Gtk2::AnimView');
+isa_ok($animview, 'Gtk2::ImageView::Anim');
ok(defined $animview->get_is_playing, 'get_is_playing() works');
Index: t/imagescrollwin.t
===================================================================
--- t/imagescrollwin.t (revision 440)
+++ t/imagescrollwin.t (working copy)
@@ -22,7 +22,7 @@
$imageview->set_pixbuf(Gtk2::Gdk::Pixbuf->new_from_file ('t/gnome_logo.jpg'), TRUE);
-my $imagescrollwin = Gtk2::ImageScrollWin->new($imageview);
+my $imagescrollwin = Gtk2::ImageView::ScrollWin->new($imageview);
ok(defined $imagescrollwin, 'new() works');
-isa_ok($imagescrollwin, 'Gtk2::ImageScrollWin');
+isa_ok($imagescrollwin, 'Gtk2::ImageView::ScrollWin');
Index: t/imagetoolselector.t
===================================================================
--- t/imagetoolselector.t (revision 440)
+++ t/imagetoolselector.t (working copy)
@@ -22,9 +22,9 @@
$imageview->set_pixbuf(Gtk2::Gdk::Pixbuf->new_from_file ('t/gnome_logo.jpg'), TRUE);
-my $selector = Gtk2::ImageToolSelector->new($imageview);
+my $selector = Gtk2::ImageView::Tool::Selector->new($imageview);
ok(defined $selector, 'new() works');
-isa_ok($selector, 'Gtk2::ImageToolSelector');
+isa_ok($selector, 'Gtk2::ImageView::Tool::Selector');
my $rectangle = $selector->get_selection;
ok(defined $rectangle, 'get_selection() works');
Index: t/imagetooldragger.t
===================================================================
--- t/imagetooldragger.t (revision 440)
+++ t/imagetooldragger.t (working copy)
@@ -22,7 +22,7 @@
$imageview->set_pixbuf(Gtk2::Gdk::Pixbuf->new_from_file ('t/gnome_logo.jpg'), TRUE);
-my $iimagetool = Gtk2::ImageToolDragger->new($imageview);
+my $iimagetool = Gtk2::ImageView::Tool::Dragger->new($imageview);
ok(defined $iimagetool, 'new() works');
-isa_ok($iimagetool, 'Gtk2::ImageToolDragger');
+isa_ok($iimagetool, 'Gtk2::ImageView::Tool::Dragger');
Index: ImageToolDragger.xs
===================================================================
--- ImageToolDragger.xs (revision 441)
+++ ImageToolDragger.xs (working copy)
@@ -1,7 +1,7 @@
#include "gtkimageviewperl.h"
-MODULE = Gtk2::ImageToolDragger PACKAGE = Gtk2::ImageToolDragger PREFIX = gtk_image_tool_dragger_
+MODULE = Gtk2::ImageView::Tool::Dragger PACKAGE = Gtk2::ImageView::Tool::Dragger PREFIX = gtk_image_tool_dragger_
GtkIImageTool *
Index: AnimView.xs
===================================================================
--- AnimView.xs (revision 441)
+++ AnimView.xs (working copy)
@@ -1,7 +1,7 @@
#include "gtkimageviewperl.h"
-MODULE = Gtk2::AnimView PACKAGE = Gtk2::AnimView PREFIX = gtk_anim_view_
+MODULE = Gtk2::ImageView::Anim PACKAGE = Gtk2::ImageView::Anim PREFIX = gtk_anim_view_
## call as $widget = Gtk2::AnimView->new
GtkWidget_ornull *
Index: ImageScrollWin.xs
===================================================================
--- ImageScrollWin.xs (revision 441)
+++ ImageScrollWin.xs (working copy)
@@ -1,7 +1,7 @@
#include "gtkimageviewperl.h"
-MODULE = Gtk2::ImageScrollWin PACKAGE = Gtk2::ImageScrollWin PREFIX = gtk_image_scroll_win_
+MODULE = Gtk2::ImageView::ScrollWin PACKAGE = Gtk2::ImageView::ScrollWin PREFIX = gtk_image_scroll_win_
GtkWidget_ornull *
Index: ImageToolSelector.xs
===================================================================
--- ImageToolSelector.xs (revision 441)
+++ ImageToolSelector.xs (working copy)
@@ -1,7 +1,7 @@
#include "gtkimageviewperl.h"
-MODULE = Gtk2::ImageToolSelector PACKAGE = Gtk2::ImageToolSelector PREFIX = gtk_image_tool_selector_
+MODULE = Gtk2::ImageView::Tool::Selector PACKAGE = Gtk2::ImageView::Tool::Selector PREFIX = gtk_image_tool_selector_
GtkIImageTool *
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]