lumi

Форк
0
/
event.go 
84 строки · 1.8 Кб
1
package event
2

3
import (
4
	kelo "gitverse.ru/metalcore/kelo"
5
)
6
import keloWrapper "gitverse.ru/metalcore/kelo/wrapper"
7

8
type Setter interface {
9
	SetEvent(target kelo.EventTargetValuer)
10
}
11

12
type Event struct {
13
	name    string
14
	handler keloWrapper.Event
15
}
16

17
func (e *Event) SetEvent(v kelo.EventTargetValuer) {
18
	v.AddEventListener(e.name, e.handler)
19
}
20

21
func NewEvent(name string, handler keloWrapper.Event) *Event {
22
	return &Event{
23
		name:    name,
24
		handler: handler,
25
	}
26
}
27

28
func Click(handle func()) Setter {
29
	return NewEvent("click", func(self keloWrapper.JSValue, args []keloWrapper.JSValue) {
30
		handle()
31
	})
32
}
33

34
func Input(handle func(string)) Setter {
35
	return NewEvent("input", func(self keloWrapper.JSValue, args []keloWrapper.JSValue) {
36
		val := ""
37
		if len(args) > 0 {
38
			val = args[0].Get("target").Get("value").String()
39
		}
40
		handle(val)
41
	})
42
}
43

44
func KeyUp(handle func()) Setter {
45
	return NewEvent("keyup", func(self keloWrapper.JSValue, args []keloWrapper.JSValue) {
46
		handle()
47
	})
48
}
49

50
func KeyDown(handle func()) Setter {
51
	return NewEvent("keydown", func(self keloWrapper.JSValue, args []keloWrapper.JSValue) {
52
		handle()
53
	})
54
}
55

56
func Focus(handle func()) Setter {
57
	return NewEvent("focus", func(self keloWrapper.JSValue, args []keloWrapper.JSValue) {
58
		handle()
59
	})
60
}
61

62
func MouseOver(handle func()) Setter {
63
	return NewEvent("mouseover", func(self keloWrapper.JSValue, args []keloWrapper.JSValue) {
64
		handle()
65
	})
66
}
67

68
func MouseDown(handle func()) Setter {
69
	return NewEvent("mousedown", func(self keloWrapper.JSValue, args []keloWrapper.JSValue) {
70
		handle()
71
	})
72
}
73

74
func MouseMove(handle func()) Setter {
75
	return NewEvent("mousemove", func(self keloWrapper.JSValue, args []keloWrapper.JSValue) {
76
		handle()
77
	})
78
}
79

80
func ContextMenu(handle func()) Setter {
81
	return NewEvent("contextmenu", func(self keloWrapper.JSValue, args []keloWrapper.JSValue) {
82
		handle()
83
	})
84
}
85

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.