|
279 | 279 | fOnMouseButtonUp: MouseButtonProc
|
280 | 280 | fOnClick: ClickProc
|
281 | 281 | fOnMouseMove: MouseMoveProc
|
| 282 | + fOnMouseEnter: MouseMoveProc |
| 283 | + fOnMouseLeave: MouseMoveProc |
282 | 284 | fOnKeyDown: KeyboardProc
|
283 | 285 | tag*: string
|
284 | 286 |
|
|
344 | 346 | y*: int
|
345 | 347 | MouseButtonProc* = proc(event: MouseEvent)
|
346 | 348 | MouseMoveProc* = proc(event: MouseEvent)
|
| 349 | + MouseEnterProc* = proc(event: MouseEvent) |
| 350 | + MouseLeaveProc* = proc(event: MouseEvent) |
347 | 351 |
|
348 | 352 | ClickEvent* = ref object
|
349 | 353 | control*: Control
|
@@ -899,6 +903,12 @@ method `onMouseButtonUp=`*(control: Control, callback: MouseButtonProc) {.base.}
|
899 | 903 | method onMouseMove*(control: Control): MouseMoveProc {.base.}
|
900 | 904 | method `onMouseMove=`*(control: Control, callback: MouseMoveProc) {.base.}
|
901 | 905 |
|
| 906 | +method onMouseEnter*(control: Control): MouseEnterProc {.base.} |
| 907 | +method `onMouseEnter=`*(control: Control, callback: MouseEnterProc) {.base.} |
| 908 | + |
| 909 | +method onMouseLeave*(control: Control): MouseLeaveProc {.base.} |
| 910 | +method `onMouseLeave=`*(control: Control, callback: MouseLeaveProc) {.base.} |
| 911 | + |
902 | 912 | method onClick*(control: Control): ClickProc {.base.}
|
903 | 913 | method `onClick=`*(control: Control, callback: ClickProc) {.base.}
|
904 | 914 |
|
@@ -2014,6 +2024,18 @@ method handleMouseMoveEvent(control: Control, event: MouseEvent) =
|
2014 | 2024 | if callback != nil:
|
2015 | 2025 | callback(event)
|
2016 | 2026 |
|
| 2027 | +method handleMouseEnterEvent(control: Control, event: MouseEvent) = |
| 2028 | + # can be overridden by custom control |
| 2029 | + let callback = control.onMouseEnter |
| 2030 | + if callback != nil: |
| 2031 | + callback(event) |
| 2032 | + |
| 2033 | +method handleMouseLeaveEvent(control: Control, event: MouseEvent) = |
| 2034 | + # can be overridden by custom control |
| 2035 | + let callback = control.onMouseLeave |
| 2036 | + if callback != nil: |
| 2037 | + callback(event) |
| 2038 | + |
2017 | 2039 | method handleClickEvent(control: Control, event: ClickEvent) =
|
2018 | 2040 | # can be overridden by custom button
|
2019 | 2041 | let callback = control.onClick
|
@@ -2041,6 +2063,12 @@ method `onMouseButtonUp=`(control: Control, callback: MouseButtonProc) = control
|
2041 | 2063 | method onMouseMove(control: Control): MouseMoveProc = control.fOnMouseMove
|
2042 | 2064 | method `onMouseMove=`(control: Control, callback: MouseMoveProc) = control.fOnMouseMove = callback
|
2043 | 2065 |
|
| 2066 | +method onMouseEnter(control: Control): MouseEnterProc = control.fOnMouseEnter |
| 2067 | +method `onMouseEnter=`(control: Control, callback: MouseEnterProc) = control.fOnMouseEnter = callback |
| 2068 | + |
| 2069 | +method onMouseLeave(control: Control): MouseLeaveProc = control.fOnMouseLeave |
| 2070 | +method `onMouseLeave=`(control: Control, callback: MouseLeaveProc) = control.fOnMouseLeave = callback |
| 2071 | + |
2044 | 2072 | method onClick(control: Control): ClickProc = control.fOnClick
|
2045 | 2073 | method `onClick=`(control: Control, callback: ClickProc) = control.fOnClick = callback
|
2046 | 2074 |
|
|
0 commit comments