1 /**************************************************************
2 *
3 * Licensed to the Apache Software Foundation (ASF) under one
4 * or more contributor license agreements. See the NOTICE file
5 * distributed with this work for additional information
6 * regarding copyright ownership. The ASF licenses this file
7 * to you under the Apache License, Version 2.0 (the
8 * "License"); you may not use this file except in compliance
9 * with the License. You may obtain a copy of the License at
10 *
11 * http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing,
14 * software distributed under the License is distributed on an
15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16 * KIND, either express or implied. See the License for the
17 * specific language governing permissions and limitations
18 * under the License.
19 *
20 *************************************************************/
21
22
23
24 // MARKER(update_precomp.py): autogen include statement, do not remove
25 #include "precompiled_sc.hxx"
26
27 #undef SC_DLLIMPLEMENTATION
28
29
30
31 //------------------------------------------------------------------
32
33 #include "scitems.hxx"
34 #include <svl/eitem.hxx>
35
36 #include "hfedtdlg.hxx"
37 #include "global.hxx"
38 #include "globstr.hrc"
39 //CHINA001 #include "tphfedit.hxx"
40 #include "scresid.hxx"
41 #include "hfedtdlg.hrc"
42 #include "scuitphfedit.hxx" //CHINA001
43 //------------------------------------------------------------------
44
45 // macros from docsh4.cxx
46 //! use SIDs?
47
48 #define IS_SHARE_HEADER(set) \
49 ((SfxBoolItem&) \
50 ((SvxSetItem&)(set).Get(ATTR_PAGE_HEADERSET)).GetItemSet(). \
51 Get(ATTR_PAGE_SHARED)).GetValue()
52
53 #define IS_SHARE_FOOTER(set) \
54 ((SfxBoolItem&) \
55 ((SvxSetItem&)(set).Get(ATTR_PAGE_FOOTERSET)).GetItemSet(). \
56 Get(ATTR_PAGE_SHARED)).GetValue()
57
58 //==================================================================
59
ScHFEditDlg(SfxViewFrame * pFrameP,Window * pParent,const SfxItemSet & rCoreSet,const String & rPageStyle,sal_uInt16 nResIdP)60 ScHFEditDlg::ScHFEditDlg( SfxViewFrame* pFrameP,
61 Window* pParent,
62 const SfxItemSet& rCoreSet,
63 const String& rPageStyle,
64 sal_uInt16 nResIdP )
65 : SfxTabDialog( pFrameP, pParent, ScResId( nResIdP ), &rCoreSet )
66 {
67 eNumType = ((const SvxPageItem&)rCoreSet.Get(ATTR_PAGE)).GetNumType();
68
69 String aTmp = GetText();
70
71 aTmp.AppendAscii(RTL_CONSTASCII_STRINGPARAM( " (" ));
72 aTmp += ScGlobal::GetRscString( STR_PAGESTYLE );
73 aTmp.AppendAscii(RTL_CONSTASCII_STRINGPARAM( ": " ));
74 aTmp += rPageStyle;
75 aTmp += ')';
76 SetText( aTmp );
77
78 switch ( nResIdP )
79 {
80 case RID_SCDLG_HFED_HEADER:
81 case RID_SCDLG_HFEDIT_HEADER:
82 AddTabPage( 1, ScRightHeaderEditPage::Create, NULL );
83 AddTabPage( 2, ScLeftHeaderEditPage::Create, NULL );
84 break;
85
86 case RID_SCDLG_HFED_FOOTER:
87 case RID_SCDLG_HFEDIT_FOOTER:
88 AddTabPage( 1, ScRightFooterEditPage::Create, NULL );
89 AddTabPage( 2, ScLeftFooterEditPage::Create, NULL );
90 break;
91
92 case RID_SCDLG_HFEDIT_LEFTHEADER:
93 AddTabPage( 1, ScLeftHeaderEditPage::Create, NULL );
94 break;
95
96 case RID_SCDLG_HFEDIT_RIGHTHEADER:
97 AddTabPage( 1, ScRightHeaderEditPage::Create, NULL );
98 break;
99
100 case RID_SCDLG_HFEDIT_LEFTFOOTER:
101 AddTabPage( 1, ScLeftFooterEditPage::Create, NULL );
102 break;
103
104 case RID_SCDLG_HFEDIT_RIGHTFOOTER:
105 AddTabPage( 1, ScRightFooterEditPage::Create, NULL );
106 break;
107
108 case RID_SCDLG_HFEDIT_SHDR:
109 AddTabPage( 1, ScRightHeaderEditPage::Create, NULL );
110 AddTabPage( 2, ScRightFooterEditPage::Create, NULL );
111 AddTabPage( 3, ScLeftFooterEditPage::Create, NULL );
112 break;
113
114 case RID_SCDLG_HFEDIT_SFTR:
115 AddTabPage( 1, ScRightHeaderEditPage::Create, NULL );
116 AddTabPage( 2, ScLeftHeaderEditPage::Create, NULL );
117 AddTabPage( 3, ScRightFooterEditPage::Create, NULL );
118 break;
119
120 case RID_SCDLG_HFEDIT_ALL:
121 AddTabPage( 1, ScRightHeaderEditPage::Create, NULL );
122 AddTabPage( 2, ScLeftHeaderEditPage::Create, NULL );
123 AddTabPage( 3, ScRightFooterEditPage::Create, NULL );
124 AddTabPage( 4, ScLeftFooterEditPage::Create, NULL );
125 break;
126
127 default:
128 case RID_SCDLG_HFEDIT:
129 {
130 const SvxPageItem& rPageItem = (const SvxPageItem&)
131 rCoreSet.Get(
132 rCoreSet.GetPool()->GetWhich(SID_ATTR_PAGE) );
133
134 sal_Bool bRightPage = ( SVX_PAGE_LEFT !=
135 SvxPageUsage(rPageItem.GetPageUsage()) );
136
137 if ( bRightPage )
138 {
139 AddTabPage( 1, ScRightHeaderEditPage::Create, NULL );
140 AddTabPage( 2, ScRightFooterEditPage::Create, NULL );
141 }
142 else
143 {
144 // #69193a# respect "shared" setting
145
146 sal_Bool bShareHeader = IS_SHARE_HEADER(rCoreSet);
147 if ( bShareHeader )
148 AddTabPage( 1, ScRightHeaderEditPage::Create, NULL );
149 else
150 AddTabPage( 1, ScLeftHeaderEditPage::Create, NULL );
151
152 sal_Bool bShareFooter = IS_SHARE_FOOTER(rCoreSet);
153 if ( bShareFooter )
154 AddTabPage( 2, ScRightFooterEditPage::Create, NULL );
155 else
156 AddTabPage( 2, ScLeftFooterEditPage::Create, NULL );
157 }
158 }
159 break;
160 }
161
162 FreeResource();
163 }
164
165 // -----------------------------------------------------------------------
166
~ScHFEditDlg()167 __EXPORT ScHFEditDlg::~ScHFEditDlg()
168 {
169 }
170
171 // -----------------------------------------------------------------------
172
PageCreated(sal_uInt16,SfxTabPage & rPage)173 void __EXPORT ScHFEditDlg::PageCreated( sal_uInt16 /* nId */, SfxTabPage& rPage )
174 {
175 // kann ja nur ne ScHFEditPage sein...
176
177 ((ScHFEditPage&)rPage).SetNumType(eNumType);
178 }
179
180
181
182
183