samer@0: function u=construct(s,sizes_in) samer@0: fg=fig(s); figure(fg); clf; samer@0: set(gcf,'Name',s.opts.name); samer@0: hpanel = uipanel('title',s.opts.title,'bordertype','line'); samer@0: %hpanel = uigridcontainer('v0','GridSize',[1,1]); samer@0: hedit = uicontrol('parent',hpanel,'style','edit','string',s.opts.init,'horizontalalignment','left'); samer@0: %hbtn = uicontrol('parent',hpanel,'style','pushbutton','string','send'); samer@0: set(hedit,'BackgroundColor',get(0,'DefaultAxesColor')); samer@0: set(hedit,'units','normalized','position',[0,0,1,1]); samer@0: %set(hedit,'ToolTipString','Enter a MATLAB expression to evaluate a send.'); samer@0: %set(hbtn,'ToolTipString','Press to resend the last entered expression.'); samer@0: samer@0: queue = {}; samer@0: u=mkunit(s); samer@0: u.process=@proc; samer@0: u.sizes_out = {[1,1]}; samer@0: u.dispose = @dispose; samer@0: u.starting = @starting; samer@0: u.stopping = @stopping; samer@0: u.get_state = @()get(hedit,'string'); samer@0: u.set_state = @(s)set(hedit,'string',s); samer@0: samer@0: function dispose, delete(hpanel); end samer@0: function starting, set(hedit,'Callback',@send); end samer@0: function stopping, set(hedit,'Callback',[]); end samer@0: function x=proc, x=queue; queue={}; end samer@0: samer@0: function send(varargin), samer@0: str=get(hedit,'string'); samer@0: fprintf('* esender: evaluating %s\n',str); samer@0: try, queue = [queue, {evalin('base',str)}]; samer@0: catch fprintf('* esender: ERROR evaluating.\n'); samer@0: end samer@0: end samer@0: end