blob: 21530100468dbaf4c750ac37a858d49fecf6e60f [file] [log] [blame]
/**************************************************************
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*************************************************************/
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_sc.hxx"
#undef SC_DLLIMPLEMENTATION
//------------------------------------------------------------------
#include "scitems.hxx"
#include <svl/eitem.hxx>
#include "hfedtdlg.hxx"
#include "global.hxx"
#include "globstr.hrc"
//CHINA001 #include "tphfedit.hxx"
#include "scresid.hxx"
#include "hfedtdlg.hrc"
#include "scuitphfedit.hxx" //CHINA001
//------------------------------------------------------------------
// macros from docsh4.cxx
//! use SIDs?
#define IS_SHARE_HEADER(set) \
((SfxBoolItem&) \
((SvxSetItem&)(set).Get(ATTR_PAGE_HEADERSET)).GetItemSet(). \
Get(ATTR_PAGE_SHARED)).GetValue()
#define IS_SHARE_FOOTER(set) \
((SfxBoolItem&) \
((SvxSetItem&)(set).Get(ATTR_PAGE_FOOTERSET)).GetItemSet(). \
Get(ATTR_PAGE_SHARED)).GetValue()
//==================================================================
ScHFEditDlg::ScHFEditDlg( SfxViewFrame* pFrameP,
Window* pParent,
const SfxItemSet& rCoreSet,
const String& rPageStyle,
sal_uInt16 nResIdP )
: SfxTabDialog( pFrameP, pParent, ScResId( nResIdP ), &rCoreSet )
{
eNumType = ((const SvxPageItem&)rCoreSet.Get(ATTR_PAGE)).GetNumType();
String aTmp = GetText();
aTmp.AppendAscii(RTL_CONSTASCII_STRINGPARAM( " (" ));
aTmp += ScGlobal::GetRscString( STR_PAGESTYLE );
aTmp.AppendAscii(RTL_CONSTASCII_STRINGPARAM( ": " ));
aTmp += rPageStyle;
aTmp += ')';
SetText( aTmp );
switch ( nResIdP )
{
case RID_SCDLG_HFED_HEADER:
case RID_SCDLG_HFEDIT_HEADER:
AddTabPage( 1, ScRightHeaderEditPage::Create, NULL );
AddTabPage( 2, ScLeftHeaderEditPage::Create, NULL );
break;
case RID_SCDLG_HFED_FOOTER:
case RID_SCDLG_HFEDIT_FOOTER:
AddTabPage( 1, ScRightFooterEditPage::Create, NULL );
AddTabPage( 2, ScLeftFooterEditPage::Create, NULL );
break;
case RID_SCDLG_HFEDIT_LEFTHEADER:
AddTabPage( 1, ScLeftHeaderEditPage::Create, NULL );
break;
case RID_SCDLG_HFEDIT_RIGHTHEADER:
AddTabPage( 1, ScRightHeaderEditPage::Create, NULL );
break;
case RID_SCDLG_HFEDIT_LEFTFOOTER:
AddTabPage( 1, ScLeftFooterEditPage::Create, NULL );
break;
case RID_SCDLG_HFEDIT_RIGHTFOOTER:
AddTabPage( 1, ScRightFooterEditPage::Create, NULL );
break;
case RID_SCDLG_HFEDIT_SHDR:
AddTabPage( 1, ScRightHeaderEditPage::Create, NULL );
AddTabPage( 2, ScRightFooterEditPage::Create, NULL );
AddTabPage( 3, ScLeftFooterEditPage::Create, NULL );
break;
case RID_SCDLG_HFEDIT_SFTR:
AddTabPage( 1, ScRightHeaderEditPage::Create, NULL );
AddTabPage( 2, ScLeftHeaderEditPage::Create, NULL );
AddTabPage( 3, ScRightFooterEditPage::Create, NULL );
break;
case RID_SCDLG_HFEDIT_ALL:
AddTabPage( 1, ScRightHeaderEditPage::Create, NULL );
AddTabPage( 2, ScLeftHeaderEditPage::Create, NULL );
AddTabPage( 3, ScRightFooterEditPage::Create, NULL );
AddTabPage( 4, ScLeftFooterEditPage::Create, NULL );
break;
default:
case RID_SCDLG_HFEDIT:
{
const SvxPageItem& rPageItem = (const SvxPageItem&)
rCoreSet.Get(
rCoreSet.GetPool()->GetWhich(SID_ATTR_PAGE) );
sal_Bool bRightPage = ( SVX_PAGE_LEFT !=
SvxPageUsage(rPageItem.GetPageUsage()) );
if ( bRightPage )
{
AddTabPage( 1, ScRightHeaderEditPage::Create, NULL );
AddTabPage( 2, ScRightFooterEditPage::Create, NULL );
}
else
{
// #69193a# respect "shared" setting
sal_Bool bShareHeader = IS_SHARE_HEADER(rCoreSet);
if ( bShareHeader )
AddTabPage( 1, ScRightHeaderEditPage::Create, NULL );
else
AddTabPage( 1, ScLeftHeaderEditPage::Create, NULL );
sal_Bool bShareFooter = IS_SHARE_FOOTER(rCoreSet);
if ( bShareFooter )
AddTabPage( 2, ScRightFooterEditPage::Create, NULL );
else
AddTabPage( 2, ScLeftFooterEditPage::Create, NULL );
}
}
break;
}
FreeResource();
}
// -----------------------------------------------------------------------
__EXPORT ScHFEditDlg::~ScHFEditDlg()
{
}
// -----------------------------------------------------------------------
void __EXPORT ScHFEditDlg::PageCreated( sal_uInt16 /* nId */, SfxTabPage& rPage )
{
// kann ja nur ne ScHFEditPage sein...
((ScHFEditPage&)rPage).SetNumType(eNumType);
}