function varargout = main_inputfile(varargin)
% Task(menu).name - name of task. Task(1).name is 'File', Task(2).name is
% 'Model', Task(8).name is 'Help'.
% Task(menu).string - For each menu item (or any sub-items), there are 4
% parameters that needed to be specified.
% (1) index -- There are up to 3 cascading levels of
% menu items. Each level can have up to 9 menu items.
% For example, "100" represents menu item 1 of level 1.
% "236" is item 2 selected from level 1 and item 3 from
% level 2 and item 6 from level 3.
% (2) label -- menu item label corresponding to index
% (3) type -- menu item type; type 'doc1' if the
% action is to open html or pdf file; 'run1' to execute
% a matlab function; etc.
% (4) operands -- for type 'doc1', this would be the
% html or pdf file; for type 'run1', this would be the
% name of the function and its arguments.
% You can enter the menu items in any order
clear all
if nargin > 0
% update gui4gui_inputfile with modified "Task" from the gui4gui input GUI
GID = varargin{1};
% insert any additional modifications here
save gui4gui_inputfile GID;
else
% the gui4gui package comes with this mfile pre-loaded with the setup
% for the MODE code. Some of these data are universal for all codes if
% you prepare PDF/HTML files and label them with the same names, such as
% to call the tutorial file Tutorial.ppt or name the abstract Abstract.pdf.
% You may also edit this file and change any contents that you wish.
% However, you should not remove any fields in Task. If you don't need
% a specific menu item, just remove its content, like this
% Task(1).label = {};
%
% Define number of menus (File, Model, Articles, Tutorial, Examples, Run, Code, Help)
Nmenus = 8;
Task(1).name = 'File';
Task(1).string = { ...
100 'Exit' 'run2' 'exit' ...
};
Task(2).name = 'Model';
Task(2).string = { ...
100 'System diagram' 'doc1' 'System_diagram.pdf' ...
200 'Input' 'doc1' 'Input.pdf' ...
300 'Non-directional transient cells' 'doc1' 'Non_directional_transient_cells.pdf' ...
400 'Directional transient cells' 'doc1' 'Directional_transient_cells.pdf' ...
500 'Directional short range filters' 'doc1' 'Directional short range filters.pdf' ...
600 'Spatial and opponent directional competition' 'doc1' 'Spatial_and_opponent_directional_competition.pdf' ...
700 'Directional long-range filters' 'doc1' 'Directional_long_range_filters.pdf' ...
800 'Directional grouping network' 'doc1' 'Directional_grouping_network.pdf' ...
900 'Decision cells and decision gating' 'doc1' 'Decision_cells_and_decision_gating.pdf' ...
};
Task(3).name = 'Articles';
Task(3).string = { ...
100 'GrossbergPilly (2008)' 'doc1' 'GrossbergPilly_VisionRes2008.pdf' ...
};
Task(4).name = 'Tutorial';
Task(4).string = { ...
100 'Abstract' 'doc1' 'Abstract.pdf' ...
200 'Tutorial' 'doc1' 'Tutorial.ppt' ...
};
Task(5).name = 'Examples';
Task(5).string = { ...
100 'Low coherence (0%)' '' '' ...
110 'Input' 'doc1' 'lowCoh_input.html' ...
120 'Non-directional transient cells' 'doc1' 'lowCoh_non-directional_transient_cells.html' ...
130 'Directional transient cells' 'doc1' 'lowCoh_directional_transient_cells.html' ...
140 'Directional short range filters' 'doc1' 'lowCoh_directional_short_range_filters.html' ...
150 'Directional long-range filters' 'doc1' 'lowCoh_directional_long-range_filters.html' ...
160 'Directional grouping network' 'doc1' 'lowCoh_directional_grouping_network.html' ...
170 'Decision cells and decision gating' '' '' ...
171 'Reaction time task' 'doc1' 'lowCoh_RT_task.html' ...
172 'Fixed duration task' 'doc1' 'lowCoh_FD_task.html' ...
200 'Medium coherence (6.4%)' '' '' ...
210 'Input' 'doc1' 'medCoh_input.html' ...
220 'Non-directional transient cells' 'doc1' 'medCoh_non-directional_transient_cells.html' ...
230 'Directional transient cells' 'doc1' 'medCoh_directional_transient_cells.html' ...
240 'Directional short range filters' 'doc1' 'medCoh_directional_short_range_filters.html' ...
250 'Directional long-range filters' 'doc1' 'medCoh_directional_long-range_filters.html' ...
260 'Directional grouping network' 'doc1' 'medCoh_directional_grouping_network.html' ...
270 'Decision cells and decision gating' '' '' ...
271 'Reaction time task' 'doc1' 'medCoh_RT_task.html' ...
272 'Fixed duration task' 'doc1' 'medCoh_FD_task.html' ...
300 'High coherence (51.2%)' '' '' ...
310 'Input' 'doc1' 'highCoh_input.html' ...
320 'Non-directional transient cells' 'doc1' 'highCoh_non-directional_transient_cells.html' ...
330 'Directional transient cells' 'doc1' 'highCoh_directional_transient_cells.html' ...
340 'Directional short range filters' 'doc1' 'highCoh_directional_short_range_filters.html' ...
350 'Directional long-range filters' 'doc1' 'highCoh_directional_long-range_filters.html' ...
360 'Directional grouping network' 'doc1' 'highCoh_directional_grouping_network.html' ...
370 'Decision cells and decision gating' '' '' ...
371 'Reaction time task' 'doc1' 'highCoh_RT_task.html' ...
372 'Fixed duration task' 'doc1' 'highCoh_FD_task.html' ...
};
Task(6).name = 'Run';
Task(6).string = { ...
100 'Reaction time task' '' '' ...
110 'Description' 'doc1' 'RTtask_description.pdf' ...
120 'Replication test' '' '' ...
121 'Description' 'doc1' 'RTtask_description.pdf' ...
122 'Run' 'run1' 'RTtasknew(1,1,5,5,5,55);' ...
130 'Advanced run' '' '' ...
131 'Description' 'doc1' 'RTtask_description.pdf' ...
132 'Run' 'run1' 'Reaction_time_task_GUI' ...
200 'Fixed duration task' '' '' ...
210 'Description' 'doc1' 'FDtask_description.pdf' ...
220 'Replication test' '' '' ...
221 'Description' 'doc1' 'FDtask_description.pdf' ...
222 'Run' 'run1' 'FDtasknew(4.5,2,5,5,5,9);' ...
230 'Advanced run' '' '' ...
231 'Description' 'doc1' 'FDtask_description.pdf' ...
232 'Run' 'run1' 'Fixed_duration_task_GUI' ...
};
Task(7).name = 'Code';
Task(7).string = { ...
100 'Source code' 'doc1' 'HTML/Index.html' ...
};
Task(8).name = 'Help';
Task(8).string = { ...
100 'Contact' 'doc1' 'Contact.html' ...
200 'Credit' 'doc1' 'Credit.html' ...
300 'License' 'doc1' 'License.html' ...
};
for menu=1:Nmenus
task(menu).name = Task(menu).name;
for n=1:length(Task(menu).string(:))/4
task(menu).string(n,1) = Task(menu).string(1+(n-1)*4);
task(menu).string(n,2) = Task(menu).string(2+(n-1)*4);
task(menu).string(n,3) = Task(menu).string(3+(n-1)*4);
task(menu).string(n,4) = Task(menu).string(4+(n-1)*4);
end
end
GID.guiName = 'MODEguitmp';
GID.Nmenus = Nmenus;
GID.frontImage = 'MODE_new.jpg';
GID.bgcolor = 'white';
GID.fontsize = 10;
GID.fontweight = 'bold';
GID.position = [0.1 0.1 0.6 0.6];
GID.resize = 'off';
GID.task = task;
% The buildMainGUI builder needs fields label, type and ops
% The addLabel function can extract them from GID's string field
GID = addLabel(GID);
% returns the final GID to the caller.
varargout{1} = GID;
% Also save GID to the following file.
save main_inputfile_tmp GID;
end % if