Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

VLine

Represents a vertical line:

To create a vertical line use VLine::new method (with 2 parameters: a layout and a set of flags). The flags let you choose if it is a double line.

let a = VLine::new(layout!("x:1,y:1,h:10"), Flags::None);
let b = VLine::new(layout!("x:3,y:1,h:20"), Flags::DoubleLine);

or the macro vline!

let hl1 = vline!("x:1,y:1,h:10");
let hl2 = vline!("x:3,y:1,h:20,flags:DoubleLine");
``

A vertical line supports all common parameters (as they are described in [Instantiate via Macros](../instantiate_via_macros.md) section). Besides them, the following **named parameters** are also accepted:

| Parameter name | Type | Positional parameter | Purpose                                       |
| -------------- | ---- | -------------------- | --------------------------------------------- |
| `flags`        | Enum | **No**               | Flags to specify how the line should be drown |

Where the flags are defined as follows:
* `vline::Flags::DoubleLine` or `DoubleLine` (for macro initialization) - this will draw a double line instead of a single one.
* `vline::Flags::MergeBorders` or `MergeBorders` (for macro initialization) - this will merge the borders of the line with the borders of the window (use box junctions to draw the line).

## Events
A vertical line emits no events.

## Methods
A vertical line has no additional methods.

## Key association
A vertical line does not receive any input and as such it has no key associated with it.

## Example

The following code creates a window with a vertical line.
```rs
use appcui::prelude::*;

fn main() -> Result<(), appcui::system::Error> {
    let mut app = App::new().build()?;
    let mut w = Window::new("Title", layout!("a:c,w:40,h:20"), window::Flags::None);
    
    w.add(VLine::new(layout!("x:3,y:1,h:15"), vline::Flags::DoubleLine));
    app.add_window(w);
    app.run();
    Ok(())
}