You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
kvirc/src/kvilib/ext/kvi_parameterlist.cpp

255 lines
4.7 KiB

//
// File : kvi_parameterlist.cpp
// Creation date : Tue Sep 12 2000 18:14:01 by Szymon Stefanek
//
// This file is part of the KVirc irc client distribution
// Copyright (C) 1999-2000 Szymon Stefanek (pragma at kvirc dot net)
//
// This program is FREE software. You can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your opinion) any later version.
//
// This program is distributed in the HOPE that it will be USEFUL,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
// See the GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, write to the Free Software Foundation,
// Inc. ,51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
//
#define __KVILIB__
#include "kvi_parameterlist.h"
KviParameterList::KviParameterList()
: KviPointerList<KviStr>()
{
setAutoDelete(true);
}
KviParameterList::KviParameterList(KviStr *p1)
: KviPointerList<KviStr>()
{
setAutoDelete(true);
append(p1);
}
KviParameterList::KviParameterList(KviStr *p1,KviStr *p2)
: KviPointerList<KviStr>()
{
setAutoDelete(true);
append(p1);
append(p2);
}
KviParameterList::KviParameterList(KviStr *p1,KviStr *p2,KviStr *p3)
: KviPointerList<KviStr>()
{
setAutoDelete(true);
append(p1);
append(p2);
append(p3);
}
KviParameterList::KviParameterList(KviStr *p1,KviStr *p2,KviStr *p3,KviStr *p4)
: KviPointerList<KviStr>()
{
setAutoDelete(true);
append(p1);
append(p2);
append(p3);
append(p4);
}
KviParameterList::KviParameterList(KviStr *p1,KviStr *p2,KviStr *p3,KviStr *p4,KviStr *p5)
: KviPointerList<KviStr>()
{
setAutoDelete(true);
append(p1);
append(p2);
append(p3);
append(p4);
append(p5);
}
KviParameterList::KviParameterList(KviStr *p1,KviStr *p2,KviStr *p3,KviStr *p4,KviStr *p5,KviStr *p6)
: KviPointerList<KviStr>()
{
setAutoDelete(true);
append(p1);
append(p2);
append(p3);
append(p4);
append(p5);
append(p6);
}
KviParameterList::KviParameterList(KviStr *p1,KviStr *p2,KviStr *p3,KviStr *p4,KviStr *p5,KviStr *p6,KviStr *p7)
: KviPointerList<KviStr>()
{
setAutoDelete(true);
append(p1);
append(p2);
append(p3);
append(p4);
append(p5);
append(p6);
append(p7);
}
KviParameterList::KviParameterList(const char *paramBuffer)
: KviPointerList<KviStr>()
{
setAutoDelete(true);
while(*paramBuffer)
{
KviStr * pStr = new KviStr();
paramBuffer = kvi_extractToken(*pStr,paramBuffer);
append(pStr);
}
}
KviParameterList::~KviParameterList()
{
}
KviStr * KviParameterList::safeFirst()
{
KviStr * f= first();
return f ? f : &m_szEmpty;
}
KviStr * KviParameterList::safeNext()
{
KviStr * f = next();
return f ? f : &m_szEmpty;
}
bool KviParameterList::getBool()
{
KviStr * par = current();
(void)next();
if(par)
{
if(kvi_strEqualCS(par->ptr(),"0"))return false;
}
return true; // default
}
int KviParameterList::getInt(bool * bOk)
{
KviStr * par = current();
(void)next();
if(par)
{
return par->toInt(bOk);
}
if(bOk)*bOk = false;
return 0;
}
unsigned int KviParameterList::getUInt(bool * bOk)
{
KviStr * par = current();
(void)next();
if(par)
{
return par->toUInt(bOk);
}
if(bOk)*bOk = false;
return 0;
}
TQRect KviParameterList::getRect(bool * bOk)
{
int val[4];
for(int i=0;i<4;i++)
{
KviStr * pszv = current();
(void)next();
if(!pszv)
{
if(bOk)*bOk = false;
return TQRect(); // invalid
}
bool mybOk;
val[i] = pszv->toInt(&mybOk);
if(!mybOk)
{
if(bOk)*bOk = false;
return TQRect(); // invalid
}
}
if(bOk)*bOk = true;
return TQRect(val[0],val[1],val[2],val[3]);
}
TQPoint KviParameterList::getPoint(bool * bOk)
{
int val[2];
for(int i=0;i<2;i++)
{
KviStr * pszv = current();
(void)next();
if(!pszv)
{
if(bOk)*bOk = false;
return TQPoint(); // invalid
}
bool mybOk;
val[i] = pszv->toInt(&mybOk);
if(!mybOk)
{
if(bOk)*bOk = false;
return TQPoint(); // invalid
}
}
if(bOk)*bOk = true;
return TQPoint(val[0],val[1]);
}
TQSize KviParameterList::getSize(bool * bOk)
{
int val[2];
for(int i=0;i<2;i++)
{
KviStr * pszv = current();
(void)next();
if(!pszv)
{
if(bOk)*bOk = false;
return TQSize(); // invalid
}
bool mybOk;
val[i] = pszv->toInt(&mybOk);
if(!mybOk)
{
if(bOk)*bOk = false;
return TQSize(); // invalid
}
}
if(bOk)*bOk = true;
return TQSize(val[0],val[1]);
}
//#ifdef COMPILE_ON_WINDOWS
//
// #include "kvi_malloc.h"
//
// void * KviParameterList::operator new(size_t tSize)
// {
// return kvi_malloc(tSize);
// }
//
// void KviParameterList::operator delete(void * p)
// {
// kvi_free(p);
// }
//#endif