/**************************************************************
 * 
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 * 
 *************************************************************/



// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_tools.hxx"

#define _TOOLS_TOOLSIN_CXX

#include <string.h>
#include <tools/shl.hxx>
#include <tools/debug.hxx>
#include <toolsin.hxx>

#if defined WNT || defined OS2
#include <dll.hxx>
#endif

void ImplDeleteCharTabData();

// =======================================================================

TOOLSINDATA* ImplGetToolsInData()
{
	TOOLSINDATA** ppData = (TOOLSINDATA**)GetAppData( SHL_TOOLS );
	if ( !(*ppData) )
	{
		TOOLSINDATA* pData = new TOOLSINDATA;
		memset( pData, 0, sizeof( TOOLSINDATA ) );
		*ppData = pData;
	}

	return *ppData;
}

// =======================================================================

void InitTools()
{
	DBG_DEBUGSTART();
}

// -----------------------------------------------------------------------

void DeInitTools()
{
	TOOLSINDATA**	ppData = (TOOLSINDATA**)GetAppData( SHL_TOOLS );
	TOOLSINDATA*	pData = *ppData;

	if ( pData )
	{
		ImplDeleteCharTabData();
		delete pData;
		*ppData = NULL;
	}

	DBG_DEBUGEND();
}

// -----------------------------------------------------------------------

void GlobalDeInitTools()
{
	DBG_GLOBALDEBUGEND();

#if defined WNT
	ImpDeInitWinTools();
#endif
#ifdef OS2
	ImpDeInitOS2Tools();
#endif
}