| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- package layout
- import (
- "github.com/gdamore/tcell/v3"
- )
- type Rect struct {
- X int
- Y int
- Width int
- Height int
- }
- func RectDivide(rect Rect, split SplitType, num int) Rect {
- switch split {
- case SplitHorizontal:
- return Rect{
- X: rect.X,
- Y: rect.Y,
- Width: rect.Width / num,
- Height: rect.Height,
- }
- case SplitVertical:
- return Rect{
- X: rect.X,
- Y: rect.Y,
- Width: rect.Width,
- Height: rect.Height / num,
- }
- default:
- panic("[moose-error] impossible split type")
- }
- }
- func RectDisplace(rect Rect, split SplitType, idx int) Rect {
- switch split {
- case SplitHorizontal:
- return Rect{
- X: rect.X + (rect.Width * idx),
- Y: rect.Y, // + 1,
- Width: rect.Width,
- Height: rect.Height, // - 1,
- }
- case SplitVertical:
- return Rect{
- X: rect.X,
- Y: rect.Y + (rect.Height * idx), // + 1,
- Width: rect.Width,
- Height: rect.Height, // - 1,
- }
- default:
- panic("[moose-error] impossible split type")
- }
- }
- func RectFromScren(s tcell.Screen) Rect {
- sWidth, sHeight := s.Size()
- return Rect{
- X: 0,
- Y: 0,
- Width: sWidth,
- Height: sHeight,
- }
- }
|