#include "hbclass.ch" CREATE CLASS TLLImage FROM TObjectBase DATA cSource INIT "RUTA_LOGO" DATA cSourceType INIT "auto" DATA lKeepRatio INIT .T. DATA cFit INIT "contain" METHOD New( oParent ) CONSTRUCTOR METHOD Init( oParent ) METHOD Create() METHOD End() METHOD Save() METHOD Load( hData ) METHOD GenerarRenderizable( oContextoEjecucion ) HIDDEN: METHOD HashValueOrDefault( hHash, cKey, uDefault ) ENDCLASS METHOD New( oParent ) CLASS TLLImage ::Init( oParent ) RETURN Self METHOD Init( oParent ) CLASS TLLImage ::oParent := oParent ::cName := "Imagen" ::cType := "TImage" ::cSource := "RUTA_LOGO" ::cSourceType := "auto" ::lKeepRatio := .T. ::cFit := "contain" ::lBorderTop := .F. ::lBorderRight := .F. ::lBorderBottom := .F. ::lBorderLeft := .F. RETURN Self METHOD Create() CLASS TLLImage RETURN Self METHOD End() CLASS TLLImage ::oParent := NIL RETURN NIL METHOD Save() CLASS TLLImage LOCAL hData := ::Super:Save() hData[ "cSource" ] := ::cSource hData[ "cSourceType" ] := ::cSourceType hData[ "lKeepRatio" ] := ::lKeepRatio hData[ "cFit" ] := ::cFit RETURN hData METHOD Load( hData ) CLASS TLLImage ::Super:Load( hData ) IF HB_ISHASH( hData ) IF hb_HHasKey( hData, "cSource" ) ::cSource := hData[ "cSource" ] ENDIF IF hb_HHasKey( hData, "cSourceType" ) ::cSourceType := hData[ "cSourceType" ] ENDIF IF hb_HHasKey( hData, "lKeepRatio" ) ::lKeepRatio := ::ValorALogico( hData[ "lKeepRatio" ] ) ENDIF IF hb_HHasKey( hData, "cFit" ) ::cFit := hData[ "cFit" ] ENDIF ENDIF RETURN Self METHOD GenerarRenderizable( oContextoEjecucion ) CLASS TLLImage LOCAL uOrigen LOCAL hImagen LOCAL hPadding LOCAL cBackgroundColor LOCAL cBorderColor LOCAL cShadowColor LOCAL hRender LOCAL oImageUtil IF ! ::EsVisibleEnEjecucion( oContextoEjecucion ) RETURN NIL ENDIF uOrigen := ::cSource IF ! Empty( AllTrim( ::cSource ) ) uOrigen := oContextoEjecucion:EvaluarFormula( ::cSource ) ENDIF oImageUtil := TImageUtil():New() hImagen := oImageUtil:Resolver( uOrigen, ::cSourceType ) cBackgroundColor := ::EvaluarColor( oContextoEjecucion, ::cBackgroundColorFormula, ::cBackgroundColor ) cBorderColor := ::EvaluarColor( oContextoEjecucion, ::cBorderColorFormula, ::cBorderColor ) cShadowColor := ::EvaluarColor( oContextoEjecucion, ::cShadowColorFormula, ::cShadowColor ) hPadding := ::PaddingRenderizable() hRender := { ; "id" => ::cId, ; "tipo" => "imagen", ; "x" => ::nLeft, ; "y" => ::nTop, ; "ancho" => ::nWidth, ; "alto" => ::nHeight, ; "dataUri" => ::HashValueOrDefault( hImagen, "dataUri", "" ), ; "mime" => ::HashValueOrDefault( hImagen, "mime", "" ), ; "error" => ::HashValueOrDefault( hImagen, "error", "" ), ; "ajuste" => ::cFit, ; "mantenerProporcion" => ::lKeepRatio, ; "colorFondo" => cBackgroundColor, ; "colorBorde" => cBorderColor, ; "grosorBorde" => ::nBorderWidth, ; "bordeSuperior" => ::lBorderTop, ; "bordeDerecho" => ::lBorderRight, ; "bordeInferior" => ::lBorderBottom, ; "bordeIzquierdo" => ::lBorderLeft, ; "redondeo" => ::nRounded, ; "rotacion" => ::nRotation, ; "opacidad" => ::nOpacity, ; "sombraTamano" => ::nShadowSize, ; "sombraTransparencia" => ::nShadowTransparency, ; "sombraColor" => cShadowColor, ; "zIndex" => ::nZIndex } hRender[ "paddingSuperior" ] := hPadding[ "paddingSuperior" ] hRender[ "paddingDerecho" ] := hPadding[ "paddingDerecho" ] hRender[ "paddingInferior" ] := hPadding[ "paddingInferior" ] hRender[ "paddingIzquierdo" ] := hPadding[ "paddingIzquierdo" ] RETURN hRender METHOD HashValueOrDefault( hHash, cKey, uDefault ) CLASS TLLImage IF HB_ISHASH( hHash ) .AND. hb_HHasKey( hHash, cKey ) RETURN hHash[ cKey ] ENDIF RETURN uDefault