Creating a component from scratch
Instead of building a new component by extending an existing widget, as we did in the previous section, we could build one from scratch. Any component that implements the fyne.Widget
interface can be used as a widget in a Fyne application. To ease development, there is a widget.BaseWidget
definition that we can inherit from. Let's start by defining the behavior of a new widget—the three-state checkbox.
Defining widget behavior
The API of a Fyne widget is based on behavior rather than how it looks. To begin our widget development, we will therefore define the states that our three-state checkbox can take and how a user can interact with it. We will create threestate.go
and start coding:
- Firstly, we must define a new type,
CheckState
, which will hold the three different states of our new checkbox widget. As we are building a reusable component, it is a good idea to export the types that are required, such asCheckState
and the...