Commit graph

33 commits

Author SHA1 Message Date
Simon Hausmann
afe3df6381 Remove the public API for registering fonts by path or memory chunk
This is not needed anymore in the light of being able to write `import "blah.ttf"` in .60 markup
2021-04-14 10:01:33 +02:00
Simon Hausmann
794d3ec6ec Revert "Add a nodejs testing function for apply_layout"
This reverts commit beb5d63d1b.

Oops, the more modern style *is* to use send_mouse_click.
2021-04-08 16:58:37 +02:00
Simon Hausmann
beb5d63d1b Add a nodejs testing function for apply_layout
This will allow making the JS test code more similar to the C++/Rust code,
allowing replacing synthetic mouse clicks.
2021-04-08 16:51:51 +02:00
Simon Hausmann
8372d3f6d8 Rename call_* to invoke_* for callbacks
Fixes #187
2021-03-15 17:01:05 +01:00
Simon Hausmann
2fdaa44d51 Load the Noto Sans font from the nodejs printer demo 2021-02-22 11:17:39 +01:00
Olivier Goffart
5a21f1bd81 Rename emit_ to call_ for callback
Signal was renamed to Callback, but one does not emit a callback, one calls it
2021-01-25 15:59:10 +01:00
Simon Hausmann
5f265ffc09 Split up ComponentWindow::run() into show(), hide() and sixtyfps::run_event_loop()
This allows creating multiple windows for example, and it will allow for
showing windows in those tests that require a mapped window.

As a bonus, the run() function on generated components is not consuming
anymore.
2021-01-19 09:50:22 +01:00
Olivier Goffart
0d2d48be4f Rename "signal" to "callback" 2020-12-18 09:51:01 +01:00
Simon Hausmann
c2a0cd7000 Added a node version of the memory puzzle game
This also implements a basic single shot timer support, which has
one caveat: it leaks the closures right now.
2020-12-11 17:17:28 +01:00
Olivier Goffart
bff55d4f1b Return value for signal 2020-12-01 18:52:51 +01:00
Simon Hausmann
68e35ab332 Fix removing todo items in node
After removal the index is wrong and I mistakely thought entries() adjuts.
2020-10-21 14:18:33 +02:00
Simon Hausmann
c59b1e61ac Fix a bug in sixtyfps.ArrayModel.remove
Report the correct index/size to the runtime.

Also added convenience entries()/values() functions that forward to the array.
2020-10-21 13:48:13 +02:00
Olivier Goffart
ac6d4007ab Node: Add setHandler features on signals 2020-10-21 12:22:22 +02:00
Simon Hausmann
e7d8455c49 Some more array model docs 2020-10-21 11:26:18 +02:00
Simon Hausmann
27972145a7 Add some documentation to the Model and ModelPeer
Also in this change:

 * Make ArrayModel<T> implement Model<T>.
 * Switch from jsdoc/better-docs to typedoc, which has much better
   support for type annotations.
2020-10-21 11:14:24 +02:00
Simon Hausmann
f6d8f78e3f Hide the private API of the NodeJS integration
Hide it behind a `private_api` property in the module export.
2020-10-20 16:52:28 +02:00
Simon Hausmann
ce7d0c98e0 Use a base class for components in the Node API
In the event that a property is called "show" this theoretically still allows calling the show function through the
prototype chain.
2020-10-20 16:46:38 +02:00
Simon Hausmann
7905285562 Change the Model API for the NodeJS Integration to use CamelCase 2020-10-20 16:40:49 +02:00
Simon Hausmann
279ce560f9 Convert NodeJS API to use & export TypeScript
This will make the types available to API consumers and makes the
documentation clearer.
2020-10-20 15:57:50 +02:00
Simon Hausmann
b6466eaa9e Expose the array model as an ecmascript class
This allows documenting it easily with JSDoc
2020-10-20 11:03:03 +02:00
Olivier Goffart
14198052ac ArrayModel support in JS 2020-10-17 13:33:22 +02:00
Simon Hausmann
e5dfb3a4c0 Implement basic focus handling
Similar to the mouse_grabber, we use a VisitChildrenResult field to
track the focus item within a component. Unlike the mouse grabber
however, it is set/cleared using dedicated focus events.

The key event now routes the key event directly to the focus item.

The focus can be requested via set_focus_item on a window, which the
TextItem does.
2020-09-25 10:43:47 +02:00
Olivier Goffart
42aa91e3eb Support for signal with arguments in the interpreter 2020-09-09 11:27:58 +02:00
Olivier Goffart
58cdaeb8dd Update license header to mention that commertial option are available 2020-08-26 13:23:42 +02:00
Simon Hausmann
2823f32692 Apply license headers to all non-binary/non-json sources 2020-08-17 17:55:20 +02:00
Olivier Goffart
f4cce26d51 Test the mouse click 2020-08-10 12:54:29 +02:00
Simon Hausmann
84d8eaa130 Add support for emitting signals for nodejs and the interpreter
This also enables the property and signal accessor test case for js.
2020-06-12 10:38:01 +02:00
Olivier Goffart
b7bc884447 Run the JS test without using npm install 2020-06-09 10:25:38 +02:00
Olivier Goffart
7a8c549625 Be able to read or write properties from JS 2020-06-04 15:48:39 +02:00
Olivier Goffart
ec8baa81f2 formating 2020-06-04 14:05:17 +02:00
Olivier Goffart
5ee09398e8 Node: Allow to init properties to value 2020-06-03 17:33:45 +02:00
Olivier Goffart
30d61452ba Interpreter and node API: some refactoring towards being able to set properties from JS 2020-06-03 17:33:43 +02:00
Olivier Goffart
13c7e0dec8 Begin working on a Node API
Currently, the followinf command in the example/nodetest directory works:
    npm install ../../api/sixtyfps-node && node main.js
2020-06-03 17:33:05 +02:00