---
name: "Tickit::WidgetRole::Alignable"
section: "3pm"
platform: "linux"
package: "libtickit-widgets-perl"
version: "0.42-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Tickit::WidgetRole::Alignable"
---

# Tickit::WidgetRole::Alignable(3pm)

implement widgets with adjustable alignment

## NAME

"Tickit::WidgetRole::Alignable" - implement widgets with adjustable alignment

## DESCRIPTION

Mixing this parametric role into a Tickit::Widget subclass adds behaviour to implement alignment of content within a possibly-larger space.

## METHODS

The following methods are provided parametrically on the caller package when the module is imported by

```
   use Tickit::WidgetRole::Alignable
      name    => NAME,
      style   => STYLE,
      reshape => RESHAPE;
```

The parameters are

- name =\> STRING

  Optional. The name to use for `"NAME"` in the following generated methods. Defaults to `'align'` if not provided.

- dir =\> "h" or "v"

  Optional. The direction, horizontal or vertical, that the alignment represents. Used to parse symbolic names into fractions. Defaults to `'h'` if not provided.

- reshape =\> BOOL

  Optional. If true, the widget will be reshaped after the value has been set by calling the `"reshape"` method. If false or absent then it will just be redrawn by calling `"redraw"`.

### *NAME*

```
   $align = $widget->NAME;
```

Return the current alignment value

### set\_*NAME*

```
   $widget->set_NAME( $value );
```

Set the new alignment value

Gives a value in the range from `0.0` to `1.0` to align the content display within the window.

For vertical direction alignments, the symbolic values `"top"`, `"middle"` and `"bottom"` can be supplied instead of `0.0`, `0.5` and `1.0` respectively.

For horizontal direction alignments, the symbolic values `"left"`, `"centre"` and `"right"` can be supplied instead of `0.0`, `0.5` and `1.0` respectively.

### \_*NAME*\_allocation

```
   ( $before, $alloc, $after ) = $widget->_NAME_allocation( $value, $total );
```

Returns a list of three integers created by aligning the `$value` to the given alignment position within the `$total`. See also `"align"` in Tickit::Utils.

## AUTHOR

Paul Evans \<leonerd@leonerd.org.uk\>
