function helpfun2(figName,titleStr,helpStr1,helpStr2,helpStr3,helpStr4,helpStr5); % HELPFUN2 Utility function for displaying help text conveniently. % % Ned Gulley, 6-21-93 % Copyright (c) 1984-94 by The MathWorks, Inc. % % July, 1995, Mod by Brian Blanton to accept generic window name % and upto 5 pages of message text. % if nargin<3 disp('3 args REQUIRED for helpfun2') return; end numPages=nargin-2; if nargin<7, helpStr5=' '; end if nargin<6, helpStr4=' '; end if nargin<5, helpStr3=' '; end if nargin<4, helpStr2=' '; end % If the Help Window has already been created, bring it to the front [existFlag,figNumber]=figflag(figName,1); newHelpWindowFlag=~existFlag; if newHelpWindowFlag, position=get(0,'DefaultFigurePosition'); position(3:4)=[550 450]; figNumber=figure('Name',figName, ... 'NumberTitle','off', ... 'NextPlot','new', ... 'Visible','off', ... 'Position',position, ... 'Colormap',[],... 'Tag',figName); %=================================== % Set up the Help Window top=0.95; left=0.05; right=0.75; bottom=0.05; labelHt=0.05; spacing=0.005; % First, the Text Window frame frmBorder=0.02; frmPos=[left-frmBorder bottom-frmBorder ... (right-left)+2*frmBorder (top-bottom)+2*frmBorder]; uicontrol( ... 'Style','frame', ... 'Units','normalized', ... 'Position',frmPos, ... 'BackgroundColor',[0.5 0.5 0.5]); % Then the text label labelPos=[left top-labelHt (right-left) labelHt]; ttlHndl=uicontrol( ... 'Style','text', ... 'Units','normalized', ... 'Position',labelPos, ... 'BackgroundColor',[0.5 0.5 0.5], ... 'ForegroundColor',[1 1 1], ... 'String',titleStr); % Then the editable text field (of which there are three) % Store the text field's handle two places: once in the figure % UserData and once in the button's UserData. for count=1:5, helpStr=eval(['helpStr',num2str(count)]); txtPos=[left bottom (right-left) top-bottom-labelHt-spacing]; txtHndlList(count)=uicontrol( ... 'Style','edit', ... 'Units','normalized', ... 'Max',20, ... 'String',helpStr, ... 'BackgroundColor',[1 1 1], ... 'Visible','off', ... 'Position',txtPos); end; set(txtHndlList(1),'Visible','on'); %==================================== % Information for all buttons labelColor=[0.8 0.8 0.8]; top=0.95; bottom=0.05; yInitPos=0.80; left=0.80; btnWid=0.15; btnHt=0.10; % Spacing between the button and the next command's label spacing=0.05; %==================================== % The CONSOLE frame frmBorder=0.02; yPos=bottom-frmBorder; frmPos=[left-frmBorder yPos btnWid+2*frmBorder 0.9+2*frmBorder]; uicontrol( ... 'Style','frame', ... 'Units','normalized', ... 'Position',frmPos, ... 'BackgroundColor',[0.5 0.5 0.5]); %==================================== % All required BUTTONS for count=1:5 % The PAGE button labelStr=['Page ',num2str(count)]; % The callback will turn off ALL text fields and then turn on % only the one referred to by the button. callbackStr= ... ['txtHndl=get(gco,''UserData'');' ... 'hndlList=get(gcf,''UserData'');' ... 'set(hndlList(2:6),''Visible'',''off'');' ... 'set(txtHndl,''Visible'',''on'');']; btnHndlList(count)=uicontrol( ... 'Style','pushbutton', ... 'Units','normalized', ... 'Position',[left top-btnHt-(count-1)*(btnHt+spacing) btnWid btnHt], ... 'String',labelStr, ... 'UserData',txtHndlList(count), ... 'Visible','off', ... 'Callback',callbackStr); end; %==================================== % The CLOSE button ; changed by BOB to terminate the help window callbackStr=['delete(gcf)']; % callbackStr= ... % ['f1=gcf; f2=gpf; set(f1,''Visible'',''off'');', ... % 'if f1~=f2, figure(f2); end']; uicontrol( ... 'Style','pushbutton', ... 'Units','normalized', ... 'Position',[left 0.05 btnWid 0.10], ... 'String','Close', ... 'Callback',callbackStr); hndlList=[ttlHndl txtHndlList btnHndlList]; set(figNumber,'UserData',hndlList) end; % Now that we've determined the figure number, we can install the % Desired strings. hndlList=get(figNumber,'UserData'); ttlHndl=hndlList(1); txtHndlList=hndlList(2:6); btnHndlList=hndlList(7:11); set(ttlHndl,'String',titleStr); set(txtHndlList(2:3),'Visible','off'); set(txtHndlList(1),'Visible','on'); set(txtHndlList(1),'String',helpStr1); set(txtHndlList(2),'String',helpStr2); set(txtHndlList(3),'String',helpStr3); set(txtHndlList(4),'String',helpStr4); set(txtHndlList(5),'String',helpStr5); if numPages==1, set(btnHndlList,'Visible','off'); elseif numPages==2, set(btnHndlList,'Visible','off'); set(btnHndlList(1:2),'Visible','on'); elseif numPages==3, set(btnHndlList,'Visible','off'); set(btnHndlList(1:3),'Visible','on'); elseif numPages==4, set(btnHndlList,'Visible','off'); set(btnHndlList(1:4),'Visible','on'); elseif numPages==5, set(btnHndlList,'Visible','off'); set(btnHndlList(1:5),'Visible','on'); end; set(figNumber,'Visible','on'); figure(figNumber);