filters

tablenames.cc

00001 #include <qpro/common.h>
00002 
00003 #include <string.h>
00004 
00005 #include "qpro/tablenames.h"
00006 
00007 
00008 // ------------------------------------------------------------------
00009 
00010 QpTableNames::QpTableNames()
00011 {
00012    for( int lIdx=0; lIdx<cNameCnt; ++lIdx )
00013    {
00014       cName[lIdx] = 0;
00015    }
00016 }
00017 
00018 QpTableNames::~QpTableNames()
00019 {
00020    for( int lIdx=0; lIdx<cNameCnt; ++lIdx )
00021    {
00022       delete [] cName[lIdx];
00023       cName[lIdx] = 0;
00024    }
00025 }
00026 
00027  
00028 void
00029 QpTableNames::name(unsigned pIdx, const char* pName)
00030 {
00031    if(pIdx < cNameCnt)
00032    {
00033       delete [] cName[pIdx];
00034       cName[pIdx] = strcpy( new char[strlen(pName)+1], pName);
00035    }
00036 }
00037 
00038 const char*
00039 QpTableNames::name(unsigned pIdx)
00040 {
00041    char* lResult = 0;
00042 
00043    if(pIdx < cNameCnt)
00044    {
00045       if( (lResult = cName[pIdx]) == 0 )
00046       {
00047          if( pIdx < 26 )
00048          {
00049             lResult = cName[pIdx] = new char[2];
00050             lResult[0] = (char)('A' + pIdx);
00051             lResult[1] = '\0';
00052          }
00053          else
00054          {
00055             lResult = cName[pIdx] = new char[2];
00056             lResult[0] = (char)('A' -1 + pIdx / 26);
00057             lResult[1] = (char)('A' + pIdx % 26);
00058             lResult[2] = '\0';
00059          }
00060       }
00061    }
00062 
00063    return lResult;
00064 }
00065 
00066  
00067 int
00068 QpTableNames::allocated(unsigned pIdx)
00069 {
00070    return (pIdx >= cNameCnt ? 0 : (cName[pIdx] != 0));
00071 }
00072 
KDE Home | KDE Accessibility Home | Description of Access Keys