Skip to main content

Crate ferroui_ios

Crate ferroui_ios 

Source
Expand description

ferroui-ios

The platform of FerroUI for iOS: a UIView that hosts a top-level, the application delegate with the single-view lifetime, the dispatcher on the run loop of the main thread, the render timer on a display link, Metal or OpenGL ES graphics over the layer of the view, touch, key and scroll input, text input from the keyboard of the system, the settings of the system, the safe area and the screens. docs/porting/ios-platform.md has the design, the file table and the stages.

The platform calls UIKit, Core Animation, Metal and EAGL through the objc2 family of crates; nothing of it is written in Objective-C. Everything that touches UIKit exists on iOS only. What is logic and not a call into the system (the options, the translation of touches, the safe area, the geometry of a screen, the insets manager, the lifetimes’ contracts) builds on every system, and the dispatcher builds on every Apple system (it needs Core Foundation and libdispatch only): that is what the tests of the crate run on the development machine.

Re-exports§

pub use ferro_app_delegate::FerroApplicationDelegate;
pub use ferro_app_delegate::IFerroAppDelegate;
pub use platform::IosPlatformOptions;
pub use platform::IosRenderingMode;
pub use view_controller::IFerroViewController;
pub use view_controller::StatusBarStyle;
pub use ferro_app_delegate::run_application;
pub use ferro_app_delegate::run_application_with;
pub use ferro_app_delegate::FerroAppDelegate;
pub use ferro_view::FerroView;
pub use native_control_host_impl::UIViewControlHandle;
pub use platform::IosApplicationExtensions;
pub use platform::Platform;
pub use view_controller::DefaultFerroViewController;

Modules§

activatable_lifetime
The activatable lifetime of the platform: the activations the application delegate reports.
automation_peer_wrapper
The wrapper of an automation peer: what an accessibility element of UIKit says of the peer (label, value, hint, identifier, traits, frame), the accessibility container over the children of the peer, and the actions of assistive technology (activate, increment, decrement, scroll).
clipboard
The clipboard of the platform, over the general pasteboard of UIKit.
combined_span3
Three slices read as one: the text before the marked text, the marked text and the text after it, without building their concatenation.
completion
A value that arrives later, on the main thread: what stands for the task completion sources of the reference, whose tasks the callers await. The completion blocks of UIKit set the value; the future that waits for it is polled on the dispatcher of the main thread.
dispatcher_impl
The dispatcher on the run loop of the main thread.
display_link_timer
The render timer of the platform: a display link on a thread of its own, which ticks once per frame of the display, up to 120 Hz on ProMotion displays, and is paused while the render loop is idle or the application is in the background.
eagl
OpenGL ES over EAGL: the platform graphics with the one context of the platform, the render surface of a view over its EAGL layer, and the framebuffer of the renderbuffer of the layer.
extensions
Conversions between the geometry and the colours of Core Graphics and UIKit and those of the framework.
ferro_app_delegate
The application delegate: it builds the application when UIKit has launched, gives each scene its delegate, and reports the activations of the application.
ferro_scene_delegate
The delegate of a window scene: it creates the window of the scene with the view of the application in it.
ferro_view
The view: a UIView with a Metal layer, or an EAGL layer when the graphics of the platform are those of OpenGL ES, that hosts a top-level of the framework and can be embedded into the view tree of an application.
input_handler
The input of a view: touches of fingers, of a pencil and of an indirect pointer become raw pointer events of the top-level, the presses of a keyboard or of a remote become raw key events and text, and the scroll events of a pointing device become wheel events that go on with inertia when the scrolling stops.
insets_manager
The insets manager of a view: the safe area and the status bar, read from the view controller of the view.
interop
The functions of Core Foundation and of libdispatch the dispatcher calls: the run loop of the main thread, an observer and a timer on it, and the main dispatch queue; and the block the render timer gives the run loop of its thread.
ios_launcher
The launcher: opens a URI with the application the system has for it, and previews a file.
ios_platform_feedback
The feedback of the platform: the sound of a click, and the taps of the haptic engine.
ios_screens
The screens of the device.
metal
Metal: the platform graphics, the device, and the render surface of a view over its Metal layer with its render target and drawing session.
native_control_host_impl
The native control host of a view: the views of an application become subviews of the view of a top-level, where the layout of the framework puts them. And the handle of a UIView.
platform
The platform: its options, use_ios, and the registration of the services of the platform.
platform_settings
The platform settings: the colour scheme, the contrast preference and the tint colour of the system, and the preferred language of the user.
single_view_lifetime
The lifetime of an application that shows one view.
storage
The storage of the platform: the provider with the pickers of the system, and the items behind security-scoped URLs.
stubs
The services of a windowing platform iOS has no counterpart for: cursors, windows and window icons.
text_input_responder
The responder of text input: the object UIKit talks to while the keyboard is up. It answers the questions of UITextInput (the text of a range, the selection, the marked text, positions and ranges, the rectangle of the caret) from the text input method client of the focused control, applies insertions, deletions and marked text to it, and states the traits of the keyboard from the text input options.
ui_kit_input_pane
The input pane: the state of the keyboard of the system and the rectangle it covers, from the notifications the keyboard posts before it is shown and before it is hidden.
view_controller
The view controller of a view: the safe area of the view and the status bar.