aboutsummaryrefslogtreecommitdiff
path: root/go-src/windowsHelpers.go
diff options
context:
space:
mode:
Diffstat (limited to 'go-src/windowsHelpers.go')
-rw-r--r--go-src/windowsHelpers.go24
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 {