1- use std:: ops:: DerefMut ;
21use eframe:: emath:: Align ;
32use eframe:: epaint:: StrokeKind ;
43use egui:: { Layout , Pos2 , Rect , Response , Sense , TextStyle , Ui , Vec2 , WidgetInfo , WidgetText , WidgetType } ;
54use egui_flex:: { item, Flex , FlexAlignContent } ;
65use java_asm:: StrRef ;
7- use java_asm_server:: ui:: { AppContainer , Tab } ;
6+ use java_asm_server:: ui:: { AppContainer , Tab , Top } ;
7+ use std:: ops:: DerefMut ;
88
99pub fn render_tabs (
1010 ui : & mut Ui , app_container : & AppContainer ,
1111) {
1212 let mut deleted_tab = None ;
13+ let mut top = app_container. top ( ) . lock ( ) ;
1314 let mut content_locked = app_container. content ( ) . lock ( ) ;
1415 let content_ref = content_locked. deref_mut ( ) ;
1516 let selected_tab_index = & mut content_ref. selected ;
@@ -21,7 +22,7 @@ pub fn render_tabs(
2122 . show ( ui, |flex| {
2223 for tab in opened_tabs. iter ( ) . enumerate ( ) {
2324 flex. add_ui ( item ( ) , |ui : & mut Ui | {
24- file_title ( ui, selected_tab_index, & mut deleted_tab, tab)
25+ file_title ( ui, & mut top , selected_tab_index, & mut deleted_tab, tab)
2526 } ) ;
2627 }
2728 } ) ;
@@ -31,10 +32,14 @@ pub fn render_tabs(
3132 }
3233}
3334
34- fn file_title ( ui : & mut Ui , selected_tab_index : & mut Option < usize > , deleted_tab : & mut Option < usize > , tab : ( usize , & Tab ) ) {
35+ fn file_title (
36+ ui : & mut Ui , top : & mut Top ,
37+ selected_tab_index : & mut Option < usize > , deleted_tab : & mut Option < usize > , tab : ( usize , & Tab )
38+ ) {
3539 let ( index, tab) = tab;
3640 let selected = selected_tab_index. map ( |current| current == index) . unwrap_or_default ( ) ;
3741 let title = tab. title . clone ( ) ;
42+ let title_cloned = title. clone ( ) ;
3843 let selectable_label = SelectableClosableLabel { selected, title } ;
3944 let response = selectable_label. ui ( ui) ;
4045 if response. closed {
@@ -49,6 +54,7 @@ fn file_title(ui: &mut Ui, selected_tab_index: &mut Option<usize>, deleted_tab:
4954 }
5055 } else if response. raw . clicked ( ) {
5156 * selected_tab_index = Some ( index) ;
57+ top. file_path = Some ( title_cloned. to_string ( ) ) ;
5258 }
5359}
5460
0 commit comments