DataWindow :

- in WinGetAreaProfiles aggiunta gestione degli split.
This commit is contained in:
SaraP
2026-01-28 15:43:21 +01:00
parent 68425bd133
commit b8b10497a7
4 changed files with 131 additions and 25 deletions
+23 -6
View File
@@ -493,7 +493,7 @@ _G.WinGetSashShape = WinGetSashShape
----------------------------------------------------------------------------------
local function WinGetAreaProfiles()
-- restituisce una lista dove ogni elemento è una tabella con le seguenti chiavi : GroupId = AREANBR corrispondente, SashId = eventuale sashnbr ( se telaio -1),
-- restituisce una lista dove ogni elemento è una tabella con le seguenti chiavi : GroupId = AREANBR corrispondente, EntId = sottoentità ( e.g. anta, area di split a griglia),
-- Profiles = lista dei profili dei pezzi di quell'area
-- recupero gli id geometrici delle aree richieste
@@ -506,22 +506,39 @@ local function WinGetAreaProfiles()
if vAreaIds[i] ~= GDB_ID.NULL then
local nAreaType = EgtGetInfo( vAreaIds[i], WIN_AREATYPE, 'i')
if nAreaType == WIN_AREATYPES.FRAME then
table.insert( tabProfiles, { GroupId = vAreaNbrs[i], SashId = -1, Profiles = EgtGetInfo( vAreaIds[i], WIN_AREA_PROFILES, 'vs')})
table.insert( tabProfiles, { GroupId = vAreaNbrs[i], EntId = -1, Profiles = EgtGetInfo( vAreaIds[i], WIN_AREA_PROFILES, 'vs')})
elseif nAreaType == WIN_AREATYPES.SASH then
table.insert( tabProfiles, { GroupId = vAreaNbrs[i], SashId = 1, Profiles = EgtGetInfo( vAreaIds[i], WIN_AREA_PROFILES, 'vs')})
table.insert( tabProfiles, { GroupId = vAreaNbrs[i], EntId = 1, Profiles = EgtGetInfo( vAreaIds[i], WIN_AREA_PROFILES, 'vs')})
elseif nAreaType == WIN_AREATYPES.SPLIT then
local nSplitLayId = EgtGetFirstNameInGroup( vAreaIds[i], WIN_SPLIT)
local nSplitType = EgtGetInfo( nSplitLayId, WIN_SPLITTYPE, 'i')
-- se french split devo recuperare le ante che definisce
if nSplitType == WIN_SPLITTYPES.FRENCH then
-- se french split devo recuperare le ante che definisce
local vSashes = EgtGetNameInGroup( vAreaIds[i], WIN_AREA .. '*')
for j = 1, #vSashes do
local nSashId = EgtGetInfo( vSashes[j], WIN_SASH_NBR, 'i')
table.insert( tabProfiles, { GroupId = vAreaNbrs[i], SashId = nSashId, Profiles = EgtGetInfo( vSashes[j], WIN_AREA_PROFILES, 'vs')})
table.insert( tabProfiles, { GroupId = vAreaNbrs[i], EntId = nSashId, Profiles = EgtGetInfo( vSashes[j], WIN_AREA_PROFILES, 'vs')})
end
-- se split standard recupero i profili
else
local bGridSplit = EgtGetInfo( vAreaIds[i], WIN_GRID_SPLIT, 'b') or false
if bGridSplit then
-- distinguo per ordine di split
local nOrder = 0
local vProfiles = EgtGetInfo( vAreaIds[i], WIN_AREA_PROFILES .. tostring( nOrder), 'vs')
while vProfiles do
table.insert( tabProfiles, { GroupId = vAreaNbrs[i], EntId = nOrder, Profiles = vProfiles})
nOrder = nOrder + 1
vProfiles = EgtGetInfo( vAreaIds[i], WIN_AREA_PROFILES .. tostring( nOrder), 'vs')
end
else
table.insert( tabProfiles, { GroupId = vAreaNbrs[i], EntId = -1, Profiles = EgtGetInfo( vAreaIds[i], WIN_AREA_PROFILES, 'vs')})
end
end
end
end
end
WDG['AREAPROFILES'] = tabProfiles