1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
#ifndef _GLIBMM_INIT_H
#define _GLIBMM_INIT_H
/* Copyright (C) 2002 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*/
#include <glibmmconfig.h>
namespace Glib
{
/** Initialize glibmm.
*
* Call it before you use other parts of glibmm. You may call it more than once.
* Calls after the first one have no effect. %Glib::init() sets the global locale
* as specified by set_init_to_users_preferred_locale().
*
* You do not need to call %Glib::init() if you are using Gtk::Application or
* Gio::init(), because they call %Glib::init() for you.
*
* @see set_init_to_users_preferred_locale()
*/
GLIBMM_API
void init();
/** Instruct Glib::init() which global locale to set.
*
* To have the intended effect, this function must be called before init() is called.
* Not calling it has the same effect as calling it with @a state = <tt>true</tt>.
*
* Note the confusing difference between C locale and "C" locale.
* The C locale is the locale used by C code, set by std::setlocale(LC_ALL, locale_name).
* The "C" locale is the classic locale, set by std::setlocale(LC_ALL, "C")
* or std::locale::global(std::locale::classic()). It's the default global locale
* in a C or C++ program.
*
* In a mixed C and C++ program, like a program using glibmm, having the C global
* locale differ from std::locale::global() is error prone. Glib::init() tries
* to avoid that.
*
* @param state If <tt>true</tt>, init() will set the C and C++ global locale
* to the user's preferred locale (std::locale::global(std::locale(""))).
* The user's preferred locale is set in the program's environment,
* usually with the LANG environment variable.<br>
* If <tt>false</tt>, init() will set the C++ global locale to the C global locale
* (std::locale::global(std::locale(std::setlocale(LC_ALL, nullptr)))).
*
* @newin{2,58}
*/
GLIBMM_API
void set_init_to_users_preferred_locale(bool state = true);
/** Get the state, set with set_init_to_users_preferred_locale().
* @returns The state, set with set_init_to_users_preferred_locale(); <tt>true</tt>
* if set_init_to_users_preferred_locale() has not been called.
*
* @newin{2,58}
*/
GLIBMM_API
bool get_init_to_users_preferred_locale();
} // namespace Glib
#endif /* _GLIBMM_INIT_H */
|