github.com/jmigpin/editor@v1.6.0/ui/rowtoolbar.go (about)

     1  package ui
     2  
     3  type RowToolbar struct {
     4  	*Toolbar
     5  	Square *RowSquare
     6  }
     7  
     8  func NewRowToolbar(row *Row) *RowToolbar {
     9  	tb0 := NewToolbar(row.ui)
    10  
    11  	tb := &RowToolbar{Toolbar: tb0}
    12  
    13  	tb.Square = NewRowSquare(row)
    14  	tb.Append(tb.Square)
    15  
    16  	return tb
    17  }
    18  
    19  func (tb *RowToolbar) Layout() {
    20  	// TODO: should use freelayout instead to set the square position
    21  
    22  	// square
    23  	m := tb.Square.Measure(tb.Bounds.Size())
    24  	sqb := tb.Bounds
    25  	sqb.Max = sqb.Min.Add(m)
    26  	tb.Square.Bounds = sqb.Intersect(tb.Bounds)
    27  
    28  	tb.Toolbar.Layout()
    29  }
    30  
    31  func (tb *RowToolbar) OnThemeChange() {
    32  	tb.Toolbar.OnThemeChange()
    33  	tb.Square.Size = UIThemeUtil.RowSquareSize(tb.TreeThemeFontFace())
    34  	tb.Drawer.SetFirstLineOffsetX(tb.Square.Size.X)
    35  }