diff options
author | iskm <iskm@users.noreply.github.com> | 2017-04-09 22:49:46 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-04-09 22:49:46 -0400 |
commit | 385c4f4664ae8157e62f118f15d4c670a4c1356b (patch) | |
tree | dcb37e29867a6294e8a321ea535e6e9ecd03c296 /Gui_Exploration.rkt | |
parent | 4890b61f08698a84e261f162dc2acd404bcc6b6b (diff) | |
parent | 44c715c55c239495da8f780276866c0041f04139 (diff) |
Merge pull request #1 from oplS17projects/mango0.2
Mango
Diffstat (limited to 'Gui_Exploration.rkt')
-rw-r--r-- | Gui_Exploration.rkt | 129 |
1 files changed, 0 insertions, 129 deletions
diff --git a/Gui_Exploration.rkt b/Gui_Exploration.rkt deleted file mode 100644 index ff4d2d3..0000000 --- a/Gui_Exploration.rkt +++ /dev/null @@ -1,129 +0,0 @@ -#lang racket -(require racket/gui/base) -;;Step 1. Create a window to draw into -(define frame(new frame% [label "Example"])) -;;I don't know what frame% means, but new must be a procedure -;;(send frame show #t) Running this command displays the frame -;;send appears to be a command to be a procedure that takes a frame -;; followed by a command and a boolean. -;;the boolean is fed into the command in this case -;;if you said #f it would close the window -;;that is usefull -;;Below is a slight expantion on example code -;;letting the button be a toggle -(define frame2 (new frame%[label "Example2"])) -(define msg (new message% [parent frame2] [label " Nothing "])) -(define thingy #t) -(define button-to-click (new button% - [parent frame2] - [label "Click"] - [callback (lambda (button event) - (if thingy - (begin (set! thingy #f) - (send msg set-label "Something")) - (begin (set! thingy #t) - (send msg set-label " Nothing "))))])) -;;Frames are okay ish for error messages but the real stuff is -;;in canvas stuff -(define my-canvas% - (class canvas% - (define/override (on-event event) - (send msg set-label "Canvas mouse")) - (define/override (on-char event) - (send msg set-label "Canvas keyboard")) - (super-new)));;Don't know what that one means - -(define canvas-thing (new my-canvas% [parent frame2]));;unfortunately -;;we still need to re-size it manually -;;Now I wonder if we could create a procedure to make any text -;;appear -(define frame3 (new frame%[label "Example3"])) -(define blank (new message% [parent frame3] [label " "])) -(define (make-text string) (begin (send blank set-label string))) -;(send frame3 show #t) -;(make-text "Hello World") works exactly fine. -;;Now lets do something more complicated -;;We want to create a procedure that creates a new line -;;each time it is called so... -(define frame4 (new frame%[label "Example4"])) -;;now blank4 should be a procedure to create multiple lines in the frame -(define (make-text-line string) (begin (new message% - [parent frame4] - [label string]))) -;;display with -;;(send frame4 show #t) -;;add text with -;;(make-text-line "Hello World!") -;;This works for not but there are a few problems -;;first of all the window starts really small and doesn't restrict -;;resizing. Second it is always in the middle of the frame -;;Third, once text is on screen there is no way to get it off -;;But we can do better -(define frame5 (new frame% - [label "Example5"] - [width 300] - [height 300])) -(define canvas5 (new canvas% [parent frame5] - [paint-callback - (lambda (canvas dc) - (send dc set-scale 3 3) - (send dc set-text-foreground "blue") - (send dc draw-text "Don't Panic!" 0 0))])) -;;above is the example code to write some simple text, however -;;we can apply this to what we learned above to make something abit -;;more -(define frame6 (new frame% - [label "Example6"] - [width 600] - [height 700])) -(define (make-color-text string color) - (begin (new canvas% - [parent frame6] - [paint-callback - (lambda (canvas dc) - (send dc set-text-foreground color) - (send dc draw-text string 0 0 #f))]))) -;;display with -;;(send frame6 show #t) -;;write text with -;;(make-color-text "Hello World!" "purple") -;;Okay that doesn't exactly work as planned... -;;the problem with this is that each message is it's own canvas now -;;not only that but it means we can only print each line in it's -;;own color. So new plan is to make it so it adds on new strings -;;to one canvas, adding \n as nessessary. Except nevermind since -;;\n doesn't exist in this apparently - -;;Lets switch back to text and we can change it later -(define frame7 (new frame% - [label "Example7"] - [width 600] - [height 200])) -(define (make-blank-line i) - (new message% - [parent frame7] - [label " "])) -;;80 space characters -;;the i is only there to make the build-list command happy -(define Message-list (build-list 10 make-blank-line)) -;;10 make-blank-lines -;;that build-list command is super usefull for something like this -(define (move-down-list list) - (if (eq? '() (cdr list)) - '() - (begin - (move-down-list (cdr list)) - (send (car (cdr list)) set-label (send (car list) get-label))))) -(define (send-word string) - (begin - (move-down-list Message-list) - (send (car Message-list) set-label string))) -;;display with -;;(send frame7 show #t) -;;add text with -;;(send-word "Hello World") -;;Now using the send-word command I can make each word appear on the -;;screen in the place where it used to be. Starting at the top of the -;;screen and working it's way down the more text is added. -;;on the bottom line, after adding 10 lines of text, it will remove the bottom -;;most line
\ No newline at end of file |