#!/usr/bin/perl use warnings; use strict; use Glib qw/TRUE FALSE/; use Gtk2 '-init'; #GTK_STATE_NORMAL State during normal operation. #GKT_STATE_ACTIVE State of a currently active widget, such as a depressed button. #GTK_STATE_PRELIGHT State indicating that the mouse pointer is over the widget #GTK_STATE_SELECTED State of a selected item, such the selected row in a list. #GTK_STATE_INSENSITIVE State indicating that the widget is unresponsive to user actions. #these parsings should work, BUT they DON'T for Buttons :-( Gtk2::Rc->parse_string(<<__); style "default" { bg_pixmap[NORMAL] = "" bg_pixmap[INSENSITIVE] = "" bg_pixmap[ACTIVE] = "" bg_pixmap[PRELIGHT] = "" bg[NORMAL] = { 1.0, 1.0, 1.0 } }class "GtkWidget" style "default" __ Gtk2::Rc->parse_string(<<__); style "button" { bg_pixmap[NORMAL] = "" bg_pixmap[INSENSITIVE] = "" bg_pixmap[ACTIVE] = "" bg_pixmap[PRELIGHT] = "" bg[NORMAL] = { 1.0, 1.0, 1.0 } }class "GtkButton" style "button" __ my $window = Gtk2::Window->new('toplevel'); $window->set_title('Z'); $window ->signal_connect( 'destroy' => \&delete_event ); $window->set_border_width(10); $window->set_size_request(300,200); my $greyh = Gtk2::Gdk::Color->new (0xCCCC,0xCCCC,0xCCCC); my $greyl = Gtk2::Gdk::Color->new (0x9999,0x9999,0x9999); my $redh = Gtk2::Gdk::Color->new (0xFFFF,0,0); my $redl = Gtk2::Gdk::Color->new (0xAAAA,0,0); my $greenh = Gtk2::Gdk::Color->new (0,0xFFFF,0xEEEE); my $greenl = Gtk2::Gdk::Color->new (0,0xFFFF,0xCCCC); my $greend = Gtk2::Gdk::Color->new (0,0xFFFF,0); my $blueh = Gtk2::Gdk::Color->new (0,0xFFFF,0xFFFF); my $bluel = Gtk2::Gdk::Color->new (0,0xCCCC,0xFFFF); $window->modify_bg ('normal', $greenl); my $vbox = Gtk2::VBox->new( FALSE, 6 ); $window->add($vbox); $vbox->set_border_width(2); my $hbox= Gtk2::HBox->new( FALSE, 6 ); $vbox->pack_end($hbox,FALSE,FALSE,0); $hbox->set_border_width(2); my $frame0 = Gtk2::Frame->new('Controls'); $vbox->pack_end( $frame0, FALSE, FALSE, 0 ); $frame0->set_border_width(3); $frame0->modify_bg ('normal', $redl); #used for coloring frame my $coleventb0 = Gtk2::EventBox->new(); $frame0->add($coleventb0); my $hbox0 = Gtk2::HBox->new( FALSE, 6 ); $coleventb0->add($hbox0); $hbox0->set_border_width(3); $coleventb0-> modify_bg('normal', $greyl); my $button = Gtk2::Button->new_from_stock('gtk-quit'); $hbox0->pack_end( $button, FALSE, FALSE, 0 ); $button->signal_connect( clicked => \&delete_event ); my $button1 = Gtk2::Button->new('Color-test'); $hbox0->pack_end( $button1, FALSE, FALSE, 0 ); $button1->signal_connect( clicked => sub{ print chr(07),"\n"; # \n or use $|++ }); $button1->modify_bg ('normal', $bluel); $button1->modify_bg ('prelight', $blueh); $button1->modify_bg ('active', $greend); $coleventb0-> modify_bg('normal', $greyl); $window->show_all(); Gtk2->main; ##################################### sub delete_event { Gtk2->main_quit; return FALSE; } __END__ #!/usr/bin/perl use warnings; use strict; use Gtk2 -init; use Glib ':constants'; my $pwd = `pwd`; print "$pwd\n"; Gtk2::Rc->parse_string(<<__); pixmap_path '/home/zentara/perlplay/Gtk2/styles/background-from-base64-image' style "default" { bg_pixmap[NORMAL] = "" } class "*" style "default" __ my $window = Gtk2::Window->new('toplevel'); $window->signal_connect('delete_event' => sub { exit;}); $window->set_border_width(5); $window->set_position('center_always'); $window->set_default_size(500,500); $window->show(); print Gtk2::Rc->get_theme_dir,"\n"; Gtk2->main();