function varargout = Vibwood_GUI_mit_EURO_5(varargin)
%VIBWOOD_GUI_MIT_EURO_5 M-file for Vibwood_GUI_mit_EURO_5.fig
%      VIBWOOD_GUI_MIT_EURO_5, by itself, creates a new VIBWOOD_GUI_MIT_EURO_5 or raises the existing
%      singleton*.
%
%      H = VIBWOOD_GUI_MIT_EURO_5 returns the handle to a new VIBWOOD_GUI_MIT_EURO_5 or the handle to
%      the existing singleton*.
%
%      VIBWOOD_GUI_MIT_EURO_5('Property','Value',...) creates a new VIBWOOD_GUI_MIT_EURO_5 using the
%      given property value pairs. Unrecognized properties are passed via
%      varargin to Vibwood_GUI_mit_EURO_5_OpeningFcn.  This calling syntax produces a
%      warning when there is an existing singleton*.
%
%      VIBWOOD_GUI_MIT_EURO_5('CALLBACK') and VIBWOOD_GUI_MIT_EURO_5('CALLBACK',hObject,...) call the
%      local function named CALLBACK in VIBWOOD_GUI_MIT_EURO_5.M with the given input
%      arguments.
%
%      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one
%      instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help Vibwood_GUI_mit_EURO_5

% Last Modified by GUIDE v2.5 08-Oct-2014 12:12:42

% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
    'gui_Singleton',  gui_Singleton, ...
    'gui_OpeningFcn', @Vibwood_GUI_mit_EURO_5_OpeningFcn, ...
    'gui_OutputFcn',  @Vibwood_GUI_mit_EURO_5_OutputFcn, ...
    'gui_LayoutFcn',  [], ...
    'gui_Callback',   []);
if nargin && ischar(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
    gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT


% --- Executes just before Vibwood_GUI_mit_EURO_5 is made visible.
function Vibwood_GUI_mit_EURO_5_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% varargin   unrecognized PropertyName/PropertyValue pairs from the
%            command line (see VARARGIN)

% Choose default command line output for Vibwood_GUI_mit_EURO_5
handles.output = hObject;

if strcmp(get(hObject,'Visible'),'off')
    axes(handles.Positionsplan);% Auswahl des entsprechenden Axes-Objekts
    G1=imread('Einteilung Anregepositionen.png','BackgroundColor',[1 1 1]);   % Einlesen der Grafik
    image(G1); axis image;           % Grafik ausgeben, Grafik entzerren
    axis off                          % Koordinatenachsen ausblenden
    %     axes(handles.tranfct); % Plot Fenster erzeugen
    %     cla;
    %      s=load('BSP\R\P1\BSP_R1_1.mat','data');
    %      plot(s.data(:,1),s.data(:,2),s.data(:,1),s.data(:,3),s.data(:,1),s.data(:,4));
    %      grid
    %      title('Schalleistungspegel / Abstrahlmaß')
    %     axes(handles.lastspec); % Plot Fenster erzeugen
    %     cla;
    %     [last,fs]=wavread('Last\test_96pmin_10000Hz.wav');
    %     fftspec(last,fs)
    %     axes(handles.slterz);
    %     cla;
    %     txf('BSP\R\P1\BSP_R1_1','Fuß')
end

handles.desys_verz='BSD';
handles.unter=0;
handles.estri=0;
handles.ausb_verz='R';
handles.pos_verz='P3';
handles.pos = 'R1';
handles.l_vec = '0';                                                        %unbenutzt?!
handles.zusaetzliche_schuettung = 0; 


handles.minl=0;         
handles.maxl=0;
handles.minb=0;
handles.maxb=0;
handles.minp=0;
handles.maxp=0;
handles.tfnr=0;

set(handles.Ausgabe_Schwingungsnachweis,'Visible','off')

% Update handles structure
guidata(hObject, handles);

function varargout = Vibwood_GUI_mit_EURO_5_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;

function desys_popup_Callback(hObject, eventdata, handles)
val = get(hObject,'Value');
switch val
    case 1
        handles.desys_verz='BSD';
    case 2
        handles.desys_verz='HBD';
    case 3
        handles.desys_verz='HK';
end

set(handles.text1,'Visible', 'off')                                     %Falls  nachträglich verändert wird, lösche vorherige Einträge
set(handles.laenge_popup,'Visible', 'off')
set(handles.text2,'Visible', 'off')
set(handles.breite_popup,'Visible', 'off')
set(handles.text3,'Visible', 'off')
set(handles.nplatten_popup,'Visible', 'off')
set(handles.text4,'Visible', 'off')
set(handles.hoehe_popup,'Visible', 'off')
set(handles.text8,'Visible', 'off')
set(handles.hoehe_popup,'Visible', 'off')                           
set(handles.text9,'Visible', 'off')
set(handles.text11,'Visible', 'off')
set(findobj('tag','Estrich'),'Visible', 'off')
set(handles.text12,'Visible', 'off')
set(findobj('tag','Schuettung'),'Visible', 'off')
set(handles.Ausgabe_Schwingungsnachweis,'Visible', 'off')
guidata(hObject, handles);

function desys_popup_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end
% set(hObject, 'String', {'Brettsperrholzdecke', 'Holzbalkendecke', 'Hohlkastendecke'});
set(hObject, 'String', {'Brettsperrholzdecke', 'Holzbalkendecke'});

function desys_popup_DeleteFcn(hObject, eventdata, handles)

%% Checkboxen

function unter_check_Callback(hObject, eventdata, handles)

set(handles.text1,'Visible', 'off')                                     %Falls  nachträglich verändert wird, lösche vorherige Einträge
set(handles.laenge_popup,'Visible', 'off')
set(handles.text2,'Visible', 'off')
set(handles.breite_popup,'Visible', 'off')
set(handles.text3,'Visible', 'off')
set(handles.nplatten_popup,'Visible', 'off')
set(handles.text4,'Visible', 'off')
set(handles.hoehe_popup,'Visible', 'off')
set(handles.text8,'Visible', 'off')
set(handles.hoehe_popup,'Visible', 'off')
set(handles.text9,'Visible', 'off')
set(handles.hoehe_popup,'Visible', 'off')
set(handles.text9,'Visible', 'off')
set(handles.hoehe_popup,'Visible', 'off')
set(handles.text11,'Visible', 'off')
set(findobj('tag','Estrich'),'Visible', 'off')
set(handles.text12,'Visible', 'off')
set(findobj('tag','Schuettung'),'Visible', 'off')
set(handles.Ausgabe_Schwingungsnachweis,'Visible', 'off')

if (get(hObject,'Value') == get(hObject,'Max'))
    handles.unter=1;
else
    handles.unter=0;
end
switch handles.unter
    case 0
        switch handles.estri
            case 0
                handles.ausb_verz='R';
            case 1
                handles.ausb_verz='RE';
        end
    case 1
        switch handles.estri
            case 0
                handles.ausb_verz='RU';
            case 1
                handles.ausb_verz='RUE';
        end
end
guidata(hObject, handles);

function estri_check_Callback(hObject, eventdata, handles)

set(handles.text1,'Visible', 'off')                                         %Falls  nachträglich verändert wird, lösche vorherige Einträge
set(handles.laenge_popup,'Visible', 'off')
set(handles.text2,'Visible', 'off')
set(handles.breite_popup,'Visible', 'off')
set(handles.text3,'Visible', 'off')
set(handles.nplatten_popup,'Visible', 'off')
set(handles.text4,'Visible', 'off')
set(handles.hoehe_popup,'Visible', 'off')
set(handles.text8,'Visible', 'off')
set(handles.hoehe_popup,'Visible', 'off')
set(handles.text9,'Visible', 'off')
set(handles.hoehe_popup,'Visible', 'off')
set(handles.text9,'Visible', 'off')
set(handles.hoehe_popup,'Visible', 'off')
set(handles.text11,'Visible', 'off')
set(findobj('tag','Estrich'),'Visible', 'off')
set(handles.text12,'Visible', 'off')
set(findobj('tag','Schuettung'),'Visible', 'off')
set(handles.Ausgabe_Schwingungsnachweis,'Visible', 'off')

if (get(hObject,'Value') == get(hObject,'Max'))
    
    handles.estri=1;
    
else
    handles.estri=0;
end

switch handles.unter
    case 0
        switch handles.estri
            case 0
                handles.ausb_verz='R';
            case 1
                handles.ausb_verz='RE';
        end
    case 1
        switch handles.estri
            case 0
                handles.ausb_verz='RU';
            case 1
                handles.ausb_verz='RUE';
        end
end

guidata(hObject, handles);


%% Radio
% --- Executes when selected object is changed in position.
function position_SelectionChangeFcn(hObject, eventdata, handles)


switch get(eventdata.NewValue,'Tag') % Get Tag of selected object.
    case 'pos1_radio'
        handles.pos_verz='P1';
        handles.pos=[handles.ausb_verz '1'];
    case 'pos2_radio'
        handles.pos_verz='P2';
        handles.pos=[handles.ausb_verz '2'];
    case 'pos3_radio'
        handles.pos_verz='P3';
        handles.pos=[handles.ausb_verz '3'];
end
guidata(hObject, handles);

% Laden der Datei Matrix in jedem Unterordner 
t=load([handles.desys_verz '\' handles.ausb_verz '\' handles.pos_verz '\' ...   % Aufbau: Aufruf der Ordner durch \ , Dateiname durch '_' zusammenfügen
    handles.desys_verz '_' handles.ausb_verz  '_MATRIX.mat'],'matrix');         

t.matrix(t.matrix(:,5)==0,:)=[];                                                % Einträge von Spalte 5 die gleich 0 sind auf leere Einträge 
handles.matrix=round(t.matrix*100)/100;                                         % Schneide die letzen beiden Ziffern weg und speichere als handle
l_list=unique(handles.matrix(:,1))';          
 
set(handles.text1,'Visible', 'on')                                              % Schalte Abfrage für Länge
set(handles.laenge_popup,'Visible', 'on')
set(handles.laenge_popup,'String', num2cell(l_list))

set(handles.text2,'Visible', 'off')                                             % Falls nachträglich Veränderung vorgenommen werden bei Position, lösche Einträge
set(handles.breite_popup,'Visible', 'off')
set(handles.text3,'Visible', 'off')
set(handles.text8,'Visible', 'off')
set(handles.nplatten_popup,'Visible', 'off')
set(handles.text4,'Visible', 'off')
set(handles.text9,'Visible', 'off')
set(handles.hoehe_popup,'Visible', 'off')
set(handles.text9,'Visible', 'off')
set(handles.hoehe_popup,'Visible', 'off')
set(handles.text11,'Visible', 'off')
set(findobj('tag','Estrich'),'Visible', 'off')
set(handles.text12,'Visible', 'off')
set(findobj('tag','Schuettung'),'Visible', 'off')
set(handles.Ausgabe_Schwingungsnachweis,'Visible', 'off')


guidata(hObject, handles);

%--------------------------------------------------------------------------
                        %Geometrie 
%--------------------------------------------------------------------------

function laenge_popup_Callback(hObject, eventdata, handles)
val = get(hObject,'Value');
string_list = get(hObject,'String');
handles.l = str2double(string_list{val});
ind=find(handles.matrix(:,1)==handles.l);                                   % ind sind die Indizes der in der Matrix die mir der gewählten Länge übereinstimmen
handles.minl=min(ind);
handles.maxl=max(ind);
handles.minb=0;
handles.maxb=0;
handles.minp=0;
handles.maxp=0;
handles.tfnr=0;
list = unique(handles.matrix(handles.minl:handles.maxl,2));                 % Liste einmalig die Spalte zwei auf mit der Breite der Decke
set(handles.text2,'Visible', 'on')
set(handles.breite_popup,'Visible', 'on') 
set(handles.breite_popup,'String', num2cell(list))

set(handles.text3,'Visible', 'off')
set(handles.nplatten_popup,'Visible', 'off')
set(handles.nplatten_popup,'String', '-')

set(handles.text4,'Visible', 'off')
set(handles.hoehe_popup,'Visible', 'off')
set(handles.hoehe_popup,'String', '-')

set(handles.text9,'Visible', 'off')
set(handles.hoehe_popup,'Visible', 'off')
set(handles.text11,'Visible', 'off')
set(findobj('tag','Estrich'),'Visible', 'off')
set(handles.text12,'Visible', 'off')
set(findobj('tag','Schuettung'),'Visible', 'off')
set(handles.Ausgabe_Schwingungsnachweis,'Visible', 'off')


guidata(hObject, handles);


function laenge_popup_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end
%set(hObject, 'String', '-');



function breite_popup_Callback(hObject, eventdata, handles)
val = get(hObject,'Value');
string_list = get(hObject,'String');
handles.b = str2double(string_list{val});
ind=find(handles.matrix(:,1)==handles.l & handles.matrix(:,2)==handles.b);        % Indexvektor 
handles.minb=min(ind);
handles.maxb=max(ind);
handles.minp=0;
handles.maxp=0;
handles.tfnr=0;
set(handles.text9,'Visible', 'off')
set(handles.hoehe_popup,'Visible', 'off')
set(handles.text11,'Visible', 'off')
set(findobj('tag','Estrich'),'Visible', 'off')
set(handles.text12,'Visible', 'off')
set(findobj('tag','Schuettung'),'Visible', 'off')
set(handles.Ausgabe_Schwingungsnachweis,'Visible', 'off')
list = unique(handles.matrix(handles.minb:handles.maxb,5));                        %Hole die Anzahl der Platten(BSD) oder den Balkenabstand(HBD)

if strcmp(handles.desys_verz,'BSD')
    
    set(handles.text3,'Visible', 'on')
    set(findobj('tag','nplatten_popup'),'Visible', 'on')
    set(handles.nplatten_popup,'String', num2cell(list))
    
    set(handles.text4,'Visible', 'off')
    set(handles.hoehe_popup,'Visible', 'off')
    set(handles.hoehe_popup,'String', '-')
else
    set(handles.text8,'Visible', 'on')
    set(handles.nplatten_popup,'Visible', 'on')
    set(handles.nplatten_popup,'String', num2cell(list))
    
    set(handles.text9,'Visible', 'off')
    set(handles.hoehe_popup,'Visible', 'off')
    set(handles.hoehe_popup,'String', '-')
    
end

guidata(hObject, handles);


function breite_popup_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end
set(hObject, 'String', '-');

function nplatten_popup_Callback(hObject, eventdata, handles)
val = get(hObject,'Value');
string_list = get(hObject,'String');
handles.p = str2double(string_list{val});
ind=find(handles.matrix(:,1)==handles.l & handles.matrix(:,2)==handles.b & handles.matrix(:,5)==handles.p);             %Hole Zeile  mit der ausgewählten Balkenabstand oder Plattenanzahl
handles.minp=min(ind);
handles.maxp=max(ind);
handles.tfnr=0;
set(handles.text9,'Visible', 'off')
set(handles.hoehe_popup,'Visible', 'off')
set(handles.text11,'Visible', 'off')
set(findobj('tag','Estrich'),'Visible', 'off')
set(handles.text12,'Visible', 'off')
set(findobj('tag','Schuettung'),'Visible', 'off')
set(handles.Ausgabe_Schwingungsnachweis,'Visible', 'off')

if strcmp(handles.desys_verz,'BSD')
    list = unique(handles.matrix(handles.minp:handles.maxp,6));             % Liste die Plattendicke aus der Matrix auf (Spalte 6) 
    set(handles.text4,'Visible', 'on')
    set(handles.hoehe_popup,'Visible', 'on')
    set(handles.hoehe_popup,'String', num2cell(list))
else
    list = unique(handles.matrix(handles.minp:handles.maxp,4)*0.06);    %Spalte 4 ein oder zwei Balken ( {1,2} * 0,06 )  

    set(handles.text9,'Visible', 'on')
    set(handles.text9,'String','Balkenbreite in [m]')
    set(handles.hoehe_popup,'Visible', 'on')
    set(handles.hoehe_popup,'String', num2cell(list))
    
    if handles.minp == handles.maxp                                     %Falls es nur noch einen Auswahlwert gibt gleich in handles speichern (spart auslösen des Callback Hoehe) 
    Breite = handles.matrix(handles.minp,4)*0.06;
    set(handles.hoehe_popup,'String', Breite)  
    handles.h = Breite; 
    end
    
end

 
guidata(hObject, handles);

function nplatten_popup_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end
set(hObject, 'String', '-');

function hoehe_popup_Callback(hObject, eventdata, handles)
val = get(hObject,'Value');
string_list = get(hObject,'String');
handles.h = str2double(string_list{val});                                   

set(handles.text11,'Visible', 'off')
set(findobj('tag','Estrich'),'Visible', 'off')
set(handles.text12,'Visible', 'off')
set(findobj('tag','Schuettung'),'Visible', 'off')
set(handles.Ausgabe_Schwingungsnachweis,'Visible', 'off')

% if strcmp(handles.desys_verz,'BSD')
%     ind=find( (handles.matrix(:,1)==handles.l) & (handles.matrix(:,2)==handles.b) & (handles.matrix(:,5)==handles.p) & (handles.matrix(:,6)==handles.h) );
% else
%     ind=find( (handles.matrix(:,1)==handles.l) & (handles.matrix(:,2)==handles.b) & (handles.matrix(:,5)==handles.p) & (handles.matrix(:,4)==handles.h/0.06) );
% end
% handles.tfnr=ind;

guidata(hObject, handles);


function hoehe_popup_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end
set(hObject, 'String', '-');

function einlesen_Callback(hObject, eventdata, handles)

%Mein Code 
if strcmp(handles.desys_verz,'BSD')
    ind=find( (handles.matrix(:,1)==handles.l) & (handles.matrix(:,2)==handles.b) & (handles.matrix(:,5)==handles.p) & (handles.matrix(:,6)==handles.h) );
else
    ind=find( (handles.matrix(:,1)==handles.l) & (handles.matrix(:,2)==handles.b) & (handles.matrix(:,5)==handles.p) & (handles.matrix(:,4)==handles.h/0.06) );
end
handles.tfnr=ind;

guidata(hObject, handles);                                                              % Update um Plotdaten für Terzen zu aktualisieren 

axes(handles.tranfct);                                                                  % Plot Fenster erzeugen
cla;
                                                                                        % Datei laden mit zusammengestezen String Aufbau des
s=load([handles.desys_verz '\' handles.ausb_verz '\' handles.pos_verz '\' ...           % Aufruf der Ordner: Wahl_popup_HK/BSD/HB '\' Kombi aus Estrich und Unterdecke '\' Postion '\' 
    handles.desys_verz '_' handles.ausb_verz '_' handles.pos_verz ...                   % Dateiname: Wahl_popup_HK/BSD/HB '\' Kombi aus Estrich und Unterdecke '\' Postion '\' Indizes
    '_' num2str(handles.tfnr) '.mat'],'data');                                          % Datentyp: .mat

plot(s.data(:,1),s.data(:,2),s.data(:,1),s.data(:,3),s.data(:,1),s.data(:,4));
grid
title('Schalleistungspegel / Abstrahlmaß')
xlabel('Frequenz [Hz]')
ylabel('Amplitude [dB] re 120 Watt/N')
legend('L_P','L_{P,S1}','\sigma','Location','East')

%--------------------------------------------------------------------------
                        %Anregungsart Panel 2 
%--------------------------------------------------------------------------


function anregung_radio_SelectionChangeFcn(hObject, eventdata, handles)
switch get(eventdata.NewValue,'Tag') % Get Tag of selected object.
    case 'fuss_radio'
        handles.lastpfad='Last\fussgaenger.mat';
        handles.wh=1;
    case 'hammer_radio'
        handles.lastpfad='Last\hammerwerk.mat';
        handles.wh=100;
    case 'eigene_radio'
        handles.wh=1;
end
guidata(hObject, handles);

function pfad_edit_Callback(hObject, eventdata, handles)
handles.lastpfad=[cd '\Last' hObject];

function pfad_edit_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end


function browse_button_Callback(hObject, eventdata, handles)
[filename, pathname] = uigetfile( ...
    {'*.wav';'*.xlsx';'*.mat';'*.*'}, ...
    'Pick a file',...
    [cd '\Last']);
% hObject    handle to browse_button (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
set(handles.pfad_edit,'String',strcat(filename))
handles.lastpfad=strcat(pathname,filename);
guidata(hObject, handles);

function last_plot_Callback(hObject, eventdata, handles)
format=handles.lastpfad(:,((end-3):end));
switch format
    case '.wav'
        [data,fs]=wavread(handles.lastpfad);
        data=data*1000;
    case '.mat'
        load(handles.lastpfad)
    case 'xlsx'
end
wh=handles.wh;
nsamples=length(data)/wh;
axes(handles.lastspec); % Plot Fenster erzeugen
cla;
fftspec(data(1:nsamples),fs,length(data),wh)

function terz_plot_Callback(hObject, eventdata, handles)
axes(handles.slterz);
cla;
%txf-funktion ist die Plotfunktion seperat in einer eigenen Datei 
txf([handles.desys_verz '\' handles.ausb_verz '\' handles.pos_verz '\' handles.desys_verz '_' handles.ausb_verz '_' handles.pos_verz '_' num2str(handles.tfnr)],handles.lastpfad)

%--------------------------------------------------------------------------
                        %EUROCODE 5 Schwingungsnachweis 
%--------------------------------------------------------------------------

function Anforderung_Callback(hObject, eventdata, handles)
contents = cellstr(get(hObject,'String')); 
handles.Anforderung = contents{get(hObject,'Value')} ; 
handles.Nachweis = 0; 
set(handles.Ausgabe_Schwingungsnachweis,'Visible','off')
set(handles.text11,'Visible', 'on')
set(findobj('tag','Estrich'),'Visible', 'on')
set(handles.text12,'Visible', 'off')
set(findobj('tag','Schuettung'),'Visible', 'off')
set(handles.Ausgabe_Schwingungsnachweis,'Visible', 'off')

guidata(hObject, handles);

function Anforderung_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end


function Estrich_Callback(hObject, eventdata, handles)
contents = cellstr(get(hObject,'String'));
handles.Estrich = contents{get(hObject,'Value')};
set(handles.text12,'Visible', 'on')
set(findobj('tag','Schuettung'),'Visible', 'on')
handles.Nachweis = 0; 
set(handles.Ausgabe_Schwingungsnachweis,'Visible','off')
guidata(hObject, handles);


function Estrich_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end


function Schuettung_Callback(hObject, eventdata, handles)
handles.zusaetzliche_schuettung = str2double(get(hObject,'String')); 
handles.Nachweis = 0; 
set(handles.Ausgabe_Schwingungsnachweis,'Visible', 'off')
guidata(hObject, handles);

function Schuettung_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end



function pruefen_Callback(hObject, eventdata, handles)

handles.Nachweis = Schwingungsnachweis_EUROCODE_5( handles.desys_verz , handles.ausb_verz , handles.l , handles.b , handles.p, handles.h , handles.Estrich, ...
                                handles.zusaetzliche_schuettung, handles.Anforderung); 
set(handles.Ausgabe_Schwingungsnachweis,'Visible', 'on')
    if min(handles.Nachweis) == 1 ;                              
        set(handles.Ausgabe_Schwingungsnachweis,'String','Nachweis erbracht')
        set(findobj('tag','Ausgabe_Schwingungsnachweis'),'BackgroundColor','green')
    else 
        set(handles.Ausgabe_Schwingungsnachweis,'String','Nachweis nicht erbracht')
        set(findobj('tag','Ausgabe_Schwingungsnachweis'),'BackgroundColor','red')
    end 
    
    guidata(hObject, handles);
 






function Ausgabe_Schwingungsnachweis_Callback(hObject, eventdata, handles)
% hObject    handle to Ausgabe_Schwingungsnachweis (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of Ausgabe_Schwingungsnachweis as text
%        str2double(get(hObject,'String')) returns contents of Ausgabe_Schwingungsnachweis as a double


% --- Executes during object creation, after setting all properties.
function Ausgabe_Schwingungsnachweis_CreateFcn(hObject, eventdata, handles)
% hObject    handle to Ausgabe_Schwingungsnachweis (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','handles.Farbe');
end


% function Ausgabe_Schwingungsnachweis_Callback(hObject, eventdata, handles)
% % hObject    handle to Ausgabe_Schwingungsnachweis (see GCBO)
% % eventdata  reserved - to be defined in a future version of MATLAB
% % handles    structure with handles and user data (see GUIDATA)
% 
% % Hints: get(hObject,'String') returns contents of Ausgabe_Schwingungsnachweis as text
% %        str2double(get(hObject,'String')) returns contents of Ausgabe_Schwingungsnachweis as a double
% 
% 
% % --- Executes during object creation, after setting all properties.
% function Ausgabe_Schwingungsnachweis_CreateFcn(hObject, eventdata, handles)
% % hObject    handle to Ausgabe_Schwingungsnachweis (see GCBO)
% % eventdata  reserved - to be defined in a future version of MATLAB
% % handles    empty - handles not created until after all CreateFcns called
% 
% % Hint: edit controls usually have a white background on Windows.
% %       See ISPC and COMPUTER.
% if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
%     set(hObject,'BackgroundColor','white');
% end
