xref: /aoo4110/main/formula/source/ui/dlg/parawin.hxx (revision b1cdbd2c)
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