[][src]Module newt::grid

Methods for easily arranging component placement.

Grids can be used to automatically arrange widgets in a window without having to manually specify their positions. The standard Grid can be used to place components in specific arrangements. There are also horizontal and vertical flavors to easily build rows or columns of components. The ButtonBar will build a horizontal Grid full of Buttons when provided with a list of strings to use as Button labels.

Simple window management involving grids is also provided. grid::wrapped_window and grid::wrapped_window_at will create a titled window wrapping a Grid for quick information display. SimpleWindow and BasicWindow include ButtonBars as well for simple user interaction.

Example

extern crate newt;
use newt::grid::*;
use newt::prelude::*;

pub fn main() {
    newt::init().unwrap();
    newt::cls();

    let rv;

    let l1 = Label::new(0, 0, "Hello");
    let l2 = Label::new(0, 0, "World");

    let mut form = Form::new(None, 0);
    let stacked = HorizontalGrid::new(&[&l1, &l2]);
    let button_bar = ButtonBar::new(&["Yes", "No", "Maybe"]);

    let mut grid = Grid::new(2, 2);
    grid.set_field(1, 0, &stacked, 1, 1, 1, 1, 0, 0);
    grid.set_field(0, 1, &button_bar, 1, 1, 1, 1, 0, 0);

    wrapped_window(&grid, "Grids");
    grid.add_to_form(&mut form).unwrap();
    rv = form.run().unwrap();
    newt::finished();

    for (i, button) in button_bar.buttons().iter().enumerate() {
        if rv == *button {
            println!("Button {} pressed.", i);
        }
    }
}

Structs

BasicWindow

Create a simple window using sub-grids.

ButtonBar

Creates a row of buttons.

Grid

Arrange Components and sub-grids within a two-dimensional grid.

HorizontalGrid

Arrange components horizontally.

SimpleWindow

Create a simple window for a single Component.

VerticalGrid

Arrange components vertically.

Traits

GridFns

Implements functions shared by Grids.

Functions

wrapped_window

Wrap a Grid in a centered window.

wrapped_window_at

Wrap a Grid in a window at a specified location.