Files
linguist/samples/Monkey/gui.monkey2
DoctorWhoof a4e6fc78c8 Added a few Monkey2 examples (#3811)
* Added Monkey2 (extension .monkey2) example

This compiles with the most up to date Monkey2 release (V1.1.06).

* Sorting example in Monkey2

* Add files via upload

* Gui example using the MojoX module
2018-01-11 09:23:54 +00:00

116 lines
2.3 KiB
Plaintext

#Import "<mojo>"
#Import "<mojox>"
Using std..
Using mojo..
Using mojox..
Function Main()
New AppInstance
New TestGui
App.Run()
End
Class TestGui Extends Window
Field mainDock:DockingView
Field rgtDock:ScrollView
Field graphView:GraphView
Const smallFont:Font = Font.Load( "font::DejaVuSans.ttf", 10 )
Method New()
Super.New( "Test", 1024, 640, WindowFlags.Resizable )
mainDock = New MainDock()
rgtDock = New RightDock()
mainDock.AddView( rgtDock, "right", "400", True )
ContentView = mainDock
End
End
Class MainDock Extends DockingView
Method New()
Layout="fill"
Local newStyle := Style.Copy()
newStyle.BackgroundColor = Color.DarkGrey
newStyle.BorderColor = Color.Black
newStyle.Font = TestGui.smallFont
Style = newStyle
End
Method OnRender( canvas:Canvas ) Override
Super.OnRender( canvas )
canvas.Color = New Color( Rnd(), Rnd(), Rnd() )
canvas.DrawCircle( Frame.Width/4, Frame.Height/2, Frame.Height/4 )
canvas.Color = Color.Aluminum
canvas.DrawText( "gameview:" + App.FPS + " fps", 5, 5 )
End
End
Class RightDock Extends ScrollView
Private
Field _panSpeed := 10.0
Public
Method New()
Layout="fill"
ScrollBarsVisible = True
Local newStyle := Style.Copy()
newStyle.BackgroundColor = Color.Grey
newStyle.BorderColor = Color.Black
newStyle.Font = TestGui.smallFont
Style = newStyle
Local graph:=New GraphView
ContentView = graph
Scroll = New Vec2i( graph.Frame.Width/2, graph.Frame.Height/2 ) 'Doesn't work!
End
Method OnRender( canvas:Canvas ) Override
Super.OnRender( canvas )
canvas.Color = Color.Aluminum
canvas.DrawText( "size:" + Frame + " ,scroll:" + Scroll , 5, 5 )
End
Method OnMouseEvent( event:MouseEvent ) Override
Select event.Type
Case EventType.MouseWheel
Scroll = New Vec2i( Scroll.X+(event.Wheel.X*_panSpeed), Scroll.Y-(event.Wheel.Y*_panSpeed) )
App.RequestRender()
End
End
End
Class GraphView Extends View
Private
Field _panSpeed := 5.0
Field _size := New Vec2i( 1024, 1024 )
Public
Method New()
MinSize=New Vec2i( _size.X, _size.Y )
End
Method OnRender( canvas:Canvas ) Override
Local r:= 20.0
For Local x := 1 Until 10
For Local y := 1 Until 10
Local v := (x/10.0) -0.05
canvas.Color = New Color( v, v, v )
canvas.DrawCircle( (x*100)+r, (y*100)+r, r )
Next
Next
End
End