summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMinh Nguyễn <mxn@1ec5.org>2018-02-22 02:57:34 -0800
committerMinh Nguyễn <mxn@1ec5.org>2018-02-22 02:57:34 -0800
commite3645ecd1d6420c73f0ca5bc53def60af9a235da (patch)
treeac543c609128301e187bf8b7745102fee37ccecf
parentb3ba998e20ed75c734d21fbcbc02dd7681061a91 (diff)
downloadqtlocation-mapboxgl-upstream/coretext-hack.tar.gz
[macos] Added font pickerupstream/coretext-hack
Instead of hard-coding a font when localizing, enable a font picker to set the font of the selected layers.
-rw-r--r--platform/macos/app/Base.lproj/MainMenu.xib263
-rw-r--r--platform/macos/app/MapDocument.m49
2 files changed, 312 insertions, 0 deletions
diff --git a/platform/macos/app/Base.lproj/MainMenu.xib b/platform/macos/app/Base.lproj/MainMenu.xib
index 72e9c5a189..d9759d6004 100644
--- a/platform/macos/app/Base.lproj/MainMenu.xib
+++ b/platform/macos/app/Base.lproj/MainMenu.xib
@@ -476,6 +476,268 @@
</items>
</menu>
</menuItem>
+ <menuItem title="Format" id="boK-4U-pg9">
+ <modifierMask key="keyEquivalentModifierMask"/>
+ <menu key="submenu" title="Format" id="O1v-Uq-2I1">
+ <items>
+ <menuItem title="Font" id="YuU-SF-I73">
+ <modifierMask key="keyEquivalentModifierMask"/>
+ <menu key="submenu" title="Font" systemMenu="font" id="WtL-BQ-gqO">
+ <items>
+ <menuItem title="Show Fonts" keyEquivalent="t" id="DjF-aW-aNb">
+ <connections>
+ <action selector="orderFrontFontPanel:" target="oKh-9s-xc8" id="UAD-BX-jPB"/>
+ </connections>
+ </menuItem>
+ <menuItem title="Bold" tag="2" keyEquivalent="b" id="X4y-Fg-6d6">
+ <connections>
+ <action selector="addFontTrait:" target="oKh-9s-xc8" id="Fsn-jo-L1r"/>
+ </connections>
+ </menuItem>
+ <menuItem title="Italic" tag="1" keyEquivalent="i" id="Klh-Im-IzU">
+ <connections>
+ <action selector="addFontTrait:" target="oKh-9s-xc8" id="A42-Mg-hsW"/>
+ </connections>
+ </menuItem>
+ <menuItem title="Underline" keyEquivalent="u" id="13H-hx-475">
+ <connections>
+ <action selector="underline:" target="-1" id="4xn-Xe-vUb"/>
+ </connections>
+ </menuItem>
+ <menuItem isSeparatorItem="YES" id="jjv-ar-wpb"/>
+ <menuItem title="Bigger" tag="3" keyEquivalent="+" id="mWj-4u-44K">
+ <connections>
+ <action selector="modifyFont:" target="oKh-9s-xc8" id="ayM-Ha-xbU"/>
+ </connections>
+ </menuItem>
+ <menuItem title="Smaller" tag="4" keyEquivalent="-" id="gUD-Gc-qsG">
+ <connections>
+ <action selector="modifyFont:" target="oKh-9s-xc8" id="ScT-PO-Afa"/>
+ </connections>
+ </menuItem>
+ <menuItem isSeparatorItem="YES" id="pHf-99-4tq"/>
+ <menuItem title="Kern" id="UwM-Rr-zDO">
+ <modifierMask key="keyEquivalentModifierMask"/>
+ <menu key="submenu" title="Kern" id="LVS-vb-OBh">
+ <items>
+ <menuItem title="Use Default" id="gBR-qE-ASl">
+ <modifierMask key="keyEquivalentModifierMask"/>
+ <connections>
+ <action selector="useStandardKerning:" target="-1" id="6UO-pN-DMW"/>
+ </connections>
+ </menuItem>
+ <menuItem title="Use None" id="XY2-mr-cto">
+ <modifierMask key="keyEquivalentModifierMask"/>
+ <connections>
+ <action selector="turnOffKerning:" target="-1" id="i2V-XM-krS"/>
+ </connections>
+ </menuItem>
+ <menuItem title="Tighten" id="xZh-cL-rxP">
+ <modifierMask key="keyEquivalentModifierMask"/>
+ <connections>
+ <action selector="tightenKerning:" target="-1" id="snN-HA-0cb"/>
+ </connections>
+ </menuItem>
+ <menuItem title="Loosen" id="dtt-05-41s">
+ <modifierMask key="keyEquivalentModifierMask"/>
+ <connections>
+ <action selector="loosenKerning:" target="-1" id="77r-fb-kyV"/>
+ </connections>
+ </menuItem>
+ </items>
+ </menu>
+ </menuItem>
+ <menuItem title="Ligatures" id="DCo-Dr-QN8">
+ <modifierMask key="keyEquivalentModifierMask"/>
+ <menu key="submenu" title="Ligatures" id="eIg-Qs-rzu">
+ <items>
+ <menuItem title="Use Default" id="duC-yG-sZ5">
+ <modifierMask key="keyEquivalentModifierMask"/>
+ <connections>
+ <action selector="useStandardLigatures:" target="-1" id="pcJ-lW-AC5"/>
+ </connections>
+ </menuItem>
+ <menuItem title="Use None" id="WnJ-np-I7g">
+ <modifierMask key="keyEquivalentModifierMask"/>
+ <connections>
+ <action selector="turnOffLigatures:" target="-1" id="0o2-7I-2pa"/>
+ </connections>
+ </menuItem>
+ <menuItem title="Use All" id="R2V-fQ-4lR">
+ <modifierMask key="keyEquivalentModifierMask"/>
+ <connections>
+ <action selector="useAllLigatures:" target="-1" id="moV-c7-97t"/>
+ </connections>
+ </menuItem>
+ </items>
+ </menu>
+ </menuItem>
+ <menuItem title="Baseline" id="sXq-et-1Ri">
+ <modifierMask key="keyEquivalentModifierMask"/>
+ <menu key="submenu" title="Baseline" id="KYR-8P-lx8">
+ <items>
+ <menuItem title="Use Default" id="67A-8V-vug">
+ <modifierMask key="keyEquivalentModifierMask"/>
+ <connections>
+ <action selector="unscript:" target="-1" id="Up7-4s-Jon"/>
+ </connections>
+ </menuItem>
+ <menuItem title="Superscript" id="SFc-KO-5qI">
+ <modifierMask key="keyEquivalentModifierMask"/>
+ <connections>
+ <action selector="superscript:" target="-1" id="x5b-jR-Mzu"/>
+ </connections>
+ </menuItem>
+ <menuItem title="Subscript" id="ZWL-Bt-6ZW">
+ <modifierMask key="keyEquivalentModifierMask"/>
+ <connections>
+ <action selector="subscript:" target="-1" id="QzD-8j-gLu"/>
+ </connections>
+ </menuItem>
+ <menuItem title="Raise" id="5N7-BF-ZUY">
+ <modifierMask key="keyEquivalentModifierMask"/>
+ <connections>
+ <action selector="raiseBaseline:" target="-1" id="BcO-M9-LZM"/>
+ </connections>
+ </menuItem>
+ <menuItem title="Lower" id="e8b-Rw-t81">
+ <modifierMask key="keyEquivalentModifierMask"/>
+ <connections>
+ <action selector="lowerBaseline:" target="-1" id="X2J-Pc-Ogx"/>
+ </connections>
+ </menuItem>
+ </items>
+ </menu>
+ </menuItem>
+ <menuItem isSeparatorItem="YES" id="Cem-Og-A1G"/>
+ <menuItem title="Show Colors" keyEquivalent="C" id="lZ3-P3-UGJ">
+ <connections>
+ <action selector="orderFrontColorPanel:" target="-1" id="YoJ-UY-Tt9"/>
+ </connections>
+ </menuItem>
+ <menuItem isSeparatorItem="YES" id="yhA-GE-gN2"/>
+ <menuItem title="Copy Style" keyEquivalent="c" id="nQm-Sr-GbX">
+ <modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
+ <connections>
+ <action selector="copyFont:" target="-1" id="SxV-u3-7w1"/>
+ </connections>
+ </menuItem>
+ <menuItem title="Paste Style" keyEquivalent="v" id="hIQ-B3-d8O">
+ <modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
+ <connections>
+ <action selector="pasteFont:" target="-1" id="Czg-GJ-vgr"/>
+ </connections>
+ </menuItem>
+ </items>
+ </menu>
+ </menuItem>
+ <menuItem title="Text" id="Kuz-Mo-MJ1">
+ <modifierMask key="keyEquivalentModifierMask"/>
+ <menu key="submenu" title="Text" id="xPB-e8-IsA">
+ <items>
+ <menuItem title="Align Left" keyEquivalent="{" id="3LH-sS-PYt">
+ <connections>
+ <action selector="alignLeft:" target="-1" id="xPq-SG-sIC"/>
+ </connections>
+ </menuItem>
+ <menuItem title="Center" keyEquivalent="|" id="j9O-8l-jvx">
+ <connections>
+ <action selector="alignCenter:" target="-1" id="ywf-BT-jAU"/>
+ </connections>
+ </menuItem>
+ <menuItem title="Justify" id="Cu1-Ej-sVf">
+ <modifierMask key="keyEquivalentModifierMask"/>
+ <connections>
+ <action selector="alignJustified:" target="-1" id="3h6-ee-dVa"/>
+ </connections>
+ </menuItem>
+ <menuItem title="Align Right" keyEquivalent="}" id="iCx-Yq-390">
+ <connections>
+ <action selector="alignRight:" target="-1" id="lgB-zb-jzQ"/>
+ </connections>
+ </menuItem>
+ <menuItem isSeparatorItem="YES" id="0b0-gJ-z6w"/>
+ <menuItem title="Writing Direction" id="WhS-ng-hUA">
+ <modifierMask key="keyEquivalentModifierMask"/>
+ <menu key="submenu" title="Writing Direction" id="Gj9-1w-bvs">
+ <items>
+ <menuItem title="Paragraph" enabled="NO" id="acM-BL-Eca">
+ <modifierMask key="keyEquivalentModifierMask"/>
+ </menuItem>
+ <menuItem id="sbL-Xa-ORk">
+ <string key="title"> Default</string>
+ <modifierMask key="keyEquivalentModifierMask"/>
+ <connections>
+ <action selector="makeBaseWritingDirectionNatural:" target="-1" id="lPg-nT-IFH"/>
+ </connections>
+ </menuItem>
+ <menuItem id="RFF-aQ-ZzF">
+ <string key="title"> Left to Right</string>
+ <modifierMask key="keyEquivalentModifierMask"/>
+ <connections>
+ <action selector="makeBaseWritingDirectionLeftToRight:" target="-1" id="Lph-tr-Gbd"/>
+ </connections>
+ </menuItem>
+ <menuItem id="PaM-da-L0a">
+ <string key="title"> Right to Left</string>
+ <modifierMask key="keyEquivalentModifierMask"/>
+ <connections>
+ <action selector="makeBaseWritingDirectionRightToLeft:" target="-1" id="VPP-dY-ZfI"/>
+ </connections>
+ </menuItem>
+ <menuItem isSeparatorItem="YES" id="dAI-Gk-iL6"/>
+ <menuItem title="Selection" enabled="NO" id="aOk-qi-EHy">
+ <modifierMask key="keyEquivalentModifierMask"/>
+ </menuItem>
+ <menuItem id="mYN-ux-79p">
+ <string key="title"> Default</string>
+ <modifierMask key="keyEquivalentModifierMask"/>
+ <connections>
+ <action selector="makeTextWritingDirectionNatural:" target="-1" id="67B-Sg-g3a"/>
+ </connections>
+ </menuItem>
+ <menuItem id="CjS-fT-ZLy">
+ <string key="title"> Left to Right</string>
+ <modifierMask key="keyEquivalentModifierMask"/>
+ <connections>
+ <action selector="makeTextWritingDirectionLeftToRight:" target="-1" id="Y8e-PC-A00"/>
+ </connections>
+ </menuItem>
+ <menuItem id="wtK-yJ-Vmd">
+ <string key="title"> Right to Left</string>
+ <modifierMask key="keyEquivalentModifierMask"/>
+ <connections>
+ <action selector="makeTextWritingDirectionRightToLeft:" target="-1" id="Q2o-E3-T9P"/>
+ </connections>
+ </menuItem>
+ </items>
+ </menu>
+ </menuItem>
+ <menuItem isSeparatorItem="YES" id="92Y-Ae-JGT"/>
+ <menuItem title="Show Ruler" id="hhK-En-Mqg">
+ <modifierMask key="keyEquivalentModifierMask"/>
+ <connections>
+ <action selector="toggleRuler:" target="-1" id="RFF-Sx-nox"/>
+ </connections>
+ </menuItem>
+ <menuItem title="Copy Ruler" keyEquivalent="c" id="0cg-w6-R8h">
+ <modifierMask key="keyEquivalentModifierMask" control="YES" command="YES"/>
+ <connections>
+ <action selector="copyRuler:" target="-1" id="cYG-YT-BY5"/>
+ </connections>
+ </menuItem>
+ <menuItem title="Paste Ruler" keyEquivalent="v" id="hEf-p5-d8h">
+ <modifierMask key="keyEquivalentModifierMask" control="YES" command="YES"/>
+ <connections>
+ <action selector="pasteRuler:" target="-1" id="sIS-Th-VTq"/>
+ </connections>
+ </menuItem>
+ </items>
+ </menu>
+ </menuItem>
+ </items>
+ </menu>
+ </menuItem>
<menuItem title="Debug" id="ZNC-5r-eBw">
<modifierMask key="keyEquivalentModifierMask"/>
<menu key="submenu" title="Debug" id="McE-ka-r79">
@@ -969,6 +1231,7 @@ CA
<string>stateImage</string>
</declaredKeys>
</arrayController>
+ <customObject id="oKh-9s-xc8" customClass="NSFontManager"/>
</objects>
<resources>
<image name="NSAddTemplate" width="11" height="11"/>
diff --git a/platform/macos/app/MapDocument.m b/platform/macos/app/MapDocument.m
index f1c4b1c8e5..2a260b83c9 100644
--- a/platform/macos/app/MapDocument.m
+++ b/platform/macos/app/MapDocument.m
@@ -475,6 +475,55 @@ NS_ARRAY_OF(id <MGLAnnotation>) *MBXFlattenedShapes(NS_ARRAY_OF(id <MGLAnnotatio
self.displayName = [NSString stringWithFormat:@"%@ @ %f", coordinateString, _mapView.zoomLevel];
}
+#pragma mark Format methods
+
+- (void)changeFont:(id)sender {
+ NSInteger clickedRow = self.styleLayersTableView.clickedRow;
+ NSIndexSet *rows;
+ if (clickedRow != -1) {
+ rows = [NSIndexSet indexSetWithIndex:clickedRow];
+ } else {
+ rows = self.styleLayersTableView.selectedRowIndexes;
+ }
+
+ [rows enumerateIndexesUsingBlock:^(NSUInteger idx, BOOL * _Nonnull stop) {
+ [self changeFont:sender atRow:idx];
+ }];
+}
+
+- (void)changeFont:(id)sender atRow:(NSInteger)row {
+ MGLSymbolStyleLayer *layer = self.mapView.style.reversedLayers[row];
+ NSString *fontName;
+ CGFloat fontSize = -1;
+ if ([layer isKindOfClass:[MGLSymbolStyleLayer class]]) {
+ NSExpression *fontNamesExpression = layer.textFontNames;
+ if (fontNamesExpression.expressionType == NSConstantValueExpressionType) {
+ fontName = fontNamesExpression.constantValue;
+ }
+
+ NSExpression *fontSizeExpression = layer.textFontSize;
+ if (fontSizeExpression.expressionType == NSConstantValueExpressionType) {
+ fontSize = [fontSizeExpression.constantValue doubleValue];
+ }
+ }
+
+ if (layer) {
+ NSFont *oldFont;
+ if (fontSize == -1) {
+ fontSize = [NSFont systemFontSize];
+ }
+ if (fontName) {
+ oldFont = [NSFont fontWithName:fontName size:fontSize];
+ } else {
+ oldFont = [NSFont systemFontOfSize:fontSize];
+ }
+
+ NSFont *newFont = [sender convertFont:oldFont];
+ layer.textFontNames = [NSExpression expressionWithFormat:@"{%@}", newFont.fontName];
+// layer.textFontSize = [NSExpression expressionForConstantValue:@(newFont.pointSize)];
+ }
+}
+
#pragma mark Debug methods
- (IBAction)toggleTileBoundaries:(id)sender {