mirror of
https://github.com/coteditor/CotEditor.git
synced 2024-10-26 19:10:11 +03:00
Add skin tone modifier to character inspector (close #378)
This commit is contained in:
parent
2c8768a277
commit
dbfca4e4cd
@ -5,6 +5,11 @@ Change Log
|
||||
develop
|
||||
--------------------------
|
||||
|
||||
### Additions/Changes
|
||||
|
||||
- Support displaying skin tone variations of Unicode 8.0 on the character inspector.
|
||||
|
||||
|
||||
### Fixes
|
||||
|
||||
- Improve general stability.
|
||||
|
@ -9,7 +9,7 @@
|
||||
encoding="UTF-8"
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
© 2014 CotEditor Project
|
||||
© 2014-2015 1024jp
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
@ -30,10 +30,18 @@
|
||||
#import "CEGlyphPopoverController.h"
|
||||
|
||||
|
||||
// variation Selector
|
||||
// variation selectors
|
||||
static const unichar kTextSequenceChar = 0xFE0E;
|
||||
static const unichar kEmojiSequenceChar = 0xFE0F;
|
||||
|
||||
// emoji modifiers
|
||||
static const UTF32Char kType12EmojiModifierChar = 0x1F3FB; // Emoji Modifier Fitzpatrick type-1-2
|
||||
static const UTF32Char kType3EmojiModifierChar = 0x1F3FC; // Emoji Modifier Fitzpatrick type-3
|
||||
static const UTF32Char kType4EmojiModifierChar = 0x1F3FD; // Emoji Modifier Fitzpatrick type-4
|
||||
static const UTF32Char kType5EmojiModifierChar = 0x1F3FE; // Emoji Modifier Fitzpatrick type-5
|
||||
static const UTF32Char kType6EmojiModifierChar = 0x1F3FF; // Emoji Modifier Fitzpatrick type-6
|
||||
|
||||
|
||||
|
||||
@interface CEGlyphPopoverController () <NSPopoverDelegate>
|
||||
|
||||
@ -87,7 +95,7 @@ static const unichar kEmojiSequenceChar = 0xFE0F;
|
||||
|
||||
BOOL isMultipleChars = NO;
|
||||
|
||||
// check valiation selector
|
||||
// check variation selector
|
||||
NSString *variationSelectorAdditional;
|
||||
if ([unicodes count] == 2) {
|
||||
unichar lastChar = [character characterAtIndex:(length - 1)];
|
||||
@ -106,10 +114,30 @@ static const unichar kEmojiSequenceChar = 0xFE0F;
|
||||
CFStringIsSurrogateLowCharacter(lowSurrogate))
|
||||
{
|
||||
UTF32Char pair = CFStringGetLongCharacterForSurrogatePair(highSurrogate, lowSurrogate);
|
||||
if (pair >= 0xE0100 && pair <= 0xE01EF) {
|
||||
variationSelectorAdditional = @"Variant";
|
||||
} else {
|
||||
isMultipleChars = YES;
|
||||
|
||||
switch (pair) {
|
||||
case kType12EmojiModifierChar:
|
||||
variationSelectorAdditional = @"Skin Tone I-II"; // Light Skin Tone
|
||||
break;
|
||||
case kType3EmojiModifierChar:
|
||||
variationSelectorAdditional = @"Skin Tone III"; // Medium Light Skin Tone
|
||||
break;
|
||||
case kType4EmojiModifierChar:
|
||||
variationSelectorAdditional = @"Skin Tone IV"; // Medium Skin Tone
|
||||
break;
|
||||
case kType5EmojiModifierChar:
|
||||
variationSelectorAdditional = @"Skin Tone V"; // Medium Dark Skin Tone
|
||||
break;
|
||||
case kType6EmojiModifierChar:
|
||||
variationSelectorAdditional = @"Skin Tone VI"; // Dark Skin Tone
|
||||
break;
|
||||
default:
|
||||
if (pair >= 0xE0100 && pair <= 0xE01EF) {
|
||||
variationSelectorAdditional = @"Variant";
|
||||
} else {
|
||||
isMultipleChars = YES;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -158,6 +158,11 @@
|
||||
"<a letter consisting of %d characters>" = "<%d字から成る文字>";
|
||||
"Emoji Style" = "絵文字スタイル";
|
||||
"Text Style" = "テキストスタイル";
|
||||
"Skin Tone I-II" = "スキントーン I-II";
|
||||
"Skin Tone III" = "スキントーン III";
|
||||
"Skin Tone IV" = "スキントーン IV";
|
||||
"Skin Tone V" = "スキントーン V";
|
||||
"Skin Tone VI" = "スキントーン VI";
|
||||
"Variant" = "異体字";
|
||||
|
||||
|
||||
|
@ -156,6 +156,11 @@
|
||||
"<a letter consisting of %d characters>" = "<包含有 %d 个字符>";
|
||||
"Emoji Style" = "表情文字格式";
|
||||
"Text Style" = "文本文字格式";
|
||||
"Skin Tone I-II" = "Skin Tone I-II"; // FIXME:
|
||||
"Skin Tone III" = "Skin Tone III"; // FIXME:
|
||||
"Skin Tone IV" = "Skin Tone IV"; // FIXME:
|
||||
"Skin Tone V" = "Skin Tone V"; // FIXME:
|
||||
"Skin Tone VI" = "Skin Tone VI"; // FIXME:
|
||||
"Variant" = "异体字";
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user