xref: /aoo4110/main/sc/source/ui/inc/AccessibleText.hxx (revision b1cdbd2c)
1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski  *
3*b1cdbd2cSJim Jagielski  * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski  * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski  * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski  * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski  * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski  * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski  * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski  *
11*b1cdbd2cSJim Jagielski  *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski  *
13*b1cdbd2cSJim Jagielski  * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski  * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski  * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski  * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski  * under the License.
19*b1cdbd2cSJim Jagielski  *
20*b1cdbd2cSJim Jagielski  *************************************************************/
21*b1cdbd2cSJim Jagielski 
22*b1cdbd2cSJim Jagielski 
23*b1cdbd2cSJim Jagielski 
24*b1cdbd2cSJim Jagielski #ifndef _SC_ACCESSIBLETEXT_HXX
25*b1cdbd2cSJim Jagielski #define _SC_ACCESSIBLETEXT_HXX
26*b1cdbd2cSJim Jagielski 
27*b1cdbd2cSJim Jagielski #include "textuno.hxx"
28*b1cdbd2cSJim Jagielski #include "global.hxx"
29*b1cdbd2cSJim Jagielski #include "viewdata.hxx"
30*b1cdbd2cSJim Jagielski #include <editeng/svxenum.hxx>
31*b1cdbd2cSJim Jagielski 
32*b1cdbd2cSJim Jagielski #include <memory>
33*b1cdbd2cSJim Jagielski 
34*b1cdbd2cSJim Jagielski class ScDocShell;
35*b1cdbd2cSJim Jagielski class ScViewForwarder;
36*b1cdbd2cSJim Jagielski class ScEditObjectViewForwarder;
37*b1cdbd2cSJim Jagielski class ScPreviewViewForwarder;
38*b1cdbd2cSJim Jagielski class ScEditViewForwarder;
39*b1cdbd2cSJim Jagielski class ScPreviewShell;
40*b1cdbd2cSJim Jagielski class EditTextObject;
41*b1cdbd2cSJim Jagielski class ScCsvViewForwarder;
42*b1cdbd2cSJim Jagielski class ScAccessibleCell;
43*b1cdbd2cSJim Jagielski 
44*b1cdbd2cSJim Jagielski 
45*b1cdbd2cSJim Jagielski // ============================================================================
46*b1cdbd2cSJim Jagielski 
47*b1cdbd2cSJim Jagielski class ScAccessibleTextData : public SfxListener
48*b1cdbd2cSJim Jagielski {
49*b1cdbd2cSJim Jagielski public:
ScAccessibleTextData()50*b1cdbd2cSJim Jagielski 						ScAccessibleTextData() {}
~ScAccessibleTextData()51*b1cdbd2cSJim Jagielski 	virtual				~ScAccessibleTextData() {}
52*b1cdbd2cSJim Jagielski 
53*b1cdbd2cSJim Jagielski 	virtual	ScAccessibleTextData* Clone() const = 0;
54*b1cdbd2cSJim Jagielski 
Notify(SfxBroadcaster &,const SfxHint &)55*b1cdbd2cSJim Jagielski     virtual void        Notify( SfxBroadcaster& /* rBC */, const SfxHint& /* rHint */ ) {}
56*b1cdbd2cSJim Jagielski 
57*b1cdbd2cSJim Jagielski 	virtual SvxTextForwarder* GetTextForwarder() = 0;
58*b1cdbd2cSJim Jagielski 	virtual SvxViewForwarder* GetViewForwarder() = 0;
59*b1cdbd2cSJim Jagielski 	virtual SvxEditViewForwarder* GetEditViewForwarder( sal_Bool bCreate ) = 0;
GetBroadcaster() const60*b1cdbd2cSJim Jagielski 	virtual SfxBroadcaster& GetBroadcaster() const { return maBroadcaster; }
61*b1cdbd2cSJim Jagielski 
62*b1cdbd2cSJim Jagielski     virtual void				UpdateData() = 0;
63*b1cdbd2cSJim Jagielski 	virtual void				SetDoUpdate(sal_Bool bValue) = 0;
64*b1cdbd2cSJim Jagielski 	virtual sal_Bool			IsDirty() const = 0;
65*b1cdbd2cSJim Jagielski 
66*b1cdbd2cSJim Jagielski private:
67*b1cdbd2cSJim Jagielski 	mutable SfxBroadcaster maBroadcaster;
68*b1cdbd2cSJim Jagielski 
69*b1cdbd2cSJim Jagielski 	// prevent the using of this method of the base class
GetOriginalSource()70*b1cdbd2cSJim Jagielski 	ScSharedCellEditSource*	GetOriginalSource() { return NULL; }
71*b1cdbd2cSJim Jagielski };
72*b1cdbd2cSJim Jagielski 
73*b1cdbd2cSJim Jagielski 
74*b1cdbd2cSJim Jagielski // ============================================================================
75*b1cdbd2cSJim Jagielski 
76*b1cdbd2cSJim Jagielski class ScAccessibleCellBaseTextData : public ScAccessibleTextData,
77*b1cdbd2cSJim Jagielski                                      public ScCellTextData
78*b1cdbd2cSJim Jagielski {
79*b1cdbd2cSJim Jagielski public:
ScAccessibleCellBaseTextData(ScDocShell * pDocShellP,const ScAddress & rP)80*b1cdbd2cSJim Jagielski                         ScAccessibleCellBaseTextData(ScDocShell* pDocShellP,
81*b1cdbd2cSJim Jagielski                             const ScAddress& rP)
82*b1cdbd2cSJim Jagielski                             : ScCellTextData(pDocShellP, rP) {}
~ScAccessibleCellBaseTextData()83*b1cdbd2cSJim Jagielski     virtual             ~ScAccessibleCellBaseTextData() {}
Notify(SfxBroadcaster & rBC,const SfxHint & rHint)84*b1cdbd2cSJim Jagielski     virtual void		Notify( SfxBroadcaster& rBC, const SfxHint& rHint ) { ScCellTextData::Notify(rBC, rHint); }
85*b1cdbd2cSJim Jagielski 
UpdateData()86*b1cdbd2cSJim Jagielski     virtual void				UpdateData() { ScCellTextData::UpdateData(); }
SetDoUpdate(sal_Bool bValue)87*b1cdbd2cSJim Jagielski     virtual void				SetDoUpdate(sal_Bool bValue) { ScCellTextData::SetDoUpdate(bValue); }
IsDirty() const88*b1cdbd2cSJim Jagielski     virtual sal_Bool			IsDirty() const { return ScCellTextData::IsDirty(); }
89*b1cdbd2cSJim Jagielski };
90*b1cdbd2cSJim Jagielski 
91*b1cdbd2cSJim Jagielski 
92*b1cdbd2cSJim Jagielski // ============================================================================
93*b1cdbd2cSJim Jagielski 
94*b1cdbd2cSJim Jagielski //	ScAccessibleCellTextData: shared data between sub objects of a accessible cell text object
95*b1cdbd2cSJim Jagielski 
96*b1cdbd2cSJim Jagielski class ScAccessibleCellTextData : public ScAccessibleCellBaseTextData
97*b1cdbd2cSJim Jagielski {
98*b1cdbd2cSJim Jagielski public:
99*b1cdbd2cSJim Jagielski 						ScAccessibleCellTextData(ScTabViewShell* pViewShell,
100*b1cdbd2cSJim Jagielski                             const ScAddress& rP, ScSplitPos eSplitPos, ScAccessibleCell* pAccCell);
101*b1cdbd2cSJim Jagielski 	virtual				~ScAccessibleCellTextData();
102*b1cdbd2cSJim Jagielski 
103*b1cdbd2cSJim Jagielski 	virtual	ScAccessibleTextData* Clone() const;
104*b1cdbd2cSJim Jagielski 
105*b1cdbd2cSJim Jagielski 	virtual void		Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
106*b1cdbd2cSJim Jagielski 
107*b1cdbd2cSJim Jagielski 	virtual SvxTextForwarder* GetTextForwarder();
108*b1cdbd2cSJim Jagielski 	virtual SvxViewForwarder* GetViewForwarder();
109*b1cdbd2cSJim Jagielski 	virtual SvxEditViewForwarder* GetEditViewForwarder( sal_Bool bCreate );
110*b1cdbd2cSJim Jagielski 
111*b1cdbd2cSJim Jagielski 	DECL_LINK( NotifyHdl, EENotify* );
112*b1cdbd2cSJim Jagielski protected:
113*b1cdbd2cSJim Jagielski     virtual void            GetCellText(const ScAddress& rCellPos, String& rText);
114*b1cdbd2cSJim Jagielski private:
115*b1cdbd2cSJim Jagielski 	ScViewForwarder* mpViewForwarder;
116*b1cdbd2cSJim Jagielski 	ScEditViewForwarder* mpEditViewForwarder;
117*b1cdbd2cSJim Jagielski 	ScTabViewShell*	mpViewShell;
118*b1cdbd2cSJim Jagielski 	ScSplitPos meSplitPos;
119*b1cdbd2cSJim Jagielski 	sal_Bool mbViewEditEngine;
120*b1cdbd2cSJim Jagielski     ScAccessibleCell* mpAccessibleCell;
121*b1cdbd2cSJim Jagielski 
122*b1cdbd2cSJim Jagielski 	// prevent the using of this method of the base class
GetOriginalSource()123*b1cdbd2cSJim Jagielski 	ScSharedCellEditSource*	GetOriginalSource() { return NULL; }
124*b1cdbd2cSJim Jagielski 
125*b1cdbd2cSJim Jagielski     using ScAccessibleCellBaseTextData::GetDocShell;
126*b1cdbd2cSJim Jagielski 	ScDocShell* GetDocShell(ScTabViewShell* pViewShell);
127*b1cdbd2cSJim Jagielski };
128*b1cdbd2cSJim Jagielski 
129*b1cdbd2cSJim Jagielski 
130*b1cdbd2cSJim Jagielski // ============================================================================
131*b1cdbd2cSJim Jagielski 
132*b1cdbd2cSJim Jagielski class ScAccessibleEditObjectTextData : public ScAccessibleTextData
133*b1cdbd2cSJim Jagielski {
134*b1cdbd2cSJim Jagielski public:
135*b1cdbd2cSJim Jagielski 	// Solution: Add a para to indicate whether the object is cloned
136*b1cdbd2cSJim Jagielski 						//ScAccessibleEditObjectTextData(EditView* pEditView, Window* pWin);
137*b1cdbd2cSJim Jagielski 						ScAccessibleEditObjectTextData(EditView* pEditView, Window* pWin, sal_Bool isClone=sal_False);
138*b1cdbd2cSJim Jagielski 	virtual				~ScAccessibleEditObjectTextData();
139*b1cdbd2cSJim Jagielski 
140*b1cdbd2cSJim Jagielski 	virtual	ScAccessibleTextData* Clone() const;
141*b1cdbd2cSJim Jagielski 
142*b1cdbd2cSJim Jagielski 	virtual void		Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
143*b1cdbd2cSJim Jagielski 
144*b1cdbd2cSJim Jagielski 	virtual SvxTextForwarder* GetTextForwarder();
145*b1cdbd2cSJim Jagielski 	virtual SvxViewForwarder* GetViewForwarder();
146*b1cdbd2cSJim Jagielski 	virtual SvxEditViewForwarder* GetEditViewForwarder( sal_Bool bCreate );
147*b1cdbd2cSJim Jagielski 
UpdateData()148*b1cdbd2cSJim Jagielski     virtual void				UpdateData() {  }
SetDoUpdate(sal_Bool)149*b1cdbd2cSJim Jagielski     virtual void				SetDoUpdate(sal_Bool /* bValue */) {  }
IsDirty() const150*b1cdbd2cSJim Jagielski     virtual sal_Bool			IsDirty() const { return sal_False; }
151*b1cdbd2cSJim Jagielski 
152*b1cdbd2cSJim Jagielski     DECL_LINK( NotifyHdl, EENotify* );
153*b1cdbd2cSJim Jagielski protected:
154*b1cdbd2cSJim Jagielski 	ScEditObjectViewForwarder* mpViewForwarder;
155*b1cdbd2cSJim Jagielski 	ScEditViewForwarder* mpEditViewForwarder;
156*b1cdbd2cSJim Jagielski     EditView* mpEditView;
157*b1cdbd2cSJim Jagielski     EditEngine* mpEditEngine;
158*b1cdbd2cSJim Jagielski     SvxEditEngineForwarder*	mpForwarder;
159*b1cdbd2cSJim Jagielski     Window* mpWindow;
160*b1cdbd2cSJim Jagielski     sal_Bool mbIsCloned;
161*b1cdbd2cSJim Jagielski };
162*b1cdbd2cSJim Jagielski 
163*b1cdbd2cSJim Jagielski 
164*b1cdbd2cSJim Jagielski // ============================================================================
165*b1cdbd2cSJim Jagielski 
166*b1cdbd2cSJim Jagielski class ScAccessibleEditLineTextData : public ScAccessibleEditObjectTextData
167*b1cdbd2cSJim Jagielski {
168*b1cdbd2cSJim Jagielski public:
169*b1cdbd2cSJim Jagielski                         ScAccessibleEditLineTextData(EditView* pEditView, Window* pWin);
170*b1cdbd2cSJim Jagielski     virtual             ~ScAccessibleEditLineTextData();
171*b1cdbd2cSJim Jagielski 
172*b1cdbd2cSJim Jagielski     virtual ScAccessibleTextData* Clone() const;
173*b1cdbd2cSJim Jagielski 
174*b1cdbd2cSJim Jagielski     virtual SvxTextForwarder* GetTextForwarder();
175*b1cdbd2cSJim Jagielski 	virtual SvxEditViewForwarder* GetEditViewForwarder( sal_Bool bCreate );
176*b1cdbd2cSJim Jagielski 
177*b1cdbd2cSJim Jagielski     void Dispose();
178*b1cdbd2cSJim Jagielski     void TextChanged();
179*b1cdbd2cSJim Jagielski     void StartEdit();
180*b1cdbd2cSJim Jagielski     void EndEdit();
181*b1cdbd2cSJim Jagielski private:
182*b1cdbd2cSJim Jagielski     void ResetEditMode();
183*b1cdbd2cSJim Jagielski 
184*b1cdbd2cSJim Jagielski     sal_Bool mbEditEngineCreated;
185*b1cdbd2cSJim Jagielski };
186*b1cdbd2cSJim Jagielski 
187*b1cdbd2cSJim Jagielski 
188*b1cdbd2cSJim Jagielski // ============================================================================
189*b1cdbd2cSJim Jagielski 
190*b1cdbd2cSJim Jagielski class ScAccessiblePreviewCellTextData : public ScAccessibleCellBaseTextData
191*b1cdbd2cSJim Jagielski {
192*b1cdbd2cSJim Jagielski public:
193*b1cdbd2cSJim Jagielski 						ScAccessiblePreviewCellTextData(ScPreviewShell* pViewShell,
194*b1cdbd2cSJim Jagielski 							const ScAddress& rP);
195*b1cdbd2cSJim Jagielski 	virtual				~ScAccessiblePreviewCellTextData();
196*b1cdbd2cSJim Jagielski 
197*b1cdbd2cSJim Jagielski 	virtual	ScAccessibleTextData* Clone() const;
198*b1cdbd2cSJim Jagielski 
199*b1cdbd2cSJim Jagielski 	virtual void		Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
200*b1cdbd2cSJim Jagielski 
201*b1cdbd2cSJim Jagielski 	virtual SvxTextForwarder* GetTextForwarder();
202*b1cdbd2cSJim Jagielski 	virtual SvxViewForwarder* GetViewForwarder();
GetEditViewForwarder(sal_Bool)203*b1cdbd2cSJim Jagielski 	virtual SvxEditViewForwarder* GetEditViewForwarder( sal_Bool /* bCreate */ ) { return NULL; }
204*b1cdbd2cSJim Jagielski 
205*b1cdbd2cSJim Jagielski //UNUSED2008-05  DECL_LINK( NotifyHdl, EENotify* );
206*b1cdbd2cSJim Jagielski private:
207*b1cdbd2cSJim Jagielski 	ScPreviewViewForwarder* mpViewForwarder;
208*b1cdbd2cSJim Jagielski 	ScPreviewShell*	mpViewShell;
209*b1cdbd2cSJim Jagielski 
210*b1cdbd2cSJim Jagielski 	// prevent the using of this method of the base class
GetOriginalSource()211*b1cdbd2cSJim Jagielski 	ScSharedCellEditSource*	GetOriginalSource() { return NULL; }
212*b1cdbd2cSJim Jagielski 
213*b1cdbd2cSJim Jagielski     using ScAccessibleCellBaseTextData::GetDocShell;
214*b1cdbd2cSJim Jagielski 	ScDocShell* GetDocShell(ScPreviewShell* pViewShell);
215*b1cdbd2cSJim Jagielski };
216*b1cdbd2cSJim Jagielski 
217*b1cdbd2cSJim Jagielski 
218*b1cdbd2cSJim Jagielski // ============================================================================
219*b1cdbd2cSJim Jagielski 
220*b1cdbd2cSJim Jagielski class ScAccessiblePreviewHeaderCellTextData : public ScAccessibleCellBaseTextData
221*b1cdbd2cSJim Jagielski {
222*b1cdbd2cSJim Jagielski public:
223*b1cdbd2cSJim Jagielski 						ScAccessiblePreviewHeaderCellTextData(ScPreviewShell* pViewShell,
224*b1cdbd2cSJim Jagielski 							const String& rText, const ScAddress& rP, sal_Bool bColHeader, sal_Bool bRowHeader);
225*b1cdbd2cSJim Jagielski 	virtual				~ScAccessiblePreviewHeaderCellTextData();
226*b1cdbd2cSJim Jagielski 
227*b1cdbd2cSJim Jagielski 	virtual	ScAccessibleTextData* Clone() const;
228*b1cdbd2cSJim Jagielski 
229*b1cdbd2cSJim Jagielski 	virtual void		Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
230*b1cdbd2cSJim Jagielski 
231*b1cdbd2cSJim Jagielski 	virtual SvxTextForwarder* GetTextForwarder();
232*b1cdbd2cSJim Jagielski 	virtual SvxViewForwarder* GetViewForwarder();
GetEditViewForwarder(sal_Bool)233*b1cdbd2cSJim Jagielski 	virtual SvxEditViewForwarder* GetEditViewForwarder( sal_Bool /* bCreate */ ) { return NULL; }
234*b1cdbd2cSJim Jagielski 
235*b1cdbd2cSJim Jagielski //UNUSED2008-05  DECL_LINK( NotifyHdl, EENotify* );
236*b1cdbd2cSJim Jagielski private:
237*b1cdbd2cSJim Jagielski 	ScPreviewViewForwarder* mpViewForwarder;
238*b1cdbd2cSJim Jagielski 	ScPreviewShell*	mpViewShell;
239*b1cdbd2cSJim Jagielski 	String			maText;
240*b1cdbd2cSJim Jagielski 	sal_Bool		mbColHeader;
241*b1cdbd2cSJim Jagielski 	sal_Bool		mbRowHeader;
242*b1cdbd2cSJim Jagielski 
243*b1cdbd2cSJim Jagielski 	// prevent the using of this method of the base class
GetOriginalSource()244*b1cdbd2cSJim Jagielski 	ScSharedCellEditSource*	GetOriginalSource() { return NULL; }
245*b1cdbd2cSJim Jagielski 
246*b1cdbd2cSJim Jagielski     using ScAccessibleCellBaseTextData::GetDocShell;
247*b1cdbd2cSJim Jagielski 	ScDocShell* GetDocShell(ScPreviewShell* pViewShell);
248*b1cdbd2cSJim Jagielski };
249*b1cdbd2cSJim Jagielski 
250*b1cdbd2cSJim Jagielski 
251*b1cdbd2cSJim Jagielski // ============================================================================
252*b1cdbd2cSJim Jagielski 
253*b1cdbd2cSJim Jagielski class ScAccessibleHeaderTextData : public ScAccessibleTextData
254*b1cdbd2cSJim Jagielski {
255*b1cdbd2cSJim Jagielski public:
256*b1cdbd2cSJim Jagielski                         ScAccessibleHeaderTextData(ScPreviewShell* pViewShell,
257*b1cdbd2cSJim Jagielski                             const EditTextObject* pEditObj, sal_Bool bHeader, SvxAdjust eAdjust);
258*b1cdbd2cSJim Jagielski     virtual             ~ScAccessibleHeaderTextData();
259*b1cdbd2cSJim Jagielski 
260*b1cdbd2cSJim Jagielski     virtual ScAccessibleTextData* Clone() const;
261*b1cdbd2cSJim Jagielski 
262*b1cdbd2cSJim Jagielski 	virtual void		Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
263*b1cdbd2cSJim Jagielski 
264*b1cdbd2cSJim Jagielski 	virtual SvxTextForwarder* GetTextForwarder();
265*b1cdbd2cSJim Jagielski 	virtual SvxViewForwarder* GetViewForwarder();
GetEditViewForwarder(sal_Bool)266*b1cdbd2cSJim Jagielski 	virtual SvxEditViewForwarder* GetEditViewForwarder( sal_Bool /* bCreate */ ) { return NULL; }
267*b1cdbd2cSJim Jagielski 
UpdateData()268*b1cdbd2cSJim Jagielski     virtual void				UpdateData() {  }
SetDoUpdate(sal_Bool)269*b1cdbd2cSJim Jagielski     virtual void				SetDoUpdate(sal_Bool /* bValue */) {  }
IsDirty() const270*b1cdbd2cSJim Jagielski     virtual sal_Bool			IsDirty() const { return sal_False; }
271*b1cdbd2cSJim Jagielski private:
272*b1cdbd2cSJim Jagielski     ScPreviewViewForwarder* mpViewForwarder;
273*b1cdbd2cSJim Jagielski     ScPreviewShell*         mpViewShell;
274*b1cdbd2cSJim Jagielski 	ScEditEngineDefaulter*	mpEditEngine;
275*b1cdbd2cSJim Jagielski 	SvxEditEngineForwarder*	mpForwarder;
276*b1cdbd2cSJim Jagielski     ScDocShell*             mpDocSh;
277*b1cdbd2cSJim Jagielski     const EditTextObject*   mpEditObj;
278*b1cdbd2cSJim Jagielski     sal_Bool                mbHeader;
279*b1cdbd2cSJim Jagielski     sal_Bool                mbDataValid;
280*b1cdbd2cSJim Jagielski     SvxAdjust               meAdjust;
281*b1cdbd2cSJim Jagielski };
282*b1cdbd2cSJim Jagielski 
283*b1cdbd2cSJim Jagielski 
284*b1cdbd2cSJim Jagielski // ============================================================================
285*b1cdbd2cSJim Jagielski 
286*b1cdbd2cSJim Jagielski class ScAccessibleNoteTextData : public ScAccessibleTextData
287*b1cdbd2cSJim Jagielski {
288*b1cdbd2cSJim Jagielski public:
289*b1cdbd2cSJim Jagielski                         ScAccessibleNoteTextData(ScPreviewShell* pViewShell,
290*b1cdbd2cSJim Jagielski                             const String& sText, const ScAddress& aCellPos, sal_Bool bMarkNote);
291*b1cdbd2cSJim Jagielski     virtual             ~ScAccessibleNoteTextData();
292*b1cdbd2cSJim Jagielski 
293*b1cdbd2cSJim Jagielski     virtual ScAccessibleTextData* Clone() const;
294*b1cdbd2cSJim Jagielski 
295*b1cdbd2cSJim Jagielski 	virtual void		Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
296*b1cdbd2cSJim Jagielski 
297*b1cdbd2cSJim Jagielski 	virtual SvxTextForwarder* GetTextForwarder();
298*b1cdbd2cSJim Jagielski 	virtual SvxViewForwarder* GetViewForwarder();
GetEditViewForwarder(sal_Bool)299*b1cdbd2cSJim Jagielski 	virtual SvxEditViewForwarder* GetEditViewForwarder( sal_Bool /* bCreate */ ) { return NULL; }
300*b1cdbd2cSJim Jagielski 
UpdateData()301*b1cdbd2cSJim Jagielski     virtual void				UpdateData() {  }
SetDoUpdate(sal_Bool)302*b1cdbd2cSJim Jagielski     virtual void				SetDoUpdate(sal_Bool /* bValue */) {  }
IsDirty() const303*b1cdbd2cSJim Jagielski     virtual sal_Bool			IsDirty() const { return sal_False; }
304*b1cdbd2cSJim Jagielski private:
305*b1cdbd2cSJim Jagielski     ScPreviewViewForwarder* mpViewForwarder;
306*b1cdbd2cSJim Jagielski     ScPreviewShell*         mpViewShell;
307*b1cdbd2cSJim Jagielski 	ScEditEngineDefaulter*	mpEditEngine;
308*b1cdbd2cSJim Jagielski 	SvxEditEngineForwarder*	mpForwarder;
309*b1cdbd2cSJim Jagielski     ScDocShell*             mpDocSh;
310*b1cdbd2cSJim Jagielski     String                  msText;
311*b1cdbd2cSJim Jagielski     ScAddress               maCellPos;
312*b1cdbd2cSJim Jagielski     sal_Bool                mbMarkNote;
313*b1cdbd2cSJim Jagielski     sal_Bool                mbDataValid;
314*b1cdbd2cSJim Jagielski };
315*b1cdbd2cSJim Jagielski 
316*b1cdbd2cSJim Jagielski 
317*b1cdbd2cSJim Jagielski // ============================================================================
318*b1cdbd2cSJim Jagielski 
319*b1cdbd2cSJim Jagielski class ScAccessibleCsvTextData : public ScAccessibleTextData
320*b1cdbd2cSJim Jagielski {
321*b1cdbd2cSJim Jagielski private:
322*b1cdbd2cSJim Jagielski     typedef ::std::auto_ptr< SvxTextForwarder > TextForwarderPtr;
323*b1cdbd2cSJim Jagielski     typedef ::std::auto_ptr< ScCsvViewForwarder > ViewForwarderPtr;
324*b1cdbd2cSJim Jagielski 
325*b1cdbd2cSJim Jagielski     Window*                     mpWindow;
326*b1cdbd2cSJim Jagielski     EditEngine*                 mpEditEngine;
327*b1cdbd2cSJim Jagielski     TextForwarderPtr            mpTextForwarder;
328*b1cdbd2cSJim Jagielski     ViewForwarderPtr            mpViewForwarder;
329*b1cdbd2cSJim Jagielski     String                      maCellText;
330*b1cdbd2cSJim Jagielski     Rectangle                   maBoundBox;
331*b1cdbd2cSJim Jagielski     Size                        maCellSize;
332*b1cdbd2cSJim Jagielski 
333*b1cdbd2cSJim Jagielski public:
334*b1cdbd2cSJim Jagielski     explicit                    ScAccessibleCsvTextData(
335*b1cdbd2cSJim Jagielski                                     Window* pWindow,
336*b1cdbd2cSJim Jagielski                                     EditEngine* pEditEngine,
337*b1cdbd2cSJim Jagielski                                     const String& rCellText,
338*b1cdbd2cSJim Jagielski                                     const Rectangle& rBoundBox,
339*b1cdbd2cSJim Jagielski                                     const Size& rCellSize );
340*b1cdbd2cSJim Jagielski     virtual                     ~ScAccessibleCsvTextData();
341*b1cdbd2cSJim Jagielski 
342*b1cdbd2cSJim Jagielski     virtual ScAccessibleTextData* Clone() const;
343*b1cdbd2cSJim Jagielski 
344*b1cdbd2cSJim Jagielski     virtual void                Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
345*b1cdbd2cSJim Jagielski 
346*b1cdbd2cSJim Jagielski     virtual SvxTextForwarder*   GetTextForwarder();
347*b1cdbd2cSJim Jagielski     virtual SvxViewForwarder*   GetViewForwarder();
348*b1cdbd2cSJim Jagielski     virtual SvxEditViewForwarder* GetEditViewForwarder( sal_Bool bCreate );
349*b1cdbd2cSJim Jagielski 
UpdateData()350*b1cdbd2cSJim Jagielski     virtual void                UpdateData() {}
SetDoUpdate(sal_Bool)351*b1cdbd2cSJim Jagielski     virtual void                SetDoUpdate( sal_Bool /* bValue */ ) {}
IsDirty() const352*b1cdbd2cSJim Jagielski     virtual sal_Bool            IsDirty() const { return sal_False; }
353*b1cdbd2cSJim Jagielski };
354*b1cdbd2cSJim Jagielski 
355*b1cdbd2cSJim Jagielski 
356*b1cdbd2cSJim Jagielski // ============================================================================
357*b1cdbd2cSJim Jagielski 
358*b1cdbd2cSJim Jagielski #endif
359