+
+ public void addObserver(EventHandler eh) {
+ if(observers == null) {
+ observers = new LinkedList<>();
+ // register native observer for this value
+ EventWrapper event = new EventWrapper(e -> {
+ observers.forEach(obs -> obs.callback(e));
+ });
+ ToolkitFuncs ui = ToolkitFuncs.getInstance();
+ try {
+ ui.double_add_observer.invoke(valuePtr, event.getCallback(), event.getUserData());
+ } catch (Throwable e) {
+ throw new RuntimeException(e);
+ }
+ }
+ observers.add(eh);
+ }