Skip to content

Commit

Permalink
#DECLARE & var - part 6
Browse files Browse the repository at this point in the history
  • Loading branch information
vdelachaux committed Sep 30, 2024
1 parent ca7f115 commit 5e91b5d
Show file tree
Hide file tree
Showing 9 changed files with 240 additions and 435 deletions.
68 changes: 0 additions & 68 deletions Project/Sources/Methods/Compiler_SVG_Public.4dm
Original file line number Diff line number Diff line change
Expand Up @@ -9,51 +9,6 @@
//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
If (False:C215)

//SVG_ADD_NAME_SPACE
//_O_C_TEXT(SVG_ADD_NAMESPACE; $1)
//_O_C_TEXT(SVG_ADD_NAMESPACE; $2)
//_O_C_TEXT(SVG_ADD_NAMESPACE; $3)

//SVG_Define_clip_Path
//_O_C_TEXT(SVG_Define_clip_Path; $0)
//_O_C_TEXT(SVG_Define_clip_Path; $1)
//_O_C_TEXT(SVG_Define_clip_Path; $2)

//SVG_Define_solidColor
//_O_C_TEXT(SVG_Define_solidColor; $0)
//_O_C_TEXT(SVG_Define_solidColor; $1)
//_O_C_TEXT(SVG_Define_solidColor; $2)
//_O_C_TEXT(SVG_Define_solidColor; $3)
//_O_C_LONGINT(SVG_Define_solidColor; $4)

//SVG_Define_filter
//_O_C_TEXT(SVG_Define_filter; $0)
//_O_C_TEXT(SVG_Define_filter; $1)
//_O_C_TEXT(SVG_Define_filter; $2)
//_O_C_REAL(SVG_Define_filter; $3)
//_O_C_REAL(SVG_Define_filter; $4)
//_O_C_REAL(SVG_Define_filter; $5)
//_O_C_REAL(SVG_Define_filter; $6)
//_O_C_TEXT(SVG_Define_filter; $7)
//_O_C_TEXT(SVG_Define_filter; $8)

//SVG_Define_shadow
//_O_C_TEXT(SVG_Define_shadow; $0)
//_O_C_TEXT(SVG_Define_shadow; $1)
//_O_C_TEXT(SVG_Define_shadow; $2)
//_O_C_LONGINT(SVG_Define_shadow; $3)
//_O_C_LONGINT(SVG_Define_shadow; $4)
//_O_C_LONGINT(SVG_Define_shadow; $5)

//SVG_Define_gradient_l_by_arrays
_O_C_TEXT:C284(SVG_Define_gradient_l_by_arrays; $1)
_O_C_TEXT:C284(SVG_Define_gradient_l_by_arrays; $2)
_O_C_LONGINT:C283(SVG_Define_gradient_l_by_arrays; $3)
_O_C_LONGINT:C283(SVG_Define_gradient_l_by_arrays; $4)
_O_C_LONGINT:C283(SVG_Define_gradient_l_by_arrays; $5)
_O_C_LONGINT:C283(SVG_Define_gradient_l_by_arrays; $6)
_O_C_TEXT:C284(SVG_Define_gradient_l_by_arrays; ${7})

//SVG_Define_gradient_r_by_arrays
_O_C_TEXT:C284(SVG_Define_gradient_r_by_arrays; $1)
_O_C_TEXT:C284(SVG_Define_gradient_r_by_arrays; $2)
Expand All @@ -64,13 +19,6 @@ If (False:C215)
_O_C_LONGINT:C283(SVG_Define_gradient_r_by_arrays; $7)
_O_C_TEXT:C284(SVG_Define_gradient_r_by_arrays; ${8})

//SVG_Define_image
_O_C_TEXT:C284(SVG_Define_image; $0)
_O_C_TEXT:C284(SVG_Define_image; $1)
_O_C_TEXT:C284(SVG_Define_image; $2)
_O_C_PICTURE:C286(SVG_Define_image; $3)
_O_C_TEXT:C284(SVG_Define_image; $4)

//SVG_Define_linear_gradient
_O_C_TEXT:C284(SVG_Define_linear_gradient; $0)
_O_C_TEXT:C284(SVG_Define_linear_gradient; $1)
Expand Down Expand Up @@ -155,13 +103,6 @@ If (False:C215)
_O_C_REAL:C285(SVG_Define_symbol_from_file; $7)
_O_C_TEXT:C284(SVG_Define_symbol_from_file; $8)

//SVG_DELETE_OBJECT
_O_C_TEXT:C284(SVG_DELETE_OBJECT; $1)

//SVG_Get_root_reference
_O_C_TEXT:C284(SVG_Get_root_reference; $0)
_O_C_TEXT:C284(SVG_Get_root_reference; $1)

//SVG_New_group
_O_C_TEXT:C284(SVG_New_group; $0)
_O_C_TEXT:C284(SVG_New_group; $1)
Expand All @@ -183,15 +124,6 @@ If (False:C215)
_O_C_TEXT:C284(SVG_SET_PATTERN_CONTENT_UNITS; $1)
_O_C_TEXT:C284(SVG_SET_PATTERN_CONTENT_UNITS; $2)

//SVG_SET_PATTERN_UNITS
_O_C_TEXT:C284(SVG_SET_PATTERN_UNITS; $1)
_O_C_TEXT:C284(SVG_SET_PATTERN_UNITS; $2)

//SVG_Set_title
_O_C_TEXT:C284(SVG_Set_title; $0)
_O_C_TEXT:C284(SVG_Set_title; $1)
_O_C_TEXT:C284(SVG_Set_title; $2)

//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
End if

Expand Down
2 changes: 1 addition & 1 deletion Project/Sources/Methods/SVG_CLEAR.4dm
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ var $Lon_x : Integer

Compiler_SVG

$kTxt_currentMethod:="SVG_CLEAR" // Nom methode courante
$kTxt_currentMethod:="SVG_CLEAR"

If (Count parameters:C259>=1)

Expand Down
68 changes: 25 additions & 43 deletions Project/Sources/Methods/SVG_DELETE_OBJECT.4dm
Original file line number Diff line number Diff line change
@@ -1,59 +1,41 @@
//%attributes = {"invisible":true,"shared":true,"preemptive":"capable"}
// ----------------------------------------------------
// Method : SVG_DELETE_OBJECT
// Created 16/04/10 by Vincent de Lachaux
// ----------------------------------------------------
// Description
//
// ----------------------------------------------------
// Declarations
C_TEXT:C284($1)
// ----------------------------------------------------
// Method : SVG_DELETE_OBJECT
// Created 16/04/10 by Vincent de Lachaux
// ----------------------------------------------------
#DECLARE($svgObject : Text)

C_LONGINT:C283($Lon_parameters)
C_TEXT:C284($Dom_root;$kTxt_currentMethod;$Txt_svgObject)
var $CURRENT_METHOD; $root : Text

If (False:C215)
C_TEXT:C284(SVG_DELETE_OBJECT ;$1)
End if

// ----------------------------------------------------
// Initialisations

Compiler_SVG
Compiler_SVG

$Lon_parameters:=Count parameters:C259
$CURRENT_METHOD:="SVG_DELETE_OBJECT"

$kTxt_currentMethod:="SVG_DELETE_OBJECT" //Nom methode courante

// ----------------------------------------------------
If (Count parameters:C259<1)

ASSERT:C1129(Component_putError(8850; $CURRENT_METHOD)) // Parameters Missing

return

End if

If ($Lon_parameters>=1)
If (Asserted:C1132(xml_referenceValid($svgObject); Localized string:C991("error_badReference")))

$Txt_svgObject:=$1
Component_errorHandler("init"; $CURRENT_METHOD)

If (Asserted:C1132(xml_referenceValid ($Txt_svgObject);Get localized string:C991("error_badReference")))

Component_errorHandler ("init";$kTxt_currentMethod)
$root:=DOM Get root XML element:C1053($svgObject)

If (Bool:C1537(OK))\
&& (xml_referenceValid($root))

$Dom_root:=DOM Get root XML element:C1053($Txt_svgObject)
DOM REMOVE XML ELEMENT:C869($svgObject)

If (OK=1)\
& ($Dom_root#"0000000000000000")

DOM REMOVE XML ELEMENT:C869($Txt_svgObject)

Else

ASSERT:C1129(Component_putError (8852;$kTxt_currentMethod)) //The reference is not a svg object

End if
Else

ASSERT:C1129(Component_errorHandler ("deinit"))
ASSERT:C1129(Component_putError(8852; $CURRENT_METHOD)) // The reference is not a svg object

End if

Else

ASSERT:C1129(Component_putError (8850;$kTxt_currentMethod)) //Parameters Missing
ASSERT:C1129(Component_errorHandler("deinit"))

End if
162 changes: 67 additions & 95 deletions Project/Sources/Methods/SVG_Define_gradient_l_by_arrays.4dm
Original file line number Diff line number Diff line change
Expand Up @@ -4,124 +4,96 @@
// Framework SVgg
// Author : Gérald Czwiklinski
//-----------------------------------------------------------------------------------------------------
_O_C_TEXT:C284($1)
_O_C_TEXT:C284($2)
_O_C_LONGINT:C283($3)
_O_C_LONGINT:C283($4)
_O_C_LONGINT:C283($5)
_O_C_LONGINT:C283($6)
_O_C_TEXT:C284(${7})
#DECLARE($svgObject : Text; $id : Text; $x1 : Integer; $y1 : Integer; $x2 : Integer; $y2 : Integer; ... : Text)

_O_C_LONGINT:C283($Lon_i; $Lon_offset; $Lon_opacity; $Lon_parameters; $Lon_step; $Lon_x)
_O_C_LONGINT:C283($Lon_x1; $Lon_x2; $Lon_y1; $Lon_y2)
_O_C_TEXT:C284($kTxt_currentMethod; $Txt_color; $Txt_colorName; $Txt_defsID; $Txt_gradientID; $Txt_gradientName)
_O_C_TEXT:C284($Txt_rootReference; $Txt_Stop; $Txt_svgObject)

If (False:C215)
_O_C_TEXT:C284(SVG_Define_gradient_l_by_arrays; $1)
_O_C_TEXT:C284(SVG_Define_gradient_l_by_arrays; $2)
_O_C_LONGINT:C283(SVG_Define_gradient_l_by_arrays; $3)
_O_C_LONGINT:C283(SVG_Define_gradient_l_by_arrays; $4)
_O_C_LONGINT:C283(SVG_Define_gradient_l_by_arrays; $5)
_O_C_LONGINT:C283(SVG_Define_gradient_l_by_arrays; $6)
_O_C_TEXT:C284(SVG_Define_gradient_l_by_arrays; ${7})
End if
var $color; $colorName; $CURRENT_METHOD; $defs; $node; $stop : Text
var $countParamaters; $i; $offset; $opacity; $pos; $step : Integer

Compiler_SVG

$Lon_parameters:=Count parameters:C259
$kTxt_currentMethod:=Current method name:C684
$CURRENT_METHOD:="SVG_Define_gradient_l_by_arrays"
$countParamaters:=Count parameters:C259

If ($Lon_parameters>=6)
If ($countParamaters<6)

$Txt_svgObject:=$1
$Txt_gradientName:=$2
$Lon_x1:=$3
$Lon_y1:=$4
$Lon_x2:=$5
$Lon_y2:=$6
ASSERT:C1129(Component_putError(8850; $CURRENT_METHOD)) // Parameters Missing

Component_errorHandler("init"; $kTxt_currentMethod)
return

$Txt_defsID:=getDefs($Txt_svgObject)
End if

Component_errorHandler("init"; $CURRENT_METHOD)

$defs:=getDefs($svgObject)

If (Bool:C1537(OK))

If (OK=1)

$Txt_gradientID:=DOM Find XML element by ID:C1010($Txt_defsID; $Txt_gradientName)

If (OK=1) //Delete the existing gradient

DOM REMOVE XML ELEMENT:C869($Txt_gradientID)

End if
$node:=DOM Find XML element by ID:C1010($defs; $id)

If (Bool:C1537(OK)) // Delete the existing gradient

//Create the gradient {
$Txt_gradientID:=DOM Create XML element:C865($Txt_defsID; "linearGradient"; \
"id"; $Txt_gradientName; \
"gradientUnits"; "userSpaceOnUse")
DOM SET XML ATTRIBUTE:C866($Txt_gradientID; \
"x1"; $Lon_x1; \
"y1"; $Lon_y1; \
"x2"; $Lon_x2; \
"y2"; $Lon_y2)
//}
DOM REMOVE XML ELEMENT:C869($node)

End if

$Lon_step:=100\($Lon_parameters-7)
// Create the gradient
$node:=DOM Create XML element:C865($defs; "linearGradient"; \
"id"; $id; \
"gradientUnits"; "userSpaceOnUse")

For ($Lon_i; 7; $Lon_parameters; 1)

$Txt_color:=""
$Lon_opacity:=-1
DOM SET XML ATTRIBUTE:C866($node; \
"x1"; $x1; \
"y1"; $y1; \
"x2"; $x2; \
"y2"; $y2)

End if

$step:=100\($countParamaters-7)

For ($i; 7; $countParamaters; 1)

$color:=${$i}
$opacity:=-1

$pos:=Position:C15(":"; $color)

If ($pos>0)

$Txt_color:=${$Lon_i}
$opacity:=Num:C11(Substring:C12($color; $pos+1))
$color:=Lowercase:C14(Substring:C12($color; 1; $pos-1))

$Lon_x:=Position:C15(":"; $Txt_color)
End if

If (Length:C16($color)>0)

If ($Lon_x>0)
If ($colorName#"url(@")
$Lon_opacity:=Num:C11(Substring:C12($Txt_color; $Lon_x+1))
$Txt_color:=Lowercase:C14(Substring:C12($Txt_color; 1; $Lon_x-1))
$colorName:=Lowercase:C14($colorName)
End if
If (Length:C16($Txt_color)>0)

If ($Txt_colorName#"url(@")
$Txt_colorName:=Lowercase:C14($Txt_colorName)
End if
$Txt_Stop:=DOM Create XML element:C865($Txt_gradientID; "stop"; \
"offset"; String:C10($Lon_offset)+"%"; \
"stop-color"; $Txt_color)
If ($Lon_opacity#-1)\
& (OK=1)
DOM SET XML ATTRIBUTE:C866($Txt_Stop; \
"stop-opacity"; $Lon_opacity)
End if
End if
$stop:=DOM Create XML element:C865($node; "stop"; \
"offset"; String:C10($offset)+"%"; \
"stop-color"; $color)
If (OK=1)
$Lon_offset:=$Lon_offset+$Lon_step
If (Bool:C1537(OK)) && ($opacity#-1)
Else
$Lon_i:=MAXLONG:K35:2-1
DOM SET XML ATTRIBUTE:C866($stop; \
"stop-opacity"; $opacity)
End if
End for
ASSERT:C1129(Component_errorHandler("deinit"))
Else
ASSERT:C1129(Component_putError(8850; $kTxt_currentMethod)) //Parameters Missing
End if
End if
If (Bool:C1537(OK))
$offset+=$step
Else
break
End if
End for
ASSERT:C1129(Component_errorHandler("deinit"))
Loading

0 comments on commit 5e91b5d

Please sign in to comment.