Code covered by the BSD License  

Highlights from
LEDbar (a fast and simple embedded progress bar without axes)

image thumbnail
from LEDbar (a fast and simple embedded progress bar without axes) by Tingyue Gu
Each of the 10 little colored text fields is turned on sequentially after each 10% of progress.

LEDbar(varargin)
function varargout = LEDbar(varargin)
% LEDBAR M-file for LEDbar.fig
%      LEDBAR, by itself, creates a new LEDBAR or raises the existing
%      singleton*.
%
%      H = LEDBAR returns the handle to a new LEDBAR or the handle to
%      the existing singleton*.
%
%      LEDBAR('CALLBACK',hObject,eventData,handles,...) calls the local
%      function named CALLBACK in LEDBAR.M with the given input arguments.
%
%      LEDBAR('Property','Value',...) creates a new LEDBAR or raises the
%      existing singleton*.  Starting from the left, property value pairs are
%      applied to the GUI before LEDbar_OpeningFunction gets called.  An
%      unrecognized property name or invalid value makes property application
%      stop.  All inputs are passed to LEDbar_OpeningFcn via varargin.
%
%      *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 LEDbar

% Last Modified by GUIDE v2.5 20-Apr-2009 09:29:57

% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @LEDbar_OpeningFcn, ...
                   'gui_OutputFcn',  @LEDbar_OutputFcn, ...
                   'gui_LayoutFcn',  [] , ...
                   'gui_Callback',   []);
if nargin & isstr(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 LEDbar is made visible.
function LEDbar_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   command line arguments to LEDbar (see VARARGIN)

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

% Update handles structure
guidata(hObject, handles);

% UIWAIT makes LEDbar wait for user response (see UIRESUME)
% uiwait(handles.figure1);


% --- Outputs from this function are returned to the command line.
function varargout = LEDbar_OutputFcn(hObject, eventdata, handles)
% varargout  cell array for returning output args (see VARARGOUT);
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure
varargout{1} = handles.output;


% --- Executes during object creation, after setting all properties.
function editLEDbkground_CreateFcn(hObject, eventdata, handles)
% hObject    handle to editLEDbkground (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
    set(hObject,'BackgroundColor','white');
else
    set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end



function editLEDbkground_Callback(hObject, eventdata, handles)
% hObject    handle to editLEDbkground (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 editLEDbkground as text
%        str2double(get(hObject,'String')) returns contents of editLEDbkground as a double


% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

%prepare LED progress bar
LED=10;  %You can use more LED lights. Create them in 'guide' for main GUI
for n=1:LED; LEDhandles(n)=findobj('Tag',['textLED' num2str(n)]); end
stepsize=1/LED;  %fraction indicated by each LED light
progressmark=stepsize; %initialization 
set(handles.editLEDbkground,'Visible','on'); 
set(handles.textLEDpercentDone,'Visible','on');
pause(0.000001)  %need this so their showing up will not have a delay
%LED progress bar preparation finished


imax=10000;
for i=1:imax   %loop for each day. k=1 for t=0, k=tmax+1 for t=tmax!'
    
    %do your stuff here...
    
    %set LED progress bar below
    percentDone_string=[num2str(round(i/imax*100)),'% Done'];
    set(handles.textLEDpercentDone,'String',percentDone_string,'Visible','on'); %LED %done
    if i/imax >= progressmark*0.99   %Use a smaller number (e.g., 0.8) to show LED earlier
        set(LEDhandles(round(progressmark/stepsize)),'Visible','on'); 
        pause(0.000001)  %need this so that LED lighting will not fall behind %done!
        progressmark=progressmark+stepsize;
    end
    %LED progress bar block ends
    
end  %this ends i=1:imax loop

%turn off LED progress bar
for n=1:LED; set(LEDhandles(n),'Visible','off'); end %turn of LED bar    
set(handles.editLEDbkground,'Visible','off'); 
set(handles.textLEDpercentDone,'Visible','off');
%finished turning off LED progress bar


%if abortnow==1; return; end  %global from Abort button. This quits k loop only! 

Contact us at files@mathworks.com