Milán Major

netscape-revival

1 branch
Code

lib/mac/VText/Core/User_Interface/VEditField.cp

//	===========================================================================
//	VEditField
//
//	Copyright 1996 ViviStar Consulting.
//	===========================================================================

#ifdef PowerPlant_PCH
#include PowerPlant_PCH
#endif

#include "VEditField.h"
#include <VTSMProxy.h>

/*
	Thanks to Doug Watkins for contributing this class
*/

VEditField::VEditField(LStream* inStream)
	:	LEditField(inStream)
{
	mProxy = NULL;

	Try_ {
		Int32 theResult;
		 ::Gestalt(gestaltTSMgrAttr, &theResult);
		
        OSErr theErr = ::Gestalt(gestaltTSMgrVersion, &theResult);
        ThrowIfOSErr_(theErr);

		if (theResult >= 1) {
			theErr = ::Gestalt(gestaltTSMTEAttr, &theResult);
	        ThrowIfOSErr_(theErr);
			
			if ((theResult >> gestaltTSMTEPresent) & 1)	
				mProxy = WTSMManager::MakeTSMTEProxy(mTextEditH);
		}
	} Catch_(inErr) {
		// Failure just means that this edit field won't support TSMTE
	} EndCatch_;
}

void VEditField::BeTarget(void)
{
	FocusDraw();
	
	inherited::BeTarget();
	
	if (mProxy)
		mProxy->Activate();
}

void VEditField::DontBeTarget(void)
{
	FocusDraw();
	
	if (mProxy)
		mProxy->Deactivate();

	inherited::DontBeTarget();
}