This commit is contained in:
parent
d3eb93a30a
commit
47ba1a9b50
6 changed files with 44 additions and 15 deletions
|
|
@ -121,12 +121,12 @@ enum MwMOUSE {
|
||||||
MwMOUSE_WHEELDOWN
|
MwMOUSE_WHEELDOWN
|
||||||
};
|
};
|
||||||
|
|
||||||
#define MwKEY_MASK (1 << 31)
|
#define MwKEY_FLAG 0x80000000
|
||||||
#define MwKEY_CONTROL_MASK MwKEY_MASK | (1 << 30)
|
#define MwKEY_CONTROL_FLAG MwKEY_FLAG | 0x40000000
|
||||||
#define MwKEY_ALT_MASK MwKEY_MASK | (1 << 29)
|
#define MwKEY_ALT_FLAG MwKEY_FLAG | 0x20000000
|
||||||
|
|
||||||
enum MwKEY {
|
enum MwKEY {
|
||||||
MwKEY_BACKSPACE = MwKEY_MASK | 1,
|
MwKEY_BACKSPACE = MwKEY_FLAG | 1,
|
||||||
MwKEY_LEFT,
|
MwKEY_LEFT,
|
||||||
MwKEY_RIGHT,
|
MwKEY_RIGHT,
|
||||||
MwKEY_UP,
|
MwKEY_UP,
|
||||||
|
|
|
||||||
29
milsko.xml
29
milsko.xml
|
|
@ -216,15 +216,44 @@
|
||||||
<integer name="MwVULKANFIELD_GRAPHICSQUEUE" />
|
<integer name="MwVULKANFIELD_GRAPHICSQUEUE" />
|
||||||
<integer name="MwVULKANFIELD_PRESENTQUEUE" />
|
<integer name="MwVULKANFIELD_PRESENTQUEUE" />
|
||||||
</enumeration>
|
</enumeration>
|
||||||
|
<enumeration name="MwKEY">
|
||||||
|
<integer name="MwKEY_BACKSPACE">0x80000001</integer>
|
||||||
|
<integer name="MwKEY_LEFT" />
|
||||||
|
<integer name="MwKEY_RIGHT" />
|
||||||
|
<integer name="MwKEY_UP" />
|
||||||
|
<integer name="MwKEY_DOWN" />
|
||||||
|
<integer name="MwKEY_ENTER" />
|
||||||
|
<integer name="MwKEY_ESCAPE" />
|
||||||
|
<integer name="MwKEY_LEFTSHIFT" />
|
||||||
|
<integer name="MwKEY_RIGHTSHIFT" />
|
||||||
|
<integer name="MwKEY_ALT" />
|
||||||
|
<integer name="MwKEY_CONTROL" />
|
||||||
|
</enumeration>
|
||||||
|
<enumeration name="MwVULKANFIELD">
|
||||||
|
<integer name="MwVULKANFIELD_GETINSTANCEPROCADDR">0</integer>
|
||||||
|
<integer name="MwVULKANFIELD_INSTANCE" />
|
||||||
|
<integer name="MwVULKANFIELD_SURFACE" />
|
||||||
|
<integer name="MwVULKANFIELD_PHYSICALDEVICE" />
|
||||||
|
<integer name="MwVULKANFIELD_LOGICALDEVICE" />
|
||||||
|
<integer name="MwVULKANFIELD_GRAPHICSQUEUEINDEX" />
|
||||||
|
<integer name="MwVULKANFIELD_PRESENTQUEUEINDEX" />
|
||||||
|
<integer name="MwVULKANFIELD_GRAPHICSQUEUE" />
|
||||||
|
<integer name="MwVULKANFIELD_PRESENTQUEUE" />
|
||||||
|
</enumeration>
|
||||||
</enumerations>
|
</enumerations>
|
||||||
<constants>
|
<constants>
|
||||||
<integer name="MwDEFAULT">0x0fffffff</integer>
|
<integer name="MwDEFAULT">0x0fffffff</integer>
|
||||||
|
|
||||||
<integer name="MwMB_ICONMASK">0xf</integer>
|
<integer name="MwMB_ICONMASK">0xf</integer>
|
||||||
<integer name="MwMB_BUTTONMASK">0xf0</integer>
|
<integer name="MwMB_BUTTONMASK">0xf0</integer>
|
||||||
<integer name="MwMB_BUTTONOK">0x10</integer>
|
<integer name="MwMB_BUTTONOK">0x10</integer>
|
||||||
<integer name="MwMB_BUTTONCANCEL">0x20</integer>
|
<integer name="MwMB_BUTTONCANCEL">0x20</integer>
|
||||||
<integer name="MwMB_BUTTONYES">0x40</integer>
|
<integer name="MwMB_BUTTONYES">0x40</integer>
|
||||||
<integer name="MwMB_BUTTONNO">0x80</integer>
|
<integer name="MwMB_BUTTONNO">0x80</integer>
|
||||||
|
|
||||||
|
<integer name="MwKEY_FLAG">0x80000000</integer>
|
||||||
|
<integer name="MwKEY_CONTROL_FLAG">0xc0000000</integer>
|
||||||
|
<integer name="MwKEY_ALT_FLAG">0xa0000000</integer>
|
||||||
</constants>
|
</constants>
|
||||||
<headers>
|
<headers>
|
||||||
<header name="Dialog/ColorPicker">
|
<header name="Dialog/ColorPicker">
|
||||||
|
|
|
||||||
|
|
@ -166,13 +166,13 @@ static LRESULT CALLBACK wndproc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) {
|
||||||
const int base = 'A' - 1;
|
const int base = 'A' - 1;
|
||||||
|
|
||||||
if(n != 0x1b && n <= 0x1f) {
|
if(n != 0x1b && n <= 0x1f) {
|
||||||
n = (n + base) | MwKEY_CONTROL_MASK;
|
n = (n + base) | MwKEY_CONTROL_FLAG;
|
||||||
if(!(GetKeyState(VK_LSHIFT) || GetKeyState(VK_RSHIFT))) n += 0x20;
|
if(!(GetKeyState(VK_LSHIFT) || GetKeyState(VK_RSHIFT))) n += 0x20;
|
||||||
}
|
}
|
||||||
if(HIBYTE(VkKeyScan(wp)) & 2) n |= MwKEY_CONTROL_MASK;
|
if(HIBYTE(VkKeyScan(wp)) & 2) n |= MwKEY_CONTROL_FLAG;
|
||||||
if(msg == WM_SYSCHAR) n |= MwKEY_ALT_MASK;
|
if(msg == WM_SYSCHAR) n |= MwKEY_ALT_FLAG;
|
||||||
|
|
||||||
if((0x20 <= n && n <= 0x7f) || (n & MwKEY_MASK)) MwLLDispatch(u->ll, key, &n);
|
if((0x20 <= n && n <= 0x7f) || (n & MwKEY_FLAG)) MwLLDispatch(u->ll, key, &n);
|
||||||
} else if(msg == WM_SETFOCUS) {
|
} else if(msg == WM_SETFOCUS) {
|
||||||
MwLLDispatch(u->ll, focus_in, NULL);
|
MwLLDispatch(u->ll, focus_in, NULL);
|
||||||
} else if(msg == WM_KILLFOCUS) {
|
} else if(msg == WM_KILLFOCUS) {
|
||||||
|
|
@ -193,7 +193,7 @@ static LRESULT CALLBACK wndproc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) {
|
||||||
if(wp == VK_CONTROL) n = MwKEY_CONTROL;
|
if(wp == VK_CONTROL) n = MwKEY_CONTROL;
|
||||||
|
|
||||||
if((msg == WM_SYSKEYDOWN || msg == WM_SYSKEYUP) && n != -1 && wp != VK_MENU) {
|
if((msg == WM_SYSKEYDOWN || msg == WM_SYSKEYUP) && n != -1 && wp != VK_MENU) {
|
||||||
n |= MwKEY_ALT_MASK;
|
n |= MwKEY_ALT_FLAG;
|
||||||
}
|
}
|
||||||
if(n != -1) {
|
if(n != -1) {
|
||||||
if(msg == WM_KEYDOWN || msg == WM_SYSKEYDOWN) {
|
if(msg == WM_KEYDOWN || msg == WM_SYSKEYDOWN) {
|
||||||
|
|
|
||||||
|
|
@ -807,10 +807,10 @@ static void keyboard_key(void* data,
|
||||||
}
|
}
|
||||||
|
|
||||||
if((self->wayland.mod_state & 4) == 4) {
|
if((self->wayland.mod_state & 4) == 4) {
|
||||||
key |= MwKEY_CONTROL_MASK;
|
key |= MwKEY_CONTROL_FLAG;
|
||||||
}
|
}
|
||||||
if((self->wayland.mod_state & 8) == 8) {
|
if((self->wayland.mod_state & 8) == 8) {
|
||||||
key |= MwKEY_ALT_MASK;
|
key |= MwKEY_ALT_FLAG;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(key != -1) {
|
if(key != -1) {
|
||||||
|
|
|
||||||
|
|
@ -815,10 +815,10 @@ static void MwLLNextEventImpl(MwLL handle) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if(n != MwKEY_CONTROL && ev.xkey.state & ControlMask) {
|
if(n != MwKEY_CONTROL && ev.xkey.state & ControlMask) {
|
||||||
n |= MwKEY_CONTROL_MASK;
|
n |= MwKEY_CONTROL_FLAG;
|
||||||
}
|
}
|
||||||
if(n != MwKEY_ALT && ev.xkey.state & Mod1Mask) {
|
if(n != MwKEY_ALT && ev.xkey.state & Mod1Mask) {
|
||||||
n |= MwKEY_ALT_MASK;
|
n |= MwKEY_ALT_FLAG;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(n != -1) {
|
if(n != -1) {
|
||||||
|
|
|
||||||
|
|
@ -113,9 +113,9 @@ static void key(MwWidget handle, int code) {
|
||||||
t->cursor++;
|
t->cursor++;
|
||||||
} else if(code == MwKEY_ENTER) {
|
} else if(code == MwKEY_ENTER) {
|
||||||
MwDispatchUserHandler(handle, MwNactivateHandler, NULL);
|
MwDispatchUserHandler(handle, MwNactivateHandler, NULL);
|
||||||
} else if(code == (MwKEY_CONTROL_MASK | 'v')) {
|
} else if(code == (MwKEY_CONTROL_FLAG | 'v')) {
|
||||||
MwLLGetClipboard(handle->lowlevel, MwCLIPBOARD_MAIN);
|
MwLLGetClipboard(handle->lowlevel, MwCLIPBOARD_MAIN);
|
||||||
} else if(!(code & MwKEY_MASK)) {
|
} else if(!(code & MwKEY_FLAG)) {
|
||||||
int incr = 0;
|
int incr = 0;
|
||||||
out = malloc(strlen(str) + 5 + 1);
|
out = malloc(strlen(str) + 5 + 1);
|
||||||
incr += MwUTF8Copy(str, 0, out, 0, t->cursor);
|
incr += MwUTF8Copy(str, 0, out, 0, t->cursor);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue