@@ -660,7 +660,10 @@ impl eframe::App for App {
660
660
let side_panel_available = diff_state. current_view == View :: SymbolDiff ;
661
661
662
662
egui:: TopBottomPanel :: top ( "top_panel" ) . show ( ctx, |ui| {
663
- egui:: MenuBar :: new ( ) . ui ( ui, |ui| {
663
+ // Temporarily use pre-egui 0.32 menu. ComboBox within menu
664
+ // is currently broken. Issue TBD
665
+ #[ allow( deprecated) ]
666
+ egui:: menu:: bar ( ui, |ui| {
664
667
if ui
665
668
. add_enabled (
666
669
side_panel_available,
@@ -672,7 +675,8 @@ impl eframe::App for App {
672
675
* show_side_panel = !* show_side_panel;
673
676
}
674
677
ui. separator ( ) ;
675
- ui. menu_button ( "File" , |ui| {
678
+ let bar_state = egui:: menu:: BarState :: load ( ui. ctx ( ) , ui. id ( ) ) ;
679
+ egui:: menu:: menu_button ( ui, "File" , |ui| {
676
680
#[ cfg( debug_assertions) ]
677
681
if ui. button ( "Debug…" ) . clicked ( ) {
678
682
* show_debug = !* show_debug;
@@ -689,22 +693,29 @@ impl eframe::App for App {
689
693
} ;
690
694
if recent_projects. is_empty ( ) {
691
695
ui. add_enabled ( false , egui:: Button :: new ( "Recent projects…" ) ) ;
692
- } else {
693
- ui. menu_button ( "Recent Projects…" , |ui| {
694
- if ui. button ( "Clear" ) . clicked ( ) {
695
- state. write ( ) . unwrap ( ) . config . recent_projects . clear ( ) ;
696
- } ;
697
- ui. separator ( ) ;
698
- for path in recent_projects {
699
- if ui. button ( & path) . clicked ( ) {
700
- state
701
- . write ( )
702
- . unwrap ( )
703
- . set_project_dir ( Utf8PlatformPathBuf :: from ( path) ) ;
704
- ui. close ( ) ;
696
+ } else if let Some ( menu_root) = bar_state. as_ref ( ) {
697
+ egui:: menu:: submenu_button (
698
+ ui,
699
+ menu_root. menu_state . clone ( ) ,
700
+ "Recent Projects…" ,
701
+ |ui| {
702
+ if ui. button ( "Clear" ) . clicked ( ) {
703
+ state. write ( ) . unwrap ( ) . config . recent_projects . clear ( ) ;
704
+ } ;
705
+ ui. separator ( ) ;
706
+ for path in recent_projects {
707
+ if ui. button ( & path) . clicked ( ) {
708
+ state
709
+ . write ( )
710
+ . unwrap ( )
711
+ . set_project_dir ( Utf8PlatformPathBuf :: from ( path) ) ;
712
+ ui. close ( ) ;
713
+ }
705
714
}
706
- }
707
- } ) ;
715
+ } ,
716
+ ) ;
717
+ } else {
718
+ ui. add_enabled ( false , egui:: Button :: new ( "Recent projects…" ) ) ;
708
719
}
709
720
if ui. button ( "Appearance…" ) . clicked ( ) {
710
721
* show_appearance_config = !* show_appearance_config;
@@ -718,7 +729,7 @@ impl eframe::App for App {
718
729
ctx. send_viewport_cmd ( egui:: ViewportCommand :: Close ) ;
719
730
}
720
731
} ) ;
721
- ui . menu_button ( "Tools" , |ui| {
732
+ egui :: menu :: menu_button ( ui , "Tools" , |ui| {
722
733
if ui. button ( "Demangle…" ) . clicked ( ) {
723
734
* show_demangle = !* show_demangle;
724
735
ui. close ( ) ;
@@ -728,7 +739,7 @@ impl eframe::App for App {
728
739
ui. close ( ) ;
729
740
}
730
741
} ) ;
731
- ui . menu_button ( "Diff Options" , |ui| {
742
+ egui :: menu :: menu_button ( ui , "Diff Options" , |ui| {
732
743
if ui. button ( "Arch Settings…" ) . clicked ( ) {
733
744
* show_arch_config = !* show_arch_config;
734
745
ui. close ( ) ;
0 commit comments