initial TextInput context callback

This commit is contained in:
Jack Andersen
2015-12-25 19:21:13 -10:00
parent 92c47a5e77
commit fb1282c3e4
2 changed files with 220 additions and 1 deletions

View File

@@ -102,6 +102,24 @@ enum class EModifierKey
Command = 1<<4
};
ENABLE_BITWISE_ENUM(EModifierKey)
struct ITextInputCallback
{
virtual bool hasMarkedText() const=0;
virtual std::pair<int,int> markedRange() const=0;
virtual std::pair<int,int> selectedRange() const=0;
virtual void setMarkedText(const std::string& str,
const std::pair<int,int>& selectedRange,
const std::pair<int,int>& replacementRange)=0;
virtual void unmarkText()=0;
virtual std::string substringForRange(const std::pair<int,int>& range,
std::pair<int,int>& actualRange) const=0;
virtual void insertText(const std::string& str, const std::pair<int,int>& range)=0;
virtual int characterIndexAtPoint(const SWindowCoord& point) const=0;
virtual SWindowRect rectForCharacterRange(const std::pair<int,int>& range,
std::pair<int,int>& actualRange) const=0;
};
class IWindowCallback
{
@@ -139,7 +157,10 @@ public:
virtual void modKeyDown(EModifierKey mod, bool isRepeat)
{(void)mod;(void)isRepeat;}
virtual void modKeyUp(EModifierKey mod) {(void)mod;}
virtual void utf8FragmentDown(const std::string& str) {(void)str;}
virtual ITextInputCallback* getTextInputCallback() {return nullptr;}
virtual void focusLost() {}
virtual void focusGained() {}
virtual void windowMoved(const SWindowRect& rect)