acme
Foundational cross-platform layer of the ca2 framework
Loading...
Searching...
No Matches
aaa_international_locale_schema.h
1#pragma once
2
3
4namespace str
5{
6
7
8 namespace international
9 {
10
11
12 class CLASS_DECL_ACME locale_schema :
13 virtual public ::matter
14 {
15 public:
16
17 // most simple use:
18 // 1. allocate locale_schema.
19 // 2. add locale variants in order of importance, most acceptable first
20 // 3. destroy locale_schema
21 // m_straLocale and m_straStyle will have the locale/styles
22
23 bool m_bSchemaOnly;
24 bool m_bAddAlternateStyle;
25
26 atom m_atomLocale;
27 atom m_atomSchema;
28
29 comparable_array < atom > m_idaLocale;
30 comparable_array < atom > m_idaSchema;
31
32
33 locale_schema();
34 locale_schema(const locale_schema & ls);
35 virtual ~locale_schema();
36
37
38 ::atom localeid(const ::scoped_string & scopedstrLocale, character_count iLen);
39
40
41 virtual bool add_locale_variant(atom idLocale, atom Style);
42 virtual bool end_prepare(bool bRtlLayout);
43 //virtual void end_prepare();
44
45 bool defer_add_locale(atom idLocale, atom idStyle);
46 bool defer_add_locale(const ::scoped_string & scopedstr, character_count iLen, atom idStyle);
47 bool _add_locale_variant(atom pszLocale, atom idStyle);
48 bool _add_locale_variant(const ::scoped_string & scopedstr, character_count iLen, atom idStyle);
49 bool process_final_locale_schema(bool bRTLLayout);
50 //bool process_final_locale_schema();
51
52
53 locale_schema & operator = (const locale_schema & ls);
54
55 virtual ::i64 increment_reference_count();
56 virtual ::i64 release();
57
58
59 };
60
61
62 inline bool locale_schema::_add_locale_variant(atom idLocale, atom idStyle)
63 {
64
65 return _add_locale_variant(idLocale.m_psz, strlen(idLocale.m_psz), idStyle);
66
67 }
68
69
70 inline bool locale_schema::defer_add_locale(const ::scoped_string & scopedstrLocale, character_count iLen, atom idSchema)
71 {
72
73 return defer_add_locale(localeid(scopedstrLocale, iLen), idSchema);
74
75 }
76
77
78 CLASS_DECL_ACME void create_rtl_map();
79
80
81 } // namespace international
82
83
84} // namespace acme
85
86
87
Definition atom.h:237