0001 function [varargout]=logindlg(varargin)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029 if nargin == 2
0030 Login = varargin{1};
0031 password = varargin{2};
0032 else
0033 Login = '';
0034 password = '';
0035 end
0036
0037 for i=1:numel(password), passwordHidden(i)='*'; end
0038 if ~exist('passwordHidden','var'), passwordHidden = ''; end
0039
0040
0041 Color = get(0,'DefaultUicontrolBackgroundcolor');
0042
0043 set(0,'Units','characters')
0044 Screen = get(0,'screensize');
0045 Position = [Screen(3)/2-17.5 Screen(4)/2-4.75 35 9.5];
0046 set(0,'Units','pixels')
0047
0048
0049
0050 gui.main = dialog('HandleVisibility','on',...
0051 'IntegerHandle','off',...
0052 'Menubar','none',...
0053 'Name','LTPDA Repository Login',...
0054 'NumberTitle','off',...
0055 'Tag','logindlg',...
0056 'Color',Color,...
0057 'Units','characters',...
0058 'Userdata','logindlg',...
0059 'Position',Position);
0060
0061 set(gui.main,'Closerequestfcn',{@Cancel,gui.main},'Keypressfcn',{@Escape,gui.main})
0062
0063
0064 gui.login_text = uicontrol(gui.main,'Style','text','FontSize',8,'HorizontalAlign','center','Units','characters','String','Login','Position',[1 7.65 33 1]);
0065 gui.password_text = uicontrol(gui.main,'Style','text','FontSize',8,'HorizontalAlign','center','Units','characters','String','Password','Position',[1 4.15 33 1]);
0066
0067
0068 gui.edit1 = uicontrol(gui.main,'Style','edit','FontSize',8,'HorizontalAlign','center','BackgroundColor','white','Units','characters','String',Login,'Position',[1 6.02 33 1.7]);
0069 gui.edit2 = uicontrol(gui.main,'Style','edit','FontSize',8,'HorizontalAlign','center','BackgroundColor','white','Units','characters','String',passwordHidden,'Position',[1 2.52 33 1.7],'KeyPressfcn',{@KeyPress_Function,gui.main},'Userdata',password);
0070
0071
0072 gui.OK = uicontrol(gui.main,'Style','push','FontSize',8,'Units','characters','String','OK','Position',[2 .2 15 1.7],'Callback',{@OK,gui.main});
0073 gui.Cancel = uicontrol(gui.main,'Style','push','FontSize',8,'Units','characters','String','Cancel','Position',[18 .2 15 1.7],'Callback',{@Cancel,gui.main});
0074
0075 setappdata(0,'logindlg',gui)
0076 setappdata(gui.main,'Check',0)
0077
0078 uicontrol(gui.edit1)
0079
0080
0081 uiwait(gui.main)
0082
0083 Check = getappdata(gui.main,'Check');
0084
0085
0086 if Check == 1
0087 Login = get(gui.edit1,'String');
0088 Password = get(gui.edit2,'Userdata');
0089
0090 varargout(1) = {Login};
0091 varargout(2) = {Password};
0092 else
0093 varargout(1) = {[]};
0094 varargout(2) = {[]};
0095 end
0096
0097 delete(gui.main)
0098 setappdata(0,'logindlg',[])
0099
0100
0101 function KeyPress_Function(h,eventdata,fig)
0102
0103
0104 password = get(h,'Userdata');
0105 key = get(fig,'currentkey');
0106
0107 switch key
0108 case 'backspace'
0109 password = password(1:end-1);
0110 case 'return'
0111 gui = getappdata(0,'logindlg');
0112 OK([],[],gui.main);
0113 case 'tab'
0114 gui = getappdata(0,'logindlg');
0115 uicontrol(gui.OK);
0116 otherwise
0117 password = [password get(fig,'currentcharacter')];
0118 end
0119
0120 SizePass = size(password);
0121 if SizePass(2) > 0
0122 asterix(1,1:SizePass(2)) = '*';
0123 set(h,'String',asterix)
0124 else
0125 set(h,'String','')
0126 end
0127
0128 set(h,'Userdata',password)
0129
0130
0131 function Cancel(h,eventdata,fig)
0132 uiresume(fig)
0133
0134
0135 function OK(h,eventdata,fig)
0136
0137 setappdata(fig,'Check',1)
0138 uiresume(fig)
0139
0140
0141 function Escape(h,eventdata,fig)
0142
0143
0144 key = get(fig,'currentkey');
0145
0146 if isempty(strfind(key,'escape')) == 0 && h == fig
0147 Cancel([],[],fig)
0148 end