Wise Monks,
I am trying to use Wx::FontDialog on Windows XP to let the user select a font. However, I don't seem to be able to retrieve the font information from the dialog box. I have created a short demo (adapted from
one) of the problem below.
The way I understand it (may or may not be correct) is as follows: The GetFontData method returns a reference to a Wx::FontData object. From this object, I should be able to get the Wx::Font that the user chose. However, I always get output as seen here:
Shouldn't $font be a reference to Wx::Font instead of a "1"? My setup is as follows:
use Wx;
package MyApp;
use strict;
use vars qw(@ISA);
@ISA=qw(Wx::App);
$| = 1;
sub OnInit {
my($this) = @_;
my($frame) = MyFrame->new("Font Selector Demo", Wx::Point->new(50,
+ 50), Wx::Size->new(450, 350));
$this->SetTopWindow($frame);
$frame->Show(1);
1;
}
package MyFrame;
use strict;
use vars qw(@ISA);
@ISA=qw(Wx::Frame);
use Wx::Event qw(EVT_MENU);
use Wx qw(wxBITMAP_TYPE_ICO wxMENU_TEAROFF);
sub new {
my($class) = shift;
my($this) = $class->SUPER::new(undef, -1, $_[0], $_[1], $_[2]);
my($mfile) = Wx::Menu->new(undef, wxMENU_TEAROFF);
my($ID_TEST, $ID_EXIT) = (1, 2);
$mfile->Append($ID_TEST, "&Test Font Dialog\tCtrl-T", "Display a f
+ont dialog");
$mfile->Append($ID_EXIT, "E&xit\tAlt-X", "Quit this program");
my($mbar) = Wx::MenuBar->new();
$mbar->Append($mfile, "&Test");
$this->SetMenuBar($mbar);
EVT_MENU($this, $ID_TEST, \&OnTest);
EVT_MENU($this, $ID_EXIT, \&OnQuit);
$this;
}
sub OnQuit {
my($this, $event) = @_;
$this->Close(1);
}
use Wx qw(wxID_OK wxOK wxICON_INFORMATION wxVERSION_STRING);
sub OnTest {
my($this, $event) = @_;
my $fontdata;
my $font;
my $facename;
my $dialog = Wx::FontDialog->new($this);
$dialog->Create($this);
if ($dialog->ShowModal() == wxID_OK)
{
print "OK button pressed, getting font info...\n";
$fontdata = $dialog->GetFontData;
print " Font Data: $fontdata\n";
$font = $fontdata->GetChosenFont();
print " Font: $font\n";
}
}
package main;
my($app) = MyApp->new();
$app->MainLoop();
2005-03-30 Janitored by Arunbear - added readmore tags, as per Monastery guidelines