Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/fltk-rs/fltk-table
A smart table widget for fltk-rs
https://github.com/fltk-rs/fltk-table
Last synced: about 2 months ago
JSON representation
A smart table widget for fltk-rs
- Host: GitHub
- URL: https://github.com/fltk-rs/fltk-table
- Owner: fltk-rs
- License: mit
- Created: 2021-11-04T10:52:14.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2024-08-02T22:13:49.000Z (5 months ago)
- Last Synced: 2024-10-20T00:34:21.229Z (3 months ago)
- Language: Rust
- Size: 164 KB
- Stars: 16
- Watchers: 2
- Forks: 4
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# fltk-table
A smart table widget for fltk-rs. It aims to reduce the amount of boilerplate required to create a table.
## Usage
```toml
[dependencies]
fltk = "1.4"
fltk-table = "0.3"
```## Example
```rust
use fltk::{
app, enums,
prelude::{GroupExt, WidgetExt},
window,
};
use fltk_table::{SmartTable, TableOpts};fn main() {
let app = app::App::default().with_scheme(app::Scheme::Gtk);
let mut wind = window::Window::default().with_size(800, 600);/// We pass the rows and columns thru the TableOpts field
let mut table = SmartTable::default()
.with_size(790, 590)
.center_of_parent()
.with_opts(TableOpts {
rows: 30,
cols: 15,
editable: true,
..Default::default()
});
wind.end();
wind.show();// Just filling the vec with some values
for i in 0..30 {
for j in 0..15 {
table.set_cell_value(i, j, &(i + j).to_string());
}
}// set the value at the row,column 4,5 to "another", notice that indices start at 0
table.set_cell_value(3, 4, "another");assert_eq!(table.cell_value(3, 4), "another");
// To avoid closing the window on hitting the escape key
wind.set_callback(move |_| {
if app::event() == enums::Event::Close {
app.quit();
}
});app.run().unwrap();
}
```
You can retrieve a copy of the data using the `SmartTable::data()` method.The TableOpts struct also takes styling elements for cells and headers:
```rust,ignore
let mut table = SmartTable::default(TableOpts {
rows: 30,
cols: 15,
cell_selection_color: Color::Red.inactive(),
header_frame: FrameType::FlatBox,
header_color: Color::BackGround.lighter(),
cell_border_color: Color::White,
..Default::default()
});
```![image](screenshots/styled.jpg)
The row/column header strings can also be changed using the `set_row_header_value()` and `set_col_header_value()` methods, which take an index to the required row/column.