summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThierry Vignaud <tvignaud@mandriva.org>2004-02-12 23:42:51 +0000
committerThierry Vignaud <tvignaud@mandriva.org>2004-02-12 23:42:51 +0000
commit1dca81927d24908a4d36ec5d300ab347029df084 (patch)
treef6f5870c3ece59b41c55b6df8fe9edd94a6b174e
parenta74fb22d7575da40958f6f4c94c72458fffc780a (diff)
downloadcontrol-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-xcontrol-center53
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;