package gui // View defines the behavior of any element displayable on screen. // To define custom Views, it is recommended to add ViewTmpl // as the promoted anonymous field for your custom View struct. // It implements the View interface with useful default behavior type View interface { Events Style Layout(ctx AppContext) (prefWidth, prefHeight int) Draw(img *Image, ctx AppContext) } // Layout defines the behavior of a View which can hold multiple sub views type Layout interface { View Views() []View } // Wrapper defines the behavior of a Layout which can hold exactly one sub view. // To define custom Wrappers, it is recommended to add WrapperTmpl // as the promoted anonymous field for your custom Wrapper struct. // It implements the Wrapper interface with useful default behavior type Wrapper interface { Layout SetView(View) View() View }