Skip to content

Commit 9e3b970

Browse files
committed
widgets:new_document: add swap button to dims
add a button to swap dimensions, essentially changing between portrait and landscape mode much more easily [edit] disabled when infinite is selected. Signed-off-by: Niv Sardi <xaiki@evilgiggle.com>
1 parent 629a1f4 commit 9e3b970

2 files changed

Lines changed: 10 additions & 0 deletions

File tree

editor/src/messages/dialog/new_document_dialog/new_document_dialog_message.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ pub enum NewDocumentDialogMessage {
77
Infinite { infinite: bool },
88
DimensionsX { width: f64 },
99
DimensionsY { height: f64 },
10+
SwapDimensions,
1011

1112
Submit,
1213
}

editor/src/messages/dialog/new_document_dialog/new_document_dialog_message_handler.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ impl MessageHandler<NewDocumentDialogMessage, ()> for NewDocumentDialogMessageHa
2121
NewDocumentDialogMessage::Infinite { infinite } => self.infinite = infinite,
2222
NewDocumentDialogMessage::DimensionsX { width } => self.dimensions.x = width as u32,
2323
NewDocumentDialogMessage::DimensionsY { height } => self.dimensions.y = height as u32,
24+
NewDocumentDialogMessage::SwapDimensions => {
25+
std::mem::swap(&mut self.dimensions.x, &mut self.dimensions.y);
26+
}
2427
NewDocumentDialogMessage::Submit => {
2528
responses.add(PortfolioMessage::NewDocumentWithName { name: self.name.clone() });
2629

@@ -132,6 +135,12 @@ impl LayoutHolder for NewDocumentDialogMessageHandler {
132135
.on_update(|number_input: &NumberInput| NewDocumentDialogMessage::DimensionsX { width: number_input.value.unwrap() }.into())
133136
.widget_instance(),
134137
Separator::new(SeparatorStyle::Related).widget_instance(),
138+
IconButton::new("SwapHorizontal", 16)
139+
.tooltip_label("Swap Width/Height")
140+
.disabled(self.infinite)
141+
.on_update(|_| NewDocumentDialogMessage::SwapDimensions.into())
142+
.widget_instance(),
143+
Separator::new(SeparatorStyle::Related).widget_instance(),
135144
NumberInput::new(Some(self.dimensions.y as f64))
136145
.label("H")
137146
.unit(" px")

0 commit comments

Comments
 (0)