What happened to MaxGUI in SyncMods today?

BlitzMax Forums/BlitzMax Programming/What happened to MaxGUI in SyncMods today?

Gabriel(Posted 2006) [#1]
This is getting beyond funny. I've spent what feels like two entire days work tracking down mysterious bugs which have cropped up with Syncmods changes, and now today, my TrueVision preview window which was sitting nicely in a MaxGUI canvas has vanished. My code hasn't changed, and I noticed MaxGUI listed on the Syncmods ( I was only sync'ing in the hope that it would fix some of the other stuff it's broken in the past week ) and now I have no idea why. TV is reporting that everything is great, but there is no window.

So if you could tell me what changed, maybe I have half a chance of figuring out how to fix it again. And is there somewhere in the docs where we can find this for ourselves, because I really hate cluttering up the forums to find out.


H&K(Posted 2006) [#2]
Your going to shout at me for this.

However, you have changed all the directory paths today, so are you sure it wanst that that did this?


skidracer(Posted 2006) [#3]
The most recent fixes were all due to current bug reports, maybe start with verifying I got the freecanvas crash fix correct. The other "fix" that may affect you is the new clipping win32maxgui is doing between siblings, will test now...


Gabriel(Posted 2006) [#4]
However, you have changed all the directory paths today, so are you sure it wanst that that did this?

Yes, I'm sure. Paths are in no way involved in using the TV engine.

The most recent fixes were all due to current bug reports, maybe start with verifying I got the freecanvas crash fix correct.

Ok, thanks, will take a look.


skidracer(Posted 2006) [#5]
Hmm, I was under the impression gadgets created last would be ontop but it seems with the new clipping it's the other way round (change order of CreateCanvas and CreateTabber to experiment):
' createtabber.bmx

Strict 

Local window:TGadget
Local tabber:TGadget
Local document:TGadget[3]
Local currentdocument:TGadget
Local canvas:TGadget

' CreateDocument creates a hidden panel that fills entire tabber client area 

Function CreateDocument:TGadget(tabber:TGadget)
	Local	panel:TGadget
	panel=CreatePanel(0,0,ClientWidth(tabber),ClientHeight(tabber),tabber)
	SetGadgetLayout panel,1,1,1,1
	HideGadget panel
	Return panel
End Function

' create a default window with a tabber gadget that fills entire client area

window=CreateWindow("My Window",30,20,400,300)

canvas=CreateCanvas(50,50,320,240,window)

tabber=CreateTabber(0,0,ClientWidth(window),ClientHeight(window)/2,window)
SetGadgetLayout tabber,1,1,1,1 

' add three items and corresponding document panels to the tabber

AddGadgetItem tabber,"Document 0",False,-1,""
AddGadgetItem tabber,"Document 1",False,-1,"Tabber Tip 1"
AddGadgetItem tabber,"Document 2",False,-1,"tips 4 2"

document[0]=CreateDocument(tabber)
document[1]=CreateDocument(tabber)
document[2]=CreateDocument(tabber)

SetPanelColor document[0],255,200,200
SetPanelColor document[1],200,255,200
SetPanelColor document[2],200,200,255

' our documents start off hidden so make first one current and show

currentdocument=document[0]
ShowGadget currentdocument

CreateTimer 50

' standard message loop with special tabber GADGET_ACTION handling

While WaitEvent()
	Select EventID()
		Case EVENT_GADGETACTION
			If EventSource()=tabber
				HideGadget currentdocument
				currentdocument=document[EventData()]
				ShowGadget currentdocument
			EndIf

		Case EVENT_TIMERTICK
			RedrawGadget canvas
		Case EVENT_GADGETPAINT
			SetGraphics CanvasGraphics(canvas)
			SetOrigin 160,120
			SetLineWidth 5
			Cls
			Local t=MilliSecs()
			DrawLine 0,0,120*Cos(t),120*Sin(t)
			DrawLine 0,0,80*Cos(t/60),80*Sin(t/60)
			Flip
		
		Case EVENT_WINDOWCLOSE
			End
	End Select
Wend



Gabriel(Posted 2006) [#6]
Yep, that's what it was alright. Thanks for the very fast help with that.

EDIT: And yes, the bug with free'ing canvases is fixed too. Thanks!


skidracer(Posted 2006) [#7]
Crap, that gadget order clipping thing is the opposite on Mac, fix 1 thing, break 2 others...


SebHoll(Posted 2006) [#8]
FOUND A FIX!!!!

Skid: Here is a fix I've just found for the Windows reverse bug order. Check back in original post. It should mean Mac/Linux/Windows all work the same way.

After applying these fixes, the example you gave now draws with the correct Z-Order. The gadget drawn last, is the gadget on top.