From ab56e18f1bf729223566160a9a5d0794e2fc96e1 Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Sat, 4 May 2019 22:40:19 +0200 Subject: ui: syntax: implement trafic blocking semantics This is our "auto kill switch". --- ui/syntax/syntaxedit.go | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'ui/syntax/syntaxedit.go') diff --git a/ui/syntax/syntaxedit.go b/ui/syntax/syntaxedit.go index 5598d7a8..67e132c4 100644 --- a/ui/syntax/syntaxedit.go +++ b/ui/syntax/syntaxedit.go @@ -20,10 +20,17 @@ import "C" type SyntaxEdit struct { walk.WidgetBase - textChangedPublisher walk.EventPublisher - privateKeyPublisher walk.StringEventPublisher + textChangedPublisher walk.EventPublisher + privateKeyPublisher walk.StringEventPublisher + blockUntunneledTrafficPublisher walk.IntEventPublisher } +const ( + InevaluableBlockingUntunneledTraffic = C.InevaluableBlockingUntunneledTraffic + BlockingUntunneledTraffic = C.BlockingUntunneledTraffic + NotBlockingUntunneledTraffic = C.NotBlockingUntunneledTraffic +) + func (se *SyntaxEdit) LayoutFlags() walk.LayoutFlags { return walk.GrowableHorz | walk.GrowableVert | walk.GreedyHorz | walk.GreedyVert } @@ -63,6 +70,10 @@ func (se *SyntaxEdit) PrivateKeyChanged() *walk.StringEvent { return se.privateKeyPublisher.Event() } +func (se *SyntaxEdit) BlockUntunneledTrafficStateChanged() *walk.IntEvent { + return se.blockUntunneledTrafficPublisher.Event() +} + func (se *SyntaxEdit) WndProc(hwnd win.HWND, msg uint32, wParam, lParam uintptr) uintptr { switch msg { case win.WM_NOTIFY, win.WM_COMMAND: @@ -78,6 +89,8 @@ func (se *SyntaxEdit) WndProc(hwnd win.HWND, msg uint32, wParam, lParam uintptr) } else { se.privateKeyPublisher.Publish(C.GoString((*C.char)(unsafe.Pointer(lParam)))) } + case C.SE_TRAFFIC_BLOCK: + se.blockUntunneledTrafficPublisher.Publish(int(lParam)) } return se.WidgetBase.WndProc(hwnd, msg, wParam, lParam) } -- cgit v1.2.3-59-g8ed1b