Skip to content

Implement more functions #197

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 19 commits into
base: master
Choose a base branch
from
Open
16 changes: 8 additions & 8 deletions examples/animation.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ use lvgl::input_device::{
};
use lvgl::misc::anim::{AnimRepeatCount, Animation};
use lvgl::style::Style;
use lvgl::widgets::{Btn, Label};
use lvgl::{Align, Color, Display, DrawBuffer, LvError, Part, Widget};
use lvgl::widgets::{Btn, Label, Widget};
use lvgl::{Align, Color, Display, DrawBuffer, LvError, Part};
use std::thread::sleep;
use std::time::Duration;
use std::time::Instant;
Expand Down Expand Up @@ -46,18 +46,18 @@ fn main() -> Result<(), LvError> {

let mut screen_style = Style::default();
screen_style.set_bg_color(Color::from_rgb((0, 0, 0)));
screen.add_style(Part::Main, &mut screen_style);
screen.add_style(screen_style.into_raw(), Part::Main.into());
// Create the button
let mut button = Btn::create(&mut screen)?;
button.set_align(Align::LeftMid, 30, 0);
button.align(Align::LeftMid.into(), 30, 0);
button.set_size(180, 80);
let mut btn_lbl = Label::create(&mut button)?;
btn_lbl.set_text(CString::new("Click me!").unwrap().as_c_str())?;
btn_lbl.set_text(CString::new("Click me!").unwrap().as_c_str());

let mut btn_state = false;

let mut anim = Animation::new(&mut button, Duration::from_secs(1), 0, 60, |obj, val| {
obj.set_align(Align::LeftMid, val, 0)
obj.align(Align::LeftMid.into(), val as i16, 0)
})?;
anim.set_repeat_count(AnimRepeatCount::Infinite);
anim.start();
Expand All @@ -66,10 +66,10 @@ fn main() -> Result<(), LvError> {
if let lvgl::Event::Clicked = event {
if btn_state {
let nt = CString::new("Click me!").unwrap();
btn_lbl.set_text(nt.as_c_str()).unwrap();
btn_lbl.set_text(nt.as_c_str());
} else {
let nt = CString::new("Clicked!").unwrap();
btn_lbl.set_text(nt.as_c_str()).unwrap();
btn_lbl.set_text(nt.as_c_str());
}
btn_state = !btn_state;
}
Expand Down
16 changes: 8 additions & 8 deletions examples/arc.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ use embedded_graphics_simulator::{
};
use lvgl;
use lvgl::style::Style;
use lvgl::widgets::{Arc, Label};
use lvgl::{Align, Color, Display, DrawBuffer, LvError, Part, Widget};
use lvgl::widgets::{Arc, Label, Widget};
use lvgl::{Align, Color, Display, DrawBuffer, LvError, Part};
use lvgl_sys;
use std::thread::sleep;
use std::time::Duration;
Expand Down Expand Up @@ -52,23 +52,23 @@ fn main() -> Result<(), LvError> {
let mut screen_style = Style::default();
screen_style.set_bg_color(Color::from_rgb((255, 255, 255)));
screen_style.set_radius(0);
screen.add_style(Part::Main, &mut screen_style);
screen.add_style(screen_style.into_raw(), Part::Main.into());

// Create the arc object
let mut arc = Arc::create(&mut screen)?;
arc.set_size(150, 150);
arc.set_align(Align::Center, 0, 10);
arc.align(Align::Center.into(), 0, 10);
arc.set_start_angle(135);
arc.set_end_angle(135);

let mut loading_lbl = Label::create(&mut screen)?;
loading_lbl.set_text(CString::new("Loading...").unwrap().as_c_str())?;
loading_lbl.set_align(Align::OutTopMid, 0, 0);
loading_lbl.set_text(CString::new("Loading...").unwrap().as_c_str());
loading_lbl.align(Align::OutTopMid.into(), 0, 0);
//loading_lbl.set_label_align(LabelAlign::Center)?;

let mut loading_style = Style::default();
loading_style.set_text_color(Color::from_rgb((0, 0, 0)));
loading_lbl.add_style(Part::Main, &mut loading_style);
loading_lbl.add_style(loading_style.into_raw(), Part::Main.into());

let mut angle = 0;
let mut forward = true;
Expand All @@ -82,7 +82,7 @@ fn main() -> Result<(), LvError> {
println!("mem info running: {:?}", mem_info());
}
angle = if forward { angle + 1 } else { angle - 1 };
arc.set_end_angle(angle + 135)?;
arc.set_end_angle(angle + 135);
i += 1;

lvgl::task_handler();
Expand Down
20 changes: 10 additions & 10 deletions examples/bar.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ use embedded_graphics_simulator::{
};
use lvgl;
use lvgl::style::Style;
use lvgl::widgets::{Bar, Label};
use lvgl::{Align, AnimationState, Color, Display, DrawBuffer, Event, LvError, Part, Widget};
use lvgl::widgets::{Bar, Label, Widget};
use lvgl::{Align, AnimationState, Color, Display, DrawBuffer, Event, LvError, Part};
use std::thread::sleep;
use std::time::Duration;
use std::time::Instant;
Expand All @@ -33,29 +33,29 @@ fn main() -> Result<(), LvError> {
let mut screen_style = Style::default();
screen_style.set_bg_color(Color::from_rgb((255, 255, 255)));
screen_style.set_radius(0);
screen.add_style(Part::Main, &mut screen_style);
screen.add_style(screen_style.into_raw(), Part::Main.into());

// Create the bar object
let mut bar = Bar::create(&mut screen)?;
bar.set_size(175, 20);
bar.set_align(Align::Center, 0, 10);
bar.set_range(0, 100)?;
bar.align(Align::Center.into(), 0, 10);
bar.set_range(0, 100);
bar.on_event(|_b, _e| {
println!("Completed!");
})?;

// Set the indicator style for the bar object
let mut ind_style = Style::default();
ind_style.set_bg_color(Color::from_rgb((100, 245, 100)));
bar.add_style(Part::Any, &mut ind_style);
bar.add_style(ind_style.into_raw(), Part::Any.into());

let mut loading_lbl = Label::create(&mut screen)?;
loading_lbl.set_text(CString::new("Loading...").unwrap().as_c_str())?;
loading_lbl.set_align(Align::OutTopMid, 0, 0);
loading_lbl.set_text(CString::new("Loading...").unwrap().as_c_str());
loading_lbl.align(Align::OutTopMid.into(), 0, 0);

let mut loading_style = Style::default();
loading_style.set_text_color(Color::from_rgb((0, 0, 0)));
loading_lbl.add_style(Part::Main, &mut loading_style);
loading_lbl.add_style(loading_style.into_raw(), Part::Main.into());

let mut i = 0;
'running: loop {
Expand All @@ -67,7 +67,7 @@ fn main() -> Result<(), LvError> {
// - implementation of `Widget` is not general enough
// lvgl::event_send(&mut bar, Event::Clicked);
}
bar.set_value(i, AnimationState::ON);
bar.set_value(i, AnimationState::ON.into());
i += 1;

lvgl::task_handler();
Expand Down
14 changes: 7 additions & 7 deletions examples/button_click.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ use lvgl::input_device::{
InputDriver,
};
use lvgl::style::Style;
use lvgl::widgets::{Btn, Label};
use lvgl::{Align, Color, Display, DrawBuffer, LvError, Part, Widget};
use lvgl::widgets::{Btn, Label, Widget};
use lvgl::{Align, Color, Display, DrawBuffer, LvError, Part};
use std::thread::sleep;
use std::time::Duration;
use std::time::Instant;
Expand Down Expand Up @@ -45,24 +45,24 @@ fn main() -> Result<(), LvError> {

let mut screen_style = Style::default();
screen_style.set_bg_color(Color::from_rgb((0, 0, 0)));
screen.add_style(Part::Main, &mut screen_style);
screen.add_style(screen_style.into_raw(), Part::Main.into());
// Create the button
let mut button = Btn::create(&mut screen)?;
button.set_align(Align::LeftMid, 30, 0);
button.align(Align::LeftMid.into(), 30, 0);
button.set_size(180, 80);
let mut btn_lbl = Label::create(&mut button)?;
btn_lbl.set_text(CString::new("Click me!").unwrap().as_c_str())?;
btn_lbl.set_text(CString::new("Click me!").unwrap().as_c_str());

let mut btn_state = false;
button.on_event(|_btn, event| {
println!("Button received event: {:?}", event);
if let lvgl::Event::Clicked = event {
if btn_state {
let nt = CString::new("Click me!").unwrap();
btn_lbl.set_text(nt.as_c_str()).unwrap();
btn_lbl.set_text(nt.as_c_str());
} else {
let nt = CString::new("Clicked!").unwrap();
btn_lbl.set_text(nt.as_c_str()).unwrap();
btn_lbl.set_text(nt.as_c_str());
}
btn_state = !btn_state;
}
Expand Down
16 changes: 8 additions & 8 deletions examples/demo.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ use embedded_graphics_simulator::{
use lvgl;
use lvgl::font::Font;
use lvgl::style::Style;
use lvgl::widgets::Label;
use lvgl::{Align, Color, Display, DrawBuffer, LvError, Part, TextAlign, Widget};
use lvgl::widgets::{Label, Widget};
use lvgl::{Align, Color, Display, DrawBuffer, LvError, Part, TextAlign};
use lvgl_sys;
use std::thread::sleep;
use std::time::Duration;
Expand All @@ -35,14 +35,14 @@ fn main() -> Result<(), LvError> {

// Create screen and widgets
let binding = display?;
let screen = binding.get_scr_act();
let mut screen = binding.get_scr_act()?;

println!("Before all widgets: {:?}", mem_info());

let mut screen_style = Style::default();
screen_style.set_bg_color(Color::from_rgb((0, 0, 0)));
screen_style.set_radius(0);
screen?.add_style(Part::Main, &mut screen_style);
screen.add_style(screen_style.into_raw(), Part::Main.into());

let mut time = Label::from("20:46");
let mut style_time = Style::default();
Expand All @@ -52,22 +52,22 @@ fn main() -> Result<(), LvError> {
// See font module documentation for an explanation of the unsafe block
style_time.set_text_font(unsafe { Font::new_raw(lvgl_sys::noto_sans_numeric_80) });

time.add_style(Part::Main, &mut style_time);
time.set_align(Align::Center, 0, 90);
time.add_style(style_time.into_raw(), Part::Main.into());
time.align(Align::Center.into(), 0, 90);
time.set_width(240);
time.set_height(240);

let mut bt = Label::from("#5794f2 \u{F293}#");
bt.set_width(50);
bt.set_height(80);
let _ = bt.set_recolor(true);
bt.set_align(Align::TopLeft, 0, 0);
bt.align(Align::TopLeft.into(), 0, 0);

let mut power: Label = "#fade2a 20%#".into();
let _ = power.set_recolor(true);
power.set_width(80);
power.set_height(20);
power.set_align(Align::TopRight, 40, 0);
power.align(Align::TopRight.into(), 40, 0);

let mut i = 0;
'running: loop {
Expand Down
24 changes: 12 additions & 12 deletions examples/rust_timer.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ use embedded_graphics_simulator::{
};
use lvgl;
use lvgl::style::Style;
use lvgl::widgets::{Bar, Label};
use lvgl::{Align, AnimationState, Color, Display, DrawBuffer, Event, LvError, Part, Widget};
use lvgl::widgets::{Bar, Label, Widget};
use lvgl::{Align, AnimationState, Color, Display, DrawBuffer, Event, LvError, Part};
use std::thread::sleep;
use std::time::Duration;
use std::time::Instant;
Expand Down Expand Up @@ -53,38 +53,38 @@ fn main() -> Result<(), LvError> {
let mut screen_style = Style::default();
screen_style.set_bg_color(Color::from_rgb((255, 255, 255)));
screen_style.set_radius(0);
screen.add_style(Part::Main, &mut screen_style)?;
screen.add_style(screen_style.into_raw(), Part::Main.into());

// Create the bar object
let mut bar = Bar::create(&mut screen)?;
bar.set_size(175, 20)?;
bar.set_align(Align::Center, 0, 10)?;
bar.set_range(0, 100)?;
bar.set_size(175, 20);
bar.align(Align::Center.into(), 0, 10);
bar.set_range(0, 100);
bar.on_event(|_b, _e| {
println!("Completed!");
})?;

// Set the indicator style for the bar object
let mut ind_style = Style::default();
ind_style.set_bg_color(Color::from_rgb((100, 245, 100)));
bar.add_style(Part::Any, &mut ind_style)?;
bar.add_style(ind_style.into_raw(), Part::Main.into());

let mut loading_lbl = Label::create(&mut screen)?;
loading_lbl.set_text(CString::new("Loading...").unwrap().as_c_str())?;
loading_lbl.set_align(Align::OutTopMid, 0, 0)?;
loading_lbl.set_text(CString::new("Loading...").unwrap().as_c_str());
loading_lbl.align(Align::OutTopMid.into(), 0, 0);

let mut loading_style = Style::default();
loading_style.set_text_color(Color::from_rgb((0, 0, 0)));
loading_lbl.add_style(Part::Main, &mut loading_style)?;
loading_lbl.add_style(loading_style.into_raw(), Part::Main.into());

let mut i = 0;
let clock = Clock::default();
'running: loop {
if i > 100 {
i = 0;
lvgl::event_send(&mut bar, Event::Clicked)?;
lvgl::event_send(&mut bar, Event::Clicked);
}
bar.set_value(i, AnimationState::ON)?;
bar.set_value(i, AnimationState::ON.into());
i += 1;

lvgl::task_handler();
Expand Down
13 changes: 7 additions & 6 deletions examples/sdl.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,10 @@ use lvgl::input_device::InputDriver;
use lvgl::lv_drv_disp_sdl;
use lvgl::lv_drv_input_pointer_sdl;
use lvgl::style::Style;
use lvgl::widgets::Widget;
use lvgl::widgets::{Btn, Label};
use lvgl::LvResult;
use lvgl::{Align, Color, DrawBuffer, Part, Widget};
use lvgl::{Align, Color, DrawBuffer, Part};
use std::thread::sleep;
use std::time::Duration;
use std::time::Instant;
Expand All @@ -28,24 +29,24 @@ fn main() -> LvResult<()> {

let mut screen_style = Style::default();
screen_style.set_bg_color(Color::from_rgb((0, 0, 0)));
screen.add_style(Part::Main, &mut screen_style);
screen.add_style(screen_style.into_raw(), Part::Main.into());
// Create the button
let mut button = Btn::create(&mut screen)?;
button.set_align(Align::LeftMid, 30, 0);
button.align(Align::LeftMid.into(), 30, 0);
button.set_size(180, 80);
let mut btn_lbl = Label::create(&mut button)?;
btn_lbl.set_text(CString::new("Click me!").unwrap().as_c_str())?;
btn_lbl.set_text(CString::new("Click me!").unwrap().as_c_str());

let mut btn_state = false;
button.on_event(|_btn, event| {
println!("Button received event: {:?}", event);
if let lvgl::Event::Clicked = event {
if btn_state {
let nt = CString::new("Click me!").unwrap();
btn_lbl.set_text(nt.as_c_str()).unwrap();
btn_lbl.set_text(nt.as_c_str());
} else {
let nt = CString::new("Clicked!").unwrap();
btn_lbl.set_text(nt.as_c_str()).unwrap();
btn_lbl.set_text(nt.as_c_str());
}
btn_state = !btn_state;
}
Expand Down
Loading