LibreOffice Module sfx2 (master) 1
appchild.cxx
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This file is part of the LibreOffice project.
4 *
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 *
9 * This file incorporates work covered by the following license notice:
10 *
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 */
19
20
21#include <sfx2/app.hxx>
22#include <appdata.hxx>
23#include <workwin.hxx>
24#include <sfx2/childwin.hxx>
25#include <sfx2/module.hxx>
26#include <sfx2/viewfrm.hxx>
27
28
30{
31 if ( pMod )
32 {
33 pMod->RegisterChildWindow( rFact );
34 return;
35 }
36
37 for (size_t nFactory=0; nFactory<pImpl->maFactories.size(); ++nFactory)
38 {
39 if (rFact.nId == pImpl->maFactories[nFactory].nId)
40 {
41 pImpl->maFactories.erase( pImpl->maFactories.begin() + nFactory );
42 }
43 }
44
45 pImpl->maFactories.push_back( rFact );
46}
47
49{
50 for (auto& rFactory : pImpl->maFactories)
51 if (rFactory.nId == nId)
52 return &rFactory;
53 return nullptr;
54}
55
57{
58 if ( pFrame )
59 return pFrame->GetFrame().GetWorkWindow_Impl();
60 else if ( pImpl->pViewFrame )
61 return pImpl->pViewFrame->GetFrame().GetWorkWindow_Impl();
62 else
63 return nullptr;
64}
65
66/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
SAL_DLLPRIVATE SfxChildWinFactory * GetChildWinFactoryById(sal_uInt16 nId) const
Definition: appchild.cxx:48
SAL_DLLPRIVATE void RegisterChildWindow_Impl(SfxModule *, const SfxChildWinFactory &)
Definition: appchild.cxx:29
std::unique_ptr< SfxAppData_Impl > pImpl
Definition: app.hxx:97
SAL_DLLPRIVATE SfxWorkWindow * GetWorkWindow_Impl(const SfxViewFrame *pFrame) const
Definition: appchild.cxx:56
SAL_DLLPRIVATE SfxWorkWindow * GetWorkWindow_Impl() const
Definition: frame.cxx:588
void RegisterChildWindow(const SfxChildWinFactory &)
Definition: module.cxx:108
SfxFrame & GetFrame() const
Definition: viewfrm.cxx:2782
sal_Int16 nId
sal_uInt16 nId
Definition: childwin.hxx:89