// This file is a part of Framsticks SDK. http://www.framsticks.com/ // Copyright (C) 1996-2019 Maciej Komosinski and Szymon Ulatowski. // See LICENSE.txt for details. #ifndef _PARAMLIST_H_ #define _PARAMLIST_H_ #include "param.h" #include class ParamList : public ParamInterface { SList list; const char *objname; int getSubParam(int i, ParamInterface **sub_p, int *sub_i); int getSubGroup(int i, ParamInterface **sub_p, int *sub_i); public: ParamList(const char* n = 0, const char* d = 0) :objname(n), description(d) {} void operator+=(ParamInterface *p) { list += p; } void operator-=(ParamInterface *p) { list -= p; } const char* getName() { return objname; } const char* description; const char* getDescription() { return description; } int getGroupCount(); int getPropCount(); const char *id(int i); const char *name(int i); const char *type(int i); const char *help(int i); int flags(int i); int group(int i); void call(int i, ExtValue* args, ExtValue *ret); const char *grname(int i); int grmember(int gi, int n); SString getString(int); paInt getInt(int); double getDouble(int); ExtValue getExtValue(int); ExtObject getObject(int); int setInt(int, paInt); int setDouble(int, double); int setString(int, const SString &); int setObject(int, const ExtObject&); int setExtValue(int, const ExtValue&); }; #endif