mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 17:50:22 +00:00
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
This commit is contained in:
committed by
Colin Seymour
parent
db1d4f7893
commit
a4e6fc78c8
115
samples/Monkey/gui.monkey2
Normal file
115
samples/Monkey/gui.monkey2
Normal file
@@ -0,0 +1,115 @@
|
||||
#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
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user