cws tl79: #i110053# remove old svtools LoginDialog

This commit is contained in:
Thomas Lange [tl] 2010-03-16 11:00:53 +01:00
parent f20bccf295
commit f72097df91
5 changed files with 1 additions and 690 deletions

View file

@ -1,118 +0,0 @@
/*************************************************************************
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* Copyright 2000, 2010 Oracle and/or its affiliates.
*
* OpenOffice.org - a multi-platform office productivity suite
*
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License version 3
* only, as published by the Free Software Foundation.
*
* OpenOffice.org 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 version 3 for more details
* (a copy is included in the LICENSE file that accompanied this code).
*
* You should have received a copy of the GNU Lesser General Public License
* version 3 along with OpenOffice.org. If not, see
* <http://www.openoffice.org/license.html>
* for a copy of the LGPLv3 License.
*
************************************************************************/
#ifndef _SVTOOLS_LOGINDLG_HXX_
#define _SVTOOLS_LOGINDLG_HXX_
#include "svtools/svtdllapi.h"
#include <svtools/stdctrl.hxx>
#ifndef _SV_BUTTON_HXX
#include <vcl/button.hxx>
#endif
#include <vcl/dialog.hxx>
#include <vcl/edit.hxx>
#include <vcl/fixed.hxx>
//============================================================================
#define LF_NO_PATH 0x0001 // hide "path"
#define LF_NO_USERNAME 0x0002 // hide "name"
#define LF_NO_PASSWORD 0x0004 // hide "password"
#define LF_NO_SAVEPASSWORD 0x0008 // hide "save password"
#define LF_NO_ERRORTEXT 0x0010 // hide message
#define LF_PATH_READONLY 0x0020 // "path" readonly
#define LF_USERNAME_READONLY 0x0040 // "name" readonly
#define LF_NO_ACCOUNT 0x0080 // hide "account"
//............................................................................
namespace svt
{
//............................................................................
//============================================================================
class SVT_DLLPUBLIC LoginDialog : public ModalDialog
{
FixedInfo aErrorInfo;
FixedLine aErrorGB;
FixedInfo aRequestInfo;
FixedText aPathFT;
Edit aPathED;
FixedInfo aPathInfo;
PushButton aPathBtn;
FixedText aNameFT;
Edit aNameED;
FixedInfo aNameInfo;
FixedText aPasswordFT;
Edit aPasswordED;
FixedText aAccountFT;
Edit aAccountED;
CheckBox aSavePasswdBtn;
FixedLine aLoginGB;
OKButton aOKBtn;
CancelButton aCancelBtn;
HelpButton aHelpBtn;
SVT_DLLPRIVATE void HideControls_Impl( USHORT nFlags );
DECL_DLLPRIVATE_LINK( OKHdl_Impl, OKButton * );
DECL_DLLPRIVATE_LINK( PathHdl_Impl, PushButton * );
public:
LoginDialog( Window* pParent, USHORT nFlags,
const String& rServer, const String* pRealm = NULL );
String GetPath() const { return aPathED.GetText(); }
void SetPath( const String& rNewPath )
{ aPathED.SetText( rNewPath );
aPathInfo.SetText( rNewPath );}
String GetName() const { return aNameED.GetText(); }
void SetName( const String& rNewName );
String GetPassword() const { return aPasswordED.GetText(); }
void SetPassword( const String& rNew )
{ aPasswordED.SetText( rNew ); }
String GetAccount() const { return aAccountED.GetText(); }
void SetAccount( const String& rNew )
{ aAccountED.SetText( rNew ); }
BOOL IsSavePassword() const
{ return aSavePasswdBtn.IsChecked(); }
void SetSavePassword( BOOL bSave )
{ aSavePasswdBtn.Check( bSave ); }
void SetSavePasswordText( const String& rTxt )
{ aSavePasswdBtn.SetText( rTxt ); }
void SetErrorText( const String& rTxt )
{ aErrorInfo.SetText( rTxt ); }
void SetLoginRequestText( const String& rTxt )
{ aRequestInfo.SetText( rTxt ); }
void ClearPassword();
void ClearAccount();
};
//............................................................................
} // namespace svt
//............................................................................
#endif // _SVTOOLS_LOGINDLG_HXX_

View file

@ -1,312 +0,0 @@
/*************************************************************************
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* Copyright 2000, 2010 Oracle and/or its affiliates.
*
* OpenOffice.org - a multi-platform office productivity suite
*
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License version 3
* only, as published by the Free Software Foundation.
*
* OpenOffice.org 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 version 3 for more details
* (a copy is included in the LICENSE file that accompanied this code).
*
* You should have received a copy of the GNU Lesser General Public License
* version 3 along with OpenOffice.org. If not, see
* <http://www.openoffice.org/license.html>
* for a copy of the LGPLv3 License.
*
************************************************************************/
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svtools.hxx"
#include <filedlg.hxx>
#include <vcl/msgbox.hxx>
#include <svtools/logindlg.hxx>
#ifndef _SVTOOLS_LOGINDLG_HRC_
#include "logindlg.hrc"
#endif
#ifndef _SVTOOLS_HRC
#include <svl/svtools.hrc>
#endif
#include <svtools/svtdata.hxx>
#ifdef UNX
#include <limits.h>
#define _MAX_PATH PATH_MAX
#endif
// LoginDialog -------------------------------------------------------
//............................................................................
namespace svt
{
//............................................................................
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 = 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 = 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* pRealm
) :
ModalDialog( pParent, SvtResId( DLG_LOGIN ) ),
aErrorInfo ( this, SvtResId( INFO_LOGIN_ERROR ) ),
aErrorGB ( this, SvtResId( GB_LOGIN_ERROR ) ),
aRequestInfo ( this, SvtResId( INFO_LOGIN_REQUEST ) ),
aPathFT ( this, SvtResId( FT_LOGIN_PATH ) ),
aPathED ( this, SvtResId( ED_LOGIN_PATH ) ),
aPathInfo ( this, SvtResId( INFO_LOGIN_PATH ) ),
aPathBtn ( this, SvtResId( BTN_LOGIN_PATH ) ),
aNameFT ( this, SvtResId( FT_LOGIN_USERNAME ) ),
aNameED ( this, SvtResId( ED_LOGIN_USERNAME ) ),
aNameInfo ( this, SvtResId( INFO_LOGIN_USERNAME ) ),
aPasswordFT ( this, SvtResId( FT_LOGIN_PASSWORD ) ),
aPasswordED ( this, SvtResId( ED_LOGIN_PASSWORD ) ),
aAccountFT ( this, SvtResId( FT_LOGIN_ACCOUNT ) ),
aAccountED ( this, SvtResId( ED_LOGIN_ACCOUNT ) ),
aSavePasswdBtn ( this, SvtResId( CB_LOGIN_SAVEPASSWORD ) ),
aLoginGB ( this, SvtResId( GB_LOGIN_LOGIN ) ),
aOKBtn ( this, SvtResId( BTN_LOGIN_OK ) ),
aCancelBtn ( this, SvtResId( BTN_LOGIN_CANCEL ) ),
aHelpBtn ( this, SvtResId( BTN_LOGIN_HELP ) )
{
// Einlog-Ort eintragen
String aServer;
if ( ( ( nFlags & LF_NO_ACCOUNT ) == LF_NO_ACCOUNT ) && pRealm && pRealm->Len() )
{
aServer = *pRealm;
( ( aServer += ' ' ) += String( SvtResId( 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 ( 0 == aNameED.GetText().Len() )
aNameED.GrabFocus();
else
aPasswordED.GrabFocus();
};
// -----------------------------------------------------------------------
void LoginDialog::ClearAccount()
{
aAccountED.SetText( String() );
aAccountED.GrabFocus();
};
//............................................................................
} // namespace svt
//............................................................................

View file

@ -1,57 +0,0 @@
/*************************************************************************
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* Copyright 2000, 2010 Oracle and/or its affiliates.
*
* OpenOffice.org - a multi-platform office productivity suite
*
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License version 3
* only, as published by the Free Software Foundation.
*
* OpenOffice.org 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 version 3 for more details
* (a copy is included in the LICENSE file that accompanied this code).
*
* You should have received a copy of the GNU Lesser General Public License
* version 3 along with OpenOffice.org. If not, see
* <http://www.openoffice.org/license.html>
* for a copy of the LGPLv3 License.
*
************************************************************************/
#ifndef _SVTOOLS_LOGINDLG_HRC_
#define _SVTOOLS_LOGINDLG_HRC_
//============================================================================
#define INFO_LOGIN_ERROR 10
#define GB_LOGIN_ERROR 11
#define INFO_LOGIN_REQUEST 20
#define FT_LOGIN_PATH 21
#define ED_LOGIN_PATH 22
#define INFO_LOGIN_PATH 23
#define BTN_LOGIN_PATH 24
#define FT_LOGIN_USERNAME 25
#define ED_LOGIN_USERNAME 26
#define INFO_LOGIN_USERNAME 27
#define FT_LOGIN_PASSWORD 28
#define ED_LOGIN_PASSWORD 29
#define FT_LOGIN_ACCOUNT 30
#define ED_LOGIN_ACCOUNT 31
#define CB_LOGIN_SAVEPASSWORD 32
#define GB_LOGIN_LOGIN 33
#define BTN_LOGIN_OK 50
#define BTN_LOGIN_CANCEL 51
#define BTN_LOGIN_HELP 52
#define STR_LOGIN_AT 60
#endif // _SVTOOLS_LOGINDLG_HRC_

View file

@ -1,200 +0,0 @@
/*************************************************************************
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* Copyright 2000, 2010 Oracle and/or its affiliates.
*
* OpenOffice.org - a multi-platform office productivity suite
*
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License version 3
* only, as published by the Free Software Foundation.
*
* OpenOffice.org 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 version 3 for more details
* (a copy is included in the LICENSE file that accompanied this code).
*
* You should have received a copy of the GNU Lesser General Public License
* version 3 along with OpenOffice.org. If not, see
* <http://www.openoffice.org/license.html>
* for a copy of the LGPLv3 License.
*
************************************************************************/
#ifndef _SVTOOLS_HRC
#include <svl/svtools.hrc>
#endif
#ifndef _SVTOOLS_LOGINDLG_HRC_
#include "logindlg.hrc"
#endif
ModalDialog DLG_LOGIN
{
// HelpId = HID_DLG_LOGIN ;
Border = TRUE ;
Moveable = TRUE ;
OutputSize = TRUE ;
SVLook = TRUE ;
Size = MAP_APPFONT ( 265 , 158 ) ;
FixedText INFO_LOGIN_ERROR
{
Pos = MAP_APPFONT ( 12 , 14 ) ;
Size = MAP_APPFONT ( 185 , 18 ) ;
WordBreak = TRUE ;
};
FixedLine GB_LOGIN_ERROR
{
Pos = MAP_APPFONT ( 6 , 3 ) ;
Size = MAP_APPFONT ( 197 , 8 ) ;
Text [ en-US ] = "Message from server" ;
};
FixedText INFO_LOGIN_REQUEST
{
Pos = MAP_APPFONT ( 12 , 55 ) ;
Size = MAP_APPFONT ( 185 , 18 ) ;
WordBreak = TRUE ;
Text [ en-US ] = "Please enter user name and password for %1." ;
};
FixedText FT_LOGIN_PATH
{
Pos = MAP_APPFONT ( 12 , 77 ) ;
Size = MAP_APPFONT ( 57 , 10 ) ;
Text [ en-US ] = "~Path" ;
};
Edit ED_LOGIN_PATH
{
Border = TRUE ;
Pos = MAP_APPFONT ( 72 , 76 ) ;
Size = MAP_APPFONT ( 108 , 12 ) ;
};
FixedText INFO_LOGIN_PATH
{
Hide = TRUE ;
Pos = MAP_APPFONT ( 72 , 77 ) ;
Size = MAP_APPFONT ( 125 , 10 ) ;
};
PushButton BTN_LOGIN_PATH
{
Pos = MAP_APPFONT ( 183 , 75 ) ;
Size = MAP_APPFONT ( 14 , 14 ) ;
Text = "~..." ;
};
FixedText FT_LOGIN_USERNAME
{
Pos = MAP_APPFONT ( 12 , 92 ) ;
Size = MAP_APPFONT ( 57 , 10 ) ;
Text [ en-US ] = "~User name" ;
};
Edit ED_LOGIN_USERNAME
{
Border = TRUE ;
Pos = MAP_APPFONT ( 72 , 91 ) ;
Size = MAP_APPFONT ( 125 , 12 ) ;
};
FixedText INFO_LOGIN_USERNAME
{
Hide = TRUE ;
Pos = MAP_APPFONT ( 72 , 92 ) ;
Size = MAP_APPFONT ( 125 , 10 ) ;
};
FixedText FT_LOGIN_PASSWORD
{
Pos = MAP_APPFONT ( 12 , 107 ) ;
Size = MAP_APPFONT ( 57 , 10 ) ;
Text [ en-US ] = "Pass~word" ;
};
Edit ED_LOGIN_PASSWORD
{
Border = TRUE ;
Pos = MAP_APPFONT ( 72 , 106 ) ;
Size = MAP_APPFONT ( 125 , 12 ) ;
PassWord = TRUE ;
};
FixedText FT_LOGIN_ACCOUNT
{
Pos = MAP_APPFONT ( 12 , 122 ) ;
Size = MAP_APPFONT ( 57 , 10 ) ;
Text [ en-US ] = "A~ccount";
};
Edit ED_LOGIN_ACCOUNT
{
Border = TRUE ;
Pos = MAP_APPFONT ( 72 , 121 ) ;
Size = MAP_APPFONT ( 125 , 12 ) ;
PassWord = TRUE ;
};
CheckBox CB_LOGIN_SAVEPASSWORD
{
Pos = MAP_APPFONT ( 12 , 136 ) ;
Size = MAP_APPFONT ( 185 , 10 ) ;
Text [ en-US ] = "~Save password" ;
};
FixedLine GB_LOGIN_LOGIN
{
Pos = MAP_APPFONT ( 7 , 44 ) ;
Size = MAP_APPFONT ( 197 , 8 ) ;
Text [ en-US ] = "Log in" ;
};
OKButton BTN_LOGIN_OK
{
Pos = MAP_APPFONT ( 209 , 6 ) ;
Size = MAP_APPFONT ( 50 , 14 ) ;
DefButton = TRUE ;
};
CancelButton BTN_LOGIN_CANCEL
{
Pos = MAP_APPFONT ( 209 , 23 ) ;
Size = MAP_APPFONT ( 50 , 14 ) ;
};
HelpButton BTN_LOGIN_HELP
{
Pos = MAP_APPFONT ( 209 , 43 ) ;
Size = MAP_APPFONT ( 50 , 14 ) ;
};
String STR_LOGIN_AT
{
Text [ en-US ] = "to " ;
};
Text [ en-US ] = "User Name and Password Required" ;
};

4
svtools/source/dialogs/makefile.mk Normal file → Executable file
View file

@ -44,7 +44,6 @@ SRC1FILES= filedlg2.src \
prnsetup.src \
printdlg.src \
colrdlg.src \
logindlg.src \
addresstemplate.src \
wizardmachine.src
@ -69,8 +68,7 @@ SLOFILES= \
$(SLO)$/colrdlg.obj \
$(SLO)$/property.obj \
$(SLO)$/wizdlg.obj \
$(SLO)$/mcvmath.obj \
$(SLO)$/logindlg.obj
$(SLO)$/mcvmath.obj
# --- Targets ------------------------------------------------------