document maxgui addon

BlitzMax Forums/MaxGUI Module/document maxgui addon

Bobysait(Posted 2007) [#1]
Hi !
I have add some functions to maxgui, and i would like them to be documented
=> building works fine, and functions work too

but, a part doesn't want to document :
here are my modifs:
dir = mod/brl.mod/maxgui.mod/

in Type gadget (gadget.bmx)
	Field	Gadget_Class:Int


in maxgui.bmx

Rem
bbdoc: Retourne le nom de la Classe d un gadget
about:
[ Classe | Nom$
* GADGET_DESKTOP | Desktop
* GADGET_WINDOW | Window
* GADGET_BUTTON | Button
* GADGET_PANEL | Panel
* GADGET_TEXTFIELD | TextField
* GADGET_TEXTAREA | TextArea
* GADGET_COMBOBOX | ComboBox
* GADGET_LISTBOX | ListBox
* GADGET_TOOLBAR | ToolBar
* GADGET_TABBER | Tabber
* GADGET_TREEVIEW | TreeView
* GADGET_HTMLVIEW | HtmlView
* GADGET_LABEL | Label
* GADGET_SLIDER | Slider
* GADGET_PROGBAR | ProgBar
* GADGET_MENUITEM | MenuItem
* GADGET_NODE | Node
* GADGET_CANVAS | Canvas
* GADGET_TIMER | Timer
]

retourne "NOT_GADGET" si la classe ne correspond pas a un gadget de MAXGui
retourne "Null" si le gadget n'existe pas/plus

See Also: #GadgetClasse, #GadgetIsWindow
EndRem

Function GadgetGetClasse$(gadget:TGadget)
	If gadget=Null Return "Null"
	Select gadget.Gadget_Class
		Case GADGET_DESKTOP
			Return "Desktop"
		Case GADGET_WINDOW
			Return "Window"
		Case GADGET_BUTTON
			Return "Button"
		Case GADGET_PANEL
			Return "Panel"
		Case GADGET_TEXTFIELD
			Return "TextField"
		Case GADGET_TEXTAREA
			Return "TextArea"
		Case GADGET_COMBOBOX
			Return "ComboBox"
		Case GADGET_LISTBOX
			Return "ListBox"
		Case GADGET_TOOLBAR
			Return "ToolBar"
		Case GADGET_TABBER
			Return "Tabber"
		Case GADGET_TREEVIEW
			Return "TreeView"
		Case GADGET_HTMLVIEW
			Return "HtmlView"
		Case GADGET_LABEL
			Return "Label"
		Case GADGET_SLIDER
			Return "Slider"
		Case GADGET_PROGBAR
			Return "ProgBar"
		Case GADGET_MENUITEM
			Return "MenuItem"
		Case GADGET_NODE
			Return "Node"
		Case GADGET_CANVAS
			Return "Canvas"
		Case GADGET_TIMER
			Return "Timer"
	End Select
	Return "NOT_GADGET"
End Function


Rem
bbdoc: Retourne la classe d un gadget
about:
[ Classe | Return Integer
* GADGET_DESKTOP | 0
* GADGET_WINDOW | 1
* GADGET_BUTTON | 2
* GADGET_PANEL | 3
* GADGET_TEXTFIELD | 4
* GADGET_TEXTAREA | 5
* GADGET_COMBOBOX | 6
* GADGET_LISTBOX | 7
* GADGET_TOOLBAR | 8
* GADGET_TABBER | 9
* GADGET_TREEVIEW | 10
* GADGET_HTMLVIEW | 11
* GADGET_LABEL | 12
* GADGET_SLIDER | 13
* GADGET_PROGBAR | 14
* GADGET_MENUITEM | 15
* GADGET_NODE | 16
* GADGET_CANVAS | 17
* GADGET_TIMER | 18
]
See Also: #GadgetIsWindow, #GadgetGetClasse
EndRem
Function GadgetClasse:Int(gadget:TGadget)
	Return gadget.Gadget_Class
End Function

Rem
bbdoc: Retourne true si le gadget est de forme "Window" ( CreateWindow)
about:
retourne "1" si le gadget est une "window" , sinon retourne "0"

See Also: #CreateWindow, #GadgetGetClasse
EndRem
Function GadgetIsWindow:Int(gadget:TGadget)
	If GadgetClasse(gadget)=GADGET_WINDOW Return 1
	Return False
End Function



and for each Create"gadget" function, I modified the functions:
Function CreateMenu:TGadget( text$,tag,parent:TGadget,hotKey=0,modifier=0 )
	Local gadget:TGadget=maxgui_driver.CreateGadget(GADGET_MENUITEM,text,0,0,0,0,parent,tag)
	gadget.Gadget_Class=GADGET_MENUITEM
	If gadget And hotKey SetGadgetHotKey gadget,hotKey,modifier
	Return gadget
End Function


Function Desktop:TGadget()
	Local gadget:TGadget=maxgui_driver.CreateGadget(GADGET_DESKTOP,"",0,0,0,0,Null,0)
	gadget.Gadget_Class=GADGET_DESKTOP
	Return gadget
End Function


etc...


the functions :
GadgetGetClasse(gadget) return the "type" of the gadget with a string "Desktop", "Window" , "ListBox" etc...
GadgetClasse(gadget) return the "Id" in Integer, associated with the creation
GADGET_DESKTOP =0 , GADGET_WINDOW =1 etc...

GadgetIsWindow(gadget) return true if the gadget is a window...

problem : building documention does not halt, but does not document the function GadgetGetClasse()
Is there a mistake in my code ?


Bobysait(Posted 2007) [#2]
here is an example showing the stuff

win1:TGadget	=	CreateWindow("win1"		,010,010,400,500,Null)
win2:TGadget	=	CreateWindow("win2"		,450,010,250,200,win1)
win3:TGadget	=	CreateWindow("win3"		,450,350,250,200,win1)

btn10:TGadget	=	CreateButton("btn10"	,010,20,100,20,win1)
btn11:TGadget	=	CreateButton("btn11"	,120,20,100,20,win1)
btn20:TGadget	=	CreateButton("btn20"	,010,20,100,20,win2)
btn21:TGadget	=	CreateButton("btn21"	,120,20,100,20,win2)
btn30:TGadget	=	CreateButton("btn30"	,010,20,100,20,win3)
btn31:TGadget	=	CreateButton("btn31"	,120,20,100,20,win3)
lbl10:TGadget	=	CreateLabel	("label 10"	,250,20,100,20,win1)
lbl20:TGadget	=	CreateLabel	("label 20"	,010,50,100,20,win2)
lbl30:TGadget	=	CreateLabel	("label 30"	,010,50,100,20,win3)

can:TGadget		=	CreateCanvas(10,60,380,420,win1)

Print "classe btn10    :"+GadgetGetClasse	(btn10)
Print "classe win1     :"+GadgetGetClasse	(win1)
Print "classe win2     :"+GadgetGetClasse	(win2)
Print "classe win3     :"+GadgetGetClasse	(win3)
Print "classe lbl10    :"+GadgetGetClasse	(lbl10)
Print "classe lbl20    :"+GadgetGetClasse	(lbl20)
Print "classe lbl30    :"+GadgetGetClasse	(lbl30)

While True
	WaitEvent 
	Select EventID()
		Case EVENT_WINDOWCLOSE
			End
	End Select
	SetGraphics CanvasGraphics(can)
	Cls
	DrawText " =====Gadget on active window ========="	,10,000
	DrawText " btn10:"+MaxGUI_GadgetActiveWindow(btn10)	,10,015
	DrawText " btn11:"+MaxGUI_GadgetActiveWindow(btn11)	,10,030
	DrawText " btn20:"+MaxGUI_GadgetActiveWindow(btn20)	,10,045
	DrawText " btn21:"+MaxGUI_GadgetActiveWindow(btn21)	,10,060
	DrawText " btn30:"+MaxGUI_GadgetActiveWindow(btn30)	,10,075
	DrawText " btn31:"+MaxGUI_GadgetActiveWindow(btn31)	,10,090
	DrawText " ========= gadget is Window ==========="	,10,120
	DrawText " btn10 :"+GadgetIsWindow(btn10)			,10,135
	DrawText " btn11 :"+GadgetIsWindow(btn11)			,10,150
	DrawText " btn20 :"+GadgetIsWindow(btn20)			,10,165
	DrawText " btn21 :"+GadgetIsWindow(btn21)			,10,180
	DrawText " btn30 :"+GadgetIsWindow(btn30)			,10,195
	DrawText " btn31 :"+GadgetIsWindow(btn31)			,10,210
	DrawText " win1  :"+GadgetIsWindow(win1)			,10,225
	DrawText " win2  :"+GadgetIsWindow(win2)			,10,240
	DrawText " win3  :"+GadgetIsWindow(win3)			,10,255
	DrawText " ========= gadget classe =============="	,10,280
	DrawText " win1  :"+GadgetGetClasse(win1)			,10,295
	DrawText " btn10 :"+GadgetGetClasse(btn10)			,10,310
	DrawText " lbl10 :"+GadgetGetClasse(lbl10)			,10,325
	DrawText " canvas:"+GadgetGetClasse(can)			,10,340
	Flip
Wend

Function MaxGUI_MainWindow:TGadget(gad:TGadget)
	Local parent:TGadget=GadgetGroup(gad)
	If parent=Null Return gad
	Return MaxGUI_MainWindow(parent)
End Function

Function MaxGUI_GetWindow:TGadget(gad:TGadget)
	If gad=Null Return Null
	If GadgetIsWindow(gad)	Return gad
	Return MaxGUI_GetWindow(GadgetGroup(gad))
End Function

Function MaxGUI_GadgetActiveWindow:Int(gad:TGadget)
	Local l_curgad:TGadget=ActiveGadget()
	Local l_CurWin:TGadget=MaxGUI_GetWindow(l_curgad)
	Local l_BtnWin:TGadget=MaxGUI_GetWindow(gad)
	If l_CurWin=l_BtnWin Return True
	Return False
End Function


If you made the modifications and rebuild maxGui, you'll see the function GadgetGetClasse not highlighted, but working fine


Bobysait(Posted 2007) [#3]
Now it runs. I modified 2 things:
-> removed the tab before "doc" and function 'GadgetGetClasse'
-> removed the "'" in the comment
I don't know which one debugged the doc but now it's ok.