summaryrefslogtreecommitdiffstats
path: root/shiny/driver/internal/win32/syscall_windows.go
diff options
context:
space:
mode:
Diffstat (limited to 'shiny/driver/internal/win32/syscall_windows.go')
-rw-r--r--shiny/driver/internal/win32/syscall_windows.go186
1 files changed, 186 insertions, 0 deletions
diff --git a/shiny/driver/internal/win32/syscall_windows.go b/shiny/driver/internal/win32/syscall_windows.go
new file mode 100644
index 0000000..d71536d
--- /dev/null
+++ b/shiny/driver/internal/win32/syscall_windows.go
@@ -0,0 +1,186 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package win32
+
+import (
+ "syscall"
+)
+
+type _COLORREF uint32
+
+func _RGB(r, g, b byte) _COLORREF {
+ return _COLORREF(r) | _COLORREF(g)<<8 | _COLORREF(b)<<16
+}
+
+type _POINT struct {
+ X int32
+ Y int32
+}
+
+type _RECT struct {
+ Left int32
+ Top int32
+ Right int32
+ Bottom int32
+}
+
+type _MSG struct {
+ HWND syscall.Handle
+ Message uint32
+ Wparam uintptr
+ Lparam uintptr
+ Time uint32
+ Pt _POINT
+}
+
+type _WNDCLASS struct {
+ Style uint32
+ LpfnWndProc uintptr
+ CbClsExtra int32
+ CbWndExtra int32
+ HInstance syscall.Handle
+ HIcon syscall.Handle
+ HCursor syscall.Handle
+ HbrBackground syscall.Handle
+ LpszMenuName *uint16
+ LpszClassName *uint16
+}
+
+type _WINDOWPOS struct {
+ HWND syscall.Handle
+ HWNDInsertAfter syscall.Handle
+ X int32
+ Y int32
+ Cx int32
+ Cy int32
+ Flags uint32
+}
+
+const (
+ _WM_SETFOCUS = 7
+ _WM_KILLFOCUS = 8
+ _WM_PAINT = 15
+ _WM_CLOSE = 16
+ _WM_WINDOWPOSCHANGED = 71
+ _WM_KEYDOWN = 256
+ _WM_KEYUP = 257
+ _WM_SYSKEYDOWN = 260
+ _WM_SYSKEYUP = 261
+ _WM_MOUSEMOVE = 512
+ _WM_MOUSEWHEEL = 522
+ _WM_LBUTTONDOWN = 513
+ _WM_LBUTTONUP = 514
+ _WM_RBUTTONDOWN = 516
+ _WM_RBUTTONUP = 517
+ _WM_MBUTTONDOWN = 519
+ _WM_MBUTTONUP = 520
+ _WM_USER = 0x0400
+)
+
+const (
+ _WS_OVERLAPPED = 0x00000000
+ _WS_CAPTION = 0x00C00000
+ _WS_SYSMENU = 0x00080000
+ _WS_THICKFRAME = 0x00040000
+ _WS_MINIMIZEBOX = 0x00020000
+ _WS_MAXIMIZEBOX = 0x00010000
+ _WS_OVERLAPPEDWINDOW = _WS_OVERLAPPED | _WS_CAPTION | _WS_SYSMENU | _WS_THICKFRAME | _WS_MINIMIZEBOX | _WS_MAXIMIZEBOX
+)
+
+const (
+ _VK_SHIFT = 16
+ _VK_CONTROL = 17
+ _VK_MENU = 18
+ _VK_LWIN = 0x5B
+ _VK_RWIN = 0x5C
+)
+
+const (
+ _MK_LBUTTON = 0x0001
+ _MK_MBUTTON = 0x0010
+ _MK_RBUTTON = 0x0002
+)
+
+const (
+ _COLOR_BTNFACE = 15
+)
+
+const (
+ _IDI_APPLICATION = 32512
+ _IDC_ARROW = 32512
+)
+
+const (
+ _CW_USEDEFAULT = 0x80000000 - 0x100000000
+
+ _SW_SHOWDEFAULT = 10
+
+ _HWND_MESSAGE = syscall.Handle(^uintptr(2)) // -3
+
+ _SWP_NOSIZE = 0x0001
+)
+
+const (
+ _BI_RGB = 0
+ _DIB_RGB_COLORS = 0
+
+ _AC_SRC_OVER = 0x00
+ _AC_SRC_ALPHA = 0x01
+
+ _SRCCOPY = 0x00cc0020
+
+ _WHEEL_DELTA = 120
+)
+
+func _GET_X_LPARAM(lp uintptr) int32 {
+ return int32(_LOWORD(lp))
+}
+
+func _GET_Y_LPARAM(lp uintptr) int32 {
+ return int32(_HIWORD(lp))
+}
+
+func _GET_WHEEL_DELTA_WPARAM(lp uintptr) int16 {
+ return int16(_HIWORD(lp))
+}
+
+func _LOWORD(l uintptr) uint16 {
+ return uint16(uint32(l))
+}
+
+func _HIWORD(l uintptr) uint16 {
+ return uint16(uint32(l >> 16))
+}
+
+// notes to self
+// UINT = uint32
+// callbacks = uintptr
+// strings = *uint16
+
+//sys GetDC(hwnd syscall.Handle) (dc syscall.Handle, err error) = user32.GetDC
+//sys ReleaseDC(hwnd syscall.Handle, dc syscall.Handle) (err error) = user32.ReleaseDC
+//sys sendMessage(hwnd syscall.Handle, uMsg uint32, wParam uintptr, lParam uintptr) (lResult uintptr) = user32.SendMessageW
+
+//sys _CreateWindowEx(exstyle uint32, className *uint16, windowText *uint16, style uint32, x int32, y int32, width int32, height int32, parent syscall.Handle, menu syscall.Handle, hInstance syscall.Handle, lpParam uintptr) (hwnd syscall.Handle, err error) = user32.CreateWindowExW
+//sys _DefWindowProc(hwnd syscall.Handle, uMsg uint32, wParam uintptr, lParam uintptr) (lResult uintptr) = user32.DefWindowProcW
+//sys _DestroyWindow(hwnd syscall.Handle) (err error) = user32.DestroyWindow
+//sys _DispatchMessage(msg *_MSG) (ret int32) = user32.DispatchMessageW
+//sys _GetClientRect(hwnd syscall.Handle, rect *_RECT) (err error) = user32.GetClientRect
+//sys _GetWindowRect(hwnd syscall.Handle, rect *_RECT) (err error) = user32.GetWindowRect
+//sys _GetKeyboardLayout(threadID uint32) (locale syscall.Handle) = user32.GetKeyboardLayout
+//sys _GetKeyboardState(lpKeyState *byte) (err error) = user32.GetKeyboardState
+//sys _GetKeyState(virtkey int32) (keystatus int16) = user32.GetKeyState
+//sys _GetMessage(msg *_MSG, hwnd syscall.Handle, msgfiltermin uint32, msgfiltermax uint32) (ret int32, err error) [failretval==-1] = user32.GetMessageW
+//sys _LoadCursor(hInstance syscall.Handle, cursorName uintptr) (cursor syscall.Handle, err error) = user32.LoadCursorW
+//sys _LoadIcon(hInstance syscall.Handle, iconName uintptr) (icon syscall.Handle, err error) = user32.LoadIconW
+//sys _MoveWindow(hwnd syscall.Handle, x int32, y int32, w int32, h int32, repaint bool) (err error) = user32.MoveWindow
+//sys _PostMessage(hwnd syscall.Handle, uMsg uint32, wParam uintptr, lParam uintptr) (lResult bool) = user32.PostMessageW
+//sys _PostQuitMessage(exitCode int32) = user32.PostQuitMessage
+//sys _RegisterClass(wc *_WNDCLASS) (atom uint16, err error) = user32.RegisterClassW
+//sys _ShowWindow(hwnd syscall.Handle, cmdshow int32) (wasvisible bool) = user32.ShowWindow
+//sys _ScreenToClient(hwnd syscall.Handle, lpPoint *_POINT) (ok bool) = user32.ScreenToClient
+//sys _ToUnicodeEx(wVirtKey uint32, wScanCode uint32, lpKeyState *byte, pwszBuff *uint16, cchBuff int32, wFlags uint32, dwhkl syscall.Handle) (ret int32) = user32.ToUnicodeEx
+//sys _TranslateMessage(msg *_MSG) (done bool) = user32.TranslateMessage
+//sys _UnregisterClass(lpClassName *uint16, hInstance syscall.Handle) (done bool) = user32.UnregisterClassW