mirror of
https://github.com/VladimirMarkelov/clui.git
synced 2025-04-26 13:49:01 +08:00
#79 - allow Windows to handle terminal resize event
This commit is contained in:
parent
c7750d4e42
commit
5d3a40175d
2
LICENSE
2
LICENSE
@ -1,6 +1,6 @@
|
|||||||
The MIT License (MIT)
|
The MIT License (MIT)
|
||||||
|
|
||||||
Copyright (c) 2015 Vladimir V. Markelov <vmatroskin@gmail.com>
|
Copyright (c) 2015-2018 Vladimir V. Markelov <vmatroskin@gmail.com>
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
@ -1,4 +1,8 @@
|
|||||||
2018-01-25 - version 0.7.0
|
2018-01-26 - version 0.7.0
|
||||||
|
[+] Added new event handler for Window: set a callback OnScreenResize if you
|
||||||
|
want to handle terminal resize event
|
||||||
|
|
||||||
|
2018-01-25 - version 0.7.0
|
||||||
[+] Added new methods to Composer: BeginUpdate and EndUpdate to use in
|
[+] Added new methods to Composer: BeginUpdate and EndUpdate to use in
|
||||||
multithreading application. Call BeginUpdate before creating a new Window or
|
multithreading application. Call BeginUpdate before creating a new Window or
|
||||||
manipulating Composer Windows if the code runs in separate thread. And
|
manipulating Composer Windows if the code runs in separate thread. And
|
||||||
|
@ -686,6 +686,11 @@ func ProcessEvent(ev Event) {
|
|||||||
wnd.PlaceChildren()
|
wnd.PlaceChildren()
|
||||||
RefreshScreen()
|
RefreshScreen()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if wnd.onScreenResize != nil {
|
||||||
|
wnd.onScreenResize(ev)
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
case EventKey:
|
case EventKey:
|
||||||
comp.processKey(ev)
|
comp.processKey(ev)
|
||||||
|
13
window.go
13
window.go
@ -20,8 +20,9 @@ type Window struct {
|
|||||||
immovable bool
|
immovable bool
|
||||||
fixedSize bool
|
fixedSize bool
|
||||||
|
|
||||||
onClose func(Event) bool
|
onClose func(Event) bool
|
||||||
onKeyDown func(Event) bool
|
onKeyDown func(Event) bool
|
||||||
|
onScreenResize func(Event)
|
||||||
}
|
}
|
||||||
|
|
||||||
func CreateWindow(x, y, w, h int, title string) *Window {
|
func CreateWindow(x, y, w, h int, title string) *Window {
|
||||||
@ -256,14 +257,22 @@ func (c *Window) ProcessEvent(ev Event) bool {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// OnClose sets the callback that is called when the Window is about to destroy
|
||||||
func (w *Window) OnClose(fn func(Event) bool) {
|
func (w *Window) OnClose(fn func(Event) bool) {
|
||||||
w.onClose = fn
|
w.onClose = fn
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// OnKeyDown sets the callback that is called when a user presses a key
|
||||||
|
// while the Window is active
|
||||||
func (w *Window) OnKeyDown(fn func(Event) bool) {
|
func (w *Window) OnKeyDown(fn func(Event) bool) {
|
||||||
w.onKeyDown = fn
|
w.onKeyDown = fn
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// OnScreenResize sets the callback that is called when size of terminal changes
|
||||||
|
func (w *Window) OnScreenResize(fn func(Event)) {
|
||||||
|
w.onScreenResize = fn
|
||||||
|
}
|
||||||
|
|
||||||
// SetMaximized opens the view to full screen or restores its
|
// SetMaximized opens the view to full screen or restores its
|
||||||
// previous size
|
// previous size
|
||||||
func (w *Window) SetMaximized(maximize bool) {
|
func (w *Window) SetMaximized(maximize bool) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user