Fri Apr 3 00:16:06 CEST 2009 Tobias Rautenkranz * 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 08:41:50.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))))