Specifications
An Address Book Reader
5-47
'Yes','Cancel','Yes');
switch Answer
case 'Yes'
Addresses(end+1).Name = Current_Name; % Grow array by 1
Addresses(end).Phone = Current_Phone;
index = length(Addresses);
handles.Addresses = Addresses;
handles.Index = index;
guidata(h,handles)
return
case 'Cancel'
% Revert back to the original number
set(handles.Contact_Name,'String',Addresses(handles.Index).Name)
set(handles.Contact_Phone,'String',Addresses(handles.Index).Phone)
return
end
The Contact Phone # Callback
The Contact Phone # text box displays the phone number of the entry listed
in the
Contact Name text box. If you type in a new number and press enter,
the callback launches a question dialog that asks you if you want to change the
existing number or cancel your change.
Like the
Contact Name text box, this callback uses the index pointer
(
handles.Index) to update the new number in the address book and to revert
to the previously displayed number if the user selects
Cancel from the question
dialog. Both the current address book and the index pointer are saved in the
handles structure so that this data is available to other callbacks.
If you create a new entry, you must save the MAT-file with the
File –> Save
menu.
Code Listing
function varargout = Contact_Phone_Callback(h, eventdata, handles, varargin)
Current_Phone = get(handles.Contact_Phone,'string');
% If either one is empty then return
if isempty(Current_Phone)
return
end
% Get the current list of addresses from the handles structure