Re: window resizing
- From: Jaap Karssenberg <j g karssenberg student utwente nl>
- To: gtk-perl-list gnome org
- Subject: Re: window resizing
- Date: Sat, 06 Oct 2007 13:31:42 +0000
Hi,
Hmmm looks like "$window->set_policy()" should be available to set that
behavior [1]. However perl Gtk2::Window does not seem to have a binding
for this call. The C docs suggest to use set_resizable instead of
set_policy, but no mention there of any auto behavior. Anyone knows why
this call is missing ?
[1]
http://library.gnome.org/devel/gtk/2.11/GtkWindow.html#gtk-window-set-policy
Regards,
Jaap
Laurent Klinger wrote:
Hello,
I have a simple application, whose toplevel window has the following
structure :
+-VBox----------------------+
| [Image] |
+---------------------------+
|+--HBox-------------------+|
|| [Next] [Quit]||
|+-------------------------+|
+---------------------------+
When it starts, it displays an image. Upon clicking on the 'Next'
button, another image is read and displayed.
When the second image displayed is larger than the first, everything
resizes nicely to accomodate. However, when the second image is smaller
than the first, the window does not shrink: [Image] has some empty
space on both sides, while the HBox has some empty space below. I can
manually resize (downsize) the window, but it would be nicer if it
would fit tightly to its content by itself. How do you ask GTK to
adopt this kind of behaviour?
Thank you very much for your help,
laurent
----------------------------------------------------------------------------
#!/usr/bin/perl -w
use strict;
use Gtk2 -init;
use Glib qw/TRUE FALSE/;
my $image = undef;
my $fig = 1;
#===== create window
my $window = Gtk2::Window->new ('toplevel');
$window->set_resizable( TRUE );
$window->signal_connect( delete_event => \&Quit );
#===== add widgets
GetImage( $fig );
my $next_btn = Gtk2::Button->new( 'Next' );
$next_btn->signal_connect( 'clicked', sub{ GetImage( ++$fig ); } );
my $close_btn = Gtk2::Button->new_from_stock( 'gtk-close' );
$close_btn->signal_connect( 'clicked' , sub{ Gtk2->main_quit; } ) ;
my $hbox = Gtk2::HBox->new( FALSE, 5 );
$hbox->pack_end( $close_btn, FALSE, TRUE, 5 );
$hbox->pack_end( $next_btn, FALSE, TRUE, 5 );
my $vbox = Gtk2::VBox->new(FALSE,0);
$vbox->pack_start( $image, FALSE, FALSE, 0 );
$vbox->pack_start( $hbox, FALSE, FALSE, 10 );
$window->add($vbox);
$window->set_position( 'center' );
$window->show_all;
Gtk2->main;
#================================================================================
sub GetImage
{
my $id = shift;
my $pixbuf = Gtk2::Gdk::Pixbuf->new_from_file( "fig${id}.png" );
if ( defined $image ) {
$image->clear;
$image->set_from_pixbuf( $pixbuf );
} else {
$image = Gtk2::Image->new_from_pixbuf( $pixbuf );
}
}
_______________________________________________
gtk-perl-list mailing list
gtk-perl-list gnome org
http://mail.gnome.org/mailman/listinfo/gtk-perl-list
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]