diff options
author | 2012-02-20 14:53:54 +0100 | |
---|---|---|
committer | 2012-02-20 14:53:54 +0100 | |
commit | 05d8da640fe57702e9ea0c3e325f3b5a01b7dc13 (patch) | |
tree | d70da2a4be44e607a86e729917ba9bde7874f01b /closeevent.go | |
parent | TextEdit: Improve handling of escape and tab keys. (diff) | |
download | wireguard-windows-05d8da640fe57702e9ea0c3e325f3b5a01b7dc13.tar.xz wireguard-windows-05d8da640fe57702e9ea0c3e325f3b5a01b7dc13.zip |
Revert directory layout to what we had initially
Diffstat (limited to 'closeevent.go')
-rw-r--r-- | closeevent.go | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/closeevent.go b/closeevent.go new file mode 100644 index 00000000..620b5743 --- /dev/null +++ b/closeevent.go @@ -0,0 +1,38 @@ +// Copyright 2011 The Walk 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 walk + +type CloseEventHandler func(canceled *bool, reason CloseReason) + +type CloseEvent struct { + handlers []CloseEventHandler +} + +func (e *CloseEvent) Attach(handler CloseEventHandler) { + e.handlers = append(e.handlers, handler) +} + +func (e *CloseEvent) Detach(handler CloseEventHandler) { + for i, h := range e.handlers { + if h == handler { + e.handlers = append(e.handlers[:i], e.handlers[i+1:]...) + return + } + } +} + +type CloseEventPublisher struct { + event CloseEvent +} + +func (p *CloseEventPublisher) Event() *CloseEvent { + return &p.event +} + +func (p *CloseEventPublisher) Publish(canceled *bool, reason CloseReason) { + for _, handler := range p.event.handlers { + handler(canceled, reason) + } +} |