Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
Gtk2::ImageView(3)    User Contributed Perl Documentation   Gtk2::ImageView(3)

       Gtk2::ImageView -  General purpose image	viewer for Gtk+

	use Gtk2::ImageView;

	$window	= Gtk2::Window->new();

	$view =	Gtk2::ImageView->new;
	$view->set_pixbuf($pixbuf, TRUE);


       GtkImageView is a full-featured general purpose image viewer widget for
       GTK.  It	provides a scrollable, zoomable	pane in	which a	pixbuf can be

       The Gtk2::ImageView module allows a perl	developer to use the
       GtkImageView Widget.



   widget or undef = Gtk2::ImageView->new
       Returns a new Gtk2::ImageView with the following	default	values.

       black bg	: FALSE
       fitting : TRUE
       image tool : a Gtk2::ImageView::Tool::Dragger instance
       interpolation mode : GDK_INTERP_BILINEAR
       offset :	(0, 0)
       pixbuf :	NULL
       show cursor: TRUE
       show frame : TRUE
       transp :	GTK_IMAGE_TRANSP_GRID
       zoom : 1.0

   boolean = $view->get_black_bg
       Returns TRUE if the view	renders	the widget on a	black background,
       otherwise FALSE.

   $view->set_black_bg ($black_bg)
       o   $black_bg (boolean)

       If TRUE,	the view uses a	black background. If FALSE, the	view uses the
       default (normally gray) background.

       The default value is FALSE.

   list	= $view->get_check_colors
       Reads the two colors used to draw transparent parts of images with an
       alpha channel. Note that	if the transp setting of the view is
       will be equal.

   $view->damage_pixels	($rect)
       o   $rect (Gtk2::Gdk::Rectangle)

       Mark the	pixels in the rectangle	as damaged. That the pixels are
       damaged means that they have been modified and that the view must
       redraw them to ensure that the visible part of the image	corresponds to
       the pixels in that image. Calling this method emits the
       ::pixbuf-changed	signal.

       This method must	be used	when modifying the image data:

	   // Drawing something	cool in	the area 20,20 - 60,60 here...
	   // And force	an update
	   $view->damage_pixels	(Gtk2::Gdk::Rectangle->new(20, 20, 40, 40);

       If the whole pixbuf has been modified then rect should be NULL to
       indicate	that a total update is needed.

       See also	gtk_image_view_set_pixbuf().

       view : a	Gtk2::ImageView
       view : a	Gtk2::Gdk::Rectangle in	image space coordinates	to mark	as
       damaged or NULL,	to mark	the whole pixbuf as damaged.

   rectangle = $view->get_draw_rect
       Get the rectangle in the	widget where the pixbuf	is painted, or undef
       if the view is not allocated or has no pixbuf.

       For example, if the widgets allocated size is 100, 100 and the pixbufs
       size is 50, 50 and the zoom factor is 1.0, then the pixbuf will be
       drawn centered on the widget. rect will then be (25,25)-[50,50].

       This method is useful when converting from widget to image or zoom
       space coordinates.

   boolean = $view->get_fitting
       Returns TRUE if the view	fits the image,	FALSE otherwise.

   $view->set_fitting ($fitting)
       o   $fitting (boolean)

       Sets whether to fit or not. If TRUE, then the view will adapt the zoom
       so that the whole pixbuf	is visible.

       Setting the fitting causes the widget to	immediately repaint itself.

       Fitting is by default TRUE.

       view : a	Gtk2::ImageView
       fitting : whether to fit	the image or not

   rectangle = $view->image_to_widget_rect ($rect_in)
       o   $rect_in (Gtk2::Gdk::Rectangle)

       Converts	a rectangle in image space coordinates to widget space
       coordinates.  If	the view is not	realized, or if	it contains no pixbuf,
       then the	conversion was unsuccessful, FALSE is returned and rect_out is
       left unmodified.

       Note that this function may return a rectangle that is not visible on
       the widget.

   interptype =	$view->get_interpolation
       Returns the current interpolation mode of the view.

   $view->set_interpolation ($interp)
       o   $interp (Gtk2::Gdk::InterpType)

       Sets the	interpolation mode of how the view. GDK_INTERP_HYPER is	the
       slowest,	but produces the best results. GDK_INTERP_NEAREST is the
       fastest,	but provides bad rendering quality. GDK_INTERP_BILINEAR	is a
       good compromise.

       Setting the interpolation mode causes the widget	to immidiately repaint

       The default interpolation mode is GDK_INTERP_BILINEAR.

       view : a	Gtk2::ImageView
       interp :	The Gtk2::Gdk::InterpType to use. One of GDK_INTERP_NEAREST,

   string = Gtk2::ImageView->library_version
       Returns the version of the underlying GtkImageView C library

   $view->set_offset ($x, $y, $invalidate=FALSE)
       o   $x (double)

       o   $y (double)

       o   $invalidate (boolean)

       Sets the	offset of where	in the image the GtkImageView should begin
       displaying image	data.

       The offset is clamped so	that it	will never cause the GtkImageView to
       display pixels outside the pixbuf. Setting this attribute causes	the
       widget to repaint itself	if it is realized.

       If invalidate is	TRUE, the views	entire area will be invalidated
       instead of redrawn immidiately. The view	is then	queued for redraw,
       which means that	additional operations can be performed on it before it
       is redrawn.

       The difference can sometimes be important like when you are overlaying
       data and	get flicker or artifacts when setting the offset. If that
       happens,	setting	invalidate to TRUE could fix the problem. See the
       source code to GtkImageToolSelector for an example.

       Normally, invalidate should always be FALSE because it is much faster
       to repaint immidately than invalidating.

       view : a	Gtk2::ImageView
       x : X-component of the offset in	zoom space coordinates.
       y : Y-component of the offset in	zoom space coordinates.
       invalidate : whether to invalidate the view or redraw immediately,

   pixbuf or undef = $view->get_pixbuf
       Returns the pixbuf this view shows.

   $view->set_pixbuf ($pixbuf, $reset_fit=TRUE)
       o   $pixbuf (Gtk2::Gdk::Pixbuf or undef)

       o   $reset_fit (boolean)

       Sets the	pixbuf to display, or NULL to not display any pixbuf.
       Normally, reset_fit should be TRUE which	enables	fitting. Which means
       that, initially,	the whole pixbuf will be shown.

       Sometimes, the fit mode should not be reset. For	example, if
       GtkImageView is showing an animation, it	would be bad to	reset the fit
       mode for	each new frame.	 The parameter should then be FALSE which
       leaves the fit mode of the view untouched.

       This method should not be used if merely	the contents of	the pixbuf has
       changed.	 See gtk_image_view_damage_pixels() for	that.

       If reset_fit is TRUE, the zoom-changed signal is	emitted, otherwise
       not. The	pixbuf-changed signal is also emitted.

       The default pixbuf is NULL.

       view : a	Gtk2::ImageView
       pixbuf :	The pixbuf to display.
       reset_fit : Whether to reset fitting or not.

   boolean = $view->get_show_cursor
       Returns TRUE if the cursor is shown when	the mouse is over the widget,
       otherwise FALSE.

   $view->set_show_cursor ($show_cursor)
       o   $show_cursor	(boolean)

       Sets whether to show the	mouse cursor when the mouse is over the	widget
       or not.	Hiding the cursor is useful when the widget is fullscreened.

       The default value is TRUE.

       view : a	Gtk2::ImageView
       show_cursor : whether to	show the cursor	or not

   boolean = $view->get_show_frame
       Returns TRUE if a one pixel frame is drawn around the pixbuf, otherwise

   $view->set_show_frame ($show_frame)
       o   $show_frame (boolean)

       Sets whether to draw a frame around the image or	not. When TRUE,	a one
       pixel wide frame	is shown around	the image. Setting this	attribute
       causes the widget to immediately	repaint	itself.

       The default value is TRUE.

   tool	= $view->get_tool
       Returns the currently bound image tool

   $view->set_tool ($tool)
       o   $tool (Gtk2::ImageView::Tool)

       Set the image tool to use. If the new tool is the same as the current
       tool, then nothing will be done.	Otherwise
       Gtk2::ImageView::Tool::pixbuf_changed() is called so that the tool has
       a chance	to generate initial data for the pixbuf.

       Setting the tool	causes the widget to immediately repaint itself.

       The default image tool is a Gtk2::ImageView::Tool::Dragger instance.
       See also	Gtk2::ImageView::Tool.

       view : a	Gtk2::ImageView
       tool : The image	tool to	use (must not be NULL)

   $view->set_transp ($transp, $transp_color=0x000000)
       o   $transp (Gtk2::ImageView::Transp)

       o   $transp_color (integer)

       Sets how	the view should	draw transparent parts of images with an alpha
       channel.	 If transp is GTK_IMAGE_TRANSP_COLOR, the specified color will
       be used.	Otherwise the transp_color argument is ignored.	If it is
       GTK_IMAGE_TRANSP_BACKGROUND, the	background color of the	widget will be
       used. If	it is GTK_IMAGE_TRANSP_GRID, then a grid with light and	dark
       gray boxes will be drawn	on the transparent parts.

       Calling this method causes the widget to	immediately repaint. It	also
       causes the pixbuf-changed signal	to be emitted. This is done so that
       other widgets (such as GtkImageNav) will	have a chance to render	a view
       of the pixbuf with the new transparency settings.

       view : a	Gtk2::ImageView
       transp :	The Gtk2::ImageView::Transp to use when	drawing	transparent
       images, default GTK_IMAGE_TRANSP_GRID.
       transp_color : Color to use when	drawing	transparent images, default

   rectangle = $view->get_viewport
       Returns a rectangle with	the current viewport. If pixbuf	is NULL	or
       there is	no viewport, undef is returned.

       The current viewport is defined as the rectangle, in zoomspace
       coordinates as the area of the loaded pixbuf the	Gtk2::ImageView	is
       currently showing.

   double = $view->get_zoom
       Get the current zoom factor of the view.

       Zoom in the view	one step. Calling this method causes the widget	to
       immediately repaint itself.

       view : a	Gtk2::ImageView

       Zoom out	the view one step. Calling this	method causes the widget to
       immediately repaint itself.

       view : a	Gtk2::ImageView

   $view->set_zoom ($zoom)
       o   $zoom (double)

       Sets the	zoom of	the view.

       Fitting is always disabled after	this method has	run. The zoom-changed
       signal is unconditionally emitted.

       view : a	Gtk2::ImageView
       zoom : the new zoom factor

       mouse-wheel-scroll (Gtk2::ImageView, Gtk2::Gdk::ScrollDirection)
       pixbuf-changed (Gtk2::ImageView)
       scroll (Gtk2::ImageView,	Gtk2::ScrollType, Gtk2::ScrollType)
       set-fitting (Gtk2::ImageView, integer)
       set-scroll-adjustments (Gtk2::ImageView,	Gtk2::Adjustment,
       set-zoom	(Gtk2::ImageView, double)
       zoom-changed (Gtk2::ImageView)
       zoom-in (Gtk2::ImageView)
       zoom-out	(Gtk2::ImageView)

   enum	Gtk2::Gdk::InterpType
       o   'nearest' / 'GDK_INTERP_NEAREST'

       o   'tiles' / 'GDK_INTERP_TILES'

       o   'bilinear' /	'GDK_INTERP_BILINEAR'

       o   'hyper' / 'GDK_INTERP_HYPER'

   enum	Gtk2::Gdk::ScrollDirection
       o   'up'	/ 'GDK_SCROLL_UP'

       o   'down' / 'GDK_SCROLL_DOWN'

       o   'left' / 'GDK_SCROLL_LEFT'

       o   'right' / 'GDK_SCROLL_RIGHT'

   enum	Gtk2::ImageView::Transp
       o   'color' / 'GTK_IMAGE_TRANSP_COLOR'

       o   'background'	/ 'GTK_IMAGE_TRANSP_BACKGROUND'

       o   'grid' / 'GTK_IMAGE_TRANSP_GRID'

   enum	Gtk2::ScrollType
       o   'none' / 'GTK_SCROLL_NONE'

       o   'jump' / 'GTK_SCROLL_JUMP'

       o   'step-backward' / 'GTK_SCROLL_STEP_BACKWARD'

       o   'step-forward' / 'GTK_SCROLL_STEP_FORWARD'

       o   'page-backward' / 'GTK_SCROLL_PAGE_BACKWARD'

       o   'page-forward' / 'GTK_SCROLL_PAGE_FORWARD'

       o   'step-up' / 'GTK_SCROLL_STEP_UP'

       o   'step-down' / 'GTK_SCROLL_STEP_DOWN'

       o   'page-up' / 'GTK_SCROLL_PAGE_UP'

       o   'page-down' / 'GTK_SCROLL_PAGE_DOWN'

       o   'step-left' / 'GTK_SCROLL_STEP_LEFT'

       o   'step-right'	/ 'GTK_SCROLL_STEP_RIGHT'

       o   'page-left' / 'GTK_SCROLL_PAGE_LEFT'

       o   'page-right'	/ 'GTK_SCROLL_PAGE_RIGHT'

       o   'start' / 'GTK_SCROLL_START'

       o   'end' / 'GTK_SCROLL_END'

       GtkImageView Reference Manual at

       perl(1),	Glib(3pm), Gtk2(3pm), Gtk2::ImageViewer	- an alternative image
       viewer widget.

       Jeffrey Ratcliffe <Jeffrey dot Ratcliffe	at gmail dot com>, with
       patches from muppet <scott at asofyet dot org>, Torsten Schoenfeld
       <kaffetisch at web dot de> and Emanuele Bassi <ebassi at	gmail dot com>
       Kevin Ryde <user42 at>

       The DESCRIPTION section of this page is adapted from the	documentation
       of GtkImageView.

       Copyright (c) 2007 -- 2008 by Jeffrey Ratcliffe
       <> see AUTHORS for complete list of

       This library is free software; you can redistribute it and/or modify it
       under the terms of the GNU Lesser General Public	License	as published
       by the Free Software Foundation;	either version 3 of the	License, or
       (at your	option)	any later version.

       This library is distributed in the hope that it will be useful, but
       WITHOUT ANY WARRANTY; without even the implied warranty of
       Library General Public License for more details.

       You should have received	a copy of the GNU Lesser General Public
       License along with this program.	 If not, see

       Copyright (C) 2007 by Jeffrey Ratcliffe.

       This software is	licensed under the GPL-3; see Gtk2::ImageView for a
       full notice.

perl v5.32.1			  2021-02-28		    Gtk2::ImageView(3)


Want to link to this manual page? Use this URL:

home | help