Files
Include/EGkGdbFunct.h
Dario Sassi 00f5e38f61 Include :
- aggiornamento prototipi e costanti (per Mark).
2024-08-22 09:09:18 +02:00

86 lines
2.7 KiB
C

//----------------------------------------------------------------------------
// EgalTech 2014-2014
//----------------------------------------------------------------------------
// File : EGkGdbFunct.h Data : 13.03.14 Versione : 1.5c6
// Contenuto : Funzioni generali per DB geometrico.
//
//
//
// Modifiche : 13.03.14 DS Creazione modulo.
//
//
//----------------------------------------------------------------------------
#pragma once
#include "/EgtDev/Include/EGkGdbConst.h"
//----------------- Funzioni per livello di oggetti ----------------------------
// per combinare il livello del padre con il proprio
inline int
CalcLevel( int nObjLevel, int nParentLevel)
{
// se oggetto Temp tale rimane
if ( nObjLevel == GDB_LV_TEMP)
return GDB_LV_TEMP ;
// altrimenti può dipendere dal padre
return (( nParentLevel == GDB_LV_USER) ? nObjLevel : nParentLevel) ;
}
//----------------- Funzioni per modo di oggetti -------------------------------
// per combinare il modo del padre con il proprio
inline int
CalcMode( int nObjMode, int nParentMode)
{
// se oggetto HIDDEN tale rimane
if ( nObjMode == GDB_MD_HIDDEN)
return GDB_MD_HIDDEN ;
// altrimenti può dipendere dal padre
return (( nParentMode == GDB_MD_STD) ? nObjMode : nParentMode) ;
}
//----------------- Funzioni per stato di oggetti ------------------------------
// per combinare lo stato del padre con il proprio
inline int
CalcStatus( int nObjStat, int nParentStat)
{
// se oggetto OFF tale rimane
if ( nObjStat == GDB_ST_OFF)
return GDB_ST_OFF ;
// altrimenti può dipendere dal padre
return (( nParentStat == GDB_ST_ON) ? nObjStat : nParentStat) ;
}
//------------------------------------------------------------------------------
// per combinare lo stato con il modo
inline int
AdjustStatusWithMode( int nObjStat, int nObjMode)
{
// se oggetto OFF tale rimane
if ( nObjStat == GDB_ST_OFF)
return GDB_ST_OFF ;
// altrimenti può dipendere dal modo
switch ( nObjMode) {
default : /* GDB_MD_STD */ return nObjStat ;
case GDB_MD_LOCKED : return GDB_ST_ON ;
case GDB_MD_HIDDEN : return GDB_ST_OFF ;
}
}
//----------------- Funzioni per marcatura di oggetti --------------------------
// per combinare la marcatura del padre con la propria
inline int
CalcMark( int nObjMark, int nParentMark)
{
// se oggetto e padre OFF tale rimane
if ( nObjMark == GDB_MK_OFF && nParentMark == GDB_MK_OFF)
return GDB_MK_OFF ;
return ( nParentMark != GDB_MK_OFF ? nParentMark : nObjMark) ;
}
// ovviamente la marcatura si combina con lo stato, nel senso che un oggetto
// non visibile non viene nemmeno marcato