Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tutorial "Drawing_in_response_to_input" Undefined functions GTK-WIDGET-ALLOCATED-HEIGH GTK-WIDGET-ALLOCATED-WIDT #90

Open
mashomee opened this issue Mar 19, 2021 · 3 comments

Comments

@mashomee
Copy link

WARNING: redefining GTK-TUTORIAL::EXAMPLE-DRAWING in DEFUN
; in: DEFUN EXAMPLE-DRAWING
;     (GTK-TUTORIAL::GTK-WIDGET-ALLOCATED-HEIGHT GTK-TUTORIAL::WIDGET)
; 
; caught STYLE-WARNING:
;   undefined function: GTK-TUTORIAL::GTK-WIDGET-ALLOCATED-HEIGHT

;     (GTK-TUTORIAL::GTK-WIDGET-ALLOCATED-WIDTH GTK-TUTORIAL::WIDGET)
; 
; caught STYLE-WARNING:
;   undefined function: GTK-TUTORIAL::GTK-WIDGET-ALLOCATED-WIDTH
; 
; compilation unit finished
;   Undefined functions:
;     GTK-WIDGET-ALLOCATED-HEIGHT GTK-WIDGET-ALLOCATED-WIDTH
;   caught 2 STYLE-WARNING conditions

Does the code outdated and functions should be
gtk-widget-get-allocated-width and gtk-widget-get-allocated-heigh ?

Also, when I run the code, error occurs and the cl-cffi-gtk main thread quits.

PS C:\Users\o> sbcl
This is SBCL 2.0.0, an implementation of ANSI Common Lisp.
More information about SBCL is available at <http://www.sbcl.org/>.

SBCL is free software, provided as is, with absolutely no warranty.
It is mostly in the public domain; some portions are provided under
BSD-style licenses.  See the CREDITS and COPYING files in the
distribution for more information.

WARNING: the Windows port is fragile, particularly for multithreaded
code.  Unfortunately, the development team currently lacks the time
and resources this platform demands.
* (load #P"f:/lisp/gtk_tut.lisp")
To load "cl-cffi-gtk":
  Load 1 ASDF system:
    cl-cffi-gtk
; Loading "cl-cffi-gtk"
.................
T
* leave event 'configure-event'

(sbcl.exe:11956): Gtk-WARNING **: drawing failure for widget 'GtkFrame': cairo_restore() without matching cairo_save()

(sbcl.exe:11956): Gtk-WARNING **: drawing failure for widget 'GtkWindow': cairo_restore() without matching cairo_save()

debugger invoked on a SB-SYS:MEMORY-FAULT-ERROR in thread
#<THREAD "cl-cffi-gtk main thread" RUNNING {10066DD4B3}>:
  Unhandled memory fault at #x20473BE38.

The current thread is not at the foreground,
SB-THREAD:RELEASE-FOREGROUND has to be called in #<SB-THREAD:THREAD "main thread" RUNNING {10010B0523}>
for this thread to enter the debugger.

(sb-thread:release-foreground)
0Resuming thread #<THREAD "cl-cffi-gtk main thread" RUNNING {10066DD4B3}>

Type HELP for debugger help, or (SB-EXT:EXIT) to exit from SBCL.

restarts (invokable by number or by possibly-abbreviated name):
  0: [ABORT] abort thread
             (#<THREAD "cl-cffi-gtk main thread" RUNNING {10066DD4B3}>)

(SB-KERNEL:HANDLE-WIN32-EXCEPTION #.(SB-SYS:INT-SAP #X040CDE60) #.(SB-SYS:INT-SAP #X040CE6F0))
0] 0
Resuming thread #<THREAD "main thread" RUNNING {10010B0523}>
* 3
3
*

Below is the system info:

* (gtk:cl-cffi-gtk-build-info)

cl-cffi-gtk version: 1.0.0
cl-cffi-gtk build date: 14:48 3/19/2021
GTK+ version: 3.22.19
GLIB version: 2.52.3
GDK-Pixbuf version: 2.36.9
Pango version: 1.40.11
Cairo version: 1.16.0
Machine type: X86-64
Machine version: NIL
Software type: Win32
Software version: 6.2.9200
Lisp implementation type: SBCL
Lisp implementation version: 2.0.0

NIL

BTW, it's really an excellent tutorial and library,
Thanks for your work!

gtk_tut.lisp.txt

@anranyicheng
Copy link

gtk-widget-get-allocated-width and gtk-widget-get-allocated-heigh update to :
gtk-widget-allocated-width and gtk-widget-allocated-height .

@mashomee
Copy link
Author

mashomee commented Mar 23, 2021

I've now notice that the cl-cffi-gtk I use is downloaded by quicklisp from https://github.com/Ferada/cl-cffi-gtk
according to #77

I really like the documentation here!

@cdeln
Copy link

cdeln commented Dec 29, 2023

Solution is like you say to not use the default remote quicklisp upstream. Instead, clone this repo locally into a place where quicklisp can find it and the correct code that is consistent with the tutorial will be loaded.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants