My Project
UDK 3.2.7 C/C++ API Reference
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
uno
current_context.hxx
Go to the documentation of this file.
1
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2
/*************************************************************************
3
*
4
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5
*
6
* Copyright 2000, 2010 Oracle and/or its affiliates.
7
*
8
* OpenOffice.org - a multi-platform office productivity suite
9
*
10
* This file is part of OpenOffice.org.
11
*
12
* OpenOffice.org is free software: you can redistribute it and/or modify
13
* it under the terms of the GNU Lesser General Public License version 3
14
* only, as published by the Free Software Foundation.
15
*
16
* OpenOffice.org is distributed in the hope that it will be useful,
17
* but WITHOUT ANY WARRANTY; without even the implied warranty of
18
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
* GNU Lesser General Public License version 3 for more details
20
* (a copy is included in the LICENSE file that accompanied this code).
21
*
22
* You should have received a copy of the GNU Lesser General Public License
23
* version 3 along with OpenOffice.org. If not, see
24
* <http://www.openoffice.org/license.html>
25
* for a copy of the LGPLv3 License.
26
*
27
************************************************************************/
28
#ifndef _UNO_CURRENT_CONTEXT_HXX_
29
#define _UNO_CURRENT_CONTEXT_HXX_
30
31
#include <
uno/current_context.h
>
32
33
#include <com/sun/star/uno/XCurrentContext.hpp>
34
35
36
namespace
com
37
{
38
namespace
sun
39
{
40
namespace
star
41
{
42
namespace
uno
43
{
44
52
inline
Reference< XCurrentContext >
SAL_CALL
getCurrentContext
()
53
SAL_THROW
(())
54
{
55
Reference< XCurrentContext >
xRet;
56
::rtl::OUString
aEnvTypeName(
RTL_CONSTASCII_USTRINGPARAM
(CPPU_CURRENT_LANGUAGE_BINDING_NAME) );
57
::uno_getCurrentContext
( (
void
**)&xRet, aEnvTypeName.pData, 0 );
58
return
xRet;
59
}
65
inline
bool
SAL_CALL
setCurrentContext
(
66
Reference< XCurrentContext >
const
& xContext )
67
SAL_THROW
(())
68
{
69
::rtl::OUString
aEnvTypeName(
RTL_CONSTASCII_USTRINGPARAM
(CPPU_CURRENT_LANGUAGE_BINDING_NAME) );
70
return
(::
uno_setCurrentContext
( xContext.get(), aEnvTypeName.pData, 0 ) !=
sal_False
);
71
}
72
77
class
ContextLayer
78
{
81
::rtl::OUString
m_aEnvTypeName;
84
Reference< XCurrentContext >
m_xPreviousContext;
85
86
public
:
91
inline
ContextLayer
(
92
Reference< XCurrentContext >
const
& xNewContext =
Reference< XCurrentContext >
() )
93
SAL_THROW
(());
96
inline
~ContextLayer
()
SAL_THROW
(());
97
102
inline
Reference< XCurrentContext >
SAL_CALL
getPreviousContext
() const
103
SAL_THROW
(())
104
{
return
m_xPreviousContext; }
105
};
106
//__________________________________________________________________________________________________
107
inline
ContextLayer::ContextLayer
(
Reference< XCurrentContext >
const
& xNewContext )
108
SAL_THROW
(())
109
: m_aEnvTypeName(
RTL_CONSTASCII_USTRINGPARAM
(CPPU_CURRENT_LANGUAGE_BINDING_NAME) )
110
{
111
::uno_getCurrentContext
( (
void
**)&m_xPreviousContext, m_aEnvTypeName.pData, 0 );
112
::uno_setCurrentContext
( xNewContext.get(), m_aEnvTypeName.pData, 0 );
113
}
114
//__________________________________________________________________________________________________
115
inline
ContextLayer::~ContextLayer
()
116
SAL_THROW
(())
117
{
118
::uno_setCurrentContext
( m_xPreviousContext.
get
(), m_aEnvTypeName.pData, 0 );
119
}
120
121
}
122
}
123
}
124
}
125
126
#endif
127
128
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
Generated on Mon Oct 8 2012 00:36:42 for My Project by
1.8.1.2