function matlfam(action)
%MATLFAM loads a picture of graphics representation
%        of how MATLAB products fit together 

%    Yama Habibzai
%    Copyright (c) 1984-98 by The MathWorks, Inc. All Rights Reserved
%    $Revision: 1.14 $
%    $Date: 1997/12/03 17:29:55 $

if nargin < 1
  allfigs = allchild(0);
  figName = findobj(allfigs, 'Name', 'How the products fit');
  if isempty(figName) 
    action = 'initialize';
  else
    action ='';
  end
end
switch action
case 'initialize',
  load matlfam;
  load finger;  
  figurePos = getfgpos(560, 420);
  fig_matrix = figure('NumberTitle', 'off', 'Name','How the products fit',...
      'Units', 'pixels',...
      'PointerShapeCData', x,...
      'Position', figurePos, 'color', [1 1 1],...
      'windowbuttonmotionfcn', 'prodfit(''movement'')',...
      'windowbuttondownfcn', 'prodfit(''click'')',...
      'Tag', 'FrontImage',...
      'resize', 'off');
  
  image(a); colormap(cm);
  set(gca, 'Units', 'Normalized',...
      'Position', [0 0 1 1], 'Visible', 'off');
  
  % The Frame
  frame = uicontrol(fig_matrix, 'Style', 'Frame',...
      'Units', 'Pixels',...
      'BackGroundColor', [.5 .5 .5],...
      'Position', [431 5 75 55]);

  %The close and Info buttons
  infobtn = uicontrol(fig_matrix, 'Style', 'push',...
      'Units', 'Pixels',...
      'Position', [436 35 65 20],...
      'String', 'More Info',...
      'callback', 'matlfam(''info'')');
  set(fig_matrix, 'Pointer', 'arrow');

  closebtn = uicontrol(fig_matrix, 'Style', 'push',...
      'Units', 'Pixels',...
      'Position', [436 10 65 20],...
      'String', 'Close',...
      'callback', 'close(gcbf)');
  
case 'info'
  ttl = 'MATLAB Family';
  str = {' This graphical representation shows how our'
  ' products fit together.'
  ' '
  ' Click on any of the blocks for more information.'
  ' '
  '-MATLAB is the foundation for all the products.'
  ' MATLAB is itself a powerful fourth generation'
  ' programming language'
  ' '
  '-Toolboxes are collections of routines written in the MATLAB'
  ' language that solve problems for specific applications'
  ' '
  '-Simulink is a program for simulating dynamic systems. As an'
  ' extension to MATLAB, Simulink adds many features specific to'
  ' dynamic systems while retaining all of MATLAB''s general purpose'
  ' functionality'
  ' '
  '-Stateflow is a graphical tool for designing complex control and'
  ' supervisory logic systems. Stateflow provides the ability to'
  ' model and simulate the behavior of complex reactive, event-based'
  ' systems based on finite state machine theory. This capability'
  ' adds to Simulink the ability to combine both continuous and'
  ' event-driven elements of a system in a single closed-loop'
  ' simulation' 
  ' '
  '-Third party products are other companies'' products which'
  ' are integrated with MATLAB'
  ' '
  ' Because all of our products are based on MATLAB, this is'
  ' an extraordinarily well-integrated set of capabilities,'
  ' all grounded in the rock-solid and time-tested numerics of'
  ' MATLAB.'
  ' '};
  
  helpwin(str, ttl);
end % case ...
    
    
    
    

