#import "Basic"; Widget_State :: struct { init: (widget: *Widget_State) -> (); update: (widget: *Widget_State, dt: float) -> (); handle_input: (widget: *Widget_State, occluded: bool) -> (occludes: bool); render: (widget: *Widget_State) -> (); shutdown: (widget: *Widget_State) -> (); // We can store a pointer to the specific widget's state here data: *void; }