()
| 1095 | } |
| 1096 | |
| 1097 | func (ui *ui) drawMenu() { |
| 1098 | if ui.menu == "" { |
| 1099 | return |
| 1100 | } |
| 1101 | |
| 1102 | lines := strings.Split(ui.menu, "\n") |
| 1103 | lines = lines[:len(lines)-1] |
| 1104 | |
| 1105 | ui.menuWin.h = len(lines) |
| 1106 | ui.menuWin.y = ui.msgWin.y - ui.menuWin.h |
| 1107 | |
| 1108 | // clear sixel image if it overlaps with the menu |
| 1109 | ui.screen.LockRegion(ui.menuWin.x, ui.menuWin.y, ui.menuWin.w, ui.menuWin.h, false) |
| 1110 | ui.sxScreen.forceClear = true |
| 1111 | |
| 1112 | for i, line := range lines { |
| 1113 | var st tcell.Style |
| 1114 | if i == 0 { |
| 1115 | st = parseEscapeSequence(gOpts.menuheaderfmt) |
| 1116 | } else { |
| 1117 | st = parseEscapeSequence(gOpts.menufmt) |
| 1118 | } |
| 1119 | |
| 1120 | ui.menuWin.printLine(ui.screen, 0, i, st, line) |
| 1121 | } |
| 1122 | |
| 1123 | if ui.menuSelect != nil { |
| 1124 | st := parseEscapeSequence(gOpts.menuselectfmt) |
| 1125 | ui.menuWin.print(ui.screen, ui.menuSelect.x, ui.menuSelect.y, st, ui.menuSelect.s) |
| 1126 | } |
| 1127 | } |
| 1128 | |
| 1129 | func (ui *ui) dirOfWin(nav *nav, wind int) *dir { |
| 1130 | wins := len(ui.wins) |
no test coverage detected