Specifications
iv Contents
4
Programming GUIs
Understanding the GUI M-File . . . . . . . . . . . . . . . . . . . . . . . . . 4-2
Sharing Data with the Handles Structure . . . . . . . . . . . . . . . . . 4-2
Functions and Callbacks in the M-File . . . . . . . . . . . . . . . . . . . . 4-3
Opening Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-4
Output Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5
Callbacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-6
Input and Output Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-7
Programming Callbacks for GUI Components . . . . . . . . . . . 4-8
Toggle Button Callback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-8
Radio Buttons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-9
Check Boxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-10
Edit Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-10
Sliders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-11
List Boxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-11
Pop-Up Menus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-12
Panels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-13
Button Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-13
Axes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-14
ActiveX Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-17
Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-24
Managing GUI Data with the Handles Structure . . . . . . . . 4-26
Example: Passing Data Between Callbacks . . . . . . . . . . . . . . . 4-26
Application Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-29
Designing for Cross-Platform Compatibility . . . . . . . . . . . . 4-30
Using the Default System Font . . . . . . . . . . . . . . . . . . . . . . . . . 4-30
Using Standard Background Color . . . . . . . . . . . . . . . . . . . . . . 4-31
Cross-Platform Compatible Figure Units . . . . . . . . . . . . . . . . . 4-32
Types of Callbacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-33
Callback Properties for All Graphics Objects . . . . . . . . . . . . . . 4-33
Callback Properties for Figures . . . . . . . . . . . . . . . . . . . . . . . . 4-33
Callbacks for Specific Components . . . . . . . . . . . . . . . . . . . . . . 4-34
Which Callback Executes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-34
Adding a Callback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-34