]> git.donarmstrong.com Git - lilypond.git/commitdiff
(item-event): Add support from TLA. Support
authorJan Nieuwenhuizen <janneke@gnu.org>
Wed, 10 Nov 2004 20:21:13 +0000 (20:21 +0000)
committerJan Nieuwenhuizen <janneke@gnu.org>
Wed, 10 Nov 2004 20:21:13 +0000 (20:21 +0000)
animated/opaque grob dragging tweaks.

lily/lily-parser.cc
scm/framework-gnome.scm

index 1700609a18149506d75da9d336760229931457a0..96ec79f0e3a15ce86584b409044eb10e861881d4 100644 (file)
@@ -101,8 +101,9 @@ Lily_parser::parse_file (String init, String name, String out_name)
   set_yydebug (0);
 
   lexer_->new_input (init, sources_);
-#ifdef TWEAK  
-  String s = global_path.find (name + ".t");
+#ifdef TWEAK
+  File_name f (name);
+  String s = global_path.find (f.base_ + ".twy");
   if (s == "")
     Grob_selector::set_tweaks (SCM_EOL);
   else
index c889bd8d6b8548d20c14c10b0e300175483785b2..59ee4a367cda0bc1bdd2ea06102ab239519d67e2 100644 (file)
                     (cons (car extra-offset)
                           (- 0 (cdr extra-offset))))))
     (if grob (hashq-set! (grob-tweaks go) grob
-                        (cons (+ (car origin) (car offset))
-                              (- 0 (+ (cdr origin) (cdr offset))))))
-    ;;;(move item (car offset) (cdr offset))))
-    ))
+                        (cons
+                         'extra-offset
+                         (list
+                          (cons (+ (car origin) (car offset))
+                                (- 0 (+ (cdr origin) (cdr offset))))))))))
 
+;; FIXME: this only saves new tweaks, old tweaks are lost.
 (define-method (save-tweaks (go <gnome-outputter>))
-  (let ;;((file (current-error-port)))
-      ((file (open-file (string-append (name go) ".ly.t") "w")))
-    (format file ";;; TWEAKS \n")
-    (format file ";;(define grob-id-tweak-alist \n'(\n")
-    (hash-fold
-     (lambda (key value seed)
-       (format file "(~S extra-offset ~S)\n"
-              (if (ly:grob? key) (ly:grob-id key) ";;unidentified grob")
-              value))
-     #f (grob-tweaks go))
-    (format file ")\n;;)\n")))
+  (let ((tweaks (hash-fold
+                (lambda (key value seed)
+                  (cons (cons (ly:grob-id key) value) seed))
+                '() (grob-tweaks go))))
+    (if (not (null? tweaks))
+       (let ((file (open-file (string-append (name go) ".twy") "w")))
+         (format file ";;; TWEAKS \n'~S\n" tweaks)))))
 
 ;;;(define (item-event go grob item event)
 (define (item-event go item event)
     ((enter-notify) (gobject-set-property item 'fill-color "red"))
     ((leave-notify) (gobject-set-property item 'fill-color "black"))
     ((motion-notify) (if (ly:grob? (dragging go))
-                        (let* ((x (gdk-event-motion:x event))
-                               (y (gdk-event-motion:y event))
-                               ;;(s (pixels-per-unit go))
-                               (s output-scale)
-                               (r (drag-location go)))
+                        (let ((x (gdk-event-motion:x event))
+                              (y (gdk-event-motion:y event))
+                              (s output-scale)
+                              (r (drag-location go)))
                           ;;(stderr "MOVED AT: ~S ~S\n" x y)
                           (move item (/ (- x (car r)) s) (/ (- y (cdr r)) s))
                           (set! (drag-location go) (cons x y)))))
     ((button-release) (if (ly:grob? (dragging go))
-                         (let* ((x (gdk-event-button:x event))
-                                (y (gdk-event-button:y event))
-                                ;;(s (pixels-per-unit go))
-                                (s output-scale)
-                                (o (drag-origin go))
-                                (r (drag-location go)))
+                         (let ((x (gdk-event-button:x event))
+                               (y (gdk-event-button:y event))
+                               (s output-scale)
+                               (o (drag-origin go))
+                               (r (drag-location go)))
                            (move item (/ (- x (car r)) s) (/ (- y (cdr r)) s))
                            (set! (drag-location go) #f)
                            (set! (drag-origin go) #f)
            (debugf "GROB: ~S\n" grob)
            (debugf "PROPERTIES: ~S\n" properties)
            (debugf "BASIC PROPERTIES: ~S\n" basic-properties)
-           
+
+           ;; FIXME: dialog iso window?
+           ;; http://www.gtk.org/tutorial/sec-textentries.html
            (let ((window (make <gtk-window>))
                  (vbox (make <gtk-vbox>))
                  (button (make <gtk-button> #:label "Ok")))