function MeinErstesGUI
% Wir spielen mit einigen GUIs, um deren Funktion kennen zu lernen.
% Es soll eine Funktion ausgewählt werden, um diese in einem bestimmten Bereich
% zu plotten.

cla                                         % Löschen der alten Variablen
delete(gcf)                                 % und Figures (GetCurrentFigure).
% First we create a figure:
hFig = figure('Name','Mein GUI',...
              'Menubar','none',...
              'Toolbar','none',...
              'Units','pixels',...          % or 'inches', 'normalized',...
              'Position',[100,300,500,400]);% [x,y,Breite,Höhe] in Pixel.
% Man kann sich die Eigenschaften der Figure mit "inspect(gcf)" ansehen.
% set(hFig,'NumberTitle','off','Tag','Fenster')
% Bcol = [0,0,0]; Fcol = [1,1,0];             % Hintergrundfarbe, Textfarbe.
% % Bcol = get(hFig,'Color'); Fcol = [0 0 0];
% set(hFig,'Color',Bcol);
% 
% hPush = uicontrol(hFig,'Style','pushbutton');% oder 'togglebutton'
% set(hPush,'Position',[10,15,90,22],...
%           'String','Drück mich',...
%           'FontWeight','bold',...
%           'TooltipString','Führt die Funktion Fct. aus',...
%           'Callback','disp(''Thank you for clicking me.'')')
% hPop = uicontrol(hFig,'Style','popupmenu',...
%           'Position',[10,340,90,22],...
%           'String',{'Funktion','sin(x)','exp(x)','erf(x)','airy(x)'});  
% hTxt = uicontrol(hFig,'Style','text',...
%           'Position',[10,360,95,15],...
%           'String','Plot',...
%           'FontWeight','bold',...
%           'HorizontalAlignment','left');
% set(hTxt, 'BackgroundColor',Bcol,'ForegroundColor',Fcol)   
% hEda = uicontrol(hFig,'Style','edit',...
%           'Position',[10,300,40,22],...
%           'TooltipString','unteren x-Wert eingeben',...
%           'String','-2');
% hEde = uicontrol(hFig,'Style','edit',...
%           'Position',[60,300,40,22],...
%           'TooltipString','oberen x-Wert eingeben',...
%           'String','2');
% hTxt = uicontrol(hFig,'Style','text',...
%           'Position',[10,320,95,15],...
%           'String','    von           bis',...
%           'HorizontalAlignment','left');
% set(hTxt, 'BackgroundColor',Bcol,'ForegroundColor',Fcol)   
%         
% hRadio = uicontrol(hFig,'Style','radiobutton',...
%           'Position',[10,220,90,15],...
%           'String','Zeige Marker');
% set(hRadio,'BackgroundColor',Bcol,'ForegroundColor',Fcol)
% set(hRadio,'Value',0)                       % Für ,1) ist radio button on.
% 
% hAxes = axes('Units','pixels','Position',[150,50,340,300]);
% set(hAxes,'Box','on','XGrid','on','YGrid','on')
% set(hPush,'Callback',@cb_plot)
% set([hPop,hEda,hEde,hRadio],'Callback',@cb_plot)
% x = 0; y = 0;
% 
% function cb_plot(hObj,evd)
%   fctno = get(hPop,'Value');
%   if fctno==1
%     disp('Wähle erst eine Funktion aus')
%     return
%   end
%   fcts = get(hPop,'String');
%   fct = fcts{fctno};
%   disp(['Ich bin bereit zum Plotten der Funktion ',fct])
%   xvon = str2num(get(hEda,'String'));
%   xbis = str2num(get(hEde,'String'));
%   x = linspace(xvon,xbis,100);
%   y = eval(fct);
%   hPlot = plot(hAxes,x,y);
%   set(hAxes,'Box','on',...
%       'XGrid','on','YGrid','on',...
%       'XColor',Fcol,'YColor',Fcol)
%   title(hAxes,'Mein GUI-Plot')
%   xlabel(hAxes,'X ->')
%   ylabel(hAxes,fct)
%   zeigeMarker = get(hRadio,'Value');
%   if zeigeMarker
%     set(hPlot,'Marker','o')
%   end
%   hCM = uicontextmenu;
%   % Define callbacks for context menu items that change linestyle
%   hcb2 = 'set(gco, ''LineStyle'', '':'')';
%   hcb3 = 'set(gco, ''LineStyle'', ''-'')';
%   uimenu(hCM, 'Label', 'gepunktet',      'Callback', hcb2);
%   uimenu(hCM, 'Label', 'durchgezogen',   'Callback', hcb3);
%   uimenu(hCM, 'Label', 'doppelte Stärke','Callback',@cm_width);
%   uimenu(hCM, 'Label', 'halbe Stärke',   'Callback',@cm_width);
%   hlines = findall(hAxes,'Type','line');
%   set(hlines,'uicontextmenu',hCM)
% 
%   function cm_width(hObj,evd)
%     currentWidth = get(gco,'LineWidth');
%     if currentWidth<1, currentWidth = 1; end
%     labl = get(hObj,'Label');
%     if labl(1)=='d', newWidth = 2*currentWidth; 
%     else             newWidth = currentWidth/2;
%     end
%     set(hlines,'LineWidth',newWidth)
%   end % cm_width
%   
% end % Callback cb_plot
% 
% hMenu = uimenu(hFig,'Label','Datei');
% uimenu(hMenu,'Label','Daten Speichern', 'Callback',@cb_speichern);
% % uimenu(hMenu,'Label','Daten Einlesen',  'Callback',@cb_lesen);
% %%....
% %%....
% 
% function cb_speichern(hObj,evd)
%   [FileName,PathName] = uiputfile;
%   if FileName==0, return, end         % Nutzer hat Abbrechen gewählt.
%   save([PathName,FileName],'x','y')
% end % cb_speichern
% 
% end % MeinErstesGUI
