/************************************************************************* * * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: futext.hxx,v $ * * $Revision: 1.7 $ * * last change: $Author: rt $ $Date: 2005-12-14 17:18:22 $ * * The Contents of this file are made available subject to * the terms of GNU Lesser General Public License Version 2.1. * * * GNU Lesser General Public License Version 2.1 * ============================================= * Copyright 2005 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 * ************************************************************************/ #ifndef SD_FU_TEXT_HXX #define SD_FU_TEXT_HXX #ifndef _EDITDATA_HXX #include #endif #ifndef SD_FU_CONSTRUCT_HXX #include "fuconstr.hxx" #endif struct StyleRequestData; class SdrTextObj; class OutlinerParaObject; namespace sd { /************************************************************************* |* |* Basisklasse fuer Textfunktionen |* \************************************************************************/ class FuText : public FuConstruct { public: TYPEINFO(); static FunctionReference Create( ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq ); virtual void DoExecute( SfxRequest& rReq ); virtual BOOL KeyInput(const KeyEvent& rKEvt); virtual BOOL MouseMove(const MouseEvent& rMEvt); virtual BOOL MouseButtonUp(const MouseEvent& rMEvt); virtual BOOL MouseButtonDown(const MouseEvent& rMEvt); virtual BOOL Command(const CommandEvent& rCEvt); virtual BOOL RequestHelp(const HelpEvent& rHEvt); virtual void ReceiveRequest(SfxRequest& rReq); virtual void DoubleClick(const MouseEvent& rMEvt); virtual void Activate(); // Function aktivieren virtual void Deactivate(); // Function deaktivieren void SetInEditMode(const MouseEvent& rMEvt, BOOL bQuickDrag); BOOL DeleteDefaultText(); BOOL RestoreDefaultText(); void ObjectChanged(); SdrTextObj* GetTextObj() { return pTextObj; } void SetSpellOptions( ULONG& rCntrl ); DECL_LINK(SpellError, void* ); // #97016# virtual SdrObject* CreateDefaultObject(const sal_uInt16 nID, const Rectangle& rRectangle); /** is called when the currenct function should be aborted.

This is used when a function gets a KEY_ESCAPE but can also be called directly. @returns true if a active function was aborted */ virtual bool cancel(); /** Call this method to tell a text function that the specified object is not in the edit mode anymore, respectively will not be in a short time. If this method is not called and the edit mode of the object is canceled from the outside, i.e. not by the text function itself, the text function the pointer to the text object is not valid anymore and must not be accessed.

A better solution would be to make the text function a listener at the text object when the former starts the editing mode of the later. This, however, would require changes beyond the scope of a bug fix, which brought up the problem (#111862#).

@param pTextObject The text object which is not being edited anymore. When this object is not the one used by this text function the call is silentyl ignored. */ void TextEditingHasEnded (const SdrTextObj* pTextObject); protected: FuText (ViewShell* pViewSh, ::sd::Window* pWin, ::sd::View* pView, SdDrawDocument* pDoc, SfxRequest& rReq); virtual void disposing(); SdrTextObj* pTextObj; Link aOldLink; BOOL bFirstObjCreated; SfxRequest& rRequest; private: // #97016# void ImpSetAttributesForNewTextObject(SdrTextObj* pTxtObj); void ImpSetAttributesFitToSize(SdrTextObj* pTxtObj); void ImpSetAttributesFitToSizeVertical(SdrTextObj* pTxtObj); void ImpSetAttributesFitCommon(SdrTextObj* pTxtObj); }; } // end of namespace sd #endif