ComboBox + miniB3D Problem

BlitzMax Modules Forums/MiniB3D/ComboBox + miniB3D Problem

Hi,

i have a problem with a combobox. I can't select items.

Anyone an idea?

SuperStrict

Framework BRL.GLGraphics

Import maxgui.drivers
Import BRL.Timer
Import BRL.EventQueue
Import sidesign.minib3d

SetGraphicsDriver GLGraphicsDriver(), GRAPHICS_BACKBUFFER | GRAPHICS_DEPTHBUFFER

Global Wnd_Main:TGadget = CreateWindow("3d Canvas Test", 0, 0, 1000, 600, Desktop(), WINDOW_TITLEBAR | WINDOW_RESIZABLE)
'MaximizeWindow Wnd_Main

Global Cnv_G3D:TGadget = CreateCanvas(200, 0, ClientWidth(Wnd_Main)-200, ClientHeight(Wnd_Main), Wnd_Main)
SetGadgetLayout Cnv_G3D, 1, 1, 1, 1

TGlobal.width = ClientWidth(Cnv_G3D)
TGlobal.height = ClientHeight(Cnv_G3D)

TGlobal.depth = 32
TGlobal.mode = 0
TGlobal.rate = 60

SetGraphics CanvasGraphics(Cnv_G3D)

TGlobal.GraphicsInit()

Global Cnv_Menu:TGadget = CreateCanvas(0, 0, 200, ClientHeight(Wnd_Main), Wnd_Main)
SetGadgetLayout Cnv_Menu, 1, 1, 1, 1

Global gamemode:TGadget = CreateComboBox(10, 10, 180, 26, Cnv_Menu)
AddGadgetItem(gamemode, "Singleplayer")
AddGadgetItem(gamemode, "Multiplayer")
SelectGadgetItem(gamemode, 0)

Global cam:TCamera = CreateCamera()
PositionEntity cam, 0, 0, -15

Global light:TLight = CreateLight()
RotateEntity light, 45, 0, 0

Global marker:TMesh = CreateSphere()
ScaleEntity marker, 0.15, 0.15, 0.15
EntityColor marker, 255, 0, 0

Local sphere:TMesh = CreateSphere()
EntityRadius sphere, 1
EntityPickMode sphere, 1
PositionEntity sphere, -10, 0, 0

Local box:TMesh = CreateCube()
FitMesh box, -2, -1, -1, 4, 2, 2
EntityBox box, -2, -1, -1, 4, 2, 2
EntityPickMode box, 3
PositionEntity box, 10, 0, 0

;' used by camera code
Global mxs#=0
Global mys#=0
Global move#=0.5

;' used by fps code
Global old_ms:Int = MilliSecs()
Global renders:Int
Global fps:Int

Global mx:Int = 0, my:Int = 0

Global MST_LEFT:Int = 0, MST_RIGHT:Int = 0
Global KST_A:Int = 0, KST_D:Int = 0, KST_W:Int = 0, KST_S:Int = 0, KST_Q:Int = 0, KST_SPACE:Int = 0

CreateTimer(60)
While Not KeyDown(key_escape)	
	Select WaitEvent()
		Case EVENT_TIMERTICK
			Cnv_G3D_Input
			
			RedrawGadget Cnv_G3D
			
		Case EVENT_MOUSEMOVE
			mx = EventX()
			my = EventY()
			
		Case EVENT_KEYDOWN
			Select EventData()
				Case KEY_ESCAPE End
				Case KEY_W KST_W = 1
				Case KEY_S KST_S = 1
				Case KEY_A KST_A = 1
				Case KEY_D KST_D = 1
				Case KEY_Q KST_Q = 1
				Case KEY_SPACE KST_SPACE = 1
				
			End Select
			
		Case EVENT_KEYUP
			Select EventData()
				Case KEY_W KST_W = 0
				Case KEY_S KST_S = 0
				Case KEY_A KST_A = 0
				Case KEY_D KST_D = 0
				Case KEY_Q KST_Q = 0
				Case KEY_SPACE KST_SPACE = 0
				
			End Select
				
		Case EVENT_MOUSEDOWN
			Select EventData()
				Case 1
					EntityColor box, 255, 255, 255
					EntityColor sphere, 255, 255, 255
					
					Local pick:TEntity = CameraPick(cam, mx, my)
					'Local pe:TEntity = PickedEntity()
					'Local ps:TSurface = PickedSurface()
					
					If pick
						DebugLog "Picked!"
						'DebugLog "PickedX(): " + PickedX()
						'DebugLog "PickedY(): " + PickedY()
						'DebugLog "PickedZ(): " + PickedZ()
						'DebugLog "PickedNX(): " + PickedNX()
						'DebugLog "PickedNY(): " + PickedNY()
						'DebugLog "PickedNZ(): " + PickedNZ()
						'DebugLog "PickedTime(): " + PickedTime()
						'DebugLog "PickedEntity(): " + PickedEntity()
						'DebugLog "PickedSurface(): " +  PickedSurface()
						'DebugLog "PickedTriangle(): " + PickedTriangle()
						EntityColor PickedEntity(), 255, 255, 0
						PositionEntity marker, PickedX(), PickedY(), PickedZ()
						
					Else
						DebugLog "Not Picked"
						
					EndIf
					
				Case 2
					MST_LEFT = 1
					
			End Select
			
		Case EVENT_MOUSEUP
			Select EventData()
				Case 2
					MST_LEFT = 0
					
			End Select
			
		Case EVENT_WINDOWSIZE
			'SetGadgetShape Cnv_G3D, 0, 0, ClientWidth(Wnd_Main), ClientHeight(Wnd_Main)
			TGlobal.width = ClientWidth(Cnv_G3D)
			TGlobal.height = ClientHeight(Cnv_G3D)
			
			CameraViewport(Cam,0,0,TGlobal.Width,TGlobal.Height)
			
		Case EVENT_WINDOWCLOSE
			End
			
		Case EVENT_GADGETPAINT
			
			SetGraphics CanvasGraphics(Cnv_G3D)
			
			MouseXSpeed2()
			MouseYSpeed2()
			
			RenderWorld
			renders = renders + 1
			
			If MilliSecs() - old_ms >= 1000
				old_ms = MilliSecs()
				fps = renders
				renders = 0
			EndIf
	
			Text 0, 0, "FPS: " + fps
			
			Flip
			
	End Select
Wend
End

Function Cnv_G3D_Input()
	If KST_W MoveEntity cam, 0, 0, move#
	If KST_S MoveEntity cam, 0, 0, -move#
	If KST_A MoveEntity cam, -move#, 0, 0
	If KST_D MoveEntity cam, move#, 0, 0
	
	If KST_SPACE PositionEntity cam, 0, 0, -15
	
	If MST_LEFT
	  mxs# :+ MouseXSpeed2() / 5.0
	   mys# :+ MouseYSpeed2() / 5.0
		If KST_Q
			MoveEntity cam, mxs# / 50.0, -mys# / 50.0, 0
			
		Else
			RotateEntity cam, mys#, -mxs#, 0
			
		EndIf
		
	EndIf
	
End Function

Function MouseXSpeed2:Int()
	Global oldmx:Int
	
	Local mxs:Int = mx - oldmx
	oldmx = mx
	
	Return mxs
	
End Function

Function MouseYSpeed2:Int()
	Global oldmy:Int
	
	Local mys:Int = my - oldmy
	oldmy = my
	
	Return mys
	
End Function


original code

Anyone tested the code above ? Is it just me, a bug, or am i doing something wrong ?

Works fine for me on Windows Vista Ultimate.

Oh ok - i'm using Mac OS X
Don't works for me :-/

I just tested it on my MacBook and it works fine there, too. I can select items from the combo box.

hmmm there have to be a problem with my MacBook then ...

Thanks for testing :-)