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