Skip to content
Snippets Groups Projects
main.m 4.77 KiB
Newer Older
function [ ] = main()
%MAIN Contains the definition of main ARTOA4 gui.

global artoaGui;

%% Initialize main window

artoaGui.figures.main = figure( ...
    'Name', 'ARTOA 4', ...
    'NumberTitle', 'off', ...
    'Color', 'white', ...
    'MenuBar', 'none', ...
    'WindowKeyPressFcn', @artoa.controller.main.shortcuts ...
);

set(artoaGui.figures.main, 'CloseRequestFcn', 'artoa.controller.quit();');

%% Initialize file menu
artoaGui.main.menus = struct();

artoaGui.main.menus.file = uimenu(artoaGui.figures.main, 'Label', 'File');
% LOAD
loadHandle = uimenu(artoaGui.main.menus.file, 'Label', 'Load');
uimenu( ...
    loadHandle, ...
    'Label', 'ARGOS file', ...%'Callback', 'artoa.controller.loadArgos' ...
    'Enable', 'off' ...
);
uimenu( ...
    loadHandle, ...
    'Label', 'RFB file', ...
leprob001's avatar
leprob001 committed
    'Callback', 'artoa.controller.file.loadRfb();' ...
);
uimenu( ...
    loadHandle, ...
    'Label', 'Interim file', ...
    'Callback', 'artoa.controller.file.loadInterim();' ...
);
uimenu( ...
    loadHandle, ...
    'Label', 'SoSo file', ...
leprob001's avatar
leprob001 committed
    'Callback', 'artoa.controller.file.loadSoundSourceFile();' ...
artoaGui.main.menus.fileSave = uimenu( ...
    artoaGui.main.menus.file, ...
    'Label', 'Save', ...
    'Enable', 'off' ...
);

    artoaGui.main.menus.fileSave, ...
    'Label', 'RIC file', ...
    'Callback', 'artoa.controller.saveRic();', ...
    'Enable', 'off' ...
);

    artoaGui.main.menus.fileSave, ...
    'Label', 'Interim file', ...
    'Callback', 'artoa.controller.file.saveInterim();' ...
);

artoaGui.main.menus.fileReloadArtoaIni = uimenu( ...
    artoaGui.main.menus.file, ...
    'Label', 'Reload artoa.ini', ...
    'Callback', 'artoa.controller.file.loadArtoaIni();' ...
% QUIT
artoaGui.main.menus.fileQuit = uimenu( ...
    artoaGui.main.menus.file, ...
    'Label', 'Quit', ...
    'Callback', 'artoa.controller.quit();' ...
);

%% Initialize edit menu

artoaGui.main.menus.edit = uimenu( ...
    artoaGui.figures.main, ...
    'Label', 'Edit', ...
    'Enable', 'off' ...
);

% TEMPERATURE
artoaGui.main.menus.editTemperature = uimenu( ...
    artoaGui.main.menus.edit, ...
    'Label', 'Temperature', ...
    'Callback', 'artoa.controller.edit.temperature.open();' ...
);

% PRESSURE
artoaGui.main.menus.editPressure = uimenu( ...
    artoaGui.main.menus.edit, ...
    'Label', 'Pressure', ...
    'Callback', 'artoa.controller.edit.pressure.open();' ...
);
% TIME OF ARRIVAL
artoaGui.main.menus.editTimeOfArrival = uimenu( ...
    artoaGui.main.menus.edit, ...
    'Label', 'Time of arrival', ...
    'Callback', 'artoa.controller.edit.timeOfArrival.open();', ...
leprob001's avatar
leprob001 committed
    'Separator', 'on', ...
    'Enable', 'off' ...
artoaGui.main.menus.editOffsetDetails = uimenu( ...
    artoaGui.main.menus.edit, ...
    'Label', 'Offset details', ...
    'Callback', 'artoa.controller.edit.offsets.open();', ...
    'Separator', 'on' ...
);

%% Initialize track menu

artoaGui.main.menus.track = uimenu( ...
    artoaGui.figures.main, ...
    'Label', 'Track', ...
    'Enable', 'off' ...
);

% TRACK PARAMETER
artoaGui.main.menus.trackParameter = uimenu( ...
    artoaGui.main.menus.track, ...
    'Label', 'Track Parameter', ...
    'Callback', 'artoa.controller.track.parameter.open();' ...
);

% TRAJECTORY OUTPUT
artoaGui.main.menus.trajectoryOutput = uimenu( ...
    artoaGui.main.menus.track, ...
    'Label', 'Trajectory output', ...
    'Callback', 'artoa.controller.track.trajectoryOutput.open();' ...
);


%% Initialize view menu

artoaGui.main.menus.view = uimenu( ...
    artoaGui.figures.main, ...
    'Label', 'View', ...
    'Enable', 'on' ...
);

artoaGui.main.menus.viewHideDeletedDataPoints = uimenu( ...
    artoaGui.main.menus.view, ...
    'Label', 'Hide deleted data points', ...
    'Callback', 'artoa.controller.switchHideDeletedPoints();' ...
%% Initialize shortcut hints

shortcutHints = { ...
    't', 'Open Edit temperature window';
    'p', 'Open Edit pressure window';
    'e', 'Open Edit time of arrival window';
    'f', 'Open Edit offsets window';
    'i', 'Open track parameter window';
    'o', 'Open trajectory output window';
};

artoaGui.main.shortcutHints = uitable();
artoaGui.main.shortcutHints.Data = shortcutHints;
artoaGui.main.shortcutHints.Enable = 'off';
artoaGui.main.shortcutHints.ColumnName = {'Key', 'Action'};
artoaGui.main.shortcutHints.ColumnWidth = {50, 400};
artoaGui.main.shortcutHints.RowName = '';
artoaGui.main.shortcutHints.Units = 'normalized';
artoaGui.main.shortcutHints.Position = [.1 .5 .8 .3];


%% Version info

gitInfo = getGitInfo();

artoaGui.main.textVersionInfo = uicontrol( ...
    'Parent', artoaGui.figures.main, ...
    'String', ['Version 4.' gitInfo.hash(1:8)], ...
    'Style', 'text', ...
    'FontSize', 10, ...
    'Units', 'normalized', ...
    'Background', [1 1 1], ...
    'Position', [.68 .03 .3 .05] ...
);