567 lines
19 KiB
C++
567 lines
19 KiB
C++
|
/*************************************************************************
|
|||
|
*
|
|||
|
* $RCSfile: soldep.cxx,v $
|
|||
|
*
|
|||
|
* $Revision: 1.1 $
|
|||
|
*
|
|||
|
* last change: $Author: obo $ $Date: 2004-02-26 14:48:16 $
|
|||
|
*
|
|||
|
* 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): _______________________________________
|
|||
|
*
|
|||
|
*
|
|||
|
************************************************************************/
|
|||
|
|
|||
|
|
|||
|
#include <osl/file.hxx>
|
|||
|
#include <rtl/ustring.hxx>
|
|||
|
#include <tools/debug.hxx>
|
|||
|
#include <bootstrp/sstring.hxx>
|
|||
|
#include <svtools/filedlg.hxx>
|
|||
|
#include <tools/iparser.hxx>
|
|||
|
#include <tools/geninfo.hxx>
|
|||
|
#include <bootstrp/appdef.hxx>
|
|||
|
#include "depper.hxx"
|
|||
|
#include "soldep.hxx"
|
|||
|
#include "soldlg.hxx"
|
|||
|
#include "dtsodcmp.hrc"
|
|||
|
|
|||
|
IMPLEMENT_HASHTABLE_OWNER( SolIdMapper, ByteString, ULONG* );
|
|||
|
|
|||
|
ByteString sDelimiterLine("#==========================================================================");
|
|||
|
|
|||
|
|
|||
|
//
|
|||
|
// class SolDep
|
|||
|
//
|
|||
|
|
|||
|
/*****************************************************************************/
|
|||
|
SolDep::SolDep( Window* pBaseWindow )
|
|||
|
/*****************************************************************************/
|
|||
|
: Depper( pBaseWindow ),
|
|||
|
mpPrjDep( NULL )
|
|||
|
{
|
|||
|
mpSolIdMapper = new SolIdMapper( 63997 );
|
|||
|
mpStarWriter = new StarWriter( msSourceName, TRUE );
|
|||
|
|
|||
|
mpBaseWin->mpPopup->InsertSeparator();
|
|||
|
mpBaseWin->mpPopup->InsertItem( DEPPOPUP_READ_SOURCE, String::CreateFromAscii("Revert all changes") );
|
|||
|
mpBaseWin->mpPopup->InsertSeparator();
|
|||
|
mpBaseWin->mpPopup->InsertItem( DEPPOPUP_OPEN_SOURCE, String::CreateFromAscii("Open") );
|
|||
|
mpBaseWin->mpPopup->InsertItem( DEPPOPUP_WRITE_SOURCE, String::CreateFromAscii("Save") );
|
|||
|
// mpBaseWin->mpPopup->InsertItem( DEPPOPUP_CLOSE, String::CreateFromAscii("Close") );
|
|||
|
// mpBaseWin->mpPopup->InsertItem( DEPPOPUP_HELP, String::CreateFromAscii("Help") );
|
|||
|
}
|
|||
|
|
|||
|
/*****************************************************************************/
|
|||
|
SolDep::~SolDep()
|
|||
|
/*****************************************************************************/
|
|||
|
{
|
|||
|
delete mpSolIdMapper;
|
|||
|
delete mpStarWriter;
|
|||
|
delete mpPrjDep;
|
|||
|
delete pStandLst;
|
|||
|
}
|
|||
|
|
|||
|
/*****************************************************************************/
|
|||
|
void SolDep::Init()
|
|||
|
/*****************************************************************************/
|
|||
|
{
|
|||
|
InformationParser aParser;
|
|||
|
String sStandLst( GetDefStandList(), RTL_TEXTENCODING_ASCII_US );
|
|||
|
pStandLst = aParser.Execute( sStandLst );
|
|||
|
|
|||
|
if ( pStandLst ) {
|
|||
|
if ( GetVersion())
|
|||
|
ReadSource();
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/*****************************************************************************/
|
|||
|
void SolDep::Init( ByteString &rVersion, GenericInformationList *pVersionList )
|
|||
|
/*****************************************************************************/
|
|||
|
{
|
|||
|
if ( pVersionList )
|
|||
|
pStandLst = new GenericInformationList( *pVersionList );
|
|||
|
else {
|
|||
|
InformationParser aParser;
|
|||
|
String sStandLst( GetDefStandList(), RTL_TEXTENCODING_ASCII_US );
|
|||
|
pStandLst = aParser.Execute( sStandLst );
|
|||
|
}
|
|||
|
if ( pStandLst ) {
|
|||
|
msVersion = rVersion;
|
|||
|
ReadSource();
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/*****************************************************************************/
|
|||
|
BOOL SolDep::GetVersion()
|
|||
|
/*****************************************************************************/
|
|||
|
{
|
|||
|
SolSelectVersionDlg aVersionDlg( mpBaseWin, pStandLst );
|
|||
|
if ( aVersionDlg.Execute() == RET_OK ) {
|
|||
|
msVersion = aVersionDlg.GetVersion();
|
|||
|
return TRUE;
|
|||
|
}
|
|||
|
return FALSE;
|
|||
|
}
|
|||
|
|
|||
|
/*****************************************************************************/
|
|||
|
ObjectWin *SolDep::RemoveObject( USHORT nId, BOOL bDelete )
|
|||
|
/*****************************************************************************/
|
|||
|
{
|
|||
|
Prj* pPrj;
|
|||
|
|
|||
|
//hshtable auf stand halten
|
|||
|
ObjectWin* pWin = Depper::RemoveObject( nId, FALSE );
|
|||
|
if ( pWin )
|
|||
|
{
|
|||
|
ByteString aBodyText( pWin->GetBodyText() );
|
|||
|
if( pPrj = mpStarWriter->GetPrj( aBodyText ))
|
|||
|
{
|
|||
|
mpStarWriter->Remove( pPrj );
|
|||
|
//cleanup ist teuer...
|
|||
|
mpStarWriter->CleanUp();
|
|||
|
delete pPrj;
|
|||
|
}
|
|||
|
else
|
|||
|
DBG_ASSERT( FALSE, "project not found - write" );
|
|||
|
|
|||
|
mpSolIdMapper->Delete( aBodyText );
|
|||
|
if ( bDelete )
|
|||
|
delete pWin;
|
|||
|
return pWin;
|
|||
|
}
|
|||
|
else
|
|||
|
return NULL;
|
|||
|
}
|
|||
|
|
|||
|
/*****************************************************************************/
|
|||
|
ULONG SolDep::AddObject( ByteString& rBodyText, BOOL bInteract )
|
|||
|
/*****************************************************************************/
|
|||
|
{
|
|||
|
if ( bInteract )
|
|||
|
{
|
|||
|
SolNewProjectDlg aNewProjectDlg( mpBaseWin, DtSodResId( RID_SD_DIALOG_NEWPROJECT ));
|
|||
|
if ( aNewProjectDlg.Execute() )
|
|||
|
{
|
|||
|
rBodyText = ByteString( aNewProjectDlg.maEName.GetText(), RTL_TEXTENCODING_UTF8);
|
|||
|
//hashtable auf stand halten
|
|||
|
MyHashObject* pHObject;
|
|||
|
ULONG nObjectId = Depper::AddObject( rBodyText, FALSE );
|
|||
|
pHObject = new MyHashObject( nObjectId, ObjIdToPtr( nObjectId ));
|
|||
|
mpSolIdMapper->Insert( rBodyText, pHObject );
|
|||
|
|
|||
|
ByteString sTokenLine( aNewProjectDlg.maEShort.GetText(), RTL_TEXTENCODING_UTF8 );
|
|||
|
sTokenLine += '\t';
|
|||
|
sTokenLine += ByteString( aNewProjectDlg.maEName.GetText(), RTL_TEXTENCODING_UTF8 );
|
|||
|
sTokenLine += "\t:\t";
|
|||
|
|
|||
|
ByteString sDeps = ByteString( aNewProjectDlg.maEDeps.GetText(), RTL_TEXTENCODING_UTF8 );
|
|||
|
|
|||
|
if ( sDeps != "" )
|
|||
|
{
|
|||
|
USHORT i;
|
|||
|
ByteString sDepName;
|
|||
|
USHORT nToken = sDeps.GetTokenCount(' ');
|
|||
|
for ( i = 0 ; i < nToken ; i++)
|
|||
|
{
|
|||
|
sDepName = sDeps.GetToken( i, ' ' );
|
|||
|
sTokenLine += sDepName;
|
|||
|
sTokenLine +='\t';
|
|||
|
}
|
|||
|
}
|
|||
|
sTokenLine +="NULL";
|
|||
|
|
|||
|
mpStarWriter->InsertTokenLine( sTokenLine );
|
|||
|
mpStarWriter->InsertTokenLine( sDelimiterLine );
|
|||
|
|
|||
|
if ( sDeps != "" )
|
|||
|
{
|
|||
|
USHORT i;
|
|||
|
ByteString sDepName;
|
|||
|
ULONG nObjectId, nHashedId;
|
|||
|
MyHashObject* pHObject;
|
|||
|
USHORT nToken = sDeps.GetTokenCount(' ');
|
|||
|
for ( i = 0 ; i < nToken ; i++)
|
|||
|
{
|
|||
|
sDepName = sDeps.GetToken( i, ' ' );
|
|||
|
|
|||
|
pHObject = mpSolIdMapper->Find( sDepName );
|
|||
|
if ( !pHObject )
|
|||
|
{
|
|||
|
String sMessage;
|
|||
|
sMessage += String::CreateFromAscii("can't find ");
|
|||
|
sMessage += String( sDepName, RTL_TEXTENCODING_UTF8 );
|
|||
|
sMessage += String::CreateFromAscii(".\ndependency ignored");
|
|||
|
WarningBox aBox( mpBaseWin, WB_OK, sMessage);
|
|||
|
aBox.Execute();
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
nHashedId = pHObject->GetId();
|
|||
|
pHObject = mpSolIdMapper->Find( rBodyText );
|
|||
|
nObjectId = pHObject->GetId();
|
|||
|
Depper::AddConnector( nHashedId, nObjectId );
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
return nObjectId;
|
|||
|
}
|
|||
|
return 0;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
//hashtable auf stand halten
|
|||
|
MyHashObject* pHObject;
|
|||
|
ULONG nObjectId = Depper::AddObject( rBodyText, FALSE );
|
|||
|
pHObject = new MyHashObject( nObjectId, ObjIdToPtr( nObjectId ));
|
|||
|
mpSolIdMapper->Insert( rBodyText, pHObject );
|
|||
|
|
|||
|
return nObjectId;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/*****************************************************************************/
|
|||
|
USHORT SolDep::AddConnector( ObjectWin* pStartWin, ObjectWin* pEndWin )
|
|||
|
/*****************************************************************************/
|
|||
|
{
|
|||
|
// DBG_ASSERT( FALSE , "not yet" );
|
|||
|
ByteString sEndName = pEndWin->GetBodyText();
|
|||
|
ByteString sStartName = pStartWin->GetBodyText();
|
|||
|
|
|||
|
Prj* pPrj = mpStarWriter->GetPrj( sEndName );
|
|||
|
if ( pPrj )
|
|||
|
{
|
|||
|
pPrj->AddDependencies( sStartName );
|
|||
|
return Depper::AddConnector( pStartWin, pEndWin );
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
DBG_ASSERT( FALSE , "non existing Project" );
|
|||
|
return 1;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/*****************************************************************************/
|
|||
|
USHORT SolDep::RemoveConnector( ObjectWin* pStartWin, ObjectWin* pEndWin )
|
|||
|
/*****************************************************************************/
|
|||
|
{
|
|||
|
SByteStringList* pPrjDeps = NULL;
|
|||
|
ByteString sEndName = pEndWin->GetBodyText();
|
|||
|
ByteString sStartName = pStartWin->GetBodyText();
|
|||
|
|
|||
|
Prj* pPrj = mpStarWriter->GetPrj( sEndName );
|
|||
|
pPrjDeps = pPrj->GetDependencies( FALSE );
|
|||
|
if ( pPrjDeps )
|
|||
|
{
|
|||
|
ByteString* pString;
|
|||
|
ULONG nPrjDepsCount = pPrjDeps->Count();
|
|||
|
for ( ULONG j = nPrjDepsCount; j > 0; j-- )
|
|||
|
{
|
|||
|
pString = pPrjDeps->GetObject( j - 1 );
|
|||
|
if ( pString->GetToken( 0, '.') == sStartName )
|
|||
|
pPrjDeps->Remove( pString );
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
return Depper::RemoveConnector( pStartWin, pEndWin );
|
|||
|
}
|
|||
|
|
|||
|
/*****************************************************************************/
|
|||
|
void SolDep::RemoveAllObjects( ObjWinList* pObjLst )
|
|||
|
/*****************************************************************************/
|
|||
|
{
|
|||
|
|
|||
|
Depper::RemoveAllObjects( pObjLst );
|
|||
|
|
|||
|
if ( mpSolIdMapper )
|
|||
|
{
|
|||
|
delete mpSolIdMapper;
|
|||
|
mpSolIdMapper = NULL;
|
|||
|
}
|
|||
|
if ( mpStarWriter )
|
|||
|
{
|
|||
|
delete mpStarWriter;
|
|||
|
mpStarWriter = NULL;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/*****************************************************************************/
|
|||
|
ULONG SolDep::GetStart()
|
|||
|
/*****************************************************************************/
|
|||
|
{
|
|||
|
// DBG_ASSERT( FALSE , "soldep" );
|
|||
|
MyHashObject* pHObject = mpSolIdMapper->Find( "null_project" );
|
|||
|
|
|||
|
if ( !pHObject ) {
|
|||
|
ByteString sNullProject = ByteString( "null_project" );
|
|||
|
ULONG nObjectId = AddObject( sNullProject, FALSE );
|
|||
|
ObjIdToPtr( nObjectId )->SetViewMask( 1 );
|
|||
|
return nObjectId;
|
|||
|
}
|
|||
|
|
|||
|
return pHObject->GetId();
|
|||
|
}
|
|||
|
|
|||
|
/*****************************************************************************/
|
|||
|
USHORT SolDep::OpenSource()
|
|||
|
/*****************************************************************************/
|
|||
|
{
|
|||
|
if ( pStandLst ) {
|
|||
|
if ( GetVersion())
|
|||
|
return ReadSource();
|
|||
|
}
|
|||
|
return 0;
|
|||
|
}
|
|||
|
|
|||
|
/*****************************************************************************/
|
|||
|
USHORT SolDep::ReadSource()
|
|||
|
/*****************************************************************************/
|
|||
|
{
|
|||
|
mpBaseWin->EnablePaint( FALSE );
|
|||
|
ULONG nObjectId, nHashedId;
|
|||
|
ULONG i;
|
|||
|
MyHashObject* pHObject;
|
|||
|
ByteString* pStr;
|
|||
|
ObjectWin *pStartWin, *pEndWin;
|
|||
|
|
|||
|
RemoveAllObjects( pObjectList );
|
|||
|
delete mpSolIdMapper;
|
|||
|
delete mpStarWriter;
|
|||
|
|
|||
|
mpSolIdMapper = new SolIdMapper( 63997 );
|
|||
|
mpStarWriter = new StarWriter( pStandLst, msVersion, TRUE, getenv(SOURCEROOT) );
|
|||
|
|
|||
|
|
|||
|
ByteString sTitle( SOLDEPL_NAME );
|
|||
|
if ( mpStarWriter->GetMode() == STAR_MODE_SINGLE_PARSE ) {
|
|||
|
sTitle += ByteString( " - mode: single file [" );
|
|||
|
sTitle += (ByteString) mpStarWriter->GetName();
|
|||
|
sTitle += ByteString( "]" );
|
|||
|
}
|
|||
|
else if ( mpStarWriter->GetMode() == STAR_MODE_MULTIPLE_PARSE ) {
|
|||
|
sTitle += ByteString( " - mode: multiple files [" );
|
|||
|
sTitle += ByteString(getenv(SOURCEROOT));
|
|||
|
sTitle += ByteString( "]" );
|
|||
|
}
|
|||
|
SetTitle( String( sTitle, RTL_TEXTENCODING_UTF8) );
|
|||
|
|
|||
|
ULONG nCount = mpStarWriter->Count();
|
|||
|
for ( i=0; i<nCount; i++ )
|
|||
|
{
|
|||
|
Prj *pPrj = mpStarWriter->GetObject(i);
|
|||
|
ByteString sProjectName = pPrj->GetProjectName();
|
|||
|
nObjectId = AddObject( sProjectName, FALSE );
|
|||
|
ObjIdToPtr( nObjectId )->SetViewMask( 1 );
|
|||
|
}
|
|||
|
for ( i=0; i<nCount; i++ )
|
|||
|
{
|
|||
|
Prj *pPrj = mpStarWriter->GetObject(i);
|
|||
|
SByteStringList *pLst = pPrj->GetDependencies( FALSE );
|
|||
|
if ( pLst )
|
|||
|
{
|
|||
|
ULONG nDepCount = pLst->Count();
|
|||
|
for ( ULONG m=0; m<nDepCount; m++)
|
|||
|
{
|
|||
|
pStr = pLst->GetObject(m);
|
|||
|
pHObject = mpSolIdMapper->Find( *pStr );
|
|||
|
if ( !pHObject )
|
|||
|
{
|
|||
|
// create new prj
|
|||
|
Prj *pNewPrj = new Prj( *pStr );
|
|||
|
ByteString sNewProjectName = pNewPrj->GetProjectName();
|
|||
|
nObjectId = AddObject( sNewProjectName, FALSE );
|
|||
|
pHObject = mpSolIdMapper->Find( *pStr );
|
|||
|
ObjIdToPtr( nObjectId )->SetViewMask( 2 );
|
|||
|
}
|
|||
|
|
|||
|
nHashedId = pHObject->GetId();
|
|||
|
ByteString sF_Os2 = pPrj->GetProjectName();
|
|||
|
pStr = &sF_Os2;
|
|||
|
pHObject = mpSolIdMapper->Find( *pStr );
|
|||
|
nObjectId = pHObject->GetId();
|
|||
|
pStartWin = ObjIdToPtr( nHashedId );
|
|||
|
pEndWin = ObjIdToPtr( nObjectId );
|
|||
|
// Depper::AddConnector( nHashedId, nObjectId );
|
|||
|
Depper::AddConnector( pStartWin, pEndWin );
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
AutoArrange( GetStart(), 0 );
|
|||
|
mpBaseWin->EnablePaint( TRUE );
|
|||
|
return 0;
|
|||
|
}
|
|||
|
|
|||
|
/*****************************************************************************/
|
|||
|
USHORT SolDep::WriteSource()
|
|||
|
/*****************************************************************************/
|
|||
|
{
|
|||
|
USHORT nMode = mpStarWriter->GetMode();
|
|||
|
if ( nMode == STAR_MODE_SINGLE_PARSE ) {
|
|||
|
ByteString sFileName = mpStarWriter->GetName();
|
|||
|
if ( sFileName.Len()) {
|
|||
|
mpStarWriter->Write( String( sFileName, RTL_TEXTENCODING_UTF8) );
|
|||
|
mpStarWriter->RemoveProject( ByteString( "null_project"));
|
|||
|
}
|
|||
|
}
|
|||
|
else if ( nMode == STAR_MODE_MULTIPLE_PARSE ) {
|
|||
|
//*OBO*
|
|||
|
//String sRoot = mpStarWriter->GetSourceRoot();
|
|||
|
//nicht mehr unterst<73>tzt mpStarWriter->GetSourceRoot()
|
|||
|
String sRoot = String(getenv(SOURCEROOT), RTL_TEXTENCODING_UTF8);
|
|||
|
ByteString sFileName = mpStarWriter->GetName();
|
|||
|
DirEntry aEntry( sFileName );
|
|||
|
aEntry.ToAbs();
|
|||
|
aEntry = aEntry.GetPath().GetPath().GetPath();
|
|||
|
|
|||
|
if ( sRoot.Len()) {
|
|||
|
mpStarWriter->RemoveProject( ByteString( "null_project"));
|
|||
|
mpStarWriter->WriteMultiple( sRoot );
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
return 1;
|
|||
|
}
|
|||
|
|
|||
|
/*****************************************************************************/
|
|||
|
BOOL SolDep::ViewContent( ByteString& rObjectName )
|
|||
|
/*****************************************************************************/
|
|||
|
{
|
|||
|
pFocusWin = NULL;
|
|||
|
for ( ULONG i = 0; i < pObjectList->Count() && !pFocusWin; i++ )
|
|||
|
if ( pObjectList->GetObject( i )->HasFocus())
|
|||
|
pFocusWin = pObjectList->GetObject( i );
|
|||
|
|
|||
|
if ( mpPrjDep )
|
|||
|
delete mpPrjDep;
|
|||
|
|
|||
|
mpGraphWin->Hide();
|
|||
|
mpBaseWin->Hide();
|
|||
|
|
|||
|
mpPrjDep = new PrjDep( mpProcessWin );
|
|||
|
mpPrjDep->SetCloseHdl( LINK( this, SolDep, PrjCloseHdl ));
|
|||
|
|
|||
|
mpProcessWin->Resize();
|
|||
|
|
|||
|
return mpPrjDep->Init( rObjectName, mpStarWriter );
|
|||
|
}
|
|||
|
|
|||
|
/*****************************************************************************/
|
|||
|
IMPL_LINK( SolDep, PrjCloseHdl, PrjDep *, pPrjDep )
|
|||
|
/*****************************************************************************/
|
|||
|
{
|
|||
|
delete mpPrjDep;
|
|||
|
mpPrjDep = NULL;
|
|||
|
|
|||
|
mpGraphWin->Show();
|
|||
|
mpBaseWin->Show();
|
|||
|
|
|||
|
if ( pFocusWin ) {
|
|||
|
pFocusWin->GrabFocus();
|
|||
|
pFocusWin = NULL;
|
|||
|
}
|
|||
|
|
|||
|
return 0;
|
|||
|
}
|
|||
|
|
|||
|
/*****************************************************************************/
|
|||
|
USHORT SolDep::CloseWindow()
|
|||
|
/*****************************************************************************/
|
|||
|
{
|
|||
|
|
|||
|
((SystemWindow*)mpProcessWin)->Close();
|
|||
|
return 0;
|
|||
|
}
|
|||
|
|
|||
|
/*****************************************************************************/
|
|||
|
void SolDep::ShowHelp()
|
|||
|
/*****************************************************************************/
|
|||
|
{
|
|||
|
SvFileStream aHelpFile( String::CreateFromAscii( "g:\\soldep.hlp" ), STREAM_READ );
|
|||
|
String aHelpText;
|
|||
|
String aGetStr;
|
|||
|
ByteString sRead;
|
|||
|
|
|||
|
if ( aHelpFile.IsOpen() )
|
|||
|
{
|
|||
|
while ( aHelpFile.ReadLine( sRead ) )
|
|||
|
{
|
|||
|
aGetStr = String( sRead, RTL_TEXTENCODING_UTF8 );
|
|||
|
aHelpText += aGetStr;
|
|||
|
aHelpText += String::CreateFromAscii("\n");
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
aHelpText = String::CreateFromAscii("No Helpfile found.");
|
|||
|
|
|||
|
SolHelpDlg aHelpDlg( mpBaseWin, DtSodResId( RID_SD_DIALOG_HELP ));
|
|||
|
aHelpDlg.maMLEHelp.SetText( aHelpText );
|
|||
|
aHelpDlg.maMLEHelp.SetReadOnly();
|
|||
|
aHelpDlg.maMLEHelp.EnableFocusSelectionHide( TRUE );
|
|||
|
aHelpDlg.Execute();
|
|||
|
}
|
|||
|
|
|||
|
/*****************************************************************************/
|
|||
|
void SolDep::test()
|
|||
|
/*****************************************************************************/
|
|||
|
{
|
|||
|
FileDialog aTestDlg( mpBaseWin, WB_STDDIALOG );
|
|||
|
aTestDlg.SetDefaultExt( String::CreateFromAscii( "lst" ));
|
|||
|
|
|||
|
if ( aTestDlg.Execute() )
|
|||
|
{
|
|||
|
WarningBox aBox( mpBaseWin, WB_OK, aTestDlg.GetPath());
|
|||
|
aBox.Execute();
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|