diff --git a/editor/src/messages/dialog/new_document_dialog/new_document_dialog_message.rs b/editor/src/messages/dialog/new_document_dialog/new_document_dialog_message.rs index 21774de336..87549692c3 100644 --- a/editor/src/messages/dialog/new_document_dialog/new_document_dialog_message.rs +++ b/editor/src/messages/dialog/new_document_dialog/new_document_dialog_message.rs @@ -7,6 +7,7 @@ pub enum NewDocumentDialogMessage { Infinite { infinite: bool }, DimensionsX { width: f64 }, DimensionsY { height: f64 }, + SwapDimensions, Submit, } diff --git a/editor/src/messages/dialog/new_document_dialog/new_document_dialog_message_handler.rs b/editor/src/messages/dialog/new_document_dialog/new_document_dialog_message_handler.rs index cbfacb1715..2d51e2870a 100644 --- a/editor/src/messages/dialog/new_document_dialog/new_document_dialog_message_handler.rs +++ b/editor/src/messages/dialog/new_document_dialog/new_document_dialog_message_handler.rs @@ -21,6 +21,9 @@ impl MessageHandler for NewDocumentDialogMessageHa NewDocumentDialogMessage::Infinite { infinite } => self.infinite = infinite, NewDocumentDialogMessage::DimensionsX { width } => self.dimensions.x = width as u32, NewDocumentDialogMessage::DimensionsY { height } => self.dimensions.y = height as u32, + NewDocumentDialogMessage::SwapDimensions => { + std::mem::swap(&mut self.dimensions.x, &mut self.dimensions.y); + } NewDocumentDialogMessage::Submit => { responses.add(PortfolioMessage::NewDocumentWithName { name: self.name.clone() }); @@ -132,6 +135,12 @@ impl LayoutHolder for NewDocumentDialogMessageHandler { .on_update(|number_input: &NumberInput| NewDocumentDialogMessage::DimensionsX { width: number_input.value.unwrap() }.into()) .widget_instance(), Separator::new(SeparatorStyle::Related).widget_instance(), + IconButton::new("SwapHorizontal", 16) + .tooltip_label("Swap Width/Height") + .disabled(self.infinite) + .on_update(|_| NewDocumentDialogMessage::SwapDimensions.into()) + .widget_instance(), + Separator::new(SeparatorStyle::Related).widget_instance(), NumberInput::new(Some(self.dimensions.y as f64)) .label("H") .unit(" px")