function varargout = warn(varargin) % QUESTION M-file for question.fig % QUESTION by itself, creates a new QUESTION or raises the % existing singleton*. % % H = QUESTION returns the handle to a new QUESTION or the handle to % the existing singleton*. % % QUESTION('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in QUESTION.M with the given input arguments. % % QUESTION('Property','Value',...) creates a new QUESTION or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before question_OpeningFunction gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to question_OpeningFcn via varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help question % Last Modified by GUIDE v2.5 18-Dec-2006 11:43:52 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @warn_OpeningFcn, ... 'gui_OutputFcn', @warn_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT % --- Executes just before question is made visible. function warn_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to question (see VARARGIN) % Choose default command line output for question handles.output = 'Yes'; % Update handles structure guidata(hObject, handles); % Insert custom Title and Text if specified by the user % Hint: when choosing keywords, be sure they are not easily confused % with existing figure properties. See the output of set(figure) for % a list of figure properties. if(nargin > 3) for index = 1:2:(nargin-3), if nargin-3==index, break, end switch lower(varargin{index}) case 'title' set(hObject, 'Name', varargin{index+1}); case 'string' set(handles.text1, 'String', varargin{index+1}); end end end % Determine the position of the dialog - centered on the callback figure % if available, else, centered on the screen FigPos=get(0,'DefaultFigurePosition'); OldUnits = get(hObject, 'Units'); set(hObject, 'Units', 'pixels'); OldPos = get(hObject,'Position'); FigWidth = OldPos(3); FigHeight = OldPos(4); if isempty(gcbf) ScreenUnits=get(0,'Units'); set(0,'Units','pixels'); ScreenSize=get(0,'ScreenSize'); set(0,'Units',ScreenUnits); FigPos(1)=1/2*(ScreenSize(3)-FigWidth); FigPos(2)=2/3*(ScreenSize(4)-FigHeight); else GCBFOldUnits = get(gcbf,'Units'); set(gcbf,'Units','pixels'); GCBFPos = get(gcbf,'Position'); set(gcbf,'Units',GCBFOldUnits); FigPos(1:2) = [(GCBFPos(1) + GCBFPos(3) / 2) - FigWidth / 2, ... (GCBFPos(2) + GCBFPos(4) / 2) - FigHeight / 2]; end FigPos(3:4)=[FigWidth FigHeight]; set(hObject, 'Position', FigPos); set(hObject, 'Units', OldUnits); % Show a question icon from dialogicons.mat - variables questIconData % and questIconMap load dialogicons.mat IconData=warnIconData; warnIconMap(256,:) = get(handles.warn_self, 'Color'); IconCMap=warnIconMap; Img=image(IconData, 'Parent', handles.axes1); set(handles.warn_self, 'Colormap', IconCMap); set(handles.axes1, ... 'Visible', 'off', ... 'YDir' , 'reverse' , ... 'XLim' , get(Img,'XData'), ... 'YLim' , get(Img,'YData') ... ); % Make the GUI modal set(handles.warn_self,'WindowStyle','modal') % UIWAIT makes question wait for user response (see UIRESUME) uiwait(handles.warn_self); % --- Outputs from this function are returned to the command line. function varargout = warn_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout{1} = handles.output; % The figure can be deleted now delete(handles.warn_self); % --- Executes on button press in pushbutton1. function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) handles.output = get(hObject,'String'); % Update handles structure guidata(hObject, handles); % Use UIRESUME instead of delete because the OutputFcn needs % to get the updated handles structure. uiresume(handles.warn_self); % --- Executes on button press in pushbutton2. function pushbutton2_Callback(hObject, eventdata, handles) % hObject handle to pushbutton2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) handles.output = get(hObject,'String'); % Update handles structure guidata(hObject, handles); % Use UIRESUME instead of delete because the OutputFcn needs % to get the updated handles structure. uiresume(handles.warn_self); % --- Executes when user attempts to close warn_self. function warn_self_CloseRequestFcn(hObject, eventdata, handles) % hObject handle to warn_self (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) if isequal(get(handles.warn_self, 'waitstatus'), 'waiting') % The GUI is still in UIWAIT, us UIRESUME uiresume(handles.warn_self); else % The GUI is no longer waiting, just close it delete(handles.warn_self); end % --- Executes on key press over warn_self with no controls selected. function warn_self_KeyPressFcn(hObject, eventdata, handles) % hObject handle to warn_self (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Check for "enter" or "escape" if isequal(get(hObject,'CurrentKey'),'escape') % User said no by hitting escape handles.output = 'No'; % Update handles structure guidata(hObject, handles); uiresume(handles.warn_self); end if isequal(get(hObject,'CurrentKey'),'return') uiresume(handles.warn_self); end