File tree Expand file tree Collapse file tree
crates/bevy_animation_graph_editor/src/ui/generic_widgets Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -81,9 +81,13 @@ impl<'a> egui::Widget for DataValueWidget<'a> {
8181 response |= ui. add ( EntityPathWidget :: new_salted ( entity_path, "entity path" ) ) ;
8282 }
8383 DataValue :: BoneMask ( bone_mask) => {
84- response |= PopupWidget :: new_salted ( "bone mask popup" ) . ui ( ui, |ui| {
85- ui. add ( BoneMaskWidget :: new ( bone_mask) . with_skeleton ( self . skeleton ) )
86- } ) ;
84+ response |= PopupWidget :: new_salted ( "bone mask popup" )
85+ . with_max_width ( 500. )
86+ . ui ( ui, |ui| {
87+ ui. add (
88+ BoneMaskWidget :: new ( bone_mask) . with_skeleton ( self . skeleton ) ,
89+ )
90+ } ) ;
8791 }
8892 DataValue :: Pose ( _) => {
8993 response |= ui. label ( "Pose value editing not supported" ) ;
Original file line number Diff line number Diff line change @@ -47,7 +47,8 @@ impl<'a> egui::Widget for EntityPathWidget<'a> {
4747 } ) ;
4848
4949 let response = ui. add (
50- egui:: TextEdit :: singleline ( & mut buffer. value ) . min_size ( egui:: Vec2 :: new ( 350. , 0. ) ) ,
50+ egui:: TextEdit :: singleline ( & mut buffer. value )
51+ . desired_width ( ui. available_width ( ) ) ,
5152 ) ;
5253
5354 let top_k = self
Original file line number Diff line number Diff line change @@ -3,33 +3,47 @@ use egui::containers::menu::MenuConfig;
33pub struct PopupWidget {
44 pub id_hash : egui:: Id ,
55 pub button_label : String ,
6+ pub max_width : Option < f32 > ,
67}
78
89impl PopupWidget {
910 pub fn new_salted ( salt : impl std:: hash:: Hash ) -> Self {
1011 Self {
1112 id_hash : egui:: Id :: new ( salt) ,
1213 button_label : "edit" . into ( ) ,
14+ max_width : None ,
1315 }
1416 }
1517
18+ pub fn with_max_width ( mut self , max_width : f32 ) -> Self {
19+ self . max_width = Some ( max_width) ;
20+ self
21+ }
22+
1623 pub fn ui (
1724 self ,
1825 ui : & mut egui:: Ui ,
1926 inner : impl FnOnce ( & mut egui:: Ui ) -> egui:: Response ,
2027 ) -> egui:: Response {
28+ let max_width = self . max_width ;
29+ let wrapped_inner = move |ui : & mut egui:: Ui | -> egui:: Response {
30+ if let Some ( w) = max_width {
31+ ui. set_max_width ( w) ;
32+ }
33+ inner ( ui)
34+ } ;
2135 ui. push_id ( self . id_hash , |ui| {
2236 ui. horizontal ( |ui| {
2337 let config =
2438 MenuConfig :: new ( ) . close_behavior ( egui:: PopupCloseBehavior :: CloseOnClickOutside ) ;
2539 let ( mut button_response, inner) = if egui:: containers:: menu:: is_in_menu ( ui) {
2640 egui:: containers:: menu:: SubMenuButton :: new ( & self . button_label )
2741 . config ( config)
28- . ui ( ui, inner )
42+ . ui ( ui, wrapped_inner )
2943 } else {
3044 egui:: containers:: menu:: MenuButton :: new ( & self . button_label )
3145 . config ( config)
32- . ui ( ui, inner )
46+ . ui ( ui, wrapped_inner )
3347 } ;
3448
3549 if inner. is_some_and ( |i| i. inner . changed ( ) ) {
Original file line number Diff line number Diff line change @@ -43,6 +43,7 @@ impl<'a> egui::Widget for RagdollConfigWidget<'a> {
4343 let mut response = ui. button ( "Edit" ) ;
4444 let popup_response = egui:: Popup :: from_toggle_button_response ( & response)
4545 . close_behavior ( egui:: PopupCloseBehavior :: IgnoreClicks )
46+ . width ( 500. )
4647 . show ( |ui| {
4748 let mut response = ui. heading ( "Defaults" ) ;
4849 ui. horizontal ( |ui| {
Original file line number Diff line number Diff line change @@ -46,7 +46,8 @@ impl<'a> egui::Widget for UuidWidget<'a> {
4646 } ) ;
4747
4848 let mut response = ui. add (
49- egui:: TextEdit :: singleline ( & mut data. buffer ) . min_size ( egui:: Vec2 :: new ( 250. , 0. ) ) ,
49+ egui:: TextEdit :: singleline ( & mut data. buffer )
50+ . desired_width ( ui. available_width ( ) ) ,
5051 ) ;
5152
5253 // Mark non-changed; we only consider the response changed if the uuid string is valid
You can’t perform that action at this time.
0 commit comments