summaryrefslogtreecommitdiff
path: root/svx/source/unodialogs/textconversiondlgs/chinese_dictionarydialog.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'svx/source/unodialogs/textconversiondlgs/chinese_dictionarydialog.hxx')
-rw-r--r--svx/source/unodialogs/textconversiondlgs/chinese_dictionarydialog.hxx201
1 files changed, 201 insertions, 0 deletions
diff --git a/svx/source/unodialogs/textconversiondlgs/chinese_dictionarydialog.hxx b/svx/source/unodialogs/textconversiondlgs/chinese_dictionarydialog.hxx
new file mode 100644
index 000000000000..afe573330fe8
--- /dev/null
+++ b/svx/source/unodialogs/textconversiondlgs/chinese_dictionarydialog.hxx
@@ -0,0 +1,201 @@
+/*************************************************************************
+ *
+ * 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
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 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*/, ULONG nPos = LIST_APPEND );
+ ULONG 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( USHORT nSortColumnIndex, bool bSortAtoZ );
+ USHORT 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, USHORT 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;
+
+ USHORT 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