I am trying to load a dialog from an xrc file, created by DialogBlocks,
and I get this error:
Gtk-CRITICAL **: gtk_window_set_modal: assertion `GTK_IS_WINDOW
(window)' failed
Any help would be appreciated.
Peter
#!/usr/bin/perl -w
package MyDialog;
use strict;
use Wx qw(:everything);
use Wx::Event qw(:everything);
use Wx::XRC ;
use base qw(Wx::Dialog);
sub new {
my( $class, $label ) = @_;
my $dialog = $class->SUPER::new ;
my $xrc = Wx::XmlResource->new();
$xrc->InitAllHandlers();
$xrc->Load("test.xrc") or die "Load failed : $!\n" ;
$xrc->LoadOnDialog($dialog,undef, $class) ;
$dialog->ShowModal ;
$dialog->Destroy ;
return $dialog;
}
sub OnClose {
my( $this, $event ) = @_;
$this->Destroy;
}
package main;
use Wx ;
my $app = Wx::SimpleApp->new;
my $dialog = MyDialog->new( "wxPerl dialog sample" );
$dialog->Show;
$app->MainLoop;
<?xml version="1.0" encoding="UTF-8"?>
<resource version="2.3.0.1" xmlns="http://www.wxwidgets.org/wxxrc">
<object class="wxDialog" name="ID_TEST_DIALOG">
<style>wxCAPTION|wxRESIZE_BORDER|wxSYSTEM_MENU|wxCLOSE_BOX|
wxTAB_TRAVERSAL</style>
<exstyle>wxWS_EX_BLOCK_EVENTS</exstyle>
<size>400,300</size>
<title>Analysis</title>
<centered>1</centered>
<object class="wxBoxSizer">
<orient>wxVERTICAL</orient>
<object class="sizeritem">
<flag>wxGROW|wxALL</flag>
<border>5</border>
<option>1</option>
<object class="wxBoxSizer">
<orient>wxVERTICAL</orient>
<object class="sizeritem">
<flag>wxGROW|wxALL</flag>
<border>5</border>
<option>1</option>
<object class="wxNotebook" name="ID_NOTEBOOK">
<style>wxBK_DEFAULT</style>
<object class="notebookpage">
<label>Label1</label>
<object class="wxPanel" name="ID_PANEL">
<style>wxSUNKEN_BORDER|
wxTAB_TRAVERSAL</style>
<object class="wxBoxSizer">
<orient>wxVERTICAL</orient>
</object>
</object>
</object>
<object class="notebookpage">
<label>Label2</label>
<object class="wxPanel"
name="ID_PANEL1">
<style>wxSUNKEN_BORDER|
wxTAB_TRAVERSAL</style>
<object class="wxBoxSizer">
<orient>wxVERTICAL</orient>
</object>
</object>
</object>
<object class="notebookpage">
<label>Label3</label>
<object class="wxPanel"
name="ID_PANEL2">
<style>wxSUNKEN_BORDER|
wxTAB_TRAVERSAL</style>
<object class="wxBoxSizer">
<orient>wxVERTICAL</orient>
</object>
</object>
</object>
</object>
</object>
</object>
</object>
</object>
</object>
</resource>