LibreOffice Module sfx2 (master) 1
msgpool.hxx
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#ifndef INCLUDED_SFX2_MSGPOOL_HXX
20#define INCLUDED_SFX2_MSGPOOL_HXX
21
22#include <rtl/ustring.hxx>
23#include <sal/config.h>
24#include <sal/types.h>
25#include <sfx2/dllapi.h>
26#include <sfx2/groupid.hxx>
27#include <vector>
28
29class SfxInterface;
30class SfxSlot;
31class SfxViewFrame;
32
34{
35 std::vector<SfxGroupId> _vGroups;
37 std::vector<SfxInterface*> _vInterfaces;
38 sal_uInt16 _nCurGroup;
39 sal_uInt16 _nCurInterface;
40 sal_uInt16 _nCurMsg;
41
42private:
43 const SfxSlot* SeekSlot( sal_uInt16 nObject );
44
45public:
46 SfxSlotPool(SfxSlotPool* pParent=nullptr);
48
49 void RegisterInterface( SfxInterface& rFace );
50
51 static SfxSlotPool& GetSlotPool( SfxViewFrame *pFrame=nullptr );
52
53 sal_uInt16 GetGroupCount() const;
54 OUString SeekGroup( sal_uInt16 nNo );
55 const SfxSlot* FirstSlot();
56 const SfxSlot* NextSlot();
57 const SfxSlot* GetSlot( sal_uInt16 nId ) const;
58 const SfxSlot* GetUnoSlot( const OUString& rUnoName ) const;
59 const std::type_info* GetSlotType( sal_uInt16 nSlotId ) const;
60};
61
62
63// seeks to the first func in the current group
64
66{
67 return SeekSlot(0);
68}
69
70#define SFX_SLOTPOOL() SfxSlotPool::GetSlotPool()
71
72#endif
73
74/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
sal_uInt16 _nCurMsg
Definition: msgpool.hxx:40
const SfxSlot * SeekSlot(sal_uInt16 nObject)
Definition: msgpool.cxx:218
sal_uInt16 _nCurInterface
Definition: msgpool.hxx:39
sal_uInt16 _nCurGroup
Definition: msgpool.hxx:38
const SfxSlot * FirstSlot()
Definition: msgpool.hxx:65
std::vector< SfxInterface * > _vInterfaces
Definition: msgpool.hxx:37
SfxSlotPool * _pParentPool
Definition: msgpool.hxx:36
std::vector< SfxGroupId > _vGroups
Definition: msgpool.hxx:35
Definition: msg.hxx:184
#define SFX2_DLLPUBLIC
Definition: dllapi.h:29