Mercurial > hg > ishara
diff arrows/@esender/construct.m @ 0:672052bd81f8
Initial partial import.
author | samer |
---|---|
date | Wed, 19 Dec 2012 22:38:28 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/arrows/@esender/construct.m Wed Dec 19 22:38:28 2012 +0000 @@ -0,0 +1,35 @@ +function u=construct(s,sizes_in) + fg=fig(s); figure(fg); clf; + set(gcf,'Name',s.opts.name); + hpanel = uipanel('title',s.opts.title,'bordertype','line'); + %hpanel = uigridcontainer('v0','GridSize',[1,1]); + hedit = uicontrol('parent',hpanel,'style','edit','string',s.opts.init,'horizontalalignment','left'); + %hbtn = uicontrol('parent',hpanel,'style','pushbutton','string','send'); + set(hedit,'BackgroundColor',get(0,'DefaultAxesColor')); + set(hedit,'units','normalized','position',[0,0,1,1]); + %set(hedit,'ToolTipString','Enter a MATLAB expression to evaluate a send.'); + %set(hbtn,'ToolTipString','Press to resend the last entered expression.'); + + queue = {}; + u=mkunit(s); + u.process=@proc; + u.sizes_out = {[1,1]}; + u.dispose = @dispose; + u.starting = @starting; + u.stopping = @stopping; + u.get_state = @()get(hedit,'string'); + u.set_state = @(s)set(hedit,'string',s); + + function dispose, delete(hpanel); end + function starting, set(hedit,'Callback',@send); end + function stopping, set(hedit,'Callback',[]); end + function x=proc, x=queue; queue={}; end + + function send(varargin), + str=get(hedit,'string'); + fprintf('* esender: evaluating %s\n',str); + try, queue = [queue, {evalin('base',str)}]; + catch fprintf('* esender: ERROR evaluating.\n'); + end + end +end