rust-pushrod 0.4.27

Pushrod UI Library
Documentation
extern crate pushrod;
extern crate sdl2;

use pushrod::render::engine::Engine;
use pushrod::render::widget::Widget;
use pushrod::render::widget_config::CONFIG_COLOR_TEXT;
use pushrod::render::{make_points, make_size};
use pushrod::widgets::text_widget::*;
use sdl2::pixels::Color;

pub fn main() {
    let sdl_context = sdl2::init().unwrap();
    let video_subsystem = sdl_context.video().unwrap();
    let window = video_subsystem
        .window("pushrod text widget demo", 500, 200)
        .position_centered()
        .opengl()
        .build()
        .unwrap();
    let mut engine = Engine::new(500, 200, 20);
    let mut widget1 = TextWidget::new(
        String::from("assets/OpenSans-Regular.ttf"),
        sdl2::ttf::FontStyle::NORMAL,
        28,
        TextJustify::Left,
        String::from("Left Justified"),
        make_points(20, 16),
        make_size(460, 40),
    );

    widget1
        .get_config()
        .set_color(CONFIG_COLOR_TEXT, Color::RGB(255, 0, 0));

    let mut widget2 = TextWidget::new(
        String::from("assets/OpenSans-Regular.ttf"),
        sdl2::ttf::FontStyle::NORMAL,
        28,
        TextJustify::Center,
        String::from("Center Justified"),
        make_points(20, 80),
        make_size(460, 40),
    );

    widget2
        .get_config()
        .set_color(CONFIG_COLOR_TEXT, Color::RGB(0, 255, 0));

    let mut widget3 = TextWidget::new(
        String::from("assets/OpenSans-Regular.ttf"),
        sdl2::ttf::FontStyle::NORMAL,
        28,
        TextJustify::Right,
        String::from("Right Justified"),
        make_points(20, 144),
        make_size(460, 40),
    );

    widget3
        .get_config()
        .set_color(CONFIG_COLOR_TEXT, Color::RGB(0, 0, 255));

    engine.add_widget(Box::new(widget1), String::from("widget1"));
    engine.add_widget(Box::new(widget2), String::from("widget2"));
    engine.add_widget(Box::new(widget3), String::from("widget3"));

    engine.run(sdl_context, window);
}