1*24f6443dSAndrew Rist /**************************************************************
2cdf0e10cSrcweir *
3*24f6443dSAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one
4*24f6443dSAndrew Rist * or more contributor license agreements. See the NOTICE file
5*24f6443dSAndrew Rist * distributed with this work for additional information
6*24f6443dSAndrew Rist * regarding copyright ownership. The ASF licenses this file
7*24f6443dSAndrew Rist * to you under the Apache License, Version 2.0 (the
8*24f6443dSAndrew Rist * "License"); you may not use this file except in compliance
9*24f6443dSAndrew Rist * with the License. You may obtain a copy of the License at
10*24f6443dSAndrew Rist *
11*24f6443dSAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0
12*24f6443dSAndrew Rist *
13*24f6443dSAndrew Rist * Unless required by applicable law or agreed to in writing,
14*24f6443dSAndrew Rist * software distributed under the License is distributed on an
15*24f6443dSAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*24f6443dSAndrew Rist * KIND, either express or implied. See the License for the
17*24f6443dSAndrew Rist * specific language governing permissions and limitations
18*24f6443dSAndrew Rist * under the License.
19*24f6443dSAndrew Rist *
20*24f6443dSAndrew Rist *************************************************************/
21*24f6443dSAndrew Rist
22*24f6443dSAndrew Rist
23cdf0e10cSrcweir
24cdf0e10cSrcweir #ifndef _SV_SALVD_H
25cdf0e10cSrcweir #define _SV_SALVD_H
26cdf0e10cSrcweir
27cdf0e10cSrcweir // -=-= #includes -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
28cdf0e10cSrcweir #include <unx/salstd.hxx>
29cdf0e10cSrcweir #include <salvd.hxx>
30cdf0e10cSrcweir
31cdf0e10cSrcweir // -=-= forwards -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
32cdf0e10cSrcweir class SalDisplay;
33cdf0e10cSrcweir class X11SalGraphics;
34cdf0e10cSrcweir
35cdf0e10cSrcweir // -=-= SalVirDevData -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
36cdf0e10cSrcweir class X11SalVirtualDevice : public SalVirtualDevice
37cdf0e10cSrcweir {
38cdf0e10cSrcweir SalDisplay *pDisplay_;
39cdf0e10cSrcweir X11SalGraphics *pGraphics_;
40cdf0e10cSrcweir
41cdf0e10cSrcweir
42cdf0e10cSrcweir Pixmap hDrawable_;
43cdf0e10cSrcweir int m_nScreen;
44cdf0e10cSrcweir
45cdf0e10cSrcweir int nDX_;
46cdf0e10cSrcweir int nDY_;
47cdf0e10cSrcweir sal_uInt16 nDepth_;
48cdf0e10cSrcweir sal_Bool bGraphics_; // is Graphics used
49cdf0e10cSrcweir sal_Bool bExternPixmap_;
50cdf0e10cSrcweir
51cdf0e10cSrcweir public:
52cdf0e10cSrcweir X11SalVirtualDevice();
53cdf0e10cSrcweir virtual ~X11SalVirtualDevice();
54cdf0e10cSrcweir
55cdf0e10cSrcweir sal_Bool Init( SalDisplay *pDisplay,
56cdf0e10cSrcweir long nDX, long nDY,
57cdf0e10cSrcweir sal_uInt16 nBitCount,
58cdf0e10cSrcweir int nScreen,
59cdf0e10cSrcweir Pixmap hDrawable = None,
60cdf0e10cSrcweir void* pRenderFormat = NULL );
61cdf0e10cSrcweir inline void InitGraphics( X11SalVirtualDevice *pVD );
62cdf0e10cSrcweir
63cdf0e10cSrcweir inline Display *GetXDisplay() const;
64cdf0e10cSrcweir inline SalDisplay *GetDisplay() const;
65cdf0e10cSrcweir inline sal_Bool IsDisplay() const;
GetDrawable() const66cdf0e10cSrcweir inline Pixmap GetDrawable() const { return hDrawable_; }
GetDepth() const67cdf0e10cSrcweir inline sal_uInt16 GetDepth() const { return nDepth_; }
GetWidth() const68cdf0e10cSrcweir int GetWidth() const { return nDX_; }
GetHeight() const69cdf0e10cSrcweir int GetHeight() const { return nDY_; }
GetScreenNumber() const70cdf0e10cSrcweir int GetScreenNumber() const { return m_nScreen; }
71cdf0e10cSrcweir
72cdf0e10cSrcweir virtual SalGraphics* GetGraphics();
73cdf0e10cSrcweir virtual void ReleaseGraphics( SalGraphics* pGraphics );
74cdf0e10cSrcweir
75cdf0e10cSrcweir // Set new size, without saving the old contents
76cdf0e10cSrcweir virtual sal_Bool SetSize( long nNewDX, long nNewDY );
77cdf0e10cSrcweir virtual void GetSize( long& rWidth, long& rHeight );
78cdf0e10cSrcweir };
79cdf0e10cSrcweir
80cdf0e10cSrcweir #ifdef _SV_SALDISP_HXX
81cdf0e10cSrcweir
InitGraphics(X11SalVirtualDevice * pVD)82cdf0e10cSrcweir inline void X11SalVirtualDevice::InitGraphics( X11SalVirtualDevice *pVD )
83cdf0e10cSrcweir { pGraphics_->Init( pVD ); }
84cdf0e10cSrcweir
GetXDisplay() const85cdf0e10cSrcweir inline Display *X11SalVirtualDevice::GetXDisplay() const
86cdf0e10cSrcweir { return pDisplay_->GetDisplay(); }
87cdf0e10cSrcweir
GetDisplay() const88cdf0e10cSrcweir inline SalDisplay *X11SalVirtualDevice::GetDisplay() const
89cdf0e10cSrcweir { return pDisplay_; }
90cdf0e10cSrcweir
IsDisplay() const91cdf0e10cSrcweir inline sal_Bool X11SalVirtualDevice::IsDisplay() const
92cdf0e10cSrcweir { return pDisplay_->IsDisplay(); }
93cdf0e10cSrcweir
94cdf0e10cSrcweir #endif
95cdf0e10cSrcweir
96cdf0e10cSrcweir #endif // _SV_SALVD_H
97cdf0e10cSrcweir
98