Skip to content

Commit 0cabd24

Browse files
committed
rect docs
1 parent a10cfe9 commit 0cabd24

4 files changed

Lines changed: 65 additions & 3 deletions

File tree

‎src/SUMMARY.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@
126126
- [Popup](./ui/popup.md)
127127
- [Progress bar](./ui/progress_bar.md)
128128
- [Range (WIP)](./ui/range.md)
129-
- [Rect (WIP)](./ui/rect.md)
129+
- [Rect](./ui/rect.md)
130130
- [Scroll bar](./ui/scroll_bar.md)
131131
- [Scroll panel](./ui/scroll_panel.md)
132132
- [Scroll viewer](./ui/scroll_viewer.md)

‎src/code/snippets/src/ui/mod.rs‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ pub mod vector_image;
3131
pub mod window;
3232
pub mod wrap_panel;
3333
mod selector;
34+
mod rect;
3435

3536
use fyrox::asset::manager::ResourceManager;
3637
use fyrox::core::reflect::Reflect;

‎src/code/snippets/src/ui/rect.rs‎

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
use fyrox::gui::{
2+
core::{math::Rect, pool::Handle},
3+
message::{MessageDirection, UiMessage},
4+
rect::{RectEditor, RectEditorBuilder, RectEditorMessage},
5+
widget::WidgetBuilder,
6+
BuildContext, UiNode, UserInterface,
7+
};
8+
9+
// ANCHOR: create_rect_editor
10+
fn create_rect_editor(ctx: &mut BuildContext) -> Handle<RectEditor<u32>> {
11+
RectEditorBuilder::new(WidgetBuilder::new())
12+
.with_value(Rect::new(0, 0, 10, 20))
13+
.build(ctx)
14+
}
15+
// ANCHOR_END: create_rect_editor
16+
17+
// ANCHOR: change_value
18+
fn change_value(rect_editor: Handle<UiNode>, ui: &UserInterface) {
19+
ui.send(
20+
rect_editor,
21+
RectEditorMessage::Value(Rect::new(20, 20, 60, 80)),
22+
);
23+
}
24+
// ANCHOR_END: change_value
25+
26+
// ANCHOR: fetch_value
27+
fn fetch_value(rect_editor: Handle<UiNode>, message: &UiMessage) {
28+
if let Some(RectEditorMessage::Value(value)) = message.data::<RectEditorMessage<u32>>() {
29+
if message.destination() == rect_editor
30+
&& message.direction() == MessageDirection::FromWidget
31+
{
32+
println!("The new value is: {:?}", value)
33+
}
34+
}
35+
}
36+
// ANCHOR_END: fetch_value

‎src/ui/rect.md‎

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,28 @@
1-
# Rect editor (WIP)
1+
# Rect editor
22

3-
![rect](rect.gif)
3+
![rect](rect.gif)
4+
5+
Rect editor widget is used to show and edit `Rect` values. It shows four numeric fields: two for the top left corner
6+
of a rect, two for its size.
7+
8+
## Example
9+
10+
Rect editor can be created using `RectEditorBuilder`, like so:
11+
12+
```rust
13+
{{#include ../code/snippets/src/ui/rect.rs:create_rect_editor}}
14+
```
15+
16+
## Value
17+
18+
To change the value of a rect editor, use `RectEditorMessage::Value` message:
19+
20+
```rust
21+
{{#include ../code/snippets/src/ui/rect.rs:change_value}}
22+
```
23+
24+
To "catch" the moment when the value of a rect editor has changed, listen to the same message, but check its direction:
25+
26+
```rust
27+
{{#include ../code/snippets/src/ui/rect.rs:fetch_value}}
28+
```

0 commit comments

Comments
 (0)