1 \input texinfo @c -*-texinfo-*-
2 @c %**start of header (This is for running texinfo on a region.)
5 @c %**end of header (This is for running texinfo on a region.)
7 @c @documentencoding utf-8
20 @deftp {Structure} \name\
29 @macro Superclass {name}
30 Superclass: @ref{\name\}
43 @macro Accessor {name}
44 @deffn {Accessor} \name\
48 @macro TypedAccessor {name, class, type}
49 @deffn {Accessor} \name\ \class\
50 For class: @ref{\class\}
56 @macro GenericFunction {name}
57 @deffn {Generic Function} \name\
61 @macro ForeignType {name}
62 @deftp {Foreign Type} \name\
66 @macro Variable {name}
67 @defvr {Special Variable} \name\
71 @macro Condition {name}
72 @deftp {Condition Type} \name\
76 @macro Constant {name}
77 @defvr {Constant} \name\
81 @macro RFunction {name}
82 @anchor{\name\}@defun \name\
87 @anchor{\name\}@defmac \name\
92 @anchor{\name\}@deftp {Structure} \name\
97 @anchor{\name\}@deftp {Class} \name\
101 @macro RSuperclass {name}
102 @anchor{\name\}Superclass: @ref{\name\}
106 @anchor{\name\}@deftp {Enum} \name\
111 @anchor{\name\}@deftp {Flags} \name\
115 @macro RAccessor {name}
116 @anchor{\name\}@deffn {Accessor} \name\
120 @macro RTypedAccessor {name, class, type}
121 @anchor{\name\}@deffn {Accessor} \name\ \class\
122 For class: @ref{\class\}
128 @macro RGenericFunction {name}
129 @anchor{\name\}@deffn {Generic Function} \name\
133 @macro RForeignType {name}
134 @anchor{\name\}@deftp {Foreign Type} \name\
138 @macro RVariable {name}
139 @anchor{\name\}@defvr {Special Variable} \name\
143 @macro RCondition {name}
144 @anchor{\name\}@deftp {Condition Type} \name\
148 @macro RConstant {name}
149 @anchor{\name\}@defvr {Constant} \name\
157 @macro impnote {text}
159 @strong{Implementor's note:} @emph{\text\}
163 @c Info "requires" that x-refs end in a period or comma, or ) in the
164 @c case of @pxref. So the following implements that requirement for
165 @c the "See also" subheadings that permeate this manual, but only in
168 @macro seealso {name}
174 @c @alias seealso = ref
177 @c Typeset comments in roman font for the TeX output.
179 @c @alias lispcmt = r
182 @c @alias lispcmt = asis
185 @c My copy of makeinfo is not generating any HTML for @result{} for
186 @c some odd reason. (It certainly used to...)
193 @c Similar macro to @result. Its purpose is to work around the fact
194 @c that ⇒ does not work properly inside @lisp.
207 @c ============================= Macros =============================
210 @c Show types, functions, and concepts in the same index.
216 @subtitle A Common Lisp binding for Gtk+
217 @author Dmitry Kalyanov
231 * GObject Reference::
239 @code{cl-gtk2} is the GUI library for Common Lisp. @code{cl-gtk2} is based on @uref{http://www.gtk.org/,,Gtk+} GUI library and is Common Lisp binding for it. @code{cl-gtk2} allows you to create graphical user interfaces for Common Lisp applications.
241 As @code{Gtk+} is based on object system GObject, @code{cl-gtk2} is based on a binding to this object system called @code{cl-gtk2-gobject}.
243 @code{cl-gtk2} provides a thin wrapper around @code{Gtk+} functionality, mostly retaining the same set of classes, properties and methods.
245 The important parts of @code{Gtk+} are:
247 @item GObject type system
254 @item Layout and composition of widgets
256 @item Using Gtk+ with threads
257 @item Building stand-alone applications
261 @chapter Installation
263 @code{cl-gtk2} has the following dependencies. They all must be installed before installing @code{cl-gtk2}.
266 @item @uref{http://common-lisp.net/project/cffi/,,CFFI} (version >= 0.10.4)
267 @item @uref{http://www.cliki.net/trivial-garbage,,Trivial-Garbage} (version >= 0.18)
268 @item @uref{http://common-lisp.net/project/iterate/,,Iterate} (version >= 1.4.3)
269 @item @uref{http://common-lisp.net/project/bordeaux-threads/,,Bordeaux-Threads} (version >= 0.6.0)
270 @item @uref{http://common-lisp.net/project/closer/closer-mop.html,,Closer-MOP} (version >= 0.55)
273 At first, source code of @code{cl-gtk2} needs to be downloaded. There are two options to download the sources: use @uref{http://git-scm.org/,,Git} or download @code{tar.gz} archive.
275 To get sources with Git, clone @code{cl-gtk2} repository:
277 git clone git://repo.or.cz/cl-gtk2.git
281 git clone git://github.com/dmitryvk/cl-gtk2.git
284 Or download and unpack the @code{tar.gz}-archived @uref{http://repo.or.cz/w/cl-gtk2.git?a=snapshot;h=HEAD;sf=tgz,,snapshot} of @code{cl-gtk2}.
286 To be able to compile, load and use @code{cl-gtk2}, you should register the @code{ASDF} system definitions.
288 To do this, either add @code{glib}, @code{gdk} and @code{gtk} directories to @code{asdf:*central-registry*}:
290 (push "/path/to/cl-gtk2/glib" asdf:*central-registry*)
291 (push "/path/to/cl-gtk2/gdk" asdf:*central-registry*)
292 (push "/path/to/cl-gtk2/gtk" asdf:*central-registry*)
294 or create symlinks to @code{cl-gtk2-glib.asd}, @code{cl-gtk2-gdk.asd} and @code{cl-gtk2-gtk.asd} files in a directory where @code{ASDF} systems are located (it might be @code{/usr/share/common-lisp/systems/} for system-wide installation in Gentoo Linux and Debian Linux, @code{~/.sbcl/systems/} for user installation for SBCL compiler):
296 cd ~/.sbcl/systems # depends on your system
297 ln -s /path/to/cl-gtk2/glib/cl-gtk2-glib.asd .
298 ln -s /path/to/cl-gtk2/gdk/cl-gtk2-gdk.asd .
299 ln -s /path/to/cl-gtk2/gtk/cl-gtk2-gtk.asd .
303 @chapter GLib Reference
306 @include glib.ref.texi
309 @node GObject Reference
310 @chapter GObject Reference
314 @include gobject.ref.texi
319 @chapter Gdk Reference
321 @include gdk.ref.texi
324 @chapter Gtk Reference
327 @include gtk.ref.texi