kspread Library API Documentation

kspread_functions.h

00001 #ifndef KSPREAD_FUNCTIONS_H
00002 #define KSPREAD_FUNCTIONS_H
00003 
00004 class QDomElement;
00005 
00006 #include <qstring.h>
00007 #include <qvaluelist.h>
00008 #include <qstringlist.h>
00009 #include <qdict.h>
00010 
00011 #include <koscript_func.h>
00012 
00013 // defined pointer to function
00014 typedef KSBuiltinFuncPtr KSpreadFunctionPtr;
00015 
00026 class KSpreadFunction
00027 {
00028 public:
00029   // eval();
00030   // 
00031   QString name;
00032   QString localizedName; // not used yet
00033   KSpreadFunctionPtr functionPtr;
00034   QString helpText; // in rich-edit
00035 };
00036 
00037 
00038 enum  KSpreadParameterType { KSpread_Int, KSpread_Float, KSpread_String, KSpread_Boolean, KSpread_Any };
00039 
00040 class KSpreadFunctionParameter
00041 {
00042 public:
00043     KSpreadFunctionParameter();
00044     KSpreadFunctionParameter( const KSpreadFunctionParameter& param );
00045     KSpreadFunctionParameter( const QDomElement& element );
00046     
00047     QString helpText() const { return m_help; }
00048     KSpreadParameterType type() const { return m_type; }
00049     bool hasRange() const { return m_range; }
00050     
00051 private:
00052     QString m_help;
00053     KSpreadParameterType m_type;
00054     bool m_range;
00055 };
00056 
00057 class KSpreadFunctionDescription
00058 {
00059 public:
00060     KSpreadFunctionDescription();
00061     KSpreadFunctionDescription( const QDomElement& element );
00062     KSpreadFunctionDescription( const KSpreadFunctionDescription& desc );
00063     
00064     const QStringList& examples() { return m_examples; }
00065     const QStringList& syntax() { return m_syntax; }
00066     const QStringList& related() { return m_related; }
00067     const QStringList& helpText() const { return m_help; }
00068     QString name() const { return m_name; }
00069     KSpreadParameterType type() const { return m_type; }
00070     
00071     int params() const { return m_params.count(); }
00072     KSpreadFunctionParameter& param( int i ) { return m_params[ i ]; }
00073     
00074     void setGroup( const QString& g ) { m_group = g; }
00075     QString group() const { return m_group; }
00076     
00077     QString toQML() const;
00078     
00079 private:
00080     QString m_group;
00081     QStringList m_examples;
00082     QStringList m_syntax;
00083     QStringList m_related;
00084     QStringList m_help;
00085     QString m_name;
00086     KSpreadParameterType m_type;
00087     QValueList<KSpreadFunctionParameter> m_params;
00088 };
00089 
00090 class KSpreadFunctionRepository
00091 {
00092 public:
00093 
00094     static KSpreadFunctionRepository* self();
00095 
00096     KSpreadFunctionRepository();
00097     
00098     KSpreadFunctionDescription* functionInfo( const QString& name );
00099 
00100     KSpreadFunction* function( const QString& name );
00101     
00102     QStringList functionNames();
00103     QStringList functionNames( const QString& group );
00104     QStringList regFunctionNames();
00105     
00106     const QStringList& groups() const { return m_groups; }
00107 
00113     void registerFunction( const QString& name, KSpreadFunctionPtr ptr );
00114     
00115 private:
00116 
00117     static KSpreadFunctionRepository* s_self;
00118 
00119     // loads functions description from XML files
00120     void loadFile( const QString& filename );
00121     
00122     QDict<KSpreadFunctionDescription> m_funcs;
00123     QStringList m_groups;
00124 
00125     QDict<KSpreadFunction> m_functions;
00126 };
00127 
00128 #endif
KDE Logo
This file is part of the documentation for kspread Library Version 1.4.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Mon Feb 13 09:43:09 2006 by doxygen 1.4.2 written by Dimitri van Heesch, © 1997-2003