This week in SixtyFPS

11th of July to 18th of July 2021

Posted on July 19, 2021

SixtyFPS is a toolkit to efficiently develop fluid graphical user interfaces for any display: embedded devices and desktop applications. We support multiple programming languages, such as Rust, C++, and JavaScript. Find more information at https://sixtyfps.io/ or go straight to github at https://github.com/sixtyfpsui/sixtyfps

Progress

Progress was made in the following areas:

  • Native style: fix sizing of the ComboBox.
  • Various documentation updates:
    • Recommend the use of resolver = "2" in the tutorial and the docs.
    • Document ComboBox.
    • Start documenting some of the cbindgen internals.
  • Make sure error messages in the compiler don't end with '.'

    As suggested in #275

  • Fix error with structures that are only referenced by callbacks

    We would have a compilation error in Rust or C++ because the collect_struct visitor would not visit these type and not produce them correctly.

  • Fix stack overflow with Rust generated code in debug builds on Windows (#133).
  • LSP: properly classify callback aliases in auto-complete

    Otherwise the completion is wrong as it tries to complete with : instead of =>

  • Remove the freetype dependency on Windows and macOS
  • Fix name conflict when having two globals with the same name in different files

    Give globals an unique id so two global with the same name imported from different file don't clash

    Fixes #159

  • Add a selected callback to ComboBox
  • The clip property now clips the mouse events

    Fixes #180

    Note that there is still a small issue that the clipped element may not receive the MouseExit event because it is still considered having the mouse.

  • Fix interpreter C interface generated by cbindgen

    Make sure to never export the Value enum. It might drag in all sorts of unrelated types (as it happened in #311). We have ValueOpaque for that, so exclude Value from the export config explicitly. However since we expose the Value *pointers* for the struct iterators, at least provide a forward declaration.

  • Provide impl Default instead of new() constructors for ComponentCompiler and CompilerConfiguration
  • Janitor: Work towards making sixtyfps clippy clean

Statistics

52 patches were commited by 3 authors.