1*b1cdbd2cSJim Jagielski /************************************************************** 2*b1cdbd2cSJim Jagielski * 3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one 4*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file 5*b1cdbd2cSJim Jagielski * distributed with this work for additional information 6*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file 7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the 8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance 9*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at 10*b1cdbd2cSJim Jagielski * 11*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0 12*b1cdbd2cSJim Jagielski * 13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing, 14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an 15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the 17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations 18*b1cdbd2cSJim Jagielski * under the License. 19*b1cdbd2cSJim Jagielski * 20*b1cdbd2cSJim Jagielski *************************************************************/ 21*b1cdbd2cSJim Jagielski 22*b1cdbd2cSJim Jagielski 23*b1cdbd2cSJim Jagielski #ifndef _SVX_NUMFMT_HXX 24*b1cdbd2cSJim Jagielski #define _SVX_NUMFMT_HXX 25*b1cdbd2cSJim Jagielski 26*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------ 27*b1cdbd2cSJim Jagielski 28*b1cdbd2cSJim Jagielski #include <vcl/window.hxx> 29*b1cdbd2cSJim Jagielski #include <tools/color.hxx> 30*b1cdbd2cSJim Jagielski #include <tools/string.hxx> 31*b1cdbd2cSJim Jagielski #include <sfx2/tabdlg.hxx> 32*b1cdbd2cSJim Jagielski #include <vcl/fixed.hxx> 33*b1cdbd2cSJim Jagielski #include <vcl/lstbox.hxx> 34*b1cdbd2cSJim Jagielski #include <vcl/edit.hxx> 35*b1cdbd2cSJim Jagielski #include <vcl/toolbox.hxx> 36*b1cdbd2cSJim Jagielski #include <vcl/field.hxx> 37*b1cdbd2cSJim Jagielski #include <svx/langbox.hxx> 38*b1cdbd2cSJim Jagielski #include <svx/fontlb.hxx> 39*b1cdbd2cSJim Jagielski 40*b1cdbd2cSJim Jagielski //CHINA001 #define SVX_NUMVAL_STANDARD -1234.12345678901234 41*b1cdbd2cSJim Jagielski //CHINA001 #define SVX_NUMVAL_CURRENCY -1234 42*b1cdbd2cSJim Jagielski //CHINA001 #define SVX_NUMVAL_PERCENT -0.1295 43*b1cdbd2cSJim Jagielski //CHINA001 #define SVX_NUMVAL_TIME 36525.5678935185 44*b1cdbd2cSJim Jagielski //CHINA001 #define SVX_NUMVAL_DATE 36525.5678935185 45*b1cdbd2cSJim Jagielski //CHINA001 #define SVX_NUMVAL_BOOLEAN 1 46*b1cdbd2cSJim Jagielski 47*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------ 48*b1cdbd2cSJim Jagielski 49*b1cdbd2cSJim Jagielski class SvxNumberFormatShell; 50*b1cdbd2cSJim Jagielski class SvxNumberInfoItem; 51*b1cdbd2cSJim Jagielski 52*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------ 53*b1cdbd2cSJim Jagielski 54*b1cdbd2cSJim Jagielski class SvxNumberPreviewImpl : public Window 55*b1cdbd2cSJim Jagielski { 56*b1cdbd2cSJim Jagielski private: 57*b1cdbd2cSJim Jagielski String aPrevStr; 58*b1cdbd2cSJim Jagielski Color aPrevCol; 59*b1cdbd2cSJim Jagielski 60*b1cdbd2cSJim Jagielski void InitSettings( sal_Bool bForeground, sal_Bool bBackground ); 61*b1cdbd2cSJim Jagielski 62*b1cdbd2cSJim Jagielski protected: 63*b1cdbd2cSJim Jagielski virtual void Paint( const Rectangle& rRect ); 64*b1cdbd2cSJim Jagielski virtual void StateChanged( StateChangedType nStateChange ); 65*b1cdbd2cSJim Jagielski virtual void DataChanged( const DataChangedEvent& rDCEvt ); 66*b1cdbd2cSJim Jagielski 67*b1cdbd2cSJim Jagielski public: 68*b1cdbd2cSJim Jagielski SvxNumberPreviewImpl( Window* pParent, const ResId& rResId ); 69*b1cdbd2cSJim Jagielski ~SvxNumberPreviewImpl(); 70*b1cdbd2cSJim Jagielski 71*b1cdbd2cSJim Jagielski void NotifyChange( const String& rPrevStr, const Color* pColor = NULL ); 72*b1cdbd2cSJim Jagielski }; 73*b1cdbd2cSJim Jagielski 74*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------- 75*b1cdbd2cSJim Jagielski 76*b1cdbd2cSJim Jagielski #include <sfx2/layout.hxx> 77*b1cdbd2cSJim Jagielski #include <layout/layout-pre.hxx> 78*b1cdbd2cSJim Jagielski 79*b1cdbd2cSJim Jagielski class SvxNumberFormatTabPage : public SfxTabPage 80*b1cdbd2cSJim Jagielski { 81*b1cdbd2cSJim Jagielski using SfxTabPage::DeactivatePage; 82*b1cdbd2cSJim Jagielski 83*b1cdbd2cSJim Jagielski public: 84*b1cdbd2cSJim Jagielski ~SvxNumberFormatTabPage(); 85*b1cdbd2cSJim Jagielski 86*b1cdbd2cSJim Jagielski static SfxTabPage* Create( Window* pParent, 87*b1cdbd2cSJim Jagielski const SfxItemSet& rAttrSet ); 88*b1cdbd2cSJim Jagielski static sal_uInt16* GetRanges(); 89*b1cdbd2cSJim Jagielski 90*b1cdbd2cSJim Jagielski virtual sal_Bool FillItemSet( SfxItemSet& rSet ); 91*b1cdbd2cSJim Jagielski virtual void Reset( const SfxItemSet& rSet ); 92*b1cdbd2cSJim Jagielski virtual int DeactivatePage ( SfxItemSet* pSet = NULL ); 93*b1cdbd2cSJim Jagielski 94*b1cdbd2cSJim Jagielski void SetInfoItem( const SvxNumberInfoItem& rItem ); SetNumberFormatList(const SvxNumberInfoItem & rItem)95*b1cdbd2cSJim Jagielski void SetNumberFormatList( const SvxNumberInfoItem& rItem ) 96*b1cdbd2cSJim Jagielski { SetInfoItem( rItem ); } 97*b1cdbd2cSJim Jagielski 98*b1cdbd2cSJim Jagielski void SetOkHdl( const Link& rOkHandler ); 99*b1cdbd2cSJim Jagielski void HideLanguage(sal_Bool nFlag=sal_True); 100*b1cdbd2cSJim Jagielski virtual long PreNotify( NotifyEvent& rNEvt ); 101*b1cdbd2cSJim Jagielski virtual void PageCreated (SfxAllItemSet aSet); //add CHINA001 102*b1cdbd2cSJim Jagielski private: 103*b1cdbd2cSJim Jagielski SvxNumberFormatTabPage( Window* pParent, 104*b1cdbd2cSJim Jagielski const SfxItemSet& rCoreAttrs ); 105*b1cdbd2cSJim Jagielski FixedText aFtCategory; 106*b1cdbd2cSJim Jagielski ListBox aLbCategory; 107*b1cdbd2cSJim Jagielski FixedText aFtFormat; 108*b1cdbd2cSJim Jagielski ListBox aLbCurrency; 109*b1cdbd2cSJim Jagielski SvxFontListBox aLbFormat; 110*b1cdbd2cSJim Jagielski FixedText aFtLanguage; 111*b1cdbd2cSJim Jagielski SvxLanguageBox aLbLanguage; 112*b1cdbd2cSJim Jagielski CheckBox aCbSourceFormat; 113*b1cdbd2cSJim Jagielski SvxNumberPreviewImpl aWndPreview; 114*b1cdbd2cSJim Jagielski FixedLine aFlOptions; 115*b1cdbd2cSJim Jagielski FixedText aFtDecimals; 116*b1cdbd2cSJim Jagielski NumericField aEdDecimals; 117*b1cdbd2cSJim Jagielski CheckBox aBtnNegRed; 118*b1cdbd2cSJim Jagielski FixedText aFtLeadZeroes; 119*b1cdbd2cSJim Jagielski NumericField aEdLeadZeroes; 120*b1cdbd2cSJim Jagielski CheckBox aBtnThousand; 121*b1cdbd2cSJim Jagielski 122*b1cdbd2cSJim Jagielski FixedText aFtEdFormat; 123*b1cdbd2cSJim Jagielski Edit aEdFormat; 124*b1cdbd2cSJim Jagielski ImageButton aIbAdd; 125*b1cdbd2cSJim Jagielski ImageButton aIbInfo; 126*b1cdbd2cSJim Jagielski ImageButton aIbRemove; 127*b1cdbd2cSJim Jagielski 128*b1cdbd2cSJim Jagielski FixedText aFtComment; 129*b1cdbd2cSJim Jagielski Edit aEdComment; 130*b1cdbd2cSJim Jagielski Timer aResetWinTimer; 131*b1cdbd2cSJim Jagielski 132*b1cdbd2cSJim Jagielski 133*b1cdbd2cSJim Jagielski SvxNumberInfoItem* pNumItem; 134*b1cdbd2cSJim Jagielski SvxNumberFormatShell* pNumFmtShell; 135*b1cdbd2cSJim Jagielski sal_uLong nInitFormat; 136*b1cdbd2cSJim Jagielski Link fnOkHdl; 137*b1cdbd2cSJim Jagielski 138*b1cdbd2cSJim Jagielski sal_Bool bNumItemFlag; //Fuer Handling mit DocShell 139*b1cdbd2cSJim Jagielski sal_Bool bOneAreaFlag; 140*b1cdbd2cSJim Jagielski short nFixedCategory; 141*b1cdbd2cSJim Jagielski 142*b1cdbd2cSJim Jagielski long nCatHeight; 143*b1cdbd2cSJim Jagielski 144*b1cdbd2cSJim Jagielski long nCurFormatY; 145*b1cdbd2cSJim Jagielski long nCurFormatHeight; 146*b1cdbd2cSJim Jagielski long nStdFormatY; 147*b1cdbd2cSJim Jagielski long nStdFormatHeight; 148*b1cdbd2cSJim Jagielski LocalizedString sAutomaticEntry; 149*b1cdbd2cSJim Jagielski 150*b1cdbd2cSJim Jagielski Window* pLastActivWindow; 151*b1cdbd2cSJim Jagielski 152*b1cdbd2cSJim Jagielski #ifdef _SVX_NUMFMT_CXX 153*b1cdbd2cSJim Jagielski void Init_Impl(); 154*b1cdbd2cSJim Jagielski void FillCurrencyBox(); 155*b1cdbd2cSJim Jagielski void FillFormatListBox_Impl( SvxDelStrgs& rEntries ); 156*b1cdbd2cSJim Jagielski void UpdateOptions_Impl( sal_Bool bCheckCatChange ); 157*b1cdbd2cSJim Jagielski void UpdateFormatListBox_Impl( sal_uInt16 bCat, sal_Bool bUpdateEdit ); 158*b1cdbd2cSJim Jagielski void DeleteEntryList_Impl( SvxDelStrgs& rEntries ); 159*b1cdbd2cSJim Jagielski void Obstructing(); 160*b1cdbd2cSJim Jagielski void EnableBySourceFormat_Impl(); 161*b1cdbd2cSJim Jagielski void SetCategory( sal_uInt16 nPos ); 162*b1cdbd2cSJim Jagielski String GetExpColorString( Color*& rpPreviewColor, const String& aFormatStr, short nTmpCatPos ); 163*b1cdbd2cSJim Jagielski void MakePreviewText( const String& rFormat ); 164*b1cdbd2cSJim Jagielski void ChangePreviewText( sal_uInt16 nPos ); 165*b1cdbd2cSJim Jagielski void AddAutomaticLanguage_Impl(LanguageType eAutoLang, sal_Bool bSelect); 166*b1cdbd2cSJim Jagielski // Handler 167*b1cdbd2cSJim Jagielski DECL_LINK( LostFocusHdl_Impl, Edit* pEd ); 168*b1cdbd2cSJim Jagielski DECL_LINK( DoubleClickHdl_Impl, SvxFontListBox* pLb ); 169*b1cdbd2cSJim Jagielski DECL_LINK( SelFormatHdl_Impl, void * ); 170*b1cdbd2cSJim Jagielski DECL_LINK( ClickHdl_Impl, ImageButton* pIB ); 171*b1cdbd2cSJim Jagielski DECL_LINK( EditHdl_Impl, Edit* pEdFormat ); 172*b1cdbd2cSJim Jagielski DECL_LINK( OptHdl_Impl, void * ); 173*b1cdbd2cSJim Jagielski DECL_LINK( TimeHdl_Impl, Timer * ); 174*b1cdbd2cSJim Jagielski 175*b1cdbd2cSJim Jagielski #endif 176*b1cdbd2cSJim Jagielski }; 177*b1cdbd2cSJim Jagielski 178*b1cdbd2cSJim Jagielski #include <layout/layout-post.hxx> 179*b1cdbd2cSJim Jagielski 180*b1cdbd2cSJim Jagielski #endif 181*b1cdbd2cSJim Jagielski 182