Commit graph

53 commits

Author SHA1 Message Date
Olivier Goffart
a37a287a17 Limit the conversion from percentage to lenght for the width and height property 2020-12-04 11:20:09 +01:00
Olivier Goffart
bff55d4f1b Return value for signal 2020-12-01 18:52:51 +01:00
Simon Hausmann
6fba6aca56 Consistency fix for transitions API
Use "in" and "out" instead of "to" and "out".
2020-12-01 11:18:47 +01:00
Simon Hausmann
515d78d3bd Remove two todos in the language reference 2020-12-01 11:03:55 +01:00
Olivier Goffart
20b4d8826b Make the extra documentation page a bit more visible 2020-11-23 10:55:05 +01:00
Olivier Goffart
dd4435fe5d Add round/ceil/floor 2020-11-16 12:52:01 +01:00
Olivier Goffart
7bfc199acb Documentation for the builtin functions 2020-11-13 16:11:04 +01:00
Olivier Goffart
11e55dd8d2 String -> Float conversions 2020-11-03 15:19:58 +01:00
Olivier Goffart
d3801e26d3 Change the syntax of structures to require the struct keyword 2020-10-27 16:09:05 +01:00
Olivier Goffart
76b7f1aef6 Allow dashes in identifier
Currenly, dashes are normalized to '_'.
Dashes are not allowed at the begining of an identifier.
If an identifier with a dash is not found, we also look for identifier
without a dash and if that exist, we hint the user to use spaces.

Issue #52
2020-10-22 18:32:25 +02:00
Simon Hausmann
3b051f2176 Clarify hexadecimal color encoding
We parse hex colors as per CSS, including the #RRGGBBAA variant, as per
https://www.w3.org/TR/css-color-4/#hex-notation . This is now documented
and the JS conversion also generates that instead of #AARRGGBB.
2020-10-19 16:38:58 +02:00
Simon Hausmann
13f845ee4f Add support for property<percent> 2020-10-16 18:56:54 +02:00
Simon Hausmann
cf87ac804b Add support for relative lengths
Typically `some_length_prop: 40%` produces an error, but if there's a
matching property in the parent, then it will be allowed and interpreted
as relative value and creates a dynamically updated binding.
2020-10-16 18:54:04 +02:00
Simon Hausmann
a695d551da Small typo fix 2020-10-16 14:59:58 +02:00
Simon Hausmann
6c45ccc8a6 Fix syntax error in docs
The syntax updater found this one :-)
2020-10-16 12:30:11 +02:00
Simon Hausmann
6aa292eac1 Change the names of the logical and physical pixel units
The logical pixels are now just called "px" and the less frequently
used physical pixels have the "phx" suffix.

The existing markup was adapted using the syntax updater and the
following patch:

    +    if node.kind() == SyntaxKind::NumberLiteral {
    +        if node.text().ends_with("lx") {
    +            return write!(
    +                file,
    +                "{}px",
    +                node.text().as_str().split_at(node.text().as_str().len() - 2).0
    +            );
    +        }
    +        if node.text().ends_with("px") {
    +            return write!(
    +                file,
    +                "{}phx",
    +                node.text().as_str().split_at(node.text().as_str().len() - 2).0
    +            );
    +        }
    +    }

Fixes #49
2020-10-16 07:19:40 +02:00
Olivier Goffart
519de0f860 Allow convertion of object type even if a property is missing 2020-10-14 13:53:44 +02:00
ritschwumm
f236a7b7c7 fix typos 2020-10-14 09:18:06 +02:00
Simon Hausmann
e301c19fd0 Fix typo 2020-10-12 21:24:43 +02:00
Olivier Goffart
d0611d8491 Document widgets that were missing documentation 2020-10-12 13:36:25 +02:00
Olivier Goffart
23e9a5f339 Fix some spelling issues in README and doc 2020-10-12 12:59:40 +02:00
Simon Hausmann
7e0e7b43f0 Add support for calling focus() on TextInput elements
This allows activating text inputs in signal handlers connected for
example to buttons.

This implements parts of #55
2020-10-01 08:52:45 +02:00
Simon Hausmann
9ad8968529 Add support for the initial_focus synthetic property
Setting it will translate to a set_focus_item call in the constructor.

This implements parts of #55
2020-09-30 15:11:01 +02:00
Olivier Goffart
805ffd216b Document the two way binding 2020-09-24 09:33:08 +02:00
Olivier Goffart
cbd8c6aefc Documentation for the newly added struct type 2020-09-17 13:14:01 +02:00
Olivier Goffart
3c6f378982 Document that signals can have parameter 2020-09-09 11:35:38 +02:00
Simon Hausmann
5cd5d5ab62 Avoid overlapping text in the preview of the first langref example
On my screen the "world" is drawn over the "hello", which looks bad.

Use scalable pixels instead of physical pixels, in an effort to decrease the
chances of overlap while maintaining simplicity in the example.
2020-09-04 10:12:34 +02:00
Olivier Goffart
8a7afbc238 Documents the elements 2020-09-02 18:57:24 +02:00
Simon Hausmann
fd9aea97eb Fix markdown table rendering in C++ docs
This reverts commit 0bb904e10a and
re-introduces the markdown table support extension. The resulting table
by default is too wide in the "responsive" read-the-docs theme, but with
a CSS tweak it becomes readable.

Markdown tables are much easier to deal with and this way we can also
include references within the tables.
2020-09-02 17:06:41 +02:00
Simon Hausmann
fbb1064107 Small doc fixup 2020-09-01 14:28:38 +02:00
Olivier Goffart
159d8b615a Some adjustment to the examples in langref 2020-09-01 14:27:00 +02:00
Olivier Goffart
e80580b5d7 fixup doc 2020-09-01 13:42:19 +02:00
Olivier Goffart
16e4de05b5 Document GridLayout 2020-09-01 13:31:41 +02:00
Simon Hausmann
c1aa4b28c6 Add support for children insertion points for components
Sometimes re-usable components need to act as containers that allow the
user to place other items inside. The component needs to be able to
control the placement of these user-provided elements. That is what the
new

    $children

expression inside elements does.
2020-08-28 15:05:21 +02:00
Olivier Goffart
10e8d7ffb9 Replace the regexp-based lexer with a custom lexer
The regexp crate is huge and takes more than a third of the size of the
wasm-interpreter.
2020-08-28 13:34:43 +02:00
Simon Hausmann
0bb904e10a Fix broken type table in language reference embedded in C++ docs
Recommonmark doesn't grok markdown tables. There's an extension for that, but it
doesn't do support line breaks (or requires manually breaking lines).

So instead this uses a HTML table for now, which
looks identical in github and rust and okay'ish in sphinx/C++.
2020-08-26 13:51:53 +02:00
Olivier Goffart
c8f094461f Small changes to langref 2020-08-26 13:42:13 +02:00
Simon Hausmann
25156d9aa3 Table'ify the types in the language reference 2020-08-20 15:51:38 +02:00
Simon Hausmann
6ebe008768 Add a table to the Rust docs for the mapping from .60 property types 2020-08-20 15:25:28 +02:00
Simon Hausmann
1e24cc3cd4
Fix typo
Oops :)
2020-08-20 13:31:56 +02:00
Simon Hausmann
fee5a0d716 Some work on the language reference 2020-08-20 10:41:36 +02:00
Olivier Goffart
0199b70cea if statements 2020-08-04 17:36:20 +02:00
Olivier Goffart
283387bc44 Add the self and parent implicit id 2020-08-04 15:58:40 +02:00
Olivier Goffart
b259a09338 Rename the types float32 and int32 to float and int 2020-08-03 16:15:41 +02:00
Olivier Goffart
678f426bfd Review of langref.md 2020-07-31 16:12:37 +02:00
Simon Hausmann
84406cc70b Add support for renaming imports
This is very useful to avoid name clashes.
2020-07-23 10:12:45 +02:00
Simon Hausmann
c38fa4cf90 Add support for import statements when loading types
This is the counter part of the export statement and right now it's
implemented as a dumb recursive file loader. This can be extended in
thefuture to support cycles between files (but not types), if
theresolution of types is done lazily.
2020-07-23 09:44:26 +02:00
Olivier Goffart
fd1760e931 Document states and transitions 2020-07-22 09:51:13 +02:00
Simon Hausmann
3e21aafab9 Add support for direct export for convenience 2020-07-22 08:45:49 +02:00
Simon Hausmann
921a41b07c Add support for explicit exports from files
Using an ES module inspired syntax, this allows free naming and control
over exported names.
2020-07-22 08:40:30 +02:00