2024-05-24 15:27:30 -04:00

51 lines
1.7 KiB
Rust

use imgui::*;
mod support;
fn main() {
support::simple_init(file!(), move |_, ui| {
ui.show_demo_window(&mut true);
ui.window("Table with list clipper")
.size([800.0, 700.0], Condition::FirstUseEver)
.build(|| {
let num_cols = 3;
let num_rows = 1000;
let flags = imgui::TableFlags::ROW_BG
| imgui::TableFlags::RESIZABLE
| imgui::TableFlags::BORDERS_H
| imgui::TableFlags::BORDERS_V; //| imgui::TableFlags::SCROLL_Y;
if let Some(_t) = ui.begin_table_with_sizing(
"longtable",
num_cols,
flags,
[300.0, 100.0],
/*inner width=*/ 0.0,
) {
ui.table_setup_column("A");
ui.table_setup_column("B");
ui.table_setup_column("C");
// Freeze first row so headers are visible even
// when scrolling
ui.table_setup_scroll_freeze(num_cols, 1);
// Done with headers row
ui.table_headers_row();
// Create clipper with st
let clip = imgui::ListClipper::new(num_rows).begin(ui);
for row_num in clip.iter() {
ui.table_next_row();
for col_num in 0..num_cols {
ui.table_set_column_index(col_num);
ui.text(format!("Hello {},{}", col_num, row_num));
}
}
}
});
});
}