Canvas fill the whole window?
BlitzMax Forums/MaxGUI Module/Canvas fill the whole window?| 
 | ||
| How do I make a canvas always be the entire size of the window even after the window is resized? I tried this but it doesn't seem to make the canvas larger when the windown gets larger than the size it started at. SetGadgetShape(canvas,0,0,GadgetWidth(window),GadgetHeight(window)) | 
| 
 | ||
| SetGadgetShape canvas,EDGE_CENTERED,EDGE_ALIGNED,EDGE_CENTERED,EDGE_ALIGNED insert this after you create the canvas and the canvas will automatically be resized. Also, you should use ClientWidth and ClientHeight instead of GadgetWidth and GadgetHeight to find the client area of the window. | 
| 
 | ||
| Ok you mean setgadgetlayout, I just did that and now it *almost* works. Heres my code, it runs by itself. 
Strict
Local window:tgadget
window = CreateWindow("",200,100,400,400)
Local canvas:tgadget
canvas = CreateCanvas(0, 0, ClientWidth(window), ClientHeight(window), window)
SetGadgetLayout canvas,EDGE_CENTERED,EDGE_ALIGNED,EDGE_CENTERED,EDGE_ALIGNED
SetGraphics CanvasGraphics(canvas)
Repeat
	PollEvent()
	Select EventID()
	Case EVENT_WINDOWCLOSE
		End
	Case EVENT_WINDOWSIZE
		SetGadgetShape(canvas,0,0,ClientWidth(window),ClientHeight(window))
	EndSelect
	
	
	SetColor Rnd(255),0,0
	DrawRect Rnd(2000),Rnd(2000),33,33
	
	Flip
Forever
 | 
| 
 | ||
| window = CreateWindow("",200,100,400,400,Null,WINDOW_CLIENTCOORDS)Let me know if this works, cos its the only major differance I can see between yours and mine(cept for some reason tgadget isnt being reconised, so cannot run it. Syncing) Edit: Ok Synced. Seemed to have lost MaxGui? Weird. Anyway it does exactly what you asked for (that is The Canvas fills the whole window, but its probably not what you wanted. oh um) | 
| 
 | ||
| hmm adding that didn't do the trick. When I resize the window to make it larger, it still only draws rectangles on the area that was the original size of the window. | 
| 
 | ||
| @Curtastic: You also need to reset the viewport and redraw the canvas like so: 
SuperStrict
Local window:TGadget = CreateWindow("",200,100,400,400)
Local canvas:TGadget = CreateCanvas(0, 0, ClientWidth(window), ClientHeight(window), window)
SetGadgetLayout canvas, EDGE_CENTERED, EDGE_ALIGNED, EDGE_CENTERED, EDGE_ALIGNED
SetGraphics CanvasGraphics(canvas)
Local rectsize:Int = 33
Repeat
	PollEvent()
	Select EventID()
		Case EVENT_WINDOWCLOSE
			End
		Case EVENT_WINDOWSIZE
			SetGadgetShape(canvas, 0, 0, ClientWidth(window), ClientHeight(window))
			SetViewport 0, 0, ClientWidth(window), ClientHeight(window)
			RedrawGadget(canvas)
		Case EVENT_GADGETPAINT
			SetGraphics CanvasGraphics(canvas)
			Cls
	EndSelect
	
	SetColor Rnd(255), 0, 0
	DrawRect Rand(GadgetWidth(canvas) - rectsize), Rand(GadgetHeight(canvas) - rectsize), rectsize ,rectsize
	
	Flip
	
Forever
CODE EDIT: Added Cls in EVENT_GADGETPAINT case. | 
| 
 | ||
| Ah I never thought about resetting the viewport. Thanks a bunch! | 
| 
 | ||
| Seriously.  This was driving me a bit nuts. |