GUI Examples #21:Explore multiple-figure data-passing 2

February 27, 2010 by Matt Fig · Leave a Comment
Filed under: GUI, Tutorials 
VN:F [1.8.8_1072]
Rating: 0 (from 0 votes)
VN:F [1.8.8_1072]
Rating: 0.0/10 (0 votes cast)

Pushing the pushbutton creates another GUI with only a single editbox.  Any string entered into the new editbox is placed into the first GUI.

function [] = GUI_21()
 % Demonstrate how to get data from one GUI to another (data passing).
 % Creates a GUI with an editbox and a pushbutton.  When the user presses
 % the pushbutton, another GUI pops up with an editbox.  Whatever is in the
 % editbox of the second GUI when the user hits return will be put into the
 % edit box of the first GUI.
 %
 % Suggested exercise:  Alter the code to have the new GUI display whatever
 % text is in the editbox from the first GUI when the new GUI is created.
 % Even more advanced:  Alter the code so that two new GUIs cannot be
 % launched simultaneously by pressing the pushbutton repeatedly.
 %
 %
 % Author:  Matt Fig
 % Date:  7/15/2009
 
S.fh = figure('units','pixels',...
 'position',[500 500 200 130],...
 'menubar','none',...
 'numbertitle','off',...
 'name','GUI_21',...
 'resize','off');
 S.ed = uicontrol('style','edit',...
 'units','pix',...
 'position',[10 60 180 60],...
 'string','Data');
 S.pb = uicontrol('style','pushbutton',...
 'units','pix',...
 'position',[10 20 180 30],...
 'string','Push to Get Data',...
 'callback',{@pb_call,S});
 
function [] = pb_call(varargin)
 % Callback for GUI_21 pushbutton.
 S = varargin{3};  % Get the structure.
 f = figure('units','pixels',...
 'menubar','none',...
 'position',[750 510 200 100]); % Create a new GUI.
 E = uicontrol('style','edit',...
 'units','pixels',...
 'position',[10 20 180 60],...
 'string','Type something, press return.',...
 'callback',{@E_call,varargin{3}});
 uicontrol(E);  % Allow user to simply hit return without typing anything.
 % If user closes GUI_21, close new one as well because it will error when
 % it tries to execute the callback otherwise.
 set(S.fh,'deletefcn',{@fig_delet,f})
 
function [] = E_call(varargin)
 % Callback for secondary GUI editbox.
 S = varargin{3};  % Get the structure.
 set(S.ed,'string',get(gcbo,'string'))  % Set GUI_21 editbox string.
 close(gcbf)  % Close secondary GUI.
 
function [] = fig_delet(varargin)
 % Executes when user closes GUI_21.
 try
 delete(varargin{3})
 catch
 % Do nothing.
 end
VN:F [1.8.8_1072]
Rating: 0.0/10 (0 votes cast)
VN:F [1.8.8_1072]
Rating: 0 (from 0 votes)

Popularity: 1% [?]

Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Blogplay
  • Live
  • PDF
  • Technorati
  • Twitter
  • Yahoo! Bookmarks
  • Add to favorites
  • email
  • MySpace
  • RSS

GUI Examples #19:Explore popup selection determination and manipulation

February 14, 2010 by Matt Fig · Leave a Comment
Filed under: GUI, Tutorials 
VN:F [1.8.8_1072]
Rating: 0 (from 0 votes)
VN:F [1.8.8_1072]
Rating: 0.0/10 (0 votes cast)

Similar to GUI_18, except that the editbox is allowed to select a value from the popup.  The editbox may also add an item to the popup.

function [] = GUI_19()
% Demonstrate how to get selection from a popup to an edit box & vis versa.
% This is an expansion of GUI_17.  Here we will not enforce a specific list
% of choices so that any text the user enters into the editbox will be
% added to the popup list if it is not already there.
%
%
% Author:  Matt Fig
% Date:  7/15/2009
 
S.fh = figure('units','pixels',...
 'position',[300 300 300 110],...
 'menubar','none',...
 'name','GUI_19',...
 'numbertitle','off',...
 'resize','off');
S.pop = uicontrol('style','pop',...
 'units','pixels',...
 'position',[20 10 260 40],...
 'string',{'one','two','three','four'});
S.ed = uicontrol('style','edit',...
 'units','pix',...
 'position',[20 60 260 30],...
 'fontsize',16,'string','one');
 
set([S.pop,S.ed],{'callback'},{{@pp_call,S};{@ed_call,S}});
 
function [] = pp_call(varargin)
% Callback for the popup.
S = varargin{3}% Get the structure.
P = get(S.pop,{'string','val'})% Get the users choice.
set(S.ed,'string',P{1}{P{2}})% Assign the user's choice to the edit.
 
function [] = ed_call(varargin)
% Callback for the edit.
S = varargin{3}% Get the structure.
E = get(S.ed,'string')% Get the string from the edit.
P = get(S.pop,{'string','value'})% Get the users choice.
% Check if edit string is found in pop-up list.
tmp = strmatch(E,P{1});
 
if ~isempty(tmp)
 set(S.pop,'value',tmp)  % Set the pop-up to match the edit.
else
 % We could add the new element to the popup string at either the top or
 % the bottom.  Both methods are shown below.  Only uncomment one of
 % these at a time!
 set(S.pop,'string',{P{1}{:},E},'value',length(P{1})+1) % Bottom
%     set(S.pop,'string',{E,P{1}{:}},'value',1) % Top   
end
VN:F [1.8.8_1072]
Rating: 0.0/10 (0 votes cast)
VN:F [1.8.8_1072]
Rating: 0 (from 0 votes)

Popularity: 1% [?]

Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Blogplay
  • Live
  • PDF
  • Technorati
  • Twitter
  • Yahoo! Bookmarks
  • Add to favorites
  • email
  • MySpace
  • RSS

GUI Examples #18:Explore popup selection determination

February 14, 2010 by Matt Fig · Leave a Comment
Filed under: GUI, Tutorials 
VN:F [1.8.8_1072]
Rating: 0 (from 0 votes)
VN:F [1.8.8_1072]
Rating: 0.0/10 (0 votes cast)

Explore popup selection determination and manipulation.  Similar to GUI_17, except that the editbox is allowed to select a value  from the popup.

function [] = GUI_18()
% Demonstrate how to get selection from a popup to an edit box & vis versa.
% This is an expansion of GUI_17.  Here we will enforce a specific list of
% choices so that any text the user enters into the editbox which is not a
% choice in the popup will be overwritten.
%
%
% Author:  Matt Fig
% Date:  7/15/2009
 
S.fh = figure('units','pixels',...
 'position',[300 300 300 110],...
 'menubar','none',...
 'name','GUI_18',...
 'numbertitle','off',...
 'resize','off');
S.pop = uicontrol('style','pop',...
 'units','pixels',...
 'position',[20 10 260 40],...
 'string',{'one','two','three','four'});
S.ed = uicontrol('style','edit',...
 'units','pix',...
 'position',[20 60 260 30],...
 'fontsize',16,...
 'string','one');
 
set([S.pop,S.ed],{'callback'},{{@pop_call,S};{@ed_call,S}}); % Set callback
 
function [] = pop_call(varargin)
% Callback for the popup.
S = varargin{3}% Get the structure.
P = get(S.pop,{'string','val'})% Get the users choice.
set(S.ed,'string',P{1}{P{2}})% Assign the user's choice to the edit.
 
function [] = ed_call(varargin)
% Callback for the edit.
S = varargin{3}% Get the structure.
E = get(S.ed,'string')% Get the string from the edit.
P = get(S.pop,{'string','value'})% Get the users choice.
% Check if edit string is found in pop-up list.
tmp = strmatch(E,P{1});
 
if ~isempty(tmp)
 set(S.pop,'value',tmp)  % Set the pop-up to match the edit.
else
 set(S.ed,'string',P{1}{P{2}}) % Set the edit to current pop-up.
end
VN:F [1.8.8_1072]
Rating: 0.0/10 (0 votes cast)
VN:F [1.8.8_1072]
Rating: 0 (from 0 votes)

Popularity: 1% [?]

Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Blogplay
  • Live
  • PDF
  • Technorati
  • Twitter
  • Yahoo! Bookmarks
  • Add to favorites
  • email
  • MySpace
  • RSS

Next Page »