Puedes colocar un botón o una etiqueta en cualquier lugar donde puedas colocar un bloque en la caja de herramientas.
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>
Puedes especificar un nombre de clase CSS para aplicarlo a tu botón o etiqueta. En el ejemplo anterior, la primera etiqueta usa un diseño personalizado, mientras que la segunda usa el diseño predeterminado.
Los botones deben tener funciones de devolución de llamada, pero las etiquetas no. Para establecer la devolución de llamada para un clic en un botón determinado, usa
yourWorkspace.registerButtonCallback(yourCallbackKey, yourFunction).
Tu función debe aceptar como argumento el botón en el que se hizo clic. El botón "Crear variable…" en la categoría de variables es un buen ejemplo de un botón con una devolución de llamada.