Creating Graphical User Interfaces Previous page   Next Page

Loading the List Box

This example creates a subfunction to load items into the list box. This subfunction accepts the path to a directory and the handles structure as input arguments. It performs these steps:

The load_listbox function is called by the opening function of the GUI M-file as well as by the list box callback.

The List Box Callback

The list box callback handles only one case: a double-click on an item. Double clicking is the standard way to open a file from a list box. If the selected item is a file, it is passed to the open command; if it is a directory, the GUI changes to that directory and lists its contents.

Defining How to Open File Types

The callback makes use of the fact that the open command can handle a number of different file types. However, the callback treats FIG-files differently. Instead of opening the FIG-file, it passes it to the guide command for editing.

Determining Which Item the User Selected

Since a single click on an item also invokes the list box callback, it is necessary to query the figure SelectionType property to determine when the user has performed a double click. A double-click on an item sets the SelectionType property to open.

All the items in the list box are referenced by an index from 1 to n, where 1 refers to the first item and n is the index of the nth item. MATLAB saves this index in the list box Value property.

The callback uses this index to get the name of the selected item from the list of items contained in the String property.

Determining if the Selected Item is a File or Directory

The load_listbox function uses the dir command to obtain a list of values that indicate whether an item is a file or directory. These values (1 for directory, 0 for file) are saved in the handles structure. The list box callback queries these values to determine if current selection is a file or directory and takes the following action:

The open statement is called within a try/catch block to capture errors in an error dialog (errordlg), instead of returning to the command line.

Opening Unknown File Types

You can extend the file types that the open command recognizes to include any file having a three-character extension. You do this by creating an M-file with the name openxyz, where xyz is the extension. Note that the list box callback does not take this approach for FIG-files since openfig.m is required by the GUI M-file. See open for more information.


Previous page  Specifying the Directory to List Accessing Workspace Variables from a List Box Next page

© 1994-2005 The MathWorks, Inc.