sixtyfps-compilerlib 0.1.2

Internal SixtyFPS compiler library
Documentation
/* LICENSE BEGIN
    This file is part of the SixtyFPS Project -- https://sixtyfps.io
    Copyright (c) 2021 Olivier Goffart <olivier.goffart@sixtyfps.io>
    Copyright (c) 2021 Simon Hausmann <simon.hausmann@sixtyfps.io>

    SPDX-License-Identifier: GPL-3.0-only
    This file is also available under commercial licensing terms.
    Please contact info@sixtyfps.io for more information.
LICENSE END */


X := Rectangle {
    forward-focus: someRect;
//                ^error{element is not focusable}

    callback trigger_focus_change();
    trigger_focus_change => {
        someRect.focus();
//      ^error{focus\(\) can only be called on focusable elements}
    }

    indirect_focus_chain_rect := Rectangle {
       forward-focus: someRect;
//                   ^error{element is not focusable}
    }

    callback trigger_focus_change_2();
    trigger_focus_change_2 => {
        indirect_focus_chain_rect.focus();
//      ^error{focus\(\) can only be called on focusable elements}
    }

    someRect := Rectangle {}

    someFocusScope := FocusScope {}
    callback activate_focus_scope();
    activate_focus_scope => {
        someFocusScope.focus(); // OK!
    }
}