My Project
UDK 3.2.7 C/C++ API Reference
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
locale.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 
29 #ifndef _RTL_LOCALE_HXX_
30 #define _RTL_LOCALE_HXX_
31 
32 #include <rtl/locale.h>
33 #include <rtl/ustring.hxx>
34 
35 #ifdef __cplusplus
36 
37 namespace rtl
38 {
39 
165 class OLocale
166 {
167 public:
168  OLocale( rtl_Locale * locale )
169  : pData( locale ) {}
170 
171  OLocale( const OLocale & obj)
172  : pData(obj.pData) {}
173 
174  OLocale & operator = ( const OLocale & obj)
175  {
176  pData = obj.pData;
177  return *this;
178  }
179 
186  static OLocale registerLocale( const OUString & language, const OUString & country,
187  const OUString & variant )
188  {
189  return rtl_locale_register( language.getStr(), country.getStr(), variant.getStr() );
190  }
191 
197  static OLocale registerLocale( const OUString & language, const OUString & country )
198  {
199  return rtl_locale_register( language.getStr(), country.getStr(), NULL );
200  }
201 
204  static OLocale getDefault() { return rtl_locale_getDefault(); }
205 
208  static void setDefault( const OUString & language, const OUString & country,
209  const OUString & variant )
210  { rtl_locale_setDefault(language.getStr(), country.getStr(), variant.getStr()); }
211 
216  OUString getLanguage() const { return pData->Language; }
217 
222  OUString getCountry() const { return pData->Country; }
223 
227  OUString getVariant() const { return pData->Variant; }
228 
229 
233  sal_Int32 hashCode() const { return pData->HashCode; }
234 
235  sal_Bool operator == (const OLocale & obj ) const
236  {
237  return pData == obj.pData;
238  }
239 
240  rtl_Locale * getData() const { return pData; }
241 
242 private:
247  rtl_Locale * pData;
248 
249  OLocale()
250  : pData(rtl_locale_getDefault()) {}
251 /*
252  OLocale( const OLocale & obj)
253  : pData(obj.pData) {}
254 
255  OLocale & operator = ( const OLocale & obj)
256  { pData = obj.pData;
257  return *this;
258  }
259 */
260 };
261 
262 }
263 
264 #endif /* __cplusplus */
265 #endif /* _RTL_LOCALE_HXX_ */
266 
267 
268 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */