[graphic-forms-cvs] r216 - in trunk/src: tests/uitoolkit uitoolkit/graphics/plugins/default
junrue at common-lisp.net
junrue at common-lisp.net
Mon Aug 14 03:07:35 UTC 2006
Author: junrue
Date: Sun Aug 13 23:07:35 2006
New Revision: 216
Modified:
trunk/src/tests/uitoolkit/drawing-tester.lisp
trunk/src/tests/uitoolkit/event-tester.lisp
trunk/src/tests/uitoolkit/image-tester.lisp
trunk/src/tests/uitoolkit/layout-tester.lisp
trunk/src/tests/uitoolkit/windlg.lisp
trunk/src/uitoolkit/graphics/plugins/default/default-data-plugin.lisp
Log:
implemented icon file loading in default graphics plugin
Modified: trunk/src/tests/uitoolkit/drawing-tester.lisp
==============================================================================
--- trunk/src/tests/uitoolkit/drawing-tester.lisp (original)
+++ trunk/src/tests/uitoolkit/drawing-tester.lisp Sun Aug 13 23:07:35 2006
@@ -362,7 +362,6 @@
(setf (gfw:menu-bar *drawing-win*) menubar)
(setf (gfw:size *drawing-win*) (gfs:make-size :width 390 :height 310))
(setf (gfw:text *drawing-win*) "Drawing Tester")
-#+load-imagemagick-plugin
(setf (gfw:image *drawing-win*) (make-instance 'gfg:icon-bundle :file (merge-pathnames "default.ico")))
(gfw:show *drawing-win* t)))
Modified: trunk/src/tests/uitoolkit/event-tester.lisp
==============================================================================
--- trunk/src/tests/uitoolkit/event-tester.lisp (original)
+++ trunk/src/tests/uitoolkit/event-tester.lisp Sun Aug 13 23:07:35 2006
@@ -253,6 +253,7 @@
(:item "&Help" :dispatcher echo-md
:submenu ((:item "&About" :dispatcher echo-md))))))
(setf (gfw:menu-bar *event-tester-window*) menubar)
+ (setf (gfw:image *event-tester-window*) (make-instance 'gfg:icon-bundle :file (merge-pathnames "default.ico")))
(gfw:show *event-tester-window* t)))
(defun event-tester ()
Modified: trunk/src/tests/uitoolkit/image-tester.lisp
==============================================================================
--- trunk/src/tests/uitoolkit/image-tester.lisp (original)
+++ trunk/src/tests/uitoolkit/image-tester.lisp Sun Aug 13 23:07:35 2006
@@ -109,6 +109,7 @@
(setf menubar (gfw:defmenu ((:item "&File"
:submenu ((:item "E&xit" :callback #'exit-image-fn))))))
(setf (gfw:menu-bar *image-win*) menubar)
+ (setf (gfw:image *image-win*) (make-instance 'gfg:icon-bundle :file (merge-pathnames "default.ico")))
(gfw:show *image-win* t)))
(defun image-tester ()
Modified: trunk/src/tests/uitoolkit/layout-tester.lisp
==============================================================================
--- trunk/src/tests/uitoolkit/layout-tester.lisp (original)
+++ trunk/src/tests/uitoolkit/layout-tester.lisp Sun Aug 13 23:07:35 2006
@@ -441,6 +441,7 @@
(dotimes (i 3)
(add-layout-tester-widget 'gfw:button :push-button))
(setf (gfw:text *layout-tester-win*) "Layout Tester")
+ (setf (gfw:image *layout-tester-win*) (make-instance 'gfg:icon-bundle :file (merge-pathnames "default.ico")))
(gfw:pack *layout-tester-win*)
(gfw:show *layout-tester-win* t)))
Modified: trunk/src/tests/uitoolkit/windlg.lisp
==============================================================================
--- trunk/src/tests/uitoolkit/windlg.lisp (original)
+++ trunk/src/tests/uitoolkit/windlg.lisp Sun Aug 13 23:07:35 2006
@@ -246,6 +246,7 @@
(:item "&Mini Frame" :callback #'create-miniframe-win)
(:item "&Palette" :callback #'create-palette-win))))))
(setf (gfw:menu-bar *main-win*) menubar)
+ (setf (gfw:image *main-win*) (make-instance 'gfg:icon-bundle :file (merge-pathnames "default.ico")))
(gfw:show *main-win* t)))
(defun windlg ()
Modified: trunk/src/uitoolkit/graphics/plugins/default/default-data-plugin.lisp
==============================================================================
--- trunk/src/uitoolkit/graphics/plugins/default/default-data-plugin.lisp (original)
+++ trunk/src/uitoolkit/graphics/plugins/default/default-data-plugin.lisp Sun Aug 13 23:07:35 2006
@@ -45,13 +45,15 @@
(defmacro bitmap-pixel-row-length (width bit-count)
`(ash (logand (+ (* ,width ,bit-count) 31) (lognot 31)) -3))
-(defun load-bmp-data (stream)
- (let* ((header (read-value 'BITMAPFILEHEADER stream))
- (info (read-value 'BASE-BITMAPINFOHEADER stream))
+(defun load-bmp-data (stream &optional no-header-p half-height-p)
+ (unless no-header-p
+ (read-value 'BITMAPFILEHEADER stream))
+ (let* ((info (read-value 'BASE-BITMAPINFOHEADER stream))
(data (make-instance 'default-data-plugin :handle info)))
- (declare (ignore header))
(unless (= (biCompression info) gfs::+bi-rgb+)
(error 'gfs:toolkit-error :detail "FIXME: non-RGB not yet implemented"))
+ (if half-height-p
+ (setf (biHeight info) (/ (biHeight info) 2)))
;; load color table
;;
@@ -93,7 +95,13 @@
(list data)))
(defun load-icon-data (stream)
- (declare (ignore stream)))
+ (let ((offsets (loop for i upto (1- (idCount (read-value 'ICONDIR stream)))
+ for entry = (read-value 'ICONDIRENTRY stream)
+ collect (ideImageOffset entry))))
+ (loop for offset in offsets
+ append (progn
+ (file-position stream offset)
+ (load-bmp-data stream t t)))))
(defun loader (path)
(let* ((file-type (pathname-type path))
More information about the Graphic-forms-cvs
mailing list