Вы можете разместить кнопку или метку в любом месте панели инструментов, где можно разместить блок.
JSON
{
"kind": "flyoutToolbox",
"contents": [
{
"kind": "block",
"type":"logic_operation"
},
{
"kind": "label",
"text": "A label",
"web-class": "myLabelStyle"
},
{
"kind": "label",
"text": "Another label"
},
{
"kind": "block",
"type": "logic_negate"
},
{
"kind": "button",
"text": "A button",
"callbackKey": "myFirstButtonPressed"
},
{
"kind": "block",
"type": "logic_boolean"
}
]
}
XML
<xml id="toolbox" style="display: none">
<block type="logic_operation"></block>
<label text="A label" web-class="myLabelStyle"></label>
<label text="Another label"></label>
<block type="logic_negate"></block>
<button text="A button" callbackKey="myFirstButtonPressed"></button>
<block type="logic_boolean"></block>
</xml>
<style>
.myLabelStyle>.blocklyFlyoutLabelText {
font-style: italic;
fill: green;
}
</style>
Вы можете указать имя класса CSS для применения к вашей кнопке или метке. В приведенном выше примере первая метка использует пользовательский стиль, а вторая — стиль по умолчанию.
Кнопки должны иметь функции обратного вызова; метки не должны. Чтобы задать обратный вызов для определенного нажатия кнопки, используйте
yourWorkspace.registerButtonCallback(yourCallbackKey, yourFunction).
Ваша функция должна принимать в качестве аргумента кнопку, которая была нажата. Кнопка «Создать переменную...» в категории переменных — хороший пример кнопки с обратным вызовом.