basicmatlabanggui.ppt

39
I - 1 Building a Graphical User Interface with MATLAB Basic Matlab Matrix definition a=[1,2 ; 3,4] => a= 1 2 3 4 Vector is a matrix with one column or one row. a=[1;2;3;4;5 …;…;… ] one column b=[1,2,3,4,5,6 …,…,..] one row

Upload: alessaag

Post on 08-Nov-2015

213 views

Category:

Documents


1 download

TRANSCRIPT

  • Building GUIs with MATLABOren MeiromOmikron DeltaGUIs

    I - *Building a Graphical User Interface with MATLAB

    What is a Callback?A callback is a sequence of commands which are implemented by activating a graphics object:e.g. CreateFcn, CallBack, ButtonDownFcn, DeleteFcn.

    I - *Building a Graphical User Interface with MATLAB

    Storing information in TagThis property can store a string vector, which means that you can assign a unique name to every single graphics object.Provides an alternative to the technique of storing the variables in the userdata property.

    I - *Building a Graphical User Interface with MATLAB

    The 10 styles of Matlab Uicontrol objects Push Button.Toggle Button.Check Box.Radio Button.Editable Text.List Box.Pop-up Menu.Slider.Frame.Static Text

    I - *Building a Graphical User Interface with MATLAB

    Push/Toggle ButtonsThe push button is widely prevalent uicontrol style that is used primarily to indicate that a desired action should immediately take place.The toggle button look just like push button, except there is no intermediate state.Rather, the button will remain in its selected or not selected state after the user clicks on it.

    >>mcpush

    I - *Building a Graphical User Interface with MATLAB

    Check BoxUseful for representing two states of an option that you may want to provide (usually as on and off).In its off state the check box will consist of an empty or unfilled square. In the on state, the check boxs square will contain a V sign.

    >>mccheckbox,mccheckbox1

    I - *Building a Graphical User Interface with MATLAB

    Radio ButtonSimilar to the check box in that there are two states associated with each other.Usually two or more radio buttons are linked together as a group.They are linked in the sense that only one of the buttons will be in its selected state.>>mcradiox

    I - *Building a Graphical User Interface with MATLAB

    Editable TextUsed in situations that require the user to enter strings or characters or numbers. The strings , in turn, are used by the application for which the interface has been built.Clicking anywhere within this object will change the mouse from a pointer to a text insertion indicator.

    >>mcedit, mceditf

    I - *Building a Graphical User Interface with MATLAB

    List BoxesNew style provided by MATLAB 5.xVery similar to pop-up menus.The main difference with a list box is that you can make the set of options visible to the user at all times.

    >>mccheckbox>>mclistbox

    I - *Building a Graphical User Interface with MATLAB

    Pop-up Menus

    Used in situations where multiple choices need to be available to the user.When the user clicks and holds the mouse button anywhere within the object, a list of choices appear.>>mcpopup

    I - *Building a Graphical User Interface with MATLAB

    SlidersUseful in representing a fixed range of values from which to choose.The slider has no way of explicitly indicating the numeric value that the slider represents. Therefor, it is recommended that an editable text or static text style uicontrol accompany the slider.

    >>mcslider, mcslider2

    I - *Building a Graphical User Interface with MATLAB

    FramesProvide a solid background that helps blend a set of uicontrols into one complete and cohesive interface.Used as an effective method of organizing the GUI in a logical and intuitive fashion.

    I - *Building a Graphical User Interface with MATLAB

    Static TextAvailable for creating labels, status messages or other information pertinent to the user.Static text does not perform any action if the user clicks on any part of the object. In addition , the user can not edit the information that is displayed.

    I - *Building a Graphical User Interface with MATLAB

    Properties that Track User ActionsButtonDownFcn- When clicking the mouse button while the pointer is located over or near the object. WindowButtonDownFcn- When clicking the mouse button down within the figure boundaries.WindowButtonUpFcn- When clicking the mouse button up within the figure boundaries.WindowButtonMotionFcn- When the mouse pointer moves within the figure boundaries.KeyboardFcn- When the figure is active.CreatFcn- When creating an object.DeleteFcn- When deleting an object.ResizeFcn- When resizing the figure.

    I - *Building a Graphical User Interface with MATLAB

    Some useful instructions.AXES(axes_handle) - make the axes, current.

    Object_H=GCBO - to get the object that make the callback.

    RBUTTON(Radio_H) - use to select and deselect radio buttons with the same Tag Name

    I - *Building a Graphical User Interface with MATLAB

    Setting figure.h0 = figure('Color',[0.8 0.8 0.8], ...'Units','Normal', ...'Position',[0.3 0.3 0.3 0.3], ...'Tag','Fig1');

    %Setting figure nameset(h0,'Name','Check and radio');

    I - *Building a Graphical User Interface with MATLAB

    Setting Push Button.h1 =uicontrol ('Parent',h0, 'Units','Normal','Position',[0.1 0.3 0.3 0.4] ,'Tag','Pushbutton1'); %Setting the callBack Function set(h1,'Callback','Button_1_callBack_Function');%Setting the string on the buttonset(h1,'String','Push.B_1');%Setting Tool Tip String set(h1,'TooltipString','Push Me To Call The CallBack Function!'); %Setting The Text Color on the button (the foreground color)set(h1,'ForegroundColor',[0.0,.0,0.0]); %setting the background colorset(h1,'BackgroundColor',[0.0,1.0,0.0]);

    I - *Building a Graphical User Interface with MATLAB

    Edit - Box call back function.EditBox_H=GCBO;

    EditBoxString=get (EditBox_H,'String')

    ***********************1**Callbacks should be short and call functions When MATLAB evals a string, it must interpret it statement by statement. MATLAB must do the same with a script M-file. It behaves differently with a function: the first time MATLAB encounters the function, it compiles it. MATLAB does not re-interpret the function on subsequent calls. Thus of the three possibilities (function M-file, script M-file, and long string), making the callback a function M-file is by far the fastest, especially if the callback is long..Drawing settingsDraw movable or changing objects with the 'EraseMode' property set to 'xor' or 'background'. This prevents re-rendering the axes when changing these objects. 'EraseMode' is a property of all objects which are children of axes (line, text, surface, image, patch).Set 'DrawMode' (an axes property) to 'fast'. This prevents MATLAB from sorting 3D objects, which can speed things up significantly. The side-effect is that 3D surface plots will not work in this mode.Set 'BackingStore' (a figure property) to 'off'. This should give roughly a factor of two speed-up in normal drawing but turns off the instantaneous update that normally occurs when windows are uncovered.Set 'NextPlot' (a figure property) to 'new' when creating a GUI. That way when you make plots from the command window they don't appear in the axes of the GUI's figure window.Wherever possible, recycle figure windows by using the 'visible' property of figures instead of creating and destroying them. When done with the window, set 'visible' to 'off'; when you need the window again, make any changes to the window and THEN set 'visible' to 'on'. Creating figure windows involves much more overhead than un-hiding them.*Callbacks should be short and call functions When MATLAB evals a string, it must interpret it statement by statement. MATLAB must do the same with a script M-file. It behaves differently with a function: the first time MATLAB encounters the function, it compiles it. MATLAB does not re-interpret the function on subsequent calls. Thus of the three possibilities (function M-file, script M-file, and long string), making the callback a function M-file is by far the fastest, especially if the callback is long..Drawing settingsDraw movable or changing objects with the 'EraseMode' property set to 'xor' or 'background'. This prevents re-rendering the axes when changing these objects. 'EraseMode' is a property of all objects which are children of axes (line, text, surface, image, patch).Set 'DrawMode' (an axes property) to 'fast'. This prevents MATLAB from sorting 3D objects, which can speed things up significantly. The side-effect is that 3D surface plots will not work in this mode.Set 'BackingStore' (a figure property) to 'off'. This should give roughly a factor of two speed-up in normal drawing but turns off the instantaneous update that normally occurs when windows are uncovered.Set 'NextPlot' (a figure property) to 'new' when creating a GUI. That way when you make plots from the command window they don't appear in the axes of the GUI's figure window.Wherever possible, recycle figure windows by using the 'visible' property of figures instead of creating and destroying them. When done with the window, set 'visible' to 'off'; when you need the window again, make any changes to the window and THEN set 'visible' to 'on'. Creating figure windows involves much more overhead than un-hiding them.*Callbacks should be short and call functions When MATLAB evals a string, it must interpret it statement by statement. MATLAB must do the same with a script M-file. It behaves differently with a function: the first time MATLAB encounters the function, it compiles it. MATLAB does not re-interpret the function on subsequent calls. Thus of the three possibilities (function M-file, script M-file, and long string), making the callback a function M-file is by far the fastest, especially if the callback is long..Drawing settingsDraw movable or changing objects with the 'EraseMode' property set to 'xor' or 'background'. This prevents re-rendering the axes when changing these objects. 'EraseMode' is a property of all objects which are children of axes (line, text, surface, image, patch).Set 'DrawMode' (an axes property) to 'fast'. This prevents MATLAB from sorting 3D objects, which can speed things up significantly. The side-effect is that 3D surface plots will not work in this mode.Set 'BackingStore' (a figure property) to 'off'. This should give roughly a factor of two speed-up in normal drawing but turns off the instantaneous update that normally occurs when windows are uncovered.Set 'NextPlot' (a figure property) to 'new' when creating a GUI. That way when you make plots from the command window they don't appear in the axes of the GUI's figure window.Wherever possible, recycle figure windows by using the 'visible' property of figures instead of creating and destroying them. When done with the window, set 'visible' to 'off'; when you need the window again, make any changes to the window and THEN set 'visible' to 'on'. Creating figure windows involves much more overhead than un-hiding them.*Callbacks should be short and call functions When MATLAB evals a string, it must interpret it statement by statement. MATLAB must do the same with a script M-file. It behaves differently with a function: the first time MATLAB encounters the function, it compiles it. MATLAB does not re-interpret the function on subsequent calls. Thus of the three possibilities (function M-file, script M-file, and long string), making the callback a function M-file is by far the fastest, especially if the callback is long..Drawing settingsDraw movable or changing objects with the 'EraseMode' property set to 'xor' or 'background'. This prevents re-rendering the axes when changing these objects. 'EraseMode' is a property of all objects which are children of axes (line, text, surface, image, patch).Set 'DrawMode' (an axes property) to 'fast'. This prevents MATLAB from sorting 3D objects, which can speed things up significantly. The side-effect is that 3D surface plots will not work in this mode.Set 'BackingStore' (a figure property) to 'off'. This should give roughly a factor of two speed-up in normal drawing but turns off the instantaneous update that normally occurs when windows are uncovered.Set 'NextPlot' (a figure property) to 'new' when creating a GUI. That way when you make plots from the command window they don't appear in the axes of the GUI's figure window.Wherever possible, recycle figure windows by using the 'visible' property of figures instead of creating and destroying them. When done with the window, set 'visible' to 'off'; when you need the window again, make any changes to the window and THEN set 'visible' to 'on'. Creating figure windows involves much more overhead than un-hiding them.*Callbacks should be short and call functions When MATLAB evals a string, it must interpret it statement by statement. MATLAB must do the same with a script M-file. It behaves differently with a function: the first time MATLAB encounters the function, it compiles it. MATLAB does not re-interpret the function on subsequent calls. Thus of the three possibilities (function M-file, script M-file, and long string), making the callback a function M-file is by far the fastest, especially if the callback is long..Drawing settingsDraw movable or changing objects with the 'EraseMode' property set to 'xor' or 'background'. This prevents re-rendering the axes when changing these objects. 'EraseMode' is a property of all objects which are children of axes (line, text, surface, image, patch).Set 'DrawMode' (an axes property) to 'fast'. This prevents MATLAB from sorting 3D objects, which can speed things up significantly. The side-effect is that 3D surface plots will not work in this mode.Set 'BackingStore' (a figure property) to 'off'. This should give roughly a factor of two speed-up in normal drawing but turns off the instantaneous update that normally occurs when windows are uncovered.Set 'NextPlot' (a figure property) to 'new' when creating a GUI. That way when you make plots from the command window they don't appear in the axes of the GUI's figure window.Wherever possible, recycle figure windows by using the 'visible' property of figures instead of creating and destroying them. When done with the window, set 'visible' to 'off'; when you need the window again, make any changes to the window and THEN set 'visible' to 'on'. Creating figure windows involves much more overhead than un-hiding them.*Callbacks should be short and call functions When MATLAB evals a string, it must interpret it statement by statement. MATLAB must do the same with a script M-file. It behaves differently with a function: the first time MATLAB encounters the function, it compiles it. MATLAB does not re-interpret the function on subsequent calls. Thus of the three possibilities (function M-file, script M-file, and long string), making the callback a function M-file is by far the fastest, especially if the callback is long..Drawing settingsDraw movable or changing objects with the 'EraseMode' property set to 'xor' or 'background'. This prevents re-rendering the axes when changing these objects. 'EraseMode' is a property of all objects which are children of axes (line, text, surface, image, patch).Set 'DrawMode' (an axes property) to 'fast'. This prevents MATLAB from sorting 3D objects, which can speed things up significantly. The side-effect is that 3D surface plots will not work in this mode.Set 'BackingStore' (a figure property) to 'off'. This should give roughly a factor of two speed-up in normal drawing but turns off the instantaneous update that normally occurs when windows are uncovered.Set 'NextPlot' (a figure property) to 'new' when creating a GUI. That way when you make plots from the command window they don't appear in the axes of the GUI's figure window.Wherever possible, recycle figure windows by using the 'visible' property of figures instead of creating and destroying them. When done with the window, set 'visible' to 'off'; when you need the window again, make any changes to the window and THEN set 'visible' to 'on'. Creating figure windows involves much more overhead than un-hiding them.*Callbacks should be short and call functions When MATLAB evals a string, it must interpret it statement by statement. MATLAB must do the same with a script M-file. It behaves differently with a function: the first time MATLAB encounters the function, it compiles it. MATLAB does not re-interpret the function on subsequent calls. Thus of the three possibilities (function M-file, script M-file, and long string), making the callback a function M-file is by far the fastest, especially if the callback is long..Drawing settingsDraw movable or changing objects with the 'EraseMode' property set to 'xor' or 'background'. This prevents re-rendering the axes when changing these objects. 'EraseMode' is a property of all objects which are children of axes (line, text, surface, image, patch).Set 'DrawMode' (an axes property) to 'fast'. This prevents MATLAB from sorting 3D objects, which can speed things up significantly. The side-effect is that 3D surface plots will not work in this mode.Set 'BackingStore' (a figure property) to 'off'. This should give roughly a factor of two speed-up in normal drawing but turns off the instantaneous update that normally occurs when windows are uncovered.Set 'NextPlot' (a figure property) to 'new' when creating a GUI. That way when you make plots from the command window they don't appear in the axes of the GUI's figure window.Wherever possible, recycle figure windows by using the 'visible' property of figures instead of creating and destroying them. When done with the window, set 'visible' to 'off'; when you need the window again, make any changes to the window and THEN set 'visible' to 'on'. Creating figure windows involves much more overhead than un-hiding them.*Callbacks should be short and call functions When MATLAB evals a string, it must interpret it statement by statement. MATLAB must do the same with a script M-file. It behaves differently with a function: the first time MATLAB encounters the function, it compiles it. MATLAB does not re-interpret the function on subsequent calls. Thus of the three possibilities (function M-file, script M-file, and long string), making the callback a function M-file is by far the fastest, especially if the callback is long..Drawing settingsDraw movable or changing objects with the 'EraseMode' property set to 'xor' or 'background'. This prevents re-rendering the axes when changing these objects. 'EraseMode' is a property of all objects which are children of axes (line, text, surface, image, patch).Set 'DrawMode' (an axes property) to 'fast'. This prevents MATLAB from sorting 3D objects, which can speed things up significantly. The side-effect is that 3D surface plots will not work in this mode.Set 'BackingStore' (a figure property) to 'off'. This should give roughly a factor of two speed-up in normal drawing but turns off the instantaneous update that normally occurs when windows are uncovered.Set 'NextPlot' (a figure property) to 'new' when creating a GUI. That way when you make plots from the command window they don't appear in the axes of the GUI's figure window.Wherever possible, recycle figure windows by using the 'visible' property of figures instead of creating and destroying them. When done with the window, set 'visible' to 'off'; when you need the window again, make any changes to the window and THEN set 'visible' to 'on'. Creating figure windows involves much more overhead than un-hiding them.*Callbacks should be short and call functions When MATLAB evals a string, it must interpret it statement by statement. MATLAB must do the same with a script M-file. It behaves differently with a function: the first time MATLAB encounters the function, it compiles it. MATLAB does not re-interpret the function on subsequent calls. Thus of the three possibilities (function M-file, script M-file, and long string), making the callback a function M-file is by far the fastest, especially if the callback is long..Drawing settingsDraw movable or changing objects with the 'EraseMode' property set to 'xor' or 'background'. This prevents re-rendering the axes when changing these objects. 'EraseMode' is a property of all objects which are children of axes (line, text, surface, image, patch).Set 'DrawMode' (an axes property) to 'fast'. This prevents MATLAB from sorting 3D objects, which can speed things up significantly. The side-effect is that 3D surface plots will not work in this mode.Set 'BackingStore' (a figure property) to 'off'. This should give roughly a factor of two speed-up in normal drawing but turns off the instantaneous update that normally occurs when windows are uncovered.Set 'NextPlot' (a figure property) to 'new' when creating a GUI. That way when you make plots from the command window they don't appear in the axes of the GUI's figure window.Wherever possible, recycle figure windows by using the 'visible' property of figures instead of creating and destroying them. When done with the window, set 'visible' to 'off'; when you need the window again, make any changes to the window and THEN set 'visible' to 'on'. Creating figure windows involves much more overhead than un-hiding them.*Callbacks should be short and call functions When MATLAB evals a string, it must interpret it statement by statement. MATLAB must do the same with a script M-file. It behaves differently with a function: the first time MATLAB encounters the function, it compiles it. MATLAB does not re-interpret the function on subsequent calls. Thus of the three possibilities (function M-file, script M-file, and long string), making the callback a function M-file is by far the fastest, especially if the callback is long..Drawing settingsDraw movable or changing objects with the 'EraseMode' property set to 'xor' or 'background'. This prevents re-rendering the axes when changing these objects. 'EraseMode' is a property of all objects which are children of axes (line, text, surface, image, patch).Set 'DrawMode' (an axes property) to 'fast'. This prevents MATLAB from sorting 3D objects, which can speed things up significantly. The side-effect is that 3D surface plots will not work in this mode.Set 'BackingStore' (a figure property) to 'off'. This should give roughly a factor of two speed-up in normal drawing but turns off the instantaneous update that normally occurs when windows are uncovered.Set 'NextPlot' (a figure property) to 'new' when creating a GUI. That way when you make plots from the command window they don't appear in the axes of the GUI's figure window.Wherever possible, recycle figure windows by using the 'visible' property of figures instead of creating and destroying them. When done with the window, set 'visible' to 'off'; when you need the window again, make any changes to the window and THEN set 'visible' to 'on'. Creating figure windows involves much more overhead than un-hiding them.*Callbacks should be short and call functions When MATLAB evals a string, it must interpret it statement by statement. MATLAB must do the same with a script M-file. It behaves differently with a function: the first time MATLAB encounters the function, it compiles it. MATLAB does not re-interpret the function on subsequent calls. Thus of the three possibilities (function M-file, script M-file, and long string), making the callback a function M-file is by far the fastest, especially if the callback is long..Drawing settingsDraw movable or changing objects with the 'EraseMode' property set to 'xor' or 'background'. This prevents re-rendering the axes when changing these objects. 'EraseMode' is a property of all objects which are children of axes (line, text, surface, image, patch).Set 'DrawMode' (an axes property) to 'fast'. This prevents MATLAB from sorting 3D objects, which can speed things up significantly. The side-effect is that 3D surface plots will not work in this mode.Set 'BackingStore' (a figure property) to 'off'. This should give roughly a factor of two speed-up in normal drawing but turns off the instantaneous update that normally occurs when windows are uncovered.Set 'NextPlot' (a figure property) to 'new' when creating a GUI. That way when you make plots from the command window they don't appear in the axes of the GUI's figure window.Wherever possible, recycle figure windows by using the 'visible' property of figures instead of creating and destroying them. When done with the window, set 'visible' to 'off'; when you need the window again, make any changes to the window and THEN set 'visible' to 'on'. Creating figure windows involves much more overhead than un-hiding them.*Callbacks should be short and call functions When MATLAB evals a string, it must interpret it statement by statement. MATLAB must do the same with a script M-file. It behaves differently with a function: the first time MATLAB encounters the function, it compiles it. MATLAB does not re-interpret the function on subsequent calls. Thus of the three possibilities (function M-file, script M-file, and long string), making the callback a function M-file is by far the fastest, especially if the callback is long..Drawing settingsDraw movable or changing objects with the 'EraseMode' property set to 'xor' or 'background'. This prevents re-rendering the axes when changing these objects. 'EraseMode' is a property of all objects which are children of axes (line, text, surface, image, patch).Set 'DrawMode' (an axes property) to 'fast'. This prevents MATLAB from sorting 3D objects, which can speed things up significantly. The side-effect is that 3D surface plots will not work in this mode.Set 'BackingStore' (a figure property) to 'off'. This should give roughly a factor of two speed-up in normal drawing but turns off the instantaneous update that normally occurs when windows are uncovered.Set 'NextPlot' (a figure property) to 'new' when creating a GUI. That way when you make plots from the command window they don't appear in the axes of the GUI's figure window.Wherever possible, recycle figure windows by using the 'visible' property of figures instead of creating and destroying them. When done with the window, set 'visible' to 'off'; when you need the window again, make any changes to the window and THEN set 'visible' to 'on'. Creating figure windows involves much more overhead than un-hiding them.*This manual has covered a lot of information in a very brief period. The following list of references go into more detail on the topics covered here:Suggested ReferencesTitle: Tog on Interface Author: Tognazzini, B. Publisher: Addison-Wesley ISBN: 0-201-60842-1 List Price: $29.95

    Title: Secrets of Effective GUI DesignAuthor: Mark MinasiPublisher: SYBEX Inc.ISBN: 0-7821-1495-4List Price: $19.99

    Title: Developing User Interfaces / Ensuring Usability Through Product and Process Author: Hix and HartsonPublisher: John Wiley & Sons Inc.ISBN: 0-471-57813-4List Price: $34.95

    Title: Windows Interface, An Application Design Author: Microsoft Publisher: Microsoft Press ISBN: 1-55615-439-9 List Price: $39.95

    Title: Design of Everyday Things Author: Donald A NormanPublisher: Doubleday & Delacorte Press ISBN: 0-385-26774-6 List Price: $15.00

    Title: Designing User InterfacesAuthor: PowellPublisher:ISBN:List Price:

    *This manual has covered a lot of information in a very brief period. The following list of references go into more detail on the topics covered here:Suggested ReferencesTitle: Tog on Interface Author: Tognazzini, B. Publisher: Addison-Wesley ISBN: 0-201-60842-1 List Price: $29.95

    Title: Secrets of Effective GUI DesignAuthor: Mark MinasiPublisher: SYBEX Inc.ISBN: 0-7821-1495-4List Price: $19.99

    Title: Developing User Interfaces / Ensuring Usability Through Product and Process Author: Hix and HartsonPublisher: John Wiley & Sons Inc.ISBN: 0-471-57813-4List Price: $34.95

    Title: Windows Interface, An Application Design Author: Microsoft Publisher: Microsoft Press ISBN: 1-55615-439-9 List Price: $39.95

    Title: Design of Everyday Things Author: Donald A NormanPublisher: Doubleday & Delacorte Press ISBN: 0-385-26774-6 List Price: $15.00

    Title: Designing User InterfacesAuthor: PowellPublisher:ISBN:List Price:

    *This manual has covered a lot of information in a very brief period. The following list of references go into more detail on the topics covered here:Suggested ReferencesTitle: Tog on Interface Author: Tognazzini, B. Publisher: Addison-Wesley ISBN: 0-201-60842-1 List Price: $29.95

    Title: Secrets of Effective GUI DesignAuthor: Mark MinasiPublisher: SYBEX Inc.ISBN: 0-7821-1495-4List Price: $19.99

    Title: Developing User Interfaces / Ensuring Usability Through Product and Process Author: Hix and HartsonPublisher: John Wiley & Sons Inc.ISBN: 0-471-57813-4List Price: $34.95

    Title: Windows Interface, An Application Design Author: Microsoft Publisher: Microsoft Press ISBN: 1-55615-439-9 List Price: $39.95

    Title: Design of Everyday Things Author: Donald A NormanPublisher: Doubleday & Delacorte Press ISBN: 0-385-26774-6 List Price: $15.00

    Title: Designing User InterfacesAuthor: PowellPublisher:ISBN:List Price:

    *This manual has covered a lot of information in a very brief period. The following list of references go into more detail on the topics covered here:Suggested ReferencesTitle: Tog on Interface Author: Tognazzini, B. Publisher: Addison-Wesley ISBN: 0-201-60842-1 List Price: $29.95

    Title: Secrets of Effective GUI DesignAuthor: Mark MinasiPublisher: SYBEX Inc.ISBN: 0-7821-1495-4List Price: $19.99

    Title: Developing User Interfaces / Ensuring Usability Through Product and Process Author: Hix and HartsonPublisher: John Wiley & Sons Inc.ISBN: 0-471-57813-4List Price: $34.95

    Title: Windows Interface, An Application Design Author: Microsoft Publisher: Microsoft Press ISBN: 1-55615-439-9 List Price: $39.95

    Title: Design of Everyday Things Author: Donald A NormanPublisher: Doubleday & Delacorte Press ISBN: 0-385-26774-6 List Price: $15.00

    Title: Designing User InterfacesAuthor: PowellPublisher:ISBN:List Price: