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
|
||||
};
|
||||
|
||||
#define MwKEY_MASK (1 << 31)
|
||||
#define MwKEY_CONTROL_MASK MwKEY_MASK | (1 << 30)
|
||||
#define MwKEY_ALT_MASK MwKEY_MASK | (1 << 29)
|
||||
#define MwKEY_FLAG 0x80000000
|
||||
#define MwKEY_CONTROL_FLAG MwKEY_FLAG | 0x40000000
|
||||
#define MwKEY_ALT_FLAG MwKEY_FLAG | 0x20000000
|
||||
|
||||
enum MwKEY {
|
||||
MwKEY_BACKSPACE = MwKEY_MASK | 1,
|
||||
MwKEY_BACKSPACE = MwKEY_FLAG | 1,
|
||||
MwKEY_LEFT,
|
||||
MwKEY_RIGHT,
|
||||
MwKEY_UP,
|
||||
|
|
|
|||
29
milsko.xml
29
milsko.xml
|
|
@ -216,15 +216,44 @@
|
|||
<integer name="MwVULKANFIELD_GRAPHICSQUEUE" />
|
||||
<integer name="MwVULKANFIELD_PRESENTQUEUE" />
|
||||
</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>
|
||||
<constants>
|
||||
<integer name="MwDEFAULT">0x0fffffff</integer>
|
||||
|
||||
<integer name="MwMB_ICONMASK">0xf</integer>
|
||||
<integer name="MwMB_BUTTONMASK">0xf0</integer>
|
||||
<integer name="MwMB_BUTTONOK">0x10</integer>
|
||||
<integer name="MwMB_BUTTONCANCEL">0x20</integer>
|
||||
<integer name="MwMB_BUTTONYES">0x40</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>
|
||||
<headers>
|
||||
<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;
|
||||
|
||||
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(HIBYTE(VkKeyScan(wp)) & 2) n |= MwKEY_CONTROL_MASK;
|
||||
if(msg == WM_SYSCHAR) n |= MwKEY_ALT_MASK;
|
||||
if(HIBYTE(VkKeyScan(wp)) & 2) n |= MwKEY_CONTROL_FLAG;
|
||||
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) {
|
||||
MwLLDispatch(u->ll, focus_in, NULL);
|
||||
} 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((msg == WM_SYSKEYDOWN || msg == WM_SYSKEYUP) && n != -1 && wp != VK_MENU) {
|
||||
n |= MwKEY_ALT_MASK;
|
||||
n |= MwKEY_ALT_FLAG;
|
||||
}
|
||||
if(n != -1) {
|
||||
if(msg == WM_KEYDOWN || msg == WM_SYSKEYDOWN) {
|
||||
|
|
|
|||
|
|
@ -807,10 +807,10 @@ static void keyboard_key(void* data,
|
|||
}
|
||||
|
||||
if((self->wayland.mod_state & 4) == 4) {
|
||||
key |= MwKEY_CONTROL_MASK;
|
||||
key |= MwKEY_CONTROL_FLAG;
|
||||
}
|
||||
if((self->wayland.mod_state & 8) == 8) {
|
||||
key |= MwKEY_ALT_MASK;
|
||||
key |= MwKEY_ALT_FLAG;
|
||||
}
|
||||
|
||||
if(key != -1) {
|
||||
|
|
|
|||
|
|
@ -815,10 +815,10 @@ static void MwLLNextEventImpl(MwLL handle) {
|
|||
}
|
||||
|
||||
if(n != MwKEY_CONTROL && ev.xkey.state & ControlMask) {
|
||||
n |= MwKEY_CONTROL_MASK;
|
||||
n |= MwKEY_CONTROL_FLAG;
|
||||
}
|
||||
if(n != MwKEY_ALT && ev.xkey.state & Mod1Mask) {
|
||||
n |= MwKEY_ALT_MASK;
|
||||
n |= MwKEY_ALT_FLAG;
|
||||
}
|
||||
|
||||
if(n != -1) {
|
||||
|
|
|
|||
|
|
@ -113,9 +113,9 @@ static void key(MwWidget handle, int code) {
|
|||
t->cursor++;
|
||||
} else if(code == MwKEY_ENTER) {
|
||||
MwDispatchUserHandler(handle, MwNactivateHandler, NULL);
|
||||
} else if(code == (MwKEY_CONTROL_MASK | 'v')) {
|
||||
} else if(code == (MwKEY_CONTROL_FLAG | 'v')) {
|
||||
MwLLGetClipboard(handle->lowlevel, MwCLIPBOARD_MAIN);
|
||||
} else if(!(code & MwKEY_MASK)) {
|
||||
} else if(!(code & MwKEY_FLAG)) {
|
||||
int incr = 0;
|
||||
out = malloc(strlen(str) + 5 + 1);
|
||||
incr += MwUTF8Copy(str, 0, out, 0, t->cursor);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue