[gimp-perl] Font-select crashes if Gimp::Net - use Gtk2 then.
- From: Ed J <edj src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp-perl] Font-select crashes if Gimp::Net - use Gtk2 then.
- Date: Mon, 5 May 2014 06:13:58 +0000 (UTC)
commit 45f67e45906c7465677333a6072a84427fe377e5
Author: Ed J <edj src gnome org>
Date: Mon May 5 07:13:37 2014 +0100
Font-select crashes if Gimp::Net - use Gtk2 then.
UI/UI.pm | 73 +++++++++++++++++++++++----------------------------
examples/example-fu | 1 +
2 files changed, 34 insertions(+), 40 deletions(-)
---
diff --git a/UI/UI.pm b/UI/UI.pm
index 73709ea..e9c306e 100644
--- a/UI/UI.pm
+++ b/UI/UI.pm
@@ -449,46 +449,39 @@ sub interact($$$$@) {
&new_PF_STRING;
} elsif ($type == PF_FONT) {
- $a = new Gtk2::HBox 0,5;
- $default = 'Arial' unless $default;
- $value = 'Arial' unless $value;
- my $b = new Gimp::UI::FontSelectButton $desc, $default;
- $a->pack_start ($b, 1, 1, 0);
- push @setvals, sub { $b->set_font($_[0]) };
- push @getvals, sub { $b->get_font };
- set_tip $t $b,$desc;
-# _instrument($b);
-
-if (0) {
- my $fs = new Gtk2::FontSelectionDialog sprintf __"Font Selection Dialog (%s)", $desc;
- my $def = __"Helvetica 34";
- my $val;
- my $l = new Gtk2::Label "!error!";
- my $setval = sub {
- my($words);
- $val = $_[0];
- #Append a size to font name string if no size is given so
- #sample text will be displayed properly in font requester.
- my @words = split(/ /, $val);
- if (@words == 0 || $words[ words - 1] <= 0) {
- $val .= " 24";
- };
- unless (defined $val && $fs->set_font_name ($val)) {
- warn sprintf __"Illegal default font description for $function: %s\n", $val
- if defined $val;
- $val = $def;
- $fs->set_font_name ($val);
- }
- $l->set (label => " $val ");
- };
- $fs->ok_button->signal_connect (clicked => sub {$setval->($fs->get_font_name); $fs->hide});
- $fs->cancel_button->signal_connect (clicked => sub {$fs->hide});
- push @setvals, $setval;
- push @getvals, sub { $val };
- $a = new Gtk2::Button;
- $a->add ($l);
- $a->signal_connect (clicked => sub { show $fs });
-}
+ $default = 'Sans' unless $default;
+ $value = 'Sans' unless $value;
+ if ($Gimp::interface_pkg ne 'Gimp::Net') {
+ $a = new Gimp::UI::FontSelectButton $desc, $default;
+ push @setvals, sub { $a->set_font($_[0]) };
+ push @getvals, sub { $a->get_font };
+ set_tip $t $a,$desc;
+# _instrument($a);
+
+ } else {
+ # no GIMP ui available, use Gtk2 equivalent
+ my $fs = new Gtk2::FontSelectionDialog sprintf __"Font Selection Dialog (%s)", $desc;
+ my $val;
+ my $l = new Gtk2::Label "!error!";
+ my $setval = sub {
+ $val = shift;
+ $val =~ s#\s*(Bold)?\s*(Italic)?\s*\d+$##; # vim highlighter
+ unless (defined $val && $fs->set_font_name ("$val 10")) {
+ warn sprintf __"Illegal default font description for $function: %s\n", $val
+ if defined $val;
+ $val = $default;
+ $fs->set_font_name ("$val 10");
+ }
+ $l->set (label => " $val ");
+ };
+ $fs->ok_button->signal_connect (clicked => sub {$setval->($fs->get_font_name); $fs->hide});
+ $fs->cancel_button->signal_connect (clicked => sub {$fs->hide});
+ push @setvals, $setval;
+ push @getvals, sub { $val };
+ $a = new Gtk2::Button;
+ $a->add ($l);
+ $a->signal_connect (clicked => sub { show $fs });
+ }
} elsif ($type == PF_SPINNER) {
my $adj = _new_adjustment ($value, $extra);
diff --git a/examples/example-fu b/examples/example-fu
index d157bab..6e3eefd 100755
--- a/examples/example-fu
+++ b/examples/example-fu
@@ -50,6 +50,7 @@ descriptive help message here!
[PF_SPINNER , "height" , "Image height" , 100, [100, 200]],
[PF_STRING , "text" , "Message" , "example text"],
[PF_TEXT , "longtext" , "Longer text" , "more example text"],
+ [PF_FILE , "file" , "File" , "/tmp"],
[PF_INT32 , "bordersize" , "Border size" , 10],
[PF_FLOAT , "borderwidth" , "Border width" , 1/5],
[PF_FONT , "font" , "Font"],
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]