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 24*b1cdbd2cSJim Jagielski #ifndef FORMULA_PARAWIN_HXX 25*b1cdbd2cSJim Jagielski #define FORMULA_PARAWIN_HXX 26*b1cdbd2cSJim Jagielski 27*b1cdbd2cSJim Jagielski #include <svtools/stdctrl.hxx> 28*b1cdbd2cSJim Jagielski #include <svtools/svmedit.hxx> 29*b1cdbd2cSJim Jagielski #include <vcl/lstbox.hxx> 30*b1cdbd2cSJim Jagielski #include <vcl/group.hxx> 31*b1cdbd2cSJim Jagielski #include <vcl/tabpage.hxx> 32*b1cdbd2cSJim Jagielski #include <vcl/tabctrl.hxx> 33*b1cdbd2cSJim Jagielski #include <vcl/scrbar.hxx> 34*b1cdbd2cSJim Jagielski 35*b1cdbd2cSJim Jagielski #include <vector> 36*b1cdbd2cSJim Jagielski #include "formula/funcutl.hxx" 37*b1cdbd2cSJim Jagielski #include "ControlHelper.hxx" 38*b1cdbd2cSJim Jagielski #include "ModuleHelper.hxx" 39*b1cdbd2cSJim Jagielski 40*b1cdbd2cSJim Jagielski namespace formula 41*b1cdbd2cSJim Jagielski { 42*b1cdbd2cSJim Jagielski //============================================================================ 43*b1cdbd2cSJim Jagielski #define NOT_FOUND 0xffff 44*b1cdbd2cSJim Jagielski //============================================================================ 45*b1cdbd2cSJim Jagielski class IFunctionDescription; 46*b1cdbd2cSJim Jagielski class IControlReferenceHandler; 47*b1cdbd2cSJim Jagielski 48*b1cdbd2cSJim Jagielski class ParaWin : public TabPage 49*b1cdbd2cSJim Jagielski { 50*b1cdbd2cSJim Jagielski private: 51*b1cdbd2cSJim Jagielski OModuleClient m_aModuleClient; 52*b1cdbd2cSJim Jagielski Link aScrollLink; 53*b1cdbd2cSJim Jagielski Link aFxLink; 54*b1cdbd2cSJim Jagielski Link aArgModifiedLink; 55*b1cdbd2cSJim Jagielski 56*b1cdbd2cSJim Jagielski ::std::vector<sal_uInt16> aVisibleArgMapping; 57*b1cdbd2cSJim Jagielski const IFunctionDescription* pFuncDesc; 58*b1cdbd2cSJim Jagielski IControlReferenceHandler* pMyParent; 59*b1cdbd2cSJim Jagielski sal_uInt16 nArgs; // unsuppressed arguments 60*b1cdbd2cSJim Jagielski Font aFntBold; 61*b1cdbd2cSJim Jagielski Font aFntLight; 62*b1cdbd2cSJim Jagielski 63*b1cdbd2cSJim Jagielski FixedInfo aFtEditDesc; 64*b1cdbd2cSJim Jagielski FixedText aFtArgName; 65*b1cdbd2cSJim Jagielski FixedInfo aFtArgDesc; 66*b1cdbd2cSJim Jagielski 67*b1cdbd2cSJim Jagielski ImageButton aBtnFx1; 68*b1cdbd2cSJim Jagielski FixedText aFtArg1; 69*b1cdbd2cSJim Jagielski ArgEdit aEdArg1; 70*b1cdbd2cSJim Jagielski RefButton aRefBtn1; 71*b1cdbd2cSJim Jagielski 72*b1cdbd2cSJim Jagielski ImageButton aBtnFx2; 73*b1cdbd2cSJim Jagielski FixedText aFtArg2; 74*b1cdbd2cSJim Jagielski ArgEdit aEdArg2; 75*b1cdbd2cSJim Jagielski RefButton aRefBtn2; 76*b1cdbd2cSJim Jagielski 77*b1cdbd2cSJim Jagielski ImageButton aBtnFx3; 78*b1cdbd2cSJim Jagielski FixedText aFtArg3; 79*b1cdbd2cSJim Jagielski ArgEdit aEdArg3; 80*b1cdbd2cSJim Jagielski RefButton aRefBtn3; 81*b1cdbd2cSJim Jagielski 82*b1cdbd2cSJim Jagielski ImageButton aBtnFx4; 83*b1cdbd2cSJim Jagielski FixedText aFtArg4; 84*b1cdbd2cSJim Jagielski ArgEdit aEdArg4; 85*b1cdbd2cSJim Jagielski RefButton aRefBtn4; 86*b1cdbd2cSJim Jagielski 87*b1cdbd2cSJim Jagielski ScrollBar aSlider; 88*b1cdbd2cSJim Jagielski String m_sOptional; 89*b1cdbd2cSJim Jagielski String m_sRequired; 90*b1cdbd2cSJim Jagielski sal_Bool bRefMode; 91*b1cdbd2cSJim Jagielski 92*b1cdbd2cSJim Jagielski sal_uInt16 nEdFocus; 93*b1cdbd2cSJim Jagielski sal_uInt16 nActiveLine; 94*b1cdbd2cSJim Jagielski 95*b1cdbd2cSJim Jagielski ArgInput aArgInput[4]; 96*b1cdbd2cSJim Jagielski String aDefaultString; 97*b1cdbd2cSJim Jagielski ::std::vector<String> 98*b1cdbd2cSJim Jagielski aParaArray; 99*b1cdbd2cSJim Jagielski 100*b1cdbd2cSJim Jagielski DECL_LINK( ScrollHdl, ScrollBar* ); 101*b1cdbd2cSJim Jagielski DECL_LINK( ModifyHdl, ArgInput* ); 102*b1cdbd2cSJim Jagielski DECL_LINK( GetEdFocusHdl, ArgInput* ); 103*b1cdbd2cSJim Jagielski DECL_LINK( GetFxFocusHdl, ArgInput* ); 104*b1cdbd2cSJim Jagielski DECL_LINK( GetFxHdl, ArgInput* ); 105*b1cdbd2cSJim Jagielski 106*b1cdbd2cSJim Jagielski protected: 107*b1cdbd2cSJim Jagielski 108*b1cdbd2cSJim Jagielski virtual void SliderMoved(); 109*b1cdbd2cSJim Jagielski virtual void ArgumentModified(); 110*b1cdbd2cSJim Jagielski virtual void FxClick(); 111*b1cdbd2cSJim Jagielski 112*b1cdbd2cSJim Jagielski void InitArgInput( sal_uInt16 nPos, FixedText& rFtArg, ImageButton& rBtnFx, 113*b1cdbd2cSJim Jagielski ArgEdit& rEdArg, RefButton& rRefBtn); 114*b1cdbd2cSJim Jagielski 115*b1cdbd2cSJim Jagielski void DelParaArray(); 116*b1cdbd2cSJim Jagielski void SetArgumentDesc(const String& aText); 117*b1cdbd2cSJim Jagielski void SetArgumentText(const String& aText); 118*b1cdbd2cSJim Jagielski 119*b1cdbd2cSJim Jagielski 120*b1cdbd2cSJim Jagielski void SetArgName (sal_uInt16 no,const String &aArg); 121*b1cdbd2cSJim Jagielski void SetArgNameFont (sal_uInt16 no,const Font&); 122*b1cdbd2cSJim Jagielski void SetArgVal (sal_uInt16 no,const String &aArg); 123*b1cdbd2cSJim Jagielski 124*b1cdbd2cSJim Jagielski void HideParaLine(sal_uInt16 no); 125*b1cdbd2cSJim Jagielski void ShowParaLine(sal_uInt16 no); 126*b1cdbd2cSJim Jagielski void UpdateArgDesc( sal_uInt16 nArg ); 127*b1cdbd2cSJim Jagielski void UpdateArgInput( sal_uInt16 nOffset, sal_uInt16 i ); 128*b1cdbd2cSJim Jagielski 129*b1cdbd2cSJim Jagielski public: 130*b1cdbd2cSJim Jagielski ParaWin(Window* pParent,IControlReferenceHandler* _pDlg,Point aPos); 131*b1cdbd2cSJim Jagielski ~ParaWin(); 132*b1cdbd2cSJim Jagielski 133*b1cdbd2cSJim Jagielski void SetFunctionDesc(const IFunctionDescription* pFDesc); 134*b1cdbd2cSJim Jagielski void SetArgumentOffset(sal_uInt16 nOffset); 135*b1cdbd2cSJim Jagielski void SetEditDesc(const String& aText); 136*b1cdbd2cSJim Jagielski void UpdateParas(); 137*b1cdbd2cSJim Jagielski void ClearAll(); 138*b1cdbd2cSJim Jagielski IsRefMode()139*b1cdbd2cSJim Jagielski sal_Bool IsRefMode() {return bRefMode;} SetRefMode(sal_Bool bFlag)140*b1cdbd2cSJim Jagielski void SetRefMode(sal_Bool bFlag) {bRefMode=bFlag;} 141*b1cdbd2cSJim Jagielski 142*b1cdbd2cSJim Jagielski sal_uInt16 GetActiveLine(); 143*b1cdbd2cSJim Jagielski void SetActiveLine(sal_uInt16 no); 144*b1cdbd2cSJim Jagielski RefEdit* GetActiveEdit(); 145*b1cdbd2cSJim Jagielski String GetActiveArgName(); 146*b1cdbd2cSJim Jagielski 147*b1cdbd2cSJim Jagielski String GetArgument(sal_uInt16 no); 148*b1cdbd2cSJim Jagielski void SetArgument(sal_uInt16 no, const String& aString); 149*b1cdbd2cSJim Jagielski void SetArgumentFonts(const Font&aBoldFont,const Font&aLightFont); 150*b1cdbd2cSJim Jagielski 151*b1cdbd2cSJim Jagielski void SetEdFocus(sal_uInt16 nEditLine); //Sichtbare Editzeilen 152*b1cdbd2cSJim Jagielski sal_uInt16 GetSliderPos(); 153*b1cdbd2cSJim Jagielski void SetSliderPos(sal_uInt16 nSliderPos); 154*b1cdbd2cSJim Jagielski SetScrollHdl(const Link & rLink)155*b1cdbd2cSJim Jagielski void SetScrollHdl( const Link& rLink ) { aScrollLink = rLink; } GetScrollHdl() const156*b1cdbd2cSJim Jagielski const Link& GetScrollHdl() const { return aScrollLink; } 157*b1cdbd2cSJim Jagielski SetArgModifiedHdl(const Link & rLink)158*b1cdbd2cSJim Jagielski void SetArgModifiedHdl( const Link& rLink ) { aArgModifiedLink = rLink; } GetArgModifiedHdl() const159*b1cdbd2cSJim Jagielski const Link& GetArgModifiedHdl() const { return aArgModifiedLink; } 160*b1cdbd2cSJim Jagielski SetFxHdl(const Link & rLink)161*b1cdbd2cSJim Jagielski void SetFxHdl( const Link& rLink ) { aFxLink = rLink; } GetFxHdl() const162*b1cdbd2cSJim Jagielski const Link& GetFxHdl() const { return aFxLink; } 163*b1cdbd2cSJim Jagielski }; 164*b1cdbd2cSJim Jagielski 165*b1cdbd2cSJim Jagielski 166*b1cdbd2cSJim Jagielski 167*b1cdbd2cSJim Jagielski } // formula 168*b1cdbd2cSJim Jagielski 169*b1cdbd2cSJim Jagielski #endif // FORMULA_PARAWIN_HXX 170*b1cdbd2cSJim Jagielski 171