diff options
Diffstat (limited to 'filters/kspread/qpro/libqpro/src/tablenames.cpp')
-rw-r--r-- | filters/kspread/qpro/libqpro/src/tablenames.cpp | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/filters/kspread/qpro/libqpro/src/tablenames.cpp b/filters/kspread/qpro/libqpro/src/tablenames.cpp new file mode 100644 index 000000000..4b9b7248c --- /dev/null +++ b/filters/kspread/qpro/libqpro/src/tablenames.cpp @@ -0,0 +1,72 @@ +#include <qpro/common.h> + +#include <string.h> + +#include "qpro/tablenames.h" + + +// ------------------------------------------------------------------ + +QpTableNames::QpTableNames() +{ + for( int lIdx=0; lIdx<cNameCnt; ++lIdx ) + { + cName[lIdx] = 0; + } +} + +QpTableNames::~QpTableNames() +{ + for( int lIdx=0; lIdx<cNameCnt; ++lIdx ) + { + delete [] cName[lIdx]; + cName[lIdx] = 0; + } +} + + +void +QpTableNames::name(unsigned pIdx, const char* pName) +{ + if(pIdx < cNameCnt) + { + delete [] cName[pIdx]; + cName[pIdx] = strcpy( new char[strlen(pName)+1], pName); + } +} + +const char* +QpTableNames::name(unsigned pIdx) +{ + char* lResult = 0; + + if(pIdx < cNameCnt) + { + if( (lResult = cName[pIdx]) == 0 ) + { + if( pIdx < 26 ) + { + lResult = cName[pIdx] = new char[2]; + lResult[0] = (char)('A' + pIdx); + lResult[1] = '\0'; + } + else + { + lResult = cName[pIdx] = new char[2]; + lResult[0] = (char)('A' -1 + pIdx / 26); + lResult[1] = (char)('A' + pIdx % 26); + lResult[2] = '\0'; + } + } + } + + return lResult; +} + + +int +QpTableNames::allocated(unsigned pIdx) +{ + return (pIdx >= cNameCnt ? 0 : (cName[pIdx] != 0)); +} + |