03e01574eb39fd16f4fc29aca1e5ecc166f819b6
[WebKit-https.git] / JavaScriptCore / kxmlcore / unicode / qt4 / UnicodeQt4.h
1 // -*- c-basic-offset: 2 -*-
2 /*
3  *  This file is part of the KDE libraries
4  *  Copyright (C) 2006 George Staikos <staikos@kde.org>
5  *
6  *  This library is free software; you can redistribute it and/or
7  *  modify it under the terms of the GNU Library General Public
8  *  License as published by the Free Software Foundation; either
9  *  version 2 of the License, or (at your option) any later version.
10  *
11  *  This library is distributed in the hope that it will be useful,
12  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  *  Library General Public License for more details.
15  *
16  *  You should have received a copy of the GNU Library General Public License
17  *  along with this library; see the file COPYING.LIB.  If not, write to
18  *  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
19  *  Boston, MA 02110-1301, USA.
20  *
21  */
22
23 #ifndef KJS_UNICODE_QT4_H
24 #define KJS_UNICODE_QT4_H
25
26 #include <QChar>
27
28 #include "../UnicodeCategory.h"
29
30 namespace KXMLCore {
31   namespace Unicode {
32     inline unsigned short toLower(unsigned short c) {
33       return (unsigned short)QChar(c).toLower().unicode();
34     }
35
36     inline unsigned short toUpper(unsigned short c) {
37       return (unsigned short)QChar(c).toUpper().unicode();
38     }
39
40     inline bool isFormatChar(unsigned short c) {
41       return QChar(c).category() == QChar::Other_Format;
42     }
43
44     inline bool isSeparatorSpace(unsigned short c) {
45       return QChar(c).category() == QChar::Separator_Space;
46     }
47
48     inline CharCategory category(unsigned short c) {
49       switch (QChar(c).category()) {
50         case QChar::Mark_NonSpacing:
51           return Mark_NonSpacing;
52         case QChar::Mark_SpacingCombining:
53           return Mark_SpacingCombining;
54         case QChar::Mark_Enclosing:
55           return Mark_Enclosing;
56         case QChar::Number_DecimalDigit:
57           return Number_DecimalDigit;
58         case QChar::Number_Letter:
59           return Number_Letter;
60         case QChar::Number_Other:
61           return Number_Other;
62         case QChar::Separator_Space:
63           return Separator_Space;
64         case QChar::Separator_Line:
65           return Separator_Line;
66         case QChar::Separator_Paragraph:
67           return Separator_Paragraph;
68         case QChar::Other_Control:
69           return Other_Control;
70         case QChar::Other_Format:
71           return Other_Format;
72         case QChar::Other_Surrogate:
73           return Other_Surrogate;
74         case QChar::Other_PrivateUse:
75           return Other_PrivateUse;
76         case QChar::Other_NotAssigned:
77           return Other_NotAssigned;
78         case QChar::Letter_Uppercase:
79           return Letter_Uppercase;
80         case QChar::Letter_Lowercase:
81           return Letter_Lowercase;
82         case QChar::Letter_Titlecase:
83           return Letter_Titlecase;
84         case QChar::Letter_Modifier:
85           return Letter_Modifier;
86         case QChar::Letter_Other:
87           return Letter_Other;
88         case QChar::Punctuation_Connector:
89           return Punctuation_Connector;
90         case QChar::Punctuation_Dash:
91           return Punctuation_Dash;
92         case QChar::Punctuation_Open:
93           return Punctuation_Open;
94         case QChar::Punctuation_Close:
95           return Punctuation_Close;
96         case QChar::Punctuation_InitialQuote:
97           return Punctuation_InitialQuote;
98         case QChar::Punctuation_FinalQuote:
99           return Punctuation_FinalQuote;
100         case QChar::Punctuation_Other:
101           return Punctuation_Other;
102         case QChar::Symbol_Math:
103           return Symbol_Math;
104         case QChar::Symbol_Currency:
105           return Symbol_Currency;
106         case QChar::Symbol_Modifier:
107           return Symbol_Modifier;
108         case QChar::Symbol_Other:
109           return Symbol_Other;
110         default:
111           return NoCategory;
112       }
113     }
114   }
115 }
116
117 #endif
118 // vim: ts=2 sw=2 et