1 /************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 23 24 #ifndef FORMULA_PARAWIN_HXX 25 #define FORMULA_PARAWIN_HXX 26 27 #include <svtools/stdctrl.hxx> 28 #include <svtools/svmedit.hxx> 29 #include <vcl/lstbox.hxx> 30 #include <vcl/group.hxx> 31 #include <vcl/tabpage.hxx> 32 #include <vcl/tabctrl.hxx> 33 #include <vcl/scrbar.hxx> 34 35 #include <vector> 36 #include "formula/funcutl.hxx" 37 #include "ControlHelper.hxx" 38 #include "ModuleHelper.hxx" 39 40 namespace formula 41 { 42 //============================================================================ 43 #define NOT_FOUND 0xffff 44 //============================================================================ 45 class IFunctionDescription; 46 class IControlReferenceHandler; 47 48 class ParaWin : public TabPage 49 { 50 private: 51 OModuleClient m_aModuleClient; 52 Link aScrollLink; 53 Link aFxLink; 54 Link aArgModifiedLink; 55 56 ::std::vector<sal_uInt16> aVisibleArgMapping; 57 const IFunctionDescription* pFuncDesc; 58 IControlReferenceHandler* pMyParent; 59 sal_uInt16 nArgs; // unsuppressed arguments 60 Font aFntBold; 61 Font aFntLight; 62 63 FixedInfo aFtEditDesc; 64 FixedText aFtArgName; 65 FixedInfo aFtArgDesc; 66 67 ImageButton aBtnFx1; 68 FixedText aFtArg1; 69 ArgEdit aEdArg1; 70 RefButton aRefBtn1; 71 72 ImageButton aBtnFx2; 73 FixedText aFtArg2; 74 ArgEdit aEdArg2; 75 RefButton aRefBtn2; 76 77 ImageButton aBtnFx3; 78 FixedText aFtArg3; 79 ArgEdit aEdArg3; 80 RefButton aRefBtn3; 81 82 ImageButton aBtnFx4; 83 FixedText aFtArg4; 84 ArgEdit aEdArg4; 85 RefButton aRefBtn4; 86 87 ScrollBar aSlider; 88 String m_sOptional; 89 String m_sRequired; 90 sal_Bool bRefMode; 91 92 sal_uInt16 nEdFocus; 93 sal_uInt16 nActiveLine; 94 95 ArgInput aArgInput[4]; 96 String aDefaultString; 97 ::std::vector<String> 98 aParaArray; 99 100 DECL_LINK( ScrollHdl, ScrollBar* ); 101 DECL_LINK( ModifyHdl, ArgInput* ); 102 DECL_LINK( GetEdFocusHdl, ArgInput* ); 103 DECL_LINK( GetFxFocusHdl, ArgInput* ); 104 DECL_LINK( GetFxHdl, ArgInput* ); 105 106 protected: 107 108 virtual void SliderMoved(); 109 virtual void ArgumentModified(); 110 virtual void FxClick(); 111 112 void InitArgInput( sal_uInt16 nPos, FixedText& rFtArg, ImageButton& rBtnFx, 113 ArgEdit& rEdArg, RefButton& rRefBtn); 114 115 void DelParaArray(); 116 void SetArgumentDesc(const String& aText); 117 void SetArgumentText(const String& aText); 118 119 120 void SetArgName (sal_uInt16 no,const String &aArg); 121 void SetArgNameFont (sal_uInt16 no,const Font&); 122 void SetArgVal (sal_uInt16 no,const String &aArg); 123 124 void HideParaLine(sal_uInt16 no); 125 void ShowParaLine(sal_uInt16 no); 126 void UpdateArgDesc( sal_uInt16 nArg ); 127 void UpdateArgInput( sal_uInt16 nOffset, sal_uInt16 i ); 128 129 public: 130 ParaWin(Window* pParent,IControlReferenceHandler* _pDlg,Point aPos); 131 ~ParaWin(); 132 133 void SetFunctionDesc(const IFunctionDescription* pFDesc); 134 void SetArgumentOffset(sal_uInt16 nOffset); 135 void SetEditDesc(const String& aText); 136 void UpdateParas(); 137 void ClearAll(); 138 IsRefMode()139 sal_Bool IsRefMode() {return bRefMode;} SetRefMode(sal_Bool bFlag)140 void SetRefMode(sal_Bool bFlag) {bRefMode=bFlag;} 141 142 sal_uInt16 GetActiveLine(); 143 void SetActiveLine(sal_uInt16 no); 144 RefEdit* GetActiveEdit(); 145 String GetActiveArgName(); 146 147 String GetArgument(sal_uInt16 no); 148 void SetArgument(sal_uInt16 no, const String& aString); 149 void SetArgumentFonts(const Font&aBoldFont,const Font&aLightFont); 150 151 void SetEdFocus(sal_uInt16 nEditLine); //Sichtbare Editzeilen 152 sal_uInt16 GetSliderPos(); 153 void SetSliderPos(sal_uInt16 nSliderPos); 154 SetScrollHdl(const Link & rLink)155 void SetScrollHdl( const Link& rLink ) { aScrollLink = rLink; } GetScrollHdl() const156 const Link& GetScrollHdl() const { return aScrollLink; } 157 SetArgModifiedHdl(const Link & rLink)158 void SetArgModifiedHdl( const Link& rLink ) { aArgModifiedLink = rLink; } GetArgModifiedHdl() const159 const Link& GetArgModifiedHdl() const { return aArgModifiedLink; } 160 SetFxHdl(const Link & rLink)161 void SetFxHdl( const Link& rLink ) { aFxLink = rLink; } GetFxHdl() const162 const Link& GetFxHdl() const { return aFxLink; } 163 }; 164 165 166 167 } // formula 168 169 #endif // FORMULA_PARAWIN_HXX 170 171