update dev300-m58
[ooovba.git] / svx / source / dialog / hyperdlg.cxx
blob3bb5f0b6b1966c0659e75c8b5b0046dac05f5444
1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: hyperdlg.cxx,v $
10 * $Revision: 1.23 $
12 * This file is part of OpenOffice.org.
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org. If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
29 ************************************************************************/
31 // MARKER(update_precomp.py): autogen include statement, do not remove
32 #include "precompiled_svx.hxx"
34 // include ---------------------------------------------------------------
35 #include <vcl/settings.hxx>
36 #include <svtools/viewoptions.hxx>
37 #include "hyperdlg.hxx"
38 #include <svx/svxdlg.hxx> //CHINA001
39 #include <sfx2/app.hxx>
40 #include <sfx2/sfxsids.hrc>
41 #include "hyperdlg.hrc"
44 //########################################################################
45 //# #
46 //# Childwindow-Wrapper-Class #
47 //# #
48 //########################################################################
50 SFX_IMPL_CHILDWINDOW(SvxHlinkDlgWrapper, SID_HYPERLINK_DIALOG)
52 // -----------------------------------------------------------------------
54 struct MyStruct
56 ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame > xFrame;
57 SfxChildWinFactory* pFact;
58 sal_Bool bHideNotDelete;
59 sal_Bool bVisible;
60 sal_Bool bHideAtToggle;
61 SfxModule* pContextModule;
62 SfxWorkWindow* pWorkWin;
65 SvxHlinkDlgWrapper::SvxHlinkDlgWrapper( Window* _pParent, USHORT nId,
66 SfxBindings* pBindings,
67 SfxChildWinInfo* pInfo ) :
68 SfxChildWindow( _pParent, nId ),
70 mpDlg( NULL )
73 //CHINA001 pWindow = new SvxHpLinkDlg( _pParent, pBindings );
74 SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
75 DBG_ASSERT(pFact, "Dialogdiet fail!");//CHINA001
76 mpDlg = pFact->CreateSvxHpLinkDlg( _pParent, pBindings, SID_HYPERLINK_DIALOG );
77 DBG_ASSERT(mpDlg, "Dialogdiet fail!");//CHINA001
78 pWindow = mpDlg->GetWindow();
79 ((MyStruct*)pImp)->bVisible = FALSE;
81 if ( pInfo->aSize.Width() != 0 && pInfo->aSize.Height() != 0 )
83 Size aParentSize( SFX_APP()->GetTopWindow()->GetSizePixel() );
84 Size aDlgSize ( GetSizePixel () );
86 if( aParentSize.Width() < pInfo->aPos.X() )
87 pInfo->aPos.setX( aParentSize.Width()-aDlgSize.Width() < long(0.1*aParentSize.Width()) ?
88 long(0.1*aParentSize.Width()) : aParentSize.Width()-aDlgSize.Width() );
89 if( aParentSize.Height() < pInfo->aPos. Y() )
90 pInfo->aPos.setY( aParentSize.Height()-aDlgSize.Height() < long(0.1*aParentSize.Height()) ?
91 long(0.1*aParentSize.Height()) : aParentSize.Height()-aDlgSize.Height() );
93 pWindow->SetPosPixel( pInfo->aPos );
96 eChildAlignment = SFX_ALIGN_NOALIGNMENT;
98 SetHideNotDelete( TRUE );
101 SfxChildWinInfo SvxHlinkDlgWrapper::GetInfo() const
103 return SfxChildWindow::GetInfo();
106 sal_Bool SvxHlinkDlgWrapper::QueryClose()
108 return mpDlg ? mpDlg->QueryClose() : sal_True;