/*
* $Id$
*/
#include "hbclass.ch"
#pragma -kM+
MEMVAR session, server, get, post
//============================================================
CLASS UWMain
DATA aChilds INIT {}
METHOD Add()
METHOD Paint()
ENDCLASS
FUNC UWMainNew()
LOCAL oW := UWMain()
session["_uthis", "main"] := oW
RETURN oW
METHOD Paint() CLASS UWMain
UWrite('')
UWrite('')
UWrite('')
UWrite('
')
AEVAL(Self:aChilds, {|x| X:Paint()})
UWrite('')
RETURN Self
METHOD Add(oWidget) CLASS UWMain
AADD(Self:aChilds, oWidget)
RETURN Self
//============================================================
CLASS UWLayoutGrid
DATA aChilds INIT {{{}}} // {{{}}, {{}}} ; {{{}, {}}}
METHOD Add()
METHOD Paint()
ENDCLASS
FUNC UWLayoutGridNew()
LOCAL oW := UWLayoutGrid()
RETURN oW
METHOD Paint() CLASS UWLayoutGrid
LOCAL aRow, aCell
UWrite('
')
FOR EACH aRow IN Self:aChilds
UWrite('
')
FOR EACH aCell IN aRow
UWrite('
')
AEVAL(aCell, {|o| o:Paint()})
UWrite('
')
NEXT
UWrite('
')
NEXT
UWrite('
')
RETURN Self
METHOD Add(oWidget, nRow, nCol) CLASS UWLayoutGrid
LOCAL nI, nJ, aI
IF nRow > LEN(Self:aChilds)
FOR nI := LEN(Self:aChilds) + 1 TO nRow
aI := ARRAY(LEN(Self:aChilds[1]))
FOR nJ := 1 TO LEN(Self:aChilds[1])
aI[nJ] := {}
NEXT
AADD(Self:aChilds, aI)
NEXT
ENDIF
IF nCol > LEN(Self:aChilds[1])
FOR nI := LEN(Self:aChilds[1]) + 1 TO nCol
AEVAL(Self:aChilds, {|x| AADD(x, {})})
NEXT
ENDIF
AADD(Self:aChilds[nRow, nCol], oWidget)
RETURN Self
//============================================================
CLASS UWHtml
DATA cText
METHOD Paint()
ENDCLASS
FUNC UWHtmlNew(cText)
LOCAL oW := UWHtml()
oW:cText := cText
RETURN oW
METHOD Paint() CLASS UWHtml
UWrite(Self:cText)
RETURN Self
//============================================================
CLASS UWLabel
DATA cText
DATA cID
DATA cStyle
METHOD Paint()
ENDCLASS
FUNC UWLabelNew(cText, cID, cStyle)
LOCAL oW := UWLabel()
oW:cText := cText
SetWId(oW, cID)
oW:cStyle := cStyle
RETURN oW
METHOD Paint() CLASS UWLabel
UWrite('
' + ;
UHtmlEncode(Self:cText) + '')
RETURN Self
//============================================================
CLASS UWForm
DATA cAction
DATA cMethod INIT "POST"
DATA aChilds INIT {}
METHOD Add()
METHOD Paint()
ENDCLASS
FUNC UWFormNew(cAction)
LOCAL oW := UWForm()
oW:cAction := cAction
RETURN oW
METHOD Add(oWidget) CLASS UWForm
AADD(Self:aChilds, oWidget)
RETURN Self
METHOD Paint() CLASS UWForm
UWrite('')
RETURN Self
//============================================================
CLASS UWInput
DATA cName
DATA cValue
DATA cID
DATA cStyle
METHOD Paint()
ENDCLASS
FUNC UWInputNew(cName, cValue, cID, cStyle)
LOCAL oW := UWInput()
oW:cName := cName
oW:cValue := cValue
SetWId(oW, cID)
oW:cStyle := cStyle
RETURN oW
METHOD Paint() CLASS UWInput
UWrite('')
RETURN Self
//============================================================
CLASS UWPassword
DATA cName
DATA cValue
METHOD Paint()
ENDCLASS
FUNC UWPasswordNew(cName)
LOCAL oW := UWPassword()
oW:cName := cName
RETURN oW
METHOD Paint() CLASS UWPassword
UWrite('')
RETURN Self
//============================================================
CLASS UWSubmit
DATA cName
DATA cValue
METHOD Paint()
ENDCLASS
FUNC UWSubmitNew(cName, cValue)
LOCAL oW := UWSubmit()
oW:cName := cName
oW:cValue := cValue
RETURN oW
METHOD Paint() CLASS UWSubmit
UWrite('')
RETURN Self
//============================================================
CLASS UWSeparator
METHOD Paint()
ENDCLASS
FUNC UWSeparatorNew()
LOCAL oW := UWSeparator()
RETURN oW
METHOD Paint() CLASS UWSeparator
UWrite('')
RETURN Self
//============================================================
CLASS UWMenu
DATA aItems INIT {}
METHOD AddItem()
METHOD Paint()
ENDCLASS
FUNC UWMenuNew()
LOCAL oB := UWMenu()
RETURN oB
METHOD AddItem(cTitle, cLink) CLASS UWMenu
AADD(Self:aItems, {cTitle, cLink})
RETURN Self
METHOD Paint() CLASS UWMenu
LOCAL nI
UWrite('