macro_rules! impl_modern_widgets {
() => {
#[cfg(not(feature = "mini"))]
fn create_adaptive_scaffold(&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, "AdaptiveScaffold".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::AdaptiveScaffold,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_animated_image(&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, "AnimatedImage".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::AnimatedImage,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_app_bar(&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, "AppBar".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::AppBar,
},
);
widget_id
}
fn create_arc(&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, "Arc".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::Arc,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_audio_visualizer(&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, "AudioVisualizer".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::AudioVisualizer,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_auto_complete_edit(&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, "AutoCompleteEdit".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::AutoCompleteEdit,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_avatar(&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, "Avatar".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::Avatar,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_badge(&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, "Badge".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::Badge,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_bar_chart(&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, "BarChart".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::BarChart,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_barcode_scanner(&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, "BarcodeScanner".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::BarcodeScanner,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_bezier_curve_editor(&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, "BezierCurveEditor".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::BezierCurveEditor,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_bottom_navigation_bar(&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, "BottomNavigationBar".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::BottomNavigationBar,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_bottom_sheet(&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, "BottomSheet".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::BottomSheet,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_camera_preview(&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, "CameraPreview".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::CameraPreview,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_carousel(&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, "Carousel".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::Carousel,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_chip(&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, "Chip".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::Chip,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_color_history(&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, "ColorHistory".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::ColorHistory,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_color_well(&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, "ColorWell".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::ColorWell,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_cupertino_alert_dialog(&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, "CupertinoAlertDialog".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::CupertinoAlertDialog,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_cupertino_date_picker(&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, "CupertinoDatePicker".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::CupertinoDatePicker,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_cupertino_navigation_bar(&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, "CupertinoNavigationBar".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::CupertinoNavigationBar,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_cupertino_segmented_control(&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, "CupertinoSegmentedControl".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::CupertinoSegmentedControl,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_cupertino_slider(&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, "CupertinoSlider".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::CupertinoSlider,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_cupertino_switch(&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, "CupertinoSwitch".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::CupertinoSwitch,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_date_range_picker(&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, "DateRangePicker".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::DateRangePicker,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_divider(&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, "Divider".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::Divider,
},
);
widget_id
}
fn create_dropdown(&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, "Dropdown".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::Dropdown,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_dropdown_menu(&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, "DropdownMenu".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::DropdownMenu,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_editable_combo_box(&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, "EditableComboBox".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::EditableComboBox,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_empty_state(&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, "EmptyState".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::EmptyState,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_fab(&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, "FAB".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::FAB,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_find_replace_dialog(&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, "FindReplaceDialog".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::FindReplaceDialog,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_floating_label(&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, "FloatingLabel".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::FloatingLabel,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_font_preview(&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, "FontPreview".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::FontPreview,
},
);
widget_id
}
fn create_frame(&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, "Frame".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::Frame,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_grid_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, "GridTable".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::GridTable,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_hero_animation(&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, "HeroAnimation".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::HeroAnimation,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_icon(&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, "Icon".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::Icon,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_image_gallery(&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, "ImageGallery".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::ImageGallery,
},
);
widget_id
}
fn create_image_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, "ImageView".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::ImageView,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_ime_preedit(&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, "ImePreedit".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::ImePreedit,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_inplace_editor(&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, "InplaceEditor".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::InplaceEditor,
},
);
widget_id
}
fn create_keyboard(&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, "Keyboard".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::Keyboard,
},
);
widget_id
}
fn create_line(&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, "Line".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::Line,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_line_chart(&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, "LineChart".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::LineChart,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_lottie_widget(&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, "LottieWidget".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::LottieWidget,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_masked_edit(&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, "MaskedEdit".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::MaskedEdit,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_masonry_layout(&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, "MasonryLayout".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::MasonryLayout,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_material_navigation_rail(&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, "MaterialNavigationRail".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::MaterialNavigationRail,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_material_snackbar(&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, "MaterialSnackbar".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::MaterialSnackbar,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_menu_button(&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, "MenuButton".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::MenuButton,
},
);
widget_id
}
fn create_meter(&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, "Meter".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::Meter,
},
);
widget_id
}
fn create_mini_canvas(&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, "MiniCanvas".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::MiniCanvas,
},
);
widget_id
}
fn create_mini_chart(&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, "MiniChart".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::MiniChart,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_mobile_date_picker(&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, "MobileDatePicker".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::MobileDatePicker,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_modal_bottom_sheet(&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, "ModalBottomSheet".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::ModalBottomSheet,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_multi_select_combo_box(&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, "MultiSelectComboBox".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::MultiSelectComboBox,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_navigation_drawer(&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, "NavigationDrawer".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::NavigationDrawer,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_navigation_stack(&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, "NavigationStack".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::NavigationStack,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_pager_page_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, "PagerPageView".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::PagerPageView,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_pie_chart(&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, "PieChart".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::PieChart,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_popover(&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, "Popover".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::Popover,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_progress_circle(&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, "ProgressCircle".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::ProgressCircle,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_properties_panel(&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, "PropertiesPanel".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::PropertiesPanel,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_qr_code(&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, "QRCode".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::QRCode,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_range_slider(&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, "RangeSlider".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::RangeSlider,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_rating(&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, "Rating".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::Rating,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_refresh_control(&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, "RefreshControl".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::RefreshControl,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_rive_widget(&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, "RiveWidget".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::RiveWidget,
},
);
widget_id
}
fn create_roller(&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, "Roller".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::Roller,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_safe_area(&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, "SafeArea".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::SafeArea,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_search_bar(&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, "SearchBar".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::SearchBar,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_search_box(&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, "SearchBox".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::SearchBox,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_segmented_button(&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, "SegmentedButton".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::SegmentedButton,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_shortcut_editor(&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, "ShortcutEditor".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::ShortcutEditor,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_skeleton_loader(&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, "SkeletonLoader".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::SkeletonLoader,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_sparkline(&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, "Sparkline".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::Sparkline,
},
);
widget_id
}
fn create_spinner(&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, "Spinner".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::Spinner,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_stepper(&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, "Stepper".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::Stepper,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_swipe_to_dismiss(&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, "SwipeToDismiss".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::SwipeToDismiss,
},
);
widget_id
}
fn create_switch(&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, "Switch".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::Switch,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_tab_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, "TabView".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::TabView,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_tag_input(&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, "TagInput".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::TagInput,
},
);
widget_id
}
fn create_text_area(&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, "TextArea".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::TextArea,
},
);
widget_id
}
fn create_tile_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, "TileView".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::TileView,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_tooltip(&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, "Tooltip".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::Tooltip,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_video_player(&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, "VideoPlayer".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::VideoPlayer,
},
);
widget_id
}
#[cfg(not(feature = "mini"))]
fn create_wizard_dialog(&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, "WizardDialog".to_string());
state.widget_properties.insert(
widget_id,
CustomWidgetProperties {
parent: Some(parent),
x,
y,
width,
height,
widget_kind: WidgetKind::WizardDialog,
},
);
widget_id
}
};
}