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 #ifndef _SVX_PARAGRPH_HXX 24 #define _SVX_PARAGRPH_HXX 25 26 // include --------------------------------------------------------------- 27 28 #include <vcl/button.hxx> 29 #include <vcl/fixed.hxx> 30 #include <sfx2/tabdlg.hxx> 31 #include <svx/relfld.hxx> // SvxRelativeField 32 #include <svx/paraprev.hxx> // Preview 33 #include <svx/frmdirlbox.hxx> 34 #include <vcl/lstbox.hxx> 35 #include <svx/flagsdef.hxx> 36 37 // define ---------------------------------------------------------------- 38 39 // 1/2 cm in TWIPS 40 // wird auch fuer Minimalgrosse der LayFrms aller Arten benutzt 41 //CHINA001 #define MM50 283 42 43 // forward --------------------------------------------------------------- 44 45 class SvxLineSpacingItem; 46 class SvxParagraphControllerItem; 47 48 // class SvxStdParagraphTabPage ------------------------------------------ 49 50 /* {k:\svx\prototyp\dialog\parastd.bmp} 51 52 [Beschreibung] 53 Mit dieser TabPage koennen Standard-Attribute eines Absatzes eingestellt 54 werden (Einzug, Abstand, Ausrichtung, Zeilenabstand). 55 56 [Items] 57 <SvxAdjustItem><SID_ATTR_PARA_ADJUST> 58 <SvxLineSpacingItem><SID_ATTR_PARA_LINESPACE> 59 <SvxULSpaceItem><SID_ATTR_ULSPACE> 60 <SvxLRSpaceItem><SID_ATTR_LRSPACE> 61 */ 62 63 class SvxStdParagraphTabPage: public SfxTabPage 64 { 65 using TabPage::DeactivatePage; 66 67 private: 68 SvxStdParagraphTabPage( Window* pParent, const SfxItemSet& rSet ); 69 70 FixedLine aIndentFrm; 71 // Einzug 72 FixedText aLeftLabel; 73 SvxRelativeField aLeftIndent; 74 75 FixedText aRightLabel; 76 SvxRelativeField aRightIndent; 77 78 FixedText aFLineLabel; 79 SvxRelativeField aFLineIndent; 80 CheckBox aAutoCB; 81 82 FixedLine aDistFrm; 83 84 // Abstaende 85 FixedText aTopLabel; 86 SvxRelativeField aTopDist; 87 FixedText aBottomLabel; 88 SvxRelativeField aBottomDist; 89 90 // Zeilenabstand 91 FixedLine aLineDistFrm; 92 ListBox aLineDist; 93 FixedText aLineDistAtLabel; 94 MetricField aLineDistAtPercentBox; 95 MetricField aLineDistAtMetricBox; 96 String sAbsDist; 97 SvxParaPrevWindow aExampleWin; 98 99 //Registerhaltigkeit - nur Writer 100 FixedLine aRegisterFL; 101 CheckBox aRegisterCB; 102 103 Edit* pActLineDistFld; 104 long nAbst; 105 long nWidth; 106 long nMinFixDist; 107 sal_Bool bRelativeMode; 108 sal_Bool bNegativeIndents; 109 110 #ifdef _SVX_PARAGRPH_CXX 111 void SetLineSpacing_Impl( const SvxLineSpacingItem& rAttr ); 112 void Init_Impl(); 113 void UpdateExample_Impl( sal_Bool bAll = sal_False ); 114 115 DECL_LINK( LineDistHdl_Impl, ListBox* ); 116 DECL_LINK( ModifyHdl_Impl, SvxRelativeField* ); 117 DECL_LINK( AutoHdl_Impl, CheckBox* ); 118 #endif 119 120 protected: 121 virtual int DeactivatePage( SfxItemSet* pSet = 0 ); 122 123 public: 124 DECL_LINK( ELRLoseFocusHdl, Edit* ); 125 126 static SfxTabPage* Create( Window* pParent, const SfxItemSet& rSet ); 127 static sal_uInt16* GetRanges(); 128 129 virtual sal_Bool FillItemSet( SfxItemSet& rSet ); 130 virtual void Reset( const SfxItemSet& rSet ); 131 132 133 void SetPageWidth( sal_uInt16 nPageWidth ); 134 void EnableRelativeMode(); 135 void EnableRegisterMode(); 136 void EnableAutoFirstLine(); 137 void EnableAbsLineDist(long nMinTwip); 138 void EnableNegativeMode(); 139 virtual void PageCreated(SfxAllItemSet aSet); // add CHINA001 140 }; 141 142 // class SvxParaAlignTabPage ------------------------------------------------ 143 144 class SvxParaAlignTabPage : public SfxTabPage 145 { 146 using TabPage::DeactivatePage; 147 148 // Ausrichtung 149 FixedLine aAlignFrm; 150 RadioButton aLeft; 151 RadioButton aRight; 152 RadioButton aCenter; 153 RadioButton aJustify; 154 FixedText aLastLineFT; 155 ListBox aLastLineLB; 156 CheckBox aExpandCB; 157 158 CheckBox aSnapToGridCB; 159 160 //preview 161 SvxParaPrevWindow aExampleWin; 162 //vertical alignment 163 FixedLine aVertAlignFL; 164 165 FixedText aVertAlignFT; 166 ListBox aVertAlignLB; 167 168 FixedLine aPropertiesFL; 169 FixedText aTextDirectionFT; 170 svx::FrameDirectionListBox aTextDirectionLB; 171 172 #ifdef _SVX_PARAGRPH_CXX 173 DECL_LINK( AlignHdl_Impl, RadioButton* ); 174 DECL_LINK( LastLineHdl_Impl, ListBox* ); 175 DECL_LINK( TextDirectionHdl_Impl, ListBox* ); 176 177 void UpdateExample_Impl( sal_Bool bAll = sal_False ); 178 #endif 179 180 SvxParaAlignTabPage( Window* pParent, const SfxItemSet& rSet ); 181 virtual ~SvxParaAlignTabPage(); 182 183 protected: 184 virtual int DeactivatePage( SfxItemSet* pSet = 0 ); 185 186 public: 187 static SfxTabPage* Create( Window* pParent, const SfxItemSet& rSet ); 188 static sal_uInt16* GetRanges(); 189 190 virtual sal_Bool FillItemSet( SfxItemSet& rSet ); 191 virtual void Reset( const SfxItemSet& rSet ); 192 193 void EnableJustifyExt(); 194 virtual void PageCreated(SfxAllItemSet aSet); // add CHINA001 195 }; 196 197 // class SvxExtParagraphTabPage ------------------------------------------ 198 199 /* {k:\svx\prototyp\dialog\paraext.bmp} 200 201 [Beschreibung] 202 Mit dieser TabPage koennen Spezial-Attribute eines Absatzes eingestellt 203 werden (Silbentrennung, Seitenumbruch, Schusterjungen, Hurenkinder, ...). 204 205 [Items] 206 <SvxHyphenZoneItem><SID_ATTR_PARA_HYPHENZONE> 207 <SvxFmtBreakItem><SID_ATTR_PARA_PAGEBREAK> 208 <SvxFmtSplitItem><SID_ATTR_PARA_SPLIT> 209 <SvxWidowsItem><SID_ATTR_PARA_WIDOWS> 210 <SvxOrphansItem><SID_ATTR_PARA_ORPHANS> 211 */ 212 213 class SvxExtParagraphTabPage: public SfxTabPage 214 { 215 using TabPage::DeactivatePage; 216 217 public: 218 virtual ~SvxExtParagraphTabPage(); 219 220 static SfxTabPage* Create( Window* pParent, 221 const SfxItemSet& rSet ); 222 static sal_uInt16* GetRanges(); 223 224 virtual sal_Bool FillItemSet( SfxItemSet& rSet ); 225 virtual void Reset( const SfxItemSet& rSet ); 226 227 void DisablePageBreak(); 228 229 protected: 230 virtual int DeactivatePage( SfxItemSet* pSet = 0 ); 231 232 private: 233 SvxExtParagraphTabPage( Window* pParent, const SfxItemSet& rSet ); 234 235 // Silbentrennung 236 FixedLine aExtFL; 237 TriStateBox aHyphenBox; 238 FixedText aBeforeText; 239 NumericField aExtHyphenBeforeBox; 240 // FixedText aHyphenBeforeLabel; 241 FixedText aAfterText; 242 NumericField aExtHyphenAfterBox; 243 // FixedText aHyphenAfterLabel; 244 FixedText aMaxHyphenLabel; 245 NumericField aMaxHyphenEdit; 246 247 // Seitenumbruch 248 FixedLine aBreaksFL; 249 TriStateBox aPageBreakBox; 250 FixedText aBreakTypeFT; 251 ListBox aBreakTypeLB; 252 FixedText aBreakPositionFT; 253 ListBox aBreakPositionLB; 254 TriStateBox aApplyCollBtn; 255 ListBox aApplyCollBox; 256 FixedText aPagenumText; 257 NumericField aPagenumEdit; 258 259 FixedLine aExtendFL; 260 261 // Absatzteilung 262 TriStateBox aKeepTogetherBox; 263 TriStateBox aKeepParaBox; 264 265 // Witwen/Waisen 266 TriStateBox aOrphanBox; 267 NumericField aOrphanRowNo; 268 FixedText aOrphanRowLabel; 269 270 TriStateBox aWidowBox; 271 NumericField aWidowRowNo; 272 FixedText aWidowRowLabel; 273 274 sal_Bool bPageBreak; 275 sal_Bool bHtmlMode; 276 sal_uInt16 nStdPos; 277 278 #ifdef _SVX_PARAGRPH_CXX 279 DECL_LINK( PageBreakHdl_Impl, TriStateBox* ); 280 DECL_LINK( KeepTogetherHdl_Impl, TriStateBox* ); 281 DECL_LINK( WidowHdl_Impl, TriStateBox* ); 282 DECL_LINK( OrphanHdl_Impl, TriStateBox* ); 283 DECL_LINK( HyphenClickHdl_Impl, TriStateBox* ); 284 DECL_LINK( ApplyCollClickHdl_Impl, TriStateBox* ); 285 DECL_LINK( PageBreakPosHdl_Impl, ListBox* ); 286 DECL_LINK( PageBreakTypeHdl_Impl, ListBox* ); 287 #endif 288 virtual void PageCreated(SfxAllItemSet aSet); // add CHINA001 289 }; 290 /* -----------------------------29.11.00 11:33-------------------------------- 291 292 ---------------------------------------------------------------------------*/ 293 class SvxAsianTabPage : public SfxTabPage 294 { 295 FixedLine aOptionsFL; 296 297 TriStateBox aForbiddenRulesCB; 298 TriStateBox aHangingPunctCB; 299 300 TriStateBox aScriptSpaceCB; 301 302 SvxAsianTabPage( Window* pParent, const SfxItemSet& rSet ); 303 304 #ifdef _SVX_PARAGRPH_CXX 305 DECL_LINK( ClickHdl_Impl, TriStateBox* ); 306 #endif 307 public: 308 ~SvxAsianTabPage(); 309 310 311 static SfxTabPage* Create( Window* pParent, 312 const SfxItemSet& rSet ); 313 static sal_uInt16* GetRanges(); 314 315 virtual sal_Bool FillItemSet( SfxItemSet& rSet ); 316 virtual void Reset( const SfxItemSet& rSet ); 317 318 }; 319 320 #endif // #ifndef _SVX_PARAGRPH_HXX 321 322 323