@@ -118,6 +118,7 @@ pub struct MelodySizes {
118118 pub semitone_height : f32 ,
119119 pub lowest : Semitones ,
120120 pub highest : Semitones ,
121+ pub syllable_height : f32
121122}
122123impl Default for MelodySizes {
123124 fn default ( ) -> Self {
@@ -127,6 +128,7 @@ impl Default for MelodySizes {
127128 semitone_height : 2.0 ,
128129 lowest : Semitones ( i8:: MAX ) ,
129130 highest : Semitones ( i8:: MIN ) ,
131+ syllable_height : 16.0 ,
130132 }
131133 }
132134}
@@ -158,13 +160,18 @@ impl MelodySizes {
158160 let offset_semitones = self . highest - Semitones :: from ( note) ;
159161 -1.0 * self . semitone_height * offset_semitones. 0 as f32 - self . note_height
160162 }
161- pub fn layout_height ( & self ) -> f32 {
163+ pub fn layout_height ( & self , settings : & NotationSettings ) -> f32 {
162164 let range = if self . highest > self . lowest {
163165 self . highest . 0 - self . lowest . 0 + 1
164166 } else {
165167 1
166168 } ;
167- range as f32 * self . semitone_height + self . note_height
169+ let height = range as f32 * self . semitone_height + self . note_height ;
170+ if settings. show_melody_syllable {
171+ height + self . syllable_height
172+ } else {
173+ height
174+ }
168175 }
169176}
170177
@@ -310,7 +317,7 @@ impl ThemeSizes {
310317 pub fn calc_lane_height ( & self , settings : & NotationSettings , lane_kind : LaneKind ) -> f32 {
311318 match lane_kind {
312319 LaneKind :: Lyrics => if settings. hide_lyrics_lane { 0.0 } else { self . lyrics . layout_height ( ) } ,
313- LaneKind :: Melody => if settings. hide_melody_lane { 0.0 } else { self . melody . layout_height ( ) } ,
320+ LaneKind :: Melody => if settings. hide_melody_lane { 0.0 } else { self . melody . layout_height ( settings ) } ,
314321 LaneKind :: Strings => if settings. hide_strings_lane { 0.0 } else { self . strings . layout_height ( ) } ,
315322 LaneKind :: Shapes => if settings. hide_shapes_lane { 0.0 } else { self . layout . shapes_height } ,
316323 _ => 0.0 ,
0 commit comments