summaryrefslogtreecommitdiff
path: root/redo/window_windows.go
diff options
context:
space:
mode:
Diffstat (limited to 'redo/window_windows.go')
-rw-r--r--redo/window_windows.go19
1 files changed, 19 insertions, 0 deletions
diff --git a/redo/window_windows.go b/redo/window_windows.go
index 60f89d1..5789df8 100644
--- a/redo/window_windows.go
+++ b/redo/window_windows.go
@@ -14,6 +14,7 @@ import "C"
type window struct {
hwnd C.HWND
shownbefore bool
+ modallevel int
closing *event
@@ -99,3 +100,21 @@ func windowClosing(data unsafe.Pointer) {
C.windowClose(w.hwnd)
}
}
+
+//export windowBeginModal
+func windowBeginModal(data unsafe.Pointer) {
+ w := (*window)(data)
+ C.EnableWindow(w.hwnd, C.FALSE)
+ w.modallevel++
+}
+
+//export windowEndModal
+func windowEndModal(data unsafe.Pointer) {
+ w := (*window)(data)
+ w.modallevel--
+ if w.modallevel == 0 {
+ C.EnableWindow(w.hwnd, C.TRUE)
+ } else if w.modallevel < 0 {
+ panic("window begin/end modal mismatch")
+ }
+}