LibreOffice Module sw (master) 1
proofreadingiterator.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
10#include <sal/config.h>
11
12#include <com/sun/star/lang/XComponent.hpp>
13#include <com/sun/star/linguistic2/ProofreadingIterator.hpp>
14#include <com/sun/star/linguistic2/XProofreadingIterator.hpp>
15#include <com/sun/star/uno/Reference.hxx>
16#include <com/sun/star/uno/XComponentContext.hpp>
17#include <vcl/svapp.hxx>
18
20
21namespace
22{
23css::uno::Reference<css::linguistic2::XProofreadingIterator> instance;
24bool disposed = false;
25
26void doDispose(css::uno::Reference<css::linguistic2::XProofreadingIterator> const& inst)
27{
28 css::uno::Reference<css::lang::XComponent> comp(inst, css::uno::UNO_QUERY);
29 if (comp.is())
30 {
32 comp->dispose();
33 }
34}
35}
36
37css::uno::Reference<css::linguistic2::XProofreadingIterator>
38sw::proofreadingiterator::get(css::uno::Reference<css::uno::XComponentContext> const& context)
39{
40 css::uno::Reference<css::linguistic2::XProofreadingIterator> inst(
41 css::linguistic2::ProofreadingIterator::create(context));
42 bool disp;
43 {
45 instance = inst;
46 disp = disposed;
47 }
48 if (disp)
49 {
50 doDispose(inst);
51 }
52 return inst;
53}
54
56{
57 css::uno::Reference<css::linguistic2::XProofreadingIterator> inst;
58 {
60 inst = instance;
61 instance.clear();
62 disposed = true;
63 }
64 doDispose(inst);
65}
66
67/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
css::uno::Reference< css::linguistic2::XProofreadingIterator > get(css::uno::Reference< css::uno::XComponentContext > const &context)
comp