]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/framework-gnome.scm
Fix some bugs in the dynamic engraver and PostScript backend
[lilypond.git] / scm / framework-gnome.scm
index d8a9699c36987071bba072f6ff4b6d093f15ae73..7243ccebbcf9c678cd2ff039fbc766e4af9b55ca 100644 (file)
@@ -2,14 +2,18 @@
 ;;;;
 ;;;;  source file of the GNU LilyPond music typesetter
 ;;;; 
-;;;; (c) 2004--2005 Jan Nieuwenhuizen <janneke@gnu.org>
+;;;; (c) 2004--2006 Jan Nieuwenhuizen <janneke@gnu.org>
 
 ;;;; See output-gnome.scm for usage information.
 
 
 (define-module (scm framework-gnome))
 
-(use-modules (guile) (oop goops) (lily))
+(use-modules (guile)
+            (oop goops)
+            (scm page)
+            (scm paper-system)
+            (lily))
 
 (use-modules
  (srfi srfi-2)
 
 (define (gnome-main book name)
   (let* ((paper (ly:paper-book-paper book))
-        (hsize (ly:output-def-lookup paper 'hsize))
-        (vsize (ly:output-def-lookup paper 'vsize))
-        (page-width (inexact->exact (ceiling (* OUTPUT-SCALE hsize))))
-        (page-height (inexact->exact (ceiling (* OUTPUT-SCALE vsize))))
-        ;;(page-width (inexact->exact (ceiling hsize)))
-        ;;(page-height (inexact->exact (ceiling vsize)))
+        (paper-width (ly:output-def-lookup paper 'paper-width))
+        (paper-height (ly:output-def-lookup paper 'paper-height))
+        (page-width (inexact->exact (ceiling (* OUTPUT-SCALE paper-width))))
+        (page-height (inexact->exact (ceiling (* OUTPUT-SCALE paper-height))))
+        ;;(page-width (inexact->exact (ceiling paper-width)))
+        ;;(page-height (inexact->exact (ceiling paper-height)))
 
         (screen-width (gdk-screen-width))
         (screen-height (gdk-screen-height))
 
         (go (make <gnome-outputter>
               #:name name
-              #:page-stencils (list->vector (ly:paper-book-pages book))
+              #:page-stencils (list->vector (map page-stencil (ly:paper-book-pages book)))
               #:canvas-width page-width
               #:canvas-height page-height
               #:window-width
 (define (spawn-editor location)
   (let* ((file-name (car location))
         (line (cadr location))
-        (column (caddr location))
-        (command (get-editor-command file line column)))
+        (char (caddr location))
+        (column (cadddr location))
+        (command (get-editor-command file line char column)))
     (debugf "spawning: ~s\n" command)
     (if (= (primitive-fork) 0)
        (let ((command-list (string-split command #\ )));; (get-ifs))))
                (ly:input-location music-origin)
                #f)))
 
+;; todo: how to integrate nicely?
+;(define-public (tweak-grob-property grob sym val)
+;  (set! (ly:grob-property grob sym) val))
+
 
 (define-method (tweak (go <gnome-outputter>) item offset)
   (let* ((grob (hashq-ref (item-grobs go) item #f))