blob: 940a3f38a7a2049b5a2c8f8434a49a90297def93 [file] [log] [blame]
/**************************************************************
*
* 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 _SVX_NUMFMT_HXX
#define _SVX_NUMFMT_HXX
//------------------------------------------------------------------------
#include <vcl/window.hxx>
#include <tools/color.hxx>
#include <tools/string.hxx>
#include <sfx2/tabdlg.hxx>
#include <vcl/fixed.hxx>
#include <vcl/lstbox.hxx>
#include <vcl/edit.hxx>
#include <vcl/toolbox.hxx>
#include <vcl/field.hxx>
#include <svx/langbox.hxx>
#include <svx/fontlb.hxx>
//CHINA001 #define SVX_NUMVAL_STANDARD -1234.12345678901234
//CHINA001 #define SVX_NUMVAL_CURRENCY -1234
//CHINA001 #define SVX_NUMVAL_PERCENT -0.1295
//CHINA001 #define SVX_NUMVAL_TIME 36525.5678935185
//CHINA001 #define SVX_NUMVAL_DATE 36525.5678935185
//CHINA001 #define SVX_NUMVAL_BOOLEAN 1
//------------------------------------------------------------------------
class SvxNumberFormatShell;
class SvxNumberInfoItem;
//------------------------------------------------------------------------
class SvxNumberPreviewImpl : public Window
{
private:
String aPrevStr;
Color aPrevCol;
void InitSettings( sal_Bool bForeground, sal_Bool bBackground );
protected:
virtual void Paint( const Rectangle& rRect );
virtual void StateChanged( StateChangedType nStateChange );
virtual void DataChanged( const DataChangedEvent& rDCEvt );
public:
SvxNumberPreviewImpl( Window* pParent, const ResId& rResId );
~SvxNumberPreviewImpl();
void NotifyChange( const String& rPrevStr, const Color* pColor = NULL );
};
// -----------------------------------------------------------------------
#include <sfx2/layout.hxx>
#include <layout/layout-pre.hxx>
class SvxNumberFormatTabPage : public SfxTabPage
{
using SfxTabPage::DeactivatePage;
public:
~SvxNumberFormatTabPage();
static SfxTabPage* Create( Window* pParent,
const SfxItemSet& rAttrSet );
static sal_uInt16* GetRanges();
virtual sal_Bool FillItemSet( SfxItemSet& rSet );
virtual void Reset( const SfxItemSet& rSet );
virtual int DeactivatePage ( SfxItemSet* pSet = NULL );
void SetInfoItem( const SvxNumberInfoItem& rItem );
void SetNumberFormatList( const SvxNumberInfoItem& rItem )
{ SetInfoItem( rItem ); }
void SetOkHdl( const Link& rOkHandler );
void HideLanguage(sal_Bool nFlag=sal_True);
virtual long PreNotify( NotifyEvent& rNEvt );
virtual void PageCreated (SfxAllItemSet aSet); //add CHINA001
private:
SvxNumberFormatTabPage( Window* pParent,
const SfxItemSet& rCoreAttrs );
FixedText aFtCategory;
ListBox aLbCategory;
FixedText aFtFormat;
ListBox aLbCurrency;
SvxFontListBox aLbFormat;
FixedText aFtLanguage;
SvxLanguageBox aLbLanguage;
CheckBox aCbSourceFormat;
SvxNumberPreviewImpl aWndPreview;
FixedLine aFlOptions;
FixedText aFtDecimals;
NumericField aEdDecimals;
CheckBox aBtnNegRed;
FixedText aFtLeadZeroes;
NumericField aEdLeadZeroes;
CheckBox aBtnThousand;
FixedText aFtEdFormat;
Edit aEdFormat;
ImageButton aIbAdd;
ImageButton aIbInfo;
ImageButton aIbRemove;
FixedText aFtComment;
Edit aEdComment;
Timer aResetWinTimer;
SvxNumberInfoItem* pNumItem;
SvxNumberFormatShell* pNumFmtShell;
sal_uLong nInitFormat;
Link fnOkHdl;
sal_Bool bNumItemFlag; //Fuer Handling mit DocShell
sal_Bool bOneAreaFlag;
short nFixedCategory;
long nCatHeight;
long nCurFormatY;
long nCurFormatHeight;
long nStdFormatY;
long nStdFormatHeight;
LocalizedString sAutomaticEntry;
Window* pLastActivWindow;
#ifdef _SVX_NUMFMT_CXX
void Init_Impl();
void FillCurrencyBox();
void FillFormatListBox_Impl( SvxDelStrgs& rEntries );
void UpdateOptions_Impl( sal_Bool bCheckCatChange );
void UpdateFormatListBox_Impl( sal_uInt16 bCat, sal_Bool bUpdateEdit );
void DeleteEntryList_Impl( SvxDelStrgs& rEntries );
void Obstructing();
void EnableBySourceFormat_Impl();
void SetCategory( sal_uInt16 nPos );
String GetExpColorString( Color*& rpPreviewColor, const String& aFormatStr, short nTmpCatPos );
void MakePreviewText( const String& rFormat );
void ChangePreviewText( sal_uInt16 nPos );
void AddAutomaticLanguage_Impl(LanguageType eAutoLang, sal_Bool bSelect);
// Handler
DECL_LINK( LostFocusHdl_Impl, Edit* pEd );
DECL_LINK( DoubleClickHdl_Impl, SvxFontListBox* pLb );
DECL_LINK( SelFormatHdl_Impl, void * );
DECL_LINK( ClickHdl_Impl, ImageButton* pIB );
DECL_LINK( EditHdl_Impl, Edit* pEdFormat );
DECL_LINK( OptHdl_Impl, void * );
DECL_LINK( TimeHdl_Impl, Timer * );
#endif
};
#include <layout/layout-post.hxx>
#endif