function h = respprop
%RESPPROP  Response object property constructor

%   Author(s): A. DiVergilio
%   Copyright 1986-2000 The MathWorks, Inc. 
%   $Revision: 1.8 $  $Date: 2000/08/02 16:05:53 $

a = findpackage('cstprefs');

if nargout==0
   %---Register class
   c = schema.class(a,'respprop');

   %---Define properties
   schema.prop(c,'ResponseType',         'String');
   schema.prop(c,'Title',                'String');
   schema.prop(c,'Xlabel',               'String');
   schema.prop(c,'Ylabel',               'String');
   schema.prop(c,'InputLabel',           'mxArray');
   schema.prop(c,'OutputLabel',          'mxArray');
   schema.prop(c,'XlimMode',             'String');
   schema.prop(c,'Xlim',                 'mxArray');
   schema.prop(c,'YlimMode',             'String');
   schema.prop(c,'Ylim',                 'mxArray');
   schema.prop(c,'FrequencyUnits',       'String');
   schema.prop(c,'FrequencyScale',       'String');
   schema.prop(c,'MagnitudeUnits',       'String');
   schema.prop(c,'MagnitudeScale',       'String');
   schema.prop(c,'PhaseUnits',           'String');
   schema.prop(c,'Grid',                 'String');
   schema.prop(c,'GridLabelType',        'String');
   schema.prop(c,'TitleFontSize',        'mxArray');
   schema.prop(c,'TitleFontWeight',      'String');
   schema.prop(c,'TitleFontAngle',       'String');
   schema.prop(c,'XYLabelsFontSize',     'mxArray');
   schema.prop(c,'XYLabelsFontWeight',   'String');
   schema.prop(c,'XYLabelsFontAngle',    'String');
   schema.prop(c,'AxesFontSize',         'mxArray');
   schema.prop(c,'AxesFontWeight',       'String');
   schema.prop(c,'AxesFontAngle',        'String');
   schema.prop(c,'IOLabelsFontSize',     'mxArray');
   schema.prop(c,'IOLabelsFontWeight',   'String');
   schema.prop(c,'IOLabelsFontAngle',    'String');
   schema.prop(c,'AxesForegroundColor',  'mxArray');
   schema.prop(c,'PeakResponse',         'String');
   schema.prop(c,'SettlingTime',         'String');
   schema.prop(c,'SettlingTimeThreshold','mxArray');
   schema.prop(c,'RiseTime',             'String');
   schema.prop(c,'RiseTimeLimits',       'mxArray');
   schema.prop(c,'SteadyState',          'String');
   schema.prop(c,'StabilityMargin',      'String');
   schema.prop(c,'AllStabilityMargin',   'String');
   schema.prop(c,'UnwrapPhase',          'String');

   %---Extra properties for managing listeners
   schema.prop(c,'LastChange',           'mxArray');
   schema.prop(c,'ListenerEnable',       'mxArray');

   %---Extra properties for managing mimo limits
   schema.prop(c,'XlimSet',              'mxArray');
   schema.prop(c,'XlimSetIndex',         'mxArray');
   schema.prop(c,'YlimSet',              'mxArray');
   schema.prop(c,'YlimSetIndex',         'mxArray');

else
   %---Create class instance
   h = cstprefs.respprop;

   %---Initialize optional properties to unknown state
   h.FrequencyUnits        = 'tmp';
   h.FrequencyScale        = 'tmp';
   h.MagnitudeUnits        = 'tmp';
   h.MagnitudeScale        = 'tmp';
   h.PhaseUnits            = 'tmp';
   h.GridLabelType         = 'tmp';
   h.PeakResponse          = 'tmp';
   h.SettlingTime          = 'tmp';
   h.SettlingTimeThreshold = -1;
   h.RiseTime              = 'tmp';
   h.RiseTimeLimits        = [-1 0];
   h.SteadyState           = 'tmp';
   h.StabilityMargin       = 'tmp';
   h.AllStabilityMargin    = 'tmp';
   h.UnwrapPhase           = 'tmp';

   %---Allow GUIs to reflect changes in property fields
   h.ListenerEnable        = 1;

end
