1b3f79822SAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3b3f79822SAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4b3f79822SAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5b3f79822SAndrew Rist  * distributed with this work for additional information
6b3f79822SAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7b3f79822SAndrew Rist  * to you under the Apache License, Version 2.0 (the
8b3f79822SAndrew Rist  * "License"); you may not use this file except in compliance
9b3f79822SAndrew Rist  * with the License.  You may obtain a copy of the License at
10b3f79822SAndrew Rist  *
11b3f79822SAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12b3f79822SAndrew Rist  *
13b3f79822SAndrew Rist  * Unless required by applicable law or agreed to in writing,
14b3f79822SAndrew Rist  * software distributed under the License is distributed on an
15b3f79822SAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16b3f79822SAndrew Rist  * KIND, either express or implied.  See the License for the
17b3f79822SAndrew Rist  * specific language governing permissions and limitations
18b3f79822SAndrew Rist  * under the License.
19b3f79822SAndrew Rist  *
20b3f79822SAndrew Rist  *************************************************************/
21b3f79822SAndrew Rist 
22b3f79822SAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove
25cdf0e10cSrcweir #include "precompiled_sc.hxx"
26cdf0e10cSrcweir 
27cdf0e10cSrcweir #undef SC_DLLIMPLEMENTATION
28cdf0e10cSrcweir 
29cdf0e10cSrcweir 
30cdf0e10cSrcweir 
31cdf0e10cSrcweir //------------------------------------------------------------------
32cdf0e10cSrcweir 
33cdf0e10cSrcweir #define _TPHFEDIT_CXX
34cdf0e10cSrcweir #include "scitems.hxx"
35cdf0e10cSrcweir #include <editeng/eeitem.hxx>
36cdf0e10cSrcweir 
37cdf0e10cSrcweir //CHINA001 #include <svx/chardlg.hxx>
38cdf0e10cSrcweir #include <editeng/editobj.hxx>
39cdf0e10cSrcweir #include <editeng/editstat.hxx>
40cdf0e10cSrcweir #include <editeng/editview.hxx>
41cdf0e10cSrcweir #include <editeng/flditem.hxx>
42cdf0e10cSrcweir #include <sfx2/basedlgs.hxx>
43cdf0e10cSrcweir #include <sfx2/objsh.hxx>
44cdf0e10cSrcweir #include <vcl/msgbox.hxx>
45cdf0e10cSrcweir #include <vcl/svapp.hxx>
46cdf0e10cSrcweir #include <unotools/useroptions.hxx>
47cdf0e10cSrcweir #define _SVSTDARR_USHORTS
48cdf0e10cSrcweir #include <svl/svstdarr.hxx>
49cdf0e10cSrcweir 
50cdf0e10cSrcweir //CHINA001 #include "tphfedit.hxx"
51cdf0e10cSrcweir #include "editutil.hxx"
52cdf0e10cSrcweir #include "global.hxx"
53cdf0e10cSrcweir #include "attrib.hxx"
54cdf0e10cSrcweir #include "patattr.hxx"
55cdf0e10cSrcweir #include "scresid.hxx"
56cdf0e10cSrcweir #include "sc.hrc"
57cdf0e10cSrcweir #include "globstr.hrc"
58cdf0e10cSrcweir #include "tabvwsh.hxx"
59cdf0e10cSrcweir #include "prevwsh.hxx"
60cdf0e10cSrcweir #include "hfedtdlg.hrc"
61cdf0e10cSrcweir #include "textdlgs.hxx"
62cdf0e10cSrcweir #include "AccessibleEditObject.hxx"
63cdf0e10cSrcweir 
64cdf0e10cSrcweir #include "scuitphfedit.hxx" //CHINA001
65cdf0e10cSrcweir #include <memory> // header file for auto_ptr
66cdf0e10cSrcweir 
67cdf0e10cSrcweir // STATIC DATA -----------------------------------------------------------
68cdf0e10cSrcweir 
69cdf0e10cSrcweir static sal_uInt16 pPageRightHeaderRanges[] = { SID_SCATTR_PAGE_HEADERRIGHT,
70cdf0e10cSrcweir 										   SID_SCATTR_PAGE_HEADERRIGHT,
71cdf0e10cSrcweir 										   0 };
72cdf0e10cSrcweir 
73cdf0e10cSrcweir static sal_uInt16 pPageRightFooterRanges[] = { SID_SCATTR_PAGE_FOOTERRIGHT,
74cdf0e10cSrcweir 										   SID_SCATTR_PAGE_FOOTERRIGHT,
75cdf0e10cSrcweir 										   0 };
76cdf0e10cSrcweir 
77cdf0e10cSrcweir static sal_uInt16 pPageLeftHeaderRanges[] =  { SID_SCATTR_PAGE_HEADERLEFT,
78cdf0e10cSrcweir 										   SID_SCATTR_PAGE_HEADERLEFT,
79cdf0e10cSrcweir 										   0 };
80cdf0e10cSrcweir 
81cdf0e10cSrcweir static sal_uInt16 pPageLeftFooterRanges[] =  { SID_SCATTR_PAGE_FOOTERLEFT,
82cdf0e10cSrcweir 										   SID_SCATTR_PAGE_FOOTERLEFT,
83cdf0e10cSrcweir 										   0 };
84cdf0e10cSrcweir 
85cdf0e10cSrcweir 
86cdf0e10cSrcweir static ScEditWindow* pActiveEdWnd = NULL;
87cdf0e10cSrcweir 
88cdf0e10cSrcweir 
89cdf0e10cSrcweir //========================================================================
90cdf0e10cSrcweir // class ScHFEditPage
91cdf0e10cSrcweir //
92cdf0e10cSrcweir 
ScHFEditPage(Window * pParent,sal_uInt16 nResId,const SfxItemSet & rCoreAttrs,sal_uInt16 nWhichId,bool bHeader)93cdf0e10cSrcweir ScHFEditPage::ScHFEditPage( Window* 			pParent,
94cdf0e10cSrcweir 							sal_uInt16				nResId,
95cdf0e10cSrcweir 							const SfxItemSet&	rCoreAttrs,
96cdf0e10cSrcweir 							sal_uInt16				nWhichId,
97cdf0e10cSrcweir 							bool bHeader  )
98cdf0e10cSrcweir 
99cdf0e10cSrcweir 	:	SfxTabPage		( pParent, ScResId( nResId ), rCoreAttrs ),
100cdf0e10cSrcweir 
101cdf0e10cSrcweir 		aFtLeft 		( this, ScResId( FT_LEFT ) ),
102cdf0e10cSrcweir 		aWndLeft		( this, ScResId( WND_LEFT ), Left ),
103cdf0e10cSrcweir 		aFtCenter		( this, ScResId( FT_CENTER ) ),
104cdf0e10cSrcweir 		aWndCenter		( this, ScResId( WND_CENTER ), Center ),
105cdf0e10cSrcweir 		aFtRight		( this, ScResId( FT_RIGHT ) ),
106cdf0e10cSrcweir 		aWndRight		( this, ScResId( WND_RIGHT ), Right ),
107cdf0e10cSrcweir 		maFtDefinedHF		( this, ScResId( FT_HF_DEFINED ) ),
108cdf0e10cSrcweir 		maLbDefined		( this, ScResId( LB_DEFINED ) ),
109cdf0e10cSrcweir 		maFtCustomHF		( this, ScResId( FT_HF_CUSTOM ) ),
110cdf0e10cSrcweir 		aBtnText		( this, ScResId( BTN_TEXT ) ),
111cdf0e10cSrcweir 		aBtnFile		( this, ScResId( BTN_FILE ) ),
112cdf0e10cSrcweir 		aBtnTable		( this, ScResId( BTN_TABLE ) ),
113cdf0e10cSrcweir 		aBtnPage		( this, ScResId( BTN_PAGE ) ),
114cdf0e10cSrcweir 		aBtnLastPage	( this, ScResId( BTN_PAGES ) ),
115cdf0e10cSrcweir 		aBtnDate		( this, ScResId( BTN_DATE ) ),
116cdf0e10cSrcweir 		aBtnTime		( this, ScResId( BTN_TIME ) ),
117cdf0e10cSrcweir 		aFlInfo 		( this, ScResId( FL_INFO ) ),
118cdf0e10cSrcweir 		aFtInfo 		( this, ScResId( FT_INFO ) ),
119cdf0e10cSrcweir 		aPopUpFile		( ScResId( RID_POPUP_FCOMMAND) ),
120cdf0e10cSrcweir 		nWhich			( nWhichId )
121cdf0e10cSrcweir {
122cdf0e10cSrcweir 	//!	use default style from current document?
123cdf0e10cSrcweir 	//!	if font color is used, header/footer background color must be set
124cdf0e10cSrcweir 
125cdf0e10cSrcweir 	ScPatternAttr	aPatAttr( rCoreAttrs.GetPool() );
126cdf0e10cSrcweir 
127cdf0e10cSrcweir 
128cdf0e10cSrcweir 	aBtnFile.SetPopupMenu(&aPopUpFile);
129cdf0e10cSrcweir 
130cdf0e10cSrcweir 	maLbDefined.SetSelectHdl( LINK( this, ScHFEditPage, ListHdl_Impl ) );
131cdf0e10cSrcweir 	aBtnFile.SetMenuHdl( LINK( this, ScHFEditPage, MenuHdl ) );
132cdf0e10cSrcweir 	aBtnText	.SetClickHdl( LINK( this, ScHFEditPage, ClickHdl ) );
133cdf0e10cSrcweir 	aBtnPage	.SetClickHdl( LINK( this, ScHFEditPage, ClickHdl ) );
134cdf0e10cSrcweir 	aBtnLastPage.SetClickHdl( LINK( this, ScHFEditPage, ClickHdl ) );
135cdf0e10cSrcweir 	aBtnDate	.SetClickHdl( LINK( this, ScHFEditPage, ClickHdl ) );
136cdf0e10cSrcweir 	aBtnTime	.SetClickHdl( LINK( this, ScHFEditPage, ClickHdl ) );
137cdf0e10cSrcweir 	aBtnFile	.SetClickHdl( LINK( this, ScHFEditPage, ClickHdl ) );
138cdf0e10cSrcweir 	aBtnTable	.SetClickHdl( LINK( this, ScHFEditPage, ClickHdl ) );
139cdf0e10cSrcweir 
140cdf0e10cSrcweir     aBtnText    .SetModeImage( Image( ScResId( IMG_TEXT_H  ) ), BMP_COLOR_HIGHCONTRAST );
141cdf0e10cSrcweir     aBtnFile    .SetModeImage( Image( ScResId( IMG_FILE_H  ) ), BMP_COLOR_HIGHCONTRAST );
142cdf0e10cSrcweir     aBtnTable   .SetModeImage( Image( ScResId( IMG_TABLE_H ) ), BMP_COLOR_HIGHCONTRAST );
143cdf0e10cSrcweir     aBtnPage    .SetModeImage( Image( ScResId( IMG_PAGE_H  ) ), BMP_COLOR_HIGHCONTRAST );
144cdf0e10cSrcweir     aBtnLastPage.SetModeImage( Image( ScResId( IMG_PAGES_H ) ), BMP_COLOR_HIGHCONTRAST );
145cdf0e10cSrcweir     aBtnDate    .SetModeImage( Image( ScResId( IMG_DATE_H  ) ), BMP_COLOR_HIGHCONTRAST );
146cdf0e10cSrcweir     aBtnTime    .SetModeImage( Image( ScResId( IMG_TIME_H  ) ), BMP_COLOR_HIGHCONTRAST );
147cdf0e10cSrcweir 
148cdf0e10cSrcweir     if(!bHeader)
149cdf0e10cSrcweir     {
150cdf0e10cSrcweir         maFtDefinedHF.SetText(ScGlobal::GetRscString( STR_FOOTER ));
151cdf0e10cSrcweir         maFtCustomHF.SetText(ScGlobal::GetRscString( STR_HF_CUSTOM_FOOTER ));
152cdf0e10cSrcweir     }
153cdf0e10cSrcweir 	if( Application::GetSettings().GetLayoutRTL() )
154cdf0e10cSrcweir 	{
155cdf0e10cSrcweir 		Point pt1 = aWndLeft.GetPosPixel();
156cdf0e10cSrcweir 		Point pt2 = aWndRight.GetPosPixel();
157cdf0e10cSrcweir 		aWndLeft.SetPosPixel(pt2);
158cdf0e10cSrcweir 		aWndRight.SetPosPixel(pt1);
159cdf0e10cSrcweir 
160cdf0e10cSrcweir 		pt1 = aFtLeft.GetPosPixel();
161cdf0e10cSrcweir 		pt2 = aFtRight.GetPosPixel();
162cdf0e10cSrcweir 		aFtLeft.SetPosPixel(pt2);
163cdf0e10cSrcweir 		aFtRight.SetPosPixel(pt1);
164cdf0e10cSrcweir 	}
165cdf0e10cSrcweir 	aWndLeft.	SetFont( aPatAttr );
166cdf0e10cSrcweir 	aWndCenter. SetFont( aPatAttr );
167cdf0e10cSrcweir 	aWndRight.	SetFont( aPatAttr );
168cdf0e10cSrcweir 
169*0deba7fbSSteve Yin 	aWndLeft.SetObjectSelectHdl( LINK(this,ScHFEditPage,ObjectSelectHdl) );
170*0deba7fbSSteve Yin 	aWndCenter.SetObjectSelectHdl( LINK(this,ScHFEditPage,ObjectSelectHdl) );
171*0deba7fbSSteve Yin 	aWndRight.SetObjectSelectHdl( LINK(this,ScHFEditPage,ObjectSelectHdl) );
172*0deba7fbSSteve Yin 	aBtnText.SetAccessibleRelationMemberOf( &maFtCustomHF );
173*0deba7fbSSteve Yin 	aBtnFile.SetAccessibleRelationMemberOf( &maFtCustomHF );
174*0deba7fbSSteve Yin 	aBtnTable.SetAccessibleRelationMemberOf( &maFtCustomHF );
175*0deba7fbSSteve Yin 	aBtnPage.SetAccessibleRelationMemberOf( &maFtCustomHF );
176*0deba7fbSSteve Yin 	aBtnLastPage.SetAccessibleRelationMemberOf( &maFtCustomHF );
177*0deba7fbSSteve Yin 	aBtnDate.SetAccessibleRelationMemberOf( &maFtCustomHF );
178*0deba7fbSSteve Yin 	aBtnTime.SetAccessibleRelationMemberOf( &maFtCustomHF );
179cdf0e10cSrcweir 	FillCmdArr();
180cdf0e10cSrcweir 
181cdf0e10cSrcweir 	aWndLeft.GrabFocus();
182cdf0e10cSrcweir 
183cdf0e10cSrcweir 	InitPreDefinedList();
184cdf0e10cSrcweir 
185cdf0e10cSrcweir 	FreeResource();
186cdf0e10cSrcweir }
IMPL_LINK(ScHFEditPage,ObjectSelectHdl,ScEditWindow *,pEdit)187*0deba7fbSSteve Yin     IMPL_LINK( ScHFEditPage, ObjectSelectHdl, ScEditWindow*, pEdit )
188*0deba7fbSSteve Yin 	{
189*0deba7fbSSteve Yin 		(void)pEdit;
190*0deba7fbSSteve Yin 	    aBtnText.GrabFocus();
191*0deba7fbSSteve Yin 	    return NULL;
192*0deba7fbSSteve Yin 	}
193cdf0e10cSrcweir 
194cdf0e10cSrcweir // -----------------------------------------------------------------------
195cdf0e10cSrcweir 
~ScHFEditPage()196cdf0e10cSrcweir __EXPORT ScHFEditPage::~ScHFEditPage()
197cdf0e10cSrcweir {
198cdf0e10cSrcweir }
199cdf0e10cSrcweir 
SetNumType(SvxNumType eNumType)200cdf0e10cSrcweir void ScHFEditPage::SetNumType(SvxNumType eNumType)
201cdf0e10cSrcweir {
202cdf0e10cSrcweir 	aWndLeft.SetNumType(eNumType);
203cdf0e10cSrcweir 	aWndCenter.SetNumType(eNumType);
204cdf0e10cSrcweir 	aWndRight.SetNumType(eNumType);
205cdf0e10cSrcweir }
206cdf0e10cSrcweir 
207cdf0e10cSrcweir // -----------------------------------------------------------------------
208cdf0e10cSrcweir 
209cdf0e10cSrcweir #define IS_AVAILABLE(w)(rCoreSet.GetItemState( (w) ) >= SFX_ITEM_AVAILABLE)
210cdf0e10cSrcweir 
Reset(const SfxItemSet & rCoreSet)211cdf0e10cSrcweir void __EXPORT ScHFEditPage::Reset( const SfxItemSet& rCoreSet )
212cdf0e10cSrcweir {
213cdf0e10cSrcweir 	if ( IS_AVAILABLE( nWhich ) )
214cdf0e10cSrcweir 	{
215cdf0e10cSrcweir 		const ScPageHFItem& rItem = (const ScPageHFItem&)(rCoreSet.Get( nWhich ));
216cdf0e10cSrcweir 
217cdf0e10cSrcweir         if( const EditTextObject* pLeft = rItem.GetLeftArea() )
218cdf0e10cSrcweir             aWndLeft.SetText( *pLeft );
219cdf0e10cSrcweir         if( const EditTextObject* pCenter = rItem.GetCenterArea() )
220cdf0e10cSrcweir             aWndCenter.SetText( *pCenter );
221cdf0e10cSrcweir         if( const EditTextObject* pRight = rItem.GetRightArea() )
222cdf0e10cSrcweir             aWndRight.SetText( *pRight );
223cdf0e10cSrcweir 
224cdf0e10cSrcweir 		SetSelectDefinedList();
225cdf0e10cSrcweir 	}
226cdf0e10cSrcweir }
227cdf0e10cSrcweir 
228cdf0e10cSrcweir #undef IS_AVAILABLE
229cdf0e10cSrcweir 
230cdf0e10cSrcweir // -----------------------------------------------------------------------
231cdf0e10cSrcweir 
FillItemSet(SfxItemSet & rCoreSet)232cdf0e10cSrcweir sal_Bool __EXPORT ScHFEditPage::FillItemSet( SfxItemSet& rCoreSet )
233cdf0e10cSrcweir {
234cdf0e10cSrcweir 	ScPageHFItem	aItem( nWhich );
235cdf0e10cSrcweir 	EditTextObject* pLeft	= aWndLeft	.CreateTextObject();
236cdf0e10cSrcweir 	EditTextObject* pCenter = aWndCenter.CreateTextObject();
237cdf0e10cSrcweir 	EditTextObject* pRight	= aWndRight .CreateTextObject();
238cdf0e10cSrcweir 
239cdf0e10cSrcweir 	aItem.SetLeftArea  ( *pLeft );
240cdf0e10cSrcweir 	aItem.SetCenterArea( *pCenter );
241cdf0e10cSrcweir 	aItem.SetRightArea ( *pRight );
242cdf0e10cSrcweir 	delete pLeft;
243cdf0e10cSrcweir 	delete pCenter;
244cdf0e10cSrcweir 	delete pRight;
245cdf0e10cSrcweir 
246cdf0e10cSrcweir 	rCoreSet.Put( aItem );
247cdf0e10cSrcweir 
248cdf0e10cSrcweir 	return sal_True;
249cdf0e10cSrcweir }
250cdf0e10cSrcweir 
251cdf0e10cSrcweir // -----------------------------------------------------------------------
252cdf0e10cSrcweir 
253cdf0e10cSrcweir #define SET_CMD(i,id) \
254cdf0e10cSrcweir 	aCmd  = aDel;							\
255cdf0e10cSrcweir 	aCmd += ScGlobal::GetRscString( id );	\
256cdf0e10cSrcweir 	aCmd += aDel;							\
257cdf0e10cSrcweir 	aCmdArr[i] = aCmd;
258cdf0e10cSrcweir 
259cdf0e10cSrcweir // -----------------------------------------------------------------------
260cdf0e10cSrcweir 
FillCmdArr()261cdf0e10cSrcweir void ScHFEditPage::FillCmdArr()
262cdf0e10cSrcweir {
263cdf0e10cSrcweir 	String aDel( ScGlobal::GetRscString( STR_HFCMD_DELIMITER ) );
264cdf0e10cSrcweir 	String aCmd;
265cdf0e10cSrcweir 
266cdf0e10cSrcweir 	SET_CMD( 0, STR_HFCMD_PAGE )
267cdf0e10cSrcweir 	SET_CMD( 1, STR_HFCMD_PAGES )
268cdf0e10cSrcweir 	SET_CMD( 2, STR_HFCMD_DATE )
269cdf0e10cSrcweir 	SET_CMD( 3, STR_HFCMD_TIME )
270cdf0e10cSrcweir 	SET_CMD( 4, STR_HFCMD_FILE )
271cdf0e10cSrcweir 	SET_CMD( 5, STR_HFCMD_TABLE )
272cdf0e10cSrcweir }
273cdf0e10cSrcweir 
274cdf0e10cSrcweir #undef SET_CMD
275cdf0e10cSrcweir 
InitPreDefinedList()276cdf0e10cSrcweir void ScHFEditPage::InitPreDefinedList()
277cdf0e10cSrcweir {
278cdf0e10cSrcweir     SvtUserOptions aUserOpt;
279cdf0e10cSrcweir 
280cdf0e10cSrcweir     Color* pTxtColour = NULL;
281cdf0e10cSrcweir     Color* pFldColour = NULL;
282cdf0e10cSrcweir 
283cdf0e10cSrcweir     // Get the all field values at the outset.
284cdf0e10cSrcweir     String aPageFieldValue(aWndLeft.GetEditEngine()->CalcFieldValue(SvxFieldItem(SvxPageField(), EE_FEATURE_FIELD), 0,0, pTxtColour, pFldColour));
285cdf0e10cSrcweir     String aSheetFieldValue(aWndLeft.GetEditEngine()->CalcFieldValue(SvxFieldItem(SvxTableField(), EE_FEATURE_FIELD), 0,0, pTxtColour, pFldColour));
286cdf0e10cSrcweir     String aFileFieldValue(aWndLeft.GetEditEngine()->CalcFieldValue(SvxFieldItem(SvxFileField(), EE_FEATURE_FIELD), 0,0, pTxtColour, pFldColour));
287cdf0e10cSrcweir     String aExtFileFieldValue(aWndLeft.GetEditEngine()->CalcFieldValue(SvxFieldItem(SvxExtFileField(), EE_FEATURE_FIELD), 0,0, pTxtColour, pFldColour));
288cdf0e10cSrcweir     String aDateFieldValue(aWndLeft.GetEditEngine()->CalcFieldValue(SvxFieldItem(SvxDateField(), EE_FEATURE_FIELD), 0,0, pTxtColour, pFldColour));
289cdf0e10cSrcweir 
290cdf0e10cSrcweir     maLbDefined.Clear();
291cdf0e10cSrcweir 
292cdf0e10cSrcweir     maLbDefined.InsertEntry( ScGlobal::GetRscString( STR_HF_NONE_IN_BRACKETS ));
293cdf0e10cSrcweir 
294cdf0e10cSrcweir     String aPageEntry(ScGlobal::GetRscString( STR_PAGE ) );
295cdf0e10cSrcweir     aPageEntry += ' ';
296cdf0e10cSrcweir     aPageEntry += aPageFieldValue;
297cdf0e10cSrcweir     maLbDefined.InsertEntry(aPageEntry);
298cdf0e10cSrcweir 
299cdf0e10cSrcweir     String aPageOfEntry(aPageEntry);
300cdf0e10cSrcweir     aPageOfEntry += ' ';
301cdf0e10cSrcweir     aPageOfEntry += ScGlobal::GetRscString( STR_HF_OF_QUESTION );
302cdf0e10cSrcweir     maLbDefined.InsertEntry( aPageOfEntry);
303cdf0e10cSrcweir 
304cdf0e10cSrcweir     maLbDefined.InsertEntry(aSheetFieldValue);
305cdf0e10cSrcweir 
306cdf0e10cSrcweir     String aConfidentialEntry(aUserOpt.GetCompany());
307cdf0e10cSrcweir     aConfidentialEntry += ' ';
308cdf0e10cSrcweir     aConfidentialEntry += ScGlobal::GetRscString( STR_HF_CONFIDENTIAL );
309cdf0e10cSrcweir     aConfidentialEntry.AppendAscii(RTL_CONSTASCII_STRINGPARAM(", "));
310cdf0e10cSrcweir     aConfidentialEntry += aDateFieldValue;
311cdf0e10cSrcweir     aConfidentialEntry.AppendAscii(RTL_CONSTASCII_STRINGPARAM(", "));
312cdf0e10cSrcweir     aConfidentialEntry += aPageEntry;
313cdf0e10cSrcweir     maLbDefined.InsertEntry( aConfidentialEntry);
314cdf0e10cSrcweir 
315cdf0e10cSrcweir     String aFileNamePageEntry(aFileFieldValue);
316cdf0e10cSrcweir     aFileNamePageEntry.AppendAscii(RTL_CONSTASCII_STRINGPARAM(", "));
317cdf0e10cSrcweir     aFileNamePageEntry += aPageEntry;
318cdf0e10cSrcweir     maLbDefined.InsertEntry( aFileNamePageEntry);
319cdf0e10cSrcweir 
320cdf0e10cSrcweir     maLbDefined.InsertEntry( aExtFileFieldValue);
321cdf0e10cSrcweir 
322cdf0e10cSrcweir     String aPageSheetNameEntry(aPageEntry);
323cdf0e10cSrcweir     aPageSheetNameEntry.AppendAscii(RTL_CONSTASCII_STRINGPARAM(", "));
324cdf0e10cSrcweir     aPageSheetNameEntry += aSheetFieldValue;
325cdf0e10cSrcweir     maLbDefined.InsertEntry( aPageSheetNameEntry);
326cdf0e10cSrcweir 
327cdf0e10cSrcweir     String aPageFileNameEntry(aPageEntry);
328cdf0e10cSrcweir     aPageFileNameEntry.AppendAscii(RTL_CONSTASCII_STRINGPARAM(", "));
329cdf0e10cSrcweir     aPageFileNameEntry += aFileFieldValue;
330cdf0e10cSrcweir     maLbDefined.InsertEntry( aPageFileNameEntry);
331cdf0e10cSrcweir 
332cdf0e10cSrcweir     String aPagePathNameEntry(aPageEntry);
333cdf0e10cSrcweir     aPagePathNameEntry.AppendAscii(RTL_CONSTASCII_STRINGPARAM(", "));
334cdf0e10cSrcweir     aPagePathNameEntry += aExtFileFieldValue;
335cdf0e10cSrcweir     maLbDefined.InsertEntry( aPagePathNameEntry);
336cdf0e10cSrcweir 
337cdf0e10cSrcweir     String aUserNameEntry(aUserOpt.GetFirstName());
338cdf0e10cSrcweir     aUserNameEntry += ' ';
339cdf0e10cSrcweir     aUserNameEntry += (String)aUserOpt.GetLastName();
340cdf0e10cSrcweir     aUserNameEntry.AppendAscii(RTL_CONSTASCII_STRINGPARAM(", "));
341cdf0e10cSrcweir     aUserNameEntry += aPageEntry;
342cdf0e10cSrcweir     aUserNameEntry.AppendAscii(RTL_CONSTASCII_STRINGPARAM(", "));
343cdf0e10cSrcweir     aUserNameEntry += aDateFieldValue;
344cdf0e10cSrcweir     maLbDefined.InsertEntry( aUserNameEntry);
345cdf0e10cSrcweir 
346cdf0e10cSrcweir     String aCreatedByEntry(ScGlobal::GetRscString( STR_HF_CREATED_BY ) );
347cdf0e10cSrcweir     aCreatedByEntry += ' ';
348cdf0e10cSrcweir     aCreatedByEntry += (String)aUserOpt.GetFirstName();
349cdf0e10cSrcweir     aCreatedByEntry += ' ';
350cdf0e10cSrcweir     aCreatedByEntry += (String)aUserOpt.GetLastName();
351cdf0e10cSrcweir     aCreatedByEntry.AppendAscii(RTL_CONSTASCII_STRINGPARAM(", "));
352cdf0e10cSrcweir     aCreatedByEntry += aDateFieldValue;
353cdf0e10cSrcweir     aCreatedByEntry.AppendAscii(RTL_CONSTASCII_STRINGPARAM(", "));
354cdf0e10cSrcweir     aCreatedByEntry += aPageEntry;
355cdf0e10cSrcweir     maLbDefined.InsertEntry( aCreatedByEntry);
356cdf0e10cSrcweir }
357cdf0e10cSrcweir 
InsertToDefinedList()358cdf0e10cSrcweir void ScHFEditPage::InsertToDefinedList()
359cdf0e10cSrcweir {
360cdf0e10cSrcweir     sal_uInt16 nCount =  maLbDefined.GetEntryCount();
361cdf0e10cSrcweir     if(nCount == eEntryCount)
362cdf0e10cSrcweir     {
363cdf0e10cSrcweir         String aCustomizedEntry(ScGlobal::GetRscString( STR_HF_CUSTOMIZED ) );
364cdf0e10cSrcweir         maLbDefined.InsertEntry( aCustomizedEntry);
365cdf0e10cSrcweir         maLbDefined.SelectEntryPos(eEntryCount);
366cdf0e10cSrcweir     }
367cdf0e10cSrcweir }
368cdf0e10cSrcweir 
RemoveFromDefinedList()369cdf0e10cSrcweir void ScHFEditPage::RemoveFromDefinedList()
370cdf0e10cSrcweir {
371cdf0e10cSrcweir     sal_uInt16 nCount =  maLbDefined.GetEntryCount();
372cdf0e10cSrcweir     if(nCount > eEntryCount )
373cdf0e10cSrcweir         maLbDefined.RemoveEntry( nCount-1);
374cdf0e10cSrcweir }
375cdf0e10cSrcweir 
376cdf0e10cSrcweir // determine if the header/footer exists in our predefined list and set select to it.
SetSelectDefinedList()377cdf0e10cSrcweir void ScHFEditPage::SetSelectDefinedList()
378cdf0e10cSrcweir {
379cdf0e10cSrcweir     SvtUserOptions aUserOpt;
380cdf0e10cSrcweir 
381cdf0e10cSrcweir     // default to customized
382cdf0e10cSrcweir     ScHFEntryId eSelectEntry = eEntryCount;
383cdf0e10cSrcweir 
384cdf0e10cSrcweir     ::std::auto_ptr< EditTextObject > pLeftObj;
385cdf0e10cSrcweir     ::std::auto_ptr< EditTextObject > pCenterObj;
386cdf0e10cSrcweir     ::std::auto_ptr< EditTextObject > pRightObj;
387cdf0e10cSrcweir 
388cdf0e10cSrcweir     XubString aLeftEntry;
389cdf0e10cSrcweir     XubString aCenterEntry;
390cdf0e10cSrcweir     XubString aRightEntry;
391cdf0e10cSrcweir 
392cdf0e10cSrcweir     pLeftObj.reset(aWndLeft.GetEditEngine()->CreateTextObject());
393cdf0e10cSrcweir     pCenterObj.reset(aWndCenter.GetEditEngine()->CreateTextObject());
394cdf0e10cSrcweir     pRightObj.reset(aWndRight.GetEditEngine()->CreateTextObject());
395cdf0e10cSrcweir 
396cdf0e10cSrcweir     bool bFound = false;
397cdf0e10cSrcweir 
398cdf0e10cSrcweir     sal_uInt16 i;
399cdf0e10cSrcweir     sal_uInt16 nCount =  maLbDefined.GetEntryCount();
400cdf0e10cSrcweir     for(i = 0; i < nCount && !bFound; i++)
401cdf0e10cSrcweir     {
402cdf0e10cSrcweir         switch(static_cast<ScHFEntryId>(i))
403cdf0e10cSrcweir         {
404cdf0e10cSrcweir             case eNoneEntry:
405cdf0e10cSrcweir             {
406cdf0e10cSrcweir                 aLeftEntry = pLeftObj->GetText(0);
407cdf0e10cSrcweir                 aCenterEntry = pCenterObj->GetText(0);
408cdf0e10cSrcweir                 aRightEntry = pRightObj->GetText(0);
409cdf0e10cSrcweir                 if(aLeftEntry == EMPTY_STRING && aCenterEntry == EMPTY_STRING
410cdf0e10cSrcweir                     && aRightEntry == EMPTY_STRING)
411cdf0e10cSrcweir                 {
412cdf0e10cSrcweir                     eSelectEntry = eNoneEntry;
413cdf0e10cSrcweir                     bFound = true;
414cdf0e10cSrcweir                 }
415cdf0e10cSrcweir             }
416cdf0e10cSrcweir             break;
417cdf0e10cSrcweir 
418cdf0e10cSrcweir             case ePageEntry:
419cdf0e10cSrcweir             {
420cdf0e10cSrcweir                 aLeftEntry = pLeftObj->GetText(0);
421cdf0e10cSrcweir                 aRightEntry = pRightObj->GetText(0);
422cdf0e10cSrcweir                 if(aLeftEntry == EMPTY_STRING && aRightEntry == EMPTY_STRING)
423cdf0e10cSrcweir                 {
424cdf0e10cSrcweir                     if(IsPageEntry(aWndCenter.GetEditEngine(), pCenterObj.get()))
425cdf0e10cSrcweir                     {
426cdf0e10cSrcweir                         eSelectEntry = ePageEntry;
427cdf0e10cSrcweir                         bFound = true;
428cdf0e10cSrcweir                     }
429cdf0e10cSrcweir                 }
430cdf0e10cSrcweir             }
431cdf0e10cSrcweir             break;
432cdf0e10cSrcweir 
433cdf0e10cSrcweir 
434cdf0e10cSrcweir             //TODO
435cdf0e10cSrcweir             case ePagesEntry:
436cdf0e10cSrcweir             {
437cdf0e10cSrcweir             }
438cdf0e10cSrcweir             break;
439cdf0e10cSrcweir 
440cdf0e10cSrcweir             case eSheetEntry:
441cdf0e10cSrcweir             {
442cdf0e10cSrcweir                 aLeftEntry = pLeftObj->GetText(0);
443cdf0e10cSrcweir                 aRightEntry = pRightObj->GetText(0);
444cdf0e10cSrcweir                 if(aLeftEntry == EMPTY_STRING && aRightEntry == EMPTY_STRING)
445cdf0e10cSrcweir                 {
446cdf0e10cSrcweir                     if(pCenterObj->IsFieldObject())
447cdf0e10cSrcweir                     {
448cdf0e10cSrcweir                         const SvxFieldItem* pFieldItem = pCenterObj->GetField();
449cdf0e10cSrcweir                         if(pFieldItem)
450cdf0e10cSrcweir                         {
451cdf0e10cSrcweir                             const SvxFieldData* pField = pFieldItem->GetField();
452cdf0e10cSrcweir                             if(pField && pField->ISA(SvxTableField))
453cdf0e10cSrcweir                             {
454cdf0e10cSrcweir                                 eSelectEntry = eSheetEntry;
455cdf0e10cSrcweir                                 bFound = true;
456cdf0e10cSrcweir                             }
457cdf0e10cSrcweir                         }
458cdf0e10cSrcweir                     }
459cdf0e10cSrcweir                 }
460cdf0e10cSrcweir             }
461cdf0e10cSrcweir             break;
462cdf0e10cSrcweir 
463cdf0e10cSrcweir             case eConfidentialEntry:
464cdf0e10cSrcweir             {
465cdf0e10cSrcweir                 if(IsDateEntry(pCenterObj.get()) && IsPageEntry(aWndRight.GetEditEngine(), pRightObj.get()))
466cdf0e10cSrcweir                 {
467cdf0e10cSrcweir                     String aConfidentialEntry(aUserOpt.GetCompany());
468cdf0e10cSrcweir                     aConfidentialEntry += ' ';
469cdf0e10cSrcweir                     aConfidentialEntry += ScGlobal::GetRscString( STR_HF_CONFIDENTIAL );
470cdf0e10cSrcweir                     if(aConfidentialEntry == aWndLeft.GetEditEngine()->GetText(0))
471cdf0e10cSrcweir                     {
472cdf0e10cSrcweir                         eSelectEntry = eConfidentialEntry;
473cdf0e10cSrcweir                         bFound = true;
474cdf0e10cSrcweir                     }
475cdf0e10cSrcweir                 }
476cdf0e10cSrcweir             }
477cdf0e10cSrcweir             break;
478cdf0e10cSrcweir 
479cdf0e10cSrcweir             //TODO
480cdf0e10cSrcweir             case eFileNamePageEntry:
481cdf0e10cSrcweir             {
482cdf0e10cSrcweir             }
483cdf0e10cSrcweir             break;
484cdf0e10cSrcweir 
485cdf0e10cSrcweir             case eExtFileNameEntry:
486cdf0e10cSrcweir             {
487cdf0e10cSrcweir                 aLeftEntry = pLeftObj->GetText(0);
488cdf0e10cSrcweir                 aRightEntry = pRightObj->GetText(0);
489cdf0e10cSrcweir                 if(IsExtFileNameEntry(pCenterObj.get()) && aLeftEntry == EMPTY_STRING
490cdf0e10cSrcweir                     && aRightEntry == EMPTY_STRING)
491cdf0e10cSrcweir                 {
492cdf0e10cSrcweir                     eSelectEntry = eExtFileNameEntry;
493cdf0e10cSrcweir                     bFound = true;
494cdf0e10cSrcweir                 }
495cdf0e10cSrcweir             }
496cdf0e10cSrcweir             break;
497cdf0e10cSrcweir 
498cdf0e10cSrcweir             //TODO
499cdf0e10cSrcweir             case ePageSheetEntry:
500cdf0e10cSrcweir             {
501cdf0e10cSrcweir             }
502cdf0e10cSrcweir             break;
503cdf0e10cSrcweir 
504cdf0e10cSrcweir             //TODO
505cdf0e10cSrcweir             case ePageFileNameEntry:
506cdf0e10cSrcweir             {
507cdf0e10cSrcweir             }
508cdf0e10cSrcweir             break;
509cdf0e10cSrcweir 
510cdf0e10cSrcweir             case ePageExtFileNameEntry:
511cdf0e10cSrcweir             {
512cdf0e10cSrcweir                 aLeftEntry = pLeftObj->GetText(0);
513cdf0e10cSrcweir                 if(IsPageEntry(aWndCenter.GetEditEngine(), pCenterObj.get()) &&
514cdf0e10cSrcweir                     IsExtFileNameEntry(pRightObj.get()) && aLeftEntry == EMPTY_STRING)
515cdf0e10cSrcweir                 {
516cdf0e10cSrcweir                     eSelectEntry = ePageExtFileNameEntry;
517cdf0e10cSrcweir                     bFound = true;
518cdf0e10cSrcweir                 }
519cdf0e10cSrcweir             }
520cdf0e10cSrcweir             break;
521cdf0e10cSrcweir 
522cdf0e10cSrcweir             case eUserNameEntry:
523cdf0e10cSrcweir             {
524cdf0e10cSrcweir                 if(IsDateEntry(pRightObj.get()) && IsPageEntry(aWndCenter.GetEditEngine(), pCenterObj.get()))
525cdf0e10cSrcweir                 {
526cdf0e10cSrcweir                     String aUserNameEntry(aUserOpt.GetFirstName());
527cdf0e10cSrcweir                     aUserNameEntry += ' ';
528cdf0e10cSrcweir                     aUserNameEntry += (String)aUserOpt.GetLastName();
529cdf0e10cSrcweir                     if(aUserNameEntry == aWndLeft.GetEditEngine()->GetText(0))
530cdf0e10cSrcweir                     {
531cdf0e10cSrcweir                         eSelectEntry = eUserNameEntry;
532cdf0e10cSrcweir                         bFound = true;
533cdf0e10cSrcweir                     }
534cdf0e10cSrcweir                 }
535cdf0e10cSrcweir             }
536cdf0e10cSrcweir             break;
537cdf0e10cSrcweir 
538cdf0e10cSrcweir             case eCreatedByEntry:
539cdf0e10cSrcweir             {
540cdf0e10cSrcweir                 if(IsDateEntry(pCenterObj.get()) && IsPageEntry(aWndRight.GetEditEngine(), pRightObj.get()))
541cdf0e10cSrcweir                 {
542cdf0e10cSrcweir                     String aCreatedByEntry(ScGlobal::GetRscString( STR_HF_CREATED_BY ) );
543cdf0e10cSrcweir                     aCreatedByEntry += ' ';
544cdf0e10cSrcweir                     aCreatedByEntry += (String)aUserOpt.GetFirstName();
545cdf0e10cSrcweir                     aCreatedByEntry += ' ';
546cdf0e10cSrcweir                     aCreatedByEntry += (String)aUserOpt.GetLastName();
547cdf0e10cSrcweir                     if(aCreatedByEntry == aWndLeft.GetEditEngine()->GetText(0))
548cdf0e10cSrcweir                     {
549cdf0e10cSrcweir                         eSelectEntry = eCreatedByEntry;
550cdf0e10cSrcweir                         bFound = true;
551cdf0e10cSrcweir                     }
552cdf0e10cSrcweir                 }
553cdf0e10cSrcweir             }
554cdf0e10cSrcweir             break;
555cdf0e10cSrcweir 
556cdf0e10cSrcweir             default:
557cdf0e10cSrcweir             {
558cdf0e10cSrcweir                 // added to avoid warnings
559cdf0e10cSrcweir             }
560cdf0e10cSrcweir         }
561cdf0e10cSrcweir     }
562cdf0e10cSrcweir 
563cdf0e10cSrcweir     if(eSelectEntry == eEntryCount)
564cdf0e10cSrcweir         InsertToDefinedList();
565cdf0e10cSrcweir 
566cdf0e10cSrcweir     maLbDefined.SelectEntryPos( sal::static_int_cast<sal_uInt16>( eSelectEntry ) );
567cdf0e10cSrcweir }
568cdf0e10cSrcweir 
IsPageEntry(EditEngine * pEngine,EditTextObject * pTextObj)569cdf0e10cSrcweir bool ScHFEditPage::IsPageEntry(EditEngine*pEngine, EditTextObject* pTextObj)
570cdf0e10cSrcweir {
571cdf0e10cSrcweir     if(!pEngine && !pTextObj)
572cdf0e10cSrcweir         return false;
573cdf0e10cSrcweir 
574cdf0e10cSrcweir     bool bReturn = false;
575cdf0e10cSrcweir 
576cdf0e10cSrcweir     if(!pTextObj->IsFieldObject())
577cdf0e10cSrcweir     {
578cdf0e10cSrcweir         SvUShorts aPosList;
579cdf0e10cSrcweir         pEngine->GetPortions(0,aPosList);
580cdf0e10cSrcweir         if(aPosList.Count() == 2)
581cdf0e10cSrcweir         {
582cdf0e10cSrcweir             String aPageEntry(ScGlobal::GetRscString( STR_PAGE ) );
583cdf0e10cSrcweir             aPageEntry += ' ';
584cdf0e10cSrcweir             ESelection aSel(0,0,0,0);
585cdf0e10cSrcweir             aSel.nEndPos = aPageEntry.Len();
586cdf0e10cSrcweir             if(aPageEntry == pEngine->GetText(aSel))
587cdf0e10cSrcweir             {
588cdf0e10cSrcweir                 aSel.nStartPos = aSel.nEndPos;
589cdf0e10cSrcweir                 aSel.nEndPos++;
590cdf0e10cSrcweir                 ::std::auto_ptr< EditTextObject > pPageObj;
591cdf0e10cSrcweir                 pPageObj.reset(pEngine->CreateTextObject(aSel));
592cdf0e10cSrcweir                 if(pPageObj.get() && pPageObj->IsFieldObject() )
593cdf0e10cSrcweir                 {
594cdf0e10cSrcweir                     const SvxFieldItem* pFieldItem = pPageObj->GetField();
595cdf0e10cSrcweir                     if(pFieldItem)
596cdf0e10cSrcweir                     {
597cdf0e10cSrcweir                         const SvxFieldData* pField = pFieldItem->GetField();
598cdf0e10cSrcweir                         if(pField && pField->ISA(SvxPageField))
599cdf0e10cSrcweir                             bReturn = true;
600cdf0e10cSrcweir                     }
601cdf0e10cSrcweir                 }
602cdf0e10cSrcweir             }
603cdf0e10cSrcweir         }
604cdf0e10cSrcweir     }
605cdf0e10cSrcweir     return bReturn;
606cdf0e10cSrcweir }
607cdf0e10cSrcweir 
IsDateEntry(EditTextObject * pTextObj)608cdf0e10cSrcweir bool ScHFEditPage::IsDateEntry(EditTextObject* pTextObj)
609cdf0e10cSrcweir {
610cdf0e10cSrcweir     if(!pTextObj)
611cdf0e10cSrcweir         return false;
612cdf0e10cSrcweir 
613cdf0e10cSrcweir     bool bReturn = false;
614cdf0e10cSrcweir     if(pTextObj->IsFieldObject())
615cdf0e10cSrcweir     {
616cdf0e10cSrcweir         const SvxFieldItem* pFieldItem = pTextObj->GetField();
617cdf0e10cSrcweir         if(pFieldItem)
618cdf0e10cSrcweir         {
619cdf0e10cSrcweir             const SvxFieldData* pField = pFieldItem->GetField();
620cdf0e10cSrcweir             if(pField && pField->ISA(SvxDateField))
621cdf0e10cSrcweir                 bReturn = true;
622cdf0e10cSrcweir         }
623cdf0e10cSrcweir     }
624cdf0e10cSrcweir     return bReturn;
625cdf0e10cSrcweir }
626cdf0e10cSrcweir 
IsExtFileNameEntry(EditTextObject * pTextObj)627cdf0e10cSrcweir bool ScHFEditPage::IsExtFileNameEntry(EditTextObject* pTextObj)
628cdf0e10cSrcweir {
629cdf0e10cSrcweir     if(!pTextObj)
630cdf0e10cSrcweir         return false;
631cdf0e10cSrcweir     bool bReturn = false;
632cdf0e10cSrcweir     if(pTextObj->IsFieldObject())
633cdf0e10cSrcweir     {
634cdf0e10cSrcweir         const SvxFieldItem* pFieldItem = pTextObj->GetField();
635cdf0e10cSrcweir         if(pFieldItem)
636cdf0e10cSrcweir 	{
637cdf0e10cSrcweir             const SvxFieldData* pField = pFieldItem->GetField();
638cdf0e10cSrcweir             if(pField && pField->ISA(SvxExtFileField))
639cdf0e10cSrcweir                 bReturn = true;
640cdf0e10cSrcweir         }
641cdf0e10cSrcweir     }
642cdf0e10cSrcweir     return bReturn;
643cdf0e10cSrcweir }
644cdf0e10cSrcweir 
ProcessDefinedListSel(ScHFEntryId eSel,bool bTravelling)645cdf0e10cSrcweir void ScHFEditPage::ProcessDefinedListSel(ScHFEntryId eSel, bool bTravelling)
646cdf0e10cSrcweir {
647cdf0e10cSrcweir     SvtUserOptions aUserOpt;
648cdf0e10cSrcweir     ::std::auto_ptr< EditTextObject > pTextObj;
649cdf0e10cSrcweir 
650cdf0e10cSrcweir     switch(eSel)
651cdf0e10cSrcweir     {
652cdf0e10cSrcweir         case eNoneEntry:
653cdf0e10cSrcweir             ClearTextAreas();
654cdf0e10cSrcweir             if(!bTravelling)
655cdf0e10cSrcweir                 aWndLeft.GrabFocus();
656cdf0e10cSrcweir         break;
657cdf0e10cSrcweir 
658cdf0e10cSrcweir         case ePageEntry:
659cdf0e10cSrcweir         {
660cdf0e10cSrcweir             ClearTextAreas();
661cdf0e10cSrcweir             String aPageEntry(ScGlobal::GetRscString( STR_PAGE ) );
662cdf0e10cSrcweir             aPageEntry += ' ';
663cdf0e10cSrcweir             aWndCenter.GetEditEngine()->SetText(aPageEntry);
664cdf0e10cSrcweir             aWndCenter.InsertField( SvxFieldItem(SvxPageField(), EE_FEATURE_FIELD) );
665cdf0e10cSrcweir             if(!bTravelling)
666cdf0e10cSrcweir                 aWndCenter.GrabFocus();
667cdf0e10cSrcweir         }
668cdf0e10cSrcweir         break;
669cdf0e10cSrcweir 
670cdf0e10cSrcweir         case ePagesEntry:
671cdf0e10cSrcweir         {
672cdf0e10cSrcweir             ClearTextAreas();
673cdf0e10cSrcweir             ESelection aSel(0,0,0,0);
674cdf0e10cSrcweir             String aPageEntry(ScGlobal::GetRscString( STR_PAGE ) );
675cdf0e10cSrcweir             aPageEntry += ' ';
676cdf0e10cSrcweir             aWndCenter.GetEditEngine()->SetText(aPageEntry);
677cdf0e10cSrcweir             aSel.nEndPos = aPageEntry.Len();
678cdf0e10cSrcweir             aWndCenter.GetEditEngine()->QuickInsertField(SvxFieldItem(SvxPageField(), EE_FEATURE_FIELD), ESelection(aSel.nEndPara, aSel.nEndPos, aSel.nEndPara, aSel.nEndPos));
679cdf0e10cSrcweir             ++aSel.nEndPos;
680cdf0e10cSrcweir             String aPageOfEntry = ' ';
681cdf0e10cSrcweir             aPageOfEntry += ScGlobal::GetRscString( STR_HF_OF );
682cdf0e10cSrcweir             aPageOfEntry += ' ';
683cdf0e10cSrcweir             aWndCenter.GetEditEngine()->QuickInsertText(aPageOfEntry,ESelection(aSel.nEndPara,aSel.nEndPos, aSel.nEndPara, aSel.nEndPos));
684cdf0e10cSrcweir             aSel.nEndPos = sal::static_int_cast<xub_StrLen>( aSel.nEndPos + aPageOfEntry.Len() );
685cdf0e10cSrcweir             aWndCenter.GetEditEngine()->QuickInsertField(SvxFieldItem(SvxPagesField(), EE_FEATURE_FIELD), ESelection(aSel.nEndPara,aSel.nEndPos, aSel.nEndPara, aSel.nEndPos));
686cdf0e10cSrcweir             pTextObj.reset(aWndCenter.GetEditEngine()->CreateTextObject());
687cdf0e10cSrcweir             aWndCenter.SetText(*pTextObj);
688cdf0e10cSrcweir             XubString aEntry(pTextObj.get()->GetText(0));
689cdf0e10cSrcweir             if(!bTravelling)
690cdf0e10cSrcweir                 aWndCenter.GrabFocus();
691cdf0e10cSrcweir         }
692cdf0e10cSrcweir         break;
693cdf0e10cSrcweir 
694cdf0e10cSrcweir         case eSheetEntry:
695cdf0e10cSrcweir             ClearTextAreas();
696cdf0e10cSrcweir             aWndCenter.InsertField( SvxFieldItem(SvxTableField(), EE_FEATURE_FIELD) );
697cdf0e10cSrcweir             if(!bTravelling)
698cdf0e10cSrcweir                 aWndCenter.GrabFocus();
699cdf0e10cSrcweir         break;
700cdf0e10cSrcweir 
701cdf0e10cSrcweir         case eConfidentialEntry:
702cdf0e10cSrcweir         {
703cdf0e10cSrcweir             ClearTextAreas();
704cdf0e10cSrcweir             String aConfidentialEntry(aUserOpt.GetCompany());
705cdf0e10cSrcweir             aConfidentialEntry += ' ';
706cdf0e10cSrcweir             aConfidentialEntry += ScGlobal::GetRscString( STR_HF_CONFIDENTIAL );
707cdf0e10cSrcweir             aWndLeft.GetEditEngine()->SetText(aConfidentialEntry);
708cdf0e10cSrcweir             aWndCenter.InsertField( SvxFieldItem(SvxDateField(Date(),SVXDATETYPE_VAR), EE_FEATURE_FIELD) );
709cdf0e10cSrcweir             String aPageEntry(ScGlobal::GetRscString( STR_PAGE ) );
710cdf0e10cSrcweir             aPageEntry += ' ';
711cdf0e10cSrcweir             aWndRight.GetEditEngine()->SetText(aPageEntry);
712cdf0e10cSrcweir             aWndRight.InsertField( SvxFieldItem(SvxPageField(), EE_FEATURE_FIELD) );
713cdf0e10cSrcweir             if(!bTravelling)
714cdf0e10cSrcweir                 aWndRight.GrabFocus();
715cdf0e10cSrcweir         }
716cdf0e10cSrcweir         break;
717cdf0e10cSrcweir 
718cdf0e10cSrcweir         case eFileNamePageEntry:
719cdf0e10cSrcweir         {
720cdf0e10cSrcweir             ClearTextAreas();
721cdf0e10cSrcweir             ESelection aSel(0,0,0,0);
722cdf0e10cSrcweir             aWndCenter.GetEditEngine()->QuickInsertField(SvxFieldItem( SvxFileField(), EE_FEATURE_FIELD ), aSel );
723cdf0e10cSrcweir             ++aSel.nEndPos;
724cdf0e10cSrcweir             String aPageEntry(RTL_CONSTASCII_STRINGPARAM(", "));
725cdf0e10cSrcweir             aPageEntry += ScGlobal::GetRscString( STR_PAGE ) ;
726cdf0e10cSrcweir             aPageEntry += ' ';
727cdf0e10cSrcweir             aWndCenter.GetEditEngine()->QuickInsertText(aPageEntry, ESelection(aSel.nEndPara,aSel.nEndPos, aSel.nEndPara, aSel.nEndPos));
728cdf0e10cSrcweir             aSel.nStartPos = aSel.nEndPos;
729cdf0e10cSrcweir             aSel.nEndPos = sal::static_int_cast<xub_StrLen>( aSel.nEndPos + aPageEntry.Len() );
730cdf0e10cSrcweir             aWndCenter.GetEditEngine()->QuickInsertField(SvxFieldItem(SvxPageField(), EE_FEATURE_FIELD), ESelection(aSel.nEndPara,aSel.nEndPos, aSel.nEndPara, aSel.nEndPos));
731cdf0e10cSrcweir             pTextObj.reset(aWndCenter.GetEditEngine()->CreateTextObject());
732cdf0e10cSrcweir             aWndCenter.SetText(*pTextObj);
733cdf0e10cSrcweir             XubString aEntry2(pTextObj.get()->GetText(0));
734cdf0e10cSrcweir             if(!bTravelling)
735cdf0e10cSrcweir                 aWndCenter.GrabFocus();
736cdf0e10cSrcweir         }
737cdf0e10cSrcweir         break;
738cdf0e10cSrcweir 
739cdf0e10cSrcweir         case eExtFileNameEntry:
740cdf0e10cSrcweir             ClearTextAreas();
741cdf0e10cSrcweir             aWndCenter.InsertField( SvxFieldItem( SvxExtFileField(
742cdf0e10cSrcweir                 EMPTY_STRING, SVXFILETYPE_VAR, SVXFILEFORMAT_FULLPATH ), EE_FEATURE_FIELD ) );
743cdf0e10cSrcweir             if(!bTravelling)
744cdf0e10cSrcweir                 aWndCenter.GrabFocus();
745cdf0e10cSrcweir         break;
746cdf0e10cSrcweir 
747cdf0e10cSrcweir         case ePageSheetEntry:
748cdf0e10cSrcweir         {
749cdf0e10cSrcweir             ClearTextAreas();
750cdf0e10cSrcweir             ESelection aSel(0,0,0,0);
751cdf0e10cSrcweir             String aPageEntry(ScGlobal::GetRscString( STR_PAGE ) );
752cdf0e10cSrcweir             aPageEntry += ' ';
753cdf0e10cSrcweir             aWndCenter.GetEditEngine()->SetText(aPageEntry);
754cdf0e10cSrcweir             aSel.nEndPos = aPageEntry.Len();
755cdf0e10cSrcweir             aWndCenter.GetEditEngine()->QuickInsertField(SvxFieldItem(SvxPageField(), EE_FEATURE_FIELD), ESelection(aSel.nEndPara, aSel.nEndPos, aSel.nEndPara, aSel.nEndPos));
756cdf0e10cSrcweir             ++aSel.nEndPos;
757cdf0e10cSrcweir             String aCommaSpace(RTL_CONSTASCII_STRINGPARAM(", "));
758cdf0e10cSrcweir             aWndCenter.GetEditEngine()->QuickInsertText(aCommaSpace,ESelection(aSel.nEndPara, aSel.nEndPos, aSel.nEndPara, aSel.nEndPos));
759cdf0e10cSrcweir             aSel.nEndPos = sal::static_int_cast<xub_StrLen>( aSel.nEndPos + aCommaSpace.Len() );
760cdf0e10cSrcweir             aWndCenter.GetEditEngine()->QuickInsertField( SvxFieldItem(SvxTableField(), EE_FEATURE_FIELD), ESelection(aSel.nEndPara, aSel.nEndPos, aSel.nEndPara, aSel.nEndPos));
761cdf0e10cSrcweir             pTextObj.reset(aWndCenter.GetEditEngine()->CreateTextObject());
762cdf0e10cSrcweir             aWndCenter.SetText(*pTextObj);
763cdf0e10cSrcweir             if(!bTravelling)
764cdf0e10cSrcweir                 aWndCenter.GrabFocus();
765cdf0e10cSrcweir         }
766cdf0e10cSrcweir         break;
767cdf0e10cSrcweir 
768cdf0e10cSrcweir         case ePageFileNameEntry:
769cdf0e10cSrcweir         {
770cdf0e10cSrcweir             ClearTextAreas();
771cdf0e10cSrcweir             ESelection aSel(0,0,0,0);
772cdf0e10cSrcweir             String aPageEntry(ScGlobal::GetRscString( STR_PAGE ) );
773cdf0e10cSrcweir             aPageEntry += ' ';
774cdf0e10cSrcweir             aWndCenter.GetEditEngine()->SetText(aPageEntry);
775cdf0e10cSrcweir             aSel.nEndPos = aPageEntry.Len();
776cdf0e10cSrcweir             aWndCenter.GetEditEngine()->QuickInsertField(SvxFieldItem(SvxPageField(), EE_FEATURE_FIELD), ESelection(aSel.nEndPara, aSel.nEndPos, aSel.nEndPara, aSel.nEndPos));
777cdf0e10cSrcweir             ++aSel.nEndPos;
778cdf0e10cSrcweir             String aCommaSpace(RTL_CONSTASCII_STRINGPARAM(", "));
779cdf0e10cSrcweir             aWndCenter.GetEditEngine()->QuickInsertText(aCommaSpace,ESelection(aSel.nEndPara, aSel.nEndPos, aSel.nEndPara, aSel.nEndPos));
780cdf0e10cSrcweir             aSel.nEndPos = sal::static_int_cast<xub_StrLen>( aSel.nEndPos + aCommaSpace.Len() );
781cdf0e10cSrcweir             aWndCenter.GetEditEngine()->QuickInsertField( SvxFieldItem(SvxFileField(), EE_FEATURE_FIELD), ESelection(aSel.nEndPara, aSel.nEndPos, aSel.nEndPara, aSel.nEndPos));
782cdf0e10cSrcweir             pTextObj.reset(aWndCenter.GetEditEngine()->CreateTextObject());
783cdf0e10cSrcweir             aWndCenter.SetText(*pTextObj);
784cdf0e10cSrcweir             if(!bTravelling)
785cdf0e10cSrcweir                 aWndCenter.GrabFocus();
786cdf0e10cSrcweir         }
787cdf0e10cSrcweir         break;
788cdf0e10cSrcweir 
789cdf0e10cSrcweir         case ePageExtFileNameEntry:
790cdf0e10cSrcweir         {
791cdf0e10cSrcweir             ClearTextAreas();
792cdf0e10cSrcweir             String aPageEntry(ScGlobal::GetRscString( STR_PAGE ) );
793cdf0e10cSrcweir             aPageEntry += ' ';
794cdf0e10cSrcweir             aWndCenter.GetEditEngine()->SetText(aPageEntry);
795cdf0e10cSrcweir             aWndCenter.InsertField( SvxFieldItem(SvxPageField(), EE_FEATURE_FIELD) );
796cdf0e10cSrcweir             aWndRight.InsertField( SvxFieldItem( SvxExtFileField(
797cdf0e10cSrcweir                 EMPTY_STRING, SVXFILETYPE_VAR, SVXFILEFORMAT_FULLPATH ), EE_FEATURE_FIELD ) );
798cdf0e10cSrcweir             if(!bTravelling)
799cdf0e10cSrcweir                 aWndRight.GrabFocus();
800cdf0e10cSrcweir         }
801cdf0e10cSrcweir         break;
802cdf0e10cSrcweir 
803cdf0e10cSrcweir         case eUserNameEntry:
804cdf0e10cSrcweir         {
805cdf0e10cSrcweir             ClearTextAreas();
806cdf0e10cSrcweir             String aUserNameEntry(aUserOpt.GetFirstName());
807cdf0e10cSrcweir             aUserNameEntry += ' ';
808cdf0e10cSrcweir             aUserNameEntry += (String)aUserOpt.GetLastName();
809cdf0e10cSrcweir             aWndLeft.GetEditEngine()->SetText(aUserNameEntry);
810cdf0e10cSrcweir             String aPageEntry(ScGlobal::GetRscString( STR_PAGE ) );
811cdf0e10cSrcweir             aPageEntry += ' ';
812cdf0e10cSrcweir             aWndCenter.GetEditEngine()->SetText(aPageEntry);
813cdf0e10cSrcweir             aWndCenter.InsertField( SvxFieldItem(SvxPageField(), EE_FEATURE_FIELD) );
814cdf0e10cSrcweir             aWndRight.InsertField( SvxFieldItem(SvxDateField(Date(),SVXDATETYPE_VAR), EE_FEATURE_FIELD) );
815cdf0e10cSrcweir             if(!bTravelling)
816cdf0e10cSrcweir                 aWndRight.GrabFocus();
817cdf0e10cSrcweir         }
818cdf0e10cSrcweir         break;
819cdf0e10cSrcweir 
820cdf0e10cSrcweir         case eCreatedByEntry:
821cdf0e10cSrcweir         {
822cdf0e10cSrcweir             ClearTextAreas();
823cdf0e10cSrcweir             String aCreatedByEntry(ScGlobal::GetRscString( STR_HF_CREATED_BY ) );
824cdf0e10cSrcweir             aCreatedByEntry += ' ';
825cdf0e10cSrcweir             aCreatedByEntry += (String)aUserOpt.GetFirstName();
826cdf0e10cSrcweir             aCreatedByEntry += ' ';
827cdf0e10cSrcweir             aCreatedByEntry += (String)aUserOpt.GetLastName();
828cdf0e10cSrcweir             aWndLeft.GetEditEngine()->SetText(aCreatedByEntry);
829cdf0e10cSrcweir             aWndCenter.InsertField( SvxFieldItem(SvxDateField(Date(),SVXDATETYPE_VAR), EE_FEATURE_FIELD) );
830cdf0e10cSrcweir             String aPageEntry(ScGlobal::GetRscString( STR_PAGE ) );
831cdf0e10cSrcweir             aPageEntry += ' ';
832cdf0e10cSrcweir             aWndRight.GetEditEngine()->SetText(aPageEntry);
833cdf0e10cSrcweir             aWndRight.InsertField( SvxFieldItem(SvxPageField(), EE_FEATURE_FIELD) );
834cdf0e10cSrcweir             if(!bTravelling)
835cdf0e10cSrcweir                 aWndRight.GrabFocus();
836cdf0e10cSrcweir         }
837cdf0e10cSrcweir         break;
838cdf0e10cSrcweir 
839cdf0e10cSrcweir         default :
840cdf0e10cSrcweir             break;
841cdf0e10cSrcweir     }
842cdf0e10cSrcweir }
843cdf0e10cSrcweir 
ClearTextAreas()844cdf0e10cSrcweir void ScHFEditPage::ClearTextAreas()
845cdf0e10cSrcweir {
846cdf0e10cSrcweir     aWndLeft.GetEditEngine()->SetText(EMPTY_STRING);
847cdf0e10cSrcweir     aWndLeft.Invalidate();
848cdf0e10cSrcweir     aWndCenter.GetEditEngine()->SetText(EMPTY_STRING);
849cdf0e10cSrcweir     aWndCenter.Invalidate();
850cdf0e10cSrcweir     aWndRight.GetEditEngine()->SetText(EMPTY_STRING);
851cdf0e10cSrcweir     aWndRight.Invalidate();
852cdf0e10cSrcweir }
853cdf0e10cSrcweir 
854cdf0e10cSrcweir //-----------------------------------------------------------------------
855cdf0e10cSrcweir // Handler:
856cdf0e10cSrcweir //-----------------------------------------------------------------------
857cdf0e10cSrcweir 
IMPL_LINK(ScHFEditPage,ListHdl_Impl,ListBox *,pList)858cdf0e10cSrcweir IMPL_LINK( ScHFEditPage, ListHdl_Impl, ListBox*, pList )
859cdf0e10cSrcweir {
860cdf0e10cSrcweir     if ( pList && pList == &maLbDefined )
861cdf0e10cSrcweir     {
862cdf0e10cSrcweir         ScHFEntryId eSel = static_cast<ScHFEntryId>(maLbDefined.GetSelectEntryPos());
863cdf0e10cSrcweir         if(!maLbDefined.IsTravelSelect())
864cdf0e10cSrcweir         {
865cdf0e10cSrcweir             ProcessDefinedListSel(eSel);
866cdf0e10cSrcweir 
867cdf0e10cSrcweir             // check if we need to remove the customized entry.
868cdf0e10cSrcweir             if(eSel < eEntryCount)
869cdf0e10cSrcweir                 RemoveFromDefinedList();
870cdf0e10cSrcweir         }
871cdf0e10cSrcweir         else
872cdf0e10cSrcweir         {
873cdf0e10cSrcweir             ProcessDefinedListSel(eSel, true);
874cdf0e10cSrcweir         }
875cdf0e10cSrcweir     }
876cdf0e10cSrcweir     return 0;
877cdf0e10cSrcweir }
878cdf0e10cSrcweir 
IMPL_LINK(ScHFEditPage,ClickHdl,ImageButton *,pBtn)879cdf0e10cSrcweir IMPL_LINK( ScHFEditPage, ClickHdl, ImageButton*, pBtn )
880cdf0e10cSrcweir {
881cdf0e10cSrcweir 	pActiveEdWnd = ::GetScEditWindow(); //CHINA001
882cdf0e10cSrcweir 	if ( !pActiveEdWnd )
883cdf0e10cSrcweir 		return 0;
884cdf0e10cSrcweir 
885cdf0e10cSrcweir 	if ( pBtn == &aBtnText )
886cdf0e10cSrcweir 	{
887cdf0e10cSrcweir 		pActiveEdWnd->SetCharAttriutes();
888cdf0e10cSrcweir 	}
889cdf0e10cSrcweir 	else
890cdf0e10cSrcweir 	{
891cdf0e10cSrcweir 		if ( pBtn == &aBtnPage )
892cdf0e10cSrcweir             pActiveEdWnd->InsertField( SvxFieldItem(SvxPageField(), EE_FEATURE_FIELD) );
893cdf0e10cSrcweir 		else if ( pBtn == &aBtnLastPage )
894cdf0e10cSrcweir             pActiveEdWnd->InsertField( SvxFieldItem(SvxPagesField(), EE_FEATURE_FIELD) );
895cdf0e10cSrcweir 		else if ( pBtn == &aBtnDate )
896cdf0e10cSrcweir             pActiveEdWnd->InsertField( SvxFieldItem(SvxDateField(Date(),SVXDATETYPE_VAR), EE_FEATURE_FIELD) );
897cdf0e10cSrcweir 		else if ( pBtn == &aBtnTime )
898cdf0e10cSrcweir             pActiveEdWnd->InsertField( SvxFieldItem(SvxTimeField(), EE_FEATURE_FIELD) );
899cdf0e10cSrcweir 		else if ( pBtn == &aBtnFile )
900cdf0e10cSrcweir 		{
901cdf0e10cSrcweir             pActiveEdWnd->InsertField( SvxFieldItem( SvxFileField(), EE_FEATURE_FIELD ) );
902cdf0e10cSrcweir 		}
903cdf0e10cSrcweir 		else if ( pBtn == &aBtnTable )
904cdf0e10cSrcweir             pActiveEdWnd->InsertField( SvxFieldItem(SvxTableField(), EE_FEATURE_FIELD) );
905cdf0e10cSrcweir 	}
906cdf0e10cSrcweir 	InsertToDefinedList();
907cdf0e10cSrcweir 	pActiveEdWnd->GrabFocus();
908cdf0e10cSrcweir 
909cdf0e10cSrcweir 	return 0;
910cdf0e10cSrcweir }
911cdf0e10cSrcweir 
IMPL_LINK(ScHFEditPage,MenuHdl,ScExtIButton *,pBtn)912cdf0e10cSrcweir IMPL_LINK( ScHFEditPage, MenuHdl, ScExtIButton*, pBtn )
913cdf0e10cSrcweir {
914cdf0e10cSrcweir 	pActiveEdWnd = ::GetScEditWindow(); //CHINA001
915cdf0e10cSrcweir 	if ( !pActiveEdWnd )
916cdf0e10cSrcweir 		return 0;
917cdf0e10cSrcweir 
918cdf0e10cSrcweir 	if(pBtn!=NULL)
919cdf0e10cSrcweir 	{
920cdf0e10cSrcweir 		switch(pBtn->GetSelected())
921cdf0e10cSrcweir 		{
922cdf0e10cSrcweir 			case FILE_COMMAND_TITEL:
923cdf0e10cSrcweir                 pActiveEdWnd->InsertField( SvxFieldItem( SvxFileField(), EE_FEATURE_FIELD ) );
924cdf0e10cSrcweir 				break;
925cdf0e10cSrcweir 			case FILE_COMMAND_FILENAME:
926cdf0e10cSrcweir 				pActiveEdWnd->InsertField( SvxFieldItem( SvxExtFileField(
927cdf0e10cSrcweir                         EMPTY_STRING, SVXFILETYPE_VAR, SVXFILEFORMAT_NAME_EXT ), EE_FEATURE_FIELD ) );
928cdf0e10cSrcweir 				break;
929cdf0e10cSrcweir 			case FILE_COMMAND_PATH:
930cdf0e10cSrcweir 				pActiveEdWnd->InsertField( SvxFieldItem( SvxExtFileField(
931cdf0e10cSrcweir                         EMPTY_STRING, SVXFILETYPE_VAR, SVXFILEFORMAT_FULLPATH ), EE_FEATURE_FIELD ) );
932cdf0e10cSrcweir 				break;
933cdf0e10cSrcweir 		}
934cdf0e10cSrcweir 	}
935cdf0e10cSrcweir 	return 0;
936cdf0e10cSrcweir }
937cdf0e10cSrcweir 
938cdf0e10cSrcweir //========================================================================
939cdf0e10cSrcweir // class ScRightHeaderEditPage
940cdf0e10cSrcweir //========================================================================
941cdf0e10cSrcweir 
ScRightHeaderEditPage(Window * pParent,const SfxItemSet & rCoreSet)942cdf0e10cSrcweir ScRightHeaderEditPage::ScRightHeaderEditPage( Window* pParent, const SfxItemSet& rCoreSet )
943cdf0e10cSrcweir 	: ScHFEditPage( pParent, RID_SCPAGE_HFED_HR, rCoreSet,
944cdf0e10cSrcweir 					rCoreSet.GetPool()->GetWhich(SID_SCATTR_PAGE_HEADERRIGHT ), true )
945cdf0e10cSrcweir 	{}
946cdf0e10cSrcweir 
947cdf0e10cSrcweir // -----------------------------------------------------------------------
948cdf0e10cSrcweir 
GetRanges()949cdf0e10cSrcweir sal_uInt16* __EXPORT ScRightHeaderEditPage::GetRanges()
950cdf0e10cSrcweir 	{ return pPageRightHeaderRanges; }
951cdf0e10cSrcweir 
952cdf0e10cSrcweir // -----------------------------------------------------------------------
953cdf0e10cSrcweir 
Create(Window * pParent,const SfxItemSet & rCoreSet)954cdf0e10cSrcweir SfxTabPage* __EXPORT ScRightHeaderEditPage::Create( Window* pParent, const SfxItemSet& rCoreSet )
955cdf0e10cSrcweir 	{ return ( new ScRightHeaderEditPage( pParent, rCoreSet ) ); };
956cdf0e10cSrcweir 
957cdf0e10cSrcweir 
958cdf0e10cSrcweir //========================================================================
959cdf0e10cSrcweir // class ScLeftHeaderEditPage
960cdf0e10cSrcweir //========================================================================
961cdf0e10cSrcweir 
ScLeftHeaderEditPage(Window * pParent,const SfxItemSet & rCoreSet)962cdf0e10cSrcweir ScLeftHeaderEditPage::ScLeftHeaderEditPage( Window* pParent, const SfxItemSet& rCoreSet )
963cdf0e10cSrcweir 	: ScHFEditPage( pParent, RID_SCPAGE_HFED_HL, rCoreSet,
964cdf0e10cSrcweir 					rCoreSet.GetPool()->GetWhich(SID_SCATTR_PAGE_HEADERLEFT ), true )
965cdf0e10cSrcweir 	{}
966cdf0e10cSrcweir 
967cdf0e10cSrcweir // -----------------------------------------------------------------------
968cdf0e10cSrcweir 
GetRanges()969cdf0e10cSrcweir sal_uInt16* __EXPORT ScLeftHeaderEditPage::GetRanges()
970cdf0e10cSrcweir 	{ return pPageLeftHeaderRanges; }
971cdf0e10cSrcweir 
972cdf0e10cSrcweir // -----------------------------------------------------------------------
973cdf0e10cSrcweir 
Create(Window * pParent,const SfxItemSet & rCoreSet)974cdf0e10cSrcweir SfxTabPage* __EXPORT ScLeftHeaderEditPage::Create( Window* pParent, const SfxItemSet& rCoreSet )
975cdf0e10cSrcweir 	{ return ( new ScLeftHeaderEditPage( pParent, rCoreSet ) ); };
976cdf0e10cSrcweir 
977cdf0e10cSrcweir //========================================================================
978cdf0e10cSrcweir // class ScRightFooterEditPage
979cdf0e10cSrcweir //========================================================================
980cdf0e10cSrcweir 
ScRightFooterEditPage(Window * pParent,const SfxItemSet & rCoreSet)981cdf0e10cSrcweir ScRightFooterEditPage::ScRightFooterEditPage( Window* pParent, const SfxItemSet& rCoreSet )
982cdf0e10cSrcweir 	: ScHFEditPage( pParent, RID_SCPAGE_HFED_FR, rCoreSet,
983cdf0e10cSrcweir 					rCoreSet.GetPool()->GetWhich(SID_SCATTR_PAGE_FOOTERRIGHT ), false )
984cdf0e10cSrcweir 	{}
985cdf0e10cSrcweir 
986cdf0e10cSrcweir // -----------------------------------------------------------------------
987cdf0e10cSrcweir 
GetRanges()988cdf0e10cSrcweir sal_uInt16* __EXPORT ScRightFooterEditPage::GetRanges()
989cdf0e10cSrcweir 	{ return pPageRightFooterRanges; }
990cdf0e10cSrcweir 
991cdf0e10cSrcweir // -----------------------------------------------------------------------
992cdf0e10cSrcweir 
Create(Window * pParent,const SfxItemSet & rCoreSet)993cdf0e10cSrcweir SfxTabPage* __EXPORT ScRightFooterEditPage::Create( Window* pParent, const SfxItemSet& rCoreSet )
994cdf0e10cSrcweir 	{ return ( new ScRightFooterEditPage( pParent, rCoreSet ) ); };
995cdf0e10cSrcweir 
996cdf0e10cSrcweir //========================================================================
997cdf0e10cSrcweir // class ScLeftFooterEditPage
998cdf0e10cSrcweir //========================================================================
999cdf0e10cSrcweir 
ScLeftFooterEditPage(Window * pParent,const SfxItemSet & rCoreSet)1000cdf0e10cSrcweir ScLeftFooterEditPage::ScLeftFooterEditPage( Window* pParent, const SfxItemSet& rCoreSet )
1001cdf0e10cSrcweir 	: ScHFEditPage( pParent, RID_SCPAGE_HFED_FL, rCoreSet,
1002cdf0e10cSrcweir 					rCoreSet.GetPool()->GetWhich(SID_SCATTR_PAGE_FOOTERLEFT ), false )
1003cdf0e10cSrcweir 	{}
1004cdf0e10cSrcweir 
1005cdf0e10cSrcweir // -----------------------------------------------------------------------
1006cdf0e10cSrcweir 
GetRanges()1007cdf0e10cSrcweir sal_uInt16* __EXPORT ScLeftFooterEditPage::GetRanges()
1008cdf0e10cSrcweir 	{ return pPageLeftFooterRanges; }
1009cdf0e10cSrcweir 
1010cdf0e10cSrcweir // -----------------------------------------------------------------------
1011cdf0e10cSrcweir 
Create(Window * pParent,const SfxItemSet & rCoreSet)1012cdf0e10cSrcweir SfxTabPage* __EXPORT ScLeftFooterEditPage::Create( Window* pParent, const SfxItemSet& rCoreSet )
1013cdf0e10cSrcweir 	{ return ( new ScLeftFooterEditPage( pParent, rCoreSet ) ); };
1014