Module grid

Source
Expand description

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::*;

// use the `Parent` trait, allowing access to all of a `Grid`'s children.
use crate::newt::grid::Parent;

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 stacked = HorizontalGrid::new(&[&l1, &l2]);
    let button_bar = ButtonBar::new(&["Yes", "No", "Maybe"]);
    let mut grid = Grid::new(1, 2);
    grid.set_field(0, 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");
    let mut form = Form::new(None, 0);
    grid.add_to_form(&mut form).unwrap();
    rv = form.run().unwrap();
    newt::finished();

    // Find the component which was activated to close the `Form`.
    for (i, co) in grid.children().iter().enumerate() {
        if rv == *co {
            println!("Component {} activated.", i);
        }
    }

    // Find the button which was activated to close the `Form`.
    for (i, co) in button_bar.buttons().iter().enumerate() {
        if rv == *co {
            println!("Button {} pressed.", i);
        }
    }
}

Modules§

trait

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.
Parent
Trait implemented by Grids that returns all child components from themselves and sub-Grids.

Functions§

wrapped_window
Wrap a Grid in a centered window.
wrapped_window_at
Wrap a Grid in a window at a specified location.