From 20d28e80a5c861a9d5f449ea911ab75b4f37ad0d Mon Sep 17 00:00:00 2001 From: Jef Date: Tue, 24 Sep 2024 14:54:57 +0200 Subject: Initial community commit --- Src/Wasabi/api/script/debugger/sourcecodeline.h | 100 ++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 Src/Wasabi/api/script/debugger/sourcecodeline.h (limited to 'Src/Wasabi/api/script/debugger/sourcecodeline.h') diff --git a/Src/Wasabi/api/script/debugger/sourcecodeline.h b/Src/Wasabi/api/script/debugger/sourcecodeline.h new file mode 100644 index 00000000..a3a341ac --- /dev/null +++ b/Src/Wasabi/api/script/debugger/sourcecodeline.h @@ -0,0 +1,100 @@ +#ifndef __SOURCECODELINE_H +#define __SOURCECODELINE_H + +#include +#include + + +class SourceCodeLine : public Dispatchable { + public: + const wchar_t *getLine(); + void setLine(const wchar_t *line); + int getPointer(); + void setPointer(int pointer); + int getLength(); + void setLength(int length); + void setSourceFile(const wchar_t *file); + const wchar_t *getSourceFile(); + void setSourceFileLine(int linenumber); + int getSourceFileLine(); + + enum { + SOURCECODELINE_GETLINE = 0, + SOURCECODELINE_SETLINE = 10, + SOURCECODELINE_GETPOINTER = 20, + SOURCECODELINE_SETPOINTER = 30, + SOURCECODELINE_GETLENGTH = 40, + SOURCECODELINE_SETLENGTH = 50, + SOURCECODELINE_SETSOURCEFILE = 60, + SOURCECODELINE_GETSOURCEFILE = 70, + SOURCECODELINE_SETSOURCEFILELINE = 80, + SOURCECODELINE_GETSOURCEFILELINE = 90, + }; +}; + +inline const wchar_t *SourceCodeLine::getLine() { + return _call(SOURCECODELINE_GETLINE, (const wchar_t*)NULL); +} + +inline void SourceCodeLine::setLine(const wchar_t *line) { + _voidcall(SOURCECODELINE_SETLINE, line); +} + +inline int SourceCodeLine::getPointer() { + return _call(SOURCECODELINE_GETPOINTER, (int)0); +} + +inline void SourceCodeLine::setPointer(int pointer) { + _voidcall(SOURCECODELINE_SETPOINTER, pointer); +} + +inline int SourceCodeLine::getLength() { + return _call(SOURCECODELINE_GETLENGTH, (int)0); +} + +inline void SourceCodeLine::setLength(int length) { + _voidcall(SOURCECODELINE_SETLENGTH, length); +} + +inline void SourceCodeLine::setSourceFile(const wchar_t *file) { + _voidcall(SOURCECODELINE_SETSOURCEFILE, file); +} + +inline const wchar_t *SourceCodeLine::getSourceFile() { + return _call(SOURCECODELINE_GETSOURCEFILE, (const wchar_t *)0); +} + +inline void SourceCodeLine::setSourceFileLine(int linenumber) { + _voidcall(SOURCECODELINE_SETSOURCEFILELINE, linenumber); +} + +inline int SourceCodeLine::getSourceFileLine() { + return _call(SOURCECODELINE_GETSOURCEFILELINE, (int)0); +} + +class SourceCodeLineI : public SourceCodeLine { + public: + SourceCodeLineI(); + virtual ~SourceCodeLineI(); + virtual const wchar_t *getLine(); + virtual void setLine(const wchar_t *line); + virtual int getPointer(); + virtual void setPointer(int pointer); + virtual int getLength(); + virtual void setLength(int length); + virtual void setSourceFile(const wchar_t *file); + virtual const wchar_t *getSourceFile(); + virtual void setSourceFileLine(int linenumber); + virtual int getSourceFileLine(); + + protected: + RECVS_DISPATCH; + + StringW line; + StringW file; + int fileline; + int pointer; + int length; +}; + +#endif \ No newline at end of file -- cgit