Function fltk::draw::draw_rectf
source · pub fn draw_rectf(x: i32, y: i32, w: i32, h: i32)
Expand description
Draws a filled rectangle
Examples found in repository?
examples/shapedwindow_taskbar.rs (line 123)
117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133
fn prep_shape(w: i32, h: i32) -> image::RgbImage {
let surf = surface::ImageSurface::new(w, h, false);
surface::ImageSurface::push_current(&surf);
draw::set_draw_color(enums::Color::Black);
draw::draw_rectf(-1, -1, w + 2, h + 2);
draw::set_draw_color(enums::Color::White);
draw::draw_rounded_rectf(0, 0, w, h, 16);
let img = surf.image().unwrap();
surface::ImageSurface::pop_current();
img
}
More examples
examples/table.rs (line 70)
63 64 65 66 67 68 69 70 71 72 73 74 75 76
fn draw_data(txt: &str, x: i32, y: i32, w: i32, h: i32, selected: bool) {
draw::push_clip(x, y, w, h);
if selected {
draw::set_draw_color(enums::Color::from_u32(0x00D3_D3D3));
} else {
draw::set_draw_color(enums::Color::White);
}
draw::draw_rectf(x, y, w, h);
draw::set_draw_color(enums::Color::Gray0);
draw::set_font(enums::Font::Helvetica, 14);
draw::draw_text2(txt, x, y, w, h, enums::Align::Center);
draw::draw_rect(x, y, w, h);
draw::pop_clip();
}
examples/spreadsheet.rs (line 136)
129 130 131 132 133 134 135 136 137 138 139 140 141 142
fn draw_data(txt: &str, x: i32, y: i32, w: i32, h: i32, selected: bool) {
draw::push_clip(x, y, w, h);
if selected {
draw::set_draw_color(enums::Color::from_u32(0x00D3_D3D3));
} else {
draw::set_draw_color(enums::Color::White);
}
draw::draw_rectf(x, y, w, h);
draw::set_draw_color(enums::Color::Gray0);
draw::set_font(enums::Font::Helvetica, 14);
draw::draw_text2(txt, x, y, w, h, enums::Align::Center);
draw::draw_rect(x, y, w, h);
draw::pop_clip();
}
examples/counter3.rs (line 54)
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
fn main() {
let app = app::App::default();
let mut win = window::Window::default()
.with_size(WIDTH, HEIGHT)
.with_label("Flutter-like!");
let mut col = group::Flex::default_fill().column();
let mut bar = frame::Frame::default()
.with_label(" FLTK App!")
.with_align(Align::Left | Align::Inside);
col.fixed(&bar, 60);
let mut text = frame::Frame::default()
.with_label("You have pushed the button this many times:")
.with_align(Align::Bottom | Align::Inside);
let mut count = frame::Frame::default()
.with_label("0")
.with_align(Align::Top | Align::Inside);
let mut row = group::Flex::default();
col.fixed(&row, 60);
frame::Frame::default();
let mut but = button::Button::default().with_label("@+6plus");
row.fixed(&but, 60);
let spacing = frame::Frame::default();
row.fixed(&spacing, 20);
row.end();
let spacing = frame::Frame::default();
col.fixed(&spacing, 20);
col.end();
win.end();
win.make_resizable(true);
win.show();
// Theming
app::background(255, 255, 255);
app::set_visible_focus(false);
bar.set_frame(FrameType::FlatBox);
bar.set_label_size(22);
bar.set_label_color(Color::White);
bar.set_color(BLUE);
bar.draw(|b| {
draw::set_draw_rgb_color(211, 211, 211);
draw::draw_rectf(0, b.height(), b.width(), 3);
});
text.set_label_size(18);
text.set_label_font(Font::Times);
count.set_label_size(36);
count.set_label_color(GRAY);
but.set_color(BLUE);
but.set_selection_color(SEL_BLUE);
but.set_label_color(Color::White);
but.set_frame(FrameType::OFlatFrame);
// End theming
but.set_callback(move |_| {
let label = (count.label().parse::<i32>().unwrap() + 1).to_string();
count.set_label(&label);
});
app.run().unwrap();
}
examples/pong.rs (line 50)
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
fn main() {
let app = app::App::default();
let mut wind = window::Window::default()
.with_size(800, 600)
.center_screen()
.with_label("Pong!");
let mut ball = Ball::new(40, 40);
ball.wid.set_color(enums::Color::White);
wind.set_color(enums::Color::Black);
wind.end();
wind.show();
let paddle_pos = Rc::from(RefCell::from(320)); // paddle's starting x position
// This is called whenever the window is drawn and redrawn (in the event loop)
wind.draw({
let paddle_pos = paddle_pos.clone();
move |_| {
draw::set_draw_color(enums::Color::White);
draw::draw_rectf(*paddle_pos.borrow(), 540, 160, 20);
}
});
wind.handle({
let paddle_pos = paddle_pos.clone();
move |_, ev| {
match ev {
enums::Event::Move => {
// Mouse's x position relative to the paddle's center
*paddle_pos.borrow_mut() = app::event_coords().0 - 80;
true
}
_ => false,
}
}
});
app::add_idle3(move |_| {
ball.pos.0 += 10 * ball.dir.0 as i32; // The increment in x position
ball.pos.1 += 10 * ball.dir.1 as i32; // The increment in y position
if ball.pos.1 == 540 - 40
&& (ball.pos.0 > *paddle_pos.borrow() - 40 && ball.pos.0 < *paddle_pos.borrow() + 160)
{
ball.dir.1 = Direction::Negative; // Reversal of motion when hitting the paddle
}
if ball.pos.1 == 0 {
ball.dir.1 = Direction::Positive; // Reversal of motion when hitting the top border
}
if ball.pos.0 == 800 - 40 {
ball.dir.0 = Direction::Negative; // Reversal of motion when hitting the right border
}
if ball.pos.0 == 0 {
ball.dir.0 = Direction::Positive; // Reversal of motion when hitting the left border
}
if ball.pos.1 > 600 {
// Resetting the ball position after it bypasses the paddle
ball.pos = (0, 0);
ball.dir = (Direction::Positive, Direction::Positive);
}
ball.wid.resize(ball.pos.0, ball.pos.1, 40, 40); // Moves the ball
wind.redraw();
// sleeps are necessary when calling redraw in the event loop
app::sleep(0.016);
});
app.run().unwrap();
}