diff options
author | Thierry Vignaud <tvignaud@mandriva.org> | 2004-02-12 23:42:51 +0000 |
---|---|---|
committer | Thierry Vignaud <tvignaud@mandriva.org> | 2004-02-12 23:42:51 +0000 |
commit | 1dca81927d24908a4d36ec5d300ab347029df084 (patch) | |
tree | f6f5870c3ece59b41c55b6df8fe9edd94a6b174e | |
parent | a74fb22d7575da40958f6f4c94c72458fffc780a (diff) | |
download | control-center-1dca81927d24908a4d36ec5d300ab347029df084.tar control-center-1dca81927d24908a4d36ec5d300ab347029df084.tar.gz control-center-1dca81927d24908a4d36ec5d300ab347029df084.tar.bz2 control-center-1dca81927d24908a4d36ec5d300ab347029df084.tar.xz control-center-1dca81927d24908a4d36ec5d300ab347029df084.zip |
(Gtk2::Banner) new look: render text the normal theme color on a
hatched area
-rwxr-xr-x | control-center | 53 |
1 files changed, 35 insertions, 18 deletions
diff --git a/control-center b/control-center index a441e388..40aa5366 100755 --- a/control-center +++ b/control-center @@ -561,7 +561,7 @@ foreach my $notebook ($notebook_global, $banner_notebook) { # banner : my $font = N("_banner font:\nSans 15"); -add2notebook($banner_notebook, "", Gtk2::Banner->new("title-back", "/usr/share/icons/large/drakconf.png", +add2notebook($banner_notebook, "", Gtk2::Banner->new("/usr/share/icons/large/drakconf.png", N("Welcome to the Mandrake Control Center"), $font)); @@ -641,7 +641,7 @@ foreach (@tree) { # $w_ret->vscrollbar->set_size_request(19, undef); push @main_icons, $box; - add2notebook($banner_notebook, "", Gtk2::Banner->new("title-back", $icon, $text, $font)); + add2notebook($banner_notebook, "", Gtk2::Banner->new($icon, $text, $font)); } gtkadd($main_page, @@ -1091,24 +1091,41 @@ sub scale { package Gtk2::Banner; use ugtk2 qw(:helpers :wrappers); -#use common; + +sub set_pixmap { + my ($darea) = @_; + return if !$darea->realized; + my $window = $darea->window; + my $pixmap = $darea->{back_pixmap} ||= Gtk2::Gdk::Pixmap->new($window, 1, 2, $window->get_depth); + + my $style = $darea->get_style; + $pixmap->draw_points($style->light_gc('normal'), 0, 0); + $pixmap->draw_points($style->mid_gc('normal'), 0, 1); + $darea->window->set_back_pixmap($pixmap); + + $darea->{layout} = $darea->create_pango_layout($darea->{text}); + $darea->signal_connect(expose_event => sub { + my $height = $darea->{icon}->get_height; + $darea->{icon}->render_to_drawable($window, $darea->style->bg_gc('normal'), + 0, 0, 10, 10, -1, -1, 'none', 0, 0); + $darea->window->draw_layout($style->text_gc('normal'), $height + 20, 20, $darea->{layout}); + }); +} + sub new { - my ($_class, $background, $icon, $text, $font) = @_; - my $fixed = gtkput(gtksignal_connect(Gtk2::Fixed->new, - "configure-event" => sub {}, - ), - gtkpack_(Gtk2::HBox->new, - 0, gtkset_size_request(Gtk2::Label->new, 10, -1), - 0, my $img = gtkcreate_img($icon), - 1, gtkmodify_font(gtkset_size_request(Gtk2::WrappedLabel->new($text), $h{WIDTH} - 100, 75), $font) - ), - ); - - $img->{pixbuf} = gtkcreate_pixbuf($icon); - $img->signal_connect("configure-event" => sub { set_back_pixbuf($img, $img->{pixbuf}) }); - - return $fixed; + my ($_class, $icon, $text, $font) = @_; + + my $darea = Gtk2::DrawingArea->new; + $darea->set_size_request(-1, 100); + $darea->modify_font(Gtk2::Pango::FontDescription->from_string(common::N("utopia 15"))); + $darea->{icon} = ugtk2::gtkcreate_pixbuf($icon); + $darea->{text} = $text; + + $darea->signal_connect(realize => \&set_pixmap); + $darea->signal_connect("style-set" => \&set_pixmap); + + return $darea; } package Gtk2::WebIcon; |