| #pragma once |
| |
| #ifndef TNZ_EXPRESSIONFIELD_INCLUDED |
| #define TNZ_EXPRESSIONFIELD_INCLUDED |
| |
| #include "tw/textfield.h" |
| |
| #undef DVAPI |
| #undef DVVAR |
| #ifdef TWIN_EXPORTS |
| #define DVAPI DV_EXPORT_API |
| #define DVVAR DV_EXPORT_VAR |
| #else |
| #define DVAPI DV_IMPORT_API |
| #define DVVAR DV_IMPORT_VAR |
| #endif |
| |
| #ifdef WIN32 |
| #pragma warning(push) |
| #pragma warning(disable : 4251) |
| #endif |
| |
| |
| namespace TSyntax { |
| class Parser; |
| class Grammar; |
| } |
| |
| class DVAPI TExpressionField : public TTextField { |
| public: |
| class Listener { |
| public: |
| virtual void onExpressionChange(string s, bool isValid) = 0; |
| virtual ~Listener() {} |
| }; |
| |
| TSyntax::Parser *m_parser; |
| Listener *m_listener; |
| void apply(); |
| |
| public: |
| TExpressionField(TWidget *parent, string name = "expressionField"); |
| ~TExpressionField(); |
| |
| void setGrammar(TSyntax::Grammar *grammar); |
| TSyntax::Grammar *getGrammar() const; |
| |
| void setListener(Listener *listener) { m_listener = listener; } |
| |
| void keyDown(int key, TUINT32 status, const TPoint &p); |
| void drawFieldText(const TPoint &origin, wstring text); |
| |
| string getError() const; |
| }; |
| |
| #ifdef WIN32 |
| #pragma warning(pop) |
| #endif |
| |
| #endif |