office-gobmx/sc/inc/editsrc.hxx

196 lines
6.1 KiB
C++
Raw Normal View History

2010-10-27 06:43:08 -05:00
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2000-09-18 11:07:07 -05:00
/*************************************************************************
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
2000-09-18 11:07:07 -05:00
*
* Copyright 2000, 2010 Oracle and/or its affiliates.
2000-09-18 11:07:07 -05:00
*
* OpenOffice.org - a multi-platform office productivity suite
2000-09-18 11:07:07 -05:00
*
* This file is part of OpenOffice.org.
2000-09-18 11:07:07 -05:00
*
* OpenOffice.org is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License version 3
* only, as published by the Free Software Foundation.
2000-09-18 11:07:07 -05:00
*
* OpenOffice.org 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 version 3 for more details
* (a copy is included in the LICENSE file that accompanied this code).
2000-09-18 11:07:07 -05:00
*
* You should have received a copy of the GNU Lesser General Public License
* version 3 along with OpenOffice.org. If not, see
* <http://www.openoffice.org/license.html>
* for a copy of the LGPLv3 License.
2000-09-18 11:07:07 -05:00
*
************************************************************************/
#ifndef SC_EDITSRC_HXX
#define SC_EDITSRC_HXX
#include "address.hxx"
#include <editeng/unoedsrc.hxx>
#include <svl/lstner.hxx>
2000-09-18 11:07:07 -05:00
#include <memory>
2000-09-18 11:07:07 -05:00
class ScEditEngineDefaulter;
class SvxEditEngineForwarder;
class ScDocShell;
class ScHeaderFooterContentObj;
class ScCellTextData;
class ScHeaderFooterTextData;
class ScAccessibleTextData;
class SdrObject;
2000-09-18 11:07:07 -05:00
class ScHeaderFooterChangedHint : public SfxHint
{
USHORT nPart;
public:
TYPEINFO();
ScHeaderFooterChangedHint(USHORT nP);
~ScHeaderFooterChangedHint();
USHORT GetPart() const { return nPart; }
};
// all ScSharedHeaderFooterEditSource objects for a single text share the same data
class ScSharedHeaderFooterEditSource : public SvxEditSource
2000-09-18 11:07:07 -05:00
{
private:
ScHeaderFooterTextData* pTextData;
protected:
ScHeaderFooterTextData* GetTextData() const { return pTextData; } // for ScHeaderFooterEditSource
2000-09-18 11:07:07 -05:00
public:
ScSharedHeaderFooterEditSource( ScHeaderFooterTextData* pData );
virtual ~ScSharedHeaderFooterEditSource();
2000-09-18 11:07:07 -05:00
// GetEditEngine is needed because the forwarder doesn't have field functions
ScEditEngineDefaulter* GetEditEngine();
2000-09-18 11:07:07 -05:00
virtual SvxEditSource* Clone() const ;
virtual SvxTextForwarder* GetTextForwarder();
virtual void UpdateData();
};
// ScHeaderFooterEditSource with local copy of ScHeaderFooterTextData is used by field objects
class ScHeaderFooterEditSource : public ScSharedHeaderFooterEditSource
{
public:
ScHeaderFooterEditSource( ScHeaderFooterContentObj* pContent, USHORT nP );
ScHeaderFooterEditSource( ScHeaderFooterContentObj& rContent, USHORT nP );
virtual ~ScHeaderFooterEditSource();
2000-09-18 11:07:07 -05:00
virtual SvxEditSource* Clone() const;
2000-09-18 11:07:07 -05:00
};
// Data (incl. EditEngine) for cell EditSource is now shared in ScCellTextData
class ScSharedCellEditSource : public SvxEditSource
2000-09-18 11:07:07 -05:00
{
private:
ScCellTextData* pCellTextData;
protected:
ScCellTextData* GetCellTextData() const { return pCellTextData; } // for ScCellEditSource
2000-09-18 11:07:07 -05:00
public:
ScSharedCellEditSource( ScCellTextData* pData );
virtual ~ScSharedCellEditSource();
2000-09-18 11:07:07 -05:00
// GetEditEngine is needed because the forwarder doesn't have field functions
ScEditEngineDefaulter* GetEditEngine();
2000-09-18 11:07:07 -05:00
virtual SvxEditSource* Clone() const;
2000-09-18 11:07:07 -05:00
virtual SvxTextForwarder* GetTextForwarder();
2001-06-12 06:53:53 -05:00
virtual void UpdateData();
2001-06-12 06:53:53 -05:00
void SetDoUpdateData(sal_Bool bValue);
sal_Bool IsDirty() const;
};
2000-09-18 11:07:07 -05:00
// ScCellEditSource with local copy of ScCellTextData is used by ScCellFieldsObj, ScCellFieldObj
class ScCellEditSource : public ScSharedCellEditSource
{
public:
ScCellEditSource( ScDocShell* pDocSh, const ScAddress& rP );
virtual ~ScCellEditSource();
virtual SvxEditSource* Clone() const;
2000-09-18 11:07:07 -05:00
};
class ScAnnotationEditSource : public SvxEditSource, public SfxListener
{
private:
ScDocShell* pDocShell;
ScAddress aCellPos;
ScEditEngineDefaulter* pEditEngine;
SvxEditEngineForwarder* pForwarder;
BOOL bDataValid;
SdrObject* GetCaptionObj();
2000-09-18 11:07:07 -05:00
public:
ScAnnotationEditSource(ScDocShell* pDocSh, const ScAddress& rP);
virtual ~ScAnnotationEditSource();
virtual SvxEditSource* Clone() const ;
virtual SvxTextForwarder* GetTextForwarder();
virtual void UpdateData();
virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
};
2001-01-18 08:54:02 -06:00
// EditSource with a shared forwarder for all children of one text object
class ScSimpleEditSource : public SvxEditSource
{
private:
SvxTextForwarder* pForwarder;
public:
ScSimpleEditSource( SvxTextForwarder* pForw );
virtual ~ScSimpleEditSource();
virtual SvxEditSource* Clone() const ;
virtual SvxTextForwarder* GetTextForwarder();
virtual void UpdateData();
2001-01-18 08:54:02 -06:00
};
class ScAccessibilityEditSource : public SvxEditSource
{
private:
::std::auto_ptr < ScAccessibleTextData > mpAccessibleTextData;
public:
ScAccessibilityEditSource( ::std::auto_ptr < ScAccessibleTextData > pAccessibleCellTextData );
virtual ~ScAccessibilityEditSource();
2002-03-04 07:06:59 -06:00
virtual SvxEditSource* Clone() const;
virtual SvxTextForwarder* GetTextForwarder();
virtual SvxViewForwarder* GetViewForwarder();
virtual SvxEditViewForwarder* GetEditViewForwarder( sal_Bool bCreate = sal_False );
virtual void UpdateData();
virtual SfxBroadcaster& GetBroadcaster() const;
};
2001-01-18 08:54:02 -06:00
2000-09-18 11:07:07 -05:00
#endif
2010-10-27 06:43:08 -05:00
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */