Subject: Ajouter une propriété

From: Mike Solomon <[email-masked]>
Date: Tue, 11 Oct 2011 11:50:08 +0200

Bonjour toute l'équipe,

Je travaille sur un morceau où il faut que je rajoute des propriétés supplémentaires à certains grobs pour partager des informations entre eux.  Ça marche impeccablement, mais LilyPond me donne beaucoup de :

cannot find property type-check for `buddies' (backend-type?).  perhaps a typing error?

(où `buddies' est la propriété que j'ai inventée - j'écris, par exemple, \once \override NoteHead #'buddies = #'(foo bar) dans le fichier .ly)

Le problème, c'est que j'utilise cette propriété partout, et la marée d'avertissements à son égard cache des fois des messages importants.
Est-ce qu'il y a une manière de faire taire LilyPond pour ce genre de manipulation (nouvelles propriétés) et/ou de rajouter la propriété à la liste des propriétés recevables ?

Cordialement,
~Mike

---

From: Bertrand Bordage <[email-masked]>
Date: Tue, 11 Oct 2011 11:53:45 +0200

scm/define-grobs-properties.scm, non ?

---

From: Mike Solomon <[email-masked]>
Date: Tue, 11 Oct 2011 12:01:44 +0200

> scm/define-grobs-properties.scm, non ?

Oui, mais j'essaie de ne pas modifier la copie de la source avec laquelle je travaille, histoire de ne pas joindre l'utile à l'agréable (et de ne pas effacer mes changements avec chaque mise à jour).
S'il faut le faire, je le ferai, mais je préférerais définir toutes les modifs dans les fichiers .ly eux-mêmes.

A+,
~Mike

---

From: Bertrand Bordage <[email-masked]>
Date: Tue, 11 Oct 2011 12:06:42 +0200

Justement, il y a tout ce qu'il faut dans define-grob-properties.scm.  Un
exemple :

#(define (define-grob-property symbol type? description)
  (if (not (equal? (object-property symbol 'backend-doc) #f))
      (ly:error (_ "symbol ~S redefined") symbol))

  (set-object-property! symbol 'backend-type? type?)
  (set-object-property! symbol 'backend-doc description)
  symbol)

#(define-grob-property 'buddies list? "List of grobs")

{ \override StaffSymbol #'buddies = #'(clef note-head) a }

---

From: Mike Solomon <[email-masked]>
Date: Tue, 11 Oct 2011 12:18:47 +0200

On Oct 11, 2011, at 12:06 PM, Bertrand Bordage wrote:

> Justement, il y a tout ce qu'il faut dans define-grob-properties.scm.  Un exemple :
> 

Chapeau !
J'ai essayé un truc comme ça dans un autre morceau quand j'étais bizut, mais j'ai dû faire une erreur dans la définition.  Cet épisode m'a fortement découragé et je n'ai pas tenté ce genre de manip depuis.

~Mike