| 76 | 76 |
|
| 77 | 77 |
// BarFillerOnComplete replaces bar's filler with message, on complete event.
|
| 78 | 78 |
func BarFillerOnComplete(message string) BarOption {
|
| 79 | |
return func(s *bState) {
|
| 80 | |
s.filler = makeBarFillerOnComplete(s.baseF, message)
|
| 81 | |
}
|
| 82 | |
}
|
| 83 | |
|
| 84 | |
func makeBarFillerOnComplete(filler BarFiller, message string) BarFiller {
|
| 85 | |
return BarFillerFunc(func(w io.Writer, width int, st decor.Statistics) {
|
| 86 | |
if st.Completed {
|
| 87 | |
io.WriteString(w, message)
|
| 88 | |
} else {
|
| 89 | |
filler.Fill(w, width, st)
|
| 90 | |
}
|
|
79 |
return BarFillerMiddleware(func(base BarFiller) BarFiller {
|
|
80 |
return BarFillerFunc(func(w io.Writer, reqWidth int, st decor.Statistics) {
|
|
81 |
if st.Completed {
|
|
82 |
io.WriteString(w, message)
|
|
83 |
} else {
|
|
84 |
base.Fill(w, reqWidth, st)
|
|
85 |
}
|
|
86 |
})
|
| 91 | 87 |
})
|
|
88 |
}
|
|
89 |
|
|
90 |
// BarFillerMiddleware provides a way to augment default BarFiller.
|
|
91 |
func BarFillerMiddleware(middle func(BarFiller) BarFiller) BarOption {
|
|
92 |
return func(s *bState) {
|
|
93 |
s.filler = middle(s.filler)
|
|
94 |
}
|
| 92 | 95 |
}
|
| 93 | 96 |
|
| 94 | 97 |
// BarPriority sets bar's priority. Zero is highest priority, i.e. bar
|
|
| 137 | 140 |
SetStyle(string)
|
| 138 | 141 |
}
|
| 139 | 142 |
return func(s *bState) {
|
| 140 | |
if t, ok := s.baseF.(styleSetter); ok {
|
|
143 |
if t, ok := s.filler.(styleSetter); ok {
|
| 141 | 144 |
t.SetStyle(style)
|
| 142 | 145 |
}
|
| 143 | 146 |
}
|
|
| 157 | 160 |
SetReverse(bool)
|
| 158 | 161 |
}
|
| 159 | 162 |
return func(s *bState) {
|
| 160 | |
if t, ok := s.baseF.(revSetter); ok {
|
|
163 |
if t, ok := s.filler.(revSetter); ok {
|
| 161 | 164 |
t.SetReverse(true)
|
| 162 | 165 |
}
|
| 163 | 166 |
}
|
|
| 187 | 190 |
cb func(interface{}),
|
| 188 | 191 |
) BarOption {
|
| 189 | 192 |
return func(s *bState) {
|
| 190 | |
if t, ok := typeChecker(s.baseF); ok {
|
|
193 |
if t, ok := typeChecker(s.filler); ok {
|
| 191 | 194 |
cb(t)
|
| 192 | 195 |
}
|
| 193 | 196 |
}
|