initial import
Annotate for file src/mandelbrot/mandelbrot.lisp
2009-04-02 tobias 1 (in-package :kde.examples)
22:16:06 ' 2
' 3 (declaim (optimize (debug 3)))
' 4
' 5 (defun make-aboutdata ()
' 6 (let ((app-name (make-instance 'qt:byte-array :args '("kmandelbrot")))
' 7 (catalog-name (make-instance 'qt:byte-array))
' 8 (program-name (kde:ki18n "KMandelbrot"))
' 9 (version (make-instance 'qt:byte-array :args '("0.0.1")))
' 10 (description (kde:ki18n "KDE Mandelbrot program."))
' 11 (copyright (kde:ki18n "Copyright (c) 2009 Tobias Rautenkranz"))
' 12 (text (kde:ki18n "TODO"))
' 13 (homepage (make-instance 'qt:byte-array
' 14 :args '("http://tobias.rautenkranz.ch")))
' 15 (email (make-instance 'qt:byte-array
' 16 :args '("bugs@tobias.rautenkranz.ch"))))
' 17 (let ((aboutdata
' 18 (make-instance 'kde:about-data :args (list
' 19 app-name catalog-name program-name
' 20 version description
' 21 kde:about-data.+license-lgpl-v2+
' 22 copyright text homepage email))))
' 23 (cxx:add-author aboutdata
' 24 (kde:ki18n "Tobias Rautenkranz")
' 25 (make-instance 'kde:localized-string)
' 26 (make-instance 'qt:byte-array :args '("tobias@rautenkranz.ch")))
' 27 aboutdata)))
' 28
' 29 (defun mandelbrot ()
' 30 (kde:with-app (make-aboutdata)
' 31 (let* ((window (make-instance 'kde:xml-gui-window))
' 32 (mandelbrot (make-instance 'mandelbrotwidget))
' 33 (resource-dir (directory-namestring
' 34 (mb.sysdef:component-pathname
' 35 (mb.sysdef:find-component :kde.examples "src")))))
' 36
' 37 (cxx:add-resource-dir (kde:global.dirs)
' 38 "icon" resource-dir)
' 39 (cxx:add-resource-dir (kde:global.dirs)
' 40 "apps" resource-dir)
' 41 (cxx:quit (find-class 'kde:standard-action)
' 42 window (qt:qslot "close()")
' 43 (cxx:action-collection window))
' 44
' 45 (kde:make-standard-action kde:standard-action.+redisplay+
' 46 (cxx:action-collection window)
' 47 #'(lambda () (zoom mandelbrot 1d0)))
' 48
' 49 (kde:make-standard-action kde:standard-action.+zoom-in+
' 50 (cxx:action-collection window)
' 51 #'(lambda () (zoom mandelbrot 0.5d0)))
' 52
' 53 (kde:make-standard-action kde:standard-action.+zoom-out+
' 54 (cxx:action-collection window)
' 55 #'(lambda () (zoom mandelbrot 2d0)))
' 56
' 57 (cxx:set-central-widget window mandelbrot)
' 58 (cxx:set-focus mandelbrot)
' 59 (setup-slot mandelbrot)
' 60
' 61 (cxx:add-resource-dir (kde:global.dirs)
' 62 "data" resource-dir)
' 63 (cxx:setup-gui window)
' 64
' 65 (cxx:show window)
' 66 (qt:exec))))