DataWindow :

- modificata funzione WinGetSashShape per ricevere più aree.
This commit is contained in:
SaraP
2025-10-23 10:59:44 +02:00
parent f04367e529
commit 5d9fad7e3a
+24 -11
View File
@@ -343,15 +343,28 @@ _G.WinGetGlassesList = WinGetGlassesList
----------------------------------------------------------------------------------
local function WinGetSashShape()
-- recupero l'area richiesta
-- recupero i numeri delle aree richieste
local vAreaNbrs = GetVariableList( 'AREANBR')
-- inizializzo lista di aree richieste
local vAreaIds = {}
for i = 1, #vAreaNbrs do
vAreaIds[i] = GDB_ID.NULL
end
-- recupero le aree richieste
local vStack = { EgtGetFirstNameInGroup( GDB_ID.ROOT, WIN_AREA .. '*')}
local nAreaId
local i = 1
while vStack[i] do
local nAreaNbr = EgtGetInfo( vStack[i], WIN_AREA_NBR, 'i') or -1
if nAreaNbr == WDG.AREANBR then
nAreaId = vStack[i]
break
-- se anta o french split, verifico se è area richiesta
local nType = EgtGetInfo( vStack[i], WIN_AREATYPE, 'i')
local nSplitType = EgtGetInfo( EgtGetFirstNameInGroup( vStack[i], WIN_BASESPLIT) or GDB_ID.NULL, WIN_SPLITTYPE, 'i') or WIN_SPLITTYPES.NULL
if nType == WIN_AREATYPES.SASH or nSplitType == WIN_SPLITTYPES.FRENCH then
local nAreaNbr = EgtGetInfo( vStack[i], WIN_AREA_NBR, 'i') or -1
for j = 1, #vAreaNbrs do
if nAreaNbr == vAreaNbrs[j] then
vAreaIds[j] = vStack[i]
break
end
end
else
-- ricerco nelle sue sottoaree
local vChildren = EgtGetNameInGroup( vStack[i], WIN_AREA .. '*')
@@ -360,11 +373,11 @@ local function WinGetSashShape()
i = i + 1
end
-- se non l'ho trovata errore
if not nAreaId then
return
-- ricavo le forme
for i = 1, #vAreaIds do
if vAreaIds[i] ~= GDB_ID.NULL then
WDG['SASHSHAPE' .. tostring( i)] = EgtGetInfo( vAreaIds[i], WIN_SASH_SHAPE)
end
end
WDG.SASHSHAPE = EgtGetInfo( nAreaId, WIN_SASH_SHAPE)
end
_G.WinGetSashShape = WinGetSashShape