From 26fd99f26335596ef6859888e312c614bca58b9f Mon Sep 17 00:00:00 2001 From: Laurent Le Goff Date: Wed, 22 Apr 2015 15:59:32 +0200 Subject: [PATCH] remove deprecated files --- curve/Makefile | 11 -- wingui/winapi.go | 134 ----------------- wingui/wingdi.go | 149 ------------------- wingui/wintest/wintest.go | 154 -------------------- wingui/wintestgdi/wintestgdi.go | 250 -------------------------------- wingui/zwinapi.go | 192 ------------------------ 6 files changed, 890 deletions(-) delete mode 100644 curve/Makefile delete mode 100644 wingui/winapi.go delete mode 100644 wingui/wingdi.go delete mode 100644 wingui/wintest/wintest.go delete mode 100644 wingui/wintestgdi/wintestgdi.go delete mode 100644 wingui/zwinapi.go diff --git a/curve/Makefile b/curve/Makefile deleted file mode 100644 index 15ceee0..0000000 --- a/curve/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -include $(GOROOT)/src/Make.inc - -TARG=draw2d.googlecode.com/hg/draw2d/curve -GOFILES=\ - cubic_float64.go\ - quad_float64.go\ - cubic_float64_others.go\ - - - -include $(GOROOT)/src/Make.pkg diff --git a/wingui/winapi.go b/wingui/winapi.go deleted file mode 100644 index ce8ae33..0000000 --- a/wingui/winapi.go +++ /dev/null @@ -1,134 +0,0 @@ -// Copyright 2011 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. - -// +build windows - -package wingui - -import ( - "syscall" - "unsafe" -) - -type Wndclassex struct { - Size uint32 - Style uint32 - WndProc uintptr - ClsExtra int32 - WndExtra int32 - Instance syscall.Handle - Icon syscall.Handle - Cursor syscall.Handle - Background syscall.Handle - MenuName *uint16 - ClassName *uint16 - IconSm syscall.Handle -} - -type Point struct { - X uintptr - Y uintptr -} - -type Msg struct { - Hwnd syscall.Handle - Message uint32 - Wparam uintptr - Lparam uintptr - Time uint32 - Pt Point -} - -const ( - // Window styles - WS_OVERLAPPED = 0 - WS_POPUP = 0x80000000 - WS_CHILD = 0x40000000 - WS_MINIMIZE = 0x20000000 - WS_VISIBLE = 0x10000000 - WS_DISABLED = 0x8000000 - WS_CLIPSIBLINGS = 0x4000000 - WS_CLIPCHILDREN = 0x2000000 - WS_MAXIMIZE = 0x1000000 - WS_CAPTION = WS_BORDER | WS_DLGFRAME - WS_BORDER = 0x800000 - WS_DLGFRAME = 0x400000 - WS_VSCROLL = 0x200000 - WS_HSCROLL = 0x100000 - WS_SYSMENU = 0x80000 - WS_THICKFRAME = 0x40000 - WS_GROUP = 0x20000 - WS_TABSTOP = 0x10000 - WS_MINIMIZEBOX = 0x20000 - WS_MAXIMIZEBOX = 0x10000 - WS_TILED = WS_OVERLAPPED - WS_ICONIC = WS_MINIMIZE - WS_SIZEBOX = WS_THICKFRAME - // Common Window Styles - WS_OVERLAPPEDWINDOW = WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX - WS_TILEDWINDOW = WS_OVERLAPPEDWINDOW - WS_POPUPWINDOW = WS_POPUP | WS_BORDER | WS_SYSMENU - WS_CHILDWINDOW = WS_CHILD - - WS_EX_CLIENTEDGE = 0x200 - - // Some windows messages - WM_CREATE = 1 - WM_DESTROY = 2 - WM_CLOSE = 16 - WM_COMMAND = 273 - - // Some button control styles - BS_DEFPUSHBUTTON = 1 - - // Some color constants - COLOR_WINDOW = 5 - COLOR_BTNFACE = 15 - - // Default window position - CW_USEDEFAULT = 0x80000000 - 0x100000000 - - // Show window default style - SW_SHOWDEFAULT = 10 -) - -var ( - // Some globally known cursors - IDC_ARROW = MakeIntResource(32512) - IDC_IBEAM = MakeIntResource(32513) - IDC_WAIT = MakeIntResource(32514) - IDC_CROSS = MakeIntResource(32515) - - // Some globally known icons - IDI_APPLICATION = MakeIntResource(32512) - IDI_HAND = MakeIntResource(32513) - IDI_QUESTION = MakeIntResource(32514) - IDI_EXCLAMATION = MakeIntResource(32515) - IDI_ASTERISK = MakeIntResource(32516) - IDI_WINLOGO = MakeIntResource(32517) - IDI_WARNING = IDI_EXCLAMATION - IDI_ERROR = IDI_HAND - IDI_INFORMATION = IDI_ASTERISK -) - -//sys GetModuleHandle(modname *uint16) (handle syscall.Handle, err error) = GetModuleHandleW -//sys RegisterClassEx(wndclass *Wndclassex) (atom uint16, err error) = user32.RegisterClassExW -//sys CreateWindowEx(exstyle uint32, classname *uint16, windowname *uint16, style uint32, x int32, y int32, width int32, height int32, wndparent syscall.Handle, menu syscall.Handle, instance syscall.Handle, param uintptr) (hwnd syscall.Handle, err error) = user32.CreateWindowExW -//sys DefWindowProc(hwnd syscall.Handle, msg uint32, wparam uintptr, lparam uintptr) (lresult uintptr) = user32.DefWindowProcW -//sys DestroyWindow(hwnd syscall.Handle) (err error) = user32.DestroyWindow -//sys PostQuitMessage(exitcode int32) = user32.PostQuitMessage -//sys ShowWindow(hwnd syscall.Handle, cmdshow int32) (wasvisible bool) = user32.ShowWindow -//sys UpdateWindow(hwnd syscall.Handle) (err error) = user32.UpdateWindow -//sys GetMessage(msg *Msg, hwnd syscall.Handle, MsgFilterMin uint32, MsgFilterMax uint32) (ret int32, err error) [failretval==-1] = user32.GetMessageW -//sys TranslateMessage(msg *Msg) (done bool) = user32.TranslateMessage -//sys DispatchMessage(msg *Msg) (ret int32) = user32.DispatchMessageW -//sys LoadIcon(instance syscall.Handle, iconname *uint16) (icon syscall.Handle, err error) = user32.LoadIconW -//sys LoadCursor(instance syscall.Handle, cursorname *uint16) (cursor syscall.Handle, err error) = user32.LoadCursorW -//sys SetCursor(cursor syscall.Handle) (precursor syscall.Handle, err error) = user32.SetCursor -//sys SendMessage(hwnd syscall.Handle, msg uint32, wparam uintptr, lparam uintptr) (lresult uintptr) = user32.SendMessageW -//sys PostMessage(hwnd syscall.Handle, msg uint32, wparam uintptr, lparam uintptr) (err error) = user32.PostMessageW - -func MakeIntResource(id uint16) *uint16 { - return (*uint16)(unsafe.Pointer(uintptr(id))) -} diff --git a/wingui/wingdi.go b/wingui/wingdi.go deleted file mode 100644 index 88b9468..0000000 --- a/wingui/wingdi.go +++ /dev/null @@ -1,149 +0,0 @@ -// +build windows - -package wingui - -import ( - "syscall" - "unsafe" -) - -const ( - WM_PAINT = 15 - - BI_RGB = 0 - BI_BITFIELDS = 3 - - DIB_PAL_COLORS = 1 - DIB_RGB_COLORS = 0 - - BLACKNESS = 0x42 - DSTINVERT = 0x550009 - MERGECOPY = 0xC000CA - MERGEPAINT = 0xBB0226 - NOTSRCCOPY = 0x330008 - NOTSRCERASE = 0x1100A6 - PATCOPY = 0xF00021 - PATINVERT = 0x5A0049 - PATPAINT = 0xFB0A09 - SRCAND = 0x8800C6 - SRCCOPY = 0xCC0020 - SRCERASE = 0x440328 - SRCINVERT = 0x660046 - SRCPAINT = 0xEE0086 - WHITENESS = 0xFF0062 -) - -type RECT struct { - Left int32 - Top int32 - Right int32 - Bottom int32 -} - -type PAINTSTRUCT struct { - HDC syscall.Handle - Erase int32 // bool - RcPaint RECT - Restore int32 // bool - IncUpdate int32 // bool - rgbReserved [32]byte -} - -type BITMAP struct { - Type int32 - Width int32 - Height int32 - WidthBytes int32 - Planes uint16 - BitsPixel uint16 - Bits *byte -} - -type BITMAPINFOHEADER struct { - Size uint32 - Width int32 - Height int32 - Planes uint16 - BitCount uint16 - Compression uint32 - SizeImage uint32 - XPelsPerMeter int32 - YPelsPerMeter int32 - ClrUsed uint32 - ClrImportant uint32 -} - -type BITMAPINFO struct { - Header BITMAPINFOHEADER - Colors [1]RGBQUAD -} - -type RGBQUAD struct { - Blue byte - Green byte - Red byte - Reserved byte -} - -var ( - modgdi32 = syscall.NewLazyDLL("gdi32.dll") - - procGetDC = moduser32.NewProc("GetDC") - procCreateCompatibleDC = modgdi32.NewProc("CreateCompatibleDC") - procGetObject = modgdi32.NewProc("GetObjectW") - procSelectObject = modgdi32.NewProc("SelectObject") - procBeginPaint = moduser32.NewProc("BeginPaint") - procEndPaint = moduser32.NewProc("EndPaint") - procCreateCompatibleBitmap = modgdi32.NewProc("CreateCompatibleBitmap") - procCreateDIBSection = modgdi32.NewProc("CreateDIBSection") - procBitBlt = modgdi32.NewProc("BitBlt") -) - -func GetDC(hwnd syscall.Handle) (hdc syscall.Handle) { - r0, _, _ := syscall.Syscall(procGetDC.Addr(), 1, uintptr(hwnd), 0, 0) - hdc = syscall.Handle(r0) - return hdc -} - -func CreateCompatibleDC(hwnd syscall.Handle) (hdc syscall.Handle) { - r0, _, _ := syscall.Syscall(procCreateCompatibleDC.Addr(), 1, uintptr(hwnd), 0, 0) - hdc = syscall.Handle(r0) - return hdc -} - -func GetObject(hgdiobj syscall.Handle, cbBuffer uintptr, object uintptr) (size uint32) { - r0, _, _ := syscall.Syscall(procGetObject.Addr(), 3, uintptr(hgdiobj), uintptr(cbBuffer), object) - size = uint32(r0) - return size -} - -func SelectObject(hdc syscall.Handle, hgdiobj syscall.Handle) syscall.Handle { - r0, _, _ := syscall.Syscall(procSelectObject.Addr(), 2, uintptr(hdc), uintptr(hgdiobj), 0) - return syscall.Handle(r0) -} - -func BeginPaint(hwnd syscall.Handle, ps *PAINTSTRUCT) (hdc syscall.Handle) { - r0, _, _ := syscall.Syscall(procBeginPaint.Addr(), 2, uintptr(hwnd), uintptr(unsafe.Pointer(ps)), 0) - hdc = syscall.Handle(r0) - return -} - -func EndPaint(hwnd syscall.Handle, ps *PAINTSTRUCT) bool { - syscall.Syscall(procEndPaint.Addr(), 2, uintptr(hwnd), uintptr(unsafe.Pointer(ps)), 0) - return true -} - -func CreateCompatibleBitmap(hdc syscall.Handle, width, height uintptr) (hbitmap syscall.Handle) { - r0, _, _ := syscall.Syscall(procCreateCompatibleBitmap.Addr(), 3, uintptr(hdc), uintptr(width), uintptr(height)) - return syscall.Handle(r0) -} - -func CreateDIBSection(hdc syscall.Handle, pbmi *BITMAPINFO, iUsage uint, ppvBits uintptr, hSection uint32, dwOffset uint32) (hbitmap syscall.Handle) { - r0, _, _ := syscall.Syscall6(procCreateDIBSection.Addr(), 6, uintptr(hdc), uintptr(unsafe.Pointer(pbmi)), uintptr(iUsage), ppvBits, uintptr(hSection), uintptr(dwOffset)) - return syscall.Handle(r0) -} - -func BitBlt(hdc syscall.Handle, nXDest, nYDest, nWidth, nHeight int, hdcSrc syscall.Handle, nXSrc, nYSrc int, dwRop uint32) bool { - r0, _, _ := syscall.Syscall9(procBitBlt.Addr(), 9, uintptr(hdc), uintptr(nXDest), uintptr(nYDest), uintptr(nWidth), uintptr(nHeight), uintptr(hdcSrc), uintptr(nXSrc), uintptr(nYSrc), uintptr(dwRop)) - return r0 != 0 -} diff --git a/wingui/wintest/wintest.go b/wingui/wintest/wintest.go deleted file mode 100644 index 156513f..0000000 --- a/wingui/wintest/wintest.go +++ /dev/null @@ -1,154 +0,0 @@ -// +build ignore - -package main - -import ( - "fmt" - "os" - "syscall" - "unsafe" - - . "github.com/llgcode/draw2d/wingui" -) - -// some help functions - -func abortf(format string, a ...interface{}) { - fmt.Fprintf(os.Stdout, format, a...) - os.Exit(1) -} - -func abortErrNo(funcname string, err error) { - errno, _ := err.(syscall.Errno) - abortf("%s failed: %d %s\n", funcname, uint32(errno), err) -} - -// global vars - -var ( - mh syscall.Handle - bh syscall.Handle -) - -// WinProc called by windows to notify us of all windows events we might be interested in. -func WndProc(hwnd syscall.Handle, msg uint32, wparam, lparam uintptr) (rc uintptr) { - _ = make([]int, 100000) - switch msg { - case WM_CREATE: - var e error - // CreateWindowEx - bh, e = CreateWindowEx( - 0, - syscall.StringToUTF16Ptr("button"), - syscall.StringToUTF16Ptr("Quit"), - WS_CHILD|WS_VISIBLE|BS_DEFPUSHBUTTON, - 75, 70, 140, 25, - hwnd, 1, mh, 0) - if e != nil { - abortErrNo("CreateWindowEx", e) - } - fmt.Printf("button handle is %x\n", bh) - rc = DefWindowProc(hwnd, msg, wparam, lparam) - case WM_COMMAND: - switch syscall.Handle(lparam) { - case bh: - e := PostMessage(hwnd, WM_CLOSE, 0, 0) - if e != nil { - abortErrNo("PostMessage", e) - } - default: - rc = DefWindowProc(hwnd, msg, wparam, lparam) - } - case WM_CLOSE: - DestroyWindow(hwnd) - case WM_DESTROY: - PostQuitMessage(0) - default: - rc = DefWindowProc(hwnd, msg, wparam, lparam) - } - //fmt.Printf("WndProc(0x%08x, %d, 0x%08x, 0x%08x) (%d)\n", hwnd, msg, wparam, lparam, rc) - return -} - -func rungui() int { - var e error - - // GetModuleHandle - mh, e = GetModuleHandle(nil) - if e != nil { - abortErrNo("GetModuleHandle", e) - } - - // Get icon we're going to use. - myicon, e := LoadIcon(0, IDI_APPLICATION) - if e != nil { - abortErrNo("LoadIcon", e) - } - - // Get cursor we're going to use. - mycursor, e := LoadCursor(0, IDC_ARROW) - if e != nil { - abortErrNo("LoadCursor", e) - } - - // Create callback - wproc := syscall.NewCallback(WndProc) - - // RegisterClassEx - wcname := syscall.StringToUTF16Ptr("myWindowClass") - var wc Wndclassex - wc.Size = uint32(unsafe.Sizeof(wc)) - wc.WndProc = wproc - wc.Instance = mh - wc.Icon = myicon - wc.Cursor = mycursor - wc.Background = COLOR_BTNFACE + 1 - wc.MenuName = nil - wc.ClassName = wcname - wc.IconSm = myicon - if _, e := RegisterClassEx(&wc); e != nil { - abortErrNo("RegisterClassEx", e) - } - - // CreateWindowEx - wh, e := CreateWindowEx( - WS_EX_CLIENTEDGE, - wcname, - syscall.StringToUTF16Ptr("My window"), - WS_OVERLAPPEDWINDOW, - CW_USEDEFAULT, CW_USEDEFAULT, 300, 200, - 0, 0, mh, 0) - if e != nil { - abortErrNo("CreateWindowEx", e) - } - fmt.Printf("main window handle is %x\n", wh) - - // ShowWindow - ShowWindow(wh, SW_SHOWDEFAULT) - - // UpdateWindow - if e := UpdateWindow(wh); e != nil { - abortErrNo("UpdateWindow", e) - } - - // Process all windows messages until WM_QUIT. - var m Msg - for { - r, e := GetMessage(&m, 0, 0, 0) - if e != nil { - abortErrNo("GetMessage", e) - } - if r == 0 { - // WM_QUIT received -> get out - break - } - TranslateMessage(&m) - DispatchMessage(&m) - } - return int(m.Wparam) -} - -func main() { - rc := rungui() - os.Exit(rc) -} diff --git a/wingui/wintestgdi/wintestgdi.go b/wingui/wintestgdi/wintestgdi.go deleted file mode 100644 index a82cef5..0000000 --- a/wingui/wintestgdi/wintestgdi.go +++ /dev/null @@ -1,250 +0,0 @@ -// Copyright 2011 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. - -// +build ignore - -package main - -import ( - "fmt" - "image" - "image/color" - "io/ioutil" - "os" - "strings" - "syscall" - "time" - "unsafe" - - "github.com/llgcode/draw2d" - "github.com/llgcode/draw2d/wingui" - "github.com/llgcode/ps" -) - -// some help functions - -func abortf(format string, a ...interface{}) { - fmt.Fprintf(os.Stdout, format, a...) - os.Exit(1) -} - -func abortErrNo(funcname string, err error) { - abortf("%s failed: %d %s\n", funcname, err, err) -} - -// global vars - -func TestDrawCubicCurve(gc draw2d.GraphicContext) { - // draw a cubic curve - x, y := 25.6, 128.0 - x1, y1 := 102.4, 230.4 - x2, y2 := 153.6, 25.6 - x3, y3 := 230.4, 128.0 - - gc.SetStrokeColor(color.NRGBA{0, 0, 0, 0xFF}) - gc.SetLineWidth(10) - gc.MoveTo(x, y) - gc.CubicCurveTo(x1, y1, x2, y2, x3, y3) - gc.Stroke() - - gc.SetStrokeColor(color.NRGBA{0xFF, 0, 0, 0xFF}) - - gc.SetLineWidth(6) - // draw segment of curve - gc.MoveTo(x, y) - gc.LineTo(x1, y1) - gc.LineTo(x2, y2) - gc.LineTo(x3, y3) - gc.Stroke() -} - -func DrawTiger(gc draw2d.GraphicContext) { - if postscriptContent == "" { - src, err := os.OpenFile("../../../ps/samples/tiger.ps", 0, 0) - if err != nil { - fmt.Println("can't find postscript file.") - return - } - defer src.Close() - bytes, err := ioutil.ReadAll(src) - postscriptContent = string(bytes) - } - interpreter := ps.NewInterpreter(gc) - reader := strings.NewReader(postscriptContent) - interpreter.Execute(reader) -} - -var ( - mh syscall.Handle - hdcWndBuffer syscall.Handle - wndBufferHeader syscall.Handle - wndBuffer wingui.BITMAP - ppvBits *uint8 - backBuffer *image.RGBA - postscriptContent string -) - -// WinProc called by windows to notify us of all windows events we might be interested in. -func WndProc(hwnd syscall.Handle, msg uint32, wparam, lparam uintptr) (rc uintptr) { - _ = make([]int, 100000) - switch msg { - case wingui.WM_CREATE: - hdc := wingui.GetDC(hwnd) - hdcWndBuffer = wingui.CreateCompatibleDC(hdc) - wndBufferHeader = wingui.CreateCompatibleBitmap(hdc, 600, 800) - wingui.GetObject(wndBufferHeader, unsafe.Sizeof(wndBuffer), uintptr(unsafe.Pointer(&wndBuffer))) - wingui.SelectObject(hdcWndBuffer, wndBufferHeader) - - var bmp_header wingui.BITMAPINFOHEADER - bmp_header.Size = uint32(unsafe.Sizeof(bmp_header)) - bmp_header.Width = 600 - bmp_header.Height = 800 - bmp_header.SizeImage = 0 // the api says this must be 0 for BI_RGB images - bmp_header.Compression = wingui.BI_RGB - bmp_header.BitCount = 32 - bmp_header.Planes = 1 - bmp_header.XPelsPerMeter = 0 - bmp_header.YPelsPerMeter = 0 - bmp_header.ClrUsed = 0 - bmp_header.ClrImportant = 0 - //bitmap info - var bmpinfo wingui.BITMAPINFO - bmpinfo.Colors[0].Blue = 0 - bmpinfo.Colors[0].Green = 0 - bmpinfo.Colors[0].Red = 0 - bmpinfo.Colors[0].Reserved = 0 - bmpinfo.Header = bmp_header - wndBufferHeader = wingui.CreateDIBSection(hdc, &bmpinfo, wingui.DIB_RGB_COLORS, uintptr(unsafe.Pointer(&ppvBits)), 0, 0) - wingui.GetObject(wndBufferHeader, unsafe.Sizeof(wndBufferHeader), uintptr(unsafe.Pointer(&wndBuffer))) - hdcWndBuffer = wingui.CreateCompatibleDC(hdc) - wingui.SelectObject(hdcWndBuffer, wndBufferHeader) - - pixel := (*[600 * 800 * 4]uint8)(unsafe.Pointer(ppvBits)) - pixelSlice := pixel[:] - backBuffer = &image.RGBA{pixelSlice, 4 * 600, image.Rect(0, 0, 600, 800)} - fmt.Println("Create windows") - rc = wingui.DefWindowProc(hwnd, msg, wparam, lparam) - case wingui.WM_COMMAND: - switch syscall.Handle(lparam) { - default: - rc = wingui.DefWindowProc(hwnd, msg, wparam, lparam) - } - case wingui.WM_PAINT: - var ps wingui.PAINTSTRUCT - hdc := wingui.BeginPaint(hwnd, &ps) - t := time.Now() - gc := draw2d.NewGraphicContext(backBuffer) - /*gc.SetFillColor(color.RGBA{0xFF, 0xFF, 0xFF, 0xFF}) - gc.Clear()*/ - for i := 0; i < len(backBuffer.Pix); i += 1 { - backBuffer.Pix[i] = 0xff - } - gc.Save() - //gc.Translate(0, -380) - DrawTiger(gc) - gc.Restore() - // back buf in - var tmp uint8 - for i := 0; i < len(backBuffer.Pix); i += 4 { - tmp = backBuffer.Pix[i] - backBuffer.Pix[i] = backBuffer.Pix[i+2] - backBuffer.Pix[i+2] = tmp - } - wingui.BitBlt(hdc, 0, 0, int(wndBuffer.Width), int(wndBuffer.Height), hdcWndBuffer, 0, 0, wingui.SRCCOPY) - wingui.EndPaint(hwnd, &ps) - rc = wingui.DefWindowProc(hwnd, msg, wparam, lparam) - dt := time.Now().Sub(t) - fmt.Printf("Redraw in : %f ms\n", float64(dt)*1e-6) - case wingui.WM_CLOSE: - wingui.DestroyWindow(hwnd) - case wingui.WM_DESTROY: - wingui.PostQuitMessage(0) - default: - rc = wingui.DefWindowProc(hwnd, msg, wparam, lparam) - } - return -} - -func rungui() int { - var e error - - // GetModuleHandle - mh, e = wingui.GetModuleHandle(nil) - if e != nil { - abortErrNo("GetModuleHandle", e) - } - - // Get icon we're going to use. - myicon, e := wingui.LoadIcon(0, wingui.IDI_APPLICATION) - if e != nil { - abortErrNo("LoadIcon", e) - } - - // Get cursor we're going to use. - mycursor, e := wingui.LoadCursor(0, wingui.IDC_ARROW) - if e != nil { - abortErrNo("LoadCursor", e) - } - - // Create callback - wproc := syscall.NewCallback(WndProc) - - // RegisterClassEx - wcname := syscall.StringToUTF16Ptr("myWindowClass") - var wc wingui.Wndclassex - wc.Size = uint32(unsafe.Sizeof(wc)) - wc.WndProc = wproc - wc.Instance = mh - wc.Icon = myicon - wc.Cursor = mycursor - wc.Background = wingui.COLOR_BTNFACE + 1 - wc.MenuName = nil - wc.ClassName = wcname - wc.IconSm = myicon - if _, e := wingui.RegisterClassEx(&wc); e != nil { - abortErrNo("RegisterClassEx", e) - } - - // CreateWindowEx - wh, e := wingui.CreateWindowEx( - wingui.WS_EX_CLIENTEDGE, - wcname, - syscall.StringToUTF16Ptr("My window"), - wingui.WS_OVERLAPPEDWINDOW, - wingui.CW_USEDEFAULT, wingui.CW_USEDEFAULT, 600, 800, - 0, 0, mh, 0) - if e != nil { - abortErrNo("CreateWindowEx", e) - } - fmt.Printf("main window handle is %x\n", wh) - - // ShowWindow - wingui.ShowWindow(wh, wingui.SW_SHOWDEFAULT) - - // UpdateWindow - if e := wingui.UpdateWindow(wh); e != nil { - abortErrNo("UpdateWindow", e) - } - - // Process all windows messages until WM_QUIT. - var m wingui.Msg - for { - r, e := wingui.GetMessage(&m, 0, 0, 0) - if e != nil { - abortErrNo("GetMessage", e) - } - if r == 0 { - // WM_QUIT received -> get out - break - } - wingui.TranslateMessage(&m) - wingui.DispatchMessage(&m) - } - return int(m.Wparam) -} - -func main() { - rc := rungui() - os.Exit(rc) -} diff --git a/wingui/zwinapi.go b/wingui/zwinapi.go deleted file mode 100644 index 3c5302e..0000000 --- a/wingui/zwinapi.go +++ /dev/null @@ -1,192 +0,0 @@ -// +build windows -// mksyscall_windows.pl winapi.go -// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT - -package wingui - -import "unsafe" -import "syscall" - -var ( - modkernel32 = syscall.NewLazyDLL("kernel32.dll") - moduser32 = syscall.NewLazyDLL("user32.dll") - - procGetModuleHandleW = modkernel32.NewProc("GetModuleHandleW") - procRegisterClassExW = moduser32.NewProc("RegisterClassExW") - procCreateWindowExW = moduser32.NewProc("CreateWindowExW") - procDefWindowProcW = moduser32.NewProc("DefWindowProcW") - procDestroyWindow = moduser32.NewProc("DestroyWindow") - procPostQuitMessage = moduser32.NewProc("PostQuitMessage") - procShowWindow = moduser32.NewProc("ShowWindow") - procUpdateWindow = moduser32.NewProc("UpdateWindow") - procGetMessageW = moduser32.NewProc("GetMessageW") - procTranslateMessage = moduser32.NewProc("TranslateMessage") - procDispatchMessageW = moduser32.NewProc("DispatchMessageW") - procLoadIconW = moduser32.NewProc("LoadIconW") - procLoadCursorW = moduser32.NewProc("LoadCursorW") - procSetCursor = moduser32.NewProc("SetCursor") - procSendMessageW = moduser32.NewProc("SendMessageW") - procPostMessageW = moduser32.NewProc("PostMessageW") -) - -func GetModuleHandle(modname *uint16) (handle syscall.Handle, err error) { - r0, _, e1 := syscall.Syscall(procGetModuleHandleW.Addr(), 1, uintptr(unsafe.Pointer(modname)), 0, 0) - handle = syscall.Handle(r0) - if handle == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func RegisterClassEx(wndclass *Wndclassex) (atom uint16, err error) { - r0, _, e1 := syscall.Syscall(procRegisterClassExW.Addr(), 1, uintptr(unsafe.Pointer(wndclass)), 0, 0) - atom = uint16(r0) - if atom == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func CreateWindowEx(exstyle uint32, classname *uint16, windowname *uint16, style uint32, x int32, y int32, width int32, height int32, wndparent syscall.Handle, menu syscall.Handle, instance syscall.Handle, param uintptr) (hwnd syscall.Handle, err error) { - r0, _, e1 := syscall.Syscall12(procCreateWindowExW.Addr(), 12, uintptr(exstyle), uintptr(unsafe.Pointer(classname)), uintptr(unsafe.Pointer(windowname)), uintptr(style), uintptr(x), uintptr(y), uintptr(width), uintptr(height), uintptr(wndparent), uintptr(menu), uintptr(instance), uintptr(param)) - hwnd = syscall.Handle(r0) - if hwnd == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func DefWindowProc(hwnd syscall.Handle, msg uint32, wparam uintptr, lparam uintptr) (lresult uintptr) { - r0, _, _ := syscall.Syscall6(procDefWindowProcW.Addr(), 4, uintptr(hwnd), uintptr(msg), uintptr(wparam), uintptr(lparam), 0, 0) - lresult = uintptr(r0) - return -} - -func DestroyWindow(hwnd syscall.Handle) (err error) { - r1, _, e1 := syscall.Syscall(procDestroyWindow.Addr(), 1, uintptr(hwnd), 0, 0) - if int(r1) == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func PostQuitMessage(exitcode int32) { - syscall.Syscall(procPostQuitMessage.Addr(), 1, uintptr(exitcode), 0, 0) - return -} - -func ShowWindow(hwnd syscall.Handle, cmdshow int32) (wasvisible bool) { - r0, _, _ := syscall.Syscall(procShowWindow.Addr(), 2, uintptr(hwnd), uintptr(cmdshow), 0) - wasvisible = bool(r0 != 0) - return -} - -func UpdateWindow(hwnd syscall.Handle) (err error) { - r1, _, e1 := syscall.Syscall(procUpdateWindow.Addr(), 1, uintptr(hwnd), 0, 0) - if int(r1) == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func GetMessage(msg *Msg, hwnd syscall.Handle, MsgFilterMin uint32, MsgFilterMax uint32) (ret int32, err error) { - r0, _, e1 := syscall.Syscall6(procGetMessageW.Addr(), 4, uintptr(unsafe.Pointer(msg)), uintptr(hwnd), uintptr(MsgFilterMin), uintptr(MsgFilterMax), 0, 0) - ret = int32(r0) - if ret == -1 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func TranslateMessage(msg *Msg) (done bool) { - r0, _, _ := syscall.Syscall(procTranslateMessage.Addr(), 1, uintptr(unsafe.Pointer(msg)), 0, 0) - done = bool(r0 != 0) - return -} - -func DispatchMessage(msg *Msg) (ret int32) { - r0, _, _ := syscall.Syscall(procDispatchMessageW.Addr(), 1, uintptr(unsafe.Pointer(msg)), 0, 0) - ret = int32(r0) - return -} - -func LoadIcon(instance syscall.Handle, iconname *uint16) (icon syscall.Handle, err error) { - r0, _, e1 := syscall.Syscall(procLoadIconW.Addr(), 2, uintptr(instance), uintptr(unsafe.Pointer(iconname)), 0) - icon = syscall.Handle(r0) - if icon == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func LoadCursor(instance syscall.Handle, cursorname *uint16) (cursor syscall.Handle, err error) { - r0, _, e1 := syscall.Syscall(procLoadCursorW.Addr(), 2, uintptr(instance), uintptr(unsafe.Pointer(cursorname)), 0) - cursor = syscall.Handle(r0) - if cursor == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func SetCursor(cursor syscall.Handle) (precursor syscall.Handle, err error) { - r0, _, e1 := syscall.Syscall(procSetCursor.Addr(), 1, uintptr(cursor), 0, 0) - precursor = syscall.Handle(r0) - if precursor == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -} - -func SendMessage(hwnd syscall.Handle, msg uint32, wparam uintptr, lparam uintptr) (lresult uintptr) { - r0, _, _ := syscall.Syscall6(procSendMessageW.Addr(), 4, uintptr(hwnd), uintptr(msg), uintptr(wparam), uintptr(lparam), 0, 0) - lresult = uintptr(r0) - return -} - -func PostMessage(hwnd syscall.Handle, msg uint32, wparam uintptr, lparam uintptr) (err error) { - r1, _, e1 := syscall.Syscall6(procPostMessageW.Addr(), 4, uintptr(hwnd), uintptr(msg), uintptr(wparam), uintptr(lparam), 0, 0) - if int(r1) == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return -}