MCPcopy Index your code
hub / github.com/git-bug/git-bug / layout

Method layout

termui/label_select.go:104–165  ·  view source on GitHub ↗
(g *gocui.Gui)

Source from the content-addressed store, hash-verified

102}
103
104func (ls *labelSelect) layout(g *gocui.Gui) error {
105 maxX, maxY := g.Size()
106 ls.childViews = nil
107
108 width := 5
109 for _, label := range ls.labels {
110 width = maxInt(width, len(label.String()))
111 }
112 width += 10
113 x0 := 1
114 y0 := 0 - ls.scroll
115
116 v, err := g.SetView(labelSelectView, x0, 0, x0+width, maxY-2, 0)
117 if err != nil {
118 if !errors.Is(err, gocui.ErrUnknownView) {
119 return err
120 }
121
122 v.Frame = false
123 }
124
125 for i, label := range ls.labels {
126 viewname := fmt.Sprintf("labeledit%d", i)
127 v, err := g.SetView(viewname, x0+2, y0, x0+width+2, y0+2, 0)
128 if err != nil && !errors.Is(err, gocui.ErrUnknownView) {
129 return err
130 }
131 ls.childViews = append(ls.childViews, viewname)
132 v.Frame = i == ls.selected
133 v.Clear()
134 selectBox := " [ ] "
135 if ls.labelSelect[i] {
136 selectBox = " [x] "
137 }
138
139 lc := label.Color()
140 lc256 := lc.Term256()
141 labelStr := lc256.Escape() + "◼ " + lc256.Unescape() + label.String()
142 _, _ = fmt.Fprint(v, selectBox, labelStr)
143
144 y0 += 2
145 }
146
147 v, err = g.SetView(labelSelectInstructionsView, -1, maxY-2, maxX, maxY, 0)
148 ls.childViews = append(ls.childViews, labelSelectInstructionsView)
149 if err != nil {
150 if !errors.Is(err, gocui.ErrUnknownView) {
151 return err
152 }
153 v.Frame = false
154 v.FgColor = gocui.ColorWhite
155 }
156 v.Clear()
157 _, _ = fmt.Fprint(v, labelSelectHelp.Render(maxX))
158 if _, err = g.SetViewOnTop(labelSelectInstructionsView); err != nil {
159 return err
160 }
161 if _, err := g.SetCurrentView(labelSelectView); err != nil {

Callers

nothing calls this directly

Calls 9

maxIntFunction · 0.85
Term256Method · 0.80
EscapeMethod · 0.80
UnescapeMethod · 0.80
RenderMethod · 0.80
StringMethod · 0.65
ClearMethod · 0.65
ColorMethod · 0.65
SizeMethod · 0.45

Tested by

no test coverage detected