xref: /trunk/main/vcl/inc/vcl/syschild.hxx (revision e1beba7d)
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 _SV_SYSCHILD_HXX
25 #define _SV_SYSCHILD_HXX
26 
27 #include <vcl/sv.h>
28 #include <vcl/dllapi.h>
29 #include <vcl/window.hxx>
30 
31 struct SystemEnvData;
32 struct SystemWindowData;
33 
34 // ---------------------
35 // - SystemChildWindow -
36 // ---------------------
37 
38 class VCL_DLLPUBLIC SystemChildWindow : public Window
39 {
40 private:
41     using Window::ImplInit;
42 	SAL_DLLPRIVATE void     ImplInitSysChild( Window* pParent, WinBits nStyle, SystemWindowData *pData, sal_Bool bShow = sal_False );
43     SAL_DLLPRIVATE void     ImplTestJavaException( void* pEnv );
44 
45     // Copy assignment is forbidden and not implemented.
46 	SAL_DLLPRIVATE          SystemChildWindow (const SystemChildWindow &);
47 	SAL_DLLPRIVATE          SystemChildWindow & operator= (const SystemChildWindow &);
48 
49 public:
50 	explicit				SystemChildWindow( Window* pParent, WinBits nStyle = 0 );
51                             // create a SystemChildWindow using the given SystemWindowData
52 	explicit				SystemChildWindow( Window* pParent, WinBits nStyle, SystemWindowData* pData, sal_Bool bShow = sal_True );
53 	explicit				SystemChildWindow( Window* pParent, const ResId& );
54 	virtual					~SystemChildWindow();
55 
56 	const SystemEnvData*	GetSystemData() const;
57 
58     //  per default systemchildwindows erase their background for better plugin support
59     //  however, this might not always be required
60     void                    EnableEraseBackground( sal_Bool bEnable = sal_True );
61     sal_Bool                    IsEraseBackgroundEnabled();
62 
63     // return the platform specific handle/id of this window;
64     // in case the flag bUseJava is set, a java compatible overlay window
65     // is created on which other java windows can be created (plugin interface)
66     sal_IntPtr              GetParentWindowHandle( sal_Bool bUseJava = sal_False );
67 };
68 
69 #endif // _SV_SYSCHILD_HXX
70