dear_imgui_rs/widget/table/
setup.rs1use crate::Id;
2
3use super::{TableColumnFlags, TableColumnIndent, TableColumnWidth, assert_explicit_user_id};
4
5#[derive(Clone, Debug)]
7pub struct TableColumnSetup<Name> {
8 pub name: Name,
9 pub flags: TableColumnFlags,
10 pub width: Option<TableColumnWidth>,
11 pub indent: Option<TableColumnIndent>,
12 pub user_id: Option<Id>,
13}
14
15impl<Name> TableColumnSetup<Name> {
16 pub fn new(name: Name) -> Self {
18 Self {
19 name,
20 flags: TableColumnFlags::NONE,
21 width: None,
22 indent: None,
23 user_id: None,
24 }
25 }
26
27 pub fn flags(mut self, flags: TableColumnFlags) -> Self {
29 self.flags = flags;
30 self
31 }
32
33 pub fn fixed_width(mut self, width: f32) -> Self {
35 self.width = Some(TableColumnWidth::Fixed(width));
36 self
37 }
38
39 pub fn stretch_weight(mut self, weight: f32) -> Self {
41 self.width = Some(TableColumnWidth::Stretch(weight));
42 self
43 }
44
45 pub fn indent(mut self, indent: TableColumnIndent) -> Self {
47 self.indent = Some(indent);
48 self
49 }
50
51 pub fn indent_enabled(mut self, enabled: bool) -> Self {
53 self.indent = Some(if enabled {
54 TableColumnIndent::Enable
55 } else {
56 TableColumnIndent::Disable
57 });
58 self
59 }
60
61 pub fn user_id(mut self, id: Id) -> Self {
63 self.user_id = Some(assert_explicit_user_id(id, "TableColumnSetup::user_id()"));
64 self
65 }
66}