GLADE support broken
Julian Stecklina <[email protected]> Wed, 01 Oct 2008 23:50:28 +0200
| Newsgroups | gmane.lisp.clg.devel |
|---|---|
| Message-ID | <[email protected]> |
Hello,
loading a GLADE file seems broken. A very minimal file that demonstrates
this:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
<!--Generated with glade3 3.4.5 on Wed Oct 1 23:37:35 2008 -->
<glade-interface>
<widget class="GtkWindow" id="window1">
<child>
<widget class="GtkVBox" id="vbox1">
<property name="visible">True</property>
<child>
<placeholder/>
</child>
</widget>
</child>
</widget>
</glade-interface>
Trying to load this gives:
* (glade-xml:load-interface "test2.glade")
There is no applicable method for the generic function
#<STANDARD-GENERIC-FUNCTION SB-MOP:CLASS-FINALIZED-P (1)>
when called with arguments
(NIL).
[Condition of type SIMPLE-ERROR]
Restarts:
0: [RETRY] Retry SLIME REPL evaluation request.
1: [ABORT] Return to SLIME's top level.
2: [ABORT] Exit debugger, returning to top level.
Backtrace:
0: ((SB-PCL::FAST-METHOD NO-APPLICABLE-METHOD (T)) #<unavailable argument> #<unavailable argument> #<ST..
1: (GLADE-XML::PARSE-PROPERTIES NIL NIL)
2: (GLADE-XML::BUILD-WIDGET ((:|widget| :|class| "GtkWindow" :|id| "window1") (:|child| (# # #))))
Locals:
GLADE-XML::AFTER = :<NOT-AVAILABLE>
ATTRIBUTES = NIL
ATTRIBUTES#1 = (:|class| "GtkWindow" :|id| "window1")
GLADE-XML::BODY = (((:|widget| :|class| "GtkVBox" :|id| "vbox1") ..))
GFFI:CALLBACK = :<NOT-AVAILABLE>
CLASS = #<GLIB:GOBJECT-CLASS WINDOW>
GLADE-XML::ELEMENT = :|child|
#:G1 = :<NOT-AVAILABLE>
#:G4 = :<NOT-AVAILABLE>
#:G5 = :<NOT-AVAILABLE>
ID = "window1"
GLADE-XML::INITARGS = :<NOT-AVAILABLE>
GLADE-XML::INITARGS#1 = NIL
#:LOOP-DESETQ-TEMP = :<NOT-AVAILABLE>
#:LOOP-LIST-0 = NIL
NAME = :<NOT-AVAILABLE>
GLADE-XML::OBJECT = :<NOT-AVAILABLE>
GLADE-XML::SPEC = ((:|widget| :|class| "GtkWindow" :|id| "window1") ..)
GLADE-XML::TAG = :|child|
WIDGET = #<WINDOW "window1" at 0x82622E0>
...
The problem seems to be this part in glade-xml.lisp (line 177):
(let ((initargs (parse-properties (container-child-class class) (rest (second body)))))
(add-child widget (build-widget (first body)) initargs))
CONTAINER-CHILD-CLASS returns NIL when given
#<GLIB:GOBJECT-CLASS WINDOW> and a quick look at
gtk::*container-to-child-class-mappings* confirms that there is no
associated child class for WINDOW.
Does anyone have a clue how to fix this?
Regards,
--
Julian Stecklina
Well, take it from an old hand: the only reason it would be easier to
program in C is that you can't easily express complex problems in C,
so you don't. - Erik Naggum (in comp.lang.lisp)
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/