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.

Customizable 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

Use the Property Inspector and the Block Parameters dialog box to specify the values of the block parameters. To set the core parameters of the dashboard block, use the Block Parameters dialog box or the Parameters tab in the Property Inspector. To customize the block, use the Design tab in the Property Inspector. To display the Block Parameters dialog box for a block, double-click the block. To display the Property Inspector, on the Modeling tab, under Design, select Property Inspector.

Parameters

To set the core parameters of the dashboard block, open the Property Inspector and click the Parameters tab.

Main

Specify how the block responds to a click.

  • Momentary — The button changes state only while pressed. When you release the click, 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 click.

  • 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 click.

Programmatic Use

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

Specify the text for the button label. The label is applied to the button for the state that is selected in the Select State section of the States component on the Design tab.

Programmatic Use

Specify the ButtonText parameter for the block as a string or a character vector.

Block Parameter: ButtonText
Type: character vector | string

Enable this option to maintain the aspect ratio when resizing the block in the Simulink® canvas.

Tip

  • When the aspect ratio is locked, adding a new background image changes the aspect ratio of the block to match that of the background image.

  • When the aspect ratio is not locked, adding a new background image does not change the proportions of the block but instead stretches or scales the background image to fit the size of the block.

Callbacks

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.

Programmatic Use

Specify the ClickFcn parameter for the block as MATLAB code that is formatted as a string or a character vector.

Block Parameter: ClickFcn
Type: character vector | string
Values: MATLAB code

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.

Programmatic Use

Specify the PressFcn parameter for the block as MATLAB code that is formatted as a string or a character vector.

Block Parameter: PressFcn
Type: character vector | string
Values: MATLAB code

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

Dependencies

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

Programmatic Use

Specify the PressDelay parameter for the block as a positive scalar value.

Block Parameter: PressDelay
Type: scalar

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 callback.

Programmatic Use

Specify the RepeatInterval parameter for the block as a positive scalar value.

Block Parameter: RepeatInterval
Type: scalar

Design

To customize the dashboard block, open the Property Inspector, click the Design tab, and click Edit.

Button

Enable this option to maintain the aspect ratio when resizing the block in the Simulink canvas.

Tip

  • When the aspect ratio is locked, adding a new background image changes the aspect ratio of the block to match that of the background image.

  • When the aspect ratio is not locked, adding a new background image does not change the proportions of the block but instead stretches or scales the background image to fit the size of the block.

States

Select a state that you want to configure from the drop-down menu in the Select State section of the States component. When the Button Type is Momentary, you can select these states:

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

  • Pressed — Block state when the block is pressed

When the Button Type is Latch, you can select 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 click.

  • 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 click.

Note

You can configure all of the parameters in the States component of the Design tab for a state. For example, you can select an icon that will appear on the button when it is in the state. When you configure any of the parameters in the States component, the changes are applied to the state that is selected in the Select State section of the States component.

Example: Pressed

Specify the text for the button label. The label is applied to the button for the state that is selected in the Select State section of the States component on the Design tab.

Programmatic Use

Specify the ButtonText parameter for the block as a string or a character vector.

Block Parameter: ButtonText
Type: character vector | string

Choose a font color for the button label from the palette of standard colors, or specify a custom color. The color is applied to the button label for the state that is selected in the Select State section of the States component on the Design tab.

Set the alignment of the button text.

  • Center: Midway between left and right edges of block

  • Left: Left edge of block

  • Right: Right edge of block

Set the alignment of the button text.

  • Center: Midway between top and bottom edges of block

  • Bottom: Bottom edge of block

  • Top: Top edge of block

Specify the horizontal offset of the center of the Button Text from the default position for the selected Horizontal Alignment setting as a ratio of the block width. Relative to the position of the text when the offset is 0, an offset with a negative value moves the text left, and an offset with a positive value moves the text right.

Specify the vertical offset of the center of the Button Text from the default position for the selected Vertical Alignment setting as a ratio of the block height. Relative to the position of the text when the offset is 0, an offset with a negative value moves the text up, and an offset with a positive value moves the text down.

Specify the placement of the icon relative to the button text.

Note

Changing the placement of the icon also moves the button text, but does not change the specified X Offset, Y Offset, Horizontal Alignment, or Vertical Alignment of the text.

Specify the image width as a ratio of the block width.

Example: 0.5

Specify the image height as a ratio of the block height.

Example: 0.5

Enable this option to maintain the aspect ratio when resizing the image using the Property Inspector.

Specify the horizontal offset of the left edge of the image from the left edge of the block as a ratio of the block width. Relative to the position of the image when the offset is 0, an offset with a negative value moves the image left, and an offset with a positive value moves the image right.

Example: 1

Specify the vertical offset of the top edge of the image from the top edge of the block as a ratio of the block height. Relative to the position of the image when the offset is 0, an offset with a negative value moves the image up, and a positive value moves the image down.

Example: 1

Background Image

For the block background, you can provide a background image or select a solid color. To select a solid background color, select this parameter. To provide a background image, clear this parameter.

Note

Changing the background color using the Format tab of the Simulink Toolstrip removes the background image and enables the Use Background Color parameter.

Example: on

To select a solid background color, enable the Use Background Color parameter. Then, choose a background color from the palette of standard colors, or specify a custom color.

Tip

You can also specify the Background Color in the Format tab of the Simulink Toolstrip.

To specify the color of the block text, use the Font Color parameter.

Programmatic Use

Specify the BackgroundColor parameter for the block as a 1-by-3 [r g b] vector with values between 0 and 1 that is formatted as a string or a character vector.

Block Parameter: BackgroundColor
Type: character vector | string
Values: [r g b] vector

Specify the block background opacity as a scalar value from 0 to 1.

Example: 0.5

Specify the corner radius of the area covered by the block background color as a ratio of half of the smaller of the two block dimensions, width or height.

Example: 0.25

Foreground Image

Specify the horizontal offset of the left edge of the image from the left edge of the block as a ratio of the block width. Relative to the position of the image when the offset is 0, an offset with a negative value moves the image left, and an offset with a positive value moves the image right.

Example: 1

Specify the vertical offset of the top edge of the image from the top edge of the block as a ratio of the block height. Relative to the position of the image when the offset is 0, an offset with a negative value moves the image up, and a positive value moves the image down.

Example: 1

Specify the image width as a ratio of the block width.

Example: 0.5

Specify the image height as a ratio of the block height.

Example: 0.5

Enable this option to maintain the aspect ratio when resizing the image using the Property Inspector.

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

expand all