[][src]Crate wita

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 wita::EventHandler for Application {
    fn closed(&mut self, _: &wita::Window) {
        println!("closed");
    }
}

fn main() {
    let context = wita::Context::new();
    let _window = wita::WindowBuilder::new()
        .title("hello, world!")
        .build(&context);
    context.run(wita::RunType::Wait, Application);
}

Event handling

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

struct Foo {}

impl Foo {
    fn new() -> Self {
        Self {}
    }
}

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

Next, pass the your defined object to Context::run.

This example is not tested
let context = Context::new();

// build the window here.

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

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.

Re-exports

pub use monitor::get_monitors;
pub use monitor::monitor_from_point;

Modules

ime

An IME composition string and a candidate list

monitor

Structs

BorderlessStyle

Represents the borderless window style.

Context

The object that you need to use this library.

KeyCode

A virtual key and a scan code.

LogicalPosition

A position in logical coordinate.

LogicalSize

A size in logical coordinate.

MouseState

A mouse cursor position and pressed mouse buttons.

PhysicalPosition

A position in physical coordinate.

PhysicalSize

A size in physical coordinate.

ScanCode

A keyboard scan code

ScreenPosition

A position in screen coordinate.

Window

Represents a window.

WindowBuilder

The object that allows you to build windows.

WindowStyle

Represents a window style.

Enums

KeyState

Describes the state of a keyboard key and a mouse button.

MouseButton

Describes mouse buttons.

RunType

Describes event loop types.

VirtualKey

Describes keyboard key names.

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.