Crates.io | fltk-grid |
lib.rs | fltk-grid |
version | 0.4.1 |
source | src |
created_at | 2022-03-27 17:59:33.796364 |
updated_at | 2024-12-10 10:10:10.268762 |
description | A grid widget for fltk-rs |
homepage | |
repository | https://github.com/fltk-rs/fltk-grid |
max_upload_size | |
id | 557363 |
size | 13,233 |
A grid widget for fltk-rs. This crate exists for backwards compatibility, since fltk 1.5 provides a Grid widget (under fltk::group::Grid
).
[dependencies]
fltk = "1.5.0"
fltk-grid = "0.4"
Basically, the crate contains a single type Grid which has 4 main non-constructor methods:
set_layout(): specifies the number of rows and columns of the grid.
set_widget(): specifies the widget to be placed, along with in which cell (row, column). The values can be a range (0..1).
set_widget_ext(): adds to set_widget the row span and column span, in addition to the Grid Alignment.
resize(): determines how the grid is resized.
debug(): shows the cell outline and their numbering, useful for prototyping.
use fltk::{prelude::*, *};
use fltk_grid::Grid;
fn main() {
let a = app::App::default().with_scheme(app::Scheme::Gtk);
let mut win = window::Window::default().with_size(500, 300);
let mut grid = Grid::default_fill();
grid.show_grid(false); // set to true to show cell outlines and numbers
grid.set_layout(5, 5); // 5 rows, 5 columns
grid.set_widget(&mut button::Button::default(), 0, 1); // widget, row, col
grid.set_widget(&mut button::Button::default(), 2..3, 1..4); // widget, row range, col range
// or
// grid.set_widget_ext(&mut button::Button::default(), 2, 1, 1, 3, GridAlign::FILL); // widget, row, col, row_span, col_span
grid.end();
win.end();
win.show();
a.run().unwrap();
}
Run cargo run --example form
Setting Grid::debug(true):