summaryrefslogtreecommitdiffstats
path: root/perl-install/my_gtk.pm
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install/my_gtk.pm')
-rw-r--r--perl-install/my_gtk.pm42
1 files changed, 38 insertions, 4 deletions
diff --git a/perl-install/my_gtk.pm b/perl-install/my_gtk.pm
index ff34324b0..ebce6f49d 100644
--- a/perl-install/my_gtk.pm
+++ b/perl-install/my_gtk.pm
@@ -6,8 +6,8 @@ use vars qw(@ISA %EXPORT_TAGS @EXPORT_OK);
@ISA = qw(Exporter);
%EXPORT_TAGS = (
- helpers => [ qw(create_okcancel createScrolledWindow create_menu create_notebook create_packtable create_hbox create_adjustment create_box_with_title) ],
- wrappers => [ qw(gtksignal_connect gtkpack gtkpack_ gtkappend gtkadd gtkset_usize gtkset_justify gtkset_active gtkshow gtkdestroy) ],
+ helpers => [ qw(create_okcancel createScrolledWindow create_menu create_notebook create_packtable create_hbox create_vbox create_adjustment create_box_with_title) ],
+ wrappers => [ qw(gtksignal_connect gtkpack gtkpack_ gtkappend gtkadd gtkset_usize gtkset_justify gtkset_active gtkshow gtkdestroy gtkset_mousecursor gtkset_background) ],
ask => [ qw(ask_warn ask_okcancel ask_yesorno ask_from_entry ask_from_list ) ],
);
$EXPORT_TAGS{all} = [ map { @$_ } values %EXPORT_TAGS ];
@@ -118,6 +118,33 @@ sub gtkadd($@) {
$w
}
+sub gtkset_mousecursor($) {
+ my ($type) = @_;
+ Gtk->init;
+
+ my $root = Gtk::Gdk::Window->new_foreign(Gtk::Gdk->ROOT_WINDOW);
+ $root->set_cursor(Gtk::Gdk::Cursor->new($type));
+}
+
+sub gtkset_background($$$) {
+ my ($r, $g, $b) = @_;
+
+ Gtk->init;
+ my $root = Gtk::Gdk::Window->new_foreign(Gtk::Gdk->ROOT_WINDOW);
+ my $gc = Gtk::Gdk::GC->new($root);
+
+ my $color = bless {}, 'Gtk::Gdk::Color';
+ $color->red ($r << 8);
+ $color->green($g << 8);
+ $color->blue ($b << 8);
+ $color = $root->get_colormap->color_alloc($color);
+ $gc->set_foreground($color);
+ $root->set_background($color);
+
+ my ($h, $w) = $root->get_size;
+
+ $root->draw_rectangle($gc, 1, 0, 0, $w, $h);
+}
@@ -139,7 +166,7 @@ sub create_okcancel($;$$) {
sub create_box_with_title($@) {
my $o = shift;
$o->{box} = gtkpack_(new Gtk::VBox(0,0),
- 0, map({ new Gtk::Label(" $_ ") } @_),
+ map({ 0, $_ } @_),
0, new Gtk::HSeparator,
)
}
@@ -204,6 +231,11 @@ sub create_hbox {
$w->set_layout(-spread);
$w;
}
+sub create_vbox {
+ my $w = new Gtk::VButtonBox;
+ $w->set_layout(-spread);
+ $w;
+}
sub _create_window($$) {
@@ -291,7 +323,7 @@ sub _ask_from_list($$$$) {
gtkadd($o->{window},
gtkpack($o->create_box_with_title(@$messages),
@widgets > 15 ?
- gtkset_usize(createScrolledWindow($list), 0, 300) :
+ gtkset_usize(createScrolledWindow($list), 200, 300) :
$list));
$widgets[$def]->grab_focus;
}
@@ -329,3 +361,5 @@ sub _ask_okcancel($@) {
# $w->set_alignment(!/W/i, !/N/i);
# $w
#}
+
+