initial import
src/mandelbrot/mandelbrot.lisp
Fri Apr 3 00:16:06 CEST 2009 Tobias Rautenkranz <tobias@rautenkranz.ch>
* initial import
--- old-kde.examples/src/mandelbrot/mandelbrot.lisp 1970-01-01 01:00:00.000000000 +0100
+++ new-kde.examples/src/mandelbrot/mandelbrot.lisp 2014-10-30 07:20:19.000000000 +0100
@@ -0,0 +1,66 @@
+(in-package :kde.examples)
+
+(declaim (optimize (debug 3)))
+
+(defun make-aboutdata ()
+ (let ((app-name (make-instance 'qt:byte-array :args '("kmandelbrot")))
+ (catalog-name (make-instance 'qt:byte-array))
+ (program-name (kde:ki18n "KMandelbrot"))
+ (version (make-instance 'qt:byte-array :args '("0.0.1")))
+ (description (kde:ki18n "KDE Mandelbrot program."))
+ (copyright (kde:ki18n "Copyright (c) 2009 Tobias Rautenkranz"))
+ (text (kde:ki18n "TODO"))
+ (homepage (make-instance 'qt:byte-array
+ :args '("http://tobias.rautenkranz.ch")))
+ (email (make-instance 'qt:byte-array
+ :args '("bugs@tobias.rautenkranz.ch"))))
+ (let ((aboutdata
+ (make-instance 'kde:about-data :args (list
+ app-name catalog-name program-name
+ version description
+ kde:about-data.+license-lgpl-v2+
+ copyright text homepage email))))
+ (cxx:add-author aboutdata
+ (kde:ki18n "Tobias Rautenkranz")
+ (make-instance 'kde:localized-string)
+ (make-instance 'qt:byte-array :args '("tobias@rautenkranz.ch")))
+ aboutdata)))
+
+(defun mandelbrot ()
+ (kde:with-app (make-aboutdata)
+ (let* ((window (make-instance 'kde:xml-gui-window))
+ (mandelbrot (make-instance 'mandelbrotwidget))
+ (resource-dir (directory-namestring
+ (mb.sysdef:component-pathname
+ (mb.sysdef:find-component :kde.examples "src")))))
+
+ (cxx:add-resource-dir (kde:global.dirs)
+ "icon" resource-dir)
+ (cxx:add-resource-dir (kde:global.dirs)
+ "apps" resource-dir)
+ (cxx:quit (find-class 'kde:standard-action)
+ window (qt:qslot "close()")
+ (cxx:action-collection window))
+
+ (kde:make-standard-action kde:standard-action.+redisplay+
+ (cxx:action-collection window)
+ #'(lambda () (zoom mandelbrot 1d0)))
+
+ (kde:make-standard-action kde:standard-action.+zoom-in+
+ (cxx:action-collection window)
+ #'(lambda () (zoom mandelbrot 0.5d0)))
+
+ (kde:make-standard-action kde:standard-action.+zoom-out+
+ (cxx:action-collection window)
+ #'(lambda () (zoom mandelbrot 2d0)))
+
+ (cxx:set-central-widget window mandelbrot)
+ (cxx:set-focus mandelbrot)
+ (setup-slot mandelbrot)
+
+ (cxx:add-resource-dir (kde:global.dirs)
+ "data" resource-dir)
+ (cxx:setup-gui window)
+
+ (cxx:show window)
+ (qt:exec))))