Now prompts for user name via the GUI

This commit is contained in:
Ibrahim Mkusa 2017-04-23 11:15:58 -04:00
parent 44a02c7025
commit 183fad9de3
2 changed files with 15 additions and 3 deletions

View File

@ -84,6 +84,7 @@
(send input set-value "") (send input set-value "")
) )
; retrieves a message user inputed to the text field
(define (get-message) (define (get-message)
(define one-message (define one-message
(if (not (null? messages)) (if (not (null? messages))
@ -191,13 +192,20 @@
; specified ; specified
(define height 15) ; height between messages drawn on the screen (define height 15) ; height between messages drawn on the screen
;; prompt user for username
;; could randomly assign a user
(define (get-username)
(get-text-from-user "Username set-up" "Please enter a username"
main-frame "user" (list 'disallow-invalid)
#:validate string? ))
;;dispatch goes below that ;;dispatch goes below that
;; TODO get username function maybe ;; TODO get username function maybe
(define (dispatch command) (define (dispatch command)
; show gui should return the users the name as well as its first message ; show gui should return the users the name as well as its first message
; to be called ; to be called
(cond ((eq? command 'show) (lambda () (send main-frame show #t))) (cond ((eq? command 'show) (lambda () (send main-frame show #t)))
((eq? command 'gui-input-port)) ((eq? command 'get-username) get-username)
((eq? command 'send) send-message) ;; call to show a message in a gui ((eq? command 'send) send-message) ;; call to show a message in a gui
((eq? command 'set-name) (lambda (newname) (if (string? newname) ((eq? command 'set-name) (lambda (newname) (if (string? newname)
(set! name newname) (set! name newname)
@ -220,6 +228,7 @@
;Initilize scrolling ;Initilize scrolling
;Then we need to find out if we need them or not. ;Then we need to find out if we need them or not.

View File

@ -48,8 +48,9 @@
; create a gui object ; create a gui object
; (define hermes-gui (make-gui)) ; (define hermes-gui (make-gui))
; ((hermes-gui 'show)) ; ((hermes-gui 'show))
(displayln "What's your name?") ;(displayln "What's your name?")
(define username (read-line)) ;(define username (read-line))
(define username ((hermes-gui 'get-username)))
;send the username to the server (username in out) ;send the username to the server (username in out)
(displayln username out) (displayln username out)
@ -95,6 +96,8 @@
;; TODO read from GUI instead ;; TODO read from GUI instead
;(define input (read-line)) ;(define input (read-line))
(define input ((hermes-gui 'get-message))) (define input ((hermes-gui 'get-message)))
; TODO prompt for color as well
; TODO /quit instead of quit ; TODO /quit instead of quit
(cond ((string=? input "quit") (cond ((string=? input "quit")
(displayln (string-append date-print username " signing out. See ya!") out) (displayln (string-append date-print username " signing out. See ya!") out)