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.
255 lines
4.7 KiB
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
|