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 _OFA_AUTOCDLG_HXX 24 #define _OFA_AUTOCDLG_HXX 25 26 #include <svtools/langtab.hxx> 27 #include <sfx2/tabdlg.hxx> 28 #include <tools/table.hxx> 29 #include <svx/checklbx.hxx> 30 #include <vcl/fixed.hxx> 31 #include <vcl/field.hxx> 32 #include <vcl/metric.hxx> 33 #include <svx/langbox.hxx> 34 35 class SvxAutoCorrect; 36 class CharClass; 37 class CollatorWrapper; 38 class SmartTagMgr; 39 40 // class OfaAutoCorrDlg -------------------------------------------------- 41 42 class OfaAutoCorrDlg : public SfxTabDialog 43 { 44 FixedText aLanguageFT; 45 SvxLanguageBox aLanguageLB; 46 47 DECL_LINK(SelectLanguageHdl, ListBox*); 48 public: 49 50 OfaAutoCorrDlg(Window* pParent, const SfxItemSet *pSet ); 51 EnableLanguage(sal_Bool bEnable)52 void EnableLanguage(sal_Bool bEnable) 53 { aLanguageFT.Enable(bEnable); 54 aLanguageLB.Enable(bEnable);} 55 56 }; 57 58 #ifdef _OFA_AUTOCDLG_CXX 59 #include <vcl/group.hxx> 60 #ifndef _SV_BUTTON_HXX 61 #include <vcl/button.hxx> 62 #endif 63 #include <vcl/lstbox.hxx> 64 #include <svtools/svtabbx.hxx> 65 #include <svx/simptabl.hxx> 66 67 class SvStringsISortDtor; 68 69 // class OfaACorrCheckListBox ------------------------------------------ 70 71 class OfaACorrCheckListBox : public SvxSimpleTable 72 { 73 using SvxSimpleTable::SetTabs; 74 using SvTreeListBox::GetCheckButtonState; 75 using SvTreeListBox::SetCheckButtonState; 76 77 protected: 78 virtual void SetTabs(); 79 virtual void HBarClick(); 80 virtual void KeyInput( const KeyEvent& rKEvt ); 81 82 public: OfaACorrCheckListBox(Window * pParent,const ResId & rResId)83 OfaACorrCheckListBox(Window* pParent, const ResId& rResId ) : 84 SvxSimpleTable( pParent, rResId ){} 85 GetUserData(sal_uLong nPos)86 inline void *GetUserData(sal_uLong nPos) { return GetEntry(nPos)->GetUserData(); } SetUserData(sal_uLong nPos,void * pData)87 inline void SetUserData(sal_uLong nPos, void *pData ) { GetEntry(nPos)->SetUserData(pData); } GetSelectEntryPos()88 inline sal_uLong GetSelectEntryPos() { return GetModel()->GetAbsPos(FirstSelected()); } 89 90 sal_Bool IsChecked(sal_uLong nPos, sal_uInt16 nCol = 0); 91 void CheckEntryPos(sal_uLong nPos, sal_uInt16 nCol, sal_Bool bChecked); 92 SvButtonState GetCheckButtonState( SvLBoxEntry*, sal_uInt16 nCol ) const; 93 void SetCheckButtonState( SvLBoxEntry*, sal_uInt16 nCol, SvButtonState ); 94 }; 95 96 // class OfaAutocorrOptionsPage ------------------------------------------ 97 98 99 class OfaAutocorrOptionsPage : public SfxTabPage 100 { 101 using TabPage::ActivatePage; 102 103 private: 104 SvxCheckListBox aCheckLB; 105 106 String sInput; 107 String sDoubleCaps; 108 String sStartCap; 109 String sBoldUnderline; 110 String sURL; 111 String sNoDblSpaces; 112 String sDash; 113 String sNonBrkSpace; 114 String sFirst; 115 116 public: 117 OfaAutocorrOptionsPage( Window* pParent, const SfxItemSet& rSet ); 118 ~OfaAutocorrOptionsPage(); 119 120 static SfxTabPage* Create( Window* pParent, 121 const SfxItemSet& rAttrSet); 122 123 virtual sal_Bool FillItemSet( SfxItemSet& rSet ); 124 virtual void Reset( const SfxItemSet& rSet ); 125 virtual void ActivatePage( const SfxItemSet& ); 126 127 }; 128 129 // class OfaSwAutoFmtOptionsPage ---------------------------------------------------- 130 131 class OfaSwAutoFmtOptionsPage : public SfxTabPage 132 { 133 using TabPage::ActivatePage; 134 135 OfaACorrCheckListBox aCheckLB; 136 PushButton aEditPB; 137 FixedText aHeader1Expl; 138 FixedText aHeader2Expl; 139 140 String sHeader1; 141 String sHeader2; 142 143 String sDeleteEmptyPara; 144 String sUseReplaceTbl; 145 String sCptlSttWord; 146 String sCptlSttSent; 147 String sUserStyle; 148 String sBullet; 149 String sByInputBullet; 150 String sBoldUnder; 151 String sNoDblSpaces; 152 String sDetectURL; 153 String sDash; 154 String sNonBrkSpace; 155 String sOrdinal; 156 String sRightMargin; 157 String sNum; 158 String sBorder; 159 String sTable; 160 String sReplaceTemplates; 161 String sDelSpaceAtSttEnd; 162 String sDelSpaceBetweenLines; 163 164 String sMargin; 165 String sBulletChar; 166 String sByInputBulletChar; 167 168 Font aBulletFont; 169 Font aByInputBulletFont; 170 sal_uInt16 nPercent; 171 172 SvLBoxButtonData* pCheckButtonData; 173 174 DECL_LINK(SelectHdl, OfaACorrCheckListBox*); 175 DECL_LINK(EditHdl, PushButton*); 176 SvLBoxEntry* CreateEntry(String& rTxt, sal_uInt16 nCol); 177 178 179 OfaSwAutoFmtOptionsPage( Window* pParent, 180 const SfxItemSet& rSet ); 181 ~OfaSwAutoFmtOptionsPage(); 182 183 public: 184 static SfxTabPage* Create( Window* pParent, 185 const SfxItemSet& rAttrSet); 186 virtual sal_Bool FillItemSet( SfxItemSet& rSet ); 187 virtual void Reset( const SfxItemSet& rSet ); 188 virtual void ActivatePage( const SfxItemSet& ); 189 }; 190 191 // class AutoCorrEdit ---------------------------------------------------- 192 193 class AutoCorrEdit : public Edit 194 { 195 Link aActionLink; 196 sal_Bool bSpaces; 197 198 public: AutoCorrEdit(Window * pParent,const ResId & rResId)199 AutoCorrEdit(Window* pParent, const ResId& rResId) : 200 Edit(pParent, rResId), bSpaces(sal_False){} 201 SetActionHdl(const Link & rLink)202 void SetActionHdl( const Link& rLink ) 203 { aActionLink = rLink;} 204 SetSpaces(sal_Bool bSet)205 void SetSpaces(sal_Bool bSet) 206 {bSpaces = bSet;} 207 208 virtual void KeyInput( const KeyEvent& rKEvent ); 209 }; 210 211 // class OfaAutocorrReplacePage ------------------------------------------ 212 213 class DoubleStringArray; 214 typedef DoubleStringArray* DoubleStringArrayPtr; 215 DECLARE_TABLE(DoubleStringTable, DoubleStringArrayPtr) 216 217 class OfaAutocorrReplacePage : public SfxTabPage 218 { 219 using TabPage::ActivatePage; 220 using TabPage::DeactivatePage; 221 222 private: 223 CheckBox aTextOnlyCB; 224 FixedText aShortFT; 225 AutoCorrEdit aShortED; 226 FixedText aReplaceFT; 227 AutoCorrEdit aReplaceED; 228 SvTabListBox aReplaceTLB; 229 PushButton aNewReplacePB; 230 PushButton aDeleteReplacePB; 231 232 String sModify; 233 String sNew; 234 235 SvStringsISortDtor* pFormatText; 236 DoubleStringTable aDoubleStringTable; 237 CollatorWrapper* pCompareClass; 238 CharClass* pCharClass; 239 LanguageType eLang; 240 241 sal_Bool bHasSelectionText; 242 sal_Bool bFirstSelect:1; 243 sal_Bool bReplaceEditChanged:1; 244 sal_Bool bSWriter:1; 245 246 DECL_LINK(SelectHdl, SvTabListBox*); 247 DECL_LINK(NewDelHdl, PushButton*); 248 DECL_LINK(ModifyHdl, Edit*); 249 250 void RefillReplaceBox(sal_Bool bFromReset, //Box mit neuer Sprache fuellen 251 LanguageType eOldLanguage, 252 LanguageType eNewLanguage); 253 254 public: 255 OfaAutocorrReplacePage( Window* pParent, const SfxItemSet& rSet ); 256 ~OfaAutocorrReplacePage(); 257 258 static SfxTabPage* Create( Window* pParent, 259 const SfxItemSet& rAttrSet); 260 261 virtual sal_Bool FillItemSet( SfxItemSet& rSet ); 262 virtual void Reset( const SfxItemSet& rSet ); 263 virtual void ActivatePage( const SfxItemSet& ); 264 virtual int DeactivatePage( SfxItemSet* pSet = 0 ); 265 266 void SetLanguage(LanguageType eSet); 267 }; 268 269 // class OfaAutocorrExceptPage --------------------------------------------- 270 271 struct StringsArrays; 272 typedef StringsArrays* StringsArraysPtr; 273 DECLARE_TABLE(StringsTable, StringsArraysPtr) 274 275 class OfaAutocorrExceptPage : public SfxTabPage 276 { 277 using TabPage::ActivatePage; 278 using TabPage::DeactivatePage; 279 280 private: 281 FixedLine aAbbrevFL; 282 AutoCorrEdit aAbbrevED; 283 ListBox aAbbrevLB; 284 PushButton aNewAbbrevPB; 285 PushButton aDelAbbrevPB; 286 CheckBox aAutoAbbrevCB; 287 288 FixedLine aDoubleCapsFL; 289 AutoCorrEdit aDoubleCapsED; 290 ListBox aDoubleCapsLB; 291 PushButton aNewDoublePB; 292 PushButton aDelDoublePB; 293 CheckBox aAutoCapsCB; 294 295 StringsTable aStringsTable; 296 CollatorWrapper* pCompareClass; 297 LanguageType eLang; 298 299 DECL_LINK(NewDelHdl, PushButton*); 300 DECL_LINK(SelectHdl, ListBox*); 301 DECL_LINK(ModifyHdl, Edit*); 302 303 void RefillReplaceBoxes(sal_Bool bFromReset, //Box mit neuer Sprache fuellen 304 LanguageType eOldLanguage, 305 LanguageType eNewLanguage); 306 public: 307 OfaAutocorrExceptPage( Window* pParent, const SfxItemSet& rSet ); 308 ~OfaAutocorrExceptPage(); 309 310 static SfxTabPage* Create( Window* pParent, 311 const SfxItemSet& rAttrSet); 312 313 virtual sal_Bool FillItemSet( SfxItemSet& rSet ); 314 virtual void Reset( const SfxItemSet& rSet ); 315 virtual void ActivatePage( const SfxItemSet& ); 316 virtual int DeactivatePage( SfxItemSet* pSet = 0 ); 317 void SetLanguage(LanguageType eSet); 318 319 }; 320 321 // class OfaQuoteTabPage ------------------------------------------------- 322 323 class OfaQuoteTabPage : public SfxTabPage 324 { 325 using TabPage::ActivatePage; 326 327 private: 328 // For anything but writer 329 SvxCheckListBox aCheckLB; 330 331 // Just for writer 332 OfaACorrCheckListBox aSwCheckLB; 333 String sHeader1; 334 String sHeader2; 335 336 String sNonBrkSpace; 337 String sOrdinal; 338 339 SvLBoxButtonData* pCheckButtonData; 340 341 FixedLine aSingleFL; 342 CheckBox aSingleTypoCB; 343 FixedText aSglStartQuoteFT; 344 PushButton aSglStartQuotePB; 345 FixedText aSglStartExFT; 346 FixedText aSglEndQuoteFT; 347 PushButton aSglEndQuotePB; 348 FixedText aSglEndExFT; 349 PushButton aSglStandardPB; 350 351 FixedLine aDoubleFL; 352 CheckBox aTypoCB; 353 FixedText aStartQuoteFT; 354 PushButton aStartQuotePB; 355 FixedText aDblStartExFT; 356 FixedText aEndQuoteFT; 357 PushButton aEndQuotePB; 358 FixedText aDblEndExFT; 359 PushButton aDblStandardPB; 360 361 String sStartQuoteDlg; 362 String sEndQuoteDlg; 363 364 String sStandard; 365 366 367 sal_UCS4 cSglStartQuote; 368 sal_UCS4 cSglEndQuote; 369 370 sal_UCS4 cStartQuote; 371 sal_UCS4 cEndQuote; 372 373 DECL_LINK( QuoteHdl, PushButton* ); 374 DECL_LINK( StdQuoteHdl, PushButton* ); 375 376 String ChangeStringExt_Impl( sal_UCS4 ); 377 378 SvLBoxEntry* CreateEntry(String& rTxt, sal_uInt16 nCol); 379 380 OfaQuoteTabPage( Window* pParent, const SfxItemSet& rSet ); 381 public: 382 ~OfaQuoteTabPage(); 383 384 static SfxTabPage* Create( Window* pParent, 385 const SfxItemSet& rAttrSet); 386 387 virtual sal_Bool FillItemSet( SfxItemSet& rSet ); 388 virtual void Reset( const SfxItemSet& rSet ); 389 virtual void ActivatePage( const SfxItemSet& ); 390 }; 391 392 // class OfaAutoCompleteTabPage --------------------------------------------- 393 394 class OfaAutoCompleteTabPage : public SfxTabPage 395 { 396 using TabPage::ActivatePage; 397 398 class AutoCompleteMultiListBox : public MultiListBox 399 { 400 OfaAutoCompleteTabPage& rPage; 401 public: AutoCompleteMultiListBox(OfaAutoCompleteTabPage & rPg,const ResId & rResId)402 AutoCompleteMultiListBox( OfaAutoCompleteTabPage& rPg, 403 const ResId& rResId ) 404 : MultiListBox( &rPg, rResId ), rPage( rPg ) {} 405 406 virtual long PreNotify( NotifyEvent& rNEvt ); 407 }; 408 409 CheckBox aCBActiv; //Enable word completion 410 CheckBox aCBAppendSpace;//Append space 411 CheckBox aCBAsTip; //Show as tip 412 413 CheckBox aCBCollect;//Collect words 414 CheckBox aCBRemoveList;//...save the list for later use... 415 //--removed--CheckBox aCBEndless;// 416 417 FixedText aFTExpandKey; 418 ListBox aDCBExpandKey; 419 FixedText aFTMinWordlen; 420 NumericField aNFMinWordlen; 421 FixedText aFTMaxEntries; 422 NumericField aNFMaxEntries; 423 AutoCompleteMultiListBox aLBEntries; 424 PushButton aPBEntries; 425 SvStringsISortDtor* pAutoCmpltList; 426 sal_uInt16 nAutoCmpltListCnt; 427 428 DECL_LINK( CheckHdl, CheckBox* ); 429 430 OfaAutoCompleteTabPage( Window* pParent, 431 const SfxItemSet& rSet ); 432 public: 433 virtual ~OfaAutoCompleteTabPage(); 434 435 static SfxTabPage* Create( Window* pParent, 436 const SfxItemSet& rAttrSet); 437 438 virtual sal_Bool FillItemSet( SfxItemSet& rSet ); 439 virtual void Reset( const SfxItemSet& rSet ); 440 virtual void ActivatePage( const SfxItemSet& ); 441 442 void CopyToClipboard() const; 443 DECL_LINK( DeleteHdl, PushButton* ); 444 }; 445 446 // class OfaSmartTagOptionsTabPage --------------------------------------------- 447 448 /** Smart tag options tab page 449 450 This tab page is used to enable/disable smart tag types 451 */ 452 class OfaSmartTagOptionsTabPage : public SfxTabPage 453 { 454 using TabPage::ActivatePage; 455 456 private: 457 458 // controls 459 CheckBox m_aMainCB; 460 SvxCheckListBox m_aSmartTagTypesLB; 461 PushButton m_aPropertiesPB; 462 FixedText m_aTitleFT; 463 464 // construction via Create() 465 OfaSmartTagOptionsTabPage( Window* pParent, const SfxItemSet& rSet ); 466 467 /** Inserts items into m_aSmartTagTypesLB 468 469 Reads out the smart tag types supported by the SmartTagMgr and 470 inserts the associated strings into the list box. 471 */ 472 void FillListBox( const SmartTagMgr& rSmartTagMgr ); 473 474 /** Clears the m_aSmartTagTypesLB 475 */ 476 void ClearListBox(); 477 478 /** Handler for the check box 479 480 Enables/disables all controls in the tab page (except from the 481 check box. 482 */ 483 DECL_LINK( CheckHdl, CheckBox* ); 484 485 /** Handler for the push button 486 487 Calls the displayPropertyPage function of the smart tag recognizer 488 associated with the currently selected smart tag type. 489 */ 490 DECL_LINK( ClickHdl, PushButton* ); 491 492 /** Handler for the list box 493 494 Enables/disables the properties push button if selection in the 495 smart tag types list box changes. 496 */ 497 DECL_LINK( SelectHdl, SvxCheckListBox* ); 498 499 public: 500 501 virtual ~OfaSmartTagOptionsTabPage(); 502 503 static SfxTabPage* Create( Window* pParent, const SfxItemSet& rAttrSet); 504 505 virtual sal_Bool FillItemSet( SfxItemSet& rSet ); 506 virtual void Reset( const SfxItemSet& rSet ); 507 virtual void ActivatePage( const SfxItemSet& ); 508 }; 509 510 #endif // _OFA_AUTOCDLG_CXX 511 512 #endif // 513 514