Re: Gtk RC file - How to set bagkground pixmap to only one window?
- From: zentara <zentara1 sbcglobal net>
- To: gtk-list gnome org
- Subject: Re: Gtk RC file - How to set bagkground pixmap to only one window?
- Date: Mon, 8 Dec 2008 12:32:55 -0500
On Mon, 8 Dec 2008 12:13:41 +0530
"Harinandan S" <harinandans gmail com> wrote:
>I want to set a background pixmap of only one window. I tried example rc
>file but that sets background of all windows to the same image. I also tried
>calling
>gtk_widget_set_name (ui_home_window,"home window");
>in my rc file. I also loaded the rc file but I'm not seeing any changes. I
>was able to set the same pixmap to all windows but how to set it only for
>one window?
>
>Regards,
>Harinandan S
See Tadej Borovšak's response to a similar question a few days ago,
for a c example.
I'm only good at Perl, and this is how you would do it in Perl.
The mainwindow has the default pixmap theme, but the toplevel
has a custom background image.
#!/usr/bin/perl
use warnings;
use strict;
use Gtk2 '-init';
my $window = Gtk2::Window->new;
$window->set_title("Hello world");
$window->signal_connect( destroy => sub { Gtk2->main_quit; } );
my $vbox = Gtk2::VBox->new();
$vbox->set( "border_width" => 10 );
$window->add($vbox);
my $entry = Gtk2::Entry->new();
$vbox->pack_start( $entry, 0, 0, 5 );
my $red = Gtk2::Gdk::Color->new (0xFFFF,0x0000,0x0000);
my $label = Gtk2::Label->new('Normal pixmap theme ');
$label->modify_fg('normal', $red);
$vbox->pack_start( $label, 0, 0, 5 ); # expand?, fill?, padding
my $button = Gtk2::Widget->new( "Gtk2::Button", label => "Quit" );
$button->signal_connect( clicked => sub{exit} );
$vbox->pack_start( $button, 0, 0, 5 );
my $button1 = Gtk2::Widget->new( "Gtk2::Button", label => "Launch new toplevel" );
$button1->signal_connect( clicked => \&launch );
$vbox->pack_start( $button1, 0, 0, 5 );
$window->show_all();
Gtk2->main;
sub launch{
my $toplevel = Gtk2::Window->new;
my $back_pixbuf = Gtk2::Gdk::Pixbuf->new_from_file("1Zen16.png");
my ($pixmap,$mask) = $back_pixbuf->render_pixmap_and_mask(255);
my $style = $toplevel->get_style();
$style=$style->copy();
$style->bg_pixmap("normal",$pixmap);
$toplevel->set_style($style);
my $vbox = Gtk2::VBox->new();
$vbox->set( "border_width" => 10 );
$toplevel->add($vbox);
my $entry = Gtk2::Entry->new();
$vbox->pack_start( $entry, 0, 0, 5 );
my $white = Gtk2::Gdk::Color->new (0xFFFF,0xFFFF,0xFFFF);
my $label = Gtk2::Label->new('Custom pixmap override style');
$label->modify_fg('normal', $white);
$vbox->pack_start( $label, 0, 0, 5 ); # expand?, fill?, padding
$toplevel->show_all();
}
__END__
zentara
--
I'm not really a human, but I play one on earth.
http://zentara.net/Remember_How_Lucky_You_Are.html
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]