| /************************************************************** |
| * |
| * 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. |
| * |
| *************************************************************/ |
| |
| |
| |
| #if !ENABLE_LAYOUT_EXPERIMENTAL |
| //#undef ENABLE_LAYOUT |
| #endif |
| |
| // MARKER(update_precomp.py): autogen include statement, do not remove |
| #include "precompiled_cui.hxx" |
| |
| // include --------------------------------------------------------------- |
| #include <svl/eitem.hxx> |
| #include <svl/intitem.hxx> |
| #include <sfx2/objsh.hxx> |
| #include <vcl/svapp.hxx> |
| #include <unotools/localedatawrapper.hxx> |
| #include <i18npool/lang.h> |
| #include <svx/dialogs.hrc> |
| #define _SVSTDARR_STRINGS |
| #define _SVSTDARR_STRINGSDTOR |
| #include <svl/svstdarr.hxx> |
| #include <svtools/colorcfg.hxx> |
| |
| #define _SVX_NUMFMT_CXX |
| |
| #include <cuires.hrc> |
| #include "numfmt.hrc" |
| |
| #include <svx/numinf.hxx> |
| |
| #include "numfmt.hxx" |
| #include <svx/numfmtsh.hxx> |
| #include <dialmgr.hxx> |
| #include <sfx2/request.hxx> //CHINA001 |
| #include <sfx2/app.hxx> //CHINA001 |
| #include <sfx2/basedlgs.hxx> |
| #include "svx/flagsdef.hxx" //CHINA001 |
| |
| #define NUMKEY_UNDEFINED SAL_MAX_UINT32 |
| |
| // static ---------------------------------------------------------------- |
| |
| static sal_uInt16 pRanges[] = |
| { |
| SID_ATTR_NUMBERFORMAT_VALUE, |
| SID_ATTR_NUMBERFORMAT_INFO, |
| SID_ATTR_NUMBERFORMAT_NOLANGUAGE, |
| SID_ATTR_NUMBERFORMAT_NOLANGUAGE, |
| SID_ATTR_NUMBERFORMAT_ONE_AREA, |
| SID_ATTR_NUMBERFORMAT_ONE_AREA, |
| SID_ATTR_NUMBERFORMAT_SOURCE, |
| SID_ATTR_NUMBERFORMAT_SOURCE, |
| 0 |
| }; |
| |
| /************************************************************************* |
| #* Methode: SvxNumberPreviewImpl Datum:02.10.97 |
| #*------------------------------------------------------------------------ |
| #* |
| #* Klasse: SvxNumberPreview |
| #* |
| #* Funktion: Konstruktor der Klasse SvxNumberPreviewImpl |
| #* |
| #* Input: Fenster, Resource-ID |
| #* |
| #* Output: --- |
| #* |
| #************************************************************************/ |
| |
| SvxNumberPreviewImpl::SvxNumberPreviewImpl( Window* pParent, const ResId& rResId ) : |
| |
| Window( pParent, rResId ) |
| |
| { |
| Font aFont( GetFont() ); |
| aFont.SetTransparent( sal_True ); |
| aFont.SetColor( Application::GetSettings().GetStyleSettings().GetFieldColor() ); |
| SetFont( aFont ); |
| InitSettings( sal_True, sal_True ); |
| SetBorderStyle( WINDOW_BORDER_MONO ); |
| } |
| |
| /************************************************************************* |
| #* Methode: SvxNumberPreviewImpl Datum:02.10.97 |
| #*------------------------------------------------------------------------ |
| #* |
| #* Klasse: SvxNumberPreview |
| #* |
| #* Funktion: Destruktor der Klasse SvxNumberPreviewImpl |
| #* |
| #* Input: --- |
| #* |
| #* Output: --- |
| #* |
| #************************************************************************/ |
| |
| SvxNumberPreviewImpl::~SvxNumberPreviewImpl() |
| { |
| } |
| |
| /************************************************************************* |
| #* Methode: NotifyChange Datum:02.10.97 |
| #*------------------------------------------------------------------------ |
| #* |
| #* Klasse: SvxNumberPreviewImpl |
| #* |
| #* Funktion: Funktion fuer das Aendern des Preview- Strings |
| #* |
| #* Input: String, Farbe |
| #* |
| #* Output: --- |
| #* |
| #************************************************************************/ |
| |
| void SvxNumberPreviewImpl::NotifyChange( const String& rPrevStr, |
| const Color* pColor ) |
| { |
| aPrevStr = rPrevStr; |
| svtools::ColorConfig aColorConfig; |
| Color aWindowTextColor( aColorConfig.GetColorValue( svtools::FONTCOLOR ).nColor ); |
| aPrevCol = pColor ? *pColor : aWindowTextColor; |
| Invalidate(); |
| Update(); |
| } |
| |
| /************************************************************************* |
| #* Methode: Paint Datum:02.10.97 |
| #*------------------------------------------------------------------------ |
| #* |
| #* Klasse: SvxNumberPreviewImpl |
| #* |
| #* Funktion: Funktion fuer das neu zeichnen des Fensters. |
| #* |
| #* Input: --- |
| #* |
| #* Output: --- |
| #* |
| #************************************************************************/ |
| |
| void SvxNumberPreviewImpl::Paint( const Rectangle& ) |
| { |
| Font aDrawFont = GetFont(); |
| Size aSzWnd = GetOutputSizePixel(); |
| Point aPosText = Point( (aSzWnd.Width() - GetTextWidth( aPrevStr )) /2, |
| (aSzWnd.Height() - GetTextHeight())/2 ); |
| |
| aDrawFont.SetColor( aPrevCol ); |
| SetFont( aDrawFont ); |
| DrawText( aPosText, aPrevStr ); |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| void SvxNumberPreviewImpl::InitSettings( sal_Bool bForeground, sal_Bool bBackground ) |
| { |
| const StyleSettings& rStyleSettings = Application::GetSettings().GetStyleSettings(); |
| |
| if ( bForeground ) |
| { |
| svtools::ColorConfig aColorConfig; |
| Color aTextColor( aColorConfig.GetColorValue( svtools::FONTCOLOR ).nColor ); |
| |
| if ( IsControlForeground() ) |
| aTextColor = GetControlForeground(); |
| SetTextColor( aTextColor ); |
| } |
| |
| if ( bBackground ) |
| { |
| if ( IsControlBackground() ) |
| SetBackground( GetControlBackground() ); |
| else |
| SetBackground( rStyleSettings.GetWindowColor() ); |
| } |
| Invalidate(); |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| void SvxNumberPreviewImpl::StateChanged( StateChangedType nType ) |
| { |
| if ( nType == STATE_CHANGE_CONTROLFOREGROUND ) |
| InitSettings( sal_True, sal_False ); |
| else if ( nType == STATE_CHANGE_CONTROLBACKGROUND ) |
| InitSettings( sal_False, sal_True ); |
| |
| Window::StateChanged( nType ); |
| } |
| |
| // ----------------------------------------------------------------------- |
| |
| void SvxNumberPreviewImpl::DataChanged( const DataChangedEvent& rDCEvt ) |
| { |
| Window::DataChanged( rDCEvt ); |
| |
| if ( ( rDCEvt.GetType() == DATACHANGED_SETTINGS ) && ( rDCEvt.GetFlags() & SETTINGS_STYLE ) ) |
| InitSettings( sal_True, sal_True ); |
| } |
| |
| // class SvxNumberFormatTabPage ------------------------------------------ |
| |
| #define REMOVE_DONTKNOW() \ |
| if ( !aFtLanguage.IsEnabled() ) \ |
| { \ |
| aFtLanguage .Enable(); \ |
| aLbLanguage .Enable(); \ |
| aLbLanguage .SelectLanguage( pNumFmtShell->GetCurLanguage() ); \ |
| } |
| |
| #define HDL(hdl) LINK( this, SvxNumberFormatTabPage, hdl ) |
| |
| #include <layout/layout-pre.hxx> |
| |
| #if ENABLE_LAYOUT |
| #undef CUI_RES |
| #define CUI_RES(x) #x |
| #define CUI_RES_PLAIN(x) ResId (x, CUI_MGR ()) |
| #define THIS_CUI_RES(x) this, #x |
| #undef SfxTabPage |
| #define SfxTabPage( parent, id, args ) SfxTabPage( parent, "number-format.xml", id, &args ) |
| #else /* !ENABLE_LAYOUT */ |
| #define CUI_RES_PLAIN CUI_RES |
| #define THIS_CUI_RES CUI_RES |
| #endif /* !ENABLE_LAYOUT */ |
| |
| SvxNumberFormatTabPage::SvxNumberFormatTabPage( Window* pParent, |
| const SfxItemSet& rCoreAttrs ) |
| |
| : SfxTabPage( pParent, CUI_RES( RID_SVXPAGE_NUMBERFORMAT ), rCoreAttrs ), |
| |
| aFtCategory ( this, CUI_RES( FT_CATEGORY ) ), |
| aLbCategory ( this, CUI_RES( LB_CATEGORY ) ), |
| aFtFormat ( this, CUI_RES( FT_FORMAT ) ), |
| aLbCurrency ( this, CUI_RES( LB_CURRENCY) ), |
| aLbFormat ( this, CUI_RES( LB_FORMAT ) ), |
| aFtLanguage ( this, CUI_RES( FT_LANGUAGE ) ), |
| aLbLanguage ( this, CUI_RES( LB_LANGUAGE ), sal_False ), |
| aCbSourceFormat ( this, CUI_RES( CB_SOURCEFORMAT ) ), |
| #if ENABLE_LAYOUT |
| aWndPreview ( LAYOUT_THIS_WINDOW(this), CUI_RES_PLAIN( WND_NUMBER_PREVIEW ) ), |
| #else |
| aWndPreview ( this, CUI_RES_PLAIN( WND_NUMBER_PREVIEW ) ), |
| #endif |
| aFlOptions ( this, CUI_RES( FL_OPTIONS ) ), |
| aFtDecimals ( this, CUI_RES( FT_DECIMALS ) ), |
| aEdDecimals ( this, CUI_RES( ED_DECIMALS ) ), |
| aBtnNegRed ( this, CUI_RES( BTN_NEGRED ) ), |
| aFtLeadZeroes ( this, CUI_RES( FT_LEADZEROES ) ), |
| aEdLeadZeroes ( this, CUI_RES( ED_LEADZEROES ) ), |
| aBtnThousand ( this, CUI_RES( BTN_THOUSAND ) ), |
| |
| aFtEdFormat ( this, CUI_RES( FT_EDFORMAT ) ), |
| aEdFormat ( this, CUI_RES( ED_FORMAT ) ), |
| aIbAdd ( this, CUI_RES( IB_ADD ) ), |
| aIbInfo ( this, CUI_RES( IB_INFO ) ), |
| aIbRemove ( this, CUI_RES( IB_REMOVE ) ), |
| aFtComment ( this, CUI_RES( FT_COMMENT ) ), |
| aEdComment ( this, CUI_RES( ED_COMMENT ) ), |
| |
| pNumItem ( NULL ), |
| pNumFmtShell ( NULL ), |
| nInitFormat ( ULONG_MAX ), |
| |
| sAutomaticEntry ( THIS_CUI_RES( STR_AUTO_ENTRY)), |
| pLastActivWindow( NULL ) |
| { |
| #if ENABLE_LAYOUT |
| aLbFormat.Clear (); |
| #endif /* ENABLE_LAYOUT */ |
| |
| Init_Impl(); |
| SetExchangeSupport(); // diese Page braucht ExchangeSupport |
| FreeResource(); |
| nFixedCategory=-1; |
| } |
| |
| SvxNumberFormatTabPage::~SvxNumberFormatTabPage() |
| { |
| delete pNumFmtShell; |
| delete pNumItem; |
| } |
| |
| void SvxNumberFormatTabPage::Init_Impl() |
| { |
| ImageList aIconList( CUI_RES_PLAIN ( IL_ICON ) ); |
| ImageList aIconListHC( CUI_RES_PLAIN ( IL_ICON_HC ) ); |
| |
| bNumItemFlag=sal_True; |
| bOneAreaFlag=sal_False; |
| |
| nCatHeight=aLbCategory.GetSizePixel().Height(); |
| |
| nCurFormatY =aLbFormat.GetPosPixel().Y(); |
| nCurFormatHeight=aLbFormat.GetSizePixel().Height(); |
| nStdFormatY =aLbCurrency.GetPosPixel().Y(); |
| nStdFormatHeight=nCurFormatY-nStdFormatY+nCurFormatHeight; |
| |
| aIbAdd. SetModeImage( aIconList.GetImage( IID_ADD ) ); |
| aIbAdd. SetModeImage( aIconListHC.GetImage( IID_ADD ), BMP_COLOR_HIGHCONTRAST ); |
| |
| aIbRemove. SetModeImage( aIconList.GetImage( IID_REMOVE ) ); |
| aIbRemove. SetModeImage( aIconListHC.GetImage( IID_REMOVE ), BMP_COLOR_HIGHCONTRAST ); |
| |
| aIbInfo. SetModeImage( aIconList.GetImage( IID_INFO ) ); |
| aIbInfo. SetModeImage( aIconListHC.GetImage( IID_INFO ), BMP_COLOR_HIGHCONTRAST ); |
| |
| aIbAdd.Enable(sal_False ); |
| aIbRemove.Enable(sal_False ); |
| aIbInfo.Enable(sal_False ); |
| |
| aEdComment.SetText(aLbCategory.GetEntry(1)); //String fuer Benutzerdefiniert |
| //holen |
| aEdComment.Hide(); |
| |
| aCbSourceFormat.Check( sal_False ); |
| aCbSourceFormat.Disable(); |
| aCbSourceFormat.Hide(); |
| |
| // Handler verbinden |
| Link aLink = LINK( this, SvxNumberFormatTabPage, SelFormatHdl_Impl ); |
| |
| aLbCategory .SetSelectHdl( aLink ); |
| aLbFormat .SetSelectHdl( aLink ); |
| aLbLanguage .SetSelectHdl( aLink ); |
| aLbCurrency .SetSelectHdl( aLink ); |
| aCbSourceFormat .SetClickHdl( aLink ); |
| |
| aLink = LINK( this, SvxNumberFormatTabPage, OptHdl_Impl ); |
| |
| aEdDecimals .SetModifyHdl( aLink ); |
| aEdLeadZeroes .SetModifyHdl( aLink ); |
| aBtnNegRed .SetClickHdl( aLink ); |
| aBtnThousand .SetClickHdl( aLink ); |
| aLbFormat .SetDoubleClickHdl( HDL( DoubleClickHdl_Impl ) ); |
| aEdFormat .SetModifyHdl( HDL( EditHdl_Impl ) ); |
| aIbAdd.SetClickHdl( HDL( ClickHdl_Impl ) ); |
| aIbRemove.SetClickHdl( HDL( ClickHdl_Impl ) ); |
| aIbInfo.SetClickHdl( HDL( ClickHdl_Impl ) ); |
| |
| aLink = LINK( this, SvxNumberFormatTabPage, LostFocusHdl_Impl); |
| |
| aEdComment .SetLoseFocusHdl( aLink); |
| aResetWinTimer .SetTimeoutHdl(LINK( this, SvxNumberFormatTabPage, TimeHdl_Impl)); |
| aResetWinTimer .SetTimeout( 10); |
| |
| // Sprachen-ListBox initialisieren |
| |
| aLbLanguage.InsertLanguage( LANGUAGE_SYSTEM ); |
| // Don't list ambiguous locales where we won't be able to convert the |
| // LanguageType back to an identical Language_Country name and therefore |
| // couldn't load the i18n LocaleData. Show DebugMsg in non-PRODUCT version. |
| ::com::sun::star::uno::Sequence< sal_uInt16 > xLang = |
| LocaleDataWrapper::getInstalledLanguageTypes(); |
| sal_Int32 nCount = xLang.getLength(); |
| for ( sal_Int32 i=0; i<nCount; i++ ) |
| { |
| aLbLanguage.InsertLanguage( xLang[i] ); |
| } |
| |
| aIbAdd.SetAccessibleRelationLabeledBy( &aFtEdFormat ); |
| aIbInfo.SetAccessibleRelationLabeledBy( &aFtEdFormat ); |
| aIbRemove.SetAccessibleRelationLabeledBy( &aFtEdFormat ); |
| aIbAdd.SetAccessibleRelationMemberOf( &aIbAdd ); |
| aIbInfo.SetAccessibleRelationMemberOf( &aIbInfo ); |
| aIbRemove.SetAccessibleRelationMemberOf( &aIbRemove ); |
| } |
| |
| /************************************************************************* |
| #* Methode: GetRanges Datum:02.10.97 |
| #*------------------------------------------------------------------------ |
| #* |
| #* Klasse: SvxNumberFormatTabPage |
| #* |
| #* Funktion: Liefert Bereichsangaben zurueck. |
| #* |
| #* Input: --- |
| #* |
| #* Output: Bereich |
| #* |
| #************************************************************************/ |
| |
| sal_uInt16* SvxNumberFormatTabPage::GetRanges() |
| { |
| return pRanges; |
| } |
| |
| |
| /************************************************************************* |
| #* Methode: Create Datum:02.10.97 |
| #*------------------------------------------------------------------------ |
| #* |
| #* Klasse: SvxNumberFormatTabPage |
| #* |
| #* Funktion: Erzeugt eine neue Zahlenformat- Seite. |
| #* |
| #* Input: Fenster, SfxItemSet |
| #* |
| #* Output: neue TabPage |
| #* |
| #************************************************************************/ |
| |
| SfxTabPage* SvxNumberFormatTabPage::Create( Window* pParent, |
| const SfxItemSet& rAttrSet ) |
| { |
| return ( new SvxNumberFormatTabPage( pParent, rAttrSet ) ); |
| } |
| |
| |
| /************************************************************************* |
| #* Methode: Reset Datum:02.10.97 |
| #*------------------------------------------------------------------------ |
| #* |
| #* Klasse: SvxNumberFormatTabPage |
| #* |
| #* Funktion: Die Attribute des Dialogs werden mit Hilfe |
| #* des Itemsets neu eingestellt. |
| #* |
| #* Input: SfxItemSet |
| #* |
| #* Output: --- |
| #* |
| #************************************************************************/ |
| |
| void SvxNumberFormatTabPage::Reset( const SfxItemSet& rSet ) |
| { |
| const SfxUInt32Item* pValFmtAttr = NULL; |
| const SfxPoolItem* pItem = NULL; |
| const SfxBoolItem* pAutoEntryAttr = NULL; |
| |
| sal_uInt16 nCatLbSelPos = 0; |
| sal_uInt16 nFmtLbSelPos = 0; |
| LanguageType eLangType = LANGUAGE_DONTKNOW; |
| SvxDelStrgs aFmtEntryList; |
| SvxNumberValueType eValType = SVX_VALUE_TYPE_UNDEFINED; |
| double nValDouble = 0; |
| String aValString; |
| SfxItemState eState = SFX_ITEM_DONTCARE; |
| |
| |
| eState = rSet.GetItemState( GetWhich( SID_ATTR_NUMBERFORMAT_NOLANGUAGE ),sal_True,&pItem); |
| |
| if(eState==SFX_ITEM_SET) |
| { |
| const SfxBoolItem* pBoolLangItem = (const SfxBoolItem*) |
| GetItem( rSet, SID_ATTR_NUMBERFORMAT_NOLANGUAGE); |
| |
| if(pBoolLangItem!=NULL && pBoolLangItem->GetValue()) |
| { |
| HideLanguage(); |
| } |
| else |
| { |
| HideLanguage(sal_False); |
| } |
| |
| } |
| |
| eState = rSet.GetItemState( GetWhich( SID_ATTR_NUMBERFORMAT_INFO ),sal_True,&pItem); |
| |
| if(eState==SFX_ITEM_SET) |
| { |
| if(pNumItem==NULL) |
| { |
| bNumItemFlag=sal_True; |
| pNumItem= (SvxNumberInfoItem *) pItem->Clone(); |
| } |
| else |
| { |
| bNumItemFlag=sal_False; |
| } |
| } |
| else |
| { |
| bNumItemFlag=sal_False; |
| } |
| |
| |
| eState = rSet.GetItemState( GetWhich( SID_ATTR_NUMBERFORMAT_ONE_AREA )); |
| |
| if(eState==SFX_ITEM_SET) |
| { |
| const SfxBoolItem* pBoolItem = (const SfxBoolItem*) |
| GetItem( rSet, SID_ATTR_NUMBERFORMAT_ONE_AREA); |
| |
| if(pBoolItem!=NULL) |
| { |
| bOneAreaFlag= pBoolItem->GetValue(); |
| } |
| } |
| //bOneAreaFlag=sal_True; //@@ Debug-Test |
| |
| eState = rSet.GetItemState( GetWhich( SID_ATTR_NUMBERFORMAT_SOURCE ) ); |
| |
| if ( eState == SFX_ITEM_SET ) |
| { |
| const SfxBoolItem* pBoolItem = (const SfxBoolItem*) |
| GetItem( rSet, SID_ATTR_NUMBERFORMAT_SOURCE ); |
| if ( pBoolItem ) |
| aCbSourceFormat.Check( pBoolItem->GetValue() ); |
| else |
| aCbSourceFormat.Check( sal_False ); |
| aCbSourceFormat.Enable(); |
| aCbSourceFormat.Show(); |
| } |
| else |
| { |
| sal_Bool bInit = sal_False; // set to sal_True for debug test |
| aCbSourceFormat.Check( bInit ); |
| aCbSourceFormat.Enable( bInit ); |
| aCbSourceFormat.Show( bInit ); |
| } |
| |
| // pNumItem muss von aussen gesetzt worden sein! |
| DBG_ASSERT( pNumItem, "No NumberInfo, no NumberFormatter, good bye.CRASH. :-(" ); |
| |
| // aktuellen Zahlenformat-Tabellenindex holen |
| eState = rSet.GetItemState( GetWhich( SID_ATTR_NUMBERFORMAT_VALUE ) ); |
| |
| if ( SFX_ITEM_DONTCARE != eState ) |
| pValFmtAttr = (const SfxUInt32Item*) |
| GetItem( rSet, SID_ATTR_NUMBERFORMAT_VALUE ); |
| |
| eValType = pNumItem->GetValueType(); |
| |
| switch ( eValType ) |
| { |
| case SVX_VALUE_TYPE_STRING: |
| aValString = pNumItem->GetValueString(); |
| break; |
| case SVX_VALUE_TYPE_NUMBER: |
| // #50441# string may be set in addition to the value |
| aValString = pNumItem->GetValueString(); |
| nValDouble = pNumItem->GetValueDouble(); |
| break; |
| case SVX_VALUE_TYPE_UNDEFINED: |
| default: |
| break; |
| } |
| |
| // nun sind alle Informationen fuer die Formatierer-Shell beisammen: |
| |
| if ( pNumFmtShell ) |
| delete pNumFmtShell; // ggF. alte Shell loeschen (==Reset) |
| |
| nInitFormat = ( pValFmtAttr ) // Init-Key merken |
| ? pValFmtAttr->GetValue() // (fuer FillItemSet()) |
| : ULONG_MAX; // == DONT_KNOW |
| |
| |
| if ( eValType == SVX_VALUE_TYPE_STRING ) |
| pNumFmtShell =SvxNumberFormatShell::Create( |
| pNumItem->GetNumberFormatter(), |
| (pValFmtAttr) ? nInitFormat : 0L, |
| eValType, |
| aValString ); |
| else |
| pNumFmtShell =SvxNumberFormatShell::Create( |
| pNumItem->GetNumberFormatter(), |
| (pValFmtAttr) ? nInitFormat : 0L, |
| eValType, |
| nValDouble, |
| &aValString ); |
| |
| FillCurrencyBox(); |
| |
| String aPrevString; |
| Color* pDummy = NULL; |
| pNumFmtShell->GetInitSettings( nCatLbSelPos, eLangType, nFmtLbSelPos, |
| aFmtEntryList, aPrevString, pDummy ); |
| |
| aLbCurrency.SelectEntryPos((sal_uInt16)pNumFmtShell->GetCurrencySymbol()); |
| |
| nFixedCategory=nCatLbSelPos; |
| if(bOneAreaFlag) |
| { |
| String sFixedCategory=aLbCategory.GetEntry(nFixedCategory); |
| aLbCategory.Clear(); |
| aLbCategory.InsertEntry(sFixedCategory); |
| SetCategory(0); |
| } |
| else |
| { |
| SetCategory(nCatLbSelPos ); |
| } |
| eState = rSet.GetItemState( GetWhich( SID_ATTR_NUMBERFORMAT_ADD_AUTO ) ); |
| if(SFX_ITEM_SET == eState) |
| pAutoEntryAttr = (const SfxBoolItem*) |
| GetItem( rSet, SID_ATTR_NUMBERFORMAT_ADD_AUTO ); |
| // no_NO is an alias for nb_NO and normally isn't listed, we need it for |
| // backwards compatibility, but only if the format passed is of |
| // LanguageType no_NO. |
| if ( eLangType == LANGUAGE_NORWEGIAN ) |
| { |
| aLbLanguage.RemoveLanguage( eLangType ); // in case we're already called |
| aLbLanguage.InsertLanguage( eLangType ); |
| } |
| aLbLanguage.SelectLanguage( eLangType ); |
| if(pAutoEntryAttr) |
| AddAutomaticLanguage_Impl(eLangType, pAutoEntryAttr->GetValue()); |
| UpdateFormatListBox_Impl(sal_False,sal_True); |
| |
| //! erAck 26.01.01 |
| //! This spoils everything because it rematches currency formats based on |
| //! the selected aLbCurrency entry instead of the current format. |
| //! Besides that everything seems to be initialized by now, so why call it? |
| // SelFormatHdl_Impl( &aLbCategory ); |
| |
| if ( pValFmtAttr ) |
| { |
| EditHdl_Impl( &aEdFormat ); // UpdateOptions_Impl() als Seiteneffekt |
| } |
| else // DONT_KNOW |
| { |
| // Kategoriewechsel und direkte Eingabe sind moeglich, sonst nix: |
| Obstructing(); |
| } |
| |
| if ( aCbSourceFormat.IsChecked() ) |
| { |
| // everything disabled except SourceFormat checkbox |
| EnableBySourceFormat_Impl(); |
| } |
| |
| DeleteEntryList_Impl(aFmtEntryList); |
| } |
| |
| /************************************************************************* |
| #* Methode: Obstructing Datum:02.10.97 |
| #*------------------------------------------------------------------------ |
| #* |
| #* Klasse: SvxNumberFormatTabPage |
| #* |
| #* Funktion: Sperren der Controls mit Ausnahme von Kategoriewechsel |
| #* und direkter Eingabe. |
| #* |
| #* Input: --- |
| #* |
| #* Output: --- |
| #* |
| #************************************************************************/ |
| void SvxNumberFormatTabPage::Obstructing() |
| { |
| aLbFormat .SetNoSelection(); |
| aLbLanguage .SetNoSelection(); |
| aFtLanguage .Disable(); |
| aLbLanguage .Disable(); |
| |
| aIbAdd.Enable(sal_False ); |
| aIbRemove.Enable(sal_False ); |
| aIbInfo.Enable(sal_False ); |
| |
| aBtnNegRed .Disable(); |
| aBtnThousand .Disable(); |
| aFtLeadZeroes .Disable(); |
| aFtDecimals .Disable(); |
| aEdLeadZeroes .Disable(); |
| aEdDecimals .Disable(); |
| aFlOptions .Disable(); |
| aEdDecimals .SetText( String() ); |
| aEdLeadZeroes .SetText( String() ); |
| aBtnNegRed .Check( sal_False ); |
| aBtnThousand .Check( sal_False ); |
| aWndPreview .NotifyChange( String() ); |
| |
| aLbCategory .SelectEntryPos( 0 ); |
| aEdFormat .SetText( String() ); |
| aFtComment .SetText( String() ); |
| aEdComment .SetText(aLbCategory.GetEntry(1)); //String fuer Benutzerdefiniert |
| //holen |
| |
| aEdFormat .GrabFocus(); |
| } |
| |
| |
| /************************************************************************* |
| #* Enable/Disable dialog parts depending on the value of the SourceFormat |
| #* checkbox. |
| #************************************************************************/ |
| void SvxNumberFormatTabPage::EnableBySourceFormat_Impl() |
| { |
| sal_Bool bEnable = !aCbSourceFormat.IsChecked(); |
| if ( !bEnable ) |
| aCbSourceFormat.GrabFocus(); |
| aFtCategory .Enable( bEnable ); |
| aLbCategory .Enable( bEnable ); |
| aFtFormat .Enable( bEnable ); |
| aLbCurrency .Enable( bEnable ); |
| aLbFormat .Enable( bEnable ); |
| aFtLanguage .Enable( bEnable ); |
| aLbLanguage .Enable( bEnable ); |
| aFtDecimals .Enable( bEnable ); |
| aEdDecimals .Enable( bEnable ); |
| aFtLeadZeroes .Enable( bEnable ); |
| aEdLeadZeroes .Enable( bEnable ); |
| aBtnNegRed .Enable( bEnable ); |
| aBtnThousand .Enable( bEnable ); |
| aFlOptions .Enable( bEnable ); |
| aFtEdFormat .Enable( bEnable ); |
| aEdFormat .Enable( bEnable ); |
| aIbAdd .Enable( bEnable ); |
| aIbRemove .Enable( bEnable ); |
| aIbInfo .Enable( bEnable ); |
| aFtComment .Enable( bEnable ); |
| aEdComment .Enable( bEnable ); |
| aLbFormat.Invalidate(); // #i43322# |
| } |
| |
| |
| /************************************************************************* |
| #* Methode: HideLanguage Datum:14.05.98 |
| #*------------------------------------------------------------------------ |
| #* |
| #* Klasse: SvxNumberFormatTabPage |
| #* |
| #* Funktion: Versteckt die Spracheinstellung: |
| #* |
| #* Input: sal_Bool nFlag |
| #* |
| #* Output: --- |
| #* |
| #************************************************************************/ |
| |
| void SvxNumberFormatTabPage::HideLanguage(sal_Bool nFlag) |
| { |
| Size aSize=aLbCategory.GetSizePixel(); |
| |
| if(nFlag) |
| { |
| aSize.Height()=aLbFormat.GetSizePixel().Height(); |
| } |
| else |
| { |
| aSize.Height()=nCatHeight; |
| } |
| |
| aLbCategory.SetSizePixel(aSize); |
| |
| aFtLanguage.Show(!nFlag); |
| aLbLanguage.Show(!nFlag); |
| } |
| |
| /************************************************************************* |
| #* Methode: FillItemSet Datum:02.10.97 |
| #*------------------------------------------------------------------------ |
| #* |
| #* Klasse: SvxNumberFormatTabPage |
| #* |
| #* Funktion: Stellt die Attribute im ItemSet ein, |
| #* sowie in der DocShell den numItem, wenn |
| #* bNumItemFlag nicht gesetzt ist. |
| #* |
| #* Input: SfxItemSet |
| #* |
| #* Output: --- |
| #* |
| #************************************************************************/ |
| |
| sal_Bool SvxNumberFormatTabPage::FillItemSet( SfxItemSet& rCoreAttrs ) |
| { |
| sal_Bool bDataChanged = aFtLanguage.IsEnabled() || aCbSourceFormat.IsEnabled(); |
| if ( bDataChanged ) |
| { |
| const SfxItemSet& rMyItemSet = GetItemSet(); |
| sal_uInt16 nWhich = GetWhich( SID_ATTR_NUMBERFORMAT_VALUE ); |
| SfxItemState eItemState = rMyItemSet.GetItemState( nWhich, sal_False ); |
| |
| // OK chosen - Is format code input entered already taken over? |
| // If not, simulate Add. Upon syntax error ignore input and prevent Put. |
| String aFormat = aEdFormat.GetText(); |
| sal_uInt32 nCurKey = pNumFmtShell->GetCurNumFmtKey(); |
| |
| if ( aIbAdd.IsEnabled() || pNumFmtShell->IsTmpCurrencyFormat(aFormat) ) |
| { // #79599# It is not sufficient to just add the format code (or |
| // delete it in case of bOneAreaFlag and resulting category change). |
| // Upon switching tab pages we need all settings to be consistent |
| // in case this page will be redisplayed later. |
| bDataChanged = (ClickHdl_Impl( &aIbAdd ) != 0); |
| nCurKey = pNumFmtShell->GetCurNumFmtKey(); |
| } |
| else if(nCurKey == NUMKEY_UNDEFINED) |
| { // something went wrong, e.g. in Writer #70281# |
| pNumFmtShell->FindEntry(aFormat, &nCurKey); |
| } |
| |
| //--------------------------------------------------------------- |
| // Chosen format: |
| // -------------- |
| if ( bDataChanged ) |
| { |
| bDataChanged = ( nInitFormat != nCurKey ); |
| |
| if (bDataChanged) |
| { |
| rCoreAttrs.Put( SfxUInt32Item( nWhich, nCurKey ) ); |
| } |
| else if(SFX_ITEM_DEFAULT == eItemState) |
| { |
| rCoreAttrs.ClearItem( nWhich ); |
| } |
| } |
| |
| // -------------------------------------------------------------- |
| // List of changed user defined formats: |
| // ------------------------------------- |
| const sal_uInt32 nDelCount = pNumFmtShell->GetUpdateDataCount(); |
| |
| if ( nDelCount > 0 ) |
| { |
| sal_uInt32* pDelArr = new sal_uInt32[nDelCount]; |
| |
| pNumFmtShell->GetUpdateData( pDelArr, nDelCount ); |
| pNumItem->SetDelFormatArray( pDelArr, nDelCount ); |
| |
| if(bNumItemFlag==sal_True) |
| { |
| rCoreAttrs.Put( *pNumItem ); |
| } |
| else |
| { |
| SfxObjectShell* pDocSh = SfxObjectShell::Current(); |
| |
| DBG_ASSERT( pDocSh, "DocShell not found!" ); |
| |
| |
| if ( pDocSh ) |
| pDocSh->PutItem( *pNumItem ); |
| } |
| delete [] pDelArr; |
| } |
| |
| //--------------------------------------------------------------- |
| // Whether source format is to be taken or not: |
| // -------------------------------------------- |
| if ( aCbSourceFormat.IsEnabled() ) |
| { |
| sal_uInt16 _nWhich = GetWhich( SID_ATTR_NUMBERFORMAT_SOURCE ); |
| SfxItemState _eItemState = rMyItemSet.GetItemState( _nWhich, sal_False ); |
| const SfxBoolItem* pBoolItem = (const SfxBoolItem*) |
| GetItem( rMyItemSet, SID_ATTR_NUMBERFORMAT_SOURCE ); |
| sal_Bool bOld = (pBoolItem ? pBoolItem->GetValue() : sal_False); |
| rCoreAttrs.Put( SfxBoolItem( _nWhich, aCbSourceFormat.IsChecked() ) ); |
| if ( !bDataChanged ) |
| bDataChanged = (bOld != (sal_Bool) aCbSourceFormat.IsChecked() || |
| _eItemState != SFX_ITEM_SET); |
| } |
| |
| // FillItemSet is only called on OK, here we can notify the |
| // NumberFormatShell that all new user defined formats are valid. |
| pNumFmtShell->ValidateNewEntries(); |
| if(aLbLanguage.IsVisible() && |
| LISTBOX_ENTRY_NOTFOUND != aLbLanguage.GetEntryPos(sAutomaticEntry)) |
| rCoreAttrs.Put(SfxBoolItem(SID_ATTR_NUMBERFORMAT_ADD_AUTO, |
| aLbLanguage.GetSelectEntry() == sAutomaticEntry)); |
| } |
| |
| return bDataChanged; |
| } |
| |
| |
| int SvxNumberFormatTabPage::DeactivatePage( SfxItemSet* _pSet ) |
| { |
| /* if ( (ULONG_MAX != nInitFormat) && _pSet ) |
| { |
| const sal_uLong nCurKey = pNumFmtShell->GetCurNumFmtKey(); |
| const sal_uInt16 nWhich = GetWhich( SID_ATTR_NUMBERFORMAT_VALUE ); |
| SfxItemState eItemState = GetItemSet().GetItemState( nWhich, sal_False ); |
| |
| if ( (nInitFormat == nCurKey) && (SFX_ITEM_DEFAULT == eItemState) ) |
| _pSet->ClearItem( nWhich ); |
| else |
| _pSet->Put( SfxUInt32Item( nWhich, nCurKey ) ); |
| } |
| */ |
| if ( _pSet ) |
| FillItemSet( *_pSet ); |
| return LEAVE_PAGE; |
| } |
| |
| void SvxNumberFormatTabPage::SetInfoItem( const SvxNumberInfoItem& rItem ) |
| { |
| if(pNumItem==NULL) |
| { |
| pNumItem = (SvxNumberInfoItem*)rItem.Clone(); |
| } |
| } |
| |
| void SvxNumberFormatTabPage::FillFormatListBox_Impl( SvxDelStrgs& rEntries ) |
| { |
| String* pEntry; |
| String aTmpString; |
| String aTmpCatString; |
| Font aFont=aLbCategory.GetFont(); |
| sal_uInt16 i = 0; |
| short nTmpCatPos; |
| short aPrivCat; |
| |
| aLbFormat.Clear(); |
| aLbFormat.SetUpdateMode( sal_False ); |
| |
| sal_uInt16 nCount = rEntries.Count(); |
| |
| if(nCount<1) return; |
| |
| if(bOneAreaFlag) |
| { |
| nTmpCatPos=nFixedCategory; |
| } |
| else |
| { |
| nTmpCatPos=aLbCategory.GetSelectEntryPos(); |
| } |
| |
| switch (nTmpCatPos) |
| { |
| case CAT_ALL: |
| case CAT_TEXT: |
| case CAT_NUMBER: i=1; |
| pEntry=rEntries[0]; |
| if(pEntry!=NULL) |
| { |
| if (nTmpCatPos == CAT_TEXT) |
| aTmpString=*pEntry; |
| else |
| aTmpString = pNumFmtShell->GetStandardName(); |
| aPrivCat=pNumFmtShell->GetCategory4Entry(0); |
| aLbFormat.InsertFontEntry( aTmpString, aFont ); |
| } |
| break; |
| |
| default: break; |
| } |
| |
| if(pNumFmtShell!=NULL) |
| { |
| for ( ; i < nCount; ++i ) |
| { |
| pEntry = rEntries[i]; |
| aPrivCat=pNumFmtShell->GetCategory4Entry(i); |
| if(aPrivCat!=CAT_TEXT) |
| { |
| Color* pPreviewColor = NULL; |
| String aPreviewString( GetExpColorString( pPreviewColor, *pEntry, aPrivCat ) ); |
| Font aEntryFont( aLbFormat.GetFont() ); |
| aLbFormat.InsertFontEntry( aPreviewString, aEntryFont, pPreviewColor ); |
| } |
| else |
| { |
| aLbFormat.InsertFontEntry(*pEntry,aFont); |
| } |
| } |
| } |
| aLbFormat.SetUpdateMode( sal_True ); |
| DeleteEntryList_Impl(rEntries); |
| } |
| |
| |
| /************************************************************************* |
| #* Methode: DeleteEntryList_Impl Datum:02.10.97 |
| #*------------------------------------------------------------------------ |
| #* |
| #* Klasse: SvxNumberFormatTabPage |
| #* |
| #* Funktion: Loescht eine SvStrings- Liste |
| #* |
| #* Input: String-liste |
| #* |
| #* Output: --- |
| #* |
| #************************************************************************/ |
| |
| void SvxNumberFormatTabPage::DeleteEntryList_Impl( SvxDelStrgs& rEntries ) |
| { |
| sal_uInt16 nCount = rEntries.Count(); |
| rEntries.DeleteAndDestroy(0,nCount); |
| } |
| |
| |
| /************************************************************************* |
| #* Methode: UpdateOptions_Impl Datum:02.10.97 |
| #*------------------------------------------------------------------------ |
| #* |
| #* Klasse: SvxNumberFormatTabPage |
| #* |
| #* Funktion: Stellt je nach eingestelltem Format die Options- |
| #* attribute neu ein. |
| #* |
| #* Input: Flag, ob sich die Kategorie geaendert hat. |
| #* |
| #* Output: --- |
| #* |
| #***?********************************************************************/ |
| |
| void SvxNumberFormatTabPage::UpdateOptions_Impl( sal_Bool bCheckCatChange /*= sal_False*/ ) |
| { |
| SvxDelStrgs aEntryList; |
| String theFormat = aEdFormat.GetText(); |
| sal_uInt16 nCurCategory = aLbCategory.GetSelectEntryPos(); |
| sal_uInt16 nCategory = nCurCategory; |
| sal_uInt16 nDecimals = 0; |
| sal_uInt16 nZeroes = 0; |
| sal_Bool bNegRed = sal_False; |
| sal_Bool bThousand = sal_False; |
| short nTmpCatPos; |
| sal_uInt16 nCurrencyPos =aLbCurrency.GetSelectEntryPos(); |
| |
| if(bOneAreaFlag) |
| { |
| nTmpCatPos=nFixedCategory; |
| nCurCategory=nFixedCategory; |
| } |
| else |
| { |
| nTmpCatPos=nCurCategory; |
| } |
| |
| |
| pNumFmtShell->GetOptions( theFormat, |
| bThousand, bNegRed, |
| nDecimals, nZeroes, |
| nCategory ); |
| sal_Bool bDoIt=sal_False; |
| if(nCategory==CAT_CURRENCY) |
| { |
| sal_uInt16 nTstPos=pNumFmtShell->FindCurrencyFormat(theFormat); |
| if(nCurrencyPos!=nTstPos && nTstPos!=(sal_uInt16)-1) |
| { |
| aLbCurrency.SelectEntryPos(nTstPos); |
| pNumFmtShell->SetCurrencySymbol(nTstPos); |
| bDoIt=sal_True; |
| } |
| } |
| |
| |
| |
| if ( nCategory != nCurCategory || bDoIt) |
| { |
| if ( bCheckCatChange ) |
| { |
| if(bOneAreaFlag) |
| SetCategory(0); |
| else |
| SetCategory(nCategory ); |
| |
| UpdateFormatListBox_Impl( sal_True, sal_False ); |
| } |
| } |
| else if ( aLbFormat.GetEntryCount() > 0 ) |
| { |
| sal_uInt32 nCurEntryKey=NUMKEY_UNDEFINED; |
| if(!pNumFmtShell->FindEntry( aEdFormat.GetText(),&nCurEntryKey)) |
| { |
| aLbFormat.SetNoSelection(); |
| } |
| } |
| if(bOneAreaFlag) |
| { |
| nCategory=nFixedCategory; |
| } |
| |
| switch ( nCategory ) |
| { |
| case CAT_NUMBER: |
| case CAT_PERCENT: |
| case CAT_CURRENCY: |
| aFlOptions.Enable(); |
| aFtDecimals.Enable(); |
| aEdDecimals.Enable(); |
| aFtLeadZeroes.Enable(); |
| aEdLeadZeroes.Enable(); |
| aBtnNegRed.Enable(); |
| aBtnThousand.Enable(); |
| /* |
| aEdDecimals .SetValue( nDecimals ); |
| aEdLeadZeroes.SetValue( nZeroes ); |
| */ |
| aEdDecimals .SetText( UniString::CreateFromInt32( nDecimals ) ); |
| aEdLeadZeroes.SetText( UniString::CreateFromInt32( nZeroes ) ); |
| aBtnNegRed .Check( bNegRed ); |
| aBtnThousand .Check( bThousand ); |
| break; |
| |
| case CAT_ALL: |
| case CAT_USERDEFINED: |
| case CAT_TEXT: |
| case CAT_DATE: |
| case CAT_TIME: |
| case CAT_BOOLEAN: |
| case CAT_SCIENTIFIC: |
| case CAT_FRACTION: |
| default: |
| aFlOptions .Disable(); |
| aFtDecimals .Disable(); |
| aEdDecimals .Disable(); |
| aFtLeadZeroes .Disable(); |
| aEdLeadZeroes .Disable(); |
| aBtnNegRed .Disable(); |
| aBtnThousand .Disable(); |
| aEdDecimals .SetText( UniString::CreateFromInt32( 0 ) ); |
| aEdLeadZeroes .SetText( UniString::CreateFromInt32( 0 ) ); |
| aBtnNegRed .Check( sal_False ); |
| aBtnThousand .Check( sal_False ); |
| } |
| } |
| |
| |
| /************************************************************************* |
| #* Methode: UpdateFormatListBox_Impl Datum:02.10.97 |
| #*------------------------------------------------------------------------ |
| #* |
| #* Klasse: SvxNumberFormatTabPage |
| #* |
| #* Funktion: Aktualisiert die Format- Listbox und zusaetzlich |
| #* wird abhaengig vom bUpdateEdit- Flag der String |
| #* in der Editbox geaendert. |
| #* |
| #* Input: Flags fuer Kategorie und Editbox |
| #* |
| #* Output: --- |
| #* |
| #************************************************************************/ |
| |
| void SvxNumberFormatTabPage::UpdateFormatListBox_Impl |
| ( |
| sal_uInt16 bCat, // Category oder Land/Sprache ListBox? |
| sal_Bool bUpdateEdit // Format-Edit aktualisieren? |
| ) |
| { |
| SvxDelStrgs aEntryList; |
| short nFmtLbSelPos = 0; |
| short nTmpCatPos; |
| |
| if(bOneAreaFlag) |
| { |
| nTmpCatPos=nFixedCategory; |
| } |
| else |
| { |
| nTmpCatPos=aLbCategory.GetSelectEntryPos(); |
| } |
| |
| |
| if ( bCat ) |
| { |
| Point aPos=aLbFormat.GetPosPixel(); |
| Size aSize=aLbFormat.GetSizePixel(); |
| |
| if(nTmpCatPos!=CAT_CURRENCY) |
| { |
| aPos.Y()=nStdFormatY; |
| aSize.Height()=nStdFormatHeight; |
| aLbFormat.SetPosSizePixel(aPos,aSize); |
| #if ENABLE_LAYOUT |
| aLbCurrency.Disable(); |
| #else /* !ENABLE_LAYOUT */ |
| aLbCurrency.Hide(); |
| #endif /* !ENABLE_LAYOUT */ |
| } |
| else |
| { |
| aPos.Y()=nCurFormatY; |
| aSize.Height()=nCurFormatHeight; |
| aLbFormat.SetPosSizePixel(aPos,aSize); |
| #if ENABLE_LAYOUT |
| aLbCurrency.Enable(); |
| #else /* !ENABLE_LAYOUT */ |
| aLbCurrency.Show(); |
| #endif /* !ENABLE_LAYOUT */ |
| } |
| |
| pNumFmtShell->CategoryChanged( nTmpCatPos,nFmtLbSelPos, aEntryList ); |
| } |
| else |
| pNumFmtShell->LanguageChanged( aLbLanguage.GetSelectLanguage(), |
| nFmtLbSelPos,aEntryList ); |
| |
| REMOVE_DONTKNOW() // ggF. UI-Enable |
| |
| |
| if ( (aEntryList.Count() > 0) && (nFmtLbSelPos != SELPOS_NONE) ) |
| { |
| if(bUpdateEdit) |
| { |
| String aFormat=*aEntryList[nFmtLbSelPos]; |
| aEdFormat.SetText(aFormat); |
| aFtComment.SetText(pNumFmtShell->GetComment4Entry(nFmtLbSelPos)); |
| |
| //@23.09.97 aEdFormat.SetText( aLbFormat.GetSelectEntry() ); |
| } |
| |
| if(!bOneAreaFlag || !bCat) |
| { |
| FillFormatListBox_Impl( aEntryList ); |
| aLbFormat.SelectEntryPos( nFmtLbSelPos ); |
| |
| aFtComment.SetText(pNumFmtShell->GetComment4Entry(nFmtLbSelPos)); |
| if(pNumFmtShell->GetUserDefined4Entry(nFmtLbSelPos)) |
| { |
| if(pNumFmtShell->GetComment4Entry(nFmtLbSelPos).Len()==0) |
| { |
| aFtComment.SetText(aLbCategory.GetEntry(1)); |
| } |
| } |
| ChangePreviewText( (sal_uInt16)nFmtLbSelPos ); |
| } |
| |
| } |
| else |
| { |
| FillFormatListBox_Impl( aEntryList ); |
| if(nFmtLbSelPos != SELPOS_NONE) |
| { |
| aLbFormat.SelectEntryPos( (sal_uInt16)nFmtLbSelPos ); |
| |
| aFtComment.SetText(pNumFmtShell->GetComment4Entry(nFmtLbSelPos)); |
| if(pNumFmtShell->GetUserDefined4Entry(nFmtLbSelPos)) |
| { |
| if(pNumFmtShell->GetComment4Entry(nFmtLbSelPos).Len()==0) |
| { |
| aFtComment.SetText(aLbCategory.GetEntry(1)); |
| } |
| } |
| } |
| else |
| { |
| aLbFormat.SetNoSelection(); |
| } |
| |
| if ( bUpdateEdit ) |
| { |
| aEdFormat.SetText( String() ); |
| aWndPreview.NotifyChange( String() ); |
| } |
| } |
| } |
| |
| |
| /************************************************************************* |
| #* Handle: DoubleClickHdl_Impl Datum:02.10.97 |
| #*------------------------------------------------------------------------ |
| #* |
| #* Klasse: SvxNumberFormatTabPage |
| #* |
| #* Funktion: Bei einem Doppelklick in die Format- Listbox |
| #* wird der Wert uebernommen und der OK-Button |
| #* ausgeloest |
| #* |
| #* Input: Pointer auf Listbox |
| #* |
| #* Output: --- |
| #* |
| #************************************************************************/ |
| |
| IMPL_LINK( SvxNumberFormatTabPage, DoubleClickHdl_Impl, SvxFontListBox*, pLb ) |
| { |
| if ( pLb == &aLbFormat ) |
| { |
| SelFormatHdl_Impl( pLb ); |
| |
| if ( fnOkHdl.IsSet() ) |
| { // Uebergangsloesung, sollte von SfxTabPage angeboten werden |
| fnOkHdl.Call( NULL ); |
| } |
| else |
| { |
| SfxSingleTabDialog* pParent = dynamic_cast< SfxSingleTabDialog* >( GetParent() ); |
| OKButton* pOKButton = pParent ? pParent->GetOKButton() : NULL; |
| if ( pOKButton ) |
| pOKButton->Click(); |
| } |
| } |
| return 0; |
| } |
| |
| |
| /************************************************************************* |
| #* Methode: SelFormatHdl_Impl Datum:02.10.97 |
| #*------------------------------------------------------------------------ |
| #* |
| #* Klasse: SvxNumberFormatTabPage |
| #* |
| #* Funktion: Wird aufgerufen, wenn sich die Sprache, die Kategorie |
| #* oder das Format aendert. Dem entsprechend werden die |
| #* Einstellungen geaendert. |
| #* |
| #* Input: Pointer auf Listbox |
| #* |
| #* Output: --- |
| #* |
| #************************************************************************/ |
| |
| IMPL_LINK( SvxNumberFormatTabPage, SelFormatHdl_Impl, void *, pLb ) |
| { |
| if ( (CheckBox*)pLb == &aCbSourceFormat ) |
| { |
| EnableBySourceFormat_Impl(); // enable/disable everything else |
| if ( aCbSourceFormat.IsChecked() ) |
| return 0; // just disabled everything else |
| |
| // Reinit options enable/disable for current selection. |
| |
| #if ENABLE_LAYOUT |
| if (aLbFormat.GetSelectEntryPos () == LISTBOX_ENTRY_NOTFOUND) |
| #else /* !ENABLE_LAYOUT */ |
| // Current category may be UserDefined with no format entries defined. |
| // And yes, aLbFormat is a SvxFontListBox with sal_uLong list positions, |
| // implementation returns a LIST_APPEND if empty, comparison with |
| // sal_uInt16 LISTBOX_ENTRY_NOTFOUND wouldn't match. |
| if ( aLbFormat.GetSelectEntryPos() == LIST_APPEND ) |
| #endif /* !ENABLE_LAYOUT */ |
| pLb = &aLbCategory; // continue with the current category selected |
| else |
| pLb = &aLbFormat; // continue with the current format selected |
| } |
| |
| short nTmpCatPos; |
| |
| if(bOneAreaFlag) |
| { |
| nTmpCatPos=nFixedCategory; |
| } |
| else |
| { |
| nTmpCatPos=aLbCategory.GetSelectEntryPos(); |
| } |
| |
| sal_uInt16 nCurrencyPos=LISTBOX_ENTRY_NOTFOUND ; |
| |
| if(nTmpCatPos==CAT_CURRENCY && (ListBox *)pLb == &aLbCurrency ) |
| { |
| nCurrencyPos=aLbCurrency.GetSelectEntryPos(); |
| pNumFmtShell->SetCurrencySymbol(nCurrencyPos); |
| } |
| |
| //-------------------------------------------------------------------- |
| // Format-ListBox ---------------------------------------------------- |
| if ( (SvxFontListBox *)pLb == &aLbFormat ) |
| { |
| sal_uInt16 nSelPos = (sal_uInt16) aLbFormat.GetSelectEntryPos(); |
| String aFormat = aLbFormat.GetSelectEntry(); |
| String aComment; |
| SvxDelStrgs aEntryList; |
| |
| short nFmtLbSelPos = nSelPos; |
| |
| aFormat=pNumFmtShell->GetFormat4Entry(nSelPos); |
| aComment=pNumFmtShell->GetComment4Entry(nSelPos); |
| if(pNumFmtShell->GetUserDefined4Entry(nFmtLbSelPos)) |
| { |
| if(pNumFmtShell->GetComment4Entry(nFmtLbSelPos).Len()==0) |
| { |
| aComment=aLbCategory.GetEntry(1); |
| } |
| } |
| |
| if ( aFormat.Len() > 0 ) |
| { |
| if(!aEdFormat.HasFocus()) aEdFormat.SetText( aFormat ); |
| aFtComment.SetText(aComment); |
| ChangePreviewText( nSelPos ); |
| } |
| |
| REMOVE_DONTKNOW() // ggF. UI-Enable |
| |
| if ( pNumFmtShell->FindEntry( aFormat) ) |
| { |
| aIbAdd.Enable(sal_False ); |
| sal_Bool bIsUserDef=pNumFmtShell->IsUserDefined( aFormat ); |
| aIbRemove.Enable(bIsUserDef); |
| aIbInfo.Enable(bIsUserDef); |
| |
| } |
| else |
| { |
| aIbAdd.Enable(sal_True ); |
| aIbInfo.Enable(sal_True ); |
| aIbRemove.Enable(sal_False ); |
| aFtComment.SetText(aEdComment.GetText()); |
| |
| } |
| UpdateOptions_Impl( sal_False ); |
| |
| //------- |
| return 0; |
| //------- |
| } |
| |
| //-------------------------------------------------------------------- |
| // Kategorie-ListBox ------------------------------------------------- |
| if ( pLb == &aLbCategory || pLb == &aLbCurrency) |
| { |
| UpdateFormatListBox_Impl( sal_True, sal_True ); |
| EditHdl_Impl( NULL ); |
| UpdateOptions_Impl( sal_False ); |
| |
| //------- |
| return 0; |
| //------- |
| } |
| |
| //-------------------------------------------------------------------- |
| // Sprache/Land-ListBox ---------------------------------------------- |
| if ( pLb == &aLbLanguage ) |
| { |
| UpdateFormatListBox_Impl( sal_False, sal_True ); |
| EditHdl_Impl( &aEdFormat ); |
| |
| //------- |
| return 0; |
| //------- |
| } |
| return 0; |
| } |
| |
| |
| /************************************************************************* |
| #* Methode: ClickHdl_Impl, ImageButton* pIB Datum:02.10.97 |
| #*------------------------------------------------------------------------ |
| #* |
| #* Klasse: SvxNumberFormatTabPage |
| #* |
| #* Funktion: Wenn, der Hinzufuegen- oder Entfernen- Button |
| #* wird diese Funktion aufgerufen und die Zahlenformat- |
| #* Liste den entsprechend geaendert. |
| #* |
| #* Input: Toolbox- Button |
| #* |
| #* Output: --- |
| #* |
| #************************************************************************/ |
| |
| IMPL_LINK( SvxNumberFormatTabPage, ClickHdl_Impl, ImageButton*, pIB) |
| { |
| sal_Bool bAdded = sal_False; |
| sal_Bool bDeleted = sal_False; |
| sal_uLong nReturn = 0; |
| const sal_uLong nReturnChanged = 0x1; // THE boolean return value |
| const sal_uLong nReturnAdded = 0x2; // temp: format added |
| const sal_uLong nReturnOneArea = 0x4; // temp: one area but category changed => ignored |
| |
| if(pIB==&aIbAdd) |
| { // Also called from FillItemSet() if a temporary currency format has |
| // to be added, not only if the Add button is enabled. |
| String aFormat = aEdFormat.GetText(); |
| SvxDelStrgs aEntryList; |
| SvxDelStrgs a2EntryList; |
| sal_uInt16 nCatLbSelPos = 0; |
| short nFmtLbSelPos = SELPOS_NONE; |
| xub_StrLen nErrPos=0; |
| |
| pNumFmtShell->SetCurCurrencyEntry(NULL); |
| bAdded = pNumFmtShell->AddFormat( aFormat, nErrPos, |
| nCatLbSelPos, nFmtLbSelPos, |
| aEntryList); |
| if ( bAdded ) |
| nReturn |= nReturnChanged | nReturnAdded; |
| |
| if(pLastActivWindow== (Window *) &aEdComment) |
| { |
| aEdFormat.GrabFocus(); |
| aEdComment.Hide(); |
| aFtComment.Show(); |
| aFtComment.SetText(aEdComment.GetText()); |
| } |
| |
| if ( !nErrPos ) // Syntax ok? |
| { |
| if(nCatLbSelPos==CAT_CURRENCY) |
| { |
| aLbCurrency.SelectEntryPos((sal_uInt16)pNumFmtShell->GetCurrencySymbol()); |
| } |
| |
| if(bOneAreaFlag && (nFixedCategory!=nCatLbSelPos)) |
| { |
| if(bAdded) DeleteEntryList_Impl(aEntryList); |
| bDeleted = pNumFmtShell->RemoveFormat( aFormat, |
| nCatLbSelPos, |
| nFmtLbSelPos, |
| a2EntryList); |
| if(bDeleted) DeleteEntryList_Impl(a2EntryList); |
| aEdFormat.GrabFocus(); |
| aEdFormat.SetSelection( Selection( (short)nErrPos, SELECTION_MAX ) ); |
| nReturn |= nReturnOneArea; |
| } |
| else |
| { |
| if ( bAdded && (nFmtLbSelPos != SELPOS_NONE) ) |
| { |
| // Alles klar |
| if(bOneAreaFlag) //@@ ??? |
| SetCategory(0); |
| else |
| SetCategory(nCatLbSelPos ); |
| |
| FillFormatListBox_Impl( aEntryList ); |
| if(aEdComment.GetText()!=aLbCategory.GetEntry(1)) |
| { |
| pNumFmtShell->SetComment4Entry(nFmtLbSelPos, |
| aEdComment.GetText()); |
| } |
| else |
| { |
| pNumFmtShell->SetComment4Entry(nFmtLbSelPos, |
| String()); |
| } |
| aLbFormat.SelectEntryPos( (sal_uInt16)nFmtLbSelPos ); |
| aEdFormat.SetText( aFormat ); |
| |
| //aEdComment.SetText(String()); //@@ ??? |
| aEdComment.SetText(aLbCategory.GetEntry(1)); //String fuer Benutzerdefiniert |
| //holen |
| ChangePreviewText( (sal_uInt16)nFmtLbSelPos ); |
| } |
| } |
| } |
| else // Syntaxfehler |
| { |
| aEdFormat.GrabFocus(); |
| aEdFormat.SetSelection( Selection( (short)nErrPos, SELECTION_MAX ) ); |
| } |
| EditHdl_Impl( &aEdFormat ); |
| nReturn = ((nReturn & nReturnOneArea) ? 0 : (nReturn & nReturnChanged)); |
| } |
| else if(pIB==&aIbRemove) |
| { |
| String aFormat = aEdFormat.GetText(); |
| SvxDelStrgs aEntryList; |
| sal_uInt16 nCatLbSelPos = 0; |
| short nFmtLbSelPos = SELPOS_NONE; |
| |
| bDeleted = pNumFmtShell->RemoveFormat( aFormat, |
| nCatLbSelPos, |
| nFmtLbSelPos, |
| aEntryList ); |
| |
| aEdComment.SetText(aLbCategory.GetEntry(1)); |
| if ( bDeleted ) |
| { |
| if(nFmtLbSelPos>=0 && nFmtLbSelPos<aEntryList.Count()) |
| { |
| aFormat = *aEntryList[nFmtLbSelPos]; |
| } |
| |
| FillFormatListBox_Impl( aEntryList ); |
| |
| if ( nFmtLbSelPos != SELPOS_NONE ) |
| { |
| if(bOneAreaFlag) //@@ ??? |
| SetCategory(0); |
| else |
| SetCategory(nCatLbSelPos ); |
| |
| aLbFormat.SelectEntryPos( (sal_uInt16)nFmtLbSelPos ); |
| aEdFormat.SetText( aFormat ); |
| ChangePreviewText( (sal_uInt16)nFmtLbSelPos ); |
| } |
| else |
| { |
| // auf "Alle/Standard" setzen |
| SetCategory(0 ); |
| SelFormatHdl_Impl( &aLbCategory ); |
| } |
| } |
| EditHdl_Impl( &aEdFormat ); |
| } |
| else if(pIB==&aIbInfo) |
| { |
| if(!(pLastActivWindow== (Window *) &aEdComment)) |
| { |
| aEdComment.SetText(aFtComment.GetText()); |
| aEdComment.Show(); |
| aFtComment.Hide(); |
| aEdComment.GrabFocus(); |
| } |
| else |
| { |
| aEdFormat.GrabFocus(); |
| aEdComment.Hide(); |
| aFtComment.Show(); |
| } |
| } |
| |
| return nReturn; |
| } |
| |
| |
| /************************************************************************* |
| #* Methode: EditHdl_Impl Datum:02.10.97 |
| #*------------------------------------------------------------------------ |
| #* |
| #* Klasse: SvxNumberFormatTabPage |
| #* |
| #* Funktion: Wenn der Eintrag im Eingabefeld geaendert wird, |
| #* so wird die Vorschau aktualisiert und |
| #* |
| #* Input: Pointer auf Editbox |
| #* |
| #* Output: --- |
| #* |
| #************************************************************************/ |
| |
| IMPL_LINK( SvxNumberFormatTabPage, EditHdl_Impl, Edit*, pEdFormat ) |
| { |
| sal_uInt32 nCurKey = NUMKEY_UNDEFINED; |
| |
| if ( aEdFormat.GetText().Len() == 0 ) |
| { |
| aIbAdd.Enable(sal_False ); |
| aIbRemove.Enable(sal_False ); |
| aIbInfo.Enable(sal_False ); |
| aFtComment.SetText(String()); |
| } |
| else |
| { |
| String aFormat = aEdFormat.GetText(); |
| //aFtComment.SetText(String()); |
| MakePreviewText( aFormat ); |
| |
| if ( pNumFmtShell->FindEntry( aFormat, &nCurKey ) ) |
| { |
| aIbAdd.Enable(sal_False ); |
| sal_Bool bUserDef=pNumFmtShell->IsUserDefined( aFormat ); |
| |
| aIbRemove.Enable(bUserDef); |
| aIbInfo.Enable(bUserDef); |
| |
| if(bUserDef) |
| { |
| sal_uInt16 nTmpCurPos=pNumFmtShell->FindCurrencyFormat(aFormat ); |
| |
| if(nTmpCurPos!=(sal_uInt16)-1) |
| aLbCurrency.SelectEntryPos(nTmpCurPos); |
| } |
| short nPosi=pNumFmtShell->GetListPos4Entry(aFormat); |
| if(nPosi>=0) |
| aLbFormat.SelectEntryPos( (sal_uInt16)nPosi); |
| |
| } |
| else |
| { |
| |
| aIbAdd.Enable(sal_True ); |
| aIbInfo.Enable(sal_True); |
| aIbRemove.Enable(sal_False ); |
| |
| aFtComment.SetText(aEdComment.GetText()); |
| |
| } |
| } |
| |
| if ( pEdFormat ) |
| { |
| pNumFmtShell->SetCurNumFmtKey( nCurKey ); |
| UpdateOptions_Impl( sal_True ); |
| } |
| |
| return 0; |
| } |
| |
| |
| /************************************************************************* |
| #* Methode: NotifyChange Datum:02.10.97 |
| #*------------------------------------------------------------------------ |
| #* |
| #* Klasse: SvxNumberFormatTabPage |
| #* |
| #* Funktion: Fuehrt Aenderungen in den Zahlen- Attributen durch. |
| #* |
| #* Input: Options- Controls |
| #* |
| #* Output: --- |
| #* |
| #************************************************************************/ |
| |
| IMPL_LINK( SvxNumberFormatTabPage, OptHdl_Impl, void *, pOptCtrl ) |
| { |
| if ( ((NumericField*)pOptCtrl == &aEdLeadZeroes) |
| || ((NumericField*)pOptCtrl == &aEdDecimals) |
| || ((CheckBox*) pOptCtrl == &aBtnNegRed) |
| || ((CheckBox*) pOptCtrl == &aBtnThousand) ) |
| { |
| String aFormat; |
| sal_Bool bThousand = aBtnThousand.IsEnabled() |
| && aBtnThousand.IsChecked(); |
| sal_Bool bNegRed = aBtnNegRed.IsEnabled() |
| && aBtnNegRed.IsChecked(); |
| sal_uInt16 nPrecision = (aEdDecimals.IsEnabled()) |
| ? (sal_uInt16)aEdDecimals.GetValue() |
| : (sal_uInt16)0; |
| sal_uInt16 nLeadZeroes = (aEdLeadZeroes.IsEnabled()) |
| ? (sal_uInt16)aEdLeadZeroes.GetValue() |
| : (sal_uInt16)0; |
| |
| pNumFmtShell->MakeFormat( aFormat, |
| bThousand, bNegRed, |
| nPrecision, nLeadZeroes, |
| (sal_uInt16)aLbFormat.GetSelectEntryPos() ); |
| |
| aEdFormat.SetText( aFormat ); |
| //aFtComment.SetText(String()); |
| MakePreviewText( aFormat ); |
| |
| if ( pNumFmtShell->FindEntry( aFormat ) ) |
| { |
| aIbAdd.Enable(sal_False ); |
| sal_Bool bUserDef=pNumFmtShell->IsUserDefined( aFormat ); |
| aIbRemove.Enable(bUserDef); |
| aIbInfo.Enable(bUserDef); |
| EditHdl_Impl( &aEdFormat); |
| |
| } |
| else |
| { |
| EditHdl_Impl( NULL ); |
| aLbFormat.SetNoSelection(); |
| } |
| } |
| return 0; |
| } |
| |
| IMPL_LINK( SvxNumberFormatTabPage, TimeHdl_Impl, Timer*, EMPTYARG) |
| { |
| pLastActivWindow=NULL; |
| return 0; |
| } |
| |
| |
| /************************************************************************* |
| #* Methode: LostFocusHdl_Impl Datum:30.10.97 |
| #*------------------------------------------------------------------------ |
| #* |
| #* Klasse: SvxNumberFormatTabPage |
| #* |
| #* Funktion: Fuehrt Aenderungen in den Zahlen- Attributen durch. |
| #* |
| #* Input: Options- Controls |
| #* |
| #* Output: --- |
| #* |
| #************************************************************************/ |
| |
| IMPL_LINK( SvxNumberFormatTabPage, LostFocusHdl_Impl, Edit *, pEd) |
| { |
| if (pEd==&aEdComment) |
| { |
| aResetWinTimer.Start(); |
| aFtComment.SetText(aEdComment.GetText()); |
| aEdComment.Hide(); |
| aFtComment.Show(); |
| if(!aIbAdd.IsEnabled()) |
| { |
| sal_uInt16 nSelPos = (sal_uInt16) aLbFormat.GetSelectEntryPos(); |
| pNumFmtShell->SetComment4Entry(nSelPos, |
| aEdComment.GetText()); |
| aEdComment.SetText(aLbCategory.GetEntry(1)); //String fuer Benutzerdefiniert |
| //holen |
| } |
| } |
| return 0; |
| } |
| |
| /************************************************************************* |
| #* Methode: NotifyChange Datum:02.10.97 |
| #*------------------------------------------------------------------------ |
| #* |
| #* Klasse: SvxNumberFormatTabPage |
| #* |
| #* Funktion: Fuehrt Aenderungen in den Zahlen- Attributen durch. |
| #* |
| #* Input: Options- Controls |
| #* |
| #* Output: --- |
| #* |
| #************************************************************************/ |
| |
| String SvxNumberFormatTabPage::GetExpColorString( |
| Color*& rpPreviewColor, const String& rFormatStr, short nTmpCatPos) |
| { |
| double nVal = 0; |
| switch (nTmpCatPos) |
| { |
| case CAT_CURRENCY: nVal=SVX_NUMVAL_CURRENCY; break; |
| |
| case CAT_SCIENTIFIC: |
| case CAT_FRACTION: |
| case CAT_NUMBER: nVal=SVX_NUMVAL_STANDARD; break; |
| |
| case CAT_PERCENT: nVal=SVX_NUMVAL_PERCENT; break; |
| |
| case CAT_ALL: nVal=SVX_NUMVAL_STANDARD; break; |
| |
| case CAT_TIME: nVal=SVX_NUMVAL_TIME; break; |
| case CAT_DATE: nVal=SVX_NUMVAL_DATE; break; |
| |
| case CAT_BOOLEAN: nVal=SVX_NUMVAL_BOOLEAN; break; |
| |
| case CAT_USERDEFINED: |
| case CAT_TEXT: |
| default: nVal=0;break; |
| } |
| |
| String aPreviewString; |
| pNumFmtShell->MakePrevStringFromVal( rFormatStr, aPreviewString, rpPreviewColor, nVal ); |
| return aPreviewString; |
| } |
| |
| void SvxNumberFormatTabPage::MakePreviewText( const String& rFormat ) |
| { |
| String aPreviewString; |
| Color* pPreviewColor = NULL; |
| pNumFmtShell->MakePreviewString( rFormat, aPreviewString, pPreviewColor ); |
| aWndPreview.NotifyChange( aPreviewString, pPreviewColor ); |
| } |
| |
| void SvxNumberFormatTabPage::ChangePreviewText( sal_uInt16 nPos ) |
| { |
| String aPreviewString; |
| Color* pPreviewColor = NULL; |
| pNumFmtShell->FormatChanged( nPos, aPreviewString, pPreviewColor ); |
| aWndPreview.NotifyChange( aPreviewString, pPreviewColor ); |
| } |
| |
| long SvxNumberFormatTabPage::PreNotify( NotifyEvent& rNEvt ) |
| { |
| if(rNEvt.GetType()==EVENT_LOSEFOCUS) |
| { |
| if ( rNEvt.GetWindow() == dynamic_cast< Window* >( &aEdComment ) && !aEdComment.IsVisible() ) |
| { |
| pLastActivWindow = NULL; |
| } |
| else |
| { |
| pLastActivWindow = rNEvt.GetWindow(); |
| } |
| } |
| |
| return SfxTabPage::PreNotify( rNEvt ); |
| } |
| /************************************************************************* |
| #* Methode: SetOkHdl Datum:01.11.97 |
| #*------------------------------------------------------------------------ |
| #* |
| #* Klasse: SvxNumberFormatTabPage |
| #* |
| #* Funktion: Setzt den OkHandler neu. |
| #* |
| #* Input: Neuer OkHandler |
| #* |
| #* Output: --- |
| #* |
| #************************************************************************/ |
| |
| void SvxNumberFormatTabPage::SetOkHdl( const Link& rOkHandler ) |
| { |
| fnOkHdl = rOkHandler; |
| } |
| |
| void SvxNumberFormatTabPage::FillCurrencyBox() |
| { |
| SvStringsDtor aList; |
| NfShCurrencyEntries rEntries; |
| XubString* pEntry = NULL; |
| sal_uInt16 nPos=0; |
| sal_uInt16 nSelPos=0; |
| |
| pNumFmtShell->GetCurrencySymbols( aList, &nSelPos); |
| |
| for(sal_uInt16 i=1;i<aList.Count();i++) |
| { |
| pEntry=aList[i]; |
| nPos=aLbCurrency.InsertEntry( *pEntry); |
| } |
| aLbCurrency.SelectEntryPos(nSelPos); |
| } |
| |
| void SvxNumberFormatTabPage::SetCategory(sal_uInt16 nPos) |
| { |
| sal_uInt16 nCurCategory = aLbCategory.GetSelectEntryPos(); |
| Point aPos=aLbFormat.GetPosPixel(); |
| Size aSize=aLbFormat.GetSizePixel(); |
| sal_uInt16 nTmpCatPos; |
| |
| if(bOneAreaFlag) |
| { |
| nTmpCatPos=nFixedCategory; |
| } |
| else |
| { |
| nTmpCatPos=nPos; |
| } |
| |
| if(aLbCategory.GetEntryCount()==1 || nCurCategory!=nPos) |
| { |
| if(nTmpCatPos!=CAT_CURRENCY) |
| { |
| aPos.Y()=nStdFormatY; |
| aSize.Height()=nStdFormatHeight; |
| aLbFormat.SetPosSizePixel(aPos,aSize); |
| aLbCurrency.Hide(); |
| } |
| else |
| { |
| aPos.Y()=nCurFormatY; |
| aSize.Height()=nCurFormatHeight; |
| aLbFormat.SetPosSizePixel(aPos,aSize); |
| aLbCurrency.Show(); |
| } |
| } |
| aLbCategory.SelectEntryPos(nPos); |
| } |
| /* -----------------12.11.2002 14:35----------------- |
| * to support Writer text field language handling an |
| * additional entry needs to be inserted into the ListBox |
| * which marks a certain language as automatically detected |
| * Additionally the "Default" language is removed |
| * --------------------------------------------------*/ |
| void SvxNumberFormatTabPage::AddAutomaticLanguage_Impl(LanguageType eAutoLang, sal_Bool bSelect) |
| { |
| aLbLanguage.RemoveLanguage(LANGUAGE_SYSTEM); |
| sal_uInt16 nPos = aLbLanguage.InsertEntry(sAutomaticEntry); |
| aLbLanguage.SetEntryData(nPos, (void*)(sal_uLong)eAutoLang); |
| if(bSelect) |
| aLbLanguage.SelectEntryPos(nPos); |
| } |
| |
| void SvxNumberFormatTabPage::PageCreated (SfxAllItemSet aSet) //add CHINA001 |
| { |
| SFX_ITEMSET_ARG (&aSet,pNumberInfoItem,SvxNumberInfoItem,SID_ATTR_NUMBERFORMAT_INFO,sal_False); |
| SFX_ITEMSET_ARG (&aSet,pLinkItem,SfxLinkItem,SID_LINK_TYPE,sal_False); |
| if (pNumberInfoItem) |
| SetNumberFormatList(*pNumberInfoItem); |
| if (pLinkItem) |
| SetOkHdl(pLinkItem->GetValue()); |
| } |