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 }