⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unicodeimpl.cpp

📁 khtml在gtk上的移植版本
💻 CPP
字号:
/* * Copyright (c) 2004 Nokia. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the * distribution. * * Neither the name of Nokia nor the names of its contributors may be * used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED * OF THE POSSIBILITY OF SUCH DAMAGE. */#include <glib.h>#include "UnicodeImpl.h"extern "C" {int UnicodeImplDigitValueFunction(UChar32 c){    return g_unichar_digit_value((gunichar) c);    }WebCoreUnicodeDirection UnicodeImplDirectionFunction(UChar32 c){    GUnicodeType type = g_unichar_type(reinterpret_cast<gunichar>(c));    switch (type){    case G_UNICODE_CONTROL:	// this tells the direction?    case G_UNICODE_FORMAT:    case G_UNICODE_UNASSIGNED:    case G_UNICODE_PRIVATE_USE:    case G_UNICODE_SURROGATE:    case G_UNICODE_LOWERCASE_LETTER:    case G_UNICODE_MODIFIER_LETTER:    case G_UNICODE_OTHER_LETTER:    case G_UNICODE_TITLECASE_LETTER:    case G_UNICODE_UPPERCASE_LETTER:    case G_UNICODE_COMBINING_MARK:    case G_UNICODE_ENCLOSING_MARK:	return DirectionL; //### FIXME: Control characters for direction(?)    case G_UNICODE_NON_SPACING_MARK:	return DirectionNSM;    case G_UNICODE_DECIMAL_NUMBER:    case G_UNICODE_LETTER_NUMBER:    case G_UNICODE_OTHER_NUMBER:    case G_UNICODE_CONNECT_PUNCTUATION:    case G_UNICODE_DASH_PUNCTUATION:    case G_UNICODE_CLOSE_PUNCTUATION:    case G_UNICODE_FINAL_PUNCTUATION:    case G_UNICODE_INITIAL_PUNCTUATION:    case G_UNICODE_OTHER_PUNCTUATION:    case G_UNICODE_OPEN_PUNCTUATION:    case G_UNICODE_CURRENCY_SYMBOL:    case G_UNICODE_MODIFIER_SYMBOL:    case G_UNICODE_MATH_SYMBOL:    case G_UNICODE_OTHER_SYMBOL:	return DirectionL; // FIXME: Control characters for direction    case G_UNICODE_LINE_SEPARATOR:	return DirectionCS;    case G_UNICODE_PARAGRAPH_SEPARATOR:	return DirectionB;    case G_UNICODE_SPACE_SEPARATOR:	return DirectionWS;    }        // NOT REACHED    return DirectionL;}bool UnicodeImplMirroredFunction(UChar32 c){#if ((GLIB_MAJOR_VERSION>=2) && (GLIB_MINOR_VERSION>=4))    // glib spec says:    // 'Returns : TRUE if ch has a mirrored character and mirrored_ch is filled in, FALSE otherwise'    gunichar mirrored_ch;    return g_unichar_get_mirror_char((gunichar)c, &mirrored_ch);#else    // XXX: Mirrored char support disabled if glib < 2.4    return false;#endif}UChar32 UnicodeImplMirroredCharFunction(UChar32 c){#if ( (GLIB_MAJOR_VERSION>=2) && (GLIB_MINOR_VERSION>=4))    gunichar mirrored_ch;    g_unichar_get_mirror_char((gunichar)c, &mirrored_ch);    return (UChar32)mirrored_ch;#else    // XXX: Mirrored char support disabled if glib < 2.4    return 0;#endif}UChar32 UnicodeImplLowerFunction(UChar32 c){    return g_unichar_tolower((gunichar)c);}UChar32 UnicodeImplUpperFunction(UChar32 c){    return g_unichar_toupper((gunichar)c);}} // extern "C"

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -