Skip to content

Commit 89ec8ea

Browse files
add example
1 parent 855127c commit 89ec8ea

3 files changed

Lines changed: 61 additions & 0 deletions

File tree

Cargo.lock

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

examples/rtl/Cargo.toml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
[package]
2+
name = "rtl"
3+
version = "0.1.0"
4+
edition = "2024"
5+
publish = false
6+
7+
[dependencies]
8+
iced.workspace = true

examples/rtl/src/main.rs

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
use iced::widget::{center, row, toggler};
2+
use iced::{Direction, Element, Length, Settings};
3+
4+
pub fn main() -> iced::Result {
5+
iced::application(App::default, App::update, App::view)
6+
.title("RTL Example")
7+
.settings(Settings {
8+
default_direction: Direction::RightToLeft,
9+
..Default::default()
10+
})
11+
.run()
12+
}
13+
14+
#[derive(Default)]
15+
struct App {
16+
value: bool,
17+
}
18+
19+
#[derive(Debug, Clone, Copy)]
20+
enum Message {
21+
Toggled(bool),
22+
}
23+
24+
impl App {
25+
fn update(&mut self, message: Message) {
26+
match message {
27+
Message::Toggled(value) => {
28+
self.value = value;
29+
}
30+
}
31+
}
32+
33+
fn view(&self) -> Element<'_, Message> {
34+
let rtl_text = toggler(self.value)
35+
.label("فارسی")
36+
.on_toggle(Message::Toggled);
37+
38+
let ltr_text = toggler(self.value)
39+
.label("English")
40+
.on_toggle(Message::Toggled);
41+
42+
let content = row![rtl_text, ltr_text].spacing(20).width(Length::Fill);
43+
44+
center(content).into()
45+
}
46+
}

0 commit comments

Comments
 (0)