| 2034 | } |
| 2035 | |
| 2036 | func (tui *TUI) renderHelpScreen() { |
| 2037 | // Full screen help overlay |
| 2038 | helpWidth := tui.width - 8 |
| 2039 | helpHeight := tui.height - 4 |
| 2040 | helpX := 4 |
| 2041 | helpY := 2 |
| 2042 | |
| 2043 | if helpWidth > 120 { |
| 2044 | helpWidth = 120 |
| 2045 | helpX = (tui.width - 120) / 2 |
| 2046 | } |
| 2047 | |
| 2048 | // Fill background |
| 2049 | bgStyle := tcell.StyleDefault.Background(CurrentTheme.Background).Foreground(CurrentTheme.Text) |
| 2050 | for y := helpY; y < helpY+helpHeight; y++ { |
| 2051 | for x := helpX; x < helpX+helpWidth; x++ { |
| 2052 | tui.screen.SetContent(x, y, ' ', nil, bgStyle) |
| 2053 | } |
| 2054 | } |
| 2055 | |
| 2056 | // Draw help box |
| 2057 | boxStyle := tcell.StyleDefault.Background(CurrentTheme.Background).Foreground(CurrentTheme.Primary).Bold(true) |
| 2058 | tui.drawBox(helpX, helpY, helpWidth, helpHeight, "PATHFINDER HELP GUIDE", boxStyle) |
| 2059 | |
| 2060 | // Help content |
| 2061 | textStyle := tcell.StyleDefault.Background(CurrentTheme.Background).Foreground(CurrentTheme.Text) |
| 2062 | titleStyle := tcell.StyleDefault.Background(CurrentTheme.Background).Foreground(CurrentTheme.Primary).Bold(true) |
| 2063 | labelStyle := tcell.StyleDefault.Background(CurrentTheme.Background).Foreground(CurrentTheme.Success).Bold(true) |
| 2064 | |
| 2065 | line := helpY + 2 - tui.helpScrollOffset |
| 2066 | col := helpX + 2 |
| 2067 | minVisibleLine := helpY + 2 |
| 2068 | maxVisibleLine := helpY + helpHeight - 3 |
| 2069 | |
| 2070 | // Overview |
| 2071 | if line >= minVisibleLine && line <= maxVisibleLine { |
| 2072 | tui.drawText(col, line, "OVERVIEW", titleStyle) |
| 2073 | } |
| 2074 | line += 1 |
| 2075 | if line >= minVisibleLine && line <= maxVisibleLine { |
| 2076 | tui.drawText(col, line, "PathFinder is a web path discovery tool that scans target URLs for existing", textStyle) |
| 2077 | } |
| 2078 | line += 1 |
| 2079 | if line >= minVisibleLine && line <= maxVisibleLine { |
| 2080 | tui.drawText(col, line, "paths and directories using a wordlist. It tracks response codes, redirects,", textStyle) |
| 2081 | } |
| 2082 | line += 1 |
| 2083 | if line >= minVisibleLine && line <= maxVisibleLine { |
| 2084 | tui.drawText(col, line, "and provides real-time feedback during scanning.", textStyle) |
| 2085 | } |
| 2086 | line += 2 |
| 2087 | |
| 2088 | // Configuration Settings |
| 2089 | if line >= minVisibleLine && line <= maxVisibleLine { |
| 2090 | tui.drawText(col, line, "SCAN CONFIGURATION", titleStyle) |
| 2091 | } |
| 2092 | line += 1 |
| 2093 | |