@@ -364,16 +364,6 @@ impl ControlView {
364364 CollapsingHeader :: new ( "Display Options" )
365365 . default_open ( true )
366366 . show ( ui, |ui| {
367- let hide_bar_number = settings. hide_bar_number ;
368- ui. checkbox ( & mut settings. hide_bar_number , "Hide Bar Number" ) ;
369- if hide_bar_number != settings. hide_bar_number {
370- Self :: reload_tab ( state, theme) ;
371- }
372- let always_show_fret = settings. always_show_fret ;
373- ui. checkbox ( & mut settings. always_show_fret , "Always Show Fret" ) ;
374- if always_show_fret != settings. always_show_fret {
375- Self :: reload_tab ( state, theme) ;
376- }
377367 let show_melody_syllable = settings. show_melody_syllable ;
378368 ui. checkbox ( & mut settings. show_melody_syllable , "Show Melody Syllable" ) ;
379369 if show_melody_syllable != settings. show_melody_syllable {
@@ -387,6 +377,16 @@ impl ControlView {
387377 }
388378 Self :: reload_tab ( state, theme) ;
389379 }
380+ let hide_bar_number = settings. hide_bar_number ;
381+ ui. checkbox ( & mut settings. hide_bar_number , "Hide Bar Number" ) ;
382+ if hide_bar_number != settings. hide_bar_number {
383+ Self :: reload_tab ( state, theme) ;
384+ }
385+ let always_show_fret = settings. always_show_fret ;
386+ ui. checkbox ( & mut settings. always_show_fret , "Always Show Fret" ) ;
387+ if always_show_fret != settings. always_show_fret {
388+ Self :: reload_tab ( state, theme) ;
389+ }
390390 } ) ;
391391 }
392392 pub fn layout_ui (
@@ -435,11 +435,12 @@ impl ControlView {
435435 } ) ;
436436 }
437437 if ui. button ( "Reset Tab" ) . clicked ( ) {
438- Self :: reload_tab ( state, theme) ;
438+ Self :: reload_tab ( state, theme) ;
439439 }
440440 }
441441 pub fn guitar_tab_display_ui (
442442 ui : & mut Ui ,
443+ state : & mut NotationAppState ,
443444 theme : & mut NotationTheme ,
444445 window_resized_evts : & mut EventWriter < WindowResizedEvent > ,
445446 ) {
@@ -456,10 +457,30 @@ impl ControlView {
456457 if float_ne ! ( theme. sizes. strings. note_height, last_note_height, abs <= 0.5 ) {
457458 window_resized_evts. send ( WindowResizedEvent ( ) ) ;
458459 }
460+ let mut changed = false ;
461+ let last_word_font_size = theme. texts . strings . fret_font_size ;
462+ ui. add ( Slider :: new ( & mut theme. texts . strings . fret_font_size , 6.0 ..=64.0 ) . text ( "Fret Font Size" ) ) ;
463+ if float_ne ! ( theme. texts. strings. fret_font_size, last_word_font_size, abs <= 0.5 ) {
464+ changed = true ;
465+ }
466+ let last_word_text_x = theme. texts . strings . text_x ;
467+ ui. add ( Slider :: new ( & mut theme. texts . strings . text_x , -24.0 ..=24.0 ) . text ( "Fret Offset X" ) ) ;
468+ if float_ne ! ( theme. texts. strings. text_x, last_word_text_x, abs <= 0.5 ) {
469+ changed = true ;
470+ }
471+ let last_word_text_y = theme. texts . strings . text_y ;
472+ ui. add ( Slider :: new ( & mut theme. texts . strings . text_y , -24.0 ..=24.0 ) . text ( "Fret Offset Y" ) ) ;
473+ if float_ne ! ( theme. texts. strings. text_y, last_word_text_y, abs <= 0.5 ) {
474+ changed = true ;
475+ }
476+ if changed {
477+ Self :: reload_tab ( state, theme) ;
478+ }
459479 } ) ;
460480 }
461481 pub fn lyrics_display_ui (
462482 ui : & mut Ui ,
483+ state : & mut NotationAppState ,
463484 theme : & mut NotationTheme ,
464485 window_resized_evts : & mut EventWriter < WindowResizedEvent > ,
465486 ) {
@@ -486,11 +507,65 @@ impl ControlView {
486507 if float_ne ! ( theme. sizes. lyrics. word_gap, last_word_gap, abs <= 0.5 ) {
487508 window_resized_evts. send ( WindowResizedEvent ( ) ) ;
488509 }
510+ let mut changed = false ;
489511 let last_word_font_size = theme. texts . lyrics . word_font_size ;
490512 ui. add ( Slider :: new ( & mut theme. texts . lyrics . word_font_size , 6.0 ..=64.0 ) . text ( "Word Font Size" ) ) ;
491513 if float_ne ! ( theme. texts. lyrics. word_font_size, last_word_font_size, abs <= 0.5 ) {
514+ changed = true ;
515+ }
516+ let last_word_text_x = theme. texts . lyrics . text_x ;
517+ ui. add ( Slider :: new ( & mut theme. texts . lyrics . text_x , -24.0 ..=24.0 ) . text ( "Word Offset X" ) ) ;
518+ if float_ne ! ( theme. texts. lyrics. text_x, last_word_text_x, abs <= 0.5 ) {
519+ changed = true ;
520+ }
521+ let last_word_text_y = theme. texts . lyrics . text_y ;
522+ ui. add ( Slider :: new ( & mut theme. texts . lyrics . text_y , -24.0 ..=24.0 ) . text ( "Word Offset Y" ) ) ;
523+ if float_ne ! ( theme. texts. lyrics. text_y, last_word_text_y, abs <= 0.5 ) {
524+ changed = true ;
525+ }
526+ if changed {
527+ Self :: reload_tab ( state, theme) ;
528+ }
529+ } ) ;
530+ }
531+ pub fn melody_display_ui (
532+ ui : & mut Ui ,
533+ state : & mut NotationAppState ,
534+ theme : & mut NotationTheme ,
535+ window_resized_evts : & mut EventWriter < WindowResizedEvent > ,
536+ ) {
537+ CollapsingHeader :: new ( "Melody" )
538+ . default_open ( true )
539+ . show ( ui, |ui| {
540+ let last_note_height = theme. sizes . melody . note_height ;
541+ ui. add ( Slider :: new ( & mut theme. sizes . melody . note_height , 1.0 ..=32.0 ) . text ( "Note Height" ) ) ;
542+ if float_ne ! ( theme. sizes. melody. note_height, last_note_height, abs <= 0.5 ) {
543+ window_resized_evts. send ( WindowResizedEvent ( ) ) ;
544+ }
545+ let last_semitones = theme. sizes . melody . semitones ;
546+ ui. add ( Slider :: new ( & mut theme. sizes . melody . semitones , 12 ..=60 ) . text ( "Semitones" ) ) ;
547+ if theme. sizes . melody . semitones != last_semitones {
492548 window_resized_evts. send ( WindowResizedEvent ( ) ) ;
493549 }
550+ let mut changed = false ;
551+ let last_syllable_font_size = theme. texts . melody . syllable_font_size ;
552+ ui. add ( Slider :: new ( & mut theme. texts . melody . syllable_font_size , 6.0 ..=64.0 ) . text ( "Syllable Font Size" ) ) ;
553+ if float_ne ! ( theme. texts. melody. syllable_font_size, last_syllable_font_size, abs <= 0.5 ) {
554+ changed = true ;
555+ }
556+ let last_syllable_text_x = theme. texts . melody . text_x ;
557+ ui. add ( Slider :: new ( & mut theme. texts . melody . text_x , -24.0 ..=24.0 ) . text ( "Syllable Offset X" ) ) ;
558+ if float_ne ! ( theme. texts. melody. text_x, last_syllable_text_x, abs <= 0.5 ) {
559+ changed = true ;
560+ }
561+ let last_syllable_text_y = theme. texts . melody . text_y ;
562+ ui. add ( Slider :: new ( & mut theme. texts . melody . text_y , -24.0 ..=24.0 ) . text ( "Syllable Offset Y" ) ) ;
563+ if float_ne ! ( theme. texts. melody. text_y, last_syllable_text_y, abs <= 0.5 ) {
564+ changed = true ;
565+ }
566+ if changed {
567+ Self :: reload_tab ( state, theme) ;
568+ }
494569 } ) ;
495570 }
496571 pub fn control_ui (
@@ -534,9 +609,15 @@ impl ControlView {
534609 Self :: layout_ui ( ui, & mut state, & mut settings, & mut theme) ;
535610 Self :: overrides_ui ( ui, & mut settings, & mut window_resized_evts, & mut guitar_view_query) ;
536611 ui. separator ( ) ;
537- ui. label ( "Override Theme, May Need to Reset Tab" ) ;
538- Self :: guitar_tab_display_ui ( ui, & mut theme, & mut window_resized_evts) ;
539- Self :: lyrics_display_ui ( ui, & mut theme, & mut window_resized_evts) ;
612+ ui. label ( "Override Theme" ) ;
613+ Self :: guitar_tab_display_ui ( ui, & mut state, & mut theme, & mut window_resized_evts) ;
614+ Self :: lyrics_display_ui ( ui, & mut state, & mut theme, & mut window_resized_evts) ;
615+ Self :: melody_display_ui ( ui, & mut state, & mut theme, & mut window_resized_evts) ;
616+ ui. separator ( ) ;
617+ if ui. button ( "Reset Theme" ) . clicked ( ) {
618+ * theme = NotationTheme :: default ( ) ;
619+ Self :: reload_tab ( & mut state, & mut theme) ;
620+ }
540621 } ) ;
541622 } ) ;
542623 } ) ;
0 commit comments