mirror of
https://github.com/rivo/tview.git
synced 2024-11-15 06:12:46 +00:00
Add Modal.GetForm and Modal.GetFrame
This commit is contained in:
parent
fe95322038
commit
d2d0a5ca2c
17
modal.go
17
modal.go
@ -6,7 +6,8 @@ import (
|
|||||||
|
|
||||||
// Modal is a centered message window used to inform the user or prompt them
|
// Modal is a centered message window used to inform the user or prompt them
|
||||||
// for an immediate decision. It needs to have at least one button (added via
|
// for an immediate decision. It needs to have at least one button (added via
|
||||||
// AddButtons()) or it will never disappear.
|
// AddButtons()) or it will never disappear. You may embed primitives within a
|
||||||
|
// Modal by adding them to the Form returned by GetForm.
|
||||||
//
|
//
|
||||||
// See https://github.com/rivo/tview/wiki/Modal for an example.
|
// See https://github.com/rivo/tview/wiki/Modal for an example.
|
||||||
type Modal struct {
|
type Modal struct {
|
||||||
@ -95,6 +96,16 @@ func (m *Modal) SetText(text string) *Modal {
|
|||||||
return m
|
return m
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetForm returns the form embedded in the window.
|
||||||
|
func (m *Modal) GetForm() *Form {
|
||||||
|
return m.form
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetFrame returns the frame embedded in the window.
|
||||||
|
func (m *Modal) GetFrame() *Frame {
|
||||||
|
return m.frame
|
||||||
|
}
|
||||||
|
|
||||||
// AddButtons adds buttons to the window. There must be at least one button and
|
// AddButtons adds buttons to the window. There must be at least one button and
|
||||||
// a "done" handler so the window can be closed again.
|
// a "done" handler so the window can be closed again.
|
||||||
func (m *Modal) AddButtons(labels []string) *Modal {
|
func (m *Modal) AddButtons(labels []string) *Modal {
|
||||||
@ -144,6 +155,8 @@ func (m *Modal) HasFocus() bool {
|
|||||||
|
|
||||||
// Draw draws this primitive onto the screen.
|
// Draw draws this primitive onto the screen.
|
||||||
func (m *Modal) Draw(screen tcell.Screen) {
|
func (m *Modal) Draw(screen tcell.Screen) {
|
||||||
|
formItemCount := m.form.GetFormItemCount()
|
||||||
|
|
||||||
// Calculate the width of this modal.
|
// Calculate the width of this modal.
|
||||||
buttonsWidth := 0
|
buttonsWidth := 0
|
||||||
for _, button := range m.form.buttons {
|
for _, button := range m.form.buttons {
|
||||||
@ -165,7 +178,7 @@ func (m *Modal) Draw(screen tcell.Screen) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Set the modal's position and size.
|
// Set the modal's position and size.
|
||||||
height := len(lines) + 6
|
height := len(lines) + (formItemCount * 2) + 6
|
||||||
width += 4
|
width += 4
|
||||||
x := (screenWidth - width) / 2
|
x := (screenWidth - width) / 2
|
||||||
y := (screenHeight - height) / 2
|
y := (screenHeight - height) / 2
|
||||||
|
Loading…
Reference in New Issue
Block a user