summaryrefslogtreecommitdiff
path: root/uui/source/logindlg.cxx
diff options
context:
space:
mode:
authorJens-Heiner Rechtien <hr@openoffice.org>2000-09-18 16:07:07 +0000
committerJens-Heiner Rechtien <hr@openoffice.org>2000-09-18 16:07:07 +0000
commitfd069bee7e57ad529c3c0974559fd2d84ec3151a (patch)
treeef2eddeefb786feaf966d6a1c0c291872c0ae420 /uui/source/logindlg.cxx
parent04c1c754ab9d0ad07f2c5362d46597d13efe75c2 (diff)
initial import
Diffstat (limited to 'uui/source/logindlg.cxx')
-rw-r--r--uui/source/logindlg.cxx351
1 files changed, 351 insertions, 0 deletions
diff --git a/uui/source/logindlg.cxx b/uui/source/logindlg.cxx
new file mode 100644
index 000000000000..eb9381d2940f
--- /dev/null
+++ b/uui/source/logindlg.cxx
@@ -0,0 +1,351 @@
+/*************************************************************************
+ *
+ * $RCSfile: logindlg.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 17:04:11 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _SVT_FILEDLG_HXX
+#include <svtools/filedlg.hxx>
+#endif
+#ifndef _FSYS_HXX
+#include <tools/fsys.hxx>
+#endif
+#ifndef _SV_MSGBOX_HXX
+#include <vcl/msgbox.hxx>
+#endif
+
+#ifndef UUI_IDS_HRC
+#include <ids.hrc>
+#endif
+#ifndef UUI_LOGINDLG_HRC
+#include <logindlg.hrc>
+#endif
+#ifndef UUI_LOGINDLG_HXX
+#include <logindlg.hxx>
+#endif
+
+#ifdef UNX
+#include <limits.h>
+#define _MAX_PATH PATH_MAX
+#endif
+
+// LoginDialog -------------------------------------------------------
+
+void LoginDialog::HideControls_Impl( USHORT nFlags )
+{
+ FASTBOOL bPathHide = FALSE;
+ FASTBOOL bErrorHide = FALSE;
+ FASTBOOL bAccountHide = FALSE;
+
+ if ( ( nFlags & LF_NO_PATH ) == LF_NO_PATH )
+ {
+ aPathFT.Hide();
+ aPathED.Hide();
+ aPathBtn.Hide();
+ bPathHide = TRUE;
+ }
+ else if ( ( nFlags & LF_PATH_READONLY ) == LF_PATH_READONLY )
+ {
+ aPathED.Hide();
+ aPathInfo.Show();
+ aPathBtn.Hide();
+ }
+
+ if ( ( nFlags & LF_NO_USERNAME ) == LF_NO_USERNAME )
+ {
+ aNameFT.Hide();
+ aNameED.Hide();
+ }
+ else if ( ( nFlags & LF_USERNAME_READONLY ) == LF_USERNAME_READONLY )
+ {
+ aNameED.Hide();
+ aNameInfo.Show();
+ }
+
+ if ( ( nFlags & LF_NO_PASSWORD ) == LF_NO_PASSWORD )
+ {
+ aPasswordFT.Hide();
+ aPasswordED.Hide();
+ }
+
+ if ( ( nFlags & LF_NO_SAVEPASSWORD ) == LF_NO_SAVEPASSWORD )
+ aSavePasswdBtn.Hide();
+
+ if ( ( nFlags & LF_NO_ERRORTEXT ) == LF_NO_ERRORTEXT )
+ {
+ aErrorInfo.Hide();
+ aErrorGB.Hide();
+ bErrorHide = TRUE;
+ }
+
+ if ( ( nFlags & LF_NO_ACCOUNT ) == LF_NO_ACCOUNT )
+ {
+ aAccountFT.Hide();
+ aAccountED.Hide();
+ bAccountHide = TRUE;
+ }
+
+ if ( bErrorHide )
+ {
+ long nOffset = aLoginGB.GetPosPixel().Y() -
+ aErrorGB.GetPosPixel().Y();
+ Point aNewPnt = aRequestInfo.GetPosPixel();
+ aNewPnt.Y() -= nOffset;
+ aRequestInfo.SetPosPixel( aNewPnt );
+ aNewPnt = aPathFT.GetPosPixel();
+ aNewPnt.Y() -= nOffset;
+ aPathFT.SetPosPixel( aNewPnt );
+ aNewPnt = aPathED.GetPosPixel();
+ aNewPnt.Y() -= nOffset;
+ aPathED.SetPosPixel( aNewPnt );
+ aNewPnt = aPathInfo.GetPosPixel();
+ aNewPnt.Y() -= nOffset;
+ aPathInfo.SetPosPixel( aNewPnt );
+ aNewPnt = aPathBtn.GetPosPixel();
+ aNewPnt.Y() -= nOffset;
+ aPathBtn.SetPosPixel( aNewPnt );
+ aNewPnt = aNameFT.GetPosPixel();
+ aNewPnt.Y() -= nOffset;
+ aNameFT.SetPosPixel( aNewPnt );
+ aNewPnt = aNameED.GetPosPixel();
+ aNewPnt.Y() -= nOffset;
+ aNameED.SetPosPixel( aNewPnt );
+ aNewPnt = aNameInfo.GetPosPixel();
+ aNewPnt.Y() -= nOffset;
+ aNameInfo.SetPosPixel( aNewPnt );
+ aNewPnt = aPasswordFT.GetPosPixel();
+ aNewPnt.Y() -= nOffset;
+ aPasswordFT.SetPosPixel( aNewPnt );
+ aNewPnt = aPasswordED.GetPosPixel();
+ aNewPnt.Y() -= nOffset;
+ aPasswordED.SetPosPixel( aNewPnt );
+ aNewPnt = aAccountFT.GetPosPixel();
+ aNewPnt.Y() -= nOffset;
+ aAccountFT.SetPosPixel( aNewPnt );
+ aNewPnt = aAccountED.GetPosPixel();
+ aNewPnt.Y() -= nOffset;
+ aAccountED.SetPosPixel( aNewPnt );
+ aNewPnt = aSavePasswdBtn.GetPosPixel();
+ aNewPnt.Y() -= nOffset;
+ aSavePasswdBtn.SetPosPixel( aNewPnt );
+ aNewPnt = aLoginGB.GetPosPixel();
+ aNewPnt.Y() -= nOffset;
+ aLoginGB.SetPosPixel( aNewPnt );
+ Size aNewSiz = GetSizePixel();
+ aNewSiz.Height() -= nOffset;
+ SetSizePixel( aNewSiz );
+ }
+
+ if ( bPathHide )
+ {
+ long nOffset = aNameED.GetPosPixel().Y() -
+ aPathED.GetPosPixel().Y();
+
+ Point aTmpPnt1 = aNameFT.GetPosPixel();
+ Point aTmpPnt2 = aPasswordFT.GetPosPixel();
+ aNameFT.SetPosPixel( aPathFT.GetPosPixel() );
+ aPasswordFT.SetPosPixel( aTmpPnt1 );
+ aAccountFT.SetPosPixel( aTmpPnt2 );
+ aTmpPnt1 = aNameED.GetPosPixel();
+ aTmpPnt2 = aPasswordED.GetPosPixel();
+ aNameED.SetPosPixel( aPathED.GetPosPixel() );
+ aPasswordED.SetPosPixel( aTmpPnt1 );
+ aAccountED.SetPosPixel( aTmpPnt2 );
+ aNameInfo.SetPosPixel( aPathInfo.GetPosPixel() );
+ aTmpPnt1 = aSavePasswdBtn.GetPosPixel();
+ aTmpPnt1.Y() -= nOffset;
+ aSavePasswdBtn.SetPosPixel( aTmpPnt1 );
+ Size aNewSz = aLoginGB.GetSizePixel();
+ aNewSz.Height() -= nOffset;
+ aLoginGB.SetSizePixel( aNewSz );
+ aNewSz = GetSizePixel();
+ aNewSz.Height() -= nOffset;
+ SetSizePixel( aNewSz );
+ }
+
+ if ( bAccountHide )
+ {
+ long nOffset = aAccountED.GetPosPixel().Y() - aPasswordED.GetPosPixel().Y();
+
+ Point aTmpPnt = aSavePasswdBtn.GetPosPixel();
+ aTmpPnt.Y() -= nOffset;
+ aSavePasswdBtn.SetPosPixel( aTmpPnt );
+ Size aNewSz = aLoginGB.GetSizePixel();
+ aNewSz.Height() -= nOffset;
+ aLoginGB.SetSizePixel( aNewSz );
+ aNewSz = GetSizePixel();
+ aNewSz.Height() -= nOffset;
+ SetSizePixel( aNewSz );
+ }
+};
+
+// -----------------------------------------------------------------------
+
+IMPL_LINK( LoginDialog, OKHdl_Impl, OKButton *, EMPTYARG )
+{
+ // trim the strings
+ aNameED.SetText( aNameED.GetText().EraseLeadingChars().
+ EraseTrailingChars() );
+ aPasswordED.SetText( aPasswordED.GetText().EraseLeadingChars().
+ EraseTrailingChars() );
+ EndDialog( RET_OK );
+ return 1;
+}
+
+// -----------------------------------------------------------------------
+
+IMPL_LINK( LoginDialog, PathHdl_Impl, PushButton *, EMPTYARG )
+{
+ PathDialog* pDlg = new PathDialog( this, WB_3DLOOK );
+ DirEntry aEntry;
+ aEntry.ToAbs();
+ pDlg->SetPath( aEntry.GetFull() );
+
+ if ( pDlg->Execute() == RET_OK )
+ aPathED.SetText( pDlg->GetPath() );
+
+ delete pDlg;
+ return 1;
+}
+
+// -----------------------------------------------------------------------
+
+LoginDialog::LoginDialog
+(
+ Window* pParent,
+ USHORT nFlags,
+ const String& rServer,
+ const String& rRealm,
+ ResMgr* pResMgr
+) :
+
+ ModalDialog( pParent, ResId( DLG_LOGIN, pResMgr ) ),
+
+ aErrorInfo ( this, ResId( INFO_LOGIN_ERROR ) ),
+ aErrorGB ( this, ResId( GB_LOGIN_ERROR ) ),
+ aRequestInfo ( this, ResId( INFO_LOGIN_REQUEST ) ),
+ aPathFT ( this, ResId( FT_LOGIN_PATH ) ),
+ aPathED ( this, ResId( ED_LOGIN_PATH ) ),
+ aPathInfo ( this, ResId( INFO_LOGIN_PATH ) ),
+ aPathBtn ( this, ResId( BTN_LOGIN_PATH ) ),
+ aNameFT ( this, ResId( FT_LOGIN_USERNAME ) ),
+ aNameED ( this, ResId( ED_LOGIN_USERNAME ) ),
+ aNameInfo ( this, ResId( INFO_LOGIN_USERNAME ) ),
+ aPasswordFT ( this, ResId( FT_LOGIN_PASSWORD ) ),
+ aPasswordED ( this, ResId( ED_LOGIN_PASSWORD ) ),
+ aAccountFT ( this, ResId( FT_LOGIN_ACCOUNT ) ),
+ aAccountED ( this, ResId( ED_LOGIN_ACCOUNT ) ),
+ aSavePasswdBtn ( this, ResId( CB_LOGIN_SAVEPASSWORD ) ),
+ aLoginGB ( this, ResId( GB_LOGIN_LOGIN ) ),
+ aOKBtn ( this, ResId( BTN_LOGIN_OK ) ),
+ aCancelBtn ( this, ResId( BTN_LOGIN_CANCEL ) ),
+ aHelpBtn ( this, ResId( BTN_LOGIN_HELP ) )
+
+{
+ // Einlog-Ort eintragen
+ String aServer;
+
+ if ( ( ( nFlags & LF_NO_ACCOUNT ) == LF_NO_ACCOUNT ) && rRealm.Len() )
+ {
+ aServer = rRealm;
+ ( ( aServer += ' ' ) += String( ResId( STR_LOGIN_AT ) ) ) += ' ';
+ }
+ aServer += rServer;
+ String aTxt = aRequestInfo.GetText();
+ aTxt.SearchAndReplaceAscii( "%1", aServer );
+ aRequestInfo.SetText( aTxt );
+
+ FreeResource();
+
+ aPathED.SetMaxTextLen( _MAX_PATH );
+ aNameED.SetMaxTextLen( _MAX_PATH );
+
+ aOKBtn.SetClickHdl( LINK( this, LoginDialog, OKHdl_Impl ) );
+ aPathBtn.SetClickHdl( LINK( this, LoginDialog, PathHdl_Impl ) );
+
+ HideControls_Impl( nFlags );
+};
+
+// -----------------------------------------------------------------------
+
+void LoginDialog::SetName( const String& rNewName )
+{
+ aNameED.SetText( rNewName );
+ aNameInfo.SetText( rNewName );
+}
+
+// -----------------------------------------------------------------------
+
+void LoginDialog::ClearPassword()
+{
+ aPasswordED.SetText( String() );
+
+ if ( aNameED.GetText().Len() == 0 )
+ aNameED.GrabFocus();
+ else
+ aPasswordED.GrabFocus();
+};
+
+// -----------------------------------------------------------------------
+
+void LoginDialog::ClearAccount()
+{
+ aAccountED.SetText( String() );
+ aAccountED.GrabFocus();
+};
+