% Author: Colin Eles elesc@mcmaster.ca
% Organization: McMaster Centre for Software Certification
classdef GUI < handle
    
    
    properties
        % vertical grid
        vertical_grid = [];
        
        % horizontal grid
        horizontal_grid = [];
        %output grid
        outputs_grid = [];
        
        %Let statements grid
        let_statments_grid = [];
        
        %grid layouter
        grid_layout = [];
        
        %Box layouter
        vbox_layout = [];
        %And its panel ...
        vbox_layout_panel = [];
        
        main_fig = [];
        frame = [];
        fig = [];
        scroll_v = [];
        edit_tog = [];
        save_pb = [];
        pvs_pb = [];
        close_pb = [];
        save_ext_pb = [];
        check_pb = [];
        input_pb = [];
        settings_pb = [];
        function_name_control = [];
        function_inputs_control = [];
        edit = 1;
        initialized = 0;
        block_handle = [];
        settings = [];
        % height of header where buttons and text is
        header_height = 120;
        % window size
        fig_height = 600;
        fig_width = 800;
        % space inbetween buttons in header
        pb_offset = 5;
        % width of push buttons in header
        pb_width = 80;
        % height of push buttons in header
        pb_height = 40;
        % height of header text boxes
        htx_height = 60;
        % width of text boxes
        text_width = 250;
        name_label = [];
        input_label = [];
        data = [];
        PVS = [];
        CVC = [];
        pvs_checked = [];
        mode = [];
        EMLGen = [];
        TableBlk = [];
        saved = [];
        validation_report_handle = [];
        multi_type = 0;
        multi_mode = [];
        multi_grp = [];
        multi_opt_reg = [];
        multi_opt_out = [];
        prover_opt_pvs = [];
        prover_opt_cvc = [];
        version = '0.5';
        undo_man = [];
        undo_opt = [];
        redo_opt = [];
        
        default_prover = [];
        PVS_const = 1;
        CVC_const = 2;
        
    end
    
    methods
        %% GUI
        %   constructor
        % inputs:
        %   d:Data - The data to display.
        %   h:double - handle to Tabular block in model
        %   mode:boolean - the mode of the gui, 1 for simuink, 0 for matlab
        % outputs:
        %   object:GUI - object that is created
        function object = GUI(data, h,mode)
            object.data = data;
            object.block_handle = h;
            object.mode = mode;
        end
        
        
    end
    
    methods(Static)
        msgbox_scroll(msg);
        
    end
end

