1*9f62ea84SAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3*9f62ea84SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4*9f62ea84SAndrew Rist * or more contributor license agreements. See the NOTICE file 5*9f62ea84SAndrew Rist * distributed with this work for additional information 6*9f62ea84SAndrew Rist * regarding copyright ownership. The ASF licenses this file 7*9f62ea84SAndrew Rist * to you under the Apache License, Version 2.0 (the 8*9f62ea84SAndrew Rist * "License"); you may not use this file except in compliance 9*9f62ea84SAndrew Rist * with the License. You may obtain a copy of the License at 10cdf0e10cSrcweir * 11*9f62ea84SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12cdf0e10cSrcweir * 13*9f62ea84SAndrew Rist * Unless required by applicable law or agreed to in writing, 14*9f62ea84SAndrew Rist * software distributed under the License is distributed on an 15*9f62ea84SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*9f62ea84SAndrew Rist * KIND, either express or implied. See the License for the 17*9f62ea84SAndrew Rist * specific language governing permissions and limitations 18*9f62ea84SAndrew Rist * under the License. 19cdf0e10cSrcweir * 20*9f62ea84SAndrew Rist *************************************************************/ 21*9f62ea84SAndrew Rist 22*9f62ea84SAndrew Rist 23cdf0e10cSrcweir 24cdf0e10cSrcweir #include "svpframe.hxx" 25cdf0e10cSrcweir #include "svpinst.hxx" 26cdf0e10cSrcweir #include "svpgdi.hxx" 27cdf0e10cSrcweir 28cdf0e10cSrcweir #include <basebmp/scanlineformats.hxx> 29cdf0e10cSrcweir #include <basegfx/vector/b2ivector.hxx> 30cdf0e10cSrcweir 31cdf0e10cSrcweir using namespace basebmp; 32cdf0e10cSrcweir using namespace basegfx; 33cdf0e10cSrcweir 34cdf0e10cSrcweir SvpSalFrame* SvpSalFrame::s_pFocusFrame = NULL; 35cdf0e10cSrcweir 36cdf0e10cSrcweir SvpSalFrame::SvpSalFrame( SvpSalInstance* pInstance, 37cdf0e10cSrcweir SalFrame* pParent, 38cdf0e10cSrcweir sal_uLong nSalFrameStyle, 39cdf0e10cSrcweir SystemParentData* ) : 40cdf0e10cSrcweir m_pInstance( pInstance ), 41cdf0e10cSrcweir m_pParent( static_cast<SvpSalFrame*>(pParent) ), 42cdf0e10cSrcweir m_nStyle( nSalFrameStyle ), 43cdf0e10cSrcweir m_bVisible( false ), 44cdf0e10cSrcweir m_nMinWidth( 0 ), 45cdf0e10cSrcweir m_nMinHeight( 0 ), 46cdf0e10cSrcweir m_nMaxWidth( 0 ), 47cdf0e10cSrcweir m_nMaxHeight( 0 ) 48cdf0e10cSrcweir { 49cdf0e10cSrcweir m_aSystemChildData.nSize = sizeof( SystemChildData ); 50cdf0e10cSrcweir m_aSystemChildData.pDisplay = NULL; 51cdf0e10cSrcweir m_aSystemChildData.aWindow = 0; 52cdf0e10cSrcweir m_aSystemChildData.pSalFrame = this; 53cdf0e10cSrcweir m_aSystemChildData.pWidget = NULL; 54cdf0e10cSrcweir m_aSystemChildData.pVisual = NULL; 55cdf0e10cSrcweir m_aSystemChildData.nDepth = 24; 56cdf0e10cSrcweir m_aSystemChildData.aColormap = 0; 57cdf0e10cSrcweir m_aSystemChildData.pAppContext = NULL; 58cdf0e10cSrcweir m_aSystemChildData.aShellWindow = 0; 59cdf0e10cSrcweir m_aSystemChildData.pShellWidget = NULL; 60cdf0e10cSrcweir 61cdf0e10cSrcweir if( m_pParent ) 62cdf0e10cSrcweir m_pParent->m_aChildren.push_back( this ); 63cdf0e10cSrcweir 64cdf0e10cSrcweir if( m_pInstance ) 65cdf0e10cSrcweir m_pInstance->registerFrame( this ); 66cdf0e10cSrcweir 67cdf0e10cSrcweir SetPosSize( 0, 0, 800, 600, SAL_FRAME_POSSIZE_WIDTH | SAL_FRAME_POSSIZE_HEIGHT ); 68cdf0e10cSrcweir } 69cdf0e10cSrcweir 70cdf0e10cSrcweir SvpSalFrame::~SvpSalFrame() 71cdf0e10cSrcweir { 72cdf0e10cSrcweir if( m_pInstance ) 73cdf0e10cSrcweir m_pInstance->deregisterFrame( this ); 74cdf0e10cSrcweir 75cdf0e10cSrcweir std::list<SvpSalFrame*> Children = m_aChildren; 76cdf0e10cSrcweir for( std::list<SvpSalFrame*>::iterator it = Children.begin(); 77cdf0e10cSrcweir it != Children.end(); ++it ) 78cdf0e10cSrcweir (*it)->SetParent( m_pParent ); 79cdf0e10cSrcweir if( m_pParent ) 80cdf0e10cSrcweir m_pParent->m_aChildren.remove( this ); 81cdf0e10cSrcweir 82cdf0e10cSrcweir if( s_pFocusFrame == this ) 83cdf0e10cSrcweir { 84cdf0e10cSrcweir s_pFocusFrame = NULL; 85cdf0e10cSrcweir // call directly here, else an event for a destroyed frame would be dispatched 86cdf0e10cSrcweir CallCallback( SALEVENT_LOSEFOCUS, NULL ); 87cdf0e10cSrcweir // if the handler has not set a new focus frame 88cdf0e10cSrcweir // pass focus to another frame, preferably a document style window 89cdf0e10cSrcweir if( s_pFocusFrame == NULL ) 90cdf0e10cSrcweir { 91cdf0e10cSrcweir const std::list< SalFrame* >& rFrames( m_pInstance->getFrames() ); 92cdf0e10cSrcweir for( std::list< SalFrame* >::const_iterator it = rFrames.begin(); it != rFrames.end(); ++it ) 93cdf0e10cSrcweir { 94cdf0e10cSrcweir SvpSalFrame* pFrame = const_cast<SvpSalFrame*>(static_cast<const SvpSalFrame*>(*it)); 95cdf0e10cSrcweir if( pFrame->m_bVisible && 96cdf0e10cSrcweir pFrame->m_pParent == NULL && 97cdf0e10cSrcweir (pFrame->m_nStyle & (SAL_FRAME_STYLE_MOVEABLE | 98cdf0e10cSrcweir SAL_FRAME_STYLE_SIZEABLE | 99cdf0e10cSrcweir SAL_FRAME_STYLE_CLOSEABLE) ) != 0 100cdf0e10cSrcweir ) 101cdf0e10cSrcweir { 102cdf0e10cSrcweir pFrame->GetFocus(); 103cdf0e10cSrcweir break; 104cdf0e10cSrcweir } 105cdf0e10cSrcweir } 106cdf0e10cSrcweir } 107cdf0e10cSrcweir } 108cdf0e10cSrcweir } 109cdf0e10cSrcweir 110cdf0e10cSrcweir void SvpSalFrame::GetFocus() 111cdf0e10cSrcweir { 112cdf0e10cSrcweir if( (m_nStyle & (SAL_FRAME_STYLE_OWNERDRAWDECORATION | SAL_FRAME_STYLE_FLOAT)) == 0 ) 113cdf0e10cSrcweir { 114cdf0e10cSrcweir if( s_pFocusFrame ) 115cdf0e10cSrcweir s_pFocusFrame->LoseFocus(); 116cdf0e10cSrcweir s_pFocusFrame = this; 117cdf0e10cSrcweir m_pInstance->PostEvent( this, NULL, SALEVENT_GETFOCUS ); 118cdf0e10cSrcweir } 119cdf0e10cSrcweir } 120cdf0e10cSrcweir 121cdf0e10cSrcweir void SvpSalFrame::LoseFocus() 122cdf0e10cSrcweir { 123cdf0e10cSrcweir if( s_pFocusFrame == this ) 124cdf0e10cSrcweir { 125cdf0e10cSrcweir m_pInstance->PostEvent( this, NULL, SALEVENT_LOSEFOCUS ); 126cdf0e10cSrcweir s_pFocusFrame = NULL; 127cdf0e10cSrcweir } 128cdf0e10cSrcweir } 129cdf0e10cSrcweir 130cdf0e10cSrcweir SalGraphics* SvpSalFrame::GetGraphics() 131cdf0e10cSrcweir { 132cdf0e10cSrcweir SvpSalGraphics* pGraphics = new SvpSalGraphics(); 133cdf0e10cSrcweir pGraphics->setDevice( m_aFrame ); 134cdf0e10cSrcweir m_aGraphics.push_back( pGraphics ); 135cdf0e10cSrcweir return pGraphics; 136cdf0e10cSrcweir } 137cdf0e10cSrcweir 138cdf0e10cSrcweir void SvpSalFrame::ReleaseGraphics( SalGraphics* pGraphics ) 139cdf0e10cSrcweir { 140cdf0e10cSrcweir SvpSalGraphics* pSvpGraphics = dynamic_cast<SvpSalGraphics*>(pGraphics); 141cdf0e10cSrcweir m_aGraphics.remove( pSvpGraphics ); 142cdf0e10cSrcweir delete pSvpGraphics; 143cdf0e10cSrcweir } 144cdf0e10cSrcweir 145cdf0e10cSrcweir sal_Bool SvpSalFrame::PostEvent( void* pData ) 146cdf0e10cSrcweir { 147cdf0e10cSrcweir m_pInstance->PostEvent( this, pData, SALEVENT_USEREVENT ); 148cdf0e10cSrcweir return sal_True; 149cdf0e10cSrcweir } 150cdf0e10cSrcweir 151cdf0e10cSrcweir void SvpSalFrame::PostPaint() const 152cdf0e10cSrcweir { 153cdf0e10cSrcweir if( m_bVisible ) 154cdf0e10cSrcweir { 155cdf0e10cSrcweir SalPaintEvent aPEvt(0, 0, maGeometry.nWidth, maGeometry.nHeight); 156cdf0e10cSrcweir CallCallback( SALEVENT_PAINT, &aPEvt ); 157cdf0e10cSrcweir } 158cdf0e10cSrcweir } 159cdf0e10cSrcweir 160cdf0e10cSrcweir void SvpSalFrame::SetTitle( const XubString& ) 161cdf0e10cSrcweir { 162cdf0e10cSrcweir } 163cdf0e10cSrcweir 164cdf0e10cSrcweir void SvpSalFrame::SetIcon( sal_uInt16 ) 165cdf0e10cSrcweir { 166cdf0e10cSrcweir } 167cdf0e10cSrcweir 168cdf0e10cSrcweir void SvpSalFrame::SetMenu( SalMenu* ) 169cdf0e10cSrcweir { 170cdf0e10cSrcweir } 171cdf0e10cSrcweir 172cdf0e10cSrcweir void SvpSalFrame::DrawMenuBar() 173cdf0e10cSrcweir { 174cdf0e10cSrcweir } 175cdf0e10cSrcweir 176cdf0e10cSrcweir void SvpSalFrame::SetExtendedFrameStyle( SalExtStyle ) 177cdf0e10cSrcweir { 178cdf0e10cSrcweir } 179cdf0e10cSrcweir 180cdf0e10cSrcweir void SvpSalFrame::Show( sal_Bool bVisible, sal_Bool bNoActivate ) 181cdf0e10cSrcweir { 182cdf0e10cSrcweir if( bVisible && ! m_bVisible ) 183cdf0e10cSrcweir { 184cdf0e10cSrcweir m_bVisible = true; 185cdf0e10cSrcweir m_pInstance->PostEvent( this, NULL, SALEVENT_RESIZE ); 186cdf0e10cSrcweir if( ! bNoActivate ) 187cdf0e10cSrcweir GetFocus(); 188cdf0e10cSrcweir } 189cdf0e10cSrcweir else if( ! bVisible && m_bVisible ) 190cdf0e10cSrcweir { 191cdf0e10cSrcweir m_bVisible = false; 192cdf0e10cSrcweir m_pInstance->PostEvent( this, NULL, SALEVENT_RESIZE ); 193cdf0e10cSrcweir LoseFocus(); 194cdf0e10cSrcweir } 195cdf0e10cSrcweir } 196cdf0e10cSrcweir 197cdf0e10cSrcweir void SvpSalFrame::Enable( sal_Bool ) 198cdf0e10cSrcweir { 199cdf0e10cSrcweir } 200cdf0e10cSrcweir 201cdf0e10cSrcweir void SvpSalFrame::SetMinClientSize( long nWidth, long nHeight ) 202cdf0e10cSrcweir { 203cdf0e10cSrcweir m_nMinWidth = nWidth; 204cdf0e10cSrcweir m_nMinHeight = nHeight; 205cdf0e10cSrcweir } 206cdf0e10cSrcweir 207cdf0e10cSrcweir void SvpSalFrame::SetMaxClientSize( long nWidth, long nHeight ) 208cdf0e10cSrcweir { 209cdf0e10cSrcweir m_nMaxWidth = nWidth; 210cdf0e10cSrcweir m_nMaxHeight = nHeight; 211cdf0e10cSrcweir } 212cdf0e10cSrcweir 213cdf0e10cSrcweir void SvpSalFrame::SetPosSize( long nX, long nY, long nWidth, long nHeight, sal_uInt16 nFlags ) 214cdf0e10cSrcweir { 215cdf0e10cSrcweir if( (nFlags & SAL_FRAME_POSSIZE_X) != 0 ) 216cdf0e10cSrcweir maGeometry.nX = nX; 217cdf0e10cSrcweir if( (nFlags & SAL_FRAME_POSSIZE_Y) != 0 ) 218cdf0e10cSrcweir maGeometry.nY = nY; 219cdf0e10cSrcweir if( (nFlags & SAL_FRAME_POSSIZE_WIDTH) != 0 ) 220cdf0e10cSrcweir { 221cdf0e10cSrcweir maGeometry.nWidth = nWidth; 222cdf0e10cSrcweir if( m_nMaxWidth > 0 && maGeometry.nWidth > (unsigned int)m_nMaxWidth ) 223cdf0e10cSrcweir maGeometry.nWidth = m_nMaxWidth; 224cdf0e10cSrcweir if( m_nMinWidth > 0 && maGeometry.nWidth < (unsigned int)m_nMinWidth ) 225cdf0e10cSrcweir maGeometry.nWidth = m_nMinWidth; 226cdf0e10cSrcweir } 227cdf0e10cSrcweir if( (nFlags & SAL_FRAME_POSSIZE_HEIGHT) != 0 ) 228cdf0e10cSrcweir { 229cdf0e10cSrcweir maGeometry.nHeight = nHeight; 230cdf0e10cSrcweir if( m_nMaxHeight > 0 && maGeometry.nHeight > (unsigned int)m_nMaxHeight ) 231cdf0e10cSrcweir maGeometry.nHeight = m_nMaxHeight; 232cdf0e10cSrcweir if( m_nMinHeight > 0 && maGeometry.nHeight < (unsigned int)m_nMinHeight ) 233cdf0e10cSrcweir maGeometry.nHeight = m_nMinHeight; 234cdf0e10cSrcweir } 235cdf0e10cSrcweir B2IVector aFrameSize( maGeometry.nWidth, maGeometry.nHeight ); 236cdf0e10cSrcweir if( ! m_aFrame.get() || m_aFrame->getSize() != aFrameSize ) 237cdf0e10cSrcweir { 238cdf0e10cSrcweir if( aFrameSize.getX() == 0 ) 239cdf0e10cSrcweir aFrameSize.setX( 1 ); 240cdf0e10cSrcweir if( aFrameSize.getY() == 0 ) 241cdf0e10cSrcweir aFrameSize.setY( 1 ); 242cdf0e10cSrcweir m_aFrame = createBitmapDevice( aFrameSize, false, SVP_DEFAULT_BITMAP_FORMAT ); 243cdf0e10cSrcweir // update device in existing graphics 244cdf0e10cSrcweir for( std::list< SvpSalGraphics* >::iterator it = m_aGraphics.begin(); 245cdf0e10cSrcweir it != m_aGraphics.end(); ++it ) 246cdf0e10cSrcweir (*it)->setDevice( m_aFrame ); 247cdf0e10cSrcweir } 248cdf0e10cSrcweir if( m_bVisible ) 249cdf0e10cSrcweir m_pInstance->PostEvent( this, NULL, SALEVENT_RESIZE ); 250cdf0e10cSrcweir } 251cdf0e10cSrcweir 252cdf0e10cSrcweir void SvpSalFrame::GetClientSize( long& rWidth, long& rHeight ) 253cdf0e10cSrcweir { 254cdf0e10cSrcweir if( m_bVisible ) 255cdf0e10cSrcweir { 256cdf0e10cSrcweir rWidth = maGeometry.nWidth; 257cdf0e10cSrcweir rHeight = maGeometry.nHeight; 258cdf0e10cSrcweir } 259cdf0e10cSrcweir else 260cdf0e10cSrcweir rWidth = rHeight = 0; 261cdf0e10cSrcweir } 262cdf0e10cSrcweir 263cdf0e10cSrcweir void SvpSalFrame::GetWorkArea( Rectangle& rRect ) 264cdf0e10cSrcweir { 265cdf0e10cSrcweir rRect = Rectangle( Point( 0, 0 ), 266cdf0e10cSrcweir Size( VIRTUAL_DESKTOP_WIDTH, VIRTUAL_DESKTOP_HEIGHT ) ); 267cdf0e10cSrcweir } 268cdf0e10cSrcweir 269cdf0e10cSrcweir SalFrame* SvpSalFrame::GetParent() const 270cdf0e10cSrcweir { 271cdf0e10cSrcweir return m_pParent; 272cdf0e10cSrcweir } 273cdf0e10cSrcweir 274cdf0e10cSrcweir #define _FRAMESTATE_MASK_GEOMETRY \ 275cdf0e10cSrcweir (SAL_FRAMESTATE_MASK_X | SAL_FRAMESTATE_MASK_Y | \ 276cdf0e10cSrcweir SAL_FRAMESTATE_MASK_WIDTH | SAL_FRAMESTATE_MASK_HEIGHT) 277cdf0e10cSrcweir #define _FRAMESTATE_MASK_MAXIMIZED_GEOMETRY \ 278cdf0e10cSrcweir (SAL_FRAMESTATE_MASK_MAXIMIZED_X | SAL_FRAMESTATE_MASK_MAXIMIZED_Y | \ 279cdf0e10cSrcweir SAL_FRAMESTATE_MASK_MAXIMIZED_WIDTH | SAL_FRAMESTATE_MASK_MAXIMIZED_HEIGHT) 280cdf0e10cSrcweir 281cdf0e10cSrcweir void SvpSalFrame::SetWindowState( const SalFrameState *pState ) 282cdf0e10cSrcweir { 283cdf0e10cSrcweir if (pState == NULL) 284cdf0e10cSrcweir return; 285cdf0e10cSrcweir 286cdf0e10cSrcweir // Request for position or size change 287cdf0e10cSrcweir if (pState->mnMask & _FRAMESTATE_MASK_GEOMETRY) 288cdf0e10cSrcweir { 289cdf0e10cSrcweir long nX = maGeometry.nX; 290cdf0e10cSrcweir long nY = maGeometry.nY; 291cdf0e10cSrcweir long nWidth = maGeometry.nWidth; 292cdf0e10cSrcweir long nHeight = maGeometry.nHeight; 293cdf0e10cSrcweir 294cdf0e10cSrcweir // change requested properties 295cdf0e10cSrcweir if (pState->mnMask & SAL_FRAMESTATE_MASK_X) 296cdf0e10cSrcweir nX = pState->mnX; 297cdf0e10cSrcweir if (pState->mnMask & SAL_FRAMESTATE_MASK_Y) 298cdf0e10cSrcweir nY = pState->mnY; 299cdf0e10cSrcweir if (pState->mnMask & SAL_FRAMESTATE_MASK_WIDTH) 300cdf0e10cSrcweir nWidth = pState->mnWidth; 301cdf0e10cSrcweir if (pState->mnMask & SAL_FRAMESTATE_MASK_HEIGHT) 302cdf0e10cSrcweir nHeight = pState->mnHeight; 303cdf0e10cSrcweir 304cdf0e10cSrcweir SetPosSize( nX, nY, nWidth, nHeight, 305cdf0e10cSrcweir SAL_FRAME_POSSIZE_X | SAL_FRAME_POSSIZE_Y | 306cdf0e10cSrcweir SAL_FRAME_POSSIZE_WIDTH | SAL_FRAME_POSSIZE_HEIGHT ); 307cdf0e10cSrcweir } 308cdf0e10cSrcweir } 309cdf0e10cSrcweir 310cdf0e10cSrcweir sal_Bool SvpSalFrame::GetWindowState( SalFrameState* pState ) 311cdf0e10cSrcweir { 312cdf0e10cSrcweir pState->mnState = SAL_FRAMESTATE_NORMAL; 313cdf0e10cSrcweir pState->mnX = maGeometry.nX; 314cdf0e10cSrcweir pState->mnY = maGeometry.nY; 315cdf0e10cSrcweir pState->mnWidth = maGeometry.nWidth; 316cdf0e10cSrcweir pState->mnHeight = maGeometry.nHeight; 317cdf0e10cSrcweir pState->mnMask = _FRAMESTATE_MASK_GEOMETRY | SAL_FRAMESTATE_MASK_STATE; 318cdf0e10cSrcweir 319cdf0e10cSrcweir return sal_True; 320cdf0e10cSrcweir } 321cdf0e10cSrcweir 322cdf0e10cSrcweir void SvpSalFrame::ShowFullScreen( sal_Bool, sal_Int32 ) 323cdf0e10cSrcweir { 324cdf0e10cSrcweir SetPosSize( 0, 0, VIRTUAL_DESKTOP_WIDTH, VIRTUAL_DESKTOP_HEIGHT, 325cdf0e10cSrcweir SAL_FRAME_POSSIZE_WIDTH | SAL_FRAME_POSSIZE_HEIGHT ); 326cdf0e10cSrcweir } 327cdf0e10cSrcweir 328cdf0e10cSrcweir void SvpSalFrame::StartPresentation( sal_Bool ) 329cdf0e10cSrcweir { 330cdf0e10cSrcweir } 331cdf0e10cSrcweir 332cdf0e10cSrcweir void SvpSalFrame::SetAlwaysOnTop( sal_Bool ) 333cdf0e10cSrcweir { 334cdf0e10cSrcweir } 335cdf0e10cSrcweir 336cdf0e10cSrcweir void SvpSalFrame::ToTop( sal_uInt16 ) 337cdf0e10cSrcweir { 338cdf0e10cSrcweir GetFocus(); 339cdf0e10cSrcweir } 340cdf0e10cSrcweir 341cdf0e10cSrcweir void SvpSalFrame::SetPointer( PointerStyle ) 342cdf0e10cSrcweir { 343cdf0e10cSrcweir } 344cdf0e10cSrcweir 345cdf0e10cSrcweir void SvpSalFrame::CaptureMouse( sal_Bool ) 346cdf0e10cSrcweir { 347cdf0e10cSrcweir } 348cdf0e10cSrcweir 349cdf0e10cSrcweir void SvpSalFrame::SetPointerPos( long, long ) 350cdf0e10cSrcweir { 351cdf0e10cSrcweir } 352cdf0e10cSrcweir 353cdf0e10cSrcweir void SvpSalFrame::Flush() 354cdf0e10cSrcweir { 355cdf0e10cSrcweir } 356cdf0e10cSrcweir 357cdf0e10cSrcweir void SvpSalFrame::Sync() 358cdf0e10cSrcweir { 359cdf0e10cSrcweir } 360cdf0e10cSrcweir 361cdf0e10cSrcweir void SvpSalFrame::SetInputContext( SalInputContext* ) 362cdf0e10cSrcweir { 363cdf0e10cSrcweir } 364cdf0e10cSrcweir 365cdf0e10cSrcweir void SvpSalFrame::EndExtTextInput( sal_uInt16 ) 366cdf0e10cSrcweir { 367cdf0e10cSrcweir } 368cdf0e10cSrcweir 369cdf0e10cSrcweir String SvpSalFrame::GetKeyName( sal_uInt16 ) 370cdf0e10cSrcweir { 371cdf0e10cSrcweir return String(); 372cdf0e10cSrcweir } 373cdf0e10cSrcweir 374cdf0e10cSrcweir String SvpSalFrame::GetSymbolKeyName( const XubString&, sal_uInt16 ) 375cdf0e10cSrcweir { 376cdf0e10cSrcweir return String(); 377cdf0e10cSrcweir } 378cdf0e10cSrcweir 379cdf0e10cSrcweir sal_Bool SvpSalFrame::MapUnicodeToKeyCode( sal_Unicode, LanguageType, KeyCode& ) 380cdf0e10cSrcweir { 381cdf0e10cSrcweir return sal_False; 382cdf0e10cSrcweir } 383cdf0e10cSrcweir 384cdf0e10cSrcweir LanguageType SvpSalFrame::GetInputLanguage() 385cdf0e10cSrcweir { 386cdf0e10cSrcweir return LANGUAGE_DONTKNOW; 387cdf0e10cSrcweir } 388cdf0e10cSrcweir 389cdf0e10cSrcweir SalBitmap* SvpSalFrame::SnapShot() 390cdf0e10cSrcweir { 391cdf0e10cSrcweir return NULL; 392cdf0e10cSrcweir } 393cdf0e10cSrcweir 394cdf0e10cSrcweir void SvpSalFrame::UpdateSettings( AllSettings& ) 395cdf0e10cSrcweir { 396cdf0e10cSrcweir } 397cdf0e10cSrcweir 398cdf0e10cSrcweir void SvpSalFrame::Beep( SoundType ) 399cdf0e10cSrcweir { 400cdf0e10cSrcweir } 401cdf0e10cSrcweir 402cdf0e10cSrcweir const SystemEnvData* SvpSalFrame::GetSystemData() const 403cdf0e10cSrcweir { 404cdf0e10cSrcweir return &m_aSystemChildData; 405cdf0e10cSrcweir } 406cdf0e10cSrcweir 407cdf0e10cSrcweir SalFrame::SalPointerState SvpSalFrame::GetPointerState() 408cdf0e10cSrcweir { 409cdf0e10cSrcweir SalPointerState aState; 410cdf0e10cSrcweir aState.mnState = 0; 411cdf0e10cSrcweir return aState; 412cdf0e10cSrcweir } 413cdf0e10cSrcweir 414cdf0e10cSrcweir void SvpSalFrame::SetParent( SalFrame* pNewParent ) 415cdf0e10cSrcweir { 416cdf0e10cSrcweir if( m_pParent ) 417cdf0e10cSrcweir m_pParent->m_aChildren.remove( this ); 418cdf0e10cSrcweir m_pParent = static_cast<SvpSalFrame*>(pNewParent); 419cdf0e10cSrcweir } 420cdf0e10cSrcweir 421cdf0e10cSrcweir bool SvpSalFrame::SetPluginParent( SystemParentData* ) 422cdf0e10cSrcweir { 423cdf0e10cSrcweir return true; 424cdf0e10cSrcweir } 425cdf0e10cSrcweir 426cdf0e10cSrcweir void SvpSalFrame::SetBackgroundBitmap( SalBitmap* ) 427cdf0e10cSrcweir { 428cdf0e10cSrcweir } 429cdf0e10cSrcweir 430cdf0e10cSrcweir void SvpSalFrame::ResetClipRegion() 431cdf0e10cSrcweir { 432cdf0e10cSrcweir } 433cdf0e10cSrcweir 434cdf0e10cSrcweir void SvpSalFrame::BeginSetClipRegion( sal_uLong ) 435cdf0e10cSrcweir { 436cdf0e10cSrcweir } 437cdf0e10cSrcweir 438cdf0e10cSrcweir void SvpSalFrame::UnionClipRegion( long, long, long, long ) 439cdf0e10cSrcweir { 440cdf0e10cSrcweir } 441cdf0e10cSrcweir 442cdf0e10cSrcweir void SvpSalFrame::EndSetClipRegion() 443cdf0e10cSrcweir { 444cdf0e10cSrcweir } 445cdf0e10cSrcweir 446