macro_rules! impl_view_widgets {
() => {
#[cfg(not(feature = "mini"))]
fn create_list_view(
&self,
parent: ObjectId,
x: i32,
y: i32,
width: u32,
height: u32,
) -> ObjectId {
let widget_id = self.alloc_widget_id();
let mut state = self.state.lock().unwrap_or_else(|poisoned| poisoned.into_inner());
state.enabled.insert(widget_id, true);
state.visible.insert(widget_id, true);
state.ime_enabled.insert(widget_id, false);
state.accessibility_names.insert(widget_id, "ListView".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::ListView,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_tree_view(
&self,
parent: ObjectId,
x: i32,
y: i32,
width: u32,
height: u32,
) -> ObjectId {
let widget_id = self.alloc_widget_id();
let mut state = self.state.lock().unwrap_or_else(|poisoned| poisoned.into_inner());
state.enabled.insert(widget_id, true);
state.visible.insert(widget_id, true);
state.ime_enabled.insert(widget_id, false);
state.accessibility_names.insert(widget_id, "TreeView".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::TreeView,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_table(&self, parent: ObjectId, x: i32, y: i32, width: u32, height: u32) -> ObjectId {
let widget_id = self.alloc_widget_id();
let mut state = self.state.lock().unwrap_or_else(|poisoned| poisoned.into_inner());
state.enabled.insert(widget_id, true);
state.visible.insert(widget_id, true);
state.ime_enabled.insert(widget_id, false);
state.accessibility_names.insert(widget_id, "Table".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::Table,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_data_view(
&self,
parent: ObjectId,
x: i32,
y: i32,
width: u32,
height: u32,
) -> ObjectId {
log::warn!("shallow implementation: DataView maps to virtualized data-view host");
let widget_id = self.alloc_widget_id();
let mut state = self.state.lock().unwrap_or_else(|poisoned| poisoned.into_inner());
state.enabled.insert(widget_id, true);
state.visible.insert(widget_id, true);
state.ime_enabled.insert(widget_id, false);
state.accessibility_names.insert(widget_id, "DataView".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::DataView,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_property_grid(
&self,
parent: ObjectId,
x: i32,
y: i32,
width: u32,
height: u32,
) -> ObjectId {
log::warn!("shallow implementation: PropertyGrid is an alias for TreeView");
let widget_id = self.alloc_widget_id();
let mut state = self.state.lock().unwrap_or_else(|poisoned| poisoned.into_inner());
state.enabled.insert(widget_id, true);
state.visible.insert(widget_id, true);
state.ime_enabled.insert(widget_id, false);
state.accessibility_names.insert(widget_id, "PropertyGrid".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::PropertyGrid,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_column_view(
&self,
parent: ObjectId,
x: i32,
y: i32,
width: u32,
height: u32,
) -> ObjectId {
log::warn!("shallow implementation: ColumnView is an alias for TreeView");
let widget_id = self.alloc_widget_id();
let mut state = self.state.lock().unwrap_or_else(|poisoned| poisoned.into_inner());
state.enabled.insert(widget_id, true);
state.visible.insert(widget_id, true);
state.ime_enabled.insert(widget_id, false);
state.accessibility_names.insert(widget_id, "ColumnView".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::ColumnView,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_undo_view(
&self,
parent: ObjectId,
x: i32,
y: i32,
width: u32,
height: u32,
) -> ObjectId {
log::warn!("shallow implementation: UndoView is an alias for ListView");
let widget_id = self.alloc_widget_id();
let mut state = self.state.lock().unwrap_or_else(|poisoned| poisoned.into_inner());
state.enabled.insert(widget_id, true);
state.visible.insert(widget_id, true);
state.ime_enabled.insert(widget_id, false);
state.accessibility_names.insert(widget_id, "UndoView".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::UndoView,
},
);
widget_id
}
};
}