1*0d63794cSAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3*0d63794cSAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4*0d63794cSAndrew Rist * or more contributor license agreements. See the NOTICE file 5*0d63794cSAndrew Rist * distributed with this work for additional information 6*0d63794cSAndrew Rist * regarding copyright ownership. The ASF licenses this file 7*0d63794cSAndrew Rist * to you under the Apache License, Version 2.0 (the 8*0d63794cSAndrew Rist * "License"); you may not use this file except in compliance 9*0d63794cSAndrew Rist * with the License. You may obtain a copy of the License at 10*0d63794cSAndrew Rist * 11*0d63794cSAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12*0d63794cSAndrew Rist * 13*0d63794cSAndrew Rist * Unless required by applicable law or agreed to in writing, 14*0d63794cSAndrew Rist * software distributed under the License is distributed on an 15*0d63794cSAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*0d63794cSAndrew Rist * KIND, either express or implied. See the License for the 17*0d63794cSAndrew Rist * specific language governing permissions and limitations 18*0d63794cSAndrew Rist * under the License. 19*0d63794cSAndrew Rist * 20*0d63794cSAndrew Rist *************************************************************/ 21*0d63794cSAndrew Rist 22*0d63794cSAndrew Rist 23cdf0e10cSrcweir 24cdf0e10cSrcweir #ifndef _SVP_SVPFRAME_HXX 25cdf0e10cSrcweir 26cdf0e10cSrcweir #include <vcl/sysdata.hxx> 27cdf0e10cSrcweir 28cdf0e10cSrcweir #include <salframe.hxx> 29cdf0e10cSrcweir #include "svpelement.hxx" 30cdf0e10cSrcweir 31cdf0e10cSrcweir #include <list> 32cdf0e10cSrcweir 33cdf0e10cSrcweir class SvpSalInstance; 34cdf0e10cSrcweir class SvpSalGraphics; 35cdf0e10cSrcweir 36cdf0e10cSrcweir class SvpSalFrame : public SalFrame, public SvpElement 37cdf0e10cSrcweir { 38cdf0e10cSrcweir SvpSalInstance* m_pInstance; 39cdf0e10cSrcweir SvpSalFrame* m_pParent; // pointer to parent frame 40cdf0e10cSrcweir std::list< SvpSalFrame* > m_aChildren; // List of child frames 41cdf0e10cSrcweir sal_uLong m_nStyle; 42cdf0e10cSrcweir bool m_bVisible; 43cdf0e10cSrcweir long m_nMinWidth; 44cdf0e10cSrcweir long m_nMinHeight; 45cdf0e10cSrcweir long m_nMaxWidth; 46cdf0e10cSrcweir long m_nMaxHeight; 47cdf0e10cSrcweir 48cdf0e10cSrcweir SystemEnvData m_aSystemChildData; 49cdf0e10cSrcweir 50cdf0e10cSrcweir basebmp::BitmapDeviceSharedPtr m_aFrame; 51cdf0e10cSrcweir std::list< SvpSalGraphics* > m_aGraphics; 52cdf0e10cSrcweir 53cdf0e10cSrcweir static SvpSalFrame* s_pFocusFrame; 54cdf0e10cSrcweir public: 55cdf0e10cSrcweir SvpSalFrame( SvpSalInstance* pInstance, 56cdf0e10cSrcweir SalFrame* pParent, 57cdf0e10cSrcweir sal_uLong nSalFrameStyle, 58cdf0e10cSrcweir SystemParentData* pSystemParent = NULL ); 59cdf0e10cSrcweir virtual ~SvpSalFrame(); 60cdf0e10cSrcweir 61cdf0e10cSrcweir void GetFocus(); 62cdf0e10cSrcweir void LoseFocus(); 63cdf0e10cSrcweir void PostPaint() const; 64cdf0e10cSrcweir 65cdf0e10cSrcweir // SvpElement getDevice() const66cdf0e10cSrcweir virtual const basebmp::BitmapDeviceSharedPtr& getDevice() const { return m_aFrame; } 67cdf0e10cSrcweir 68cdf0e10cSrcweir // SalFrame 69cdf0e10cSrcweir virtual SalGraphics* GetGraphics(); 70cdf0e10cSrcweir virtual void ReleaseGraphics( SalGraphics* pGraphics ); 71cdf0e10cSrcweir 72cdf0e10cSrcweir virtual sal_Bool PostEvent( void* pData ); 73cdf0e10cSrcweir 74cdf0e10cSrcweir virtual void SetTitle( const XubString& rTitle ); 75cdf0e10cSrcweir virtual void SetIcon( sal_uInt16 nIcon ); 76cdf0e10cSrcweir virtual void SetMenu( SalMenu* pMenu ); 77cdf0e10cSrcweir virtual void DrawMenuBar(); 78cdf0e10cSrcweir 79cdf0e10cSrcweir virtual void SetExtendedFrameStyle( SalExtStyle nExtStyle ); 80cdf0e10cSrcweir virtual void Show( sal_Bool bVisible, sal_Bool bNoActivate = sal_False ); 81cdf0e10cSrcweir virtual void Enable( sal_Bool bEnable ); 82cdf0e10cSrcweir virtual void SetMinClientSize( long nWidth, long nHeight ); 83cdf0e10cSrcweir virtual void SetMaxClientSize( long nWidth, long nHeight ); 84cdf0e10cSrcweir virtual void SetPosSize( long nX, long nY, long nWidth, long nHeight, sal_uInt16 nFlags ); 85cdf0e10cSrcweir virtual void GetClientSize( long& rWidth, long& rHeight ); 86cdf0e10cSrcweir virtual void GetWorkArea( Rectangle& rRect ); 87cdf0e10cSrcweir virtual SalFrame* GetParent() const; 88cdf0e10cSrcweir virtual void SetWindowState( const SalFrameState* pState ); 89cdf0e10cSrcweir virtual sal_Bool GetWindowState( SalFrameState* pState ); 90cdf0e10cSrcweir virtual void ShowFullScreen( sal_Bool bFullScreen, sal_Int32 nDisplay ); 91cdf0e10cSrcweir virtual void StartPresentation( sal_Bool bStart ); 92cdf0e10cSrcweir virtual void SetAlwaysOnTop( sal_Bool bOnTop ); 93cdf0e10cSrcweir virtual void ToTop( sal_uInt16 nFlags ); 94cdf0e10cSrcweir virtual void SetPointer( PointerStyle ePointerStyle ); 95cdf0e10cSrcweir virtual void CaptureMouse( sal_Bool bMouse ); 96cdf0e10cSrcweir virtual void SetPointerPos( long nX, long nY ); 97cdf0e10cSrcweir using SalFrame::Flush; 98cdf0e10cSrcweir virtual void Flush(); 99cdf0e10cSrcweir virtual void Sync(); 100cdf0e10cSrcweir virtual void SetInputContext( SalInputContext* pContext ); 101cdf0e10cSrcweir virtual void EndExtTextInput( sal_uInt16 nFlags ); 102cdf0e10cSrcweir virtual String GetKeyName( sal_uInt16 nKeyCode ); 103cdf0e10cSrcweir virtual String GetSymbolKeyName( const XubString& rFontName, sal_uInt16 nKeyCode ); 104cdf0e10cSrcweir virtual sal_Bool MapUnicodeToKeyCode( sal_Unicode aUnicode, LanguageType aLangType, KeyCode& rKeyCode ); 105cdf0e10cSrcweir virtual LanguageType GetInputLanguage(); 106cdf0e10cSrcweir virtual SalBitmap* SnapShot(); 107cdf0e10cSrcweir virtual void UpdateSettings( AllSettings& rSettings ); 108cdf0e10cSrcweir virtual void Beep( SoundType eSoundType ); 109cdf0e10cSrcweir virtual const SystemEnvData* GetSystemData() const; 110cdf0e10cSrcweir virtual SalPointerState GetPointerState(); 111cdf0e10cSrcweir virtual void SetParent( SalFrame* pNewParent ); 112cdf0e10cSrcweir virtual bool SetPluginParent( SystemParentData* pNewParent ); 113cdf0e10cSrcweir virtual void SetBackgroundBitmap( SalBitmap* pBitmap ); 114cdf0e10cSrcweir virtual void ResetClipRegion(); 115cdf0e10cSrcweir virtual void BeginSetClipRegion( sal_uLong nRects ); 116cdf0e10cSrcweir virtual void UnionClipRegion( long nX, long nY, long nWidth, long nHeight ); 117cdf0e10cSrcweir virtual void EndSetClipRegion(); 118cdf0e10cSrcweir 119cdf0e10cSrcweir /*TODO: functional implementation */ SetScreenNumber(unsigned int nScreen)120cdf0e10cSrcweir virtual void SetScreenNumber( unsigned int nScreen ) { (void)nScreen; } 121cdf0e10cSrcweir }; 122cdf0e10cSrcweir #endif // _SVP_SVPFRAME_HXX 123