dmitryvk / cl-gtk2 Goto Github PK
View Code? Open in Web Editor NEWCommon Lisp binding for Gtk+
Home Page: http://common-lisp.net/project/cl-gtk2/
Common Lisp binding for Gtk+
Home Page: http://common-lisp.net/project/cl-gtk2/
I have used let-ui and it's very nice for GUI. Bye-bye GtkBuilder. :)
The only thing I miss is non-widget objects like GtkTreeViewColumn,
GtkCellRenderer and so on.
Is it possible to enhance let-ui this way?
gtk-main should be wrapped by gdk-threads-enter/leave when threading is enabled.
First run of make-instance for custom gobject returns lisp object, but underlying pointer to gobject is null. GLib prints errors to console.
This code
(asdf:oos 'asdf:load-op :cl-gtk2-gtk)
(defclass klass (gobject:g-object)
()
(:metaclass gobject:gobject-class)
(:g-type-name . "Klass"))
(gobject:register-object-type-implementation "Klass" klass "GObject" nil nil)
(print (gobject:pointer (make-instance 'klass)))
(print (gobject:pointer (make-instance 'klass)))
(quit)
prints
WARNING: GType Klass is not known to GObject
WARNING: GType Klass is not known to GObject
WARNING:
Declared GType name 'Klass' for class 'KLASS' is invalid (g_type_name returned 0)
(sbcl-cl-gtk2.exe:1860): GLib-GObject-CRITICAL **: g_object_newv: assertion `G_TYPE_IS_OBJECT (object_type)' failed
(sbcl-cl-gtk2.exe:1860): GLib-GObject-CRITICAL **: g_object_add_toggle_ref: assertion `G_IS_OBJECT (object)' failed
(sbcl-cl-gtk2.exe:1860): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed
It seems pack-child is using a old version of the table-attach function:
https://github.com/dmitryvk/cl-gtk2/blob/master/gtk/gtk.layout-containers.lisp#L192
https://github.com/dmitryvk/cl-gtk2/blob/master/gtk/ui-markup.lisp#L85
mail by Maciej Katafiasz [email protected]
"Actually, I just found the cause, sort-of. It's because I had
accessibility enabled, which creates an extra thread, which then gets
stuck somewhere in pthread_cond_wait(). I haven't quite found out why
that happens yet, but at least I know where to look."
The definition of table-attach has left, right, bottom, and top as required arguments
but the call to the function uses keyword argument syntax :left left :right right etc.
I've created a PR for this, and made a simple fix. I've changed the call-site to match the function definition.
See. #11
The correct one is:
(defcfun (tree-view-expand-row "gtk_tree_view_expand_row") :boolean
(tree-view g-object)
(path (g-boxed-foreign tree-path))
(open-all :boolean))
Note the boolean argument.
Log is here: http://report.quicklisp.org/2020-09-30/failure-report/cl-gtk2.html#cl-gtk2-gtk
I get this: Lock on package SB-UNIX violated when interning SIGPIPE-HANDLER while in package GTK.
Hi all!
If you interested in maintaining this project, please contact me.
With sbcl 1.0.42, after
(asdf:operate 'asdf:load-op :cl-gtk2-gtk)
I can't abort execution of (sleep 10) with C-c C-c in SLIME, and with C-c in sbcl console.
1.0.39 works just fine.
Following code produces memory fault error.
(let ((w (make-instance 'gtk:entry
:secondary-icon-stock "gtk-execute"
:secondary-icon-tooltip-text "some text")))
(print w))
But this code doesn't
(let ((w (make-instance 'gtk:entry
:secondary-icon-stock "gtk-execute")))
(setf (gtk:entry-secondary-icon-tooltip-text w) "some text")
(print w))
Error looks like:
CORRUPTION WARNING in SBCL pid 9978(tid 140737353987824):
Memory fault at 8 (pc=0x7fffe9ba3cce, sp=0x7fffef8c7250)
The integrity of this image is possibly compromised.
Continuing with fingers crossed.
debugger invoked on a SB-SYS:MEMORY-FAULT-ERROR in thread #<THREAD
"initial thread" RUNNING
{1002E8A001}>:
Unhandled memory fault at #x8.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.