Botones y etiquetas

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 estilo personalizado, mientras que la segunda etiqueta usa el estilo predeterminado.

Los botones deben tener funciones de devolución de llamada, pero las etiquetas no. Para configurar 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.