Main Content

Callback Button

Execute MATLAB code using button with customizable appearance

  • Library:
  • Simulink / Dashboard / Customizable Blocks

  • Callback Button block

Description

The Callback Button block executes MATLAB® code in response to a click or a press of the button. When you press the button, the code executes after a time span that you specify has elapsed or at time intervals that you specify. You can configure the block to execute different code for a click versus for a press. When you use the Callback Button block from the Customizable Blocks library, you can also customize the appearance of the block to look like a button in your real system.

Double-clicking the Callback Button block does not open its dialog box during simulation or when the block is selected. To edit the block parameters, you can use the Property Inspector or open the block dialog box by:

  • Double-clicking the block when the block is not selected and the model is not simulating.

  • Right-clicking the block and selecting Block Parameters from the context menu.

Customize Callback Button Blocks

When you add a Callback Button block to your model, the block is preconfigured with a default design. You can use the block with the default design or customize the appearance of the block. When you design a Callback Button block, you configure the block appearance for each possible state. When you configure the Block Type as Momentary, the block has two states, and when you configure the Block Type as Latch, the block has four. For each state, you can:

  • Add an image that defines the appearance of the block in that state.

  • Specify text for the button label and configure its color and position within the block.

  • Add an icon and specify the position of the icon relative to the label.

When you want an aspect of the block, such as the label text or color, to indicate the state of the block, configure that aspect of the design differently for each state. When you want an aspect of the block to remain the same for all states, configure that aspect of the block design so it is the same for all states.

You can also design the block background and foreground, which apply for all states. To configure the foreground for the block, upload a foreground image. To configure the background for the block, you can upload a background image or use a solid background color.

To customize the appearance of the block, use design mode. You can enter design mode in one of three ways after selecting the block:

  • On the Button tab, under Design, click Edit.

  • In the Property Inspector, on the Design tab, click Edit Design.

  • Pause on the ellipsis that appears above the block and click the Edit Custom Block button.

Design mode gives you access to block parameters and settings that allow you to customize the appearance of the block. You can use the toolbar above the block to configure the image, the icon, and the label color and opacity for each state. For more customization options, use the Design tab in the Property Inspector.

Callback Button block in design mode with the toolbar and the Design tab in the Property Inspector visible.

When you finish designing the button, click Exit in the upper-right of the canvas to exit design mode.

Parameters

expand all

To modify the block parameters of a customizable Callback Button, use the Block Parameters dialog box.

Specify how the block responds to a click.

  • Momentary — The button changes state only while pressed. When you release the mouse, the button returns to its default state.

  • Latch — The button latches the state change when clicked. The button remains in the pressed state until you click it again.

When you configure Button Type as Momentary, the block has these states:

  • Default — Default state for the block when it is not pressed

  • Pressed — Block state when the block is pressed

When you configure Button Type as Latch, the block has these states:

  • Default — Default state for the block when it is not pressed.

  • Pressed — Transitional state when you press the button while it is in the Default state. The block transitions to the Latched state when you release the mouse.

  • Latched — Latched state for the block when it is not pressed.

  • Latched and Pressed — Transitional state when you press the button while it is in the Latched state. The block transitions to the Default state when you release the mouse.

Programmatic Use

Block Parameter: ButtonType
Type: string or character array
Value: 'Momentary' | 'Latch'

Text label for the button. When you want the button to have the same label text for all states, specify the text using the Button Text parameter. To specify a different button label for each state, use the Design tab.

MATLAB code that executes in response to a click of the button.

Every time you click the button, the ClickFcn code executes once, at the point in time when you release the click.

To specify code for the ClickFcn, select ClickFcn from the drop-down menu. Enter the code in the text box below the menu.

MATLAB code that executes in response to a press of the button.

While the button is in the pressed state, the PressFcn code executes once when the Press Delay time has elapsed and periodically at every Repeat Interval.

To specify code for the PressFcn, select PressFcn from the drop-down menu. Enter the code in the text box below the menu.

How you press the button to execute the PressFcn code depends on the Button Type.

  • If the Button Type is Momentary, hold down your click for the duration that you want to press the button.

  • If the Button Type is Latch, click to press the button, but do not hold down your click. The button remains pressed until you click it again.

Note

Every time that you click on the button, even when you do so as part of the process for pressing the button, the ClickFcn code executes once, at the point in time when you release the click.

Amount of time required to cause the PressFcn code to execute.

Dependencies

Press Delay (ms) is visible only when PressFcn is selected as the Mouse Action.

Time interval after which the PressFcn code executes again if the Callback Button block is still pressed.

Dependencies

Repeat Interval (ms) is visible only when PressFcn is selected as the Mouse Action.

Block Characteristics

Data Types

Direct Feedthrough

no

Multidimensional Signals

no

Variable-Size Signals

no

Zero-Crossing Detection

no

Tips

To design a button that changes the value of a variable or parameter in your model, use the Push Button block.

Extended Capabilities

Version History

Introduced in R2021b