function theResult = control(self, theStyle, ... theNormalizedPosition, thePixelOffset, ... varargin) % ps/control -- Create UIControl for "ps". % control(self, 'theStyle', theNormalizedPosition, thePixelOffset) % creates the given control and enables it to be repositioned % in normalized and pixel coordinates during resizing. The % style may be given as a string, or as an actual control % already present in the figure associated with self, a "px" % object. Additional name/value pairs can be appended to the % argument list to change the properties of the control. % % Note: scrollbars along the edge of the figure can be specified % by their location: 'bottom', 'right', 'top', or 'left'. The % "String" property will be set to one of those. For other % controls, the "String" can be set with a name/value pair. % Copyright (C) 1999 Dr. Charles R. Denham, ZYDECO. % All Rights Reserved. % Disclosure without explicit written consent from the % copyright owner does not constitute publication. % Version of 03-Nov-1999 00:34:10. % Updated 04-Nov-1999 16:05:09. if nargout > 0, theResult = []; end if nargin < 1, help(mfilename), return, end if nargin < 2, theStyle = 'pushbutton'; end if nargin < 3 theNormalizedPosition = [0 0 0 0]; end if nargin < 4 thePixelOffset = get(0, 'DefaultUIControlPosition'); end theTag = ''; switch lower(theStyle) case {'xscrollbar', 'hscrollbar', 'bottom'} theString = 'bottom'; theTag = 'bottom'; theStyle = 'slider'; theNormalizedPosition = [0 0 1 0]; thePixelOffset = [16 0 -32 16]; case {'yscrollbar', 'vscrollbar', 'right'} theString = 'right'; theTag = 'right'; theStyle = 'slider'; theNormalizedPosition = [1 0 0 1]; thePixelOffset = [-16 16 16 -32]; case {'zscrollbar', 'left'} theString = 'left'; theTag = 'left'; theStyle = 'slider'; theNormalizedPosition = [0 0 0 1]; thePixelOffset = [0 16 16 -32]; case {'cscrollbar', 'top'} theString = 'top'; theTag = 'top'; theStyle = 'slider'; theNormalizedPosition = [0 1 1 0]; thePixelOffset = [16 -16 -32 16]; end theLayout = [theNormalizedPosition; thePixelOffset]; u.itsLayout = theLayout; if ishandle(theStyle) theControl = theStyle; else theControl = uicontrol('Style', theStyle); if ~isempty(varargin) set(theControl, varargin{:}) end set(theControl, 'UserData', u, 'Tag', theTag) end doresize(self) if nargout > 0 theResult = theControl; end