README.txt 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  1. ━━━━━━━━
  2. NODGUI
  3. ━━━━━━━━
  4. Table of Contents
  5. ─────────────────
  6. 1. NODGUI
  7. .. 1. important note:
  8. .. 2. Features
  9. .. 3. Themes
  10. 2. Dependency
  11. .. 1. Programs
  12. .. 2. Lisp libraries
  13. .. 3. TCL/TK libraries (optional)
  14. 3. Installing
  15. 4. Documentation
  16. 5. License
  17. .. 1. Themes
  18. 6. Acknowledgment
  19. 1 NODGUI
  20. ════════
  21. /"No Drama GUI"/
  22. Common Lisp bindings for the Tk GUI toolkit.
  23. 1.1 important note:
  24. ───────────────────
  25. Version `0.4.0' broke the user API, see [here] for more information
  26. about how your code is affected and how to fix it.
  27. [here] <https://www.autistici.org/interzona/nodgui.html#orgb470f4b>
  28. 1.2 Features
  29. ────────────
  30. • custom themes
  31. • more widgets:
  32. • history-entry
  33. • autocomplete
  34. • expanded "text" widget
  35. • date picker
  36. • treelist
  37. • tooltip
  38. • searchable listbox
  39. • password entry
  40. • …
  41. • `tklib'-derived widgets:
  42. • calendar
  43. • notify-window
  44. • plots and charts: dot-plot, bar-chart…
  45. • asynchronous main event loop
  46. • and more
  47. 1.3 Themes
  48. ──────────
  49. nodgui supports loading [custom ttk themes] and ships the "yaru" theme
  50. from the [ttkthemes collection].
  51. To use a built-in theme other than the "default" one, do:
  52. ┌────
  53. │ (with-nodgui (:theme "yaru")
  54. │ (code here))
  55. └────
  56. or use `(setf *default-theme* "yaru")'.
  57. You can see how they look with the demos:
  58. ┌────
  59. │ CL-USER> (nodgui.demo:demo :theme "yaru")
  60. └────
  61. You can load any .tcl file describing a theme:
  62. ┌────
  63. │ (nodgui:eval-tcl-file "path/to/another/theme.tcl")
  64. │ (nodgui:use-theme "theme")
  65. └────
  66. See also `*themes-directory*'.
  67. This currently doesn't work with a few themes using SVG images, but it
  68. might be fixed with the release of an upcoming Tcl/Tk version.
  69. [custom ttk themes] <https://wiki.tcl-lang.org/page/List+of+ttk+Themes>
  70. [ttkthemes collection]
  71. <https://ttkthemes.readthedocs.io/en/latest/themes.html#yaru>
  72. 2 Dependency
  73. ════════════
  74. 2.1 Programs
  75. ────────────
  76. • TCL/TK interpreter (version >= 8.6) <https://www.tcl.tk>
  77. 2.2 Lisp libraries
  78. ──────────────────
  79. • alexandria;
  80. • cl-ppcre-unicode;
  81. • esrap
  82. • clunit2;
  83. • cl-colors2;
  84. • named-readtables.
  85. All of the above libraries are available on quicklisp.
  86. 2.3 TCL/TK libraries (optional)
  87. ───────────────────────────────
  88. • TKlib <https://core.tcl-lang.org/tklib/home>
  89. • tkimg <https://sourceforge.net/projects/tkimg/>
  90. 3 Installing
  91. ════════════
  92. 1. install the tk interpreter (example on a Debian system follows)
  93. ┌────
  94. │ # apt-get install tk
  95. └────
  96. 1. optionally install tklib
  97. ┌────
  98. │ # apt-get install tklib
  99. └────
  100. 1. optionally install tkimg
  101. ┌────
  102. │ # apt-get install libtk-img
  103. └────
  104. 1. open a REPL and type
  105. ┌────
  106. │ (ql:quickload "nodgui")
  107. └────
  108. 1. try it!
  109. ┌────
  110. │ (nodgui.demo::demo)
  111. └────
  112. 4 Documentation
  113. ═══════════════
  114. please follow [this link for documentation and news].
  115. [this link for documentation and news]
  116. <https://www.autistici.org/interzona/nodgui.html>
  117. 5 License
  118. ═════════
  119. This software is Copyright (c) 2003-2010 Peter Herth
  120. <herth@peter-herth.de> Portions Copyright (c) 2005-2010 Thomas
  121. F. Burdick Portions Copyright (c) 2006-2010 Cadence Design Systems
  122. Portions Copyright (c) 2010 Daniel Herring Portions Copyright © cage
  123. The authors grant you the rights to distribute and use this software
  124. as governed by the terms of the Lisp Lesser GNU Public License
  125. (<http://opensource.franz.com/preamble.html>), known as the LLGPL.
  126. This program is distributed in the hope that it will be useful, but
  127. WITHOUT ANY WARRANTY; without even the implied warranty of
  128. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  129. General Public License for more details.
  130. 5.1 Themes
  131. ──────────
  132. The themes definitions found in the `themes/' subdirectory are
  133. distributed with many different license, please carefully check the
  134. file `LICENSE.org' in each theme's subdirectory (e.g
  135. <./themes/yaru/LICENSE.org>) for more information.
  136. 6 Acknowledgment
  137. ════════════════
  138. My (cage) deep thanks to Tim Holliefield <tholliefield [at]
  139. online.de>, for all the suggestions and help about implementing the
  140. widgets styles management.