@@ -671,7 +671,8 @@ impl<'a, 'b> egui_tiles::Behavior<SpaceViewId> for TabViewer<'a, 'b> {
671
671
} ;
672
672
let space_view_id = * space_view_id;
673
673
674
- let Some ( space_view) = self . viewport_blueprint . space_views . get ( & space_view_id) else {
674
+ let Some ( space_view_blueprint) = self . viewport_blueprint . space_views . get ( & space_view_id)
675
+ else {
675
676
return ;
676
677
} ;
677
678
let num_space_views = tiles. tiles ( ) . filter ( |tile| tile. is_pane ( ) ) . count ( ) ;
@@ -699,9 +700,29 @@ impl<'a, 'b> egui_tiles::Behavior<SpaceViewId> for TabViewer<'a, 'b> {
699
700
}
700
701
}
701
702
702
- let help_markdown = space_view
703
- . class ( self . ctx . space_view_class_registry )
704
- . help_markdown ( self . ctx . egui_ctx ) ;
703
+ let space_view_class = space_view_blueprint. class ( self . ctx . space_view_class_registry ) ;
704
+
705
+ // give the view a chance to display some extra UI in the top bar.
706
+ let view_state = self
707
+ . view_states
708
+ . get_mut_or_create ( space_view_id, space_view_class) ;
709
+ space_view_class
710
+ . extra_title_bar_ui (
711
+ self . ctx ,
712
+ ui,
713
+ view_state,
714
+ & space_view_blueprint. space_origin ,
715
+ space_view_id,
716
+ )
717
+ . unwrap_or_else ( |err| {
718
+ re_log:: error!(
719
+ "Error in view title bar UI (class: {}, display name: {}): {err}" ,
720
+ space_view_blueprint. class_identifier( ) ,
721
+ space_view_class. display_name( ) ,
722
+ ) ;
723
+ } ) ;
724
+
725
+ let help_markdown = space_view_class. help_markdown ( self . ctx . egui_ctx ) ;
705
726
ui. help_hover_button ( ) . on_hover_ui ( |ui| {
706
727
ui. markdown_ui ( & help_markdown) ;
707
728
} ) ;
0 commit comments