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 // MARKER(update_precomp.py): autogen include statement, do not remove
25 #include "precompiled_sc.hxx"
26
27
28
29 //------------------------------------------------------------------
30
31 #ifdef _MSC_VER
32 #pragma optimize ("", off)
33 #endif
34
35 // INCLUDE ---------------------------------------------------------------
36
37 #include <sfx2/childwin.hxx>
38 #include <sfx2/request.hxx>
39 #include <sfx2/viewfrm.hxx>
40 #include <vcl/svapp.hxx>
41 #include <vcl/wrkwin.hxx>
42
43 #include "tabvwsh.hxx"
44 #include "global.hxx"
45 #include "scmod.hxx"
46 #include "docsh.hxx"
47 #include "sc.hrc"
48
49
50 // STATIC DATA -----------------------------------------------------------
51
52 //------------------------------------------------------------------
53
54 #define IS_AVAILABLE(WhichId,ppItem) \
55 (pReqArgs->GetItemState((WhichId), sal_True, ppItem ) == SFX_ITEM_SET)
56
57 //! Parent-Window fuer Dialoge
58 //! Problem: OLE Server!
59
GetDialogParent()60 Window* ScTabViewShell::GetDialogParent()
61 {
62 // #95513# if a ref-input dialog is open, use it as parent
63 // (necessary when a slot is executed from the dialog's OK handler)
64 if ( nCurRefDlgId && nCurRefDlgId == SC_MOD()->GetCurRefDlgId() )
65 {
66 SfxViewFrame* pViewFrm = GetViewFrame();
67 if ( pViewFrm->HasChildWindow(nCurRefDlgId) )
68 {
69 SfxChildWindow* pChild = pViewFrm->GetChildWindow(nCurRefDlgId);
70 if (pChild)
71 {
72 Window* pWin = pChild->GetWindow();
73 if (pWin && pWin->IsVisible())
74 return pWin;
75 }
76 }
77 }
78
79 ScDocShell* pDocSh = GetViewData()->GetDocShell();
80 if ( pDocSh->IsOle() )
81 {
82 //TODO/LATER: how to GetEditWindow in embedded document?!
83 //It should be OK to return the VieShell Window!
84 return GetWindow();
85 //SvInPlaceEnvironment* pEnv = pDocSh->GetIPEnv();
86 //if (pEnv)
87 // return pEnv->GetEditWin();
88 }
89
90 return GetActiveWin(); // for normal views, too
91 }
92
93
94
95
96
97