diff options
Diffstat (limited to 'cui/source/options/internationaloptions.cxx')
-rw-r--r-- | cui/source/options/internationaloptions.cxx | 164 |
1 files changed, 164 insertions, 0 deletions
diff --git a/cui/source/options/internationaloptions.cxx b/cui/source/options/internationaloptions.cxx new file mode 100644 index 000000000000..96c60fc1599e --- /dev/null +++ b/cui/source/options/internationaloptions.cxx @@ -0,0 +1,164 @@ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +// MARKER(update_precomp.py): autogen include statement, do not remove +#include "precompiled_cui.hxx" + +#include "internationaloptions.hxx" +#include "internationaloptions.hrc" +#include <svl/eitem.hxx> +#include <cuires.hrc> +#include "helpid.hrc" +#include <dialmgr.hxx> +#include <svx/dialogs.hrc> + +namespace offapp +{ + + struct InternationalOptionsPage::IMPL + { + FixedLine m_aFL_DefaultTextDirection; + RadioButton m_aRB_TxtDirLeft2Right; + RadioButton m_aRB_TxtDirRight2Left; + FixedLine m_aFL_SheetView; + CheckBox m_aCB_ShtVwRight2Left; + CheckBox m_aCB_ShtVwCurrentDocOnly; + + BOOL m_bEnable_SheetView_Opt : 1; + + inline IMPL( Window* _pParent ); + + inline void EnableOption_SheetView( BOOL _bEnable = TRUE ); + void ShowOption_SheetView( BOOL _bShow = TRUE ); + + BOOL FillItemSet( SfxItemSet& _rSet ); + void Reset( const SfxItemSet& _rSet ); + }; + + inline InternationalOptionsPage::IMPL::IMPL( Window* _pParent ) : + m_aFL_DefaultTextDirection ( _pParent, CUI_RES( FL_DEFTXTDIRECTION ) ) + ,m_aRB_TxtDirLeft2Right ( _pParent, CUI_RES( RB_TXTDIR_LEFT2RIGHT ) ) + ,m_aRB_TxtDirRight2Left ( _pParent, CUI_RES( RB_TXTDIR_RIGHT2LEFT ) ) + ,m_aFL_SheetView ( _pParent, CUI_RES( FL_SHEETVIEW ) ) + ,m_aCB_ShtVwRight2Left ( _pParent, CUI_RES( CB_SHTVW_RIGHT2LEFT ) ) + ,m_aCB_ShtVwCurrentDocOnly ( _pParent, CUI_RES( CB_SHTVW_CURRENTDOCONLY ) ) + + ,m_bEnable_SheetView_Opt ( FALSE ) + { + ShowOption_SheetView( m_bEnable_SheetView_Opt ); + } + + inline void InternationalOptionsPage::IMPL::EnableOption_SheetView( BOOL _bEnable ) + { + if( m_bEnable_SheetView_Opt != _bEnable ) + { + ShowOption_SheetView( _bEnable ); + + m_bEnable_SheetView_Opt = _bEnable; + } + } + + void InternationalOptionsPage::IMPL::ShowOption_SheetView( BOOL _bShow ) + { + m_aFL_SheetView.Show( _bShow ); + m_aCB_ShtVwRight2Left.Show( _bShow ); + m_aCB_ShtVwCurrentDocOnly.Show( _bShow ); + } + + BOOL InternationalOptionsPage::IMPL::FillItemSet( SfxItemSet& _rSet ) + { + DBG_ASSERT( _rSet.GetPool(), "-InternationalOptionsPage::FillItemSet(): no pool gives rums!" ); + + // handling of DefaultTextDirection stuff + _rSet.Put( SfxBoolItem( _rSet.GetPool()->GetWhich( SID_ATTR_PARA_LEFT_TO_RIGHT ), + m_aRB_TxtDirLeft2Right.IsChecked() ), + SID_ATTR_PARA_LEFT_TO_RIGHT ); + + // handling of SheetView stuff +// if( m_bEnable_SheetView_Opt ) +// { +// } + + return TRUE; + } + + void InternationalOptionsPage::IMPL::Reset( const SfxItemSet& _rSet ) + { + // handling of DefaultTextDirection stuff + const SfxBoolItem* pLeft2RightItem = static_cast< const SfxBoolItem* >( GetItem( _rSet, SID_ATTR_PARA_LEFT_TO_RIGHT ) ); + + DBG_ASSERT( pLeft2RightItem, "+InternationalOptionsPage::Reset(): SID_ATTR_PARA_LEFT_TO_RIGHT not set!" ); + + BOOL bLeft2Right = pLeft2RightItem? pLeft2RightItem->GetValue() : TRUE; + m_aRB_TxtDirLeft2Right.Check( bLeft2Right ); + + // handling of SheetView stuff +// if( m_bEnable_SheetView_Opt ) +// { +// m_aCB_ShtVwRight2Left.Check( FALSE ); +// +// m_aCB_ShtVwCurrentDocOnly.Check( FALSE ); +// } + } + + InternationalOptionsPage::InternationalOptionsPage( Window* _pParent, const SfxItemSet& _rAttrSet ) : + SfxTabPage ( _pParent, CUI_RES( RID_OFA_TP_INTERNATIONAL ), _rAttrSet ) + + ,m_pImpl ( new IMPL( this ) ) + { + FreeResource(); + } + + SfxTabPage* InternationalOptionsPage::CreateSd( Window* _pParent, const SfxItemSet& _rAttrSet ) + { + return new InternationalOptionsPage( _pParent, _rAttrSet ); + } + + SfxTabPage* InternationalOptionsPage::CreateSc( Window* _pParent, const SfxItemSet& _rAttrSet ) + { + InternationalOptionsPage* p = new InternationalOptionsPage( _pParent, _rAttrSet ); +// p->m_pImpl->EnableOption_SheetView(); + return p; + } + + InternationalOptionsPage::~InternationalOptionsPage() + { + DELETEZ( m_pImpl ); + } + + BOOL InternationalOptionsPage::FillItemSet( SfxItemSet& _rSet ) + { + return m_pImpl->FillItemSet( _rSet ); + } + + void InternationalOptionsPage::Reset( const SfxItemSet& _rSet ) + { + m_pImpl->Reset( _rSet ); + } + +} // /namespace offapp + |