// // Copyright 2006 Jim Bublitz // Earlier copyrights 1998 - 2005 Jim Bublitz and/or Phil Thompson // may also apply // Generated by preSip // module tdecore version KDE 3.5.3 // This software 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 option) any later version. // // This software 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 library; see the file COPYING. // If not, write to the Free Software Foundation, Inc., // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. class TDECmdLineOptions { %TypeHeaderCode #include extern char **pyArgvToC(PyObject *argvlist,int *argcp); extern void updatePyArgv(PyObject *argvlist,int argc,char **argv); %End public: const char* name; const char* description; %If ( KDE_3_5_3 - ) // def is a Python keyword - use /PyName=/ //pykwd const char* def; %End }; // class TDECmdLineOptions class TDECmdLineArgs { %TypeHeaderCode #include #include %End public: %If ( KDE_3_2_0 - ) static void init (SIP_PYLIST, const char*, const char*, const char*, const char*, bool = 0) [void (int, char**, const char*, const char*, const char*, const char*, bool = 0)]; %MethodCode //takes _argc | (int) | _argv | (char) | _appname | (char) | programName | (char) | _description | (char) | _version | (char) | noKApp | (bool = 0) int argc, nargc; char **argv; // Convert the list. if ((argv = pyArgvToC(a0, &argc)) == NULL) return NULL; // Create it now the arguments are right. nargc = argc; Py_BEGIN_ALLOW_THREADS TDECmdLineArgs::init (nargc,argv, a1, a2, a3, a4, a5); Py_END_ALLOW_THREADS // Now modify the original list. updatePyArgv (a0, argc, argv); %End %End static void init (SIP_PYLIST, const char*, const char*, const char*, bool = 0) [void (int, char**, const char*, const char*, const char*, bool = 0)]; %MethodCode //takes _argv | (a Python list of strings which may be modified) | _appname | (char) | _description | (char) | _version | (char) | noKApp | (bool = False) int argc, nargc; char **argv; // Convert the list. if ((argv = pyArgvToC(a0, &argc)) == NULL) return NULL; // Create it now the arguments are right. nargc = argc; Py_BEGIN_ALLOW_THREADS TDECmdLineArgs::init (nargc,argv, a1, a2, a3, a4); Py_END_ALLOW_THREADS // Now modify the original list. updatePyArgv (a0, argc, argv); %End static void init (SIP_PYLIST, const TDEAboutData*, bool = 0) [void (int, char**, const TDEAboutData*, bool = 0)]; %MethodCode //takes _argv | (a Python list of strings which may be modified) | about | (TDEAboutData) | noKApp | (bool = 0) int argc, nargc; //, iserr = 0; char **argv; // Convert the list. if ((argv = pyArgvToC (a0, &argc)) == NULL) return NULL; // Create it now the arguments are right. nargc = argc; Py_BEGIN_ALLOW_THREADS TDECmdLineArgs::init (nargc, argv, a1, a2); Py_END_ALLOW_THREADS // Now modify the original list. updatePyArgv (a0, argc, argv); %End static void init (const TDEAboutData*); static void addCmdLineOptions (SIP_PYLIST, const char* = 0, const char* = 0, const char* = 0) [void (const TDECmdLineOptions*, const char* = 0, const char* = 0, const char* = 0)]; %MethodCode //takes options | (a Python list of tuples) | name | (char = 0) | id | (char = 0) | afterId | (char = 0) //doc // A Pytbon list of tuples (name, description, default) is the first parameter // instead of a TDECmdLineOptions object (TDECmdLineOptions is not used); // NULL (or None) parameters to mark the end of the list are not required //end int n; if ((n = PyList_Size (a0)) == 0) return NULL; // opts is persistent TDECmdLineOptions *opts; Py_BEGIN_ALLOW_THREADS opts = new TDECmdLineOptions [n + 1]; Py_END_ALLOW_THREADS int i, tsz; for (i = 0; i < n; i++) { PyObject *tuple; if ((tuple = PyList_GetItem (a0, i)) != NULL) { tsz = PyTuple_Size (tuple); PyObject *member; if (tsz == 0) goto errorExit; member = PyTuple_GET_ITEM (tuple, 0); if (PyUnicode_Check(member)) { opts[i].name= tqstrdup(sipString_AsUTF8String(&member)); } else if (SIPBytes_Check(member)) { opts[i].name= tqstrdup(SIPBytes_AS_STRING(member)); } else { goto errorExit; } if (tsz > 1) { member = PyTuple_GET_ITEM (tuple, 1); if (PyUnicode_Check(member)) { opts[i].description= tqstrdup(sipString_AsUTF8String(&member)); } else if (SIPBytes_Check(member)) { opts[i].description= tqstrdup(SIPBytes_AS_STRING(member)); } else { goto errorExit; } } else opts [i].description = NULL; if (tsz > 2) { member = PyTuple_GET_ITEM (tuple, 2); if (PyUnicode_Check(member)) { opts[i].def= tqstrdup(sipString_AsUTF8String(&member)); } else if (SIPBytes_Check(member)) { opts[i].def= tqstrdup(SIPBytes_AS_STRING(member)); } else { goto errorExit; } } else opts [i].def = NULL; } else goto errorExit; } // mark the end of the list opts[n].name = NULL; opts[n].description = NULL; opts[n].def = NULL; Py_BEGIN_ALLOW_THREADS TDECmdLineArgs::addCmdLineOptions (opts, a1, a2, a3); Py_END_ALLOW_THREADS Py_INCREF (Py_None); return Py_None; errorExit: delete opts; return NULL; %End static TDECmdLineArgs* parsedArgs (const char* = 0); static TQString cwd (); static const char* appName (); static void usage (const char* = 0); static void usage (const TQString&); static void enable_i18n (); TQCString getOption (const char*); %If ( KDE_3_1_4 - ) QCStringList getOptionList (const char*) const; %End bool isSet (const char*); int count (); const char* arg (int); KURL url (int); static KURL makeURL (const char*); static void setCwd (char*); void clear (); %If ( KDE_3_2_0 - ) static void reset (); static void loadAppArgs (TQDataStream&); %If ( KDE_3_4_0 - ) static void addTempFileOption (); static bool isTempFileSet (); %End %End protected: TDECmdLineArgs (const TDECmdLineOptions*, const char*, const char*); ~TDECmdLineArgs (); public: %If ( - KDE_3_1_3 ) TQValueList getOptionList (const char*); %End }; // class TDECmdLineArgs