Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(253)

Side by Side Diff: src/pkg/exp/wingui/winapi.go

Issue 1696051: code review 1696051: runtime: implementation of callback functions for windows (Closed)
Patch Set: code review 1696051: runtime: implementation of callback functions for windows Created 13 years, 2 months ago
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/pkg/exp/wingui/gui.go ('k') | src/pkg/exp/wingui/zwinapi.go » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2011 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
4
5 package main
6
7 import (
8 "syscall"
9 "unsafe"
10 )
11
12 func loadDll(fname string) uint32 {
13 h, e := syscall.LoadLibrary(fname)
14 if e != 0 {
15 abortf("LoadLibrary(%s) failed with err=%d.\n", fname, e)
16 }
17 return h
18 }
19
20 func getSysProcAddr(m uint32, pname string) uintptr {
21 p, e := syscall.GetProcAddress(m, pname)
22 if e != 0 {
23 abortf("GetProcAddress(%s) failed with err=%d.\n", pname, e)
24 }
25 return uintptr(p)
26 }
27
28 type Wndclassex struct {
29 Size uint32
30 Style uint32
31 WndProc uint32
32 ClsExtra int32
33 WndExtra int32
34 Instance uint32
35 Icon uint32
36 Cursor uint32
37 Background uint32
38 MenuName *uint16
39 ClassName *uint16
40 IconSm uint32
41 }
42
43 type Point struct {
44 X int32
45 Y int32
46 }
47
48 type Msg struct {
49 Hwnd uint32
50 Message uint32
51 Wparam int32
52 Lparam int32
53 Time uint32
54 Pt Point
55 }
56
57 const (
58 // Window styles
59 WS_OVERLAPPED = 0
60 WS_POPUP = 0x80000000
61 WS_CHILD = 0x40000000
62 WS_MINIMIZE = 0x20000000
63 WS_VISIBLE = 0x10000000
64 WS_DISABLED = 0x8000000
65 WS_CLIPSIBLINGS = 0x4000000
66 WS_CLIPCHILDREN = 0x2000000
67 WS_MAXIMIZE = 0x1000000
68 WS_CAPTION = WS_BORDER | WS_DLGFRAME
69 WS_BORDER = 0x800000
70 WS_DLGFRAME = 0x400000
71 WS_VSCROLL = 0x200000
72 WS_HSCROLL = 0x100000
73 WS_SYSMENU = 0x80000
74 WS_THICKFRAME = 0x40000
75 WS_GROUP = 0x20000
76 WS_TABSTOP = 0x10000
77 WS_MINIMIZEBOX = 0x20000
78 WS_MAXIMIZEBOX = 0x10000
79 WS_TILED = WS_OVERLAPPED
80 WS_ICONIC = WS_MINIMIZE
81 WS_SIZEBOX = WS_THICKFRAME
82 // Common Window Styles
83 WS_OVERLAPPEDWINDOW = WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICK FRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX
84 WS_TILEDWINDOW = WS_OVERLAPPEDWINDOW
85 WS_POPUPWINDOW = WS_POPUP | WS_BORDER | WS_SYSMENU
86 WS_CHILDWINDOW = WS_CHILD
87
88 WS_EX_CLIENTEDGE = 0x200
89
90 // Some windows messages
91 WM_CREATE = 1
92 WM_DESTROY = 2
93 WM_CLOSE = 16
94 WM_COMMAND = 273
95
96 // Some button control styles
97 BS_DEFPUSHBUTTON = 1
98
99 // Some colour constants
100 COLOR_WINDOW = 5
101 COLOR_BTNFACE = 15
102
103 // Default window position
104 CW_USEDEFAULT = 0x80000000 - 0x100000000
105
106 // Show window default style
107 SW_SHOWDEFAULT = 10
108 )
109
110 var (
111 // Some globaly known cusrors
112 IDC_ARROW = MakeIntResource(32512)
113 IDC_IBEAM = MakeIntResource(32513)
114 IDC_WAIT = MakeIntResource(32514)
115 IDC_CROSS = MakeIntResource(32515)
116
117 // Some globaly known icons
118 IDI_APPLICATION = MakeIntResource(32512)
119 IDI_HAND = MakeIntResource(32513)
120 IDI_QUESTION = MakeIntResource(32514)
121 IDI_EXCLAMATION = MakeIntResource(32515)
122 IDI_ASTERISK = MakeIntResource(32516)
123 IDI_WINLOGO = MakeIntResource(32517)
124 IDI_WARNING = IDI_EXCLAMATION
125 IDI_ERROR = IDI_HAND
126 IDI_INFORMATION = IDI_ASTERISK
127 )
128
129 //sys GetModuleHandle(modname *uint16) (handle uint32, errno int) = GetModuleH andleW
130 //sys RegisterClassEx(wndclass *Wndclassex) (atom uint16, errno int) = user32. RegisterClassExW
131 //sys CreateWindowEx(exstyle uint32, classname *uint16, windowname *uint16, st yle uint32, x int32, y int32, width int32, height int32, wndparent uint32, menu uint32, instance uint32, param uintptr) (hwnd uint32, errno int) = user32.Create WindowExW
132 //sys DefWindowProc(hwnd uint32, msg uint32, wparam int32, lparam int32) (lres ult int32) = user32.DefWindowProcW
133 //sys DestroyWindow(hwnd uint32) (ok bool, errno int) = user32.DestroyWindow
134 //sys PostQuitMessage(exitcode int32) = user32.PostQuitMessage
135 //sys ShowWindow(hwnd uint32, cmdshow int32) (ok bool) = user32.ShowWindow
136 //sys UpdateWindow(hwnd uint32) (ok bool, errno int) = user32.UpdateWindow
137 //sys GetMessage(msg *Msg, hwnd uint32, MsgFilterMin uint32, MsgFilterMax uint 32) (ret int32, errno int) [failretval==-1] = user32.GetMessageW
138 //sys TranslateMessage(msg *Msg) (ok bool) = user32.TranslateMessage
139 //sys DispatchMessage(msg *Msg) (ret int32) = user32.DispatchMessageW
140 //sys LoadIcon(instance uint32, iconname *uint16) (icon uint32, errno int) = u ser32.LoadIconW
141 //sys LoadCursor(instance uint32, cursorname *uint16) (cursor uint32, errno in t) = user32.LoadCursorW
142 //sys SetCursor(cursor uint32) (precursor uint32, errno int) = user32.SetCurso r
143 //sys SendMessage(hwnd uint32, msg uint32, wparam int32, lparam int32) (lresul t int32) = user32.SendMessageW
144 //sys PostMessage(hwnd uint32, msg uint32, wparam int32, lparam int32) (ok boo l, errno int) = user32.PostMessageW
145
146 func MakeIntResource(id uint16) *uint16 {
147 return (*uint16)(unsafe.Pointer(uintptr(id)))
148 }
OLDNEW
« no previous file with comments | « src/pkg/exp/wingui/gui.go ('k') | src/pkg/exp/wingui/zwinapi.go » ('j') | no next file with comments »

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b