📄 wmlelm.c
字号:
return FALSE;
}
BOOL WML_SetColumns (pDECSTR pDecStr, pELEMENTTYPE pElement, pELEMENTTYPE* ppColumns)
{
UINT8 iCol=0;
/* Convert pColumns (text) to UINT8. The ELEMENTTYPE is removed
in the XML_ConvertToString function and the string is removed
in the ConvertNumber function. */
WCHAR* pwchColumns=XML_ConvertToString(ppColumns,pDecStr);
if (Convert_StringToUINT8(&pwchColumns,&iCol))
{
if (pElement->iType==Type_TABLE)
{
((TABLEELEMENT*)(pElement))->iColumns=iCol;
return TRUE;
}
}
return FALSE;
}
BOOL WML_SetContent (pDECSTR pDecStr, pELEMENTTYPE pElement, pELEMENTTYPE* ppContent)
{
if (pElement->iType==Type_META)
{
if (((METAELEMENT*)(pElement))->pchContent==NULL)
{
((METAELEMENT*)(pElement))->pchContent=XML_ConvertToString(ppContent,pDecStr);
return TRUE;
}
}
return FALSE;
}
BOOL WML_SetDomain (pDECSTR pDecStr, pELEMENTTYPE pElement, pELEMENTTYPE* ppDomain)
{
if (pElement->iType==Type_ACCESS)
{
if (((ACCESSELEMENT*)(pElement))->pchDomain==NULL)
{
((ACCESSELEMENT*)(pElement))->pchDomain=XML_ConvertToString(ppDomain,pDecStr);
return TRUE;
}
}
return FALSE;
}
BOOL WML_SetEmptyOK (pDECSTR pDecStr, pELEMENTTYPE pElement, pELEMENTTYPE* ppEmptyOK, BOOL fEmptyOK)
{
BOOL fResult=fEmptyOK;
if (pElement->iType==Type_INPUT)
{
if (*ppEmptyOK!=NULL)
{
WCHAR* pwchTemp=XML_ConvertToString(ppEmptyOK,pDecStr);
if (!Convert_StringToBool(&pwchTemp,&fResult))
{
/* Error in converion */
return FALSE;
}
}
((INPUTELEMENT*)(pElement))->fEmptyOK=fResult;
return TRUE;
}
return FALSE;
}
BOOL WML_SetEnctype (pDECSTR pDecStr, pELEMENTTYPE pElement, pELEMENTTYPE* ppEnctype)
{
/* The function returns FALSE if the document is not 1.2 or newer (greater) */
if ((pElement->iType==Type_GO)&&(pDecStr->iVersion>=WML_VERSION_1_2))
{
WCHAR* pwchTemp=XML_ConvertToString(ppEnctype,pDecStr);
((GOELEMENT*)(pElement))->iEnctype=WML_ConvertEnctype(&pwchTemp);
return TRUE;
}
return FALSE;
}
BOOL WML_SetFormat (pDECSTR pDecStr, pELEMENTTYPE pElement, pELEMENTTYPE* ppFormat)
{
if (pElement->iType==Type_INPUT)
{
if (*ppFormat != NULL)
{
/* Remove old input format */
if (((INPUTELEMENT*)(pElement))->pchFormat!=NULL)
{
DEALLOC(&(((INPUTELEMENT *)(pElement))->pchFormat));
}
((INPUTELEMENT*)(pElement))->pchFormat=XML_ConvertToString(ppFormat,pDecStr);
}
return TRUE;
}
return FALSE;
}
BOOL WML_SetForua (pDECSTR pDecStr, pELEMENTTYPE pElement, pELEMENTTYPE* ppForua, BOOL fForua)
{
BOOL fResult=fForua;
if (pElement->iType==Type_META)
{
if (*ppForua!=NULL)
{
WCHAR* pwchTemp=XML_ConvertToString(ppForua,pDecStr);
if (!Convert_StringToBool(&pwchTemp,&fResult))
{
/* Error in conversion */
return FALSE;
}
}
((METAELEMENT *)(pElement))->fForua=fResult;
return TRUE;
}
return FALSE;
}
BOOL WML_SetHeight (pDECSTR pDecStr, pELEMENTTYPE pElement, pELEMENTTYPE* ppHeight)
{
UINT16 iHeight=0;
BOOL fIsPercent=FALSE;
/* Convert height (text) to UINT16. The ELEMENTTYPE is removed
in the XML_ConvertToString function and the string is removed
in the Convert_StringToUINT16percent function. */
WCHAR* pwchHeight=XML_ConvertToString(ppHeight,pDecStr);
if (Convert_StringToUINT16percent(&pwchHeight,&iHeight,&fIsPercent))
{
if (pElement->iType==Type_IMG)
{
if (fIsPercent)
{
((IMGELEMENT *)(pElement))->iIsPercent|=HEIGHT_IS_PERCENT;
}
((IMGELEMENT *)(pElement))->iHeight=iHeight;
return TRUE;
}
}
return FALSE;
}
BOOL WML_SetHSpace (pDECSTR pDecStr, pELEMENTTYPE pElement, pELEMENTTYPE* ppHSpace)
{
UINT8 iHSpace=0;
BOOL fIsPercent=FALSE;
/* Convert hSpace (text) to UINT8. The ELEMENTTYPE is removed
in the XML_ConvertToString function and the string is removed
in the Convert_StringToUINT8percent function. */
WCHAR* pwchHSpace=XML_ConvertToString(ppHSpace,pDecStr);
if (Convert_StringToUINT8percent(&pwchHSpace,&iHSpace,&fIsPercent))
{
if (pElement->iType==Type_IMG)
{
if (fIsPercent)
{
((IMGELEMENT *)(pElement))->iIsPercent|=HSPACE_IS_PERCENT;
}
((IMGELEMENT *)(pElement))->iHSpace=iHSpace;
return TRUE;
}
}
return FALSE;
}
BOOL WML_SetHref (pDECSTR pDecStr, pELEMENTTYPE pElement, pELEMENTTYPE* ppHref)
{
pDecStr=pDecStr;
if (pElement->iType==Type_A)
{
if (((AELEMENT*)(pElement))->pHref==NULL)
{
((AELEMENT*)(pElement))->pHref=*ppHref;
*ppHref=NULL;
return TRUE;
}
}
else if (pElement->iType==Type_GO)
{
if (((GOELEMENT*)(pElement))->pHref==NULL)
{
((GOELEMENT*)(pElement))->pHref=*ppHref;
*ppHref=NULL;
return TRUE;
}
}
return FALSE;
}
BOOL WML_SetHttpEq (pDECSTR pDecStr, pELEMENTTYPE pElement, pELEMENTTYPE* ppHttpEq)
{
if (pElement->iType==Type_META)
{
if (((METAELEMENT*)(pElement))->pchHttpEquiv==NULL)
{
((METAELEMENT*)(pElement))->pchHttpEquiv=XML_ConvertToString(ppHttpEq,pDecStr);
return TRUE;
}
}
return FALSE;
}
BOOL WML_SetId (pDECSTR pDecStr, pELEMENTTYPE pElement, pELEMENTTYPE* ppId)
{
if (pElement->iType==Type_CARD)
{
if (((CARDELEMENT *)(pElement))->pchId==NULL)
{
((CARDELEMENT *)(pElement))->pchId=XML_ConvertToString(ppId,pDecStr);
return TRUE;
}
}
/* The attribute id is not used in other elements - delete */
XML_DeleteElementList(ppId,pDecStr);
return TRUE;
}
BOOL WML_SetIValue (pDECSTR pDecStr, pELEMENTTYPE pElement, pELEMENTTYPE* ppIValue)
{
pDecStr=pDecStr;
if (pElement->iType==Type_SELECT)
{
if (((SELECTELEMENT *)(pElement))->pIValue==NULL)
{
((SELECTELEMENT *)(pElement))->pIValue=*ppIValue;
*ppIValue=NULL;
return TRUE;
}
}
return FALSE;
}
BOOL WML_SetIName (pDECSTR pDecStr, pELEMENTTYPE pElement, pELEMENTTYPE* ppIName)
{
if (pElement->iType==Type_SELECT)
{
if (((SELECTELEMENT *)(pElement))->pchIName==NULL)
{
((SELECTELEMENT *)(pElement))->pchIName=XML_ConvertToString(ppIName,pDecStr);
return TRUE;
}
}
return FALSE;
}
BOOL WML_SetLabel (pDECSTR pDecStr, pELEMENTTYPE pElement, pELEMENTTYPE* ppLabel)
{
pDecStr=pDecStr;
if (pElement->iType==Type_DO)
{
if (((DOELEMENT *)(pElement))->pLabel==NULL)
{
((DOELEMENT *)(pElement))->pLabel=*ppLabel;
*ppLabel=NULL;
return TRUE;
}
}
return FALSE;
}
BOOL WML_SetLocalSrc (pDECSTR pDecStr, pELEMENTTYPE pElement, pELEMENTTYPE* ppLocalSrc)
{
pDecStr=pDecStr;
if (pElement->iType==Type_IMG)
{
if (((IMGELEMENT *)(pElement))->pLocalSrc==NULL)
{
((IMGELEMENT *)(pElement))->pLocalSrc=*ppLocalSrc;
*ppLocalSrc=NULL;
return TRUE;
}
}
return FALSE;
}
BOOL WML_SetMaxLength (pDECSTR pDecStr, pELEMENTTYPE pElement, pELEMENTTYPE* ppLength)
{
UINT32 iLength=0;
/* Convert length (text) to UINT32. The ELEMENTTYPE is removed
in the XML_ConvertToString function and the string is removed
in the Convert_StringToUINT32 function. */
WCHAR* pwchLength=XML_ConvertToString(ppLength,pDecStr);
if (Convert_StringToUINT32(&pwchLength,&iLength))
{
if (pElement->iType==Type_INPUT)
{
if (iLength>127)
{
((INPUTELEMENT *)(pElement))->iMaxLength=-1;
}
else
{
((INPUTELEMENT *)(pElement))->iMaxLength=(INT8)iLength;
}
return TRUE;
}
}
return FALSE;
}
BOOL WML_SetMethod (pDECSTR pDecStr, pELEMENTTYPE pElement, pELEMENTTYPE* ppMethod, enum MethodType iMethod)
{
enum MethodType iResult=iMethod;
if (pElement->iType==Type_GO)
{
if (*ppMethod!=NULL)
{
WCHAR* pwchTemp=XML_ConvertToString(ppMethod,pDecStr);
iResult=WML_ConvertMethod(pwchTemp);
}
((GOELEMENT *)(pElement))->iMethod=iResult;
return TRUE;
}
return FALSE;
}
BOOL WML_SetMode (pDECSTR pDecStr, pELEMENTTYPE pElement, pELEMENTTYPE* ppMode, enum WrapMode iMode)
{
enum WrapMode iResult=iMode;
if (pElement->iType==Type_P)
{
if (*ppMode!=NULL)
{
WCHAR* pwchTemp=XML_ConvertToString(ppMode,pDecStr);
iResult=WML_ConvertMode(pwchTemp);
}
((PELEMENT *)(pElement))->iMode=iResult;
return TRUE;
}
return FALSE;
}
BOOL WML_SetMultiple (pDECSTR pDecStr, pELEMENTTYPE pElement, pELEMENTTYPE* ppMultiple, BOOL fMultiple)
{
BOOL fResult=fMultiple;
if (pElement->iType==Type_SELECT)
{
if (*ppMultiple!=NULL)
{
WCHAR* pwchTemp=XML_ConvertToString(ppMultiple,pDecStr);
if (!Convert_StringToBool(&pwchTemp,&fResult))
{
/* Error in conversion */
return FALSE;
}
}
((SELECTELEMENT *)(pElement))->fMultiple=fResult;
return TRUE;
}
return FALSE;
}
BOOL WML_SetName (pDECSTR pDecStr, pELEMENTTYPE pElement, pELEMENTTYPE* ppName)
{
switch (pElement->iType)
{
case Type_DO:
if (((DOELEMENT *)(pElement))->pchName==NULL)
{
((DOELEMENT *)(pElement))->pchName=XML_ConvertToString(ppName,pDecStr);
return TRUE;
}
break;
case Type_INPUT:
if (((INPUTELEMENT *)(pElement))->pchName==NULL)
{
((INPUTELEMENT *)(pElement))->pchName=XML_ConvertToString(ppName,pDecStr);
return TRUE;
}
break;
case Type_META:
if (((METAELEMENT *)(pElement))->pchName==NULL)
{
((METAELEMENT *)(pElement))->pchName=XML_ConvertToString(ppName,pDecStr);
return TRUE;
}
break;
case Type_POSTFIELD:
if (((POSTFIELDELEMENT *)(pElement))->pName==NULL)
{
((POSTFIELDELEMENT *)(pElement))->pName=*ppName;
*ppName=NULL;
return TRUE;
}
break;
case Type_SELECT:
if (((SELECTELEMENT *)(pElement))->pchName==NULL)
{
((SELECTELEMENT *)(pElement))->pchName=XML_ConvertToString(ppName,pDecStr);
return TRUE;
}
break;
case Type_SETVAR:
if (((SETVARELEMENT *)(pElement))->pName==NULL)
{
((SETVARELEMENT *)(pElement))->pName=*ppName;
*ppName=NULL;
return TRUE;
}
break;
case Type_TIMER:
if (((TIMERELEMENT *)(pElement))->pchName==NULL)
{
((TIMERELEMENT *)(pElement))->pchName=XML_ConvertToString(ppName,pDecStr);
return TRUE;
}
break;
}
return FALSE;
}
BOOL WML_SetNewContext (pDECSTR pDecStr, pELEMENTTYPE pElement, pELEMENTTYPE* ppNewContext, BOOL fContext)
{
BOOL fResult=fContext;
if (pElement->iType==Type_CARD)
{
if (*ppNewContext!=NULL)
{
WCHAR* pwchTemp=XML_ConvertToString(ppNewContext,pDecStr);
if (!Convert_StringToBool(&pwchTemp,&fResult))
{
/* Error in conversion */
return FALSE;
}
}
((CARDELEMENT *)(pElement))->fNewContext=fResult;
return TRUE;
}
return FALSE;
}
BOOL WML_SetOnEntBack (pDECSTR pDecStr, pELEMENTTYPE pElement, pELEMENTTYPE* ppURL)
{
pDecStr=pDecStr;
if (pElement->iType==Type_CARD)
{
if (((CARDELEMENT *)(pElement))->pOnEntBack==NULL)
{
((CARDELEMENT *)(pElement))->pOnEntBack=*ppURL;
/* ppURL MUST NOT be set to NULL here. The pointer is also
used in the calling function. */
return TRUE;
}
}
else if (pElement->iType==Type_TEMPLATE)
{
if (((TEMPLATEELEMENT *)(pElement))->pOnEntBack==NULL)
{
((TEMPLATEELEMENT *)(pElement))->pOnEntBack=*ppURL;
/* ppURL MUST NOT be set to NULL here. The pointer is also
used in the calling function. */
return TRUE;
}
}
return FALSE;
}
BOOL WML_SetOnEntForw (pDECSTR pDecStr, pELEMENTTYPE pElement, pELEMENTTYPE* ppURL)
{
pDecStr=pDecStr;
if (pElement->iType==Type_CARD)
{
if (((CARDELEMENT *)(pElement))->pOnEntForw==NULL)
{
((CARDELEMENT *)(pElement))->pOnEntForw=*ppURL;
/* ppURL MUST NOT be set to NULL here. The pointer is also
used in the calling function. */
return TRUE;
}
}
else if (pElement->iType==Type_TEMPLATE)
{
if (((TEMPLATEELEMENT *)(pElement))->pOnEntForw==NULL)
{
((TEMPLATEELEMENT *)(pElement))->pOnEntForw=*ppURL;
/* ppURL MUST NOT be set to NULL here. The pointer is also
used in the calling function. */
return TRUE;
}
}
return FALSE;
}
BOOL WML_SetOnPick (pDECSTR pDecStr, pELEMENTTYPE pElement, pELEMENTTYPE* ppURL)
{
pDecStr=pDecStr;
if (pElement->iType==Type_OPTION)
{
if (((OPTIONELEMENT *)(pElement))->pOnpick==NULL)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -