diff options
Diffstat (limited to 'go-src/windowsHelpers.go')
| -rw-r--r-- | go-src/windowsHelpers.go | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/go-src/windowsHelpers.go b/go-src/windowsHelpers.go index 9b1d2d9..761e0d2 100644 --- a/go-src/windowsHelpers.go +++ b/go-src/windowsHelpers.go @@ -1,6 +1,7 @@ package ctfc import ( + "strconv" "strings" "time" @@ -89,6 +90,29 @@ func handleInputActions(input string, handleNav bool, ia ...inputAction) func() return nil } +func handleComplexInputActions(input string, allValues []string, nameSep string, pageArgument *string, currentWindow window, singleValueWindow window, existsCheck func(string) bool) { + // If user input is number, navigate to chat of given number, else show error + if chatI, err := strconv.Atoi(input); chatI >= 0 && chatI <= len(allValues) && err == nil { + defer singleValueWindow(strings.Split(allValues[utils.MaxInt(len(allValues)-pageSize*len(*pageArgument), 0)+chatI-1], " : ")[0]) + } else if input == ">" && pageArgument != nil { + // If possible, increment to the next page (adds a dot to the end of the string) + if len(*pageArgument) < totalPages(len(allValues)) { + *pageArgument += "." + } + defer currentWindow(allValues...) + } else if input == "<" { + // If possible, decrement to the previous page (removes a dot from the string) + if len(*pageArgument) > 1 { + utils.StrShortenRight(*&pageArgument, 1) + } + defer currentWindow(allValues...) + } else if existsCheck(input) { + defer singleValueWindow(input) + } else { + defer showError(invalidCommand, currentWindow) + } +} + /* Form */ type formInput struct { |
