Thanks to visit codestin.com
Credit goes to github.com

Skip to content

rakster/orbtk

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

969 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OrbTk

Build and test MIT licensed crates.io docs.rs

The Orbital Widget Toolkit is a multi platform (G)UI toolkit for building scalable user interfaces with the programming language Rust. It's based on the Entity Component System Pattern and provides a functional-reactive like API.

The main goals of OrbTk are speed, ease of use, and being cross platform.

Calculator

Features:

  • Modern lightweight API
  • Cross platform
  • Modular crates
  • Based on Entity Component System library DCES
  • Flexible event system
  • Integrated widget library
  • Custom widgets
  • Theming
  • Integrated debugging tools

Platforms

  • Redox OS (native | cargo-node)
  • Linux (native | cargo-node)
  • macOS (native | cargo-node)
  • Windows (native | cargo-node)
  • openBSD (not tested, but should work)
  • Web (cargo-node)
  • Android (native planned after 0.3 | cargo-node)
  • iOS (native planned after 0.3 | cargo-node planned after 0.3)
  • Ubuntu Touch (native planned after 0.3 | cargo-node planned for 0.3)

Planned features

  • Conformable use of async
  • More default widgets
  • More examples
  • Book
  • Animations
  • Split application in modules
  • Theme update
  • 3D context
  • More integrated debugging tools

Usage

To include OrbTk in your project, just add the dependency line to your Cargo.toml file:

orbtk = "0.3.1-alpha1"

To use the latest development version of OrbTk, just add the dependency line to your Cargo.toml file:

orbtk = { git = "https://github.com/redox-os/orbtk.git", branch = "develop" }

Minimal Example

use orbtk::prelude::*;

fn main() {
      Application::new()
        .window(|ctx| {
            Window::create()
                .title("OrbTk - minimal example")
                .position((100.0, 100.0))
                .size(420.0, 730.0)
                .child(TextBlock::create().text("OrbTk").build(ctx))
                .build(ctx)
        })
        .run();
}

Run Examples

You can find examples in the examples/ directory.

You can start the widgets example by executing the following command:

cargo run --example widgets --release

OrbTk has also an integrated debug tools. If you want to show the bounds of all widgets (also non visual widgets) and want to see a debug print of the whole widget tree you could run the examples as follows:

cargo run --example widgets --release --features debug

Run Examples with cargo-node

To run the examples on as browser, electron or cordova app you have to install

cargo install -f cargo-node

Before you could use cargo node you have to install npm version 6.9.0. It is included in the Node.js version 10.16.3. You could download it from https://nodejs.org/dist/v10.16.3/.

Rust's cargo is presumed. All other dependencies of cargo node will be installed automatic.

Start examples

You can start the widgets example by executing the following command:

  • Run as browser app:
cargo node run --target browser --example widgets
  • Run as electron app:
cargo node run --target electron --example widgets
  • Run as cordova app on android:
cargo node run --target android --example widgets

Build and run documentation

You can build and run the latest documentation by executing the following command:

cargo doc --no-deps --open

Sub Crates

  • api: base api elements of OrbTk e.g. widget and application parts
  • css-engine: parse and read values from a css file
  • proc-macros: procedural helper macros
  • render: cross platform 2D/3D render library
  • shell: cross platform window and event handling
  • theme: OrbTks default theme (light and dark)
  • tree: tree structure based on DCES
  • utils: helper structs and traits
  • widgets: base widget library

Inspirations

Showcases

Contribution

If you want to help bring OrbTk further or you have feedback check our issues https://github.com/redox-os/orbtk/issues. You could also discuss with us about OrbTk on the Redox chat https://redox-os.org/community/ (join the orbital channel).

License

Licensed under MIT license (LICENSE).

About

The Rust UI-Toolkit.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Rust 98.5%
  • CSS 1.5%