22#ifndef KSPREAD_FUNCTIONS
23#define KSPREAD_FUNCTIONS
25#include <tqstringlist.h>
26#include <tqvaluevector.h>
36typedef TQValueVector<Value> valVector;
39 int col1, col2, row1, row2;
43 TQValueVector<rangeInfo> ranges;
53 Function (
const TQString& name, FunctionPtr ptr);
59 void setParamCount (
int min,
int max = 0);
61 bool paramCountOkay (
int count);
65 void setAcceptArray (
bool accept =
true);
67 void setNeedsExtra (
bool extra);
68 TQString name()
const;
69 TQString localizedName()
const;
70 TQString helpText()
const;
71 void setHelpText(
const TQString& text );
72 Value exec (valVector args, ValueCalc *calc, FuncExtra *extra = 0);
79enum ParameterType { KSpread_Int, KSpread_Float, KSpread_String, KSpread_Boolean, KSpread_Any };
81class FunctionParameter
85 FunctionParameter(
const FunctionParameter& param );
86 FunctionParameter(
const TQDomElement& element );
88 TQString helpText()
const {
return m_help; }
89 ParameterType type()
const {
return m_type; }
90 bool hasRange()
const {
return m_range; }
98class FunctionDescription
101 FunctionDescription();
102 FunctionDescription (
const TQDomElement& element);
103 FunctionDescription (
const FunctionDescription& desc);
105 const TQStringList& examples() {
return m_examples; }
106 const TQStringList& syntax() {
return m_syntax; }
107 const TQStringList& related() {
return m_related; }
108 const TQStringList& helpText()
const {
return m_help; }
109 TQString name()
const {
return m_name; }
110 ParameterType type()
const {
return m_type; }
112 int params()
const {
return m_params.count(); }
113 FunctionParameter& param(
int i ) {
return m_params[ i ]; }
115 void setGroup(
const TQString& g ) { m_group = g; }
116 TQString group()
const {
return m_group; }
118 TQString toTQML()
const;
122 TQStringList m_examples;
123 TQStringList m_syntax;
124 TQStringList m_related;
127 ParameterType m_type;
128 TQValueList<FunctionParameter> m_params;
131class FunctionRepository
134 FunctionRepository();
135 ~FunctionRepository();
137 static FunctionRepository *self();
139 void add (Function *function);
141 Function *function (
const TQString& name);
143 FunctionDescription *functionInfo (
const TQString& name);
146 TQStringList functionNames (
const TQString& group = TQString());
148 const TQStringList &groups ()
const {
return m_groups; }
155 static FunctionRepository* s_self;
158 void loadFile (
const TQString& filename);
160 TQStringList m_groups;
163 FunctionRepository(
const FunctionRepository& );
164 FunctionRepository& operator=(
const FunctionRepository& );
The ValueCalc class is used to perform all sorts of calculations.
Provides a wrapper for cell value.