xref: /aoo42x/main/svtools/source/inc/property.hxx (revision 01aa44aa)
1*01aa44aaSAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*01aa44aaSAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*01aa44aaSAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*01aa44aaSAndrew Rist  * distributed with this work for additional information
6*01aa44aaSAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*01aa44aaSAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*01aa44aaSAndrew Rist  * "License"); you may not use this file except in compliance
9*01aa44aaSAndrew Rist  * with the License.  You may obtain a copy of the License at
10*01aa44aaSAndrew Rist  *
11*01aa44aaSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12*01aa44aaSAndrew Rist  *
13*01aa44aaSAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*01aa44aaSAndrew Rist  * software distributed under the License is distributed on an
15*01aa44aaSAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*01aa44aaSAndrew Rist  * KIND, either express or implied.  See the License for the
17*01aa44aaSAndrew Rist  * specific language governing permissions and limitations
18*01aa44aaSAndrew Rist  * under the License.
19*01aa44aaSAndrew Rist  *
20*01aa44aaSAndrew Rist  *************************************************************/
21*01aa44aaSAndrew Rist 
22*01aa44aaSAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir #ifndef SV_PROPERTY_HXX
25cdf0e10cSrcweir #define SV_PROPERTY_HXX
26cdf0e10cSrcweir 
27cdf0e10cSrcweir #ifndef _VIRDEV_HXX //autogen
28cdf0e10cSrcweir #include <vcl/virdev.hxx>
29cdf0e10cSrcweir #endif
30cdf0e10cSrcweir #ifndef SV_FIXED_HXX
31cdf0e10cSrcweir #include <vcl/fixed.hxx>
32cdf0e10cSrcweir #endif
33cdf0e10cSrcweir #ifndef SV_LSTBOX_HXX
34cdf0e10cSrcweir #include <vcl/lstbox.hxx>
35cdf0e10cSrcweir #endif
36cdf0e10cSrcweir #ifndef SV_GROUP_HXX
37cdf0e10cSrcweir #include <vcl/group.hxx>
38cdf0e10cSrcweir #endif
39cdf0e10cSrcweir #ifndef SV_BUTTON_HXX
40cdf0e10cSrcweir #include <vcl/button.hxx>
41cdf0e10cSrcweir #endif
42cdf0e10cSrcweir #ifndef SV_MOREBTN_HXX
43cdf0e10cSrcweir #include <vcl/morebtn.hxx>
44cdf0e10cSrcweir #endif
45cdf0e10cSrcweir #ifndef _DIALOG_HXX //autogen
46cdf0e10cSrcweir #include <vcl/dialog.hxx>
47cdf0e10cSrcweir #endif
48cdf0e10cSrcweir #include <vcl/combobox.hxx>
49cdf0e10cSrcweir #include <vcl/field.hxx>
50cdf0e10cSrcweir #include <svl/svarray.hxx>
51cdf0e10cSrcweir 
52cdf0e10cSrcweir #define _SVSTDARR_USHORTS
53cdf0e10cSrcweir #include <svl/svstdarr.hxx>
54cdf0e10cSrcweir #include <vcl/virdev.hxx>
55cdf0e10cSrcweir #include <vcl/scrbar.hxx>
56cdf0e10cSrcweir #include <svl/svarray.hxx>
57cdf0e10cSrcweir 
58cdf0e10cSrcweir #ifndef	_SVSTDARR_STRINGS
59cdf0e10cSrcweir #define _SVSTDARR_STRINGS
60cdf0e10cSrcweir #include <svl/svstdarr.hxx>
61cdf0e10cSrcweir #endif
62cdf0e10cSrcweir #include <vcl/tabpage.hxx>
63cdf0e10cSrcweir #include <vcl/tabctrl.hxx>
64cdf0e10cSrcweir 
65cdf0e10cSrcweir //------------------------------------------------------------------------
66cdf0e10cSrcweir 
67cdf0e10cSrcweir //========================================================================
68cdf0e10cSrcweir enum eKindOfControl { KOC_UNDEFINED=0,KOC_LISTBOX=1, KOC_COMBOBOX=2,
69cdf0e10cSrcweir 						KOC_EDIT=3,KOC_USERDEFINED=5};
70cdf0e10cSrcweir 
71cdf0e10cSrcweir class SvXPropertyCtrListener;
72cdf0e10cSrcweir 
73cdf0e10cSrcweir class SvXPropertyControl : public Control
74cdf0e10cSrcweir {
75cdf0e10cSrcweir public:
76cdf0e10cSrcweir 										SvXPropertyControl( Window* pParent, WinBits nWinStyle = 0 );
77cdf0e10cSrcweir 										SvXPropertyControl( Window* pParent, const ResId& rResId );
78cdf0e10cSrcweir 
79cdf0e10cSrcweir 		virtual void					SetSvXPropertyCtrListener(SvXPropertyCtrListener*)=0;
80cdf0e10cSrcweir 
81cdf0e10cSrcweir 		virtual SvXPropertyCtrListener*	GetSvXPropertyCtrListener()=0;
82cdf0e10cSrcweir 		virtual void					SetProperty(const String &rString)=0;
83cdf0e10cSrcweir 		virtual String					GetProperty()const=0;
84cdf0e10cSrcweir 		virtual sal_Bool					HasList()=0;
85cdf0e10cSrcweir 		virtual void					ClearList()=0;
86cdf0e10cSrcweir 		virtual	void					InsertEntry( const String& rString,
87cdf0e10cSrcweir 												sal_uInt16 nPos = LISTBOX_APPEND )=0;
88cdf0e10cSrcweir 
89cdf0e10cSrcweir 		virtual void					SetCtrSize(const Size& rSize)=0;
90cdf0e10cSrcweir 		virtual void					SetLocked(sal_Bool bLocked=sal_True)=0;
91cdf0e10cSrcweir 
92cdf0e10cSrcweir 		virtual void					SetMyName(const String &rString)=0;
93cdf0e10cSrcweir 		virtual String					GetMyName()const=0;
94cdf0e10cSrcweir 
95cdf0e10cSrcweir 		virtual void					SetMyData(void*)=0;
96cdf0e10cSrcweir 		virtual void*					GetMyData()=0;
97cdf0e10cSrcweir };
98cdf0e10cSrcweir 
99cdf0e10cSrcweir class SvXPropertyCtrListener
100cdf0e10cSrcweir {
101cdf0e10cSrcweir 
102cdf0e10cSrcweir public:
103cdf0e10cSrcweir 		virtual void					Modified (SvXPropertyControl *pSvXPCtr)=0;
104cdf0e10cSrcweir 		virtual void					GetFocus (SvXPropertyControl *pSvXPCtr)=0;
105cdf0e10cSrcweir 		virtual void					LoseFocus(SvXPropertyControl *pSvXPCtr)=0;
106cdf0e10cSrcweir 		virtual void					KeyInput (SvXPropertyControl *pSvXPCtr ,const KeyCode&)=0;
107cdf0e10cSrcweir };
108cdf0e10cSrcweir 
109cdf0e10cSrcweir 
110cdf0e10cSrcweir class SvXPropertyEdit : public SvXPropertyControl
111cdf0e10cSrcweir {
112cdf0e10cSrcweir private:
113cdf0e10cSrcweir 
114cdf0e10cSrcweir 		String							aName;
115cdf0e10cSrcweir 		SvXPropertyCtrListener*			pListener;
116cdf0e10cSrcweir 		Edit							aEdit;
117cdf0e10cSrcweir 		void*							pData;
118cdf0e10cSrcweir 
119cdf0e10cSrcweir 		DECL_LINK(ModifiedHdl,Edit*);
120cdf0e10cSrcweir 		DECL_LINK(GetFocusHdl,Edit*);
121cdf0e10cSrcweir 		DECL_LINK(LoseFocusHdl,Edit*);
122cdf0e10cSrcweir 
123cdf0e10cSrcweir public:
124cdf0e10cSrcweir 										SvXPropertyEdit( Window* pParent, WinBits nWinStyle = 0 );
125cdf0e10cSrcweir 										SvXPropertyEdit( Window* pParent, const ResId& rResId );
126cdf0e10cSrcweir 
127cdf0e10cSrcweir 		virtual void					SetSvXPropertyCtrListener(SvXPropertyCtrListener*);
128cdf0e10cSrcweir 
129cdf0e10cSrcweir 		virtual SvXPropertyCtrListener*	GetSvXPropertyCtrListener();
130cdf0e10cSrcweir 
131cdf0e10cSrcweir 		virtual void					SetProperty(const String &rString);
132cdf0e10cSrcweir 		virtual String					GetProperty()const;
133cdf0e10cSrcweir 
134cdf0e10cSrcweir 		virtual sal_Bool					HasList();
135cdf0e10cSrcweir 		virtual void					ClearList();
136cdf0e10cSrcweir 		virtual	void					InsertEntry( const String& rString,
137cdf0e10cSrcweir 												sal_uInt16 nPos = LISTBOX_APPEND );
138cdf0e10cSrcweir 
139cdf0e10cSrcweir 		virtual void					SetCtrSize(const Size& rSize);
140cdf0e10cSrcweir 		virtual void					SetLocked(sal_Bool bLocked=sal_True);
141cdf0e10cSrcweir 
142cdf0e10cSrcweir 		virtual void					SetMyName(const String &rString);
143cdf0e10cSrcweir 		virtual String					GetMyName()const;
144cdf0e10cSrcweir 
145cdf0e10cSrcweir 		virtual void					SetMyData(void*);
146cdf0e10cSrcweir 		virtual void*					GetMyData();
147cdf0e10cSrcweir };
148cdf0e10cSrcweir 
149cdf0e10cSrcweir 
150cdf0e10cSrcweir class SvXPropertyListBox : public SvXPropertyControl
151cdf0e10cSrcweir {
152cdf0e10cSrcweir private:
153cdf0e10cSrcweir 
154cdf0e10cSrcweir 		String							aName;
155cdf0e10cSrcweir 		SvXPropertyCtrListener*			pListener;
156cdf0e10cSrcweir 		ListBox							aListBox;
157cdf0e10cSrcweir 		void*							pData;
158cdf0e10cSrcweir 
159cdf0e10cSrcweir 		DECL_LINK(ModifiedHdl,ListBox*);
160cdf0e10cSrcweir 		DECL_LINK(GetFocusHdl,ListBox*);
161cdf0e10cSrcweir 		DECL_LINK(LoseFocusHdl,ListBox*);
162cdf0e10cSrcweir 
163cdf0e10cSrcweir 
164cdf0e10cSrcweir public:
165cdf0e10cSrcweir 										SvXPropertyListBox( Window* pParent, WinBits nWinStyle = 0 );
166cdf0e10cSrcweir 										SvXPropertyListBox( Window* pParent, const ResId& rResId );
167cdf0e10cSrcweir 
168cdf0e10cSrcweir 		virtual void					SetSvXPropertyCtrListener(SvXPropertyCtrListener*);
169cdf0e10cSrcweir 
170cdf0e10cSrcweir 		virtual SvXPropertyCtrListener*	GetSvXPropertyCtrListener();
171cdf0e10cSrcweir 
172cdf0e10cSrcweir 		ListBox*						GetListBox();
173cdf0e10cSrcweir 
174cdf0e10cSrcweir 		virtual void					SetProperty(const String &rString);
175cdf0e10cSrcweir 		virtual String					GetProperty()const;
176cdf0e10cSrcweir 
177cdf0e10cSrcweir 		virtual sal_Bool					HasList();
178cdf0e10cSrcweir 		virtual void					ClearList();
179cdf0e10cSrcweir 		virtual	void					InsertEntry( const String& rString,
180cdf0e10cSrcweir 												sal_uInt16 nPos = LISTBOX_APPEND );
181cdf0e10cSrcweir 
182cdf0e10cSrcweir 		virtual void					SetCtrSize(const Size& rSize);
183cdf0e10cSrcweir 		virtual void					SetLocked(sal_Bool bLocked=sal_True);
184cdf0e10cSrcweir 
185cdf0e10cSrcweir 		virtual void					SetMyName(const String &rString);
186cdf0e10cSrcweir 		virtual String					GetMyName()const;
187cdf0e10cSrcweir 
188cdf0e10cSrcweir 		virtual void					SetMyData(void*);
189cdf0e10cSrcweir 		virtual void*					GetMyData();
190cdf0e10cSrcweir };
191cdf0e10cSrcweir 
192cdf0e10cSrcweir class SvXPropertyComboBox : public SvXPropertyControl
193cdf0e10cSrcweir {
194cdf0e10cSrcweir private:
195cdf0e10cSrcweir 
196cdf0e10cSrcweir 		String							aName;
197cdf0e10cSrcweir 		SvXPropertyCtrListener*			pListener;
198cdf0e10cSrcweir 		ComboBox						aComboBox;
199cdf0e10cSrcweir 		void*							pData;
200cdf0e10cSrcweir 
201cdf0e10cSrcweir 		DECL_LINK(ModifiedHdl,ComboBox*);
202cdf0e10cSrcweir 		DECL_LINK(GetFocusHdl,ComboBox*);
203cdf0e10cSrcweir 		DECL_LINK(LoseFocusHdl,ComboBox*);
204cdf0e10cSrcweir 
205cdf0e10cSrcweir 
206cdf0e10cSrcweir public:
207cdf0e10cSrcweir 										SvXPropertyComboBox( Window* pParent, WinBits nWinStyle = 0 );
208cdf0e10cSrcweir 										SvXPropertyComboBox( Window* pParent, const ResId& rResId );
209cdf0e10cSrcweir 
210cdf0e10cSrcweir 		virtual void					SetSvXPropertyCtrListener(SvXPropertyCtrListener*);
211cdf0e10cSrcweir 
212cdf0e10cSrcweir 		virtual SvXPropertyCtrListener*	GetSvXPropertyCtrListener();
213cdf0e10cSrcweir 
214cdf0e10cSrcweir 		ComboBox*						GetComboBox();
215cdf0e10cSrcweir 
216cdf0e10cSrcweir 		virtual void					SetProperty(const String &rString);
217cdf0e10cSrcweir 		virtual String					GetProperty()const;
218cdf0e10cSrcweir 
219cdf0e10cSrcweir 		virtual sal_Bool					HasList();
220cdf0e10cSrcweir 		virtual void					ClearList();
221cdf0e10cSrcweir 		virtual	void					InsertEntry( const String& rString,
222cdf0e10cSrcweir 												sal_uInt16 nPos = LISTBOX_APPEND );
223cdf0e10cSrcweir 
224cdf0e10cSrcweir 		virtual void					SetCtrSize(const Size& rSize);
225cdf0e10cSrcweir 		virtual void					SetLocked(sal_Bool bLocked=sal_True);
226cdf0e10cSrcweir 
227cdf0e10cSrcweir 		virtual void					SetMyName(const String &rString);
228cdf0e10cSrcweir 		virtual String					GetMyName()const;
229cdf0e10cSrcweir 
230cdf0e10cSrcweir 		virtual void					SetMyData(void*);
231cdf0e10cSrcweir 		virtual void*					GetMyData();
232cdf0e10cSrcweir };
233cdf0e10cSrcweir 
234cdf0e10cSrcweir 
235cdf0e10cSrcweir 
236cdf0e10cSrcweir class SvPropertyLine : public Control
237cdf0e10cSrcweir {
238cdf0e10cSrcweir private:
239cdf0e10cSrcweir 			FixedText			aName;
240cdf0e10cSrcweir 			sal_uInt16				nNameWidth;
241cdf0e10cSrcweir 			sal_Bool				bNeedsRepaint;
242cdf0e10cSrcweir 			SvXPropertyControl*	pSvXPropertyControl;
243cdf0e10cSrcweir 
244cdf0e10cSrcweir 			PushButton			aXButton;
245cdf0e10cSrcweir 			sal_Bool				bIsLocked;
246cdf0e10cSrcweir 			sal_Bool				bHasXButton;
247cdf0e10cSrcweir 			sal_Bool				bIsHyperlink;
248cdf0e10cSrcweir 			eKindOfControl		eKindOfCtr;
249cdf0e10cSrcweir 
250cdf0e10cSrcweir protected:
251cdf0e10cSrcweir 			virtual void		Resize();
252cdf0e10cSrcweir 
253cdf0e10cSrcweir public:
254cdf0e10cSrcweir 			SvPropertyLine( Window* pParent,
255cdf0e10cSrcweir 							WinBits nWinStyle = 0 );
256cdf0e10cSrcweir 			SvPropertyLine( Window* pParent,
257cdf0e10cSrcweir 							const ResId& rResId );
258cdf0e10cSrcweir 
259cdf0e10cSrcweir 			sal_Bool				NeedsRepaint();
260cdf0e10cSrcweir 			void				SetNeedsRepaint(sal_Bool bFlag);
261cdf0e10cSrcweir 			void				SetSvXPropertyControl(SvXPropertyControl*);
262cdf0e10cSrcweir 			SvXPropertyControl*	GetSvXPropertyControl();
263cdf0e10cSrcweir 
264cdf0e10cSrcweir 			void				SetKindOfControl(eKindOfControl);
265cdf0e10cSrcweir 			eKindOfControl		GetKindOfControl();
266cdf0e10cSrcweir 
267cdf0e10cSrcweir 			void				SetName(const String& rString );
268cdf0e10cSrcweir 			String				GetName() const;
269cdf0e10cSrcweir 			void				SetNameWidth(sal_uInt16);
270cdf0e10cSrcweir 
271cdf0e10cSrcweir 			void				ShowXButton();
272cdf0e10cSrcweir 			void				HideXButton();
273cdf0e10cSrcweir 			sal_Bool				IsVisibleXButton();
274cdf0e10cSrcweir 			void				ShowAsHyperLink(sal_Bool nFlag=sal_True);
275cdf0e10cSrcweir 			sal_Bool				IsShownAsHyperlink();
276cdf0e10cSrcweir 
277cdf0e10cSrcweir 			void				Locked(sal_Bool nFlag=sal_True);
278cdf0e10cSrcweir 			sal_Bool				IsLineLocked();
279cdf0e10cSrcweir 
280cdf0e10cSrcweir 			void				SetClickHdl(const Link&);
281cdf0e10cSrcweir 
282cdf0e10cSrcweir };
283cdf0e10cSrcweir 
284cdf0e10cSrcweir 
285cdf0e10cSrcweir class SvPropertyData
286cdf0e10cSrcweir {
287cdf0e10cSrcweir public:
288cdf0e10cSrcweir 		eKindOfControl			eKind;
289cdf0e10cSrcweir 		String					aName;
290cdf0e10cSrcweir 		String					aValue;
291cdf0e10cSrcweir 		SvStrings				theValues; // ???
292cdf0e10cSrcweir 
293cdf0e10cSrcweir 		sal_Bool					bHasVisibleXButton;
294cdf0e10cSrcweir 		sal_Bool					bIsHyperLink;
295cdf0e10cSrcweir 		sal_Bool					bIsLocked;
296cdf0e10cSrcweir 		void*					pDataPtr;
297cdf0e10cSrcweir 		SvXPropertyControl*		pControl;
298cdf0e10cSrcweir };
299cdf0e10cSrcweir 
300cdf0e10cSrcweir class SvPropertyDataObjectControl
301cdf0e10cSrcweir {
302cdf0e10cSrcweir };
303cdf0e10cSrcweir 
304cdf0e10cSrcweir class SvPropertyDataControl
305cdf0e10cSrcweir {
306cdf0e10cSrcweir public:
307cdf0e10cSrcweir 		virtual void					Modified(	const String& aName,
308cdf0e10cSrcweir 													const String& aVal,
309cdf0e10cSrcweir 													void* pData)=0;
310cdf0e10cSrcweir 
311cdf0e10cSrcweir 		virtual void					Clicked(	const String& aName,
312cdf0e10cSrcweir 													const String& aVal,
313cdf0e10cSrcweir 													void* pData)=0;
314cdf0e10cSrcweir 
315cdf0e10cSrcweir 		virtual void					Commit(		const String& aName,
316cdf0e10cSrcweir 													const String& aVal,
317cdf0e10cSrcweir 													void* pData)=0;
318cdf0e10cSrcweir 
319cdf0e10cSrcweir 		virtual void					Select(		const String& aName,
320cdf0e10cSrcweir 													void* pData)=0;
321cdf0e10cSrcweir 
322cdf0e10cSrcweir 		virtual void					LinkClicked(const String& aName,
323cdf0e10cSrcweir 													void* pData)=0;
324cdf0e10cSrcweir };
325cdf0e10cSrcweir 
326cdf0e10cSrcweir class SvXPropEvListener: public SvXPropertyCtrListener
327cdf0e10cSrcweir {
328cdf0e10cSrcweir 		Link							aModifyLink;
329cdf0e10cSrcweir 		Link							aGetFocusLink;
330cdf0e10cSrcweir 		Link							aLoseFocusLink;
331cdf0e10cSrcweir 		Link							aKeyInputLink;
332cdf0e10cSrcweir 		String							aModifiedResult;
333cdf0e10cSrcweir 
334cdf0e10cSrcweir 		SvXPropertyControl *			pTheActiveControl;
335cdf0e10cSrcweir 		KeyCode							aKeyCode;
336cdf0e10cSrcweir 
337cdf0e10cSrcweir public:
338cdf0e10cSrcweir 										SvXPropEvListener();
339cdf0e10cSrcweir         virtual                        ~SvXPropEvListener();
340cdf0e10cSrcweir 
341cdf0e10cSrcweir 		virtual void					Modified (SvXPropertyControl *pSvXPCtr);
342cdf0e10cSrcweir 		virtual void					GetFocus (SvXPropertyControl *pSvXPCtr);
343cdf0e10cSrcweir 		virtual void					LoseFocus(SvXPropertyControl *pSvXPCtr);
344cdf0e10cSrcweir 		virtual void					KeyInput(SvXPropertyControl *pSvXPCtr ,const KeyCode&);
345cdf0e10cSrcweir 
346cdf0e10cSrcweir 		SvXPropertyControl *				GetPropertyControl();
347cdf0e10cSrcweir 		KeyCode							GetKeyCode() const;
348cdf0e10cSrcweir 
SetModifyHdl(const Link & rLink)349cdf0e10cSrcweir 		void							SetModifyHdl( const Link& rLink ) { aModifyLink = rLink; }
GetModifyHdl() const350cdf0e10cSrcweir 		const Link&						GetModifyHdl() const { return aModifyLink; }
351cdf0e10cSrcweir 
SetGetFocusHdl(const Link & rLink)352cdf0e10cSrcweir 		void							SetGetFocusHdl( const Link& rLink ) { aGetFocusLink = rLink; }
GetGetFocusHdl() const353cdf0e10cSrcweir 		const Link&						GetGetFocusHdl() const { return aGetFocusLink; }
354cdf0e10cSrcweir 
SetLoseFocusHdl(const Link & rLink)355cdf0e10cSrcweir 		void							SetLoseFocusHdl( const Link& rLink ) { aLoseFocusLink = rLink; }
GetLoseFocusHdl() const356cdf0e10cSrcweir 		const Link&						GetLoseFocusHdl() const { return aLoseFocusLink; }
357cdf0e10cSrcweir 
SetKeyInputHdl(const Link & rLink)358cdf0e10cSrcweir 		void							SetKeyInputHdl( const Link& rLink ) { aKeyInputLink = rLink; }
GetKeyInputHdl() const359cdf0e10cSrcweir 		const Link&						GetKeyInputHdl() const { return aKeyInputLink; }
360cdf0e10cSrcweir 
361cdf0e10cSrcweir 
362cdf0e10cSrcweir };
363cdf0e10cSrcweir 
364cdf0e10cSrcweir typedef SvPropertyLine * SvPropertyLinePtr;
365cdf0e10cSrcweir 
366cdf0e10cSrcweir SV_DECL_PTRARR(SvPropLineArray,SvPropertyLinePtr,1,1)
367cdf0e10cSrcweir 
368cdf0e10cSrcweir class SvListBoxForProperties: public Control
369cdf0e10cSrcweir {
370cdf0e10cSrcweir private:
371cdf0e10cSrcweir 
372cdf0e10cSrcweir 			SvXPropEvListener		aListener;
373cdf0e10cSrcweir 			Window					aPlayGround;
374cdf0e10cSrcweir 			ScrollBar				aVScroll;
375cdf0e10cSrcweir 			SvPropLineArray			PLineArray;
376cdf0e10cSrcweir 			SvPropertyDataControl*	pPropDataControl;
377cdf0e10cSrcweir 			sal_uInt16					nRowHeight;
378cdf0e10cSrcweir 			sal_Bool					bUpdate;
379cdf0e10cSrcweir 			sal_uInt16					nTheNameSize;
380cdf0e10cSrcweir 			long					nYOffset;
381cdf0e10cSrcweir 
382cdf0e10cSrcweir 			DECL_LINK(   ScrollHdl,ScrollBar*);
383cdf0e10cSrcweir 			DECL_LINK(	 ClickHdl ,PushButton*);
384cdf0e10cSrcweir 
385cdf0e10cSrcweir 			DECL_LINK(   ModifyHdl,SvXPropEvListener*);
386cdf0e10cSrcweir 			DECL_LINK( GetFocusHdl,SvXPropEvListener*);
387cdf0e10cSrcweir 			DECL_LINK(LoseFocusHdl,SvXPropEvListener*);
388cdf0e10cSrcweir 			DECL_LINK( KeyInputHdl,SvXPropEvListener*);
389cdf0e10cSrcweir 
390cdf0e10cSrcweir protected:
391cdf0e10cSrcweir 			void					UpdateAll();
392cdf0e10cSrcweir 			void					UpdatePosNSize();
393cdf0e10cSrcweir 			void					UpdatePlayGround();
394cdf0e10cSrcweir 			void					UpdateVScroll();
395cdf0e10cSrcweir 
396cdf0e10cSrcweir 			void					Resize();
397cdf0e10cSrcweir 
398cdf0e10cSrcweir public:
399cdf0e10cSrcweir 									SvListBoxForProperties( Window* pParent, WinBits nWinStyle = 0 );
400cdf0e10cSrcweir 									SvListBoxForProperties( Window* pParent, const ResId& rResId );
401cdf0e10cSrcweir 
402cdf0e10cSrcweir 									~SvListBoxForProperties();
403cdf0e10cSrcweir 
404cdf0e10cSrcweir 			virtual sal_uInt16			CalcVisibleLines();
405cdf0e10cSrcweir 			virtual void			EnableUpdate();
406cdf0e10cSrcweir 			virtual void			DisableUpdate();
407cdf0e10cSrcweir 
408cdf0e10cSrcweir 			virtual void			SetController(SvPropertyDataControl *);
409cdf0e10cSrcweir 
410cdf0e10cSrcweir 			virtual void			Clear();
411cdf0e10cSrcweir 
412cdf0e10cSrcweir 			virtual sal_uInt16 			InsertEntry( const SvPropertyData&, sal_uInt16 nPos = LISTBOX_APPEND );
413cdf0e10cSrcweir 
414cdf0e10cSrcweir 			virtual void			ChangeEntry( const SvPropertyData&, sal_uInt16 nPos);
415cdf0e10cSrcweir 
416cdf0e10cSrcweir 			virtual sal_uInt16 			AppendEntry( const SvPropertyData&);
417cdf0e10cSrcweir 
418cdf0e10cSrcweir 			virtual void			SetPropertyValue( const String & rEntryName, const String & rValue );
419cdf0e10cSrcweir 
420cdf0e10cSrcweir 			virtual void			SetFirstVisibleEntry(sal_uInt16 nPos);
421cdf0e10cSrcweir 			virtual sal_uInt16			GetFirstVisibleEntry();
422cdf0e10cSrcweir 
423cdf0e10cSrcweir 			virtual void			SetSelectedEntry(sal_uInt16 nPos);
424cdf0e10cSrcweir 			virtual sal_uInt16			GetSelectedEntry();
425cdf0e10cSrcweir };
426cdf0e10cSrcweir 
427cdf0e10cSrcweir class SvTabPageForProperties: public TabPage
428cdf0e10cSrcweir {
429cdf0e10cSrcweir 
430cdf0e10cSrcweir private:
431cdf0e10cSrcweir 
432cdf0e10cSrcweir 			SvListBoxForProperties	aLbProp;
433cdf0e10cSrcweir 
434cdf0e10cSrcweir protected:
435cdf0e10cSrcweir 
436cdf0e10cSrcweir 			virtual void			Resize();
437cdf0e10cSrcweir 
438cdf0e10cSrcweir public:
439cdf0e10cSrcweir 			SvTabPageForProperties(Window* pParent,WinBits nWinStyle = 0 );
440cdf0e10cSrcweir 
441cdf0e10cSrcweir 			SvListBoxForProperties*   GetTheListBox();
442cdf0e10cSrcweir };
443cdf0e10cSrcweir 
444cdf0e10cSrcweir 
445cdf0e10cSrcweir class SvBasicPropertyDataControl: public SvPropertyDataControl
446cdf0e10cSrcweir {
447cdf0e10cSrcweir private:
448cdf0e10cSrcweir 
449cdf0e10cSrcweir 		sal_Bool							bCorrectness;
450cdf0e10cSrcweir 		String							aEntryName;
451cdf0e10cSrcweir 		String							aEntryProperty;
452cdf0e10cSrcweir 		String							aCorrectProperty;
453cdf0e10cSrcweir 		void*							pTheData;
454cdf0e10cSrcweir 		Link							aModifyLink;
455cdf0e10cSrcweir 		Link							aClickedLink;
456cdf0e10cSrcweir 		Link							aCommitLink;
457cdf0e10cSrcweir 		Link							aSelectLink;
458cdf0e10cSrcweir 
459cdf0e10cSrcweir public:
460cdf0e10cSrcweir         virtual ~SvBasicPropertyDataControl();
461cdf0e10cSrcweir 
462cdf0e10cSrcweir 		virtual void					Modified(	const String& aName,
463cdf0e10cSrcweir 													const String& aVal,
464cdf0e10cSrcweir 													void* pData);		//User has modified Property
465cdf0e10cSrcweir 
466cdf0e10cSrcweir 		virtual void					Clicked(	const String& aName,
467cdf0e10cSrcweir 													const String& aVal,
468cdf0e10cSrcweir 													void* pData);		//Xtension-Button pressed
469cdf0e10cSrcweir 
470cdf0e10cSrcweir 		virtual void					Commit(		const String& aName,
471cdf0e10cSrcweir 													const String& aVal,
472cdf0e10cSrcweir 													void* pData);		//User accept changes
473cdf0e10cSrcweir 
474cdf0e10cSrcweir 		virtual void					Select(		const String& aName,
475cdf0e10cSrcweir 													void* pData);		//User select new Row
476cdf0e10cSrcweir 
477cdf0e10cSrcweir 		virtual void					LinkClicked(const String& aName,
478cdf0e10cSrcweir 													void* pData);
479cdf0e10cSrcweir 
480cdf0e10cSrcweir 		virtual void					SetIsCorrect(sal_Bool nFlag);
481cdf0e10cSrcweir 
482cdf0e10cSrcweir 		//virtual String					GetTheCorrectProperty()const;
483cdf0e10cSrcweir 		virtual void					SetTheCorrectProperty(const String& aName);
484cdf0e10cSrcweir 
485cdf0e10cSrcweir 		String							GetName() const; //Tell's the name of the Property
486cdf0e10cSrcweir 		String							GetProperty() const; //Tell's the content of the Property
487cdf0e10cSrcweir 		void*							GetData(); //Tell's the storage
488cdf0e10cSrcweir 
489cdf0e10cSrcweir 
SetModifyHdl(const Link & rLink)490cdf0e10cSrcweir 		void							SetModifyHdl( const Link& rLink ) { aModifyLink = rLink; }
GetModifyHdl() const491cdf0e10cSrcweir 		const Link&						GetModifyHdl() const { return aModifyLink; }
492cdf0e10cSrcweir 
SetClickedHdl(const Link & rLink)493cdf0e10cSrcweir 		void							SetClickedHdl( const Link& rLink ) { aClickedLink = rLink; }
GetClickedHdl() const494cdf0e10cSrcweir 		const Link&						GetClickedHdl() const { return aClickedLink; }
495cdf0e10cSrcweir 
SetCommitHdl(const Link & rLink)496cdf0e10cSrcweir 		void							SetCommitHdl( const Link& rLink ) { aCommitLink = rLink; }
GetCommitHdl() const497cdf0e10cSrcweir 		const Link&						GetCommitHdl() const { return aCommitLink; }
498cdf0e10cSrcweir 
SetSelectHdl(const Link & rLink)499cdf0e10cSrcweir 		void							SetSelectHdl( const Link& rLink ) { aSelectLink = rLink; }
GetSelectHdl() const500cdf0e10cSrcweir 		const Link&						GetSelectHdl() const { return aSelectLink; }
501cdf0e10cSrcweir 
502cdf0e10cSrcweir };
503cdf0e10cSrcweir 
504cdf0e10cSrcweir 
505cdf0e10cSrcweir class SvPropertyBox: public Control
506cdf0e10cSrcweir {
507cdf0e10cSrcweir private:
508cdf0e10cSrcweir 			SvPropertyDataControl*		pThePropDataCtr;
509cdf0e10cSrcweir 			TabControl					aTabControl;
510cdf0e10cSrcweir 
511cdf0e10cSrcweir protected:
512cdf0e10cSrcweir 			virtual void				Resize();
513cdf0e10cSrcweir 
514cdf0e10cSrcweir public:
515cdf0e10cSrcweir 										SvPropertyBox	( Window* pParent, WinBits nWinStyle = 0 );
516cdf0e10cSrcweir 										SvPropertyBox	( Window* pParent, const ResId& rResId );
517cdf0e10cSrcweir 
518cdf0e10cSrcweir 										~SvPropertyBox();
519cdf0e10cSrcweir 
520cdf0e10cSrcweir 			virtual sal_uInt16				CalcVisibleLines();
521cdf0e10cSrcweir 			virtual void				EnableUpdate();		// auch IDL?
522cdf0e10cSrcweir 			virtual void				DisableUpdate();	// auch IDL?
523cdf0e10cSrcweir 
524cdf0e10cSrcweir 			// AB: Hier beginnt das 'offizielle' Interface, das in IDL uebernommen werden soll
525cdf0e10cSrcweir 			virtual void				SetController(SvPropertyDataControl *);
526cdf0e10cSrcweir 
527cdf0e10cSrcweir 			virtual sal_uInt16 				AppendPage( const String & r );
528cdf0e10cSrcweir 			virtual void				SetPage( sal_uInt16 );
529cdf0e10cSrcweir 			virtual sal_uInt16 				GetCurPage();
530cdf0e10cSrcweir 			virtual void				ClearAll();
531cdf0e10cSrcweir 			virtual void				ClearTable();
532cdf0e10cSrcweir 
533cdf0e10cSrcweir 			virtual void				SetPropertyValue( const String & rEntryName, const String & rValue );
534cdf0e10cSrcweir 
535cdf0e10cSrcweir 			virtual sal_uInt16 				InsertEntry( const SvPropertyData&, sal_uInt16 nPos = LISTBOX_APPEND );
536cdf0e10cSrcweir 			virtual void				ChangeEntry( const SvPropertyData&, sal_uInt16 nPos);
537cdf0e10cSrcweir 			virtual sal_uInt16 				AppendEntry( const SvPropertyData&);
538cdf0e10cSrcweir 
539cdf0e10cSrcweir 			virtual void				SetFirstVisibleEntry(sal_uInt16 nPos);
540cdf0e10cSrcweir 			virtual sal_uInt16				GetFirstVisibleEntry();
541cdf0e10cSrcweir 
542cdf0e10cSrcweir 			virtual void				SetSelectedEntry(sal_uInt16 nPos);
543cdf0e10cSrcweir 			virtual sal_uInt16				GetSelectedEntry();
544cdf0e10cSrcweir };
545cdf0e10cSrcweir 
546cdf0e10cSrcweir 
547cdf0e10cSrcweir 
548cdf0e10cSrcweir /*
549cdf0e10cSrcweir class ScPropertyDlg : public ModalDialog
550cdf0e10cSrcweir {
551cdf0e10cSrcweir private:
552cdf0e10cSrcweir 			SvBasicPropertyDataControl	aBaProDatCtr;
553cdf0e10cSrcweir 			OKButton					anOk;
554cdf0e10cSrcweir 			CancelButton				aCancel;
555cdf0e10cSrcweir 			sal_uInt16						nCount;
556cdf0e10cSrcweir 			sal_uInt16						nClickCount;
557cdf0e10cSrcweir 
558cdf0e10cSrcweir 			SvPropertyData				aProperty;
559cdf0e10cSrcweir 			SvPropertyBox				aPropListBox;
560cdf0e10cSrcweir 
561cdf0e10cSrcweir 			ListBox						aKindOfListBox;
562cdf0e10cSrcweir 			FixedText					aModAnswer;
563cdf0e10cSrcweir 			FixedText					aClickAnswer;
564cdf0e10cSrcweir 			FixedText					aCommitAnswer;
565cdf0e10cSrcweir 			FixedText					aSelectAnswer;
566cdf0e10cSrcweir 
567cdf0e10cSrcweir 			DECL_LINK( ModifiedHdl, ListBox*);
568cdf0e10cSrcweir 
569cdf0e10cSrcweir 			DECL_LINK( RowModifiedHdl, SvBasicPropertyDataControl*);
570cdf0e10cSrcweir 			DECL_LINK( ClickHdl		 , SvBasicPropertyDataControl*);
571cdf0e10cSrcweir 			DECL_LINK( SelectHdl	 , SvBasicPropertyDataControl*);
572cdf0e10cSrcweir 			DECL_LINK( CommitHdl	 , SvBasicPropertyDataControl*);
573cdf0e10cSrcweir 
574cdf0e10cSrcweir public:
575cdf0e10cSrcweir 			ScPropertyDlg( Window*	pParent);
576cdf0e10cSrcweir 			~ScPropertyDlg();
577cdf0e10cSrcweir };
578cdf0e10cSrcweir */
579cdf0e10cSrcweir #endif // SC_AUTOFMT_HXX
580cdf0e10cSrcweir 
581cdf0e10cSrcweir 
582