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 _UNOCONTROLS_BASECONTROL_CTRL_HXX
25 #define _UNOCONTROLS_BASECONTROL_CTRL_HXX
26 
27 //____________________________________________________________________________________________________________
28 //	includes of other projects
29 //____________________________________________________________________________________________________________
30 
31 #include <com/sun/star/awt/XKeyListener.hpp>
32 #include <com/sun/star/awt/XPaintListener.hpp>
33 #include <com/sun/star/awt/KeyEvent.hpp>
34 #include <com/sun/star/awt/KeyModifier.hpp>
35 #include <com/sun/star/awt/XMouseMotionListener.hpp>
36 #include <com/sun/star/awt/FocusEvent.hpp>
37 #include <com/sun/star/awt/XWindowListener.hpp>
38 #include <com/sun/star/awt/XActivateListener.hpp>
39 #include <com/sun/star/awt/MouseEvent.hpp>
40 #include <com/sun/star/awt/XTopWindowListener.hpp>
41 #include <com/sun/star/awt/PaintEvent.hpp>
42 #include <com/sun/star/awt/InputEvent.hpp>
43 #include <com/sun/star/awt/KeyGroup.hpp>
44 #include <com/sun/star/awt/Key.hpp>
45 #include <com/sun/star/awt/WindowEvent.hpp>
46 #include <com/sun/star/awt/XMouseListener.hpp>
47 #include <com/sun/star/awt/KeyFunction.hpp>
48 #include <com/sun/star/awt/FocusChangeReason.hpp>
49 #include <com/sun/star/awt/MouseButton.hpp>
50 #include <com/sun/star/awt/XFocusListener.hpp>
51 #include <com/sun/star/awt/XFileDialog.hpp>
52 #include <com/sun/star/awt/XTextComponent.hpp>
53 #include <com/sun/star/awt/XListBox.hpp>
54 #include <com/sun/star/awt/XProgressMonitor.hpp>
55 #include <com/sun/star/awt/TextAlign.hpp>
56 #include <com/sun/star/awt/XScrollBar.hpp>
57 #include <com/sun/star/awt/XVclContainerPeer.hpp>
58 #include <com/sun/star/awt/XTabControllerModel.hpp>
59 #include <com/sun/star/awt/XMessageBox.hpp>
60 #include <com/sun/star/awt/XTextEditField.hpp>
61 #include <com/sun/star/awt/Style.hpp>
62 #include <com/sun/star/awt/XTimeField.hpp>
63 #include <com/sun/star/awt/XVclWindowPeer.hpp>
64 #include <com/sun/star/awt/XControlModel.hpp>
65 #include <com/sun/star/awt/XSpinField.hpp>
66 #include <com/sun/star/awt/XUnoControlContainer.hpp>
67 #include <com/sun/star/awt/XTextLayoutConstrains.hpp>
68 #include <com/sun/star/awt/XNumericField.hpp>
69 #include <com/sun/star/awt/XButton.hpp>
70 #include <com/sun/star/awt/XTextArea.hpp>
71 #include <com/sun/star/awt/XImageButton.hpp>
72 #include <com/sun/star/awt/XFixedText.hpp>
73 #include <com/sun/star/awt/XControlContainer.hpp>
74 #include <com/sun/star/awt/XDialog.hpp>
75 #include <com/sun/star/awt/ScrollBarOrientation.hpp>
76 #include <com/sun/star/awt/XRadioButton.hpp>
77 #include <com/sun/star/awt/XCurrencyField.hpp>
78 #include <com/sun/star/awt/XPatternField.hpp>
79 #include <com/sun/star/awt/VclWindowPeerAttribute.hpp>
80 #include <com/sun/star/awt/XTabController.hpp>
81 #include <com/sun/star/awt/XVclContainer.hpp>
82 #include <com/sun/star/awt/XDateField.hpp>
83 #include <com/sun/star/awt/XComboBox.hpp>
84 #include <com/sun/star/awt/XControl.hpp>
85 #include <com/sun/star/awt/XCheckBox.hpp>
86 #include <com/sun/star/awt/XLayoutConstrains.hpp>
87 #include <com/sun/star/awt/XProgressBar.hpp>
88 #include <com/sun/star/awt/XTopWindow.hpp>
89 #include <com/sun/star/awt/XWindow.hpp>
90 #include <com/sun/star/awt/PosSize.hpp>
91 #include <com/sun/star/awt/XView.hpp>
92 #include <com/sun/star/lang/XServiceInfo.hpp>
93 #include <osl/mutex.hxx>
94 #include <cppuhelper/weak.hxx>
95 #include <cppuhelper/component.hxx>
96 
97 //____________________________________________________________________________________________________________
98 //	includes of my project
99 //____________________________________________________________________________________________________________
100 #include "multiplexer.hxx"
101 
102 //____________________________________________________________________________________________________________
103 //	"namespaces"
104 //____________________________________________________________________________________________________________
105 
106 namespace unocontrols{
107 
108 #define	UNO3_ANY									::com::sun::star::uno::Any
109 #define	UNO3_EVENTOBJECT							::com::sun::star::lang::EventObject
110 #define	UNO3_MUTEX									::osl::Mutex
111 #define	UNO3_OCOMPONENTHELPER						::cppu::OComponentHelper
112 #define	UNO3_OUSTRING								::rtl::OUString
113 #define	UNO3_PAINTEVENT								::com::sun::star::awt::PaintEvent
114 #define	UNO3_RECTANGLE								::com::sun::star::awt::Rectangle
115 #define	UNO3_REFERENCE								::com::sun::star::uno::Reference
116 #define	UNO3_RUNTIMEEXCEPTION						::com::sun::star::uno::RuntimeException
117 #define	UNO3_SEQUENCE								::com::sun::star::uno::Sequence
118 #define	UNO3_SIZE									::com::sun::star::awt::Size
119 #define	UNO3_TYPE									::com::sun::star::uno::Type
120 #define	UNO3_WINDOWDESCRIPTOR						::com::sun::star::awt::WindowDescriptor
121 #define	UNO3_XCONTROL								::com::sun::star::awt::XControl
122 #define	UNO3_XCONTROLMODEL							::com::sun::star::awt::XControlModel
123 #define	UNO3_XEVENTLISTENER							::com::sun::star::lang::XEventListener
124 #define	UNO3_XFOCUSLISTENER							::com::sun::star::awt::XFocusListener
125 #define	UNO3_XGRAPHICS								::com::sun::star::awt::XGraphics
126 #define	UNO3_XKEYLISTENER							::com::sun::star::awt::XKeyListener
127 #define	UNO3_XMOUSELISTENER							::com::sun::star::awt::XMouseListener
128 #define	UNO3_XMOUSEMOTIONLISTENER					::com::sun::star::awt::XMouseMotionListener
129 #define	UNO3_XMULTISERVICEFACTORY					::com::sun::star::lang::XMultiServiceFactory
130 #define	UNO3_XPAINTLISTENER							::com::sun::star::awt::XPaintListener
131 #define	UNO3_XSERVICEINFO							::com::sun::star::lang::XServiceInfo
132 #define	UNO3_XTOOLKIT								::com::sun::star::awt::XToolkit
133 #define	UNO3_XVIEW									::com::sun::star::awt::XView
134 #define	UNO3_XWINDOW								::com::sun::star::awt::XWindow
135 #define	UNO3_XWINDOWLISTENER						::com::sun::star::awt::XWindowListener
136 #define	UNO3_XWINDOWPEER							::com::sun::star::awt::XWindowPeer
137 #define	UNO3_XINTERFACE								::com::sun::star::uno::XInterface
138 
139 //____________________________________________________________________________________________________________
140 //	macros
141 //____________________________________________________________________________________________________________
142 
143 #define TRGB_COLORDATA(TRANSPARENCE,RED,GREEN,BLUE)	\
144 		((sal_Int32)(((sal_uInt32)((sal_uInt8)(BLUE))))|(((sal_uInt32)((sal_uInt8)(GREEN)))<<8)|(((sal_uInt32)((sal_uInt8)(RED)))<<16)|(((sal_uInt32)((sal_uInt8)(TRANSPARENCE)))<<24))
145 
146 //____________________________________________________________________________________________________________
147 //	structs
148 //____________________________________________________________________________________________________________
149 
150 struct IMPL_MutexContainer
151 {
152 	// Is necassery to initialize "BaseControl" and make this class thread-safe.
153 	UNO3_MUTEX m_aMutex ;
154 };
155 
156 //____________________________________________________________________________________________________________
157 //	classes
158 //____________________________________________________________________________________________________________
159 
160 class BaseControl	: public UNO3_XSERVICEINFO
161 					, public UNO3_XPAINTLISTENER
162 					, public UNO3_XWINDOWLISTENER
163 					, public UNO3_XVIEW
164 					, public UNO3_XWINDOW
165 					, public UNO3_XCONTROL
166 					, public IMPL_MutexContainer
167 					, public UNO3_OCOMPONENTHELPER
168 {
169 //____________________________________________________________________________________________________________
170 //	public methods
171 //____________________________________________________________________________________________________________
172 
173 public:
174 
175 	//________________________________________________________________________________________________________
176 	//	construct/destruct
177 	//________________________________________________________________________________________________________
178 
179 	/**_______________________________________________________________________________________________________
180 		@short		-
181 		@descr		-
182 
183 		@seealso	-
184 
185 		@param		-
186 
187 		@return		-
188 
189 		@onerror	-
190 	*/
191 
192 	BaseControl( const UNO3_REFERENCE< UNO3_XMULTISERVICEFACTORY >& xFactory );
193 
194 	/**_______________________________________________________________________________________________________
195 		@short		-
196 		@descr		-
197 
198 		@seealso	-
199 
200 		@param		-
201 
202 		@return		-
203 
204 		@onerror	-
205 	*/
206 
207 	virtual	~BaseControl();
208 
209 	//________________________________________________________________________________________________________
210 	//	XInterface
211 	//________________________________________________________________________________________________________
212 
213 	/**_______________________________________________________________________________________________________
214 		@short		give answer, if interface is supported
215 		@descr		The interfaces are searched by type.
216 
217 		@seealso	XInterface
218 
219 		@param      "rType" is the type of searched interface.
220 
221 		@return		Any		information about found interface
222 
223 		@onerror	A RuntimeException is thrown.
224 	*/
225 
226 	virtual UNO3_ANY SAL_CALL queryInterface( const UNO3_TYPE& aType ) throw( UNO3_RUNTIMEEXCEPTION );
227 
228 	/**_______________________________________________________________________________________________________
229 		@short		increment refcount
230 		@descr		-
231 
232 		@seealso	XInterface
233 		@seealso	release()
234 
235 		@param		-
236 
237 		@return		-
238 
239 		@onerror	A RuntimeException is thrown.
240 	*/
241 
242     virtual void SAL_CALL acquire() throw();
243 
244 	/**_______________________________________________________________________________________________________
245 		@short		decrement refcount
246 		@descr		-
247 
248 		@seealso	XInterface
249 		@seealso	acquire()
250 
251 		@param		-
252 
253 		@return		-
254 
255 		@onerror	A RuntimeException is thrown.
256 	*/
257 
258     virtual void SAL_CALL release() throw();
259 
260 	//________________________________________________________________________________________________________
261 	//	XTypeProvider
262 	//________________________________________________________________________________________________________
263 
264 	/**_______________________________________________________________________________________________________
265 		@short		get information about supported interfaces
266 		@descr      -
267 
268 		@seealso	XTypeProvider
269 
270 		@param      -
271 
272 		@return		Sequence of types of all supported interfaces
273 
274 		@onerror	A RuntimeException is thrown.
275 	*/
276 
277 	virtual UNO3_SEQUENCE< UNO3_TYPE > SAL_CALL getTypes() throw( UNO3_RUNTIMEEXCEPTION );
278 
279 	/**_______________________________________________________________________________________________________
280 		@short		get implementation id
281 		@descr      This ID is neccessary for UNO-caching. If there no ID, cache is disabled.
282 					Another way, cache is enabled.
283 
284 		@seealso	XTypeProvider
285 
286 		@param		-
287 
288 		@return		ID as Sequence of byte
289 
290 		@onerror	A RuntimeException is thrown.
291 	*/
292 
293 	virtual UNO3_SEQUENCE< sal_Int8 > SAL_CALL getImplementationId() throw( UNO3_RUNTIMEEXCEPTION );
294 
295 	//________________________________________________________________________________________________________
296 	//	XAggregation
297 	//________________________________________________________________________________________________________
298 
299 	/**_______________________________________________________________________________________________________
300 		@short		-
301 		@descr		-
302 
303 		@seealso	-
304 
305 		@param		-
306 
307 		@return		-
308 
309 		@onerror	-
310 	*/
311 
312 	virtual void SAL_CALL setDelegator( const UNO3_REFERENCE< UNO3_XINTERFACE >& xDelegator ) throw( UNO3_RUNTIMEEXCEPTION );
313 
314 	/**_______________________________________________________________________________________________________
315 		@short		-
316 		@descr		-
317 
318 		@seealso	-
319 
320 		@param		-
321 
322 		@return		-
323 
324 		@onerror	-
325 	*/
326 
327     virtual UNO3_ANY SAL_CALL queryAggregation( const UNO3_TYPE& aType ) throw( UNO3_RUNTIMEEXCEPTION );
328 
329 	//________________________________________________________________________________________________________
330 	//	XServiceInfo
331 	//________________________________________________________________________________________________________
332 
333 	/**_______________________________________________________________________________________________________
334 		@short		-
335 		@descr		-
336 
337 		@seealso	-
338 
339 		@param		-
340 
341 		@return		-
342 
343 		@onerror	-
344 	*/
345 
346 	virtual sal_Bool SAL_CALL supportsService( const UNO3_OUSTRING& sServiceName ) throw( UNO3_RUNTIMEEXCEPTION );
347 
348 	/**_______________________________________________________________________________________________________
349 		@short		-
350 		@descr		-
351 
352 		@seealso	-
353 
354 		@param		-
355 
356 		@return		-
357 
358 		@onerror	-
359 	*/
360 
361 	virtual UNO3_OUSTRING SAL_CALL getImplementationName() throw( UNO3_RUNTIMEEXCEPTION );
362 
363 	/**_______________________________________________________________________________________________________
364 		@short		-
365 		@descr		-
366 
367 		@seealso	-
368 
369 		@param		-
370 
371 		@return		-
372 
373 		@onerror	-
374 	*/
375 
376 	virtual UNO3_SEQUENCE< UNO3_OUSTRING > SAL_CALL getSupportedServiceNames() throw( UNO3_RUNTIMEEXCEPTION );
377 
378 	//________________________________________________________________________________________________________
379 	//	XComponent
380 	//________________________________________________________________________________________________________
381 
382 	/**_______________________________________________________________________________________________________
383 		@short		-
384 		@descr		-
385 
386 		@seealso	-
387 
388 		@param		-
389 
390 		@return		-
391 
392 		@onerror	-
393 	*/
394 
395 	virtual void SAL_CALL dispose() throw( UNO3_RUNTIMEEXCEPTION );
396 
397 	/**_______________________________________________________________________________________________________
398 		@short		-
399 		@descr		-
400 
401 		@seealso	-
402 
403 		@param		-
404 
405 		@return		-
406 
407 		@onerror	-
408 	*/
409 
410 	virtual void SAL_CALL addEventListener( const UNO3_REFERENCE< UNO3_XEVENTLISTENER >& xListener ) throw( UNO3_RUNTIMEEXCEPTION );
411 
412 	/**_______________________________________________________________________________________________________
413 		@short		-
414 		@descr		-
415 
416 		@seealso	-
417 
418 		@param		-
419 
420 		@return		-
421 
422 		@onerror	-
423 	*/
424 
425 	virtual void SAL_CALL removeEventListener( const UNO3_REFERENCE< UNO3_XEVENTLISTENER >& xListener	) throw( UNO3_RUNTIMEEXCEPTION );
426 
427 	//________________________________________________________________________________________________________
428 	//	XControl
429 	//________________________________________________________________________________________________________
430 
431 	/**_______________________________________________________________________________________________________
432 		@short		-
433 		@descr		-
434 
435 		@seealso	-
436 
437 		@param		-
438 
439 		@return		-
440 
441 		@onerror	-
442 	*/
443 
444     virtual void SAL_CALL createPeer( const UNO3_REFERENCE< UNO3_XTOOLKIT >& xToolkit, const UNO3_REFERENCE< UNO3_XWINDOWPEER >& xParent ) throw( UNO3_RUNTIMEEXCEPTION );
445 
446 	/**_______________________________________________________________________________________________________
447 		@short		-
448 		@descr		-
449 
450 		@seealso	-
451 
452 		@param		-
453 
454 		@return		-
455 
456 		@onerror	-
457 	*/
458 
459     virtual void SAL_CALL setContext( const UNO3_REFERENCE< UNO3_XINTERFACE >& xContext ) throw( UNO3_RUNTIMEEXCEPTION );
460 
461 	/**_______________________________________________________________________________________________________
462 		@short		-
463 		@descr		-
464 
465 		@seealso	-
466 
467 		@param		-
468 
469 		@return		-
470 
471 		@onerror	-
472 	*/
473 
474     virtual sal_Bool SAL_CALL setModel( const UNO3_REFERENCE< UNO3_XCONTROLMODEL >& xModel ) throw( UNO3_RUNTIMEEXCEPTION ) = 0 ;
475 
476 	/**_______________________________________________________________________________________________________
477 		@short		-
478 		@descr		-
479 
480 		@seealso	-
481 
482 		@param		-
483 
484 		@return		-
485 
486 		@onerror	-
487 	*/
488 
489     virtual void SAL_CALL setDesignMode( sal_Bool bOn ) throw( UNO3_RUNTIMEEXCEPTION );
490 
491 	/**_______________________________________________________________________________________________________
492 		@short		-
493 		@descr		-
494 
495 		@seealso	-
496 
497 		@param		-
498 
499 		@return		-
500 
501 		@onerror	-
502 	*/
503 
504     virtual UNO3_REFERENCE< UNO3_XINTERFACE > SAL_CALL getContext() throw( UNO3_RUNTIMEEXCEPTION );
505 
506 	/**_______________________________________________________________________________________________________
507 		@short		-
508 		@descr		-
509 
510 		@seealso	-
511 
512 		@param		-
513 
514 		@return		-
515 
516 		@onerror	-
517 	*/
518 
519     virtual UNO3_REFERENCE< UNO3_XCONTROLMODEL > SAL_CALL getModel() throw( UNO3_RUNTIMEEXCEPTION ) = 0;
520 
521 	/**_______________________________________________________________________________________________________
522 		@short		-
523 		@descr		-
524 
525 		@seealso	-
526 
527 		@param		-
528 
529 		@return		-
530 
531 		@onerror	-
532 	*/
533 
534     virtual UNO3_REFERENCE< UNO3_XWINDOWPEER > SAL_CALL getPeer() throw( UNO3_RUNTIMEEXCEPTION );
535 
536 	/**_______________________________________________________________________________________________________
537 		@short		-
538 		@descr		-
539 
540 		@seealso	-
541 
542 		@param		-
543 
544 		@return		-
545 
546 		@onerror	-
547 	*/
548 
549     virtual UNO3_REFERENCE< UNO3_XVIEW > SAL_CALL getView() throw( UNO3_RUNTIMEEXCEPTION );
550 
551 	/**_______________________________________________________________________________________________________
552 		@short		-
553 		@descr		-
554 
555 		@seealso	-
556 
557 		@param		-
558 
559 		@return		-
560 
561 		@onerror	-
562 	*/
563 
564     virtual sal_Bool SAL_CALL isDesignMode() throw( UNO3_RUNTIMEEXCEPTION );
565 
566 	/**_______________________________________________________________________________________________________
567 		@short		-
568 		@descr		-
569 
570 		@seealso	-
571 
572 		@param		-
573 
574 		@return		-
575 
576 		@onerror	-
577 	*/
578 
579     virtual sal_Bool SAL_CALL isTransparent() throw( UNO3_RUNTIMEEXCEPTION );
580 
581 	//________________________________________________________________________________________________________
582 	//	XWindow
583 	//________________________________________________________________________________________________________
584 
585 	/**_______________________________________________________________________________________________________
586 		@short		-
587 		@descr		-
588 
589 		@seealso	-
590 
591 		@param		-
592 
593 		@return		-
594 
595 		@onerror	-
596 	*/
597 
598 	virtual void SAL_CALL setPosSize(	sal_Int32	nX		,
599 										sal_Int32	nY		,
600 										sal_Int32	nWidth	,
601 										sal_Int32	nHeight	,
602 										sal_Int16	nFlags	) throw( UNO3_RUNTIMEEXCEPTION );
603 
604 	/**_______________________________________________________________________________________________________
605 		@short		-
606 		@descr		-
607 
608 		@seealso	-
609 
610 		@param		-
611 
612 		@return		-
613 
614 		@onerror	-
615 	*/
616 
617     virtual void SAL_CALL setVisible( sal_Bool bVisible ) throw( UNO3_RUNTIMEEXCEPTION );
618 
619 	/**_______________________________________________________________________________________________________
620 		@short		-
621 		@descr		-
622 
623 		@seealso	-
624 
625 		@param		-
626 
627 		@return		-
628 
629 		@onerror	-
630 	*/
631 
632     virtual void SAL_CALL setEnable( sal_Bool bEnable ) throw( UNO3_RUNTIMEEXCEPTION );
633 
634 	/**_______________________________________________________________________________________________________
635 		@short		-
636 		@descr		-
637 
638 		@seealso	-
639 
640 		@param		-
641 
642 		@return		-
643 
644 		@onerror	-
645 	*/
646 
647     virtual void SAL_CALL setFocus() throw( UNO3_RUNTIMEEXCEPTION );
648 
649 	/**_______________________________________________________________________________________________________
650 		@short		-
651 		@descr		-
652 
653 		@seealso	-
654 
655 		@param		-
656 
657 		@return		-
658 
659 		@onerror	-
660 	*/
661 
662     virtual UNO3_RECTANGLE SAL_CALL getPosSize() throw( UNO3_RUNTIMEEXCEPTION );
663 
664 	/**_______________________________________________________________________________________________________
665 		@short		-
666 		@descr		-
667 
668 		@seealso	-
669 
670 		@param		-
671 
672 		@return		-
673 
674 		@onerror	-
675 	*/
676 
677     virtual void SAL_CALL addWindowListener( const UNO3_REFERENCE< UNO3_XWINDOWLISTENER >& xListener ) throw( UNO3_RUNTIMEEXCEPTION );
678 
679 	/**_______________________________________________________________________________________________________
680 		@short		-
681 		@descr		-
682 
683 		@seealso	-
684 
685 		@param		-
686 
687 		@return		-
688 
689 		@onerror	-
690 	*/
691 
692     virtual void SAL_CALL addFocusListener( const UNO3_REFERENCE< UNO3_XFOCUSLISTENER >& xListener ) throw( UNO3_RUNTIMEEXCEPTION );
693 
694 	/**_______________________________________________________________________________________________________
695 		@short		-
696 		@descr		-
697 
698 		@seealso	-
699 
700 		@param		-
701 
702 		@return		-
703 
704 		@onerror	-
705 	*/
706 
707     virtual void SAL_CALL addKeyListener( const UNO3_REFERENCE< UNO3_XKEYLISTENER >& xListener ) throw( UNO3_RUNTIMEEXCEPTION );
708 
709 	/**_______________________________________________________________________________________________________
710 		@short		-
711 		@descr		-
712 
713 		@seealso	-
714 
715 		@param		-
716 
717 		@return		-
718 
719 		@onerror	-
720 	*/
721 
722     virtual void SAL_CALL addMouseListener( const UNO3_REFERENCE< UNO3_XMOUSELISTENER >& xListener ) throw( UNO3_RUNTIMEEXCEPTION );
723 
724 	/**_______________________________________________________________________________________________________
725 		@short		-
726 		@descr		-
727 
728 		@seealso	-
729 
730 		@param		-
731 
732 		@return		-
733 
734 		@onerror	-
735 	*/
736 
737     virtual void SAL_CALL addMouseMotionListener( const UNO3_REFERENCE< UNO3_XMOUSEMOTIONLISTENER >& xListener ) throw( UNO3_RUNTIMEEXCEPTION );
738 
739 	/**_______________________________________________________________________________________________________
740 		@short		-
741 		@descr		-
742 
743 		@seealso	-
744 
745 		@param		-
746 
747 		@return		-
748 
749 		@onerror	-
750 	*/
751 
752     virtual void SAL_CALL addPaintListener( const UNO3_REFERENCE< UNO3_XPAINTLISTENER >& xListener ) throw( UNO3_RUNTIMEEXCEPTION );
753 
754 	/**_______________________________________________________________________________________________________
755 		@short		-
756 		@descr		-
757 
758 		@seealso	-
759 
760 		@param		-
761 
762 		@return		-
763 
764 		@onerror	-
765 	*/
766 
767     virtual void SAL_CALL removeWindowListener( const UNO3_REFERENCE< UNO3_XWINDOWLISTENER >& xListener ) throw( UNO3_RUNTIMEEXCEPTION );
768 
769 	/**_______________________________________________________________________________________________________
770 		@short		-
771 		@descr		-
772 
773 		@seealso	-
774 
775 		@param		-
776 
777 		@return		-
778 
779 		@onerror	-
780 	*/
781 
782     virtual void SAL_CALL removeFocusListener( const UNO3_REFERENCE< UNO3_XFOCUSLISTENER >& xListener ) throw( UNO3_RUNTIMEEXCEPTION );
783 
784 	/**_______________________________________________________________________________________________________
785 		@short		-
786 		@descr		-
787 
788 		@seealso	-
789 
790 		@param		-
791 
792 		@return		-
793 
794 		@onerror	-
795 	*/
796 
797     virtual void SAL_CALL removeKeyListener( const UNO3_REFERENCE< UNO3_XKEYLISTENER >& xListener ) throw( UNO3_RUNTIMEEXCEPTION );
798 
799 	/**_______________________________________________________________________________________________________
800 		@short		-
801 		@descr		-
802 
803 		@seealso	-
804 
805 		@param		-
806 
807 		@return		-
808 
809 		@onerror	-
810 	*/
811 
812     virtual void SAL_CALL removeMouseListener( const UNO3_REFERENCE< UNO3_XMOUSELISTENER >& xListener ) throw( UNO3_RUNTIMEEXCEPTION );
813 
814 	/**_______________________________________________________________________________________________________
815 		@short		-
816 		@descr		-
817 
818 		@seealso	-
819 
820 		@param		-
821 
822 		@return		-
823 
824 		@onerror	-
825 	*/
826 
827     virtual void SAL_CALL removeMouseMotionListener( const UNO3_REFERENCE< UNO3_XMOUSEMOTIONLISTENER >& xListener ) throw( UNO3_RUNTIMEEXCEPTION );
828 
829 	/**_______________________________________________________________________________________________________
830 		@short		-
831 		@descr		-
832 
833 		@seealso	-
834 
835 		@param		-
836 
837 		@return		-
838 
839 		@onerror	-
840 	*/
841 
842     virtual void SAL_CALL removePaintListener( const UNO3_REFERENCE< UNO3_XPAINTLISTENER >& xListener ) throw( UNO3_RUNTIMEEXCEPTION );
843 
844 	//________________________________________________________________________________________________________
845 	//	XView
846 	//________________________________________________________________________________________________________
847 
848 	/**_______________________________________________________________________________________________________
849 		@short		-
850 		@descr		-
851 
852 		@seealso	-
853 
854 		@param		-
855 
856 		@return		-
857 
858 		@onerror	-
859 	*/
860 
861     virtual void SAL_CALL draw(	sal_Int32	nX	,
862 								sal_Int32	nY	) throw( UNO3_RUNTIMEEXCEPTION );
863 
864 	/**_______________________________________________________________________________________________________
865 		@short		-
866 		@descr		-
867 
868 		@seealso	-
869 
870 		@param		-
871 
872 		@return		-
873 
874 		@onerror	-
875 	*/
876 
877     virtual sal_Bool SAL_CALL setGraphics( const UNO3_REFERENCE< UNO3_XGRAPHICS >& xDevice ) throw( UNO3_RUNTIMEEXCEPTION );
878 
879 	/**_______________________________________________________________________________________________________
880 		@short		-
881 		@descr		-
882 
883 		@seealso	-
884 
885 		@param		-
886 
887 		@return		-
888 
889 		@onerror	-
890 	*/
891 
892 	virtual void SAL_CALL setZoom(	float	fZoomX	,
893 									float	fZoomY	) throw( UNO3_RUNTIMEEXCEPTION );
894 
895 	/**_______________________________________________________________________________________________________
896 		@short		-
897 		@descr		-
898 
899 		@seealso	-
900 
901 		@param		-
902 
903 		@return		-
904 
905 		@onerror	-
906 	*/
907 
908     virtual UNO3_REFERENCE< UNO3_XGRAPHICS > SAL_CALL getGraphics() throw( UNO3_RUNTIMEEXCEPTION );
909 
910 	/**_______________________________________________________________________________________________________
911 		@short		-
912 		@descr		-
913 
914 		@seealso	-
915 
916 		@param		-
917 
918 		@return		-
919 
920 		@onerror	-
921 	*/
922 
923     virtual UNO3_SIZE SAL_CALL getSize() throw( UNO3_RUNTIMEEXCEPTION );
924 
925 	//________________________________________________________________________________________________________
926 	//	UNO3_XEVENTLISTENER
927 	//________________________________________________________________________________________________________
928 
929 	/**_______________________________________________________________________________________________________
930 		@short		-
931 		@descr		-
932 
933 		@seealso	-
934 
935 		@param		-
936 
937 		@return		-
938 
939 		@onerror	-
940 	*/
941 
942     virtual void SAL_CALL disposing( const UNO3_EVENTOBJECT& rSource	) throw( UNO3_RUNTIMEEXCEPTION );
943 
944 	//________________________________________________________________________________________________________
945 	//	XPaintListener
946 	//________________________________________________________________________________________________________
947 
948 	/**_______________________________________________________________________________________________________
949 		@short		-
950 		@descr		-
951 
952 		@seealso	-
953 
954 		@param		-
955 
956 		@return		-
957 
958 		@onerror	-
959 	*/
960 
961     virtual void SAL_CALL windowPaint( const UNO3_PAINTEVENT& rEvent ) throw( UNO3_RUNTIMEEXCEPTION );
962 
963 	//________________________________________________________________________________________________________
964 	//	XWindowListener
965 	//________________________________________________________________________________________________________
966 
967 	/**_______________________________________________________________________________________________________
968 		@short		-
969 		@descr		-
970 
971 		@seealso	-
972 
973 		@param		-
974 
975 		@return		-
976 
977 		@onerror	-
978 	*/
979 
980     virtual void SAL_CALL windowResized( const UNO3_WINDOWEVENT& aEvent ) throw( UNO3_RUNTIMEEXCEPTION );
981     virtual void SAL_CALL windowMoved( const UNO3_WINDOWEVENT& aEvent ) throw( UNO3_RUNTIMEEXCEPTION );
982     virtual void SAL_CALL windowShown( const UNO3_EVENTOBJECT& aEvent ) throw( UNO3_RUNTIMEEXCEPTION );
983     virtual void SAL_CALL windowHidden( const UNO3_EVENTOBJECT& aEvent ) throw( UNO3_RUNTIMEEXCEPTION );
984 
985 	//________________________________________________________________________________________________________
986 	//	impl but public method to register service
987 	//________________________________________________________________________________________________________
988 
989 	/**_______________________________________________________________________________________________________
990 		@short		-
991 		@descr		-
992 
993 		@seealso	-
994 
995 		@param		-
996 
997 		@return		-
998 
999 		@onerror	-
1000 	*/
1001 
1002 	static const UNO3_SEQUENCE< UNO3_OUSTRING > impl_getStaticSupportedServiceNames();
1003 
1004 	/**_______________________________________________________________________________________________________
1005 		@short		-
1006 		@descr		-
1007 
1008 		@seealso	-
1009 
1010 		@param		-
1011 
1012 		@return		-
1013 
1014 		@onerror	-
1015 	*/
1016 
1017 	static const UNO3_OUSTRING impl_getStaticImplementationName();
1018 
1019 //____________________________________________________________________________________________________________
1020 //	protected methods
1021 //____________________________________________________________________________________________________________
1022 
1023 protected:
1024     using OComponentHelper::disposing;
1025 
1026 	/**_______________________________________________________________________________________________________
1027 		@short		-
1028 		@descr		-
1029 
1030 		@seealso	-
1031 
1032 		@param		-
1033 
1034 		@return		-
1035 
1036 		@onerror	-
1037 	*/
1038 
1039 	const UNO3_REFERENCE< UNO3_XMULTISERVICEFACTORY > impl_getMultiServiceFactory();
1040 
1041 	/**_______________________________________________________________________________________________________
1042 		@short		-
1043 		@descr		-
1044 
1045 		@seealso	-
1046 
1047 		@param		-
1048 
1049 		@return		-
1050 
1051 		@onerror	-
1052 	*/
1053 
1054     const UNO3_REFERENCE< UNO3_XWINDOW > impl_getPeerWindow();
1055 
1056 	/**_______________________________________________________________________________________________________
1057 		@short		-
1058 		@descr		-
1059 
1060 		@seealso	-
1061 
1062 		@param		-
1063 
1064 		@return		-
1065 
1066 		@onerror	-
1067 	*/
1068 
1069     const UNO3_REFERENCE< UNO3_XGRAPHICS > impl_getGraphicsPeer();
1070 
1071 	/**_______________________________________________________________________________________________________
1072 		@short		-
1073 		@descr		-
1074 
1075 		@seealso	-
1076 
1077 		@param		-
1078 
1079 		@return		-
1080 
1081 		@onerror	-
1082 	*/
1083 
1084 	const sal_Int32& impl_getWidth();
1085 
1086 	/**_______________________________________________________________________________________________________
1087 		@short		-
1088 		@descr		-
1089 
1090 		@seealso	-
1091 
1092 		@param		-
1093 
1094 		@return		-
1095 
1096 		@onerror	-
1097 	*/
1098 
1099 	const sal_Int32& impl_getHeight();
1100 
1101 	/**_______________________________________________________________________________________________________
1102 		@short		-
1103 		@descr		-
1104 
1105 		@seealso	-
1106 
1107 		@param		-
1108 
1109 		@return		-
1110 
1111 		@onerror	-
1112 	*/
1113 
1114 	virtual UNO3_WINDOWDESCRIPTOR* impl_getWindowDescriptor( const UNO3_REFERENCE< UNO3_XWINDOWPEER >& xParentPeer );
1115 
1116 	/**_______________________________________________________________________________________________________
1117 		@short		-
1118 		@descr		-
1119 
1120 		@seealso	-
1121 
1122 		@param		-
1123 
1124 		@return		-
1125 
1126 		@onerror	-
1127 	*/
1128 
1129 	virtual void impl_paint(		sal_Int32				nX			,
1130 									sal_Int32				nY			,
1131 							const	UNO3_REFERENCE< UNO3_XGRAPHICS >&	xGraphics	);
1132 
1133 	/**_______________________________________________________________________________________________________
1134 		@short		-
1135 		@descr		-
1136 
1137 		@seealso	-
1138 
1139 		@param		-
1140 
1141 		@return		-
1142 
1143 		@onerror	-
1144 	*/
1145 
1146 	virtual void impl_recalcLayout( const UNO3_WINDOWEVENT& aEvent );
1147 
1148 	/**_______________________________________________________________________________________________________
1149 		@short		-
1150 		@descr		-
1151 
1152 		@seealso	-
1153 
1154 		@param		-
1155 
1156 		@return		-
1157 
1158 		@onerror	-
1159 	*/
1160 
1161 	UNO3_REFERENCE< UNO3_XINTERFACE > impl_getDelegator();
1162 
1163 //____________________________________________________________________________________________________________
1164 //	private methods
1165 //____________________________________________________________________________________________________________
1166 
1167 private:
1168 
1169 	/**_______________________________________________________________________________________________________
1170 		@short		-
1171 		@descr		-
1172 
1173 		@seealso	-
1174 
1175 		@param		-
1176 
1177 		@return		-
1178 
1179 		@onerror	-
1180 	*/
1181 
1182 	void impl_releasePeer();
1183 
1184 	/**_______________________________________________________________________________________________________
1185 		@short		-
1186 		@descr		-
1187 
1188 		@seealso	-
1189 
1190 		@param		-
1191 
1192 		@return		-
1193 
1194 		@onerror	-
1195 	*/
1196 
1197 	OMRCListenerMultiplexerHelper* impl_getMultiplexer();
1198 
1199 //____________________________________________________________________________________________________________
1200 //	private variables
1201 //____________________________________________________________________________________________________________
1202 
1203 private:
1204 
1205 	UNO3_REFERENCE< UNO3_XMULTISERVICEFACTORY > 	m_xFactory				;
1206 	UNO3_REFERENCE< UNO3_XINTERFACE > 				m_xDelegator			;
1207 	OMRCListenerMultiplexerHelper*					m_pMultiplexer			;	// multiplex events
1208 	UNO3_REFERENCE< UNO3_XINTERFACE > 				m_xMultiplexer			;
1209 	UNO3_REFERENCE< UNO3_XINTERFACE > 				m_xContext				;
1210 	UNO3_REFERENCE< UNO3_XWINDOWPEER > 				m_xPeer					;
1211 	UNO3_REFERENCE< UNO3_XWINDOW > 					m_xPeerWindow			;
1212 	UNO3_REFERENCE< UNO3_XGRAPHICS > 				m_xGraphicsView			;	// graphics for ::com::sun::star::awt::XView-operations
1213 	UNO3_REFERENCE< UNO3_XGRAPHICS > 				m_xGraphicsPeer			;	// graphics for painting on a peer
1214 	sal_Int32										m_nX					;	// Position ...
1215 	sal_Int32										m_nY					;
1216 	sal_Int32										m_nWidth				;	// ... and size of window
1217 	sal_Int32										m_nHeight				;
1218 	sal_Bool										m_bVisible				;	// Some state flags
1219 	sal_Bool										m_bInDesignMode			;
1220 	sal_Bool										m_bEnable				;
1221 
1222 };	// class BaseControl
1223 
1224 }	// namespace unocontrols
1225 
1226 #endif	// ifndef _UNOCONTROLS_BASECONTROL_CTRL_HXX
1227