| /************************************************************** |
| * |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| * |
| *************************************************************/ |
| |
| |
| |
| #ifndef _TEXTCONVERSIONDLGS_CHINESE_DICTIONARYDLG_HXX |
| #define _TEXTCONVERSIONDLGS_CHINESE_DICTIONARYDLG_HXX |
| |
| #include <vcl/dialog.hxx> |
| // header for class FixedLine |
| #include <vcl/fixed.hxx> |
| // header for class RadioButton |
| #ifndef _SV_BUTTON_HXX |
| #include <vcl/button.hxx> |
| #endif |
| // header for class Edit |
| #include <vcl/edit.hxx> |
| // header for class ListBox |
| #include <vcl/lstbox.hxx> |
| // header for class SvHeaderTabListBox |
| #include <svtools/svtabbx.hxx> |
| #include <com/sun/star/uno/XComponentContext.hpp> |
| #include <com/sun/star/lang/XMultiComponentFactory.hpp> |
| #include <com/sun/star/linguistic2/XConversionDictionary.hpp> |
| |
| #include <vector> |
| |
| //............................................................................. |
| namespace textconversiondlgs |
| { |
| //............................................................................. |
| |
| //----------------------------------------------------------------------------- |
| /** |
| */ |
| |
| struct DictionaryEntry |
| { |
| DictionaryEntry( const rtl::OUString& rTerm, const rtl::OUString& rMapping |
| , sal_Int16 nConversionPropertyType //linguistic2::ConversionPropertyType |
| , sal_Bool bNewEntry = sal_False ); |
| |
| virtual ~DictionaryEntry(); |
| |
| bool operator==( const DictionaryEntry& rE ) const; |
| |
| rtl::OUString m_aTerm; |
| rtl::OUString m_aMapping; |
| sal_Int16 m_nConversionPropertyType; //linguistic2::ConversionPropertyType |
| |
| sal_Bool m_bNewEntry; |
| }; |
| |
| class DictionaryList : public SvHeaderTabListBox |
| { |
| public: |
| DictionaryList( Window* pParent, const ResId& ); |
| DictionaryList( Window* pParent ); |
| virtual ~DictionaryList(); |
| |
| HeaderBar* createHeaderBar( const String& rColumn1, const String& rColumn2, const String& rColumn3 |
| , long nWidth1, long nWidth2, long nWidth3 ); |
| |
| void initDictionaryControl( const ::com::sun::star::uno::Reference< ::com::sun::star::linguistic2::XConversionDictionary>& xDictionary |
| , ListBox* pPropertyTypeNameListBox ); |
| void activate( HeaderBar* pHeaderBar ); |
| void deleteAll(); |
| void refillFromDictionary( sal_Int32 nTextConversionOptions /*i18n::TextConversionOption*/ ); |
| void save(); |
| |
| DictionaryEntry* getTermEntry( const rtl::OUString& rTerm ) const; |
| bool hasTerm( const rtl::OUString& rTerm ) const; |
| |
| void addEntry( const rtl::OUString& rTerm, const rtl::OUString& rMapping |
| , sal_Int16 nConversionPropertyType /*linguistic2::ConversionPropertyType*/, sal_uIntPtr nPos = LIST_APPEND ); |
| sal_uIntPtr deleteEntries( const rtl::OUString& rTerm ); //return lowest position of deleted entries or LIST_APPEND if no entry was deleted |
| void deleteEntryOnPos( sal_Int32 nPos ); |
| DictionaryEntry* getEntryOnPos( sal_Int32 nPos ) const; |
| DictionaryEntry* getFirstSelectedEntry() const; |
| |
| void sortByColumn( sal_uInt16 nSortColumnIndex, bool bSortAtoZ ); |
| sal_uInt16 getSortColumn() const; |
| |
| virtual void Resize(); |
| |
| private: |
| String getPropertyTypeName( sal_Int16 nConversionPropertyType /*linguistic2::ConversionPropertyType*/ ) const; |
| String makeTabString( const DictionaryEntry& rEntry ) const; |
| |
| DECL_LINK( CompareHdl, SvSortData* ); |
| StringCompare ColumnCompare( SvLBoxEntry* pLeft, SvLBoxEntry* pRight ); |
| SvLBoxItem* getItemAtColumn( SvLBoxEntry* pEntry, sal_uInt16 nColumn ) const; |
| |
| public: |
| ::com::sun::star::uno::Reference< |
| ::com::sun::star::linguistic2::XConversionDictionary> m_xDictionary; |
| |
| private: |
| HeaderBar* m_pHeaderBar; |
| ListBox* m_pPropertyTypeNameListBox; |
| |
| std::vector< DictionaryEntry* > m_aToBeDeleted; |
| |
| sal_uInt16 m_nSortColumnIndex; |
| }; |
| |
| class ChineseDictionaryDialog : public ModalDialog |
| { |
| public: |
| ChineseDictionaryDialog( Window* pParent ); |
| virtual ~ChineseDictionaryDialog(); |
| |
| //this method should be called once before calling execute |
| void setDirectionAndTextConversionOptions( bool bDirectionToSimplified, sal_Int32 nTextConversionOptions /*i18n::TextConversionOption*/ ); |
| |
| virtual short Execute(); |
| |
| private: |
| DECL_LINK( DirectionHdl, void* ); |
| DECL_LINK( EditFieldsHdl, Control* ); |
| DECL_LINK( MappingSelectHdl, void* ); |
| DECL_LINK( AddHdl, void* ); |
| DECL_LINK( ModifyHdl, void* ); |
| DECL_LINK( DeleteHdl, void* ); |
| DECL_LINK( HeaderBarClick, void* ); |
| |
| void updateAfterDirectionChange(); |
| void updateButtons(); |
| |
| bool isEditFieldsHaveContent() const; |
| bool isEditFieldsContentEqualsSelectedListContent() const; |
| |
| DictionaryList& getActiveDictionary(); |
| DictionaryList& getReverseDictionary(); |
| |
| const DictionaryList& getActiveDictionary() const; |
| const DictionaryList& getReverseDictionary() const; |
| |
| private: |
| sal_Int32 m_nTextConversionOptions; //i18n::TextConversionOption |
| |
| RadioButton m_aRB_To_Simplified; |
| RadioButton m_aRB_To_Traditional; |
| |
| CheckBox m_aCB_Reverse; |
| |
| FixedText m_aFT_Term; |
| Edit m_aED_Term; |
| |
| FixedText m_aFT_Mapping; |
| Edit m_aED_Mapping; |
| |
| FixedText m_aFT_Property; |
| ListBox m_aLB_Property; |
| |
| HeaderBar* m_pHeaderBar; |
| DictionaryList m_aCT_DictionaryToSimplified; |
| DictionaryList m_aCT_DictionaryToTraditional; |
| |
| PushButton m_aPB_Add; |
| PushButton m_aPB_Modify; |
| PushButton m_aPB_Delete; |
| |
| FixedLine m_aFL_Bottomline; |
| |
| OKButton m_aBP_OK; |
| CancelButton m_aBP_Cancel; |
| HelpButton m_aBP_Help; |
| |
| ::com::sun::star::uno::Reference< |
| ::com::sun::star::uno::XComponentContext > m_xContext; |
| ::com::sun::star::uno::Reference< |
| ::com::sun::star::lang::XMultiComponentFactory> m_xFactory; |
| }; |
| |
| //............................................................................. |
| } //end namespace |
| //............................................................................. |
| #endif |