|
||
---|---|---|
game | ||
src | ||
test | ||
themes | ||
.gitignore | ||
Changelog | ||
LICENSES.org | ||
NEWS.org | ||
nodgui-lite.asd | ||
nodgui.asd | ||
README.org | ||
TODO.org |
NODGUI
NODGUI
"No Drama GUI"
Common Lisp bindings for the Tk GUI toolkit.
important note:
Version 0.4.0
broke the user API, see
here for more information about how your code is affected and how to fix it.
Features
- custom themes
-
more widgets:
- history-entry
- autocomplete
- expanded "text" widget
- date picker
- treelist
- tooltip
- searchable listbox
- password entry
- openGL frame
- …
-
tklib
-derived widgets:- calendar
- notify-window (a bit buggy, unfortunately)
- plots and charts: dot-plot, bar-chart…
- asynchronous main event loop
- and more
Themes
nodgui supports loading custom ttk themes and ships the "yaru" theme from the ttkthemes collection.
To use a built-in theme other than the "default" one, do:
(with-nodgui (:theme "yaru")
(code here))
or use (setf *default-theme* "yaru")
.
You can see how they look with the demos:
CL-USER> (nodgui.demo:demo :theme "yaru")
You can load any .tcl file describing a theme:
(nodgui:eval-tcl-file "path/to/another/theme.tcl") (nodgui:use-theme "theme")
See also *themes-directory*
.
This currently doesn't work with a few themes using SVG images, but it might be fixed with the release of an upcoming Tcl/Tk version.
Dependency
Programs
- TCL/TK interpreter (version >= 8.6) https://www.tcl.tk
Lisp libraries
- alexandria;
- bordeaux-threads;
- cl-colors2;
- cl-opengl;
- cl-ppcre-unicode;
- cl-unicode;
- sdl2;
- sdl2-ttf;
- clunit2;
- esrap;
- flexi-streams;
- jpeg-turbo;
- named-readtables;
- parse-number;
- pngload;
- zpng.
All of the above libraries are available on quicklisp.
C Libraries
- libsdl2 https://www.libsdl.org/
- turboJpeg (high level api for libjpeg-turbo) https://www.libjpeg-turbo.org/
- opengl headers
TCL/TK libraries (optional)
Installing
-
install the tk interpreter (example on a Debian system follows)
# apt-get install tk
-
optionally install tklib
# apt-get install tklib
-
optionally install tcllib
# apt-get install tcllib
-
optionally install tkimg
# apt-get install libtk-img
-
install libsd2
# apt-get install libsdl2-dev
-
install opengl
# apt-get install libg-dev
-
install libturbojpeg
# apt-get install libturbojpeg0-dev
-
open a REPL and type
(ql:quickload "nodgui")
-
try it!
(nodgui.demo:demo)
also try the minigame, it is fun!
(asdf:make nodgui/game) (main::main)
Documentation
please follow this link for documentation and news.
License
This software is Copyright © cage.
Derived from:
- © Peter Herth;
- © Thomas F. Burdick;
- © Cadence Design Systems;
- © Daniel Herring.
The authors grant you the rights to distribute and use this software as governed by the terms of the Lisp Lesser GNU Public License (http://opensource.franz.com/preamble.html), known as the LLGPL.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
This library uses code from other authors see the file /cage/nodgui/src/branch/master/LICENSES.org for details.
Themes
The themes definitions found in the themes/
subdirectory are distributed with many different license, please carefully check the file LICENSE.org
in each theme's subdirectory (e.g /cage/nodgui/src/branch/master/themes/yaru/LICENSE.org) for more information.
Acknowledgment
My (cage) deep thanks to Tim Holliefield <tholliefield [at] online.de>, for all the suggestions and help about implementing the widgets styles management.