Splitter gadget

BlitzMax Forums/MaxGUI Module/Splitter gadget

slenkar(Posted 2008) [#1]
has anyone got an example of adding a canvas either side of a splitter gadget?

also is it cross platform?


jsp(Posted 2008) [#2]
Does this help? Should be crossplatform as it uses pure MaxGui(Ex).




slenkar(Posted 2008) [#3]
Thanks that works well


slenkar(Posted 2008) [#4]
when I add hooks it crashes:

			SetGadgetLayout( Canvas2:TGadget,EDGE_ALIGNED,EDGE_ALIGNED,EDGE_ALIGNED,EDGE_ALIGNED )
		Local Canvas1:TGadget = CreateCanvas:TGadget(1,1,244,194,PSplitter1_Main:TGadget,Null)
			SetGadgetLayout( Canvas1:TGadget,EDGE_ALIGNED,EDGE_ALIGNED,EDGE_ALIGNED,EDGE_ALIGNED )

Repeat
	WaitEvent()
	Select EventID()
		Case EVENT_WINDOWCLOSE
			Select EventSource()
				Case Window1	Window1_WC( Window1:TGadget )
			End Select

		Case EVENT_GADGETPAINT
			Select EventSource()
				Case Canvas2	Canvas2_GP( Canvas2:TGadget )
				Case Canvas1	Canvas1_GP( Canvas1:TGadget )
			End Select

	End Select
Forever

Function Window1_WC( Window:TGadget )
	DebugLog "Window Window1 wants to be closed"
'	HideGadget( Window:TGadget )

	End
End Function

Function Canvas2_GP( Canvas:TGadget )
	'DebugLog "Canvas Canvas2 needs to be redrawn"
	SetGraphics CanvasGraphics ( Canvas )
	SetViewport 0,0,GadgetWidth( Canvas ),GadgetHeight( Canvas )
	
	SetColor( 208,216,61 )
	SetClsColor( 118,131,184 )
	Cls
	DrawText( "Side" ,1,1 )
	Flip

End Function

Function Canvas1_GP( Canvas:TGadget )
	'DebugLog "Canvas Canvas1 needs to be redrawn"
	SetGraphics CanvasGraphics ( Canvas )
	SetViewport 0,0,GadgetWidth( Canvas ),GadgetHeight( Canvas )
	
	SetColor( 208,216,61 )
	SetClsColor( 118,131,184 )
	Cls
	DrawText( "Main" ,1,1 )
	Flip

End Function



Function MyHook:Object(iId:Int,tData:Object,tContext:Object)
  Local Event:TEvent=TEvent(tData)



  If Event.source=psplitter1_main
EndIf
  Return tData
EndFunction



jsp(Posted 2008) [#5]
Sure it does as you don't check the event!
Try this:

Function MyHook:Object(iId:Int,tData:Object,tContext:Object)
  Local Event:TEvent=TEvent(tData)
	
	If event=Null Return Null '<---- add this

  	If Event.source=psplitter1_main
	EndIf
  Return tData
EndFunction



slenkar(Posted 2008) [#6]
thanks it worked!