1
1
mirror of https://github.com/OpenDiablo2/OpenDiablo2 synced 2024-06-11 18:20:42 +00:00
OpenDiablo2/d2core/d2ui/custom_widget.go
juander c148941194 d2ui/drawable: Refactor render() method to not return error
this simplifies error handling statements all over the ui code. Before
we had to write:

if err := foo.Render(target); err != nil {
    return err
}

which simplifies now to foo.Render(target)
2020-11-11 14:55:59 +01:00

33 lines
796 B
Go

package d2ui
import "github.com/OpenDiablo2/OpenDiablo2/d2common/d2interface"
// static check that CustomWidget implements widget
var _ Widget = &CustomWidget{}
// CustomWidget is a widget with a fully custom render function
type CustomWidget struct {
*BaseWidget
renderFunc func(target d2interface.Surface)
}
// NewCustomWidget creates a new widget with custom render function
func (ui *UIManager) NewCustomWidget(renderFunc func(target d2interface.Surface)) *CustomWidget {
base := NewBaseWidget(ui)
return &CustomWidget{
BaseWidget: base,
renderFunc: renderFunc,
}
}
// Render draws the custom widget
func (c *CustomWidget) Render(target d2interface.Surface) {
c.renderFunc(target)
}
// Advance is a no-op
func (c *CustomWidget) Advance(elapsed float64) error {
return nil
}