Canvas as child of tabber

BlitzMax Forums/BlitzMax GUI Programming/Canvas as child of tabber

When I attach a canvas to a panel, and the panel to a tabber

The canvas wont show no matter what, is this normal?

I am sure somebody will come along and answer this but, fi not, you might want to show your code.

Works fine here:
Tabber with two tabs. Each tab has a border panel and each border panel contains a canvas.
Hmm, maybe you didn't notice that the tabber doesn't switch anything, you have to do it yourself on event...

SuperStrict
Import MaxGui.Win32MaxGui

Local Window1:TGadget = CreateWindow:TGadget("Window1",260,102,407,272,Null,WINDOW_TITLEBAR|WINDOW_RESIZABLE |WINDOW_STATUS |WINDOW_CLIENTCOORDS )
	Local Tabber1:TGadget = CreateTabber:TGadget(24,39,338,209,Window1:TGadget,Null)
		AddGadgetItem( Tabber1:TGadget,"Tab1",GADGETITEM_DEFAULT )
		Local Tabber1_Tab1:TGadget = CreatePanel( 0,0,ClientWidth(Tabber1:TGadget),ClientHeight(Tabber1:TGadget),Tabber1:TGadget )
			Tabber1.items[0].extra = Tabber1_Tab1:TGadget
			SetGadgetLayout( Tabber1_Tab1,EDGE_ALIGNED,EDGE_ALIGNED,EDGE_ALIGNED,EDGE_ALIGNED )
			Local BorderPanel1:TGadget = CreatePanel:TGadget(35,24,262,136,Tabber1_Tab1:TGadget,PANEL_BORDER,"BorderPanel1")
				Local Canvas1:TGadget = CreateCanvas:TGadget(0,0,258,132,BorderPanel1:TGadget,Null)
					SetGadgetLayout( Canvas1:TGadget,EDGE_ALIGNED,EDGE_ALIGNED,EDGE_ALIGNED,EDGE_ALIGNED )
		AddGadgetItem( Tabber1:TGadget,"Tab2",GADGETITEM_NORMAL )
		Local Tabber1_Tab2:TGadget = CreatePanel( 0,0,ClientWidth(Tabber1:TGadget),ClientHeight(Tabber1:TGadget),Tabber1:TGadget )
			Tabber1.items[1].extra = Tabber1_Tab2:TGadget
			SetGadgetLayout( Tabber1_Tab2,EDGE_ALIGNED,EDGE_ALIGNED,EDGE_ALIGNED,EDGE_ALIGNED )
			Local BorderPanel2:TGadget = CreatePanel:TGadget(44,29,235,130,Tabber1_Tab2:TGadget,PANEL_BORDER,"BorderPanel2")
				Local Canvas2:TGadget = CreateCanvas:TGadget(0,0,231,126,BorderPanel2:TGadget,Null)
					SetGadgetLayout( Canvas2:TGadget,EDGE_ALIGNED,EDGE_ALIGNED,EDGE_ALIGNED,EDGE_ALIGNED )
		Tabber1_GA( Tabber1:TGadget , 0 )

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

		Case EVENT_GADGETACTION
			Select EventSource()
				Case Tabber1	Tabber1_GA( Tabber1:TGadget , EventData() )
			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 Tabber1_GA( Tabber:TGadget , Number:Int )
	DebugLog "Tabber Tabber1 selected Tab " + Number
	For Local i:Int = 0 To Tabber.items.length -1
		HideGadget( TGadget( Tabber.items[i].extra ) )
	Next
	ShowGadget( TGadget( Tabber.items[Number].extra ) )
	
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( "LogicZone" ,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( "LogicZone" ,1,1 )
	Flip

End Function



thanks got it now