Merge: app.nit: easier root window selection and other misc improvements
authorJean Privat <jean@pryen.org>
Mon, 18 Sep 2017 15:19:48 +0000 (11:19 -0400)
committerJean Privat <jean@pryen.org>
Mon, 18 Sep 2017 15:19:48 +0000 (11:19 -0400)
Intro the hook `root_window` for clients to set the desired root (or home) window. It is much shorter than the previous redef of `on_create`. Plus, in very simple apps, the client can simple redef `Window` instead of subclassing it.

Refactor `data_store` structure, replacing the interface and subclasses by refinements of a single class. It follows more closely the strategy used by the UI API while not changing anything to the `data_store` API. The data store now drops potentially partially deserialized objects to avoid hard to report crash at runtime, this could be improved upon in the future as the current implementation is not ideal.

Otherwise, this PR brings general improvements to the framework influenced by the creation of [paninit.com](http://paninit.com/): revamp the documentation, add unit tests, fix the scientific calculator icon and add an option to report errors in `hightlightcode`.

Pull-Request: #2547
Reviewed-by: Jean Privat <jean@pryen.org>


Trivial merge