Crate wita

Crate wita 

Source
Expand description

A window library in Rust for Windows.

wita is a library that create a window and run an event loop. It is only for Windows.

§Example

struct Application;

impl Application {
    fn new() -> Result<Self, wita::ApiError> {
        wita::Window::builder()
            .title("hello, world!")
            .build()?;
        Ok(Self)
    }
}

impl wita::EventHandler for Application {
    fn closed(&mut self, _: wita::event::Closed) {
        println!("closed");
    }
}

fn main() {
    wita::run(wita::RunType::Wait, Application::new).unwrap();
}

§Event handling

You must implement EventHandler for the your defined object, and can handle events in the impl EventHandler. Next, pass the your defined object to run.

struct Foo {}

impl Foo {
    fn new() -> Result<Self, wita::ApiError> {
        wita::Window::builder().build()?;
        Ok(Self {})
    }
}

impl wita::EventHandler for Foo {
    // You define handlers.
    // For example, handle the event that closed the window.
    fn closed(&mut self, _: wita::event::Closed) {
        // write handling codes
    }
}

wita::run(wita::RunType::Wait, Foo::new).unwrap();

§Drawing on the window

There are directly no any methods for drawing on a Window in wita. However, a Window provides the raw_handle that return a pointer which is HWND. You can create a drawing context by using the raw_handle such as DirectX, Vulkan, etc.

Modules§

event
EventHandler trait and event parameter structures.
ime
An IME composition string and a candidate list
raw_inputraw_input
Provides raw input data.

Structs§

ApiError
Represents an Win32 API error.
BorderlessStyle
Represents the borderless window style.
InnerWindowBuilder
The object to build a window into the parent window.
KeyCode
A virtual key and a scan code.
Logical
Logical coordinate.
Monitor
Describes monitor info.
MouseState
A mouse cursor position and pressed mouse buttons.
Physical
Physical coordinate.
Position
A generic position
ScanCode
A keyboard scan code
Screen
Screen coordinate.
Size
A generic size
Window
Represents a window.
WindowBuilder
The object to build a window.
WindowStyle
Represents a window style.

Enums§

Cursor
Describes a mouse cursor icon.
Icon
Describes a icon.
KeyState
Describes the state of a keyboard key and a mouse button.
MouseButton
Describes mouse buttons.
MouseWheelAxis
Describes a mouse wheel axis.
ResizingEdge
Describes the edge of the resizing window.
RunType
Describes event loop types.
VirtualKey
Describes keyboard key names.

Constants§

DEFAULT_DPI
The value is an unit in logical coordinates.
WHEEL_DELTA
The distance when the mouse wheel rotated expressed in multiples or factors of this value.

Traits§

EventHandler
Trait that must implements for handling events.
Style
A window style and the borderless window style.
ToLogicalPosition
Converts to a logical position.
ToLogicalSize
Converts to a logical size.
ToPhysicalPosition
Converts to a physical position.
ToPhysicalSize
Converts to a physical size.

Functions§

get_key_state
Get the current key state;
get_monitors
Return monitors info.
keyboard_state
Get current key states.
monitor_from_point
A screen position to a monitor.
run
Run the event loop.

Type Aliases§

LogicalPosition
A position in logical coordinate.
LogicalSize
A size in logical coordinate.
PhysicalPosition
A position in physical coordinate.
PhysicalSize
A size in physical coordinate.
ScreenPosition
A position in screen coordinate.