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>

Reply via email to