From 05b8da03173dbd73e384215c1d76e37fa9e40218 Mon Sep 17 00:00:00 2001 From: SaraP Date: Wed, 22 May 2024 11:45:29 +0200 Subject: [PATCH] EgwWindowLua : - uniformata info che collega le curve di outline a quelle del base outline. --- Profiles/WinLib/WinCalculate.lua | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/Profiles/WinLib/WinCalculate.lua b/Profiles/WinLib/WinCalculate.lua index f9a1065..14818d0 100644 --- a/Profiles/WinLib/WinCalculate.lua +++ b/Profiles/WinLib/WinCalculate.lua @@ -354,6 +354,7 @@ local function CalculateOutlineFromAreaOutline( nAreaId) local nOutlineId = EgtGetFirstInGroup( nOutlineLayerId) while nAreaOutlineId do EgtSetInfo( nAreaOutlineId, WIN_COPY, nOutlineId) + EgtSetInfo( nOutlineId, WIN_COPY, nAreaOutlineId) nAreaOutlineId = EgtGetNext( nAreaOutlineId) nOutlineId = EgtGetNext( nOutlineId) end @@ -367,6 +368,7 @@ local function CalculateOutlineFromAreaOutline( nAreaId) local nBaseSplitId = EgtGetFirstInGroup( nBaseSplitLayerId) local nSplitId = EgtGetFirstInGroup( nSplitLayerId) EgtSetInfo( nBaseSplitId, WIN_COPY, nSplitId) + EgtSetInfo( nSplitId, WIN_COPY, nBaseSplitId) end @@ -391,10 +393,9 @@ local function CalculateOutlineFromAreaOutline( nAreaId) end -- sistemo le info - EgtSetInfo( nOutlineId, WIN_SOU, nBaseOutlineId) + EgtSetInfo( nOutlineId, WIN_COPY, nBaseOutlineId) EgtSetInfo( nBaseOutlineId, WIN_COPY, nOutlineId) EgtRemoveInfo( nOutlineId, WIN_CHILD) - EgtRemoveInfo( nOutlineId, WIN_COPY) nBaseOutlineId = EgtGetNext( nBaseOutlineId) end @@ -410,6 +411,7 @@ local function CalculateOutlineFromAreaOutline( nAreaId) local nBaseSplitId = EgtGetFirstInGroup( nBaseSplitLayerId) local nSplitId = EgtGetFirstInGroup( nSplitLayerId) EgtSetInfo( nBaseSplitId, WIN_COPY, nSplitId) + EgtSetInfo( nSplitId, WIN_COPY, nBaseSplitId) EgtRemoveInfo( nSplitId, WIN_SOU) -- lo taglio con outline TrimSplitWithOutline( nSplitId) @@ -465,8 +467,8 @@ local function CalculateOutlineFromAreaOutline( nAreaId) -- sistemo le info EgtSetInfo( nBaseOutlineId, WIN_COPY, nOutlineId) - EgtSetInfo( nOutlineId, WIN_PROFILETYPE, sSashProfile) EgtSetInfo( nOutlineId, WIN_COPY, nBaseOutlineId) + EgtSetInfo( nOutlineId, WIN_PROFILETYPE, sSashProfile) -- verifico se outline e' segmento battente o ricevente che quindi deriva da split local bOnFrenchSplit = false @@ -523,6 +525,7 @@ local function CalculateOutlineFromAreaOutline( nAreaId) EgtSetStatus( nSplitLayerId, GDB_ST.OFF) local nSplitId = EgtGetFirstInGroup( nSplitLayerId) EgtSetInfo( nBaseSplitId, WIN_COPY, nSplitId) + EgtSetInfo( nSplitId, WIN_COPY, nBaseSplitId) EgtRemoveInfo( nSplitId, WIN_SOU) -- la taglio con outline TrimSplitWithOutline( nSplitId) @@ -551,7 +554,8 @@ local function CalculateOutlineFromAreaOutline( nAreaId) local nCopyId = EgtGetInfo( nSouId, WIN_COPY) local nOutlineId = EgtCopy( nCopyId, nOutlineLayerId) -- sistemo le info - EgtSetInfo( nBaseOutlineId, WIN_CHILD, nOutlineId) + EgtSetInfo( nBaseOutlineId, WIN_COPY, nOutlineId) + EgtSetInfo( nOutlineId, WIN_COPY, nBaseOutlineId) -- recupero a ritroso il profilo dell'elemento su cui poggia ( anta, split o frame) local nParentBaseOutlineId = nSouId @@ -715,11 +719,12 @@ local function GetProfileCtrIn( nProfileType, nPrevOutlineId, nOutlineId, nPrevP -- gestione particolare nel caso di split su split if nProfileType == WIN_PRF.SPLIT then -- verifico se il prev e' uno split - local nPrevSouId = nPrevOutlineId + -- recupero il base outline corrispondente e verifico se un suo sou รจ split + local nPrevSouId = EgtGetInfo( nPrevOutlineId, WIN_COPY, 'i') local nPrevSouParentId local sPrevSouParentId repeat - nPrevSouId = EgtGetInfo( nPrevSouId, WIN_SOU) + nPrevSouId = EgtGetInfo( nPrevSouId, WIN_SOU, 'i') if nPrevSouId then nPrevSouParentId = EgtGetParent( nPrevSouId) sPrevSouParentId = EgtGetName( nPrevSouParentId) @@ -934,10 +939,10 @@ local function CalcStartEndProfileType( nProfileType, nOutlineId, nStartProfileI end if nProfileType == WIN_PRF.SPLIT then - local nStartId = EgtGetInfo( nOutlineId, WIN_SPLIT_STARTINTERS, 'i') - local nEndId = EgtGetInfo( nOutlineId, WIN_SPLIT_ENDINTERS, 'i') - local sStartName = EgtGetName( nStartId) - local sEndName = EgtGetName( nEndId) + local nStartBaseOutlineId = EgtGetInfo( nOutlineId, WIN_SPLIT_STARTINTERS, 'i') + local nStartId = EgtGetInfo( nStartBaseOutlineId, WIN_COPY, 'i') + local nEndBaseOutlineId = EgtGetInfo( nOutlineId, WIN_SPLIT_ENDINTERS, 'i') + local nEndId = EgtGetInfo( nEndBaseOutlineId, WIN_COPY, 'i') sStartProfileType = GetProfileCtrIn( nProfileType, nStartId, nOutlineId, nStartProfileId) sEndProfileType = GetProfileCtrIn( nProfileType, nEndId, nOutlineId, nEndProfileId) sStartProfileType = WIN_OFST .. sStartProfileType