mirror of
https://github.com/keymanapp/keyman.git
synced 2026-08-11 03:15:33 +00:00
* Keyman for Windows 10.0 Open Source * Squashed 'windows/src/ext/jedi/jedi/' content from commit f444ad2 git-subtree-dir: windows/src/ext/jedi/jedi git-subtree-split: f444ad2da4693851e523f1ea6bd541f701904c24 * Squashed 'windows/src/ext/jedi/jcl/' content from commit d63d3c9fd git-subtree-dir: windows/src/ext/jedi/jcl git-subtree-split: d63d3c9fd9ff84efdd8159084ec6a60313644243 * Squashed 'windows/src/ext/jedi/jvcl/' content from commit bee19f3b4 git-subtree-dir: windows/src/ext/jedi/jvcl git-subtree-split: bee19f3b46909fde2fa92c06cd2706f41d99f6c3 * Add required .res files * Add required .res files * Add docbook files (forced) * Add required libxslt * Add required jedi files * Add installation files * Tweak .gitignore for open * CI * Remove KMW from Developer source (#122) * Remove KMW from Developer source (copies during build) * Remove KMW from Developer source (copies during build) * Remove KMW from Developer source (copies during build) * Fixup release build and copy license, readme from kmw during build * Remove obsolete build help documentation * Keyman Engine 10 on Windows regression for shift states (#129) * Improve #128 -- cleaner debug messages * Fixes #127, shift state now resets correctly; and more work for #128 * Fixes #130 (#131)
48 lines
1.4 KiB
C++
48 lines
1.4 KiB
C++
|
|
class XString
|
|
{
|
|
friend class XStringPointer;
|
|
private:
|
|
int RefCount; /* If RefCount > 0 when ~XString called, log an error */
|
|
WCHAR *buf; /* Buffer for XString */
|
|
int nbuf; /* Length of buf in bytes */
|
|
public:
|
|
XString(); /* New, empty XString */
|
|
XString(PWSTR FInitWStr); /* New, copy from FInitWStr */
|
|
XString(XString *FInitXStr); /* New, copy from FInitXStr */
|
|
~XString();
|
|
int Length(); /* Length in characters */
|
|
int WordLength() { return nbuf; } /* Length in WORDs */
|
|
|
|
void Append(XString *FAppendXStr);
|
|
void Append(WCHAR *FAppendWStr);
|
|
void Append(WCHAR FAppendChar);
|
|
void Delete(int Position); /* Delete the character at Position */
|
|
void Delete(int Position, int Length); /* Delete the character at Position to Pos+Len-1 */
|
|
};
|
|
|
|
class XStringPointer
|
|
{
|
|
private:
|
|
XString str;
|
|
WCHAR *p;
|
|
|
|
public:
|
|
XStringPointer(XString FParent);
|
|
~XStringPointer();
|
|
|
|
operator++();
|
|
operator--();
|
|
WCHAR operator[](int n);
|
|
WCHAR *cp() { return p; }
|
|
BOOL IsSurrogate();
|
|
BOOL IsFunction();
|
|
BOOL IsFunction(int FunctionID);
|
|
int Position(); /* Returns the current character position */
|
|
int WordPosition(); /* Returns the current word position */
|
|
void Insert(XString *FInsertXStr); /* Insert a character before pointer position */
|
|
void Insert(WCHAR *FInsertWStr);
|
|
void Insert(WCHAR FInsertChar);
|
|
void Delete(); /* Delete the current character */
|
|
void Delete(int n); /* Delete the current character + n-1 chrs */
|
|
};
|