/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License version 3 * only, as published by the Free Software Foundation. * * OpenOffice.org is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License version 3 for more details * (a copy is included in the LICENSE file that accompanied this code). * * You should have received a copy of the GNU Lesser General Public License * version 3 along with OpenOffice.org. If not, see * * for a copy of the LGPLv3 License. * ************************************************************************/ #ifndef _OFA_AUTOCDLG_HXX #define _OFA_AUTOCDLG_HXX #include #include #include #include #include #include #include class CharClass; class CollatorWrapper; class SmartTagMgr; namespace editeng { class SortedAutoCompleteStrings; } // class OfaAutoCorrDlg -------------------------------------------------- class OfaAutoCorrDlg : public SfxTabDialog { FixedText aLanguageFT; SvxLanguageBox aLanguageLB; DECL_LINK(SelectLanguageHdl, ListBox*); public: OfaAutoCorrDlg(Window* pParent, const SfxItemSet *pSet ); void EnableLanguage(sal_Bool bEnable) { aLanguageFT.Enable(bEnable); aLanguageLB.Enable(bEnable);} }; #ifdef _OFA_AUTOCDLG_CXX #include #include #include #include #include // class OfaACorrCheckListBox ------------------------------------------ class OfaACorrCheckListBox : public SvxSimpleTable { using SvxSimpleTable::SetTabs; using SvTreeListBox::GetCheckButtonState; using SvTreeListBox::SetCheckButtonState; protected: virtual void SetTabs(); virtual void HBarClick(); virtual void KeyInput( const KeyEvent& rKEvt ); public: OfaACorrCheckListBox(SvxSimpleTableContainer& rParent, WinBits nBits = WB_BORDER) : SvxSimpleTable(rParent, nBits) { } inline void *GetUserData(sal_uLong nPos) { return GetEntry(nPos)->GetUserData(); } inline void SetUserData(sal_uLong nPos, void *pData ) { GetEntry(nPos)->SetUserData(pData); } inline sal_uLong GetSelectEntryPos() { return GetModel()->GetAbsPos(FirstSelected()); } sal_Bool IsChecked(sal_uLong nPos, sal_uInt16 nCol = 0); void CheckEntryPos(sal_uLong nPos, sal_uInt16 nCol, sal_Bool bChecked); SvButtonState GetCheckButtonState( SvLBoxEntry*, sal_uInt16 nCol ) const; void SetCheckButtonState( SvLBoxEntry*, sal_uInt16 nCol, SvButtonState ); }; // class OfaAutocorrOptionsPage ------------------------------------------ class OfaAutocorrOptionsPage : public SfxTabPage { using TabPage::ActivatePage; private: SvxCheckListBox aCheckLB; String sInput; String sDoubleCaps; String sStartCap; String sBoldUnderline; String sURL; String sNoDblSpaces; String sDash; String sNonBrkSpace; String sFirst; String sAccidentalCaps; public: OfaAutocorrOptionsPage( Window* pParent, const SfxItemSet& rSet ); ~OfaAutocorrOptionsPage(); static SfxTabPage* Create( Window* pParent, const SfxItemSet& rAttrSet); virtual sal_Bool FillItemSet( SfxItemSet& rSet ); virtual void Reset( const SfxItemSet& rSet ); virtual void ActivatePage( const SfxItemSet& ); }; // class OfaSwAutoFmtOptionsPage ---------------------------------------------------- class OfaSwAutoFmtOptionsPage : public SfxTabPage { using TabPage::ActivatePage; SvxSimpleTableContainer m_aCheckLBContainer; OfaACorrCheckListBox aCheckLB; PushButton aEditPB; FixedText aHeader1Expl; FixedText aHeader2Expl; String sHeader1; String sHeader2; String sDeleteEmptyPara; String sUseReplaceTbl; String sCptlSttWord; String sCptlSttSent; String sUserStyle; String sBullet; String sByInputBullet; String sBoldUnder; String sNoDblSpaces; String sCorrectCapsLock; String sDetectURL; String sDash; String sNonBrkSpace; String sOrdinal; String sRightMargin; String sNum; String sBorder; String sTable; String sReplaceTemplates; String sDelSpaceAtSttEnd; String sDelSpaceBetweenLines; String sMargin; String sBulletChar; String sByInputBulletChar; Font aBulletFont; Font aByInputBulletFont; sal_uInt16 nPercent; SvLBoxButtonData* pCheckButtonData; DECL_LINK(SelectHdl, OfaACorrCheckListBox*); DECL_LINK(EditHdl, void *); SvLBoxEntry* CreateEntry(String& rTxt, sal_uInt16 nCol); OfaSwAutoFmtOptionsPage( Window* pParent, const SfxItemSet& rSet ); ~OfaSwAutoFmtOptionsPage(); public: static SfxTabPage* Create( Window* pParent, const SfxItemSet& rAttrSet); virtual sal_Bool FillItemSet( SfxItemSet& rSet ); virtual void Reset( const SfxItemSet& rSet ); virtual void ActivatePage( const SfxItemSet& ); }; // class AutoCorrEdit ---------------------------------------------------- class AutoCorrEdit : public Edit { Link aActionLink; sal_Bool bSpaces; public: AutoCorrEdit(Window* pParent, const ResId& rResId) : Edit(pParent, rResId), bSpaces(sal_False){} void SetActionHdl( const Link& rLink ) { aActionLink = rLink;} void SetSpaces(sal_Bool bSet) {bSpaces = bSet;} virtual void KeyInput( const KeyEvent& rKEvent ); }; // class OfaAutocorrReplacePage ------------------------------------------ struct DoubleString { String sShort; String sLong; void* pUserData; ///< CheckBox -> form. Text Bool -> selection text }; typedef std::vector DoubleStringArray; typedef std::map DoubleStringTable; class OfaAutocorrReplacePage : public SfxTabPage { using TabPage::ActivatePage; using TabPage::DeactivatePage; private: CheckBox aTextOnlyCB; FixedText aShortFT; AutoCorrEdit aShortED; FixedText aReplaceFT; AutoCorrEdit aReplaceED; SvTabListBox aReplaceTLB; PushButton aNewReplacePB; PushButton aDeleteReplacePB; String sModify; String sNew; std::set aFormatText; DoubleStringTable aDoubleStringTable; CollatorWrapper* pCompareClass; CharClass* pCharClass; LanguageType eLang; sal_Bool bHasSelectionText; sal_Bool bFirstSelect:1; sal_Bool bReplaceEditChanged:1; sal_Bool bSWriter:1; DECL_LINK(SelectHdl, SvTabListBox*); DECL_LINK(NewDelHdl, PushButton*); DECL_LINK(ModifyHdl, Edit*); void RefillReplaceBox(sal_Bool bFromReset, LanguageType eOldLanguage, LanguageType eNewLanguage); public: OfaAutocorrReplacePage( Window* pParent, const SfxItemSet& rSet ); ~OfaAutocorrReplacePage(); static SfxTabPage* Create( Window* pParent, const SfxItemSet& rAttrSet); virtual sal_Bool FillItemSet( SfxItemSet& rSet ); virtual void Reset( const SfxItemSet& rSet ); virtual void ActivatePage( const SfxItemSet& ); virtual int DeactivatePage( SfxItemSet* pSet = 0 ); void SetLanguage(LanguageType eSet); }; // class OfaAutocorrExceptPage --------------------------------------------- struct StringsArrays { std::vector aAbbrevStrings; std::vector aDoubleCapsStrings; StringsArrays() { } }; typedef std::map StringsTable; class OfaAutocorrExceptPage : public SfxTabPage { using TabPage::ActivatePage; using TabPage::DeactivatePage; private: FixedLine aAbbrevFL; AutoCorrEdit aAbbrevED; ListBox aAbbrevLB; PushButton aNewAbbrevPB; PushButton aDelAbbrevPB; CheckBox aAutoAbbrevCB; FixedLine aDoubleCapsFL; AutoCorrEdit aDoubleCapsED; ListBox aDoubleCapsLB; PushButton aNewDoublePB; PushButton aDelDoublePB; CheckBox aAutoCapsCB; StringsTable aStringsTable; CollatorWrapper* pCompareClass; LanguageType eLang; DECL_LINK(NewDelHdl, PushButton*); DECL_LINK(SelectHdl, ListBox*); DECL_LINK(ModifyHdl, Edit*); /// Box filled with new language void RefillReplaceBoxes(sal_Bool bFromReset, LanguageType eOldLanguage, LanguageType eNewLanguage); public: OfaAutocorrExceptPage( Window* pParent, const SfxItemSet& rSet ); ~OfaAutocorrExceptPage(); static SfxTabPage* Create( Window* pParent, const SfxItemSet& rAttrSet); virtual sal_Bool FillItemSet( SfxItemSet& rSet ); virtual void Reset( const SfxItemSet& rSet ); virtual void ActivatePage( const SfxItemSet& ); virtual int DeactivatePage( SfxItemSet* pSet = 0 ); void SetLanguage(LanguageType eSet); }; // class OfaQuoteTabPage ------------------------------------------------- class OfaQuoteTabPage : public SfxTabPage { using TabPage::ActivatePage; private: /// For anything but writer SvxCheckListBox aCheckLB; /// Just for writer SvxSimpleTableContainer m_aSwCheckLBContainer; OfaACorrCheckListBox aSwCheckLB; String sHeader1; String sHeader2; String sNonBrkSpace; String sOrdinal; SvLBoxButtonData* pCheckButtonData; FixedLine aSingleFL; CheckBox aSingleTypoCB; FixedText aSglStartQuoteFT; PushButton aSglStartQuotePB; FixedText aSglStartExFT; FixedText aSglEndQuoteFT; PushButton aSglEndQuotePB; FixedText aSglEndExFT; PushButton aSglStandardPB; FixedLine aDoubleFL; CheckBox aTypoCB; FixedText aStartQuoteFT; PushButton aStartQuotePB; FixedText aDblStartExFT; FixedText aEndQuoteFT; PushButton aEndQuotePB; FixedText aDblEndExFT; PushButton aDblStandardPB; String sStartQuoteDlg; String sEndQuoteDlg; String sStandard; sal_UCS4 cSglStartQuote; sal_UCS4 cSglEndQuote; sal_UCS4 cStartQuote; sal_UCS4 cEndQuote; DECL_LINK( QuoteHdl, PushButton* ); DECL_LINK( StdQuoteHdl, PushButton* ); String ChangeStringExt_Impl( sal_UCS4 ); SvLBoxEntry* CreateEntry(String& rTxt, sal_uInt16 nCol); OfaQuoteTabPage( Window* pParent, const SfxItemSet& rSet ); public: ~OfaQuoteTabPage(); static SfxTabPage* Create( Window* pParent, const SfxItemSet& rAttrSet); virtual sal_Bool FillItemSet( SfxItemSet& rSet ); virtual void Reset( const SfxItemSet& rSet ); virtual void ActivatePage( const SfxItemSet& ); }; // class OfaAutoCompleteTabPage --------------------------------------------- class OfaAutoCompleteTabPage : public SfxTabPage { using TabPage::ActivatePage; class AutoCompleteMultiListBox : public MultiListBox { OfaAutoCompleteTabPage& rPage; public: AutoCompleteMultiListBox( OfaAutoCompleteTabPage& rPg, const ResId& rResId ) : MultiListBox( &rPg, rResId ), rPage( rPg ) {} virtual long PreNotify( NotifyEvent& rNEvt ); }; CheckBox aCBActiv; ///