Code archives/BlitzPlus Gui/StartupPlus - UPDATED for BlitzPlus v1.34
This code has been declared by its author to be Public Domain code.
Download source code
| |||||
| Simple to use display options window. Just place Include "StartupPlus.bb" at the beginning of the program and call one function. The GUI will also display an optional 'logo.jpg' image if found in the current directory. The image size viewed in the panel is 128x128. ![]() Once the user chooses the display options and hits start, the window closes and the graphics mode will be set. SetBuffer BackBuffer() is also called. `````````````````````` Function `````````````````````` NB: ALL PARAMETERS ARE OPTIONAL Default values are: title -> BlitzPlus Example graphics mode -> 640x480 16 Bit graphics driver -> Native result=SetDisplay(title$,width,height,depth,fullscreenflag,driver) Parameters: ----------- title$ - Displayed in the main window width - default graphics width to use height - default graphics height to use depth - depth required fullscreenflag - True means use full screen else windowed driver - graphics driver to use as default About --------------------------------- Opens up a display options window. If the user closes/quits the window the the result returned is 0. Download source code and example Keyboard Shortcuts: ------------------- RETURN is equivalent to clicking the [Start] button ESC is equivalent to closing the window | |||||
EXAMPLE USAGE
=============
; StartupPlus - Example
; Syntax Error
Include "StartupPlus.bb"
If SetDisplay("SuperDemo 2003",512,384,16,False) = 0 End
sw=GraphicsWidth() : sh=GraphicsHeight() : sd=GraphicsDepth()
x=40 : y=90 : dx=4 : dy=3
size=sw*0.15
timer=CreateTimer(60)
While Not KeyHit(1) Or MouseHit(1)
WaitTimer timer
Cls
x=x+dx : y=y+dy
If x<=0 Or x>=sw-size Then dx=-dx
If y<=0 Or y>=sh-size Then dy=-dy
Rect x,y,size,size
Text 5,5,"Driver: "+GfxDriverName$(GFXDriver)
Text 5,25,"Width="+sw+" Height="+sh+" Depth="+sd
Flip
Wend
End
THE INCLUDE (StartupPlus.bb)
============================
; StartupPlus by Syntax Error
; Updated for BlitzPlus v1.34
; include file 'StartupPlus.bb"
Global GFXDriver=1
; set program display graphics
Function SetDisplay(title$="BlitzPlus Example",w=640,h=480,d=16,full=0,driver=1)
Local xo=160
If FileType("logo.jpg")=0 Then xo=0
win = CreateWindow(title$,307,322,xo+164,182,Desktop(),1)
; Graphics Mode
Label1 = CreateLabel("Graphics Mode",xo+36,8,74,14,win,0)
Combo1 = CreateComboBox(xo+8,26,138,100,win,0)
AddGadgetItem Combo1,"Choose Resolution..."
For g=1 To CountGfxModes()
mode$=Str$(GfxModeWidth(g))+" x "+Str$(GfxModeHeight(g))+" "+Str$(GfxModeDepth(g))+"Bit"
AddGadgetItem Combo1,mode$
If w=GfxModeWidth(g) And h=GfxModeHeight(g) And d=GfxModeDepth(g)
SelectGadgetItem Combo1,g
EndIf
Next
If SelectedGadgetItem(Combo1)=-1 Then SelectGadgetItem Combo1,0
; Graphics Driver
Label2 = CreateLabel("Graphics Driver",xo+36,52,74,14,win,0)
Combo2 = CreateComboBox(xo+8,70,138,100,win,0)
For g=1 To CountGfxDrivers()
AddGadgetItem Combo2,GfxDriverName$(g)
Next
If driver<1 Then driver=1
If driver>CountGfxDrivers() Then driver=CountGfxDrivers()
SelectGadgetItem Combo2,driver-1
; FullScreen / Windowed
RadioButton1 = CreateButton("FullScreen",xo+4,98,76,20,win,3)
RadioButton2 = CreateButton("Windowed",xo+80,98,70,20,win,3)
SetButtonState RadioButton1,full=True
SetButtonState RadioButton2,full=False
; Start Button
Button = CreateButton("Start",xo+4,120,140,26,win,0)
; Graphic Image
If xo>0
panel = CreatePanel(16,14,128,128,win)
SetPanelImage panel,"logo.jpg"
EndIf
; await user response
Repeat
Select WaitEvent()
Case $103 ; key stroke
If EventData()=27 Exit
If EventData()=13
If SelectedGadgetItem(Combo1)=0
Notify "Please choose a Graphics mode"
Else
startflag=True : Exit
EndIf
EndIf
Case $803 ; [x] close window
Exit
Case $401 ; gadget event
If EventSource()=Button
If SelectedGadgetItem(Combo1)=0
Notify "Please choose a graphics mode"
Else
startflag=True : Exit
EndIf
EndIf
End Select
Forever
; read combobox selections
g=SelectedGadgetItem(Combo1)
GFXDriver=SelectedGadgetItem(Combo2)+1
If g>0
w=GfxModeWidth(g) : h=GfxModeHeight(g) : d=GfxModeDepth(g)
full=ButtonState(radiobutton1)
EndIf
; close GUI and created graphics display
FreeGadget win
If full=0 Then full=2 ; windowed
If startflag=True
AppTitle title$
SetGfxDriver GFXDriver
Graphics w,h,d,full
SetBuffer BackBuffer()
EndIf
Return startflag
End Function |
Comments
None.
Code Archives Forum
