diff --git a/src/dynare_gui.m b/src/dynare_gui.m index d8a0c49a00ee034e55a38100ba24bdc131598ddc..4d624337106fc1743460a24e17a995db29a36cbe 100644 --- a/src/dynare_gui.m +++ b/src/dynare_gui.m @@ -167,7 +167,7 @@ gui_project(addTab(hObject, 'New project'), 'New'); end % -------------------------------------------------------------------- -function project_open_Callback(varargin) +function project_open_Callback(hObject, ~, ~) % hObject handle to project_open (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) @@ -185,7 +185,7 @@ if isstruct(project_info) ... end end -gui_open_project(varargin{1}); +gui_open_project(hObject); end % -------------------------------------------------------------------- @@ -276,15 +276,15 @@ gui_estim_params(addTab(hObject, 'Est. params & shocks ')); end % -------------------------------------------------------------------- -function estimation_run_Callback(hObject, ~, ~) +function estimation_run_Callback(hObject, ~, handles) possibly_create_model_settings(); -gui_estimation(addTab(hObject, 'Estimation ')); +gui_estimation(addTab(hObject, 'Estimation ', handles)); end % -------------------------------------------------------------------- -function estimation_run_calibrated_smoother_Callback(hObject, ~, ~) +function estimation_run_calibrated_smoother_Callback(hObject, ~, handles) possibly_create_model_settings(); -gui_calib_smoother(addTab(hObject, 'Calib. smoother ')); +gui_calib_smoother(addTab(hObject, 'Calib. smoother ', handles)); end function possibly_create_model_settings() @@ -295,53 +295,53 @@ end % Simulation! % -------------------------------------------------------------------- -function simulation_stochastic_Callback(hObject, ~, ~) +function simulation_stochastic_Callback(hObject, ~, handles) possibly_create_model_settings(); -gui_stoch_simulation(addTab(hObject, 'Stoch simul. ')); +gui_stoch_simulation(addTab(hObject, 'Stoch simul. ', handles)); end % -------------------------------------------------------------------- -function simulation_deterministic_Callback(hObject, ~, ~) +function simulation_deterministic_Callback(hObject, ~, handles) possibly_create_model_settings(); -gui_determ_simulation(addTab(hObject, 'Determ simul. ')); +gui_determ_simulation(addTab(hObject, 'Determ simul. ', handles)); end -function sensitivity_analysis_Callback(hObject, ~, ~) +function sensitivity_analysis_Callback(hObject, ~, handles) possibly_create_model_settings(); -gui_sensitivity_analysis(addTab(hObject, 'Sensitivity')); +gui_sensitivity_analysis(addTab(hObject, 'Sensitivity', handles)); end % Output! -function output_shock_decomposition_Callback(hObject, ~, ~) -gui_shock_decomposition(addTab(hObject, 'Shock decomp. ')); +function output_shock_decomposition_Callback(hObject, ~, handles) +gui_shock_decomposition(addTab(hObject, 'Shock decomp. ', handles)); end % -------------------------------------------------------------------- -function output_realtime_shock_decomposition_Callback(hObject, ~, ~) -gui_realtime_shock_decomposition(addTab(hObject, 'Realtime shock decomp. ')); +function output_realtime_shock_decomposition_Callback(hObject, ~, handles) +gui_realtime_shock_decomposition(addTab(hObject, 'Realtime shock decomp. ', handles)); end % -------------------------------------------------------------------- -function output_plot_shock_decomposition_Callback(hObject, ~, ~) -gui_plot_shock_decomposition(addTab(hObject, 'Plot shock decomp. ')); +function output_plot_shock_decomposition_Callback(hObject, ~, handles) +gui_plot_shock_decomposition(addTab(hObject, 'Plot shock decomp. ', handles)); end % -------------------------------------------------------------------- -function output_conditional_forecast_Callback(hObject, ~) -gui_cond_forecast_preliminary(addTab(hObject, 'Prelim. Cond. forecast '), hObject); +function output_conditional_forecast_Callback(hObject, ~, handles) +gui_cond_forecast_preliminary(addTab(hObject, 'Prelim. Cond. forecast ', handles), hObject, handles); end % -------------------------------------------------------------------- -function output_forecast_Callback(hObject, ~, ~) -gui_forecast(addTab(hObject, 'Forecast ')); +function output_forecast_Callback(hObject, ~, handles) +gui_forecast(addTab(hObject, 'Forecast ', handles)); end -function post_processing_epilogue_Callback(hObject, ~, ~) -gui_epilogue(addTab(hObject, 'Epilogue')); +function post_processing_epilogue_Callback(hObject, ~, handles) +gui_epilogue(addTab(hObject, 'Epilogue', handles)); end % -------------------------------------------------------------------- -function help_product_help_Callback(varargin) +function help_product_help_Callback(~, ~, ~) path = [getappdata(0, 'dynare_gui_root') filesep 'resources' filesep 'html' filesep 'index.html']; if exist(path, 'file') == 2 open(path); @@ -352,9 +352,10 @@ end end % -------------------------------------------------------------------- -function help_dynare_manual_Callback(varargin) +function help_dynare_manual_Callback(~, ~, ~) global dynareroot -html_man_file = [dynareroot '..' filesep 'doc', filesep, 'dynare.html', filesep, 'index.html']; +ind = strfind(dynareroot, [filesep 'matlab']); +html_man_file = [dynareroot(1:ind), 'doc', filesep, 'dynare.html', filesep, 'index.html']; if exist(html_man_file, 'file') == 2 open(html_man_file); else @@ -364,11 +365,11 @@ end end % -------------------------------------------------------------------- -function help_about_Callback(varargin) -gui_about(addTab(varargin{1}, 'About Dynare GUI')); +function help_about_Callback(hObject, ~, handles) +gui_about(addTab(hObject, 'About Dynare GUI ', handles)); end -function newTab = addTab(hObject, title) +function newTab = addTab(hObject, title, ~) newTab = gui_tabs.add_tab(hObject, title); end @@ -405,192 +406,290 @@ h1 = figure(... 'CreateFcn', {@local_CreateFcn, blanks(0), appdata}, ... 'CloseRequestFcn', @(hObject,eventdata)dynare_gui('project_exit_Callback',hObject,eventdata,guidata(hObject))); +appdata = []; +appdata.lastValidTag = 'uitoolbar1'; + uitoolbar(... 'Parent',h1,... 'Visible','off',... - 'Tag','uitoolbar1'); + 'Tag','uitoolbar1',... + 'CreateFcn', {@local_CreateFcn, blanks(0), appdata} ); + +appdata = []; +appdata.lastValidTag = 'project'; h3 = uimenu(... 'Parent',h1,... 'Accelerator','M',... 'Label','Project',... - 'Tag','project'); + 'Tag','project',... + 'CreateFcn', {@local_CreateFcn, blanks(0), appdata} ); + +appdata = []; +appdata.lastValidTag = 'project_new'; uimenu(... 'Parent',h3,... - 'Callback', @project_new_Callback, ... + 'Callback',@(hObject,eventdata)dynare_gui('project_new_Callback',hObject,eventdata,guidata(hObject)),... 'Label','New Project ...',... 'Tag','project_new',... - 'Accelerator','n'); + 'Accelerator','n',... + 'CreateFcn', {@local_CreateFcn, blanks(0), appdata} ); appdata = []; appdata.lastValidTag = 'project_open'; uimenu(... 'Parent',h3,... - 'Callback', @project_open_Callback, ... + 'Callback',@(hObject,eventdata)dynare_gui('project_open_Callback',hObject,eventdata,guidata(hObject)),... 'Label','Open Project ...',... 'Tag','project_open',... - 'Accelerator','o'); + 'Accelerator','o',... + 'CreateFcn', {@local_CreateFcn, blanks(0), appdata} ); + +appdata = []; +appdata.lastValidTag = 'project_close'; uimenu(... 'Parent',h3,... 'Enable','off',... 'Separator','on',... - 'Callback', @project_close_Callback, ... + 'Callback',@(hObject,eventdata)dynare_gui('project_close_Callback',hObject,eventdata,guidata(hObject)),... 'Label','Close Project',... 'Tag','project_close',... - 'Accelerator','w'); + 'Accelerator','w',... + 'CreateFcn', {@local_CreateFcn, blanks(0), appdata} ); + +appdata = []; +appdata.lastValidTag = 'project_save'; uimenu(... 'Parent',h3,... 'Enable','off',... - 'Callback', @project_save_Callback, ... + 'Callback',@(hObject,eventdata)dynare_gui('project_save_Callback',hObject,eventdata,guidata(hObject)),... 'Label','Save Project',... 'Tag','project_save',... - 'Accelerator','s'); + 'Accelerator','s',... + 'CreateFcn', {@local_CreateFcn, blanks(0), appdata} ); + +appdata = []; +appdata.lastValidTag = 'project_save_as'; uimenu(... 'Parent',h3,... 'Enable','off',... 'Separator','on',... - 'Callback', @project_save_as_Callback, ... + 'Callback',@(hObject,eventdata)dynare_gui('project_save_as_Callback',hObject,eventdata,guidata(hObject)),... 'Label','Save Project As ...',... - 'Tag','project_save_as'); + 'Tag','project_save_as',... + 'CreateFcn', {@local_CreateFcn, blanks(0), appdata} ); + +appdata = []; +appdata.lastValidTag = 'project_exit'; uimenu(... 'Parent',h3,... 'Separator','on',... - 'Callback', @project_exit_Callback, ... + 'Callback',@(hObject,eventdata)dynare_gui('project_exit_Callback',hObject,eventdata,guidata(hObject)),... 'Label','Exit',... - 'Tag','project_exit'); + 'Tag','project_exit',... + 'CreateFcn', {@local_CreateFcn, blanks(0), appdata} ); + +appdata = []; +appdata.lastValidTag = 'model'; h10 = uimenu(... 'Parent',h1,... 'Label','Model',... - 'Tag','model'); + 'Tag','model',... + 'CreateFcn', {@local_CreateFcn, blanks(0), appdata} ); + +appdata = []; +appdata.lastValidTag = 'model_load'; uimenu(... 'Parent',h10,... 'Enable','off',... - 'Callback', @model_load_Callback, ... + 'Callback',@(hObject,eventdata)dynare_gui('model_load_Callback',hObject,eventdata,guidata(hObject)),... 'Label','Load main .mod/.dyn file',... - 'Tag','model_load'); + 'Tag','model_load',... + 'CreateFcn', {@local_CreateFcn, blanks(0), appdata} ); + +appdata = []; +appdata.lastValidTag = 'model_settings'; uimenu(... 'Parent',h10,... 'Enable','off',... 'Separator','on',... - 'Callback', @model_settings_Callback, ... + 'Callback',@(hObject,eventdata)dynare_gui('model_settings_Callback',hObject,eventdata,guidata(hObject)),... 'Label','Model settings ...',... - 'Tag','model_settings'); + 'Tag','model_settings',... + 'CreateFcn', {@local_CreateFcn, blanks(0), appdata} ); + +appdata = []; +appdata.lastValidTag = 'model_save_snapshot'; uimenu(... 'Parent',h10,... 'Enable','off',... 'Separator','on',... - 'Callback', @model_save_snapshot_Callback, ... + 'Callback',@(hObject,eventdata)dynare_gui('model_save_snapshot_Callback',hObject,eventdata,guidata(hObject)),... 'Label','Save model snapshot',... - 'Tag','model_save_snapshot'); + 'Tag','model_save_snapshot',... + 'CreateFcn', {@local_CreateFcn, blanks(0), appdata} ); + +appdata = []; +appdata.lastValidTag = 'model_load_snapshot'; uimenu(... 'Parent',h10,... 'Enable','off',... - 'Callback', @model_load_snapshot_Callback, ... + 'Callback',@(hObject,eventdata)dynare_gui('model_load_snapshot_Callback',hObject,eventdata,guidata(hObject)),... 'Label','Load model snapshot',... - 'Tag','model_load_snapshot'); + 'Tag','model_load_snapshot',... + 'CreateFcn', {@local_CreateFcn, blanks(0), appdata} ); + +appdata = []; +appdata.lastValidTag = 'model_export'; uimenu(... 'Parent',h10,... 'Enable','off',... - 'Callback', @model_export_Callback, ... + 'Callback',@(hObject,eventdata)dynare_gui('model_export_Callback',hObject,eventdata,guidata(hObject)),... 'Label','Export to a .mod file',... - 'Tag','model_export'); + 'Tag','model_export',... + 'CreateFcn', {@local_CreateFcn, blanks(0), appdata} ); + +appdata = []; +appdata.lastValidTag = 'model_logfile'; uimenu(... 'Parent',h10,... 'Enable','off',... 'Separator','on',... - 'Callback', @model_logfile_Callback, ... + 'Callback',@(hObject,eventdata)dynare_gui('model_logfile_Callback',hObject,eventdata,guidata(hObject)),... 'Label','Dynare GUI log file ',... - 'Tag','model_logfile'); -% -% appdata = []; -% appdata.lastValidTag = 'Untitled_7'; -% -% uicontextmenu(... -% 'Parent',h1,... -% 'Callback',@(hObject,eventdata)dynare_gui('Untitled_7_Callback',hObject,eventdata,guidata(hObject)),... -% 'Tag','Untitled_7',... -% 'CreateFcn', {@local_CreateFcn, blanks(0), appdata} ); + 'Tag','model_logfile',... + 'CreateFcn', {@local_CreateFcn, blanks(0), appdata} ); + +appdata = []; +appdata.lastValidTag = 'Untitled_7'; + +uicontextmenu(... + 'Parent',h1,... + 'Callback',@(hObject,eventdata)dynare_gui('Untitled_7_Callback',hObject,eventdata,guidata(hObject)),... + 'Tag','Untitled_7',... + 'CreateFcn', {@local_CreateFcn, blanks(0), appdata} ); + +appdata = []; +appdata.lastValidTag = 'estimation'; h18 = uimenu(... 'Parent',h1,... 'Label','Estimation',... - 'Tag','estimation'); + 'Tag','estimation',... + 'CreateFcn', {@local_CreateFcn, blanks(0), appdata} ); + +appdata = []; +appdata.lastValidTag = 'estimation_observed_variables'; uimenu(... 'Parent',h18,... 'Enable','off',... - 'Callback', @estimation_observed_variables_Callback, ... + 'Callback',@(hObject,eventdata)dynare_gui('estimation_observed_variables_Callback',hObject,eventdata,guidata(hObject)),... 'Label','Observed variables & data file',... - 'Tag','estimation_observed_variables'); + 'Tag','estimation_observed_variables',... + 'CreateFcn', {@local_CreateFcn, blanks(0), appdata} ); + +appdata = []; +appdata.lastValidTag = 'estimation_parameters_shocks'; uimenu(... 'Parent',h18,... 'Enable','off',... - 'Callback', @estimation_parameters_shocks_Callback, ... + 'Callback',@(hObject,eventdata)dynare_gui('estimation_parameters_shocks_Callback',hObject,eventdata,guidata(hObject)),... 'Label','Estimated parameters & shocks ...',... - 'Tag','estimation_parameters_shocks'); + 'Tag','estimation_parameters_shocks',... + 'CreateFcn', {@local_CreateFcn, blanks(0), appdata} ); + +appdata = []; +appdata.lastValidTag = 'estimation_run_calibrated_smoother'; uimenu(... 'Parent',h18,... 'Enable','off',... 'Separator','on',... - 'Callback', @estimation_run_calibrated_smoother_Callback, ... + 'Callback',@(hObject,eventdata)dynare_gui('estimation_run_calibrated_smoother_Callback',hObject,eventdata,guidata(hObject)),... 'Label','Run calibrated smoother',... - 'Tag','estimation_run_calibrated_smoother'); + 'Tag','estimation_run_calibrated_smoother',... + 'CreateFcn', {@local_CreateFcn, blanks(0), appdata} ); + +appdata = []; +appdata.lastValidTag = 'estimation_run'; uimenu(... 'Parent',h18,... 'Enable','off',... - 'Callback', @estimation_run_Callback, ... + 'Callback',@(hObject,eventdata)dynare_gui('estimation_run_Callback',hObject,eventdata,guidata(hObject)),... 'Label','Run estimation',... - 'Tag','estimation_run'); + 'Tag','estimation_run',... + 'CreateFcn', {@local_CreateFcn, blanks(0), appdata} ); + +appdata = []; +appdata.lastValidTag = 'simulation'; h23 = uimenu(... 'Parent',h1,... 'Label','Simulation',... - 'Tag','simulation'); + 'Tag','simulation',... + 'CreateFcn', {@local_CreateFcn, blanks(0), appdata} ); + +appdata = []; +appdata.lastValidTag = 'simulation_stochastic'; uimenu(... 'Parent',h23,... 'Enable','off',... - 'Callback', @simulation_stochastic_Callback, ... + 'Callback',@(hObject,eventdata)dynare_gui('simulation_stochastic_Callback',hObject,eventdata,guidata(hObject)),... 'Label','Stochastic simulation',... - 'Tag','simulation_stochastic'); + 'Tag','simulation_stochastic',... + 'CreateFcn', {@local_CreateFcn, blanks(0), appdata} ); + +appdata = []; +appdata.lastValidTag = 'simulation_deterministic'; uimenu(... 'Parent',h23,... 'Enable','off',... - 'Callback', @simulation_deterministic_Callback, ... + 'Callback',@(hObject,eventdata)dynare_gui('simulation_deterministic_Callback',hObject,eventdata,guidata(hObject)),... 'Label','Deterministic simulation',... - 'Tag','simulation_deterministic'); + 'Tag','simulation_deterministic',... + 'CreateFcn', {@local_CreateFcn, blanks(0), appdata} ); + + +appdata = []; +appdata.lastValidTag = 'sensitivity'; h24 = uimenu(... 'Parent',h1,... 'Label','Sensitivity',... - 'Tag','sensitivity'); + 'Tag','sensitivity',... + 'CreateFcn', {@local_CreateFcn, blanks(0), appdata} ); + +appdata = []; +appdata.lastValidTag = 'sensitivity_analysis'; uimenu(... 'Parent',h24,... 'Enable','off',... - 'Callback', @sensitivity_analysis_Callback, ... + 'Callback',@(hObject,eventdata)dynare_gui('sensitivity_analysis_Callback',hObject,eventdata,guidata(hObject)),... 'Label','Sensitivity Analysis',... - 'Tag','sensitivity_analysis'); -% -% appdata = []; -% appdata.lastValidTag = 'uipanel_welcome'; + 'Tag','sensitivity_analysis',... + 'CreateFcn', {@local_CreateFcn, blanks(0), appdata} ); + +appdata = []; +appdata.lastValidTag = 'uipanel_welcome'; h26 = uipanel(... 'Parent',h1,... @@ -613,163 +712,240 @@ h_test = uicontrol(... 'FontAngle',get(0,'defaultuicontrolFontAngle'),... 'FontWeight','bold'); -% default_char_size = get(h_test,'extent'); +default_char_size = get(h_test,'extent'); h_test.Visible = 'Off'; -% c_width = default_char_size(3); -% c_height = default_char_size(4); +c_width = default_char_size(3); +c_height = default_char_size(4); appdata = []; appdata.lastValidTag = 'text_dyna'; -% uicontrol(... -% 'Parent',h26,... -% 'FontUnits',get(0,'defaultuicontrolFontUnits'),... -% 'Units','normalized',... -% 'HorizontalAlignment',get(0,'defaultuicontrolHorizontalAlignment'),... -% 'ListboxTop',get(0,'defaultuicontrolListboxTop'),... -% 'Max',get(0,'defaultuicontrolMax'),... -% 'Min',get(0,'defaultuicontrolMin'),... -% 'SliderStep',get(0,'defaultuicontrolSliderStep'),... -% 'String','DYNARE GUI',... -% 'Style','text',... -% 'Value',get(0,'defaultuicontrolValue'),... -% 'Position',[0.5-c_width*5 0.6 c_width*10 c_height],... %'Position',[60 22.0117647058823 c_width*4 c_height],... -% 'BackgroundColor',[1 1 1],... -% 'Callback',blanks(0),... -% 'Children',[],... -% 'ForegroundColor',get(0,'defaultuicontrolForegroundColor'),... -% 'Enable',get(0,'defaultuicontrolEnable'),... -% 'TooltipString',blanks(0),... -% 'Visible',get(0,'defaultuicontrolVisible'),... -% 'KeyPressFcn',blanks(0),... -% 'KeyReleaseFcn',blanks(0),... -% 'HandleVisibility',get(0,'defaultuicontrolHandleVisibility'),... -% 'CreateFcn', {@local_CreateFcn, blanks(0), appdata} ,... -% 'DeleteFcn',blanks(0),... -% 'ButtonDownFcn',blanks(0),... -% 'Tag','text_dyna',... -% 'UserData',[],... -% 'FontSize',28,... -% 'FontName','Tahoma',... -% 'FontAngle',get(0,'defaultuicontrolFontAngle'),... -% 'FontWeight','bold'); -% -% uicontrol(... -% 'Parent',h26,... -% 'FontUnits',get(0,'defaultuicontrolFontUnits'),... -% 'Units','normalized',... -% 'HorizontalAlignment','center',... -% 'ListboxTop',get(0,'defaultuicontrolListboxTop'),... -% 'Max',get(0,'defaultuicontrolMax'),... -% 'Min',get(0,'defaultuicontrolMin'),... -% 'SliderStep',get(0,'defaultuicontrolSliderStep'),... -% 'String','Version 0.7',... -% 'Style','text',... -% 'Value',get(0,'defaultuicontrolValue'),... -% 'Position',[0,0.4,1,.1],... -% 'BackgroundColor',[1 1 1],... -% 'Callback',blanks(0),... -% 'Children',[],... -% 'ForegroundColor',get(0,'defaultuicontrolForegroundColor'),... -% 'Enable',get(0,'defaultuicontrolEnable'),... -% 'TooltipString',blanks(0),... -% 'Visible',get(0,'defaultuicontrolVisible'),... -% 'KeyPressFcn',blanks(0),... -% 'KeyReleaseFcn',blanks(0),... -% 'HandleVisibility',get(0,'defaultuicontrolHandleVisibility'),... -% 'CreateFcn', {@local_CreateFcn, blanks(0), appdata} ,... -% 'DeleteFcn',blanks(0),... -% 'ButtonDownFcn',blanks(0),... -% 'Tag','text_version',... -% 'UserData',[],... -% 'FontSize',12,... -% 'FontName',get(0,'defaultuicontrolFontName'),... -% 'FontAngle',get(0,'defaultuicontrolFontAngle'),... -% 'FontWeight',get(0,'defaultuicontrolFontWeight')); +uicontrol(... + 'Parent',h26,... + 'FontUnits',get(0,'defaultuicontrolFontUnits'),... + 'Units','normalized',... + 'HorizontalAlignment',get(0,'defaultuicontrolHorizontalAlignment'),... + 'ListboxTop',get(0,'defaultuicontrolListboxTop'),... + 'Max',get(0,'defaultuicontrolMax'),... + 'Min',get(0,'defaultuicontrolMin'),... + 'SliderStep',get(0,'defaultuicontrolSliderStep'),... + 'String','DYNARE GUI',... + 'Style','text',... + 'Value',get(0,'defaultuicontrolValue'),... + 'Position',[0.5-c_width*5 0.6 c_width*10 c_height],... %'Position',[60 22.0117647058823 c_width*4 c_height],... + 'BackgroundColor',[1 1 1],... + 'Callback',blanks(0),... + 'Children',[],... + 'ForegroundColor',get(0,'defaultuicontrolForegroundColor'),... + 'Enable',get(0,'defaultuicontrolEnable'),... + 'TooltipString',blanks(0),... + 'Visible',get(0,'defaultuicontrolVisible'),... + 'KeyPressFcn',blanks(0),... + 'KeyReleaseFcn',blanks(0),... + 'HandleVisibility',get(0,'defaultuicontrolHandleVisibility'),... + 'CreateFcn', {@local_CreateFcn, blanks(0), appdata} ,... + 'DeleteFcn',blanks(0),... + 'ButtonDownFcn',blanks(0),... + 'Tag','text_dyna',... + 'UserData',[],... + 'FontSize',28,... + 'FontName','Tahoma',... + 'FontAngle',get(0,'defaultuicontrolFontAngle'),... + 'FontWeight','bold'); + +appdata = []; +appdata.lastValidTag = 'text_version'; + +h28 = uicontrol(... + 'Parent',h26,... + 'FontUnits',get(0,'defaultuicontrolFontUnits'),... + 'Units','normalized',... + 'HorizontalAlignment','center',... + 'ListboxTop',get(0,'defaultuicontrolListboxTop'),... + 'Max',get(0,'defaultuicontrolMax'),... + 'Min',get(0,'defaultuicontrolMin'),... + 'SliderStep',get(0,'defaultuicontrolSliderStep'),... + 'String','Version 0.7',... + 'Style','text',... + 'Value',get(0,'defaultuicontrolValue'),... + 'Position',[0,0.4,1,.1],... + 'BackgroundColor',[1 1 1],... + 'Callback',blanks(0),... + 'Children',[],... + 'ForegroundColor',get(0,'defaultuicontrolForegroundColor'),... + 'Enable',get(0,'defaultuicontrolEnable'),... + 'TooltipString',blanks(0),... + 'Visible',get(0,'defaultuicontrolVisible'),... + 'KeyPressFcn',blanks(0),... + 'KeyReleaseFcn',blanks(0),... + 'HandleVisibility',get(0,'defaultuicontrolHandleVisibility'),... + 'CreateFcn', {@local_CreateFcn, blanks(0), appdata} ,... + 'DeleteFcn',blanks(0),... + 'ButtonDownFcn',blanks(0),... + 'Tag','text_version',... + 'UserData',[],... + 'FontSize',12,... + 'FontName',get(0,'defaultuicontrolFontName'),... + 'FontAngle',get(0,'defaultuicontrolFontAngle'),... + 'FontWeight',get(0,'defaultuicontrolFontWeight')); + +%set(h28,'Units','normalized'); + +appdata = []; +appdata.lastValidTag = 'output'; h31 = uimenu(... 'Parent',h1,... 'Label','Output',... - 'Tag','output'); + 'Tag','output',... + 'CreateFcn', {@local_CreateFcn, blanks(0), appdata} ); + +appdata = []; +appdata.lastValidTag = 'output_shocks_dec'; h39 = uimenu(... 'Parent',h31,... 'Enable','off', ... 'Label','Shock Decomposition',... - 'Tag','output_shocks_dec'); + 'Tag','output_shocks_dec',... + 'CreateFcn', {@local_CreateFcn, blanks(0), appdata} ); + +appdata = []; +appdata.lastValidTag = 'output_shocks_decomposition'; uimenu(... 'Parent',h39,... 'Enable','off',... - 'Callback', @output_shock_decomposition_Callback, ... + 'Callback',@(hObject,eventdata)dynare_gui('output_shock_decomposition_Callback',hObject,eventdata,guidata(hObject)),... 'Label','Historical',... - 'Tag','output_shocks_decomposition'); + 'Tag','output_shocks_decomposition',... + 'CreateFcn', {@local_CreateFcn, blanks(0), appdata} ); + +appdata = []; +appdata.lastValidTag = 'output_realtime_shocks_decomposition'; uimenu(... 'Parent',h39,... 'Enable','off',... - 'Callback', @output_realtime_shock_decomposition_Callback, ... + 'Callback',@(hObject,eventdata)dynare_gui('output_realtime_shock_decomposition_Callback',hObject,eventdata,guidata(hObject)),... 'Label','Realtime',... - 'Tag','output_realtime_shocks_decomposition'); + 'Tag','output_realtime_shocks_decomposition',... + 'CreateFcn', {@local_CreateFcn, blanks(0), appdata} ); + +appdata = []; +appdata.lastValidTag = 'output_plot_shocks_decomposition'; uimenu(... 'Parent',h39,... 'Enable','off',... - 'Callback', @output_plot_shock_decomposition_Callback, ... + 'Callback',@(hObject,eventdata)dynare_gui('output_plot_shock_decomposition_Callback',hObject,eventdata,guidata(hObject)),... 'Label','Plot',... - 'Tag','output_plot_shocks_decomposition'); + 'Tag','output_plot_shocks_decomposition',... + 'CreateFcn', {@local_CreateFcn, blanks(0), appdata} ); + +appdata = []; +appdata.lastValidTag = 'output_conditional_forecast'; uimenu(... 'Parent',h31,... 'Enable','off',... - 'Callback', @output_conditional_forecast_Callback, ... + 'Callback',@(hObject,eventdata)dynare_gui('output_conditional_forecast_Callback',hObject,eventdata,guidata(hObject)),... 'Label','Conditional forecast',... - 'Tag','output_conditional_forecast'); + 'Tag','output_conditional_forecast',... + 'CreateFcn', {@local_CreateFcn, blanks(0), appdata} ); + +appdata = []; +appdata.lastValidTag = 'output_forecast'; uimenu(... 'Parent',h31,... 'Enable','off',... - 'Callback', @output_forecast_Callback, ... + 'Callback',@(hObject,eventdata)dynare_gui('output_forecast_Callback',hObject,eventdata,guidata(hObject)),... 'Label','Forecast',... - 'Tag','output_forecast'); + 'Tag','output_forecast',... + 'CreateFcn', {@local_CreateFcn, blanks(0), appdata} ); -h33 = uimenu( ... - 'Parent', h1,... - 'Label', 'Post-processing', ... - 'Tag', 'post_processing'); +appdata = []; +appdata.lastValidTag = 'post_processing'; -uimenu( ... +h33 = uimenu(... + 'Parent',h1,... + 'Label','Post-processing',... + 'Tag','post_processing',... + 'CreateFcn', {@local_CreateFcn, blanks(0), appdata} ); + +appdata = []; +appdata.lastValidTag = 'post_processing_epilogue'; + +uimenu(... 'Parent', h33, ... 'Enable', 'off', ... - 'Callback', @post_processing_epilogue_Callback, ... + 'Callback', @(hObject,eventdata)dynare_gui('post_processing_epilogue_Callback',hObject,eventdata,guidata(hObject)),... 'Label', 'Epilogue',... - 'Tag', 'post_processing_epilogue'); + 'Tag', 'post_processing_epilogue',... + 'CreateFcn', {@local_CreateFcn, blanks(0), appdata} ); + +appdata = []; +appdata.lastValidTag = 'help'; h34 = uimenu(... 'Parent',h1,... 'Separator','on',... 'Label','Help',... - 'Tag','help'); + 'Tag','help',... + 'CreateFcn', {@local_CreateFcn, blanks(0), appdata} ); + +appdata = []; +appdata.lastValidTag = 'help_product_help'; uimenu(... 'Parent',h34,... - 'Callback', @help_product_help_Callback, ... + 'Callback',@(hObject,eventdata)dynare_gui('help_product_help_Callback',hObject,eventdata,guidata(hObject)),... 'Label','Dynare GUI help',... - 'Tag','help_product_help'); + 'Tag','help_product_help',... + 'CreateFcn', {@local_CreateFcn, blanks(0), appdata} ); + +appdata = []; +appdata.lastValidTag = 'help_dynare_manual'; uimenu(... 'Parent',h34,... - 'Callback', @help_dynare_manual_Callback, ... + 'Callback',@(hObject,eventdata)dynare_gui('help_dynare_manual_Callback',hObject,eventdata,guidata(hObject)),... 'Label','Dynare reference manual',... - 'Tag','help_dynare_manual'); + 'Tag','help_dynare_manual',... + 'CreateFcn', {@local_CreateFcn, blanks(0), appdata} ); + +appdata = []; +appdata.lastValidTag = 'help_about'; uimenu(... 'Parent',h34,... 'Separator','on',... - 'Callback', @help_about_Callback, ... + 'Callback',@(hObject,eventdata)dynare_gui('help_about_Callback',hObject,eventdata,guidata(hObject)),... 'Label','About Dynare GUI',... - 'Tag','help_about'); + 'Tag','help_about',... + 'CreateFcn', {@local_CreateFcn, blanks(0), appdata} ); +end + +% --- Set application data first then calling the CreateFcn. +function local_CreateFcn(hObject, eventdata, createfcn, appdata) + +if ~isempty(appdata) + names = fieldnames(appdata); + for i=1:length(names) + name = char(names(i)); + setappdata(hObject, name, getfield(appdata,name)); + end +end + +if ~isempty(createfcn) + if isa(createfcn,'function_handle') + createfcn(hObject, eventdata); + else + eval(createfcn); + end +end end % --- Handles default GUIDE GUI creation and callback dispatch diff --git a/src/gui_cond_forecast_preliminary.m b/src/gui_cond_forecast_preliminary.m index ceae4eaf4f13a8514de46a9de7460331e52cb494..a0fdda49d74d37d307765d18d149b16a3674f3de 100644 --- a/src/gui_cond_forecast_preliminary.m +++ b/src/gui_cond_forecast_preliminary.m @@ -1,4 +1,4 @@ -function gui_cond_forecast_preliminary(tabId, hObject) +function gui_cond_forecast_preliminary(tabId, hObject, handles) % function gui_cond_forecast(tabId) % interface for the DYNARE imcforecast command %