/************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * Copyright 2008 by Sun Microsystems, Inc. * * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: $ * $Revision: $ * * 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 _SVX_THESDLG_IMPL_HXX #define _SVX_THESDLG_IMPL_HXX #include "thesdlg.hxx" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace ::com::sun::star; using ::rtl::OUString; class SvLBoxEntry; class ThesaurusAlternativesCtrl_Impl; // class LookUpComboBox_Impl -------------------------------------------------- class LookUpComboBox_Impl : public ComboBox { Timer m_aModifyTimer; Selection m_aSelection; Button * m_pBtn; SvxThesaurusDialog_Impl & m_rDialogImpl; // disable copy c-tor and assignment operator LookUpComboBox_Impl( const LookUpComboBox_Impl & ); LookUpComboBox_Impl & operator = ( const LookUpComboBox_Impl & ); public: LookUpComboBox_Impl( Window *pParent, const ResId &rResId, SvxThesaurusDialog_Impl &rImpl ); virtual ~LookUpComboBox_Impl(); DECL_LINK( ModifyTimer_Hdl, Timer * ); void SetButton( Button *pBtn ) { m_pBtn = pBtn; } // ComboBox virtual void Modify(); }; // class ReplaceEdit_Impl -------------------------------------------------- class ReplaceEdit_Impl : public Edit { Button * m_pBtn; // disable copy c-tor and assignment operator ReplaceEdit_Impl( const ReplaceEdit_Impl & ); ReplaceEdit_Impl & operator = ( const ReplaceEdit_Impl & ); public: ReplaceEdit_Impl( Window *pParent, const ResId &rResId ); virtual ~ReplaceEdit_Impl(); void SetButton( Button *pBtn ) { m_pBtn = pBtn; } // Edit virtual void Modify(); virtual void SetText( const XubString& rStr ); virtual void SetText( const XubString& rStr, const Selection& rNewSelection ); }; // class ThesaurusAlternativesCtrl_Impl ---------------------------------- class AlternativesExtraData { String sText; bool bHeader; public: AlternativesExtraData() : bHeader( false ) {} AlternativesExtraData( const String &rText, bool bIsHeader ) : sText(rText), bHeader(bIsHeader) { } bool IsHeader() const { return bHeader; } const String& GetText() const { return sText; } }; class AlternativesString_Impl : public SvLBoxString { ThesaurusAlternativesCtrl_Impl & m_rControlImpl; public: AlternativesString_Impl( ThesaurusAlternativesCtrl_Impl &rControl, SvLBoxEntry* pEntry, sal_uInt16 nFlags, const String& rStr ); virtual void Paint( const Point& rPos, SvLBox& rDev, sal_uInt16 nFlags, SvLBoxEntry* pEntry); }; class ThesaurusAlternativesCtrl_Impl : public SvxCheckListBox { SvxThesaurusDialog_Impl & m_rDialogImpl; typedef std::map< const SvLBoxEntry *, AlternativesExtraData > UserDataMap_t; UserDataMap_t m_aUserData; // disable copy c-tor and assignment operator ThesaurusAlternativesCtrl_Impl( const ThesaurusAlternativesCtrl_Impl & ); ThesaurusAlternativesCtrl_Impl & operator = ( const ThesaurusAlternativesCtrl_Impl & ); public: ThesaurusAlternativesCtrl_Impl( Window* pParent, SvxThesaurusDialog_Impl &rImpl ); virtual ~ThesaurusAlternativesCtrl_Impl(); SvLBoxEntry * AddEntry( sal_Int32 nVal, const String &rText, bool bIsHeader ); void ClearExtraData(); void SetExtraData( const SvLBoxEntry *pEntry, const AlternativesExtraData &rData ); AlternativesExtraData * GetExtraData( const SvLBoxEntry *pEntry ); virtual void KeyInput( const KeyEvent& rKEvt ); virtual void Paint( const Rectangle& rRect ); }; // struct SvxThesaurusDialog_Impl ---------------------------------------- struct SvxThesaurusDialog_Impl { SvxThesaurusDialog * m_pDialog; FixedImage aVendorImageFI; ImageButton aLeftBtn; FixedText aWordText; LookUpComboBox_Impl aWordCB; FixedText m_aAlternativesText; boost::shared_ptr< ThesaurusAlternativesCtrl_Impl > m_pAlternativesCT; FixedText aReplaceText; ReplaceEdit_Impl aReplaceEdit; FixedLine aFL; HelpButton aHelpBtn; MenuButton aLangMBtn; OKButton aReplaceBtn; CancelButton aCancelBtn; String aErrStr; Image aVendorDefaultImage; Image aVendorDefaultImageHC; uno::Reference< linguistic2::XThesaurus > xThesaurus; OUString aLookUpText; LanguageType nLookUpLanguage; std::stack< OUString > aLookUpHistory; bool m_bWordFound; // Handler DECL_LINK( LeftBtnHdl_Impl, Button * ); DECL_LINK( LanguageHdl_Impl, MenuButton * ); DECL_LINK( LookUpHdl_Impl, Button * ); DECL_LINK( WordSelectHdl_Impl, ComboBox * ); DECL_LINK( AlternativesSelectHdl_Impl, SvxCheckListBox * ); DECL_LINK( AlternativesDoubleClickHdl_Impl, SvxCheckListBox * ); DECL_STATIC_LINK( SvxThesaurusDialog_Impl, SelectFirstHdl_Impl, SvxCheckListBox * ); DECL_STATIC_LINK( SvxThesaurusDialog_Impl, VendorImageInitHdl, SvxThesaurusDialog_Impl * ); SvxThesaurusDialog_Impl( SvxThesaurusDialog * pDialog ); ~SvxThesaurusDialog_Impl(); uno::Sequence< uno::Reference< linguistic2::XMeaning > > SAL_CALL queryMeanings_Impl( ::rtl::OUString& rTerm, const lang::Locale& rLocale, const beans::PropertyValues& rProperties ) throw(lang::IllegalArgumentException, uno::RuntimeException); bool UpdateAlternativesBox_Impl(); void UpdateVendorImage(); void LookUp( const String &rText ); void LookUp_Impl(); }; #endif