xref: /AOO41X/main/sc/source/ui/pagedlg/hfedtdlg.cxx (revision b3f79822e811ac3493b185030a72c3c5a51f32d8)
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