Milán Major

netscape-revival

1 branch
Code

lib/mac/VText/V_PowerPlant_Mods/LTextSelection.h

//	===========================================================================
//	LTextSelection.h				©1994 Metrowerks Inc. All rights reserved.
//	===========================================================================

#pragma	once

#include	<LSelection.h>
#include	<LTextEngine.h>

class	LSelectableItem;
class	LTextModel;
class	LAction;
class	LAETypingAction;
class	LStyleSet;

class	LTextSelection
			:	public	LSelection
{
public:
	enum {class_ID = kPPCID_TextSelection};

//-						LTextSelection(LTextEngine *inTextEngine);
						LTextSelection();
	virtual				~LTextSelection();
	virtual ClassIDT	GetClassID() const {return class_ID;}
#ifndef	PP_No_ObjectStreaming
	virtual void		WriteObject(LStream &inStream) const;
	virtual void		ReadObject(LStream &inStream);
#endif
	
	virtual	LTextModel *		GetTextModel(void);
	virtual LTextEngine *		GetTextEngine(void);
	virtual	LAETypingAction *	GetTypingAction(void);
	virtual void		SetTextModel(LTextModel *inTextModel);
	virtual void		SetTextEngine(LTextEngine *inTextEngine);
	virtual void		SetTypingAction(LAETypingAction *inAction);
	
	virtual TextRangeT	GetSelectionRange(void) const;
	virtual void		SetSelectionRange(const TextRangeT &inRange);

	virtual void		SelectDiscontinuous(LSelectableItem *inItem);
	virtual void		AddFlavorTypesTo(LDataTube *inTube) const;
	virtual Boolean		SendFlavorTo(FlavorType inFlavor, LDataTube *inTube) const;

	virtual void		GetPresentHiliteRgn(Boolean inAsActive, RgnHandle ioRegion) const;
	virtual void		MakeRegion(Point inOrigin, RgnHandle *ioRgn) const;
	virtual Boolean		PointInRepresentation(Point inWhere) const;
	virtual LAction *	MakePasteAction(void);

	virtual void		UndoAddOldData(LAEAction *inAction);

	virtual	LStyleSet *	GetCurrentStyle(void);
	virtual	LStyleSet *	GetPendingStyle(void);
	virtual	void		SetPendingStyle(LStyleSet *inStyle);
	virtual void		SelectionAboutToChange(void);

protected:
	
	LTextEngine			*mTextEngine;
	LTextModel			*mTextModel;
	LAETypingAction		*mTyping;

	LStyleSet			*mPendingStyle,
						*mLastCurrentStyle;
};