up3
Build and deploy / Build (push) Has been cancelled
Build and deploy / Update Contributors (push) Has been cancelled
Build and deploy / Deploy (push) Has been cancelled
Build and deploy / Build (push) Has been cancelled
Build and deploy / Update Contributors (push) Has been cancelled
Build and deploy / Deploy (push) Has been cancelled
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
package form
|
||||
|
||||
import "github.com/df-mc/dragonfly/server/world"
|
||||
|
||||
// Submittable is a structure which may be submitted by sending it as a form using form.New(). When filled out
|
||||
// and submitted, the struct will have its Submit method called and its fields will have the values that the
|
||||
// Submitter passed filled out.
|
||||
// The fields of a Submittable struct must be either unexported or have a type of one of those that implement
|
||||
// the form.Element interface.
|
||||
type Submittable interface {
|
||||
// Submit is called when the Submitter submits the form sent to it. Once this method is called, all fields
|
||||
// in the struct will have their values filled out as filled out by the Submitter.
|
||||
Submit(submitter Submitter, tx *world.Tx)
|
||||
}
|
||||
|
||||
// MenuSubmittable is a structure which may be submitted by sending it as a form using form.NewMenu(), much
|
||||
// like a Submittable. The struct will have its Submit method called with the button pressed.
|
||||
// A struct that implements the MenuSubmittable interface must only have exported fields with the type
|
||||
// form.Button.
|
||||
type MenuSubmittable interface {
|
||||
// Submit is called when the Submitter submits the menu form sent to it. The method is called with the
|
||||
// button that was pressed. It may be compared with buttons in the MenuSubmittable struct to check which
|
||||
// button was pressed.
|
||||
Submit(submitter Submitter, pressed Button, tx *world.Tx)
|
||||
}
|
||||
|
||||
// ModalSubmittable is a structure which may be submitted by sending it as a form using form.NewModal(), much
|
||||
// like a Submittable and a MenuSubmittable. The struct will have its Submit method called with the button
|
||||
// pressed.
|
||||
// A struct that implements the ModalSubmittable interface must have exactly two exported fields with the type
|
||||
// form.Button, which may be used to specify the text of the Modal form's buttons. Unlike with a Menu form,
|
||||
// buttons on a Modal form will not have images.
|
||||
type ModalSubmittable MenuSubmittable
|
||||
|
||||
// Closer represents a form which has special logic when being closed by a Submitter.
|
||||
type Closer interface {
|
||||
// Close is called when the Submitter closes a form.
|
||||
Close(submitter Submitter, tx *world.Tx)
|
||||
}
|
||||
|
||||
// Submitter is an entity that is able to submit a form sent to it. It is able to fill out fields in the form
|
||||
// which will then be present when handled. The Submitter is also able to close the form.
|
||||
type Submitter interface {
|
||||
SendForm(form Form)
|
||||
CloseForm()
|
||||
}
|
||||
Reference in New Issue
Block a user