]> gitweb.factorcode.org Git - factor.git/blob - extra/raylib/demo/gui/gui.factor
7095ebe721e1dc4cead423809bb4a45766c65ef3
[factor.git] / extra / raylib / demo / gui / gui.factor
1 ! Copyright (C) 2019 Jack Lucas
2 ! See http://factorcode.org/license.txt for BSD license.
3
4 USING: raylib kernel math.ranges sequences locals random
5 combinators.random  math threads calendar namespaces accessors
6 classes.struct combinators alien.enums ;
7
8 IN: raylib.demo.gui
9
10 : make-window ( -- )
11     800 600 "Hello, Factor!" init-window
12     60 set-target-fps ;
13
14 : button-rec ( -- button )
15     50 50 100 100 Rectangle <struct-boa> ;
16
17 : white-background ( -- )
18     RAYWHITE clear-background ;
19
20 : say-hello ( -- )
21     "Hello Factor!" 4 4 30 RED draw-text ;
22
23 : set-button-style ( -- )
24     BUTTON enum>number
25     TEXT_ALIGNMENT enum>number
26     GUI_TEXT_ALIGN_LEFT enum>number
27     gui-set-style ;
28
29 : draw-button ( -- )
30     set-button-style
31     button-rec "Button"
32     gui-button drop ;
33
34 : render-gui ( -- )
35     gui-lock
36     draw-button
37     gui-unlock ;
38
39 : render-loop ( -- )
40     begin-drawing white-background
41     say-hello render-gui end-drawing ;
42
43 : main ( -- )
44     make-window [
45         render-loop
46         window-should-close not
47     ] loop close-window ;
48
49 MAIN: main