Code archives/Miscellaneous/MaxGUI Template
This code has been declared by its author to be Public Domain code.
Download source code
| |||||
| This template allow the user to make maxgui apps :) The program use less CPU but you can refresh graphics without eat all CPU process :) I hope that usefull for you :) It's not perfect, but it work. | |||||
' -----------------------------------------------
' Max GUI template by Filax, u se as you want :)
' -----------------------------------------------
SuperStrict
Local w:Int=400
Local h:Int=400
Local x:Int=(GadgetWidth(Desktop())-w)/2
Local y:Int=(GadgetHeight(Desktop())-h)/2
Global MyWindow:TGadget=CreateWindow("EventHook Example", x,y,w,h,Null,WINDOW_TITLEBAR|WINDOW_ACCEPTFILES)
Global MyCanvas:TGadget=CreateCanvas(0,0,380,360,MyWindow)
SetGadgetAlpha( MyCanvas,0.5 )
Global Button:TGadget=CreateButton("Test",10,10,80,20,MyCanvas,BUTTON_PUSH)
Global Listbox:TGadget=CreateListBox(10,50,100,100,MyCanvas)
AddGadgetItem(Listbox,"TRTERTER")
Global SmallWindow:TGadget=CreateWindow("Move Me", x+125, y+150, 150, 100, MyWindow, WINDOW_TITLEBAR)
AddHook EmitEventHook,UpdateHook
CreateTimer(60) ' Refresh the graphics to 60 frames per seconds
' ---------
' Main loop
' ---------
Repeat
UpdateApp()
Forever
' --------------------
' App refresh function
' --------------------
Function UpdateApp()
WaitEvent()
Select EventID()
Case EVENT_TIMERTICK
UpdateGraphics()
End Select
End Function
' ------------------
' Gadget events hook
' ------------------
Function UpdateHook:Object(iId:Int,tData:Object,tContext:Object)
Local Event:TEvent=TEvent(tData)
Select Event.ID
Case EVENT_APPSUSPEND
Print "APP SUSPEND"
Case EVENT_APPRESUME
Print "APP RESUME"
Case EVENT_WINDOWMOVE
Print "WIN MOVE"
Case EVENT_MENUACTION
Print "MENU ACTION"
Case EVENT_WINDOWACCEPT
Print "DRAG N DROP"
Case EVENT_WINDOWCLOSE
End
Case EVENT_GADGETPAINT
UpdateGraphics()
Case EVENT_GADGETACTION
Select Event.Source
Case Button
Notify "Yearrr"
Case Listbox
Notify "Listbox double click"
EndSelect
Case EVENT_GADGETSELECT
Select Event.Source
Case Listbox
Notify "Listbox single click"
EndSelect
EndSelect
Return tData
End Function
' -------------------------
' Update graphics if needed
' -------------------------
Function UpdateGraphics:Int()
SetGraphics CanvasGraphics(MyCanvas)
Cls
SetColor Rnd(255),Rnd(255),Rnd(255)
DrawRect 0,0,GraphicsWidth(),GraphicsHeight()
Flip False
End Function |
Comments
| ||
| Thanks for the template. Needed to add "Import MaxGUI.Drivers" at the start though :) |
| ||
| Cool thing and useful |
Code Archives Forum