Skip to content
init.m 9.55 KiB
Newer Older
%% init
        %   initialize the gui
        % inputs:
        %   obj:GUI - GUI object
        % outputs:
        %   none
        function [] = init(object)
            
            % create the handles for the gui objects
            if object.mode == 1
                name = get_param(object.block_handle,'Name');
            elseif object.mode == 0
                name = 'Table Tool';
            end
            % main figure
            object.fig = figure('units','pixels',...
                'position',[0 0 object.fig_width object.fig_height],...
                'menubar','none',...
                'name','Table Tool',...
                'numbertitle','off',...
                'resize','on',...
                'Name',name,...
                'CloseRequestFcn',@(src,event)close_fig(object,src,event),...
                'ResizeFcn',@(src,event)resize_fig(object,src,event));
          
            
            % edit button
            object.edit_tog = uicontrol('style','toggle',...
                'units','pix',...
                'string','Edit',...
                'HorizontalAlign','left',...
                'Parent',object.fig,...
                'Value',object.edit,...
                'callback',@(src,event)edit_tog_call(object,src,event));
            
            % Save button
            object.save_pb = uicontrol('style','push',...
                'units','pix',...
                'string','Save',...
                'HorizontalAlign','left',...
                'Parent',object.fig,...
                'callback',@(src,event)save_call(object,src,event));
            
            % Close button
            object.close_pb = uicontrol('style','push',...
                'units','pix',...
                'string','Close',...
                'HorizontalAlign','left',...
                'Parent',object.fig,...
                'callback',@(src,event)close_fig(object,src,event));
            
            % Save external button
            object.save_ext_pb = uicontrol('style','push',...
                'units','pix',...
                'string','Save Ext',...
                'HorizontalAlign','left',...
                'Parent',object.fig,...
                'callback',@(src,event)save_ext_call(object,src,event));
            
            % PVS button
            object.pvs_pb = uicontrol('style','push',...
                'units','pix',...
                'string','PVS',...
                'HorizontalAlign','left',...
                'Parent',object.fig,...
                'callback',@(src,event)pvs_ext_call(object,src,event));
            
            % Check button
            object.check_pb = uicontrol('style','push',...
                'units','pix',...
                'string','Check',...
                'HorizontalAlign','left',...
                'Parent',object.fig,...
                'callback',@(src,event)check_call(object,src,event));
            
            % Input/Output button
            object.input_pb = uicontrol('style','push',...
                'units','pix',...
                'string','Ports',...
                'HorizontalAlign','left',...
                'Parent',object.fig,...
                'callback',@(src,event)input_call(object,src,event));
            
            % Settings button
            object.settings_pb = uicontrol('style','push',...
                'units','pix',...
                'string','Settings',...
                'HorizontalAlign','left',...
                'Parent',object.fig,...
                'callback',@(src,event)settings_call(object,src,event));
            
            % Expression Name Label
            object.name_label = uicontrol('style','text',...
                'string','Expression Name',...
                'HorizontalAlign','right',...
                'BackgroundColor',get(object.fig,'Color'));
            
            % Expression Name Edit box
            object.function_name_control = uicontrol('style','edit',...
                'units','pix',...
                'Parent',object.fig,...
                'HorizontalAlign','center',...
                'FontWeight','bold',...
                'FontSize',12,...
                'Max',2.0,...
                'KeyPressFcn',@(src,event)textbox_callback(object,src,event),...
                'BackgroundColor',[1 1 1]);
            
            % input list label
            object.input_label = uicontrol('style','text',...
                'string','Inputs',...
                'HorizontalAlign','right',...
                'BackgroundColor',get(object.fig,'Color'));
            
            % input list edit box
            object.function_inputs_control = uicontrol('style','edit',...
                'units','pix',...
                'Parent',object.fig,...
                'HorizontalAlign','center',...
                'FontWeight','bold',...
                'Max',2.0,...
                'FontSize',12,...
                'KeyPressFcn',@(src,event)textbox_callback(object,src,event),...
Colin Eles's avatar
Colin Eles committed
            %object.multi_grp = uibuttongroup(...
            %    'units','pix',...
            %    'Parent',object.fig,...
            %    'SelectionChangeFcn',@(src,event)multi_select_call(object,src,event));
                
            %object.multi_opt_out = uicontrol('style','radiobutton',...
            %    'units','pix',...
            %    'Parent',object.multi_grp,...
            %    'HorizontalAlign','center',...
            %    'FontWeight','bold',...
            %    'String','Multiple Output',...
            %    'FontSize',12,...
            %    'BackgroundColor',[1 1 1]);
            
            %object.multi_opt_reg = uicontrol('style','radiobutton',...
            %    'units','pix',...
            %    'Parent',object.multi_grp,...
            %    'HorizontalAlign','center',...
            %    'FontWeight','bold',...
            %    'String','One Output',...
            %    'FontSize',12,...
            %    'BackgroundColor',[1 1 1]);
            
            % load the function name and inputs
            if (~isempty(object.function_name_text))
                set(object.function_name_control,'String',object.function_name_text);
            end
            if (~isempty(object.function_inputs_text))
                set(object.function_inputs_control,'String',object.function_inputs_text);
            end
            
            
            % Set up Menu
            filemenu = uimenu('Label','File');
            editmenu = uimenu('Label','Edit');
            pvsmenu = uimenu('Label','PVS');
            helpmenu = uimenu('Label','Help');
            uimenu(filemenu,'Label','New','Accelerator','n','Callback',@(src,event)new_call(object,src,event));
            uimenu(filemenu,'Label','Open...','Callback',@(src,event)open_call(object,src,event));
            uimenu(filemenu,'Label','Save to Block','Separator','on','Accelerator','s','Callback',@(src,event)save_call(object,src,event));
            uimenu(filemenu,'Label','Save to M-File','Callback',@(src,event)save_ext_call(object,src,event));
            uimenu(filemenu,'Label','Close','Accelerator','w','Separator','on','Callback',@(src,event)close_fig(object,src,event));     
            object.undo_opt = uimenu(editmenu,'Label','Undo','Accelerator','z','Callback',@(src,event)undo_call(object,src,event));
            object.redo_opt = uimenu(editmenu,'Label','Redo','Accelerator','r','Callback',@(src,event)redo_call(object,src,event));
            uimenu(editmenu,'Label','Show edit controls','Checked','on','Separator','on');
            uimenu(editmenu,'Label','Ports and Data Manager','Accelerator','p','Callback',@(src,event)input_call(object,src,event));
Colin Eles's avatar
Colin Eles committed
            multi_mode_menu = uimenu(editmenu,'Label','Output Mode');
            object.multi_opt_reg = uimenu(multi_mode_menu,'Label','One Output','Callback',@(src,event)multi_select_call(object,src,event));
            object.multi_opt_out = uimenu(multi_mode_menu,'Label','Multiple Outputs','Callback',@(src,event)multi_select_call(object,src,event));
            uimenu(pvsmenu,'Label','Typecheck','Accelerator','t','Callback',@(src,event)pvs_ext_call(object,src,event));
            uimenu(pvsmenu,'Label','PVS Settings','Callback',@(src,event)settings_call(object,src,event));
            uimenu(pvsmenu,'Label','Check Status','Callback',@(src,event)prf_file_call(object,src,event));
            uimenu(pvsmenu,'Label','Generate PVS file','Callback',@(src,event)pvs_file_call(object,src,event));

Colin Eles's avatar
Colin Eles committed
            uimenu(helpmenu,'Label','Product Help','Callback',@(src,event)help_call(object,src,event));
            uimenu(helpmenu,'Label','About Table Tool','Callback',@(src,event)about_call(object,src,event));
            
            object.set_command_pos;
            object.reset_wh();
            object.draw_allgrids(1);
            object.saved = 1;
            object.setPBenable;
            
            
            object.settings = Settings();
            if isfield(object.Data.settings,'set')
                object.settings.setvalues(object.Data.settings);
            else
                object.settings.init();
                
            end
            
                        object.undo_man = UndoManager();

Colin Eles's avatar
Colin Eles committed
            object.update_multi_check_status;
                        object.update_undoredo;

            object.PVS = PVS_checker(object.Data);
            object.EMLGen = EMLGenerator(object.Data);
            
            object.initialized = 1;
            object.Data.open = 1;
            object.Data.fig = object.fig;