#![cfg_attr(nightly, feature(doc_cfg, external_doc))]
#![warn(missing_docs)]
#![deny(unsafe_code)]
pub use sixtyfps_macros::sixtyfps;
pub use sixtyfps_corelib::model::{
Model, ModelHandle, ModelNotify, ModelPeer, StandardListViewItem, VecModel,
};
pub use sixtyfps_corelib::sharedarray::SharedArray;
pub use sixtyfps_corelib::string::SharedString;
pub use sixtyfps_corelib::{ARGBColor, Color};
#[doc(hidden)]
pub mod re_exports {
pub use const_field_offset::{self, FieldOffsets, PinnedDrop};
pub use core::iter::FromIterator;
pub use once_cell::sync::Lazy;
pub use once_cell::unsync::OnceCell;
pub use pin_weak::rc::*;
pub use sixtyfps_corelib::animations::EasingCurve;
pub use sixtyfps_corelib::component::{
init_component_items, Component, ComponentRefPin, ComponentVTable,
};
pub use sixtyfps_corelib::eventloop::ComponentWindow;
pub use sixtyfps_corelib::graphics::{
PathArcTo, PathData, PathElement, PathEvent, PathLineTo, Point, Rect, Size,
};
pub use sixtyfps_corelib::input::{
locate_and_activate_focus_item, process_ungrabbed_mouse_event, FocusEvent,
FocusEventResult, InputEventResult, KeyCode, KeyEvent, KeyEventResult, KeyboardModifiers,
MouseEvent, ALT_MODIFIER, CONTROL_MODIFIER, COPY_PASTE_MODIFIER, LOGO_MODIFIER,
NO_MODIFIER, SHIFT_MODIFIER,
};
pub use sixtyfps_corelib::item_tree::{
item_offset, visit_item_tree, ItemTreeNode, ItemVisitorRefMut, ItemVisitorVTable,
TraversalOrder, VisitChildrenResult,
};
pub use sixtyfps_corelib::items::*;
pub use sixtyfps_corelib::layout::LayoutInfo;
pub use sixtyfps_corelib::layout::{
grid_layout_info, solve_grid_layout, solve_path_layout, GridLayoutCellData, GridLayoutData,
Padding, PathLayoutData, PathLayoutItemData,
};
pub use sixtyfps_corelib::model::*;
pub use sixtyfps_corelib::properties::{Property, PropertyTracker};
pub use sixtyfps_corelib::signals::Signal;
pub use sixtyfps_corelib::slice::Slice;
pub use sixtyfps_corelib::Color;
pub use sixtyfps_corelib::ComponentVTable_static;
pub use sixtyfps_corelib::Resource;
pub use sixtyfps_corelib::SharedArray;
pub use sixtyfps_corelib::SharedString;
pub use sixtyfps_rendering_backend_default::native_widgets::*;
pub use vtable::{self, *};
}
#[doc(hidden)]
pub fn create_window() -> re_exports::ComponentWindow {
sixtyfps_rendering_backend_default::create_window()
}
pub mod testing {
pub trait HasWindow {
fn component_window(&self) -> &super::re_exports::ComponentWindow;
}
pub use sixtyfps_corelib::tests::sixtyfps_mock_elapsed_time as mock_elapsed_time;
pub fn send_mouse_click<
X: vtable::HasStaticVTable<sixtyfps_corelib::component::ComponentVTable> + HasWindow,
>(
component: core::pin::Pin<&X>,
x: f32,
y: f32,
) {
sixtyfps_corelib::tests::sixtyfps_send_mouse_click(
vtable::VRef::new_pin(component),
x,
y,
component.component_window(),
);
}
pub fn set_current_keyboard_modifiers<X: HasWindow>(
component: core::pin::Pin<&X>,
modifiers: crate::re_exports::KeyboardModifiers,
) {
sixtyfps_corelib::tests::sixtyfps_set_keyboard_modifiers(
component.component_window(),
modifiers,
)
}
pub fn send_key_clicks<
X: vtable::HasStaticVTable<sixtyfps_corelib::component::ComponentVTable> + HasWindow,
>(
component: core::pin::Pin<&X>,
key_codes: &[crate::re_exports::KeyCode],
) {
sixtyfps_corelib::tests::sixtyfps_send_key_clicks(
vtable::VRef::new_pin(component),
&crate::re_exports::Slice::from_slice(key_codes),
component.component_window(),
)
}
pub fn send_keyboard_string_sequence<
X: vtable::HasStaticVTable<sixtyfps_corelib::component::ComponentVTable> + HasWindow,
>(
component: core::pin::Pin<&X>,
sequence: &str,
) {
sixtyfps_corelib::tests::send_keyboard_string_sequence(
vtable::VRef::new_pin(component),
&super::SharedString::from(sequence),
component.component_window(),
)
}
}
#[macro_export]
macro_rules! include_modules {
() => {
include!(env!("SIXTYFPS_INCLUDE_GENERATED"));
};
}
#[doc(hidden)]
#[allow(non_camel_case_types)]
pub struct VersionCheck_0_0_2;
#[cfg(doctest)]
mod compile_fail_tests;
#[cfg(all(doc, nightly))]
pub mod docs;