git.y1.nz

SameBoy

Accurate GB/GBC emulator
download: https://git.y1.nz/archives/sameboy.tar.gz
README | Files | Log | Refs | LICENSE

commit e0432795005396fd1c3376b99eee18fbd62a06c7
parent 9d6f378d21c119b2547fec54c3b2ac37961bfa9d
Author: Lior Halphon <LIJI32@gmail.com>
Date:   Sat, 21 Jun 2025 14:50:12 +0300

Update the Cocoa UI to support Solarium (Memory viewer still not updated due to AppKit regression, let's see what the next beta has to say)

Diffstat:
MCocoa/CPU@2x.png0
MCocoa/CPU~solid.png0
MCocoa/CPU~solid@2x.png0
MCocoa/CPU~solid~dark.png0
MCocoa/CPU~solid~dark@2x.png0
MCocoa/CheatSearch.xib42+++++++++++++++++++++---------------------
MCocoa/Display~solid.png0
MCocoa/Display~solid@2x.png0
MCocoa/Display~solid~dark.png0
MCocoa/Display~solid~dark@2x.png0
MCocoa/Document.m39++++++++++++++++++++++++++++++++-------
MCocoa/Document.xib66+++++++++++++++++++++++++++++++++---------------------------------
MCocoa/GBApp.m25+++++++++++++++----------
ACocoa/GBColorTextCell.h5+++++
ACocoa/GBColorTextCell.m19+++++++++++++++++++
ACocoa/GBDisabledButton.h5+++++
ACocoa/GBDisabledButton.m8++++++++
MCocoa/GBHueSliderCell.m24++++++++++++++++++------
MCocoa/GBPaletteViewRow.xib32++++++++++++++++----------------
MCocoa/GBPreferencesWindow.m2+-
MCocoa/GBS11.xib14+++++++-------
MCocoa/GBTerminalTextFieldCell.m2+-
MCocoa/GBView.m4+++-
MCocoa/Icon.png0
MCocoa/Icon@2x.png0
MCocoa/Joypad@2x.png0
MCocoa/Joypad~dark@2x.png0
MCocoa/Joypad~solid.png0
MCocoa/Joypad~solid@2x.png0
MCocoa/MainMenu.xib65++++++++++++++++++++++++++++++++++++++++++-----------------------
ACocoa/NSControl+SolariumFixer.m108+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
MCocoa/Preferences.xib357++++++++++++++++++++++++++++++++++++++++++-------------------------------------
MCocoa/Speaker~solid.png0
MCocoa/Speaker~solid@2x.png0
MCocoa/Updates.png0
MCocoa/Updates@2x.png0
MCocoa/Updates~solid.png0
MCocoa/Updates~solid@2x.png0
MCocoa/Updates~solid~dark.png0
MCocoa/Updates~solid~dark@2x.png0
MiOS/GBCheatsController.m4++--
41 files changed, 526 insertions(+), 295 deletions(-)

diff --git a/Cocoa/CPU@2x.png b/Cocoa/CPU@2x.png Binary files differ. diff --git a/Cocoa/CPU~solid.png b/Cocoa/CPU~solid.png Binary files differ. diff --git a/Cocoa/CPU~solid@2x.png b/Cocoa/CPU~solid@2x.png Binary files differ. diff --git a/Cocoa/CPU~solid~dark.png b/Cocoa/CPU~solid~dark.png Binary files differ. diff --git a/Cocoa/CPU~solid~dark@2x.png b/Cocoa/CPU~solid~dark@2x.png Binary files differ. diff --git a/Cocoa/CheatSearch.xib b/Cocoa/CheatSearch.xib @@ -1,8 +1,8 @@ <?xml version="1.0" encoding="UTF-8"?> -<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="21507" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct"> +<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="24093.7" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct"> <dependencies> <deployment identifier="macosx"/> - <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="21507"/> + <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="24093.7"/> <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> </dependencies> <objects> @@ -103,7 +103,7 @@ </tableHeaderView> </scrollView> <button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="KdM-lW-WbP"> - <rect key="frame" x="371" y="25" width="96" height="32"/> + <rect key="frame" x="371" y="24" width="96" height="32"/> <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/> <buttonCell key="cell" type="push" title="Search" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="t4Y-Ud-mJm"> <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/> @@ -113,30 +113,30 @@ <action selector="search:" target="-2" id="7pG-JY-vEF"/> </connections> </button> - <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="fTv-nr-5FT"> - <rect key="frame" x="6" y="96" width="124" height="16"/> + <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="fTv-nr-5FT"> + <rect key="frame" x="6" y="95" width="124" height="17"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> - <textFieldCell key="cell" lineBreakMode="clipping" alignment="right" title="Search Condition:" id="9C2-Xp-JIA"> + <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" alignment="right" title="Search Condition:" id="9C2-Xp-JIA"> <font key="font" metaFont="system"/> <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/> <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/> </textFieldCell> </textField> - <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="vMd-zb-8jT"> - <rect key="frame" x="6" y="67" width="124" height="16"/> + <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="vMd-zb-8jT"> + <rect key="frame" x="6" y="64" width="124" height="17"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> - <textFieldCell key="cell" lineBreakMode="clipping" alignment="right" title="Expression:" id="Jgg-sA-jjs"> + <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" alignment="right" title="Expression:" id="Jgg-sA-jjs"> <font key="font" metaFont="system"/> <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/> <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/> </textFieldCell> </textField> <popUpButton verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="5Db-vP-S60"> - <rect key="frame" x="133" y="119" width="197" height="25"/> + <rect key="frame" x="133" y="120" width="197" height="25"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> <popUpButtonCell key="cell" type="push" title="8-Bit" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="al4-Jb-OJB" id="dkg-V5-wsX"> <behavior key="behavior" lightByBackground="YES" lightByGray="YES"/> - <font key="font" metaFont="menu"/> + <font key="font" metaFont="message"/> <menu key="menu" id="e5r-qR-pg7"> <items> <menuItem title="8-Bit" state="on" id="al4-Jb-OJB"/> @@ -151,7 +151,7 @@ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> <popUpButtonCell key="cell" type="push" title="Is Equal To…" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="Vfb-Dg-Jkb" id="DPm-QO-c64"> <behavior key="behavior" lightByBackground="YES" lightByGray="YES"/> - <font key="font" metaFont="menu"/> + <font key="font" metaFont="message"/> <menu key="menu" id="Kg9-Rd-1GQ"> <items> <menuItem title="Any" id="cEg-eI-4hb"/> @@ -173,7 +173,7 @@ <action selector="conditionChanged:" target="-2" id="KF9-vz-yNC"/> </connections> </popUpButton> - <textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Q42-Vu-TJW"> + <textField focusRingType="none" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Q42-Vu-TJW"> <rect key="frame" x="334" y="93" width="126" height="21"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" continuous="YES" sendsActionOnEndEditing="YES" borderStyle="bezel" title="$0" drawsBackground="YES" usesSingleLineMode="YES" id="WDs-GG-7Lc"> @@ -189,8 +189,8 @@ <outlet property="delegate" destination="-2" id="1bO-hp-igc"/> </connections> </textField> - <textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="XN7-BO-THS"> - <rect key="frame" x="136" y="64" width="324" height="21"/> + <textField focusRingType="none" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="XN7-BO-THS"> + <rect key="frame" x="136" y="62" width="324" height="21"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" enabled="NO" sendsActionOnEndEditing="YES" borderStyle="bezel" title="new == ($0)" drawsBackground="YES" usesSingleLineMode="YES" id="Krh-8w-4ug"> <font key="font" metaFont="system"/> @@ -205,7 +205,7 @@ </connections> </textField> <button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="tBa-6c-9AY"> - <rect key="frame" x="13" y="25" width="96" height="32"/> + <rect key="frame" x="13" y="24" width="96" height="32"/> <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/> <buttonCell key="cell" type="push" title="Reset" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="Pge-SU-Y1n"> <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/> @@ -215,7 +215,7 @@ <action selector="reset:" target="-2" id="KCy-Ob-tlg"/> </connections> </button> - <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="wbN-MX-lEy"> + <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="wbN-MX-lEy"> <rect key="frame" x="-3" y="4" width="486" height="14"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/> <textFieldCell key="cell" controlSize="small" lineBreakMode="clipping" alignment="center" title="Status" id="CM3-4U-qao"> @@ -225,7 +225,7 @@ </textFieldCell> </textField> <button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="o1I-5D-V4k"> - <rect key="frame" x="264" y="25" width="110" height="32"/> + <rect key="frame" x="264" y="24" width="110" height="32"/> <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/> <buttonCell key="cell" type="push" title="Add Cheat" bezelStyle="rounded" alignment="center" enabled="NO" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="GGV-nm-ASn"> <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/> @@ -235,10 +235,10 @@ <action selector="addCheat:" target="-2" id="7ax-kM-TeV"/> </connections> </button> - <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="veO-Qn-0Sz"> - <rect key="frame" x="6" y="126" width="124" height="16"/> + <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="veO-Qn-0Sz"> + <rect key="frame" x="6" y="126" width="124" height="17"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> - <textFieldCell key="cell" lineBreakMode="clipping" alignment="right" title="Data Type:" id="KuT-rz-eHm"> + <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="Data Type:" id="KuT-rz-eHm"> <font key="font" metaFont="system"/> <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/> <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/> diff --git a/Cocoa/Display~solid.png b/Cocoa/Display~solid.png Binary files differ. diff --git a/Cocoa/Display~solid@2x.png b/Cocoa/Display~solid@2x.png Binary files differ. diff --git a/Cocoa/Display~solid~dark.png b/Cocoa/Display~solid~dark.png Binary files differ. diff --git a/Cocoa/Display~solid~dark@2x.png b/Cocoa/Display~solid~dark@2x.png Binary files differ. diff --git a/Cocoa/Document.m b/Cocoa/Document.m @@ -916,9 +916,16 @@ again:; [self.vramWindow setFrame:vram_window_rect display:true animate:false]; - self.consoleWindow.title = [NSString stringWithFormat:@"Debug Console – %@", [self.fileURL.path lastPathComponent]]; - self.memoryWindow.title = [NSString stringWithFormat:@"Memory – %@", [self.fileURL.path lastPathComponent]]; - self.vramWindow.title = [NSString stringWithFormat:@"VRAM Viewer – %@", [self.fileURL.path lastPathComponent]]; + if (@available(macOS 11.0, *)) { + self.consoleWindow.subtitle = [self.fileURL.path lastPathComponent]; + self.memoryWindow.subtitle = [self.fileURL.path lastPathComponent]; + self.vramWindow.subtitle = [self.fileURL.path lastPathComponent]; + } + else { + self.consoleWindow.title = [NSString stringWithFormat:@"Debug Console – %@", [self.fileURL.path lastPathComponent]]; + self.memoryWindow.title = [NSString stringWithFormat:@"Memory – %@", [self.fileURL.path lastPathComponent]]; + self.vramWindow.title = [NSString stringWithFormat:@"VRAM Viewer – %@", [self.fileURL.path lastPathComponent]]; + } self.consoleWindow.level = NSNormalWindowLevel; @@ -1171,6 +1178,17 @@ again:; if (@available(macOS 10.10, *)) { _mainWindow.titlebarAppearsTransparent = true; } + + if (@available(macOS 26.0, *)) { + // There's a new minimum width for segmented controls in Solarium + NSRect frame = _gbsNextPrevButton.frame; + frame.origin.x -= 16; + _gbsNextPrevButton.frame = frame; + + frame = _gbsTracks.frame; + frame.size.width -= 16; + _gbsTracks.frame = frame; + } } - (bool)isCartContainer @@ -1628,7 +1646,7 @@ enum GBWindowResizeAction - (IBAction)showConsoleWindow:(id)sender { - [self.consoleWindow orderBack:nil]; + [self.consoleWindow orderFront:nil]; double secondUsage = GB_debugger_get_second_cpu_usage(&_gb); _cpuCounter.stringValue = [NSString stringWithFormat:@"%.2f%%", secondUsage * 100]; } @@ -2477,9 +2495,16 @@ enum GBWindowResizeAction - (void)setFileURL:(NSURL *)fileURL { [super setFileURL:fileURL]; - self.consoleWindow.title = [NSString stringWithFormat:@"Debug Console – %@", [[fileURL path] lastPathComponent]]; - self.memoryWindow.title = [NSString stringWithFormat:@"Memory – %@", [[fileURL path] lastPathComponent]]; - self.vramWindow.title = [NSString stringWithFormat:@"VRAM Viewer – %@", [[fileURL path] lastPathComponent]]; + if (@available(macOS 11.0, *)) { + self.consoleWindow.subtitle = [self.fileURL.path lastPathComponent]; + self.memoryWindow.subtitle = [self.fileURL.path lastPathComponent]; + self.vramWindow.subtitle = [self.fileURL.path lastPathComponent]; + } + else { + self.consoleWindow.title = [NSString stringWithFormat:@"Debug Console – %@", [self.fileURL.path lastPathComponent]]; + self.memoryWindow.title = [NSString stringWithFormat:@"Memory – %@", [self.fileURL.path lastPathComponent]]; + self.vramWindow.title = [NSString stringWithFormat:@"VRAM Viewer – %@", [self.fileURL.path lastPathComponent]]; + } } - (BOOL)splitView:(GBSplitView *)splitView canCollapseSubview:(NSView *)subview; diff --git a/Cocoa/Document.xib b/Cocoa/Document.xib @@ -1,8 +1,8 @@ <?xml version="1.0" encoding="UTF-8"?> -<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="23727" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct"> +<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="24093.7" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct"> <dependencies> <deployment identifier="macosx"/> - <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="23727"/> + <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="24093.7"/> <capability name="System colors introduced in macOS 10.14" minToolsVersion="10.0"/> <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> </dependencies> @@ -370,20 +370,20 @@ <rect key="frame" x="0.0" y="0.0" width="528" height="320"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> </view> - <toolbar key="toolbar" implicitIdentifier="D857E961-E523-4295-83F8-0849316E827C" autosavesConfiguration="NO" allowsUserCustomization="NO" displayMode="iconAndLabel" sizeMode="regular" id="82v-uB-RPi"> + <toolbar key="toolbar" implicitIdentifier="D857E961-E523-4295-83F8-0849316E827C" autosavesConfiguration="NO" allowsUserCustomization="NO" showsBaselineSeparator="NO" displayMode="iconAndLabel" sizeMode="regular" id="82v-uB-RPi"> <allowedToolbarItems> <toolbarItem implicitItemIdentifier="NSToolbarSpaceItem" id="WUk-8p-S6B"/> <toolbarItem implicitItemIdentifier="NSToolbarFlexibleSpaceItem" id="E3z-um-6KG"/> <toolbarItem implicitItemIdentifier="4F6AAE25-1E9D-4111-9E5B-91F0792E56CD" label="Address Space" paletteLabel="Address Space" id="VTy-lj-K0H"> <nil key="toolTip"/> <size key="minSize" width="100" height="25"/> - <size key="maxSize" width="130" height="25"/> + <size key="maxSize" width="160" height="25"/> <popUpButton key="view" verticalHuggingPriority="750" id="vfJ-vu-gqJ"> - <rect key="frame" x="0.0" y="14" width="128" height="25"/> + <rect key="frame" x="0.0" y="14" width="160" height="25"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/> <popUpButtonCell key="cell" type="roundTextured" bezelStyle="texturedRounded" alignment="left" lineBreakMode="truncatingTail" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="bpD-j9-omo"> <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/> - <font key="font" metaFont="menu"/> + <font key="font" metaFont="message"/> <menu key="menu" id="gTX-6Z-mOH"> <items> <menuItem title="Entire Space" id="Zp5-J9-dd3"/> @@ -403,10 +403,10 @@ <nil key="toolTip"/> <size key="minSize" width="64" height="22"/> <size key="maxSize" width="64" height="22"/> - <textField key="view" verticalHuggingPriority="750" id="rdV-q6-hc6"> + <textField key="view" focusRingType="none" verticalHuggingPriority="750" id="rdV-q6-hc6"> <rect key="frame" x="0.0" y="14" width="64" height="22"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/> - <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" id="JCn-Y1-eHS"> + <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="JCn-Y1-eHS"> <font key="font" metaFont="system"/> <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/> <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/> @@ -420,7 +420,7 @@ <nil key="toolTip"/> <size key="minSize" width="96" height="22"/> <size key="maxSize" width="128" height="22"/> - <textField key="view" verticalHuggingPriority="750" id="EJd-jG-hmH"> + <textField key="view" focusRingType="none" verticalHuggingPriority="750" id="EJd-jG-hmH"> <rect key="frame" x="0.0" y="14" width="96" height="22"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/> <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" state="on" borderStyle="bezel" bezelStyle="round" id="vg5-Nn-abb"> @@ -452,7 +452,7 @@ <windowCollectionBehavior key="collectionBehavior" fullScreenAuxiliary="YES"/> <rect key="contentRect" x="0.0" y="0.0" width="512" height="432"/> <rect key="screenRect" x="0.0" y="0.0" width="2560" height="1415"/> - <view key="contentView" id="GYW-dv-Um1"> + <view key="contentView" misplaced="YES" id="GYW-dv-Um1"> <rect key="frame" x="0.0" y="0.0" width="512" height="432"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <subviews> @@ -460,7 +460,7 @@ <rect key="frame" x="0.0" y="406" width="512" height="5"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/> </box> - <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="6vK-IP-PmP"> + <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="6vK-IP-PmP"> <rect key="frame" x="-2" y="4" width="516" height="14"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/> <textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="center" id="umk-4r-VNg"> @@ -593,7 +593,7 @@ </connections> </popUpButton> <popUpButton focusRingType="none" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="YIJ-Qc-SIZ"> - <rect key="frame" x="135" y="412" width="96" height="17"/> + <rect key="frame" x="135" y="412" width="100" height="17"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/> <popUpButtonCell key="cell" type="roundRect" title="Effective Tilemap" bezelStyle="roundedRect" alignment="left" controlSize="mini" lineBreakMode="truncatingTail" state="on" borderStyle="border" focusRingType="none" imageScaling="proportionallyDown" inset="2" selectedItem="XRF-Vj-3gs" id="3W1-Db-wDn"> <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/> @@ -611,7 +611,7 @@ </connections> </popUpButton> <popUpButton focusRingType="none" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="k4c-Vg-MBu"> - <rect key="frame" x="235" y="412" width="96" height="17"/> + <rect key="frame" x="239" y="412" width="100" height="17"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/> <popUpButtonCell key="cell" type="roundRect" title="Effective Tileset" bezelStyle="roundedRect" alignment="left" controlSize="mini" lineBreakMode="truncatingTail" state="on" borderStyle="border" focusRingType="none" imageScaling="proportionallyDown" inset="2" selectedItem="CRe-dX-rzY" id="h53-sb-Odg"> <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/> @@ -679,7 +679,7 @@ </tabView> </subviews> </view> - <toolbar key="toolbar" implicitIdentifier="7FF8B5E5-F61B-408C-9634-A5D496FE5E70" autosavesConfiguration="NO" allowsUserCustomization="NO" displayMode="iconOnly" sizeMode="regular" id="SVR-To-n7n"> + <toolbar key="toolbar" implicitIdentifier="7FF8B5E5-F61B-408C-9634-A5D496FE5E70" autosavesConfiguration="NO" allowsUserCustomization="NO" showsBaselineSeparator="NO" displayMode="iconOnly" sizeMode="regular" id="SVR-To-n7n"> <allowedToolbarItems> <toolbarItem implicitItemIdentifier="NSToolbarFlexibleSpaceItem" id="hnI-48-dYt"/> <toolbarItem implicitItemIdentifier="B9D3CF98-8020-4389-9372-F99361440794" label="" paletteLabel="" id="fmK-Jl-Koj"> @@ -716,7 +716,7 @@ </connections> <point key="canvasLocation" x="182" y="760"/> </window> - <window title="Printer Feed" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" restorable="NO" hidesOnDeactivate="YES" releasedWhenClosed="NO" visibleAtLaunch="NO" animationBehavior="default" id="NdE-0B-WCf" customClass="GBPanel"> + <window title="Printer" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" restorable="NO" hidesOnDeactivate="YES" releasedWhenClosed="NO" visibleAtLaunch="NO" animationBehavior="default" id="NdE-0B-WCf" customClass="GBPanel"> <windowStyleMask key="styleMask" titled="YES" closable="YES" resizable="YES"/> <rect key="contentRect" x="0.0" y="0.0" width="320" height="288"/> <rect key="screenRect" x="0.0" y="0.0" width="2560" height="1415"/> @@ -732,7 +732,7 @@ </imageView> </subviews> </view> - <toolbar key="toolbar" implicitIdentifier="1FF86A2B-6637-4EE6-A25A-7298D79AE84E" autosavesConfiguration="NO" allowsUserCustomization="NO" displayMode="iconAndLabel" sizeMode="regular" id="gH3-SH-7il"> + <toolbar key="toolbar" implicitIdentifier="1FF86A2B-6637-4EE6-A25A-7298D79AE84E" autosavesConfiguration="NO" allowsUserCustomization="NO" showsBaselineSeparator="NO" displayMode="iconAndLabel" sizeMode="regular" id="gH3-SH-7il"> <allowedToolbarItems> <toolbarItem implicitItemIdentifier="15EB8D49-8C6E-42F2-9F7F-F7D7A0BBDAAF" label="Save" paletteLabel="Save" tag="-1" image="NSFolder" id="CBz-1N-o0Q"> <size key="minSize" width="22" height="22"/> @@ -784,7 +784,7 @@ <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <clipView key="contentView" id="mzf-yu-RID"> <rect key="frame" x="1" y="1" width="604" height="257"/> - <autoresizingMask key="autoresizingMask"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <subviews> <tableView verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="none" alternatingRowBackgroundColors="YES" columnReordering="NO" columnResizing="NO" multipleSelection="NO" emptySelection="NO" autosaveColumns="NO" typeSelect="NO" rowHeight="24" headerView="pvX-uJ-qK5" id="tA3-8T-bxb"> <rect key="frame" x="0.0" y="0.0" width="604" height="240"/> @@ -864,8 +864,8 @@ <rect key="frame" x="-1" y="0.0" width="308" height="135"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> <subviews> - <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" id="hqi-ob-NW9"> - <rect key="frame" x="20" y="51" width="176" height="19"/> + <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" id="hqi-ob-NW9"> + <rect key="frame" x="20" y="52" width="176" height="18"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES"/> <textFieldCell key="cell" lineBreakMode="clipping" alignment="right" title="To value:" id="Ycx-oE-aA4"> <font key="font" metaFont="system"/> @@ -874,7 +874,7 @@ </textFieldCell> </textField> <button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Kq8-6F-9GK"> - <rect key="frame" x="42" y="21" width="152" height="19"/> + <rect key="frame" x="42" y="22" width="152" height="18"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES"/> <buttonCell key="cell" type="check" title="Only if old value was: " bezelStyle="regularSquare" imagePosition="left" alignment="right" state="on" inset="2" id="LkB-WQ-9Qd"> <behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/> @@ -884,8 +884,8 @@ <action selector="updateCheat:" target="v7q-gT-jHT" id="kNc-cj-bmF"/> </connections> </button> - <textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="C6E-oI-hDC"> - <rect key="frame" x="22" y="112" width="276" height="21"/> + <textField focusRingType="none" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="C6E-oI-hDC"> + <rect key="frame" x="22" y="113" width="276" height="21"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES"/> <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" borderStyle="bezel" placeholderString="Description" drawsBackground="YES" usesSingleLineMode="YES" id="2uR-9N-hBb"> <font key="font" metaFont="system"/> @@ -896,7 +896,7 @@ <outlet property="delegate" destination="v7q-gT-jHT" id="zyw-h0-hRP"/> </connections> </textField> - <textField verticalHuggingPriority="750" fixedFrame="YES" mirrorLayoutDirectionWhenInternationalizing="never" translatesAutoresizingMaskIntoConstraints="NO" id="qHx-1z-daR"> + <textField focusRingType="none" verticalHuggingPriority="750" fixedFrame="YES" mirrorLayoutDirectionWhenInternationalizing="never" translatesAutoresizingMaskIntoConstraints="NO" id="qHx-1z-daR"> <rect key="frame" x="202" y="82" width="96" height="21"/> <autoresizingMask key="autoresizingMask" flexibleMaxY="YES"/> <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" state="on" borderStyle="bezel" drawsBackground="YES" usesSingleLineMode="YES" id="edq-46-JeP" customClass="GBCheatTextFieldCell"> @@ -911,7 +911,7 @@ <outlet property="delegate" destination="v7q-gT-jHT" id="79v-33-R1X"/> </connections> </textField> - <textField verticalHuggingPriority="750" fixedFrame="YES" mirrorLayoutDirectionWhenInternationalizing="never" translatesAutoresizingMaskIntoConstraints="NO" id="N3I-PP-X85"> + <textField focusRingType="none" verticalHuggingPriority="750" fixedFrame="YES" mirrorLayoutDirectionWhenInternationalizing="never" translatesAutoresizingMaskIntoConstraints="NO" id="N3I-PP-X85"> <rect key="frame" x="202" y="51" width="96" height="21"/> <autoresizingMask key="autoresizingMask" flexibleMaxY="YES"/> <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" state="on" borderStyle="bezel" drawsBackground="YES" usesSingleLineMode="YES" id="CV2-D9-WsB" customClass="GBCheatTextFieldCell"> @@ -926,7 +926,7 @@ <outlet property="delegate" destination="v7q-gT-jHT" id="P69-nT-oOt"/> </connections> </textField> - <textField verticalHuggingPriority="750" fixedFrame="YES" mirrorLayoutDirectionWhenInternationalizing="never" translatesAutoresizingMaskIntoConstraints="NO" id="S6O-LB-gSj"> + <textField focusRingType="none" verticalHuggingPriority="750" fixedFrame="YES" mirrorLayoutDirectionWhenInternationalizing="never" translatesAutoresizingMaskIntoConstraints="NO" id="S6O-LB-gSj"> <rect key="frame" x="202" y="20" width="96" height="21"/> <autoresizingMask key="autoresizingMask" flexibleMaxY="YES"/> <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" state="on" borderStyle="bezel" drawsBackground="YES" usesSingleLineMode="YES" id="tpM-ys-MEO" customClass="GBCheatTextFieldCell"> @@ -941,8 +941,8 @@ <outlet property="delegate" destination="v7q-gT-jHT" id="6RH-dg-SL7"/> </connections> </textField> - <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" id="uFo-ly-Veq"> - <rect key="frame" x="18" y="82" width="178" height="19"/> + <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" id="uFo-ly-Veq"> + <rect key="frame" x="18" y="83" width="178" height="18"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES"/> <textFieldCell key="cell" lineBreakMode="clipping" alignment="right" title="Change byte at address:" id="xwa-TF-eY1"> <font key="font" metaFont="system"/> @@ -952,8 +952,8 @@ </textField> </subviews> </customView> - <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="r5T-ol-Dod"> - <rect key="frame" x="316" y="115" width="270" height="16"/> + <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="r5T-ol-Dod"> + <rect key="frame" x="316" y="116" width="270" height="16"/> <autoresizingMask key="autoresizingMask" flexibleMinX="YES"/> <textFieldCell key="cell" lineBreakMode="clipping" title="Import GameShark or Game Genie cheat:" id="0mf-EN-cKc"> <font key="font" metaFont="system"/> @@ -961,7 +961,7 @@ <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/> </textFieldCell> </textField> - <textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="X7K-nJ-alF"> + <textField focusRingType="none" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="X7K-nJ-alF"> <rect key="frame" x="351" y="82" width="233" height="21"/> <autoresizingMask key="autoresizingMask" flexibleMinX="YES"/> <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" borderStyle="bezel" placeholderString="Code" drawsBackground="YES" usesSingleLineMode="YES" id="2bz-dT-7Fi"> @@ -976,7 +976,7 @@ <action selector="selectText:" target="KHj-uX-Wbk" id="11z-0U-tMA"/> </connections> </textField> - <textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="KHj-uX-Wbk"> + <textField focusRingType="none" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="KHj-uX-Wbk"> <rect key="frame" x="351" y="51" width="233" height="21"/> <autoresizingMask key="autoresizingMask" flexibleMinX="YES"/> <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" borderStyle="bezel" placeholderString="Description" drawsBackground="YES" usesSingleLineMode="YES" id="50d-va-Cen"> @@ -989,7 +989,7 @@ </connections> </textField> <button verticalHuggingPriority="750" id="C3V-Ep-bMj"> - <rect key="frame" x="508" y="12" width="83" height="32"/> + <rect key="frame" x="508" y="13" width="83" height="32"/> <autoresizingMask key="autoresizingMask" flexibleMinX="YES"/> <buttonCell key="cell" type="push" title="Import" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="mMP-KW-YNy"> <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/> @@ -1030,7 +1030,7 @@ <image name="HelpTemplate" width="14" height="14"/> <image name="InterruptTemplate" width="14" height="14"/> <image name="NSFolder" width="32" height="32"/> - <image name="NSStopProgressFreestandingTemplate" width="15" height="15"/> + <image name="NSStopProgressFreestandingTemplate" width="20" height="20"/> <image name="NextTemplate" width="14" height="14"/> <image name="StepTemplate" width="14" height="14"/> <image name="printer" catalog="system" width="18" height="16"/> diff --git a/Cocoa/GBApp.m b/Cocoa/GBApp.m @@ -11,6 +11,10 @@ #define UPDATE_SERVER "https://sameboy.github.io" +@interface NSToolbarItem(private) +- (NSButton *)_view; +@end + static uint32_t color_to_int(NSColor *color) { color = [color colorUsingColorSpace:[NSColorSpace deviceRGBColorSpace]]; @@ -40,12 +44,9 @@ static uint32_t color_to_int(NSColor *color) - (void) applicationDidFinishLaunching:(NSNotification *)notification { // Refresh icon if launched via a software update - if (@available(macOS 16.0, *)) { - // Can this be done without breaking Icon Composer-based icons? - } - else { - [NSApplication sharedApplication].applicationIconImage = [NSImage imageNamed:@"AppIcon"]; - } + NSImage *icon = [[NSWorkspace sharedWorkspace] iconForFile:[[NSBundle mainBundle] bundlePath]]; + icon.size = [NSApplication sharedApplication].applicationIconImage.size; + [NSApplication sharedApplication].applicationIconImage = icon; NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; for (unsigned i = 0; i < GBKeyboardButtonCount; i++) { @@ -331,9 +332,8 @@ static uint32_t color_to_int(NSColor *color) #ifndef UPDATE_SUPPORT [_preferencesWindow.toolbar removeItemAtIndex:4]; #endif - if (@available(macOS 11.0, *)) { - [_preferencesWindow.toolbar insertItemWithItemIdentifier:NSToolbarFlexibleSpaceItemIdentifier atIndex:0]; - [_preferencesWindow.toolbar insertItemWithItemIdentifier:NSToolbarFlexibleSpaceItemIdentifier atIndex:_preferencesWindow.toolbar.items.count]; + for (unsigned i = _preferencesWindow.toolbar.items.count; i--;) { + [_preferencesWindow.toolbar.items[i] _view].imageScaling = NSImageScaleNone; } } [_preferencesWindow makeKeyAndOrderFront:self]; @@ -393,7 +393,12 @@ static uint32_t color_to_int(NSColor *color) else { self.updateChanges.preferences.standardFontFamily = @"Lucida Grande"; } - self.updateChanges.preferences.fixedFontFamily = @"Menlo"; + if (@available(macOS 10.15, *)) { + self.updateChanges.preferences.fixedFontFamily = [NSFont monospacedSystemFontOfSize:12 weight:NSFontWeightRegular].displayName; + } + else { + self.updateChanges.preferences.fixedFontFamily = @"Menlo"; + } self.updateChanges.drawsBackground = false; [self.updateChanges.mainFrame loadHTMLString:html baseURL:nil]; }); diff --git a/Cocoa/GBColorTextCell.h b/Cocoa/GBColorTextCell.h @@ -0,0 +1,5 @@ +#import <Cocoa/Cocoa.h> + +@interface GBColorTextCell : NSTextFieldCell + +@end diff --git a/Cocoa/GBColorTextCell.m b/Cocoa/GBColorTextCell.m @@ -0,0 +1,19 @@ +#import "GBColorTextCell.h" + +@implementation GBColorTextCell + +- (void)drawWithFrame:(NSRect)cellFrame inView:(NSView *)controlView +{ + [self.backgroundColor set]; + NSRectFill(cellFrame); + + NSBezierPath *path = [NSBezierPath bezierPathWithRect:cellFrame]; + path.lineWidth = 2; + +[[NSColor colorWithWhite:0 alpha:0.25] setStroke]; + [path addClip]; + [path stroke]; + + [self drawInteriorWithFrame:cellFrame inView:controlView]; +} +@end diff --git a/Cocoa/GBDisabledButton.h b/Cocoa/GBDisabledButton.h @@ -0,0 +1,5 @@ +#import <Cocoa/Cocoa.h> + +@interface GBDisabledButton : NSButton + +@end diff --git a/Cocoa/GBDisabledButton.m b/Cocoa/GBDisabledButton.m @@ -0,0 +1,8 @@ +#import "GBDisabledButton.h" + +@implementation GBDisabledButton +- (void)mouseDown:(NSEvent *)event +{ + +} +@end diff --git a/Cocoa/GBHueSliderCell.m b/Cocoa/GBHueSliderCell.m @@ -46,17 +46,29 @@ -(void)drawKnob:(NSRect)knobRect { [super drawKnob:knobRect]; - NSRect peekRect = knobRect; - peekRect.size.width /= 2; - peekRect.size.height = peekRect.size.width; - peekRect.origin.x += peekRect.size.width / 2; - peekRect.origin.y += peekRect.size.height / 2; + NSBezierPath *path = nil; + if (@available(macos 26.0, *)) { + NSRect peekRect = knobRect; + peekRect.size.height /= 2; + peekRect.size.width -= peekRect.size.height; + peekRect.origin.x += peekRect.size.height / 2; + peekRect.origin.y += peekRect.size.height / 2; + path = [NSBezierPath bezierPathWithRoundedRect:peekRect xRadius:peekRect.size.height / 2 yRadius:peekRect.size.height / 2]; + } + else { + NSRect peekRect = knobRect; + peekRect.size.width /= 2; + peekRect.size.height = peekRect.size.width; + peekRect.origin.x += peekRect.size.width / 2; + peekRect.origin.y += peekRect.size.height / 2; + path = [NSBezierPath bezierPathWithOvalInRect:peekRect]; + + } NSColor *color = self.colorValue; if (!self.enabled) { color = [color colorWithAlphaComponent:0.5]; } [color setFill]; - NSBezierPath *path = [NSBezierPath bezierPathWithOvalInRect:peekRect]; [path fill]; [[NSColor colorWithWhite:0 alpha:0.25] setStroke]; [path setLineWidth:0.5]; diff --git a/Cocoa/GBPaletteViewRow.xib b/Cocoa/GBPaletteViewRow.xib @@ -1,8 +1,8 @@ <?xml version="1.0" encoding="UTF-8"?> -<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="21507" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct"> +<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="24093.7" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct"> <dependencies> <deployment identifier="macosx"/> - <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="21507"/> + <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="24093.7"/> <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> </dependencies> <objects> @@ -22,44 +22,44 @@ <rect key="frame" x="0.0" y="0.0" width="512" height="24"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/> <subviews> - <textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="ypt-t4-Mf3"> - <rect key="frame" x="131" y="0.0" width="96" height="24"/> + <textField focusRingType="none" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="ypt-t4-Mf3"> + <rect key="frame" x="131" y="0.0" width="95" height="24"/> <autoresizingMask key="autoresizingMask"/> - <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" sendsActionOnEndEditing="YES" borderStyle="border" alignment="center" title="$7FFF" drawsBackground="YES" id="sKu-Uy-2LG"> + <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" sendsActionOnEndEditing="YES" borderStyle="border" alignment="center" title="$7FFF" drawsBackground="YES" id="sKu-Uy-2LG" customClass="GBColorTextCell"> <font key="font" size="13" name="Menlo-Regular"/> <color key="textColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> </textFieldCell> </textField> - <textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="KkX-Z8-Sqi"> - <rect key="frame" x="226" y="0.0" width="96" height="24"/> + <textField focusRingType="none" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="KkX-Z8-Sqi"> + <rect key="frame" x="226" y="0.0" width="95" height="24"/> <autoresizingMask key="autoresizingMask"/> - <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" sendsActionOnEndEditing="YES" borderStyle="border" alignment="center" title="$7FFF" drawsBackground="YES" id="9LH-TF-W1L"> + <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" sendsActionOnEndEditing="YES" borderStyle="border" alignment="center" title="$7FFF" drawsBackground="YES" id="9LH-TF-W1L" customClass="GBColorTextCell"> <font key="font" size="13" name="Menlo-Regular"/> <color key="textColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> </textFieldCell> </textField> - <textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="jDk-Ej-4yI"> - <rect key="frame" x="321" y="0.0" width="96" height="24"/> + <textField focusRingType="none" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="jDk-Ej-4yI"> + <rect key="frame" x="321" y="0.0" width="95" height="24"/> <autoresizingMask key="autoresizingMask"/> - <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" sendsActionOnEndEditing="YES" borderStyle="border" alignment="center" title="$7FFF" drawsBackground="YES" id="arE-i5-zCC"> + <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" sendsActionOnEndEditing="YES" borderStyle="border" alignment="center" title="$7FFF" drawsBackground="YES" id="arE-i5-zCC" customClass="GBColorTextCell"> <font key="font" size="13" name="Menlo-Regular"/> <color key="textColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> </textFieldCell> </textField> - <textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="7PI-YE-fTk"> - <rect key="frame" x="416" y="0.0" width="96" height="24"/> + <textField focusRingType="none" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="7PI-YE-fTk"> + <rect key="frame" x="416" y="0.0" width="95" height="24"/> <autoresizingMask key="autoresizingMask"/> - <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" sendsActionOnEndEditing="YES" borderStyle="border" alignment="center" title="$7FFF" drawsBackground="YES" id="ZbU-nE-FsE"> + <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" sendsActionOnEndEditing="YES" borderStyle="border" alignment="center" title="$7FFF" drawsBackground="YES" id="ZbU-nE-FsE" customClass="GBColorTextCell"> <font key="font" size="13" name="Menlo-Regular"/> <color key="textColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> </textFieldCell> </textField> - <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="NOK-yI-LKh"> - <rect key="frame" x="4" y="0.0" width="121" height="20"/> + <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="NOK-yI-LKh"> + <rect key="frame" x="8" y="0.0" width="121" height="20"/> <autoresizingMask key="autoresizingMask"/> <textFieldCell key="cell" lineBreakMode="clipping" title="Background 0" id="qM4-cY-SDE"> <font key="font" usesAppearanceFont="YES"/> diff --git a/Cocoa/GBPreferencesWindow.m b/Cocoa/GBPreferencesWindow.m @@ -20,7 +20,7 @@ - (NSWindowToolbarStyle)toolbarStyle { - return NSWindowToolbarStyleExpanded; + return NSWindowToolbarStylePreference; } - (void)close diff --git a/Cocoa/GBS11.xib b/Cocoa/GBS11.xib @@ -1,8 +1,8 @@ <?xml version="1.0" encoding="UTF-8"?> -<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14868" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct"> +<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="24093.7" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct"> <dependencies> <deployment identifier="macosx"/> - <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14868"/> + <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="24093.7"/> <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> </dependencies> <objects> @@ -25,7 +25,7 @@ <rect key="frame" x="0.0" y="0.0" width="332" height="221"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/> <subviews> - <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" id="H3v-X3-48q"> + <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" id="H3v-X3-48q"> <rect key="frame" x="18" y="192" width="296" height="19"/> <autoresizingMask key="autoresizingMask" flexibleMinY="YES"/> <textFieldCell key="cell" lineBreakMode="clipping" alignment="center" title="Title" id="BwZ-Zj-sP6"> @@ -34,7 +34,7 @@ <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/> </textFieldCell> </textField> - <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" id="gaD-ZH-Beh"> + <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" id="gaD-ZH-Beh"> <rect key="frame" x="18" y="166" width="296" height="16"/> <autoresizingMask key="autoresizingMask" flexibleMinY="YES"/> <textFieldCell key="cell" lineBreakMode="clipping" alignment="center" title="Author" id="IgT-r1-T38"> @@ -59,7 +59,7 @@ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/> <popUpButtonCell key="cell" type="roundTextured" bezelStyle="texturedRounded" alignment="center" lineBreakMode="truncatingTail" borderStyle="border" focusRingType="none" imageScaling="proportionallyDown" inset="2" id="YJh-dI-A5D"> <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/> - <font key="font" metaFont="menu"/> + <font key="font" metaFont="message"/> <menu key="menu" id="Knp-Ok-Pb4"/> </popUpButtonCell> <connections> @@ -67,7 +67,7 @@ </connections> </popUpButton> <segmentedControl verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="SRS-M5-VVL"> - <rect key="frame" x="247" y="129" width="68" height="24"/> + <rect key="frame" x="247" y="128" width="68" height="25"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/> <segmentedCell key="cell" borderStyle="border" alignment="left" style="rounded" trackingMode="momentary" id="cmq-I8-cFL"> <font key="font" metaFont="system"/> @@ -94,7 +94,7 @@ </customView> </subviews> </customView> - <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" id="2dl-dH-E3J"> + <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" id="2dl-dH-E3J"> <rect key="frame" x="18" y="5" width="296" height="14"/> <autoresizingMask key="autoresizingMask" flexibleMinY="YES"/> <textFieldCell key="cell" controlSize="small" lineBreakMode="clipping" alignment="center" title="Copyright" id="nM9-oF-OV9"> diff --git a/Cocoa/GBTerminalTextFieldCell.m b/Cocoa/GBTerminalTextFieldCell.m @@ -26,7 +26,7 @@ field_editor->_field = (NSTextField *)controlView; ((NSTextFieldCell *)controlView.cell).textInset = field_editor.textContainerInset = - NSMakeSize(0, 2); + NSMakeSize(7, 2); return field_editor; } diff --git a/Cocoa/GBView.m b/Cocoa/GBView.m @@ -285,7 +285,9 @@ static const uint8_t workboy_vk_to_key[] = { - (void)setFrame:(NSRect)frame { - frame = self.superview.frame; + NSView *superview = self.superview; + if (GB_unlikely(!superview)) return; + frame = superview.frame; if (_gb && ![[NSUserDefaults standardUserDefaults] boolForKey:@"GBAspectRatioUnkept"]) { double ratio = frame.size.width / frame.size.height; double width = GB_get_screen_width(_gb); diff --git a/Cocoa/Icon.png b/Cocoa/Icon.png Binary files differ. diff --git a/Cocoa/Icon@2x.png b/Cocoa/Icon@2x.png Binary files differ. diff --git a/Cocoa/Joypad@2x.png b/Cocoa/Joypad@2x.png Binary files differ. diff --git a/Cocoa/Joypad~dark@2x.png b/Cocoa/Joypad~dark@2x.png Binary files differ. diff --git a/Cocoa/Joypad~solid.png b/Cocoa/Joypad~solid.png Binary files differ. diff --git a/Cocoa/Joypad~solid@2x.png b/Cocoa/Joypad~solid@2x.png Binary files differ. diff --git a/Cocoa/MainMenu.xib b/Cocoa/MainMenu.xib @@ -1,8 +1,8 @@ <?xml version="1.0" encoding="UTF-8"?> -<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="21507" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct"> +<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="24093.7" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct"> <dependencies> <deployment identifier="macosx"/> - <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="21507"/> + <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="24093.7"/> </dependencies> <objects> <customObject id="-2" userLabel="File's Owner" customClass="NSApplication"> @@ -102,7 +102,7 @@ </menu> </menuItem> <menuItem isSeparatorItem="YES" id="m54-Is-iLE"/> - <menuItem title="New Cartridge Instance…" keyEquivalent="n" id="Vld-be-NZu"> + <menuItem title="New Cartridge Instance…" secondaryImage="plus.square.on.square" catalog="system" keyEquivalent="n" id="Vld-be-NZu"> <connections> <action selector="newCartridgeInstance:" target="-1" id="GJc-xU-ZEr"/> </connections> @@ -158,7 +158,7 @@ </connections> </menuItem> <menuItem isSeparatorItem="YES" id="Aru-vr-frG"/> - <menuItem title="Find" id="efg-jw-GVP"> + <menuItem title="Find" secondaryImage="text.page.badge.magnifyingglass" catalog="system" id="efg-jw-GVP"> <modifierMask key="keyEquivalentModifierMask"/> <menu key="submenu" title="Find" id="4R6-IU-Jq6"> <items> @@ -197,23 +197,23 @@ <modifierMask key="keyEquivalentModifierMask"/> <menu key="submenu" title="Emulation" id="HyV-fh-RgO"> <items> - <menuItem title="Reset" keyEquivalent="r" id="p0i-Lt-sTg"> + <menuItem title="Reset" secondaryImage="arrow.trianglehead.2.counterclockwise.rotate.90" catalog="system" keyEquivalent="r" id="p0i-Lt-sTg"> <connections> <action selector="reset:" target="-1" id="DKW-Bd-h3v"/> </connections> </menuItem> - <menuItem title="Quick Reset" tag="-1" alternate="YES" keyEquivalent="r" id="uPG-01-49E"> + <menuItem title="Quick Reset" secondaryImage="arrow.trianglehead.2.counterclockwise.rotate.90" catalog="system" tag="-1" alternate="YES" keyEquivalent="r" id="uPG-01-49E"> <modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/> <connections> <action selector="reset:" target="-1" id="VV1-VP-L7g"/> </connections> </menuItem> - <menuItem title="Reload ROM" alternate="YES" keyEquivalent="R" id="eQP-Fb-nkz"> + <menuItem title="Reload ROM" secondaryImage="arrow.trianglehead.2.counterclockwise.rotate.90" catalog="system" alternate="YES" keyEquivalent="R" id="eQP-Fb-nkz"> <connections> <action selector="reloadROM:" target="-1" id="BpN-8V-Csg"/> </connections> </menuItem> - <menuItem title="Pause" keyEquivalent="p" id="4K4-hw-R7Q"> + <menuItem title="Pause" secondaryImage="pause" catalog="system" keyEquivalent="p" id="4K4-hw-R7Q"> <connections> <action selector="togglePause:" target="-1" id="osW-wt-QAa"/> </connections> @@ -263,7 +263,7 @@ </menu> </menuItem> <menuItem isSeparatorItem="YES" id="QIS-av-Byy"/> - <menuItem title="Save State" id="Hdz-ut-okE"> + <menuItem title="Save State" secondaryImage="square.and.arrow.down" catalog="system" id="Hdz-ut-okE"> <modifierMask key="keyEquivalentModifierMask"/> <menu key="submenu" title="Save State" id="Mxx-u1-M9D"> <items> @@ -320,7 +320,7 @@ </items> </menu> </menuItem> - <menuItem title="Load State" id="EXD-SL-cz4"> + <menuItem title="Load State" secondaryImage="square.and.arrow.up" catalog="system" id="EXD-SL-cz4"> <modifierMask key="keyEquivalentModifierMask"/> <menu key="submenu" title="Load State" id="l9D-Ej-sh2"> <items> @@ -388,7 +388,7 @@ </menu> </menuItem> <menuItem isSeparatorItem="YES" id="5GS-tt-E0a"/> - <menuItem title="Save Screenshot" keyEquivalent="s" id="0J3-yf-iXs"> + <menuItem title="Save Screenshot" secondaryImage="photo" catalog="system" keyEquivalent="s" id="0J3-yf-iXs"> <connections> <action selector="saveScreenshot:" target="-1" id="gJd-ml-J8p"/> </connections> @@ -405,12 +405,12 @@ </connections> </menuItem> <menuItem isSeparatorItem="YES" id="DPb-Sh-5tg"/> - <menuItem title="Start Audio Recording…" keyEquivalent="A" id="1UK-8n-QPP"> + <menuItem title="Start Audio Recording…" secondaryImage="record.circle" catalog="system" keyEquivalent="A" id="1UK-8n-QPP"> <connections> <action selector="toggleAudioRecording:" target="-1" id="YE5-mi-Yzd"/> </connections> </menuItem> - <menuItem title="Mute Sound" keyEquivalent="m" id="zo0-Rh-wTu"> + <menuItem title="Mute Sound" secondaryImage="speaker.slash" catalog="system" keyEquivalent="m" id="zo0-Rh-wTu"> <connections> <action selector="mute:" target="-1" id="eK3-ea-ExJ"/> </connections> @@ -433,7 +433,7 @@ <action selector="showCheats:" target="-1" id="stn-Ei-aFE"/> </connections> </menuItem> - <menuItem title="Search Cheats" id="LZV-QK-YXi"> + <menuItem title="Search Cheats" secondaryImage="text.page.badge.magnifyingglass" catalog="system" id="LZV-QK-YXi"> <modifierMask key="keyEquivalentModifierMask"/> <connections> <action selector="showCheatSearch:" target="-1" id="eI1-x0-ykn"/> @@ -452,7 +452,7 @@ <action selector="disconnectAllAccessories:" target="-1" id="5hY-9U-nRn"/> </connections> </menuItem> - <menuItem title="Game Link Cable &amp; Infrared" id="V4S-Fo-xJK"> + <menuItem title="Game Link Cable &amp; Infrared" secondaryImage="cable.connector.horizontal" catalog="system" id="V4S-Fo-xJK"> <modifierMask key="keyEquivalentModifierMask"/> <menu key="submenu" title="Game Link Cable &amp; Infrared" id="6sJ-Wz-QLj"> <connections> @@ -463,13 +463,13 @@ <action selector="nop:" target="-3" id="Bpa-0C-lkN"/> </connections> </menuItem> - <menuItem title="Game Boy Printer" id="zHR-Ha-pOR"> + <menuItem title="Game Boy Printer" secondaryImage="printer" catalog="system" id="zHR-Ha-pOR"> <modifierMask key="keyEquivalentModifierMask"/> <connections> <action selector="connectPrinter:" target="-1" id="tl1-CL-tAw"/> </connections> </menuItem> - <menuItem title="Workboy" id="lo9-CX-BJj"> + <menuItem title="Workboy" secondaryImage="keyboard" catalog="system" id="lo9-CX-BJj"> <modifierMask key="keyEquivalentModifierMask"/> <connections> <action selector="connectWorkboy:" target="-1" id="6vS-bq-wAX"/> @@ -482,14 +482,14 @@ <modifierMask key="keyEquivalentModifierMask"/> <menu key="submenu" title="Develop" id="UVb-cc-at0"> <items> - <menuItem title="Developer Mode" id="Qx6-Tt-zZR"> + <menuItem title="Developer Mode" secondaryImage="wrench.and.screwdriver" catalog="system" id="Qx6-Tt-zZR"> <modifierMask key="keyEquivalentModifierMask"/> <connections> <action selector="toggleDeveloperMode:" target="-3" id="PIc-o3-bzb"/> </connections> </menuItem> <menuItem isSeparatorItem="YES" id="66c-T0-8pW"/> - <menuItem title="Show Console" id="Wse-UY-Y9l"> + <menuItem title="Show Console" secondaryImage="apple.terminal" catalog="system" id="Wse-UY-Y9l"> <modifierMask key="keyEquivalentModifierMask"/> <connections> <action selector="showConsoleWindow:" target="-1" id="mFf-4i-jLG"/> @@ -501,14 +501,14 @@ </connections> </menuItem> <menuItem isSeparatorItem="YES" id="3If-Yf-U7B"/> - <menuItem title="Break Debugger" keyEquivalent="c" id="uBD-GY-Doi"> + <menuItem title="Break Debugger" secondaryImage="pause" catalog="system" keyEquivalent="c" id="uBD-GY-Doi"> <modifierMask key="keyEquivalentModifierMask" control="YES"/> <connections> <action selector="interrupt:" target="-1" id="ZmB-wG-fTs"/> </connections> </menuItem> <menuItem isSeparatorItem="YES" id="M6n-8G-LZS"/> - <menuItem title="Audio Channels" id="Cib-LN-Y4o"> + <menuItem title="Audio Channels" secondaryImage="speaker.wave.3" catalog="system" id="Cib-LN-Y4o"> <modifierMask key="keyEquivalentModifierMask"/> <menu key="submenu" title="Audio Channels" id="l22-4p-yTK"> <items> @@ -540,13 +540,13 @@ </menu> </menuItem> <menuItem isSeparatorItem="YES" id="v5c-ri-BoZ"/> - <menuItem title="Show Background and Window" state="on" id="yfD-Qd-zoz"> + <menuItem title="Show Background and Window" state="on" secondaryImage="mountain.2" catalog="system" id="yfD-Qd-zoz"> <modifierMask key="keyEquivalentModifierMask"/> <connections> <action selector="toggleDisplayBackground:" target="-1" id="p5b-1n-SPR"/> </connections> </menuItem> - <menuItem title="Show Objects" state="on" id="OWx-a0-vQk"> + <menuItem title="Show Objects" state="on" secondaryImage="cube" catalog="system" id="OWx-a0-vQk"> <modifierMask key="keyEquivalentModifierMask"/> <connections> <action selector="toggleDisplayObjects:" target="-1" id="8ie-ey-739"/> @@ -620,4 +620,23 @@ <point key="canvasLocation" x="140" y="260"/> </menu> </objects> + <resources> + <image name="apple.terminal" catalog="system" width="18" height="14"/> + <image name="arrow.trianglehead.2.counterclockwise.rotate.90" catalog="system" width="16" height="15"/> + <image name="cable.connector.horizontal" catalog="system" width="19" height="7"/> + <image name="cube" catalog="system" width="16" height="17"/> + <image name="keyboard" catalog="system" width="19" height="13"/> + <image name="mountain.2" catalog="system" width="25" height="14"/> + <image name="pause" catalog="system" width="9" height="13"/> + <image name="photo" catalog="system" width="18" height="14"/> + <image name="plus.square.on.square" catalog="system" width="17" height="16"/> + <image name="printer" catalog="system" width="18" height="16"/> + <image name="record.circle" catalog="system" width="15" height="15"/> + <image name="speaker.slash" catalog="system" width="14" height="16"/> + <image name="speaker.wave.3" catalog="system" width="22" height="15"/> + <image name="square.and.arrow.down" catalog="system" width="15" height="17"/> + <image name="square.and.arrow.up" catalog="system" width="15" height="18"/> + <image name="text.page.badge.magnifyingglass" catalog="system" width="15" height="18"/> + <image name="wrench.and.screwdriver" catalog="system" width="19" height="18"/> + </resources> </document> diff --git a/Cocoa/NSControl+SolariumFixer.m b/Cocoa/NSControl+SolariumFixer.m @@ -0,0 +1,108 @@ +#import <Cocoa/Cocoa.h> +#import <objc/runtime.h> + +// Uncomment to debug +#define NSLog(...) + +// Solarium has weird proportions, we need to fix them. +@implementation NSControl (SolariumFixer) + +- (void)awakeFromNib +{ + if (@available(macOS 26.0, *)) { + if ([self.superview isKindOfClass:objc_getClass("NSToolbarItemViewer")]) return; + + if ([self isKindOfClass:[NSStepper class]]) { + NSLog(@"Stepper needs adjustment: %s in window %@", sel_getName(self.action), self.window.title); + CGRect frame = self.frame; + frame.origin.y += 1; + self.frame = frame; + return; + } + if (self.controlSize != NSControlSizeRegular) return; + + if ([self isKindOfClass:[NSPopUpButton class]] ) { + NSLog(@"Popup button needs adjustment: %@ in window %@", ((NSButton *)self).title, self.window.title); + CGRect frame = self.frame; + if (frame.size.height != 25) { + NSLog(@"%@ in window %@ has the wrong height!", ((NSButton *)self).title, self.window.title); + return; + } + frame.size.width -= 2 + 5; // Remove 5 from the right and 2 from the left + frame.origin.x += 2; + frame.origin.y += 2; + self.frame = frame; + } + else if ([self isKindOfClass:[NSSegmentedControl class]] ) { + NSLog(@"Segmented button needs adjustment: %s in window %@", sel_getName(self.action), self.window.title); + CGRect frame = self.frame; + if (frame.size.height != 25) { + NSLog(@"%s in window %@ has the wrong height!", sel_getName(self.action), self.window.title); + return; + } + frame.origin.x += 8; + frame.origin.y += 1; + self.frame = frame; + } + else if ([self isKindOfClass:[NSTextField class]]) { + NSTextField *field = (id)self; + if (![field isBezeled]) return; + NSLog(@"Text field needs adjustment: %@ in window %@", ((NSTextField *)self).placeholderString, self.window.title); + CGRect frame = self.frame; + if (frame.size.height == 21) { + frame.size.height = 24; + } + else { + NSLog(@"%@ in window %@ has the wrong height!", ((NSTextField *)self).placeholderString, self.window.title); + return; + } + frame.size.width -= 1 + 1; // Remove 1 from the right and 1 from the left + frame.origin.x += 1; + frame.origin.y -= 1; + + self.frame = frame; + } + else if ([self isKindOfClass:[NSButton class]]) { + NSLog(@"Button: %@ in window %@", @(sel_getName(self.action)), self.window.title); + NSButton *button = (id)self; + if (!button.isBordered) return; + if (button.bezelStyle == NSBezelStylePush) { + NSLog(@"Button needs adjustment: %@ in window %@", @(sel_getName(self.action)), self.window.title); + CGRect frame = self.frame; + frame.size.width -= 7 + 7; // Remove 7 from the right and 7 from the left + frame.origin.x += 7; + frame.origin.y += 5; + if (frame.size.height == 32) { + frame.size.height = 25; + } + else { + NSLog(@"%@ in window %@ has the wrong height!", @(sel_getName(self.action)), self.window.title); + } self.frame = frame; + } + else if (button.bezelStyle == NSBezelStyleRegularSquare) { + CGRect frame = self.frame; + if (frame.size.height != 18) return; + NSLog(@"Check/Radio needs adjustment: %@ in window %@", ((NSButton *)self).title, self.window.title); + frame.size.width -= 2; + frame.origin.x += 2; + frame.origin.y += 1; + frame.size.height = 16; + self.frame = frame; + } + else if (button.bezelStyle == NSBezelStyleHelpButton) { + CGRect frame = self.frame; + NSLog(@"Help button needs adjustment: %@ in window %@", ((NSButton *)self).title, self.window.title); + frame.origin.y += 2; + self.frame = frame; + } + } + else if ([self isKindOfClass:[NSSlider class]]) { + NSLog(@"Slider needs adjustment: %s in window %@", sel_getName(self.action), self.window.title); + CGRect frame = self.frame; + frame.origin.y += 3; + self.frame = frame; + } + } +} + +@end diff --git a/Cocoa/Preferences.xib b/Cocoa/Preferences.xib @@ -1,8 +1,8 @@ <?xml version="1.0" encoding="UTF-8"?> -<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="23727" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct"> +<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="24093.7" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct"> <dependencies> <deployment identifier="macosx"/> - <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="23727"/> + <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="24093.7"/> <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> </dependencies> <objects> @@ -20,7 +20,7 @@ </customObject> <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/> <customObject id="-3" userLabel="Application" customClass="NSObject"/> - <window title="Preferences" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" visibleAtLaunch="NO" animationBehavior="default" id="QvC-M9-y7g" customClass="GBPreferencesWindow"> + <window title="Preferences" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" visibleAtLaunch="NO" animationBehavior="default" toolbarStyle="preference" id="QvC-M9-y7g" customClass="GBPreferencesWindow"> <windowStyleMask key="styleMask" titled="YES" closable="YES"/> <windowCollectionBehavior key="collectionBehavior" fullScreenAuxiliary="YES"/> <rect key="contentRect" x="196" y="240" width="320" height="224"/> @@ -29,7 +29,7 @@ <rect key="frame" x="0.0" y="0.0" width="320" height="224"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> </view> - <toolbar key="toolbar" implicitIdentifier="689472FF-3BCD-4B1F-98F8-989CCB01AE27" autosavesConfiguration="NO" allowsUserCustomization="NO" displayMode="iconAndLabel" sizeMode="regular" id="pYZ-Pe-8hq"> + <toolbar key="toolbar" implicitIdentifier="689472FF-3BCD-4B1F-98F8-989CCB01AE27" autosavesConfiguration="NO" allowsUserCustomization="NO" showsBaselineSeparator="NO" displayMode="iconAndLabel" sizeMode="regular" id="pYZ-Pe-8hq"> <allowedToolbarItems> <toolbarItem implicitItemIdentifier="4E86DC78-64E2-4ABB-ACB7-7CC8B34DC3F1" label="Emulation" paletteLabel="Emulation" image="CPU" autovalidates="NO" selectable="YES" id="zdp-Z7-yZM"> <size key="minSize" width="22" height="22"/> @@ -101,7 +101,7 @@ <rect key="frame" x="0.0" y="0.0" width="320" height="569"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/> <subviews> - <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="T91-rh-rRp"> + <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="T91-rh-rRp"> <rect key="frame" x="18" y="532" width="280" height="17"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/> <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Scaling filter:" id="pXg-WY-8Q5"> @@ -111,11 +111,11 @@ </textFieldCell> </textField> <popUpButton verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="6pP-kK-EEC" customClass="GBPreferencePopUpButton"> - <rect key="frame" x="30" y="499" width="262" height="26"/> + <rect key="frame" x="30" y="500" width="262" height="25"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/> <popUpButtonCell key="cell" type="push" title="Nearest neighbor (Pixelated)" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="neN-eo-LA7" id="I1w-05-lGl"> <behavior key="behavior" lightByBackground="YES" lightByGray="YES"/> - <font key="font" metaFont="menu"/> + <font key="font" metaFont="message"/> <menu key="menu" id="xDC-0T-Qg9"> <items> <menuItem title="Nearest neighbor (Pixelated)" state="on" id="neN-eo-LA7" customClass="GBPreferenceMenuItem"> @@ -215,7 +215,7 @@ <userDefinedRuntimeAttribute type="string" keyPath="preferenceName" value="GBFilterScreenshots"/> </userDefinedRuntimeAttributes> </button> - <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Wc3-2K-6CD"> + <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Wc3-2K-6CD"> <rect key="frame" x="18" y="375" width="280" height="17"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/> <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Color correction:" id="5Si-hz-EK3"> @@ -225,11 +225,11 @@ </textFieldCell> </textField> <popUpButton verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="VEz-N4-uP6" customClass="GBPreferencePopUpButton"> - <rect key="frame" x="30" y="342" width="229" height="26"/> + <rect key="frame" x="30" y="343" width="229" height="25"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/> <popUpButtonCell key="cell" type="push" title="Disabled" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="D2J-wV-1vu" id="fNJ-Fi-yOm"> <behavior key="behavior" lightByBackground="YES" lightByGray="YES"/> - <font key="font" metaFont="menu"/> + <font key="font" metaFont="message"/> <menu key="menu" id="6go-Lb-a4m"> <items> <menuItem title="Disabled" state="on" id="D2J-wV-1vu"> @@ -261,7 +261,7 @@ <userDefinedRuntimeAttribute type="string" keyPath="preferenceName" value="GBLightTemperature"/> </userDefinedRuntimeAttributes> </slider> - <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="cCm-Oa-FbN"> + <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="cCm-Oa-FbN"> <rect key="frame" x="18" y="320" width="280" height="17"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/> <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Ambient light temperature:" id="Lso-GQ-pBl"> @@ -270,7 +270,7 @@ <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/> </textFieldCell> </textField> - <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="MLC-Rx-FgO"> + <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="MLC-Rx-FgO"> <rect key="frame" x="18" y="478" width="280" height="17"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/> <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Frame blending:" id="UCa-EO-tzh"> @@ -280,11 +280,11 @@ </textFieldCell> </textField> <popUpButton verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="lxk-db-Sxv" customClass="GBPreferencePopUpButton"> - <rect key="frame" x="30" y="445" width="262" height="26"/> + <rect key="frame" x="30" y="446" width="262" height="25"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/> <popUpButtonCell key="cell" type="push" title="Disabled" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="iHP-Yz-fiH" id="aQ6-HN-7Aj"> <behavior key="behavior" lightByBackground="YES" lightByGray="YES"/> - <font key="font" metaFont="menu"/> + <font key="font" metaFont="message"/> <menu key="menu" id="Q9L-qo-kF4"> <items> <menuItem title="Disabled" state="on" id="iHP-Yz-fiH"> @@ -299,7 +299,7 @@ <userDefinedRuntimeAttribute type="string" keyPath="preferenceName" value="GBFrameBlendingMode"/> </userDefinedRuntimeAttributes> </popUpButton> - <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="8fG-zm-hpr"> + <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="8fG-zm-hpr"> <rect key="frame" x="18" y="267" width="280" height="17"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/> <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Color palette for monochrome models:" id="LAN-8Y-T7H"> @@ -309,11 +309,11 @@ </textFieldCell> </textField> <popUpButton verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Iwr-eI-SD1"> - <rect key="frame" x="30" y="234" width="262" height="26"/> + <rect key="frame" x="30" y="235" width="262" height="25"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/> <popUpButtonCell key="cell" type="push" title="Greyscale" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="Ajr-5r-iIk" id="rEU-jh-m3j"> <behavior key="behavior" lightByBackground="YES" lightByGray="YES"/> - <font key="font" metaFont="menu"/> + <font key="font" metaFont="message"/> <menu key="menu" id="dHJ-3R-Ora"> <items> <menuItem title="Greyscale" state="on" id="Ajr-5r-iIk"> @@ -329,7 +329,7 @@ <action selector="colorPaletteChanged:" target="QvC-M9-y7g" id="ui3-rg-PTs"/> </connections> </popUpButton> - <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="3Kz-cf-5X6"> + <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="3Kz-cf-5X6"> <rect key="frame" x="18" y="196" width="280" height="17"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/> <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Display border:" id="HZd-qi-yyk"> @@ -338,7 +338,7 @@ <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/> </textFieldCell> </textField> - <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="iy3-wn-KIz"> + <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="iy3-wn-KIz"> <rect key="frame" x="18" y="49" width="280" height="17"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/> <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Monospace font:" id="kwA-BU-mBC"> @@ -348,11 +348,11 @@ </textFieldCell> </textField> <popUpButton verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="R9D-FV-bpd" customClass="GBPreferencePopUpButton"> - <rect key="frame" x="30" y="163" width="262" height="26"/> + <rect key="frame" x="30" y="164" width="262" height="25"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/> <popUpButtonCell key="cell" type="push" title="Never" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" tag="1" imageScaling="proportionallyDown" inset="2" selectedItem="heL-AV-0az" id="DY9-2D-h1L"> <behavior key="behavior" lightByBackground="YES" lightByGray="YES"/> - <font key="font" metaFont="menu"/> + <font key="font" metaFont="message"/> <menu key="menu" id="Rgf-mF-K9q"> <items> <menuItem title="Never" state="on" tag="1" id="heL-AV-0az"> @@ -368,11 +368,11 @@ </userDefinedRuntimeAttributes> </popUpButton> <popUpButton verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="dYY-fo-BfM" customClass="GBTitledPopUpButton"> - <rect key="frame" x="30" y="16" width="242" height="26"/> + <rect key="frame" x="30" y="17" width="242" height="25"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/> <popUpButtonCell key="cell" type="push" title="SF Mono 12pt" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="nKR-aK-yMd" id="wDA-Sg-O1l"> <behavior key="behavior" lightByBackground="YES" lightByGray="YES"/> - <font key="font" metaFont="menu"/> + <font key="font" metaFont="message"/> <menu key="menu" id="Hhw-EU-o9x"> <items> <menuItem title="SF Mono 12pt" state="on" id="nKR-aK-yMd"> @@ -459,7 +459,7 @@ <rect key="frame" x="0.0" y="0.0" width="320" height="434"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/> <subviews> - <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="w9w-yX-KxB"> + <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="w9w-yX-KxB"> <rect key="frame" x="18" y="342" width="280" height="17"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/> <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Rewinding duration:" id="JaO-5h-ugl"> @@ -468,7 +468,7 @@ <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/> </textFieldCell> </textField> - <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="o3Z-34-FJk"> + <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="o3Z-34-FJk"> <rect key="frame" x="18" y="287" width="280" height="17"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/> <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Real Time Clock emulation:" id="Qoi-ub-YtI"> @@ -477,7 +477,7 @@ <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/> </textFieldCell> </textField> - <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="MI2-ql-f6M"> + <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="MI2-ql-f6M"> <rect key="frame" x="18" y="397" width="280" height="17"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/> <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Boot ROMs location:" id="nj0-Cb-gEA"> @@ -486,7 +486,7 @@ <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/> </textFieldCell> </textField> - <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Wg8-hJ-df9"> + <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Wg8-hJ-df9"> <rect key="frame" x="18" y="215" width="280" height="17"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/> <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Game Boy revision:" id="GIA-ep-SBi"> @@ -496,11 +496,11 @@ </textFieldCell> </textField> <popUpButton verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="LFw-Uk-cPR" customClass="GBPreferencePopUpButton"> - <rect key="frame" x="30" y="182" width="262" height="26"/> + <rect key="frame" x="30" y="183" width="262" height="25"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/> <popUpButtonCell key="cell" type="push" title="DMG-CPU B" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" tag="2" imageScaling="proportionallyDown" inset="2" autoenablesItems="NO" selectedItem="aXT-sE-m5Z" id="FuX-Hc-uO7"> <behavior key="behavior" lightByBackground="YES" lightByGray="YES"/> - <font key="font" metaFont="menu"/> + <font key="font" metaFont="message"/> <menu key="menu" autoenablesItems="NO" id="R0h-k6-Q5l"> <items> <menuItem title="DMG-CPU 0" enabled="NO" id="pvp-Mo-9S8"/> @@ -514,7 +514,7 @@ <userDefinedRuntimeAttribute type="string" keyPath="preferenceName" value="GBDMGModel"/> </userDefinedRuntimeAttributes> </popUpButton> - <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="MAq-1X-Gpo"> + <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="MAq-1X-Gpo"> <rect key="frame" x="18" y="105" width="280" height="17"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/> <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Game Boy Color revision:" id="edD-t7-vwk"> @@ -524,11 +524,11 @@ </textFieldCell> </textField> <popUpButton verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="dlD-sk-SHO" customClass="GBPreferencePopUpButton"> - <rect key="frame" x="30" y="72" width="262" height="26"/> + <rect key="frame" x="30" y="73" width="262" height="25"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/> <popUpButtonCell key="cell" type="push" title="CPU CGB E" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" tag="517" imageScaling="proportionallyDown" inset="2" autoenablesItems="NO" selectedItem="3lF-1Q-2SS" id="Edt-1S-dXz"> <behavior key="behavior" lightByBackground="YES" lightByGray="YES"/> - <font key="font" metaFont="menu"/> + <font key="font" metaFont="message"/> <menu key="menu" autoenablesItems="NO" id="bbF-hB-Hv7"> <items> <menuItem title="CPU CGB 0" tag="512" id="2Uk-u3-6Gw"/> @@ -544,7 +544,7 @@ <userDefinedRuntimeAttribute type="string" keyPath="preferenceName" value="GBCGBModel"/> </userDefinedRuntimeAttributes> </popUpButton> - <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="tAa-0A-0fP"> + <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="tAa-0A-0fP"> <rect key="frame" x="18" y="160" width="280" height="17"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/> <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Super Game Boy model:" id="d0g-rk-FK0"> @@ -558,11 +558,11 @@ <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/> </box> <popUpButton verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="tFf-H1-XUL" customClass="GBPreferencePopUpButton"> - <rect key="frame" x="30" y="254" width="262" height="26"/> + <rect key="frame" x="30" y="255" width="262" height="25"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/> <popUpButtonCell key="cell" type="push" title="Sync to system clock" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="arp-Qi-Xix" id="uRs-Ag-Sbw"> <behavior key="behavior" lightByBackground="YES" lightByGray="YES"/> - <font key="font" metaFont="menu"/> + <font key="font" metaFont="message"/> <menu key="menu" id="yFf-TQ-bZc"> <items> <menuItem title="Sync to system clock" state="on" id="arp-Qi-Xix"> @@ -577,11 +577,11 @@ </userDefinedRuntimeAttributes> </popUpButton> <popUpButton verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="wC4-aJ-mhQ"> - <rect key="frame" x="30" y="364" width="262" height="26"/> + <rect key="frame" x="30" y="365" width="262" height="25"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/> <popUpButtonCell key="cell" type="push" title="Use built-in boot ROMs" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="Tnm-SR-ZEm" id="T3Y-Ln-Onl"> <behavior key="behavior" lightByBackground="YES" lightByGray="YES"/> - <font key="font" metaFont="menu"/> + <font key="font" metaFont="message"/> <menu key="menu" id="edo-AN-gRh"> <items> <menuItem title="Use built-in boot ROMs" state="on" id="Tnm-SR-ZEm"> @@ -601,11 +601,11 @@ </popUpButtonCell> </popUpButton> <popUpButton verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="7fg-Ww-JjR" customClass="GBPreferencePopUpButton"> - <rect key="frame" x="30" y="309" width="262" height="26"/> + <rect key="frame" x="30" y="310" width="262" height="25"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/> <popUpButtonCell key="cell" type="push" title="Disabled" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="lxQ-4n-kEv" id="lvb-QF-0Ht"> <behavior key="behavior" lightByBackground="YES" lightByGray="YES"/> - <font key="font" metaFont="menu"/> + <font key="font" metaFont="message"/> <menu key="menu" id="lbS-Lw-kQX"> <items> <menuItem title="Disabled" state="on" id="lxQ-4n-kEv"> @@ -624,7 +624,7 @@ <userDefinedRuntimeAttribute type="string" keyPath="preferenceName" value="GBRewindLength"/> </userDefinedRuntimeAttributes> </popUpButton> - <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="5r5-qY-b8h"> + <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="5r5-qY-b8h"> <rect key="frame" x="18" y="50" width="280" height="17"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/> <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Game Boy Advance revision:" id="R5q-dJ-NvD"> @@ -634,11 +634,11 @@ </textFieldCell> </textField> <popUpButton verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="3Dl-S6-O7c" customClass="GBPreferencePopUpButton"> - <rect key="frame" x="30" y="17" width="262" height="26"/> + <rect key="frame" x="30" y="18" width="262" height="25"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/> <popUpButtonCell key="cell" type="push" title="CPU AGB A (GBA)" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" tag="519" imageScaling="proportionallyDown" inset="2" autoenablesItems="NO" selectedItem="8bk-wP-Cbr" id="EhC-I2-5Th"> <behavior key="behavior" lightByBackground="YES" lightByGray="YES"/> - <font key="font" metaFont="menu"/> + <font key="font" metaFont="message"/> <menu key="menu" autoenablesItems="NO" id="b2b-jo-SrI"> <items> <menuItem title="CPU AGB 0 (Early GBA)" tag="518" enabled="NO" id="75z-Yy-XaY"/> @@ -655,11 +655,11 @@ </userDefinedRuntimeAttributes> </popUpButton> <popUpButton verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="dza-T7-RkX" customClass="GBPreferencePopUpButton"> - <rect key="frame" x="30" y="127" width="262" height="26"/> + <rect key="frame" x="30" y="128" width="262" height="25"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/> <popUpButtonCell key="cell" type="push" title="Super Game Boy (NTSC)" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" tag="4" imageScaling="proportionallyDown" inset="2" autoenablesItems="NO" selectedItem="x5A-7f-ef9" id="2Mt-ci-bB0"> <behavior key="behavior" lightByBackground="YES" lightByGray="YES"/> - <font key="font" metaFont="menu"/> + <font key="font" metaFont="message"/> <menu key="menu" autoenablesItems="NO" id="czw-Hi-jyM"> <items> <menuItem title="Super Game Boy (NTSC)" state="on" tag="4" id="x5A-7f-ef9"/> @@ -679,7 +679,7 @@ <rect key="frame" x="0.0" y="0.0" width="320" height="201"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/> <subviews> - <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Dzd-uB-B6l"> + <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Dzd-uB-B6l"> <rect key="frame" x="18" y="164" width="280" height="17"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/> <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Volume:" id="IbP-7k-xsZ"> @@ -700,11 +700,11 @@ </userDefinedRuntimeAttributes> </slider> <popUpButton verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="T69-6N-dhT" customClass="GBPreferencePopUpButton"> - <rect key="frame" x="30" y="74" width="229" height="26"/> + <rect key="frame" x="30" y="75" width="229" height="25"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/> <popUpButtonCell key="cell" type="push" title="Disabled (Keep DC offset)" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="Fgo-0S-zUG" id="om2-Bn-43B"> <behavior key="behavior" lightByBackground="YES" lightByGray="YES"/> - <font key="font" metaFont="menu"/> + <font key="font" metaFont="message"/> <menu key="menu" id="VCM-zy-2Dd"> <items> <menuItem title="Disabled (Keep DC offset)" state="on" id="Fgo-0S-zUG"> @@ -719,7 +719,7 @@ <userDefinedRuntimeAttribute type="string" keyPath="preferenceName" value="GBHighpassFilter"/> </userDefinedRuntimeAttributes> </popUpButton> - <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="WU3-oV-KHO"> + <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="WU3-oV-KHO"> <rect key="frame" x="18" y="107" width="280" height="17"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/> <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="High-pass filter:" id="YLF-RL-b2D"> @@ -728,7 +728,7 @@ <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/> </textFieldCell> </textField> - <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="GPt-9I-QBh"> + <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="GPt-9I-QBh"> <rect key="frame" x="18" y="52" width="280" height="17"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/> <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Interference volume:" id="I2Q-6U-uIx"> @@ -766,17 +766,17 @@ <rect key="frame" x="0.0" y="0.0" width="632" height="409"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/> <subviews> - <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Utu-t4-cLx"> - <rect key="frame" x="18" y="374" width="122" height="17"/> + <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Utu-t4-cLx"> + <rect key="frame" x="18" y="374" width="130" height="17"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/> <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Control settings for" id="YqW-Ds-VIC"> <font key="font" metaFont="system"/> <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/> - <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/> + <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/> </textFieldCell> </textField> - <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="ReM-uo-H0r"> - <rect key="frame" x="227" y="374" width="8" height="17"/> + <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="ReM-uo-H0r"> + <rect key="frame" x="233" y="374" width="8" height="17"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/> <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title=":" id="VhO-3T-glt"> <font key="font" metaFont="system"/> @@ -785,11 +785,11 @@ </textFieldCell> </textField> <popUpButton verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="gWx-7h-0xq"> - <rect key="frame" x="140" y="367" width="87" height="26"/> + <rect key="frame" x="143" y="368" width="91" height="25"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/> <popUpButtonCell key="cell" type="push" title="Player 1" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="TO3-R7-9HN" id="pbt-Lr-bU1"> <behavior key="behavior" lightByBackground="YES" lightByGray="YES"/> - <font key="font" metaFont="menu"/> + <font key="font" metaFont="message"/> <menu key="menu" id="cud-XE-BOw"> <items> <menuItem title="Player 1" state="on" id="TO3-R7-9HN"/> @@ -803,7 +803,7 @@ <action selector="refreshJoypadMenu:" target="QvC-M9-y7g" id="5hY-tg-9VE"/> </connections> </popUpButton> - <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="zYm-Ov-RHL"> + <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="zYm-Ov-RHL"> <rect key="frame" x="330" y="371" width="280" height="17"/> <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES"/> <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="When playing motion-control games:" id="sgY-3F-qld"> @@ -834,7 +834,7 @@ <userDefinedRuntimeAttribute type="string" keyPath="preferenceName" value="GBMBC7AllowMouse"/> </userDefinedRuntimeAttributes> </button> - <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="DZu-ts-deW"> + <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="DZu-ts-deW"> <rect key="frame" x="330" y="194" width="280" height="17"/> <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES"/> <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Enable rumble:" id="QMX-3p-s1Z"> @@ -843,7 +843,7 @@ <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/> </textFieldCell> </textField> - <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="2SB-Bq-Exy"> + <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="2SB-Bq-Exy"> <rect key="frame" x="330" y="304" width="280" height="17"/> <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES"/> <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Controller “Hotkey 1†action:" id="GTq-aw-0cU"> @@ -853,11 +853,11 @@ </textFieldCell> </textField> <popUpButton verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="qsH-w5-Rja"> - <rect key="frame" x="342" y="271" width="262" height="26"/> + <rect key="frame" x="342" y="272" width="262" height="25"/> <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES"/> <popUpButtonCell key="cell" type="push" title="None" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="uFa-fO-lTm" id="x4X-Uv-vXf"> <behavior key="behavior" lightByBackground="YES" lightByGray="YES"/> - <font key="font" metaFont="menu"/> + <font key="font" metaFont="message"/> <menu key="menu" id="hHe-Vn-UE4"> <items> <menuItem title="None" state="on" id="uFa-fO-lTm"/> @@ -914,7 +914,7 @@ <action selector="hotkey1Changed:" target="QvC-M9-y7g" id="XMJ-vu-L6C"/> </connections> </popUpButton> - <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="8py-43-vaO"> + <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="8py-43-vaO"> <rect key="frame" x="330" y="249" width="280" height="17"/> <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES"/> <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Controller “Hotkey 2†action:" id="Gdp-S8-V3q"> @@ -924,11 +924,11 @@ </textFieldCell> </textField> <popUpButton verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Ryk-mD-c0y"> - <rect key="frame" x="342" y="216" width="262" height="26"/> + <rect key="frame" x="342" y="217" width="262" height="25"/> <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES"/> <popUpButtonCell key="cell" type="push" title="None" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="wmV-YY-dHY" id="fS9-cS-iTD"> <behavior key="behavior" lightByBackground="YES" lightByGray="YES"/> - <font key="font" metaFont="menu"/> + <font key="font" metaFont="message"/> <menu key="menu" id="vPS-8b-MAH"> <items> <menuItem title="None" state="on" id="wmV-YY-dHY"/> @@ -1008,11 +1008,11 @@ </userDefinedRuntimeAttributes> </button> <popUpButton verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Ogs-xG-b4b" customClass="GBPreferencePopUpButton"> - <rect key="frame" x="342" y="161" width="262" height="26"/> + <rect key="frame" x="342" y="162" width="262" height="25"/> <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES"/> <popUpButtonCell key="cell" type="push" title="Never" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="jki-7x-bnM" id="o9b-MH-8kd"> <behavior key="behavior" lightByBackground="YES" lightByGray="YES"/> - <font key="font" metaFont="menu"/> + <font key="font" metaFont="message"/> <menu key="menu" id="8p7-je-0Fh"> <items> <menuItem title="Never" state="on" id="jki-7x-bnM"/> @@ -1118,7 +1118,7 @@ <autoresizingMask key="autoresizingMask"/> </scroller> </scrollView> - <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="fcF-wc-KwM"> + <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="fcF-wc-KwM"> <rect key="frame" x="30" y="90" width="231" height="17"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/> <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Controller for multiplayer games:" id="AJA-9b-VKI"> @@ -1128,11 +1128,11 @@ </textFieldCell> </textField> <popUpButton verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="0Az-0R-oNw"> - <rect key="frame" x="42" y="57" width="255" height="26"/> + <rect key="frame" x="42" y="58" width="255" height="25"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/> <popUpButtonCell key="cell" type="push" title="None" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingMiddle" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="hy8-cr-RrE" id="uEC-vN-8Jq"> <behavior key="behavior" lightByBackground="YES" lightByGray="YES"/> - <font key="font" metaFont="menu"/> + <font key="font" metaFont="message"/> <menu key="menu" id="vzY-GQ-t9J"> <items> <menuItem title="None" state="on" id="hy8-cr-RrE"/> @@ -1155,7 +1155,7 @@ </userDefinedRuntimeAttributes> </button> </subviews> - <point key="canvasLocation" x="-1010" y="304"/> + <point key="canvasLocation" x="-1010" y="303.5"/> </customView> <customView id="ffn-ie-9C3"> <rect key="frame" x="0.0" y="0.0" width="320" height="95"/> @@ -1192,21 +1192,21 @@ </customView> <window title="Palette Editor" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" visibleAtLaunch="NO" frameAutosaveName="" animationBehavior="default" id="g32-xe-7al"> <windowStyleMask key="styleMask" titled="YES" closable="YES"/> - <rect key="contentRect" x="283" y="305" width="467" height="341"/> + <rect key="contentRect" x="283" y="305" width="507" height="341"/> <rect key="screenRect" x="0.0" y="0.0" width="2560" height="1415"/> <view key="contentView" id="uMa-Yg-exg"> - <rect key="frame" x="0.0" y="0.0" width="467" height="341"/> + <rect key="frame" x="0.0" y="0.0" width="507" height="341"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <subviews> <scrollView focusRingType="none" fixedFrame="YES" autohidesScrollers="YES" horizontalLineScroll="19" horizontalPageScroll="10" verticalLineScroll="19" verticalPageScroll="10" usesPredominantAxisScrolling="NO" translatesAutoresizingMaskIntoConstraints="NO" id="DPL-nH-GVw"> - <rect key="frame" x="-1" y="20" width="160" height="322"/> + <rect key="frame" x="19" y="40" width="160" height="282"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" heightSizable="YES"/> <clipView key="contentView" drawsBackground="NO" id="5Al-aC-tq8"> - <rect key="frame" x="1" y="1" width="158" height="320"/> + <rect key="frame" x="1" y="1" width="158" height="280"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <subviews> <tableView focusRingType="none" verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="lastColumnOnly" selectionHighlightStyle="sourceList" columnResizing="NO" multipleSelection="NO" emptySelection="NO" autosaveColumns="NO" id="ZVn-bk-duk"> - <rect key="frame" x="0.0" y="0.0" width="158" height="320"/> + <rect key="frame" x="0.0" y="0.0" width="158" height="280"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <size key="intercellSpacing" width="3" height="2"/> <color key="backgroundColor" name="_sourceListBackgroundColor" catalog="System" colorSpace="catalog"/> @@ -1243,48 +1243,48 @@ </scroller> </scrollView> <colorWell focusRingType="none" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="odC-WD-uUp"> - <rect key="frame" x="167" y="266" width="55" height="55"/> - <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/> + <rect key="frame" x="207" y="266" width="55" height="55"/> + <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES"/> <color key="color" red="0.03129877895116806" green="0.094370834529399872" blue="0.062739767134189606" alpha="1" colorSpace="custom" customColorSpace="displayP3"/> <connections> <action selector="updateAutoColors:" target="Zxl-vm-6c9" id="wmS-sP-YVR"/> </connections> </colorWell> <colorWell focusRingType="none" fixedFrame="YES" tag="1" translatesAutoresizingMaskIntoConstraints="NO" id="mpV-pm-9ZF"> - <rect key="frame" x="222" y="266" width="55" height="55"/> - <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/> + <rect key="frame" x="262" y="266" width="55" height="55"/> + <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES"/> <color key="color" red="0.22354039549827576" green="0.38156121969223022" blue="0.22349703311920166" alpha="1" colorSpace="custom" customColorSpace="displayP3"/> <connections> <action selector="savePalette:" target="Zxl-vm-6c9" id="Ejl-bb-Vd8"/> </connections> </colorWell> <colorWell focusRingType="none" fixedFrame="YES" tag="2" translatesAutoresizingMaskIntoConstraints="NO" id="NEt-gu-zL7"> - <rect key="frame" x="277" y="266" width="55" height="55"/> - <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/> + <rect key="frame" x="317" y="266" width="55" height="55"/> + <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES"/> <color key="color" red="0.51789730787277222" green="0.64901769161224365" blue="0.38817742466926575" alpha="1" colorSpace="custom" customColorSpace="displayP3"/> <connections> <action selector="savePalette:" target="Zxl-vm-6c9" id="lle-OO-YK2"/> </connections> </colorWell> <colorWell focusRingType="none" fixedFrame="YES" tag="3" translatesAutoresizingMaskIntoConstraints="NO" id="fVn-3k-iuN"> - <rect key="frame" x="332" y="266" width="55" height="55"/> - <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/> + <rect key="frame" x="372" y="266" width="55" height="55"/> + <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES"/> <color key="color" red="0.77688723802566528" green="0.87309378385543823" blue="0.54894673824310303" alpha="1" colorSpace="custom" customColorSpace="displayP3"/> <connections> <action selector="updateColor4:" target="Zxl-vm-6c9" id="riQ-Kc-wcG"/> </connections> </colorWell> <colorWell focusRingType="none" fixedFrame="YES" tag="4" translatesAutoresizingMaskIntoConstraints="NO" id="min-mf-sjI"> - <rect key="frame" x="392" y="266" width="55" height="55"/> - <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/> + <rect key="frame" x="432" y="266" width="55" height="55"/> + <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES"/> <color key="color" red="0.82731041736199085" green="0.92976116399242459" blue="0.58457564096374282" alpha="1" colorSpace="custom" customColorSpace="displayP3"/> <connections> <action selector="updateAutoColors:" target="Zxl-vm-6c9" id="Oo4-Dx-wvS"/> </connections> </colorWell> <button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="ZUa-QG-4ss"> - <rect key="frame" x="167" y="243" width="282" height="18"/> - <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/> + <rect key="frame" x="207" y="243" width="282" height="18"/> + <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES"/> <buttonCell key="cell" type="check" title="Distinct disabled LCD color" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="cRR-vH-5R2"> <behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/> <font key="font" metaFont="system"/> @@ -1294,8 +1294,8 @@ </connections> </button> <button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="l33-w0-rLw"> - <rect key="frame" x="167" y="221" width="277" height="18"/> - <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/> + <rect key="frame" x="207" y="221" width="277" height="18"/> + <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES"/> <buttonCell key="cell" type="check" title="Manual mode" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="Gvn-Rq-LU5"> <behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/> <font key="font" metaFont="system"/> @@ -1304,9 +1304,9 @@ <action selector="manualModeChanged:" target="Zxl-vm-6c9" id="BAF-n1-CiQ"/> </connections> </button> - <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="XFt-AQ-h4m"> - <rect key="frame" x="165" y="198" width="284" height="17"/> - <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/> + <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="XFt-AQ-h4m"> + <rect key="frame" x="205" y="198" width="284" height="17"/> + <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES"/> <textFieldCell key="cell" lineBreakMode="clipping" title="Brightness bias:" id="qhH-ls-JEl"> <font key="font" metaFont="system"/> <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/> @@ -1314,16 +1314,16 @@ </textFieldCell> </textField> <slider verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Wam-CT-owm"> - <rect key="frame" x="177" y="162" width="272" height="28"/> - <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/> + <rect key="frame" x="217" y="162" width="272" height="28"/> + <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES"/> <sliderCell key="cell" continuous="YES" enabled="NO" state="on" alignment="left" maxValue="256" doubleValue="128" tickMarkPosition="above" numberOfTickMarks="3" sliderType="linear" id="ktr-gF-oxu"/> <connections> <action selector="updateAutoColors:" target="Zxl-vm-6c9" id="Onm-Bw-sJu"/> </connections> </slider> - <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Dc6-NT-jgZ"> - <rect key="frame" x="167" y="139" width="282" height="17"/> - <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/> + <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Dc6-NT-jgZ"> + <rect key="frame" x="207" y="139" width="282" height="17"/> + <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES"/> <textFieldCell key="cell" lineBreakMode="clipping" title="Hue bias:" id="GzN-2h-xBT"> <font key="font" metaFont="system"/> <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/> @@ -1331,28 +1331,28 @@ </textFieldCell> </textField> <slider verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="ImK-kc-EEn"> - <rect key="frame" x="177" y="105" width="272" height="28"/> - <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/> + <rect key="frame" x="217" y="105" width="272" height="28"/> + <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES"/> <sliderCell key="cell" continuous="YES" enabled="NO" state="on" alignment="left" maxValue="360" tickMarkPosition="above" sliderType="linear" id="2dt-f1-0bV" customClass="GBHueSliderCell"/> <connections> <action selector="updateAutoColors:" target="Zxl-vm-6c9" id="2OR-Nl-jrN"/> </connections> </slider> <slider verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="ij9-bn-1y8"> - <rect key="frame" x="177" y="48" width="272" height="28"/> - <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/> + <rect key="frame" x="217" y="48" width="272" height="28"/> + <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES"/> <sliderCell key="cell" continuous="YES" enabled="NO" state="on" alignment="left" maxValue="256" tickMarkPosition="above" sliderType="linear" id="4WJ-yV-tms"/> <connections> <action selector="updateAutoColors:" target="Zxl-vm-6c9" id="Hkn-HH-usp"/> </connections> </slider> <box horizontalHuggingPriority="750" fixedFrame="YES" boxType="separator" translatesAutoresizingMaskIntoConstraints="NO" id="hcd-Iu-gEm"> - <rect key="frame" x="387" y="266" width="5" height="55"/> - <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/> + <rect key="frame" x="427" y="266" width="5" height="55"/> + <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES"/> </box> - <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="CZc-qZ-GLV"> - <rect key="frame" x="167" y="82" width="277" height="17"/> - <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/> + <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="CZc-qZ-GLV"> + <rect key="frame" x="207" y="82" width="277" height="17"/> + <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES"/> <textFieldCell key="cell" lineBreakMode="clipping" title="Hue bias strength:" id="qLB-J6-2mT"> <font key="font" metaFont="system"/> <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/> @@ -1360,8 +1360,8 @@ </textFieldCell> </textField> <button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="tyc-KF-YTY"> - <rect key="frame" x="368" y="13" width="86" height="32"/> - <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/> + <rect key="frame" x="408" y="13" width="86" height="32"/> + <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES" flexibleMaxY="YES"/> <buttonCell key="cell" type="push" title="Close" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="Vhg-3I-evG"> <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/> <font key="font" metaFont="system"/> @@ -1370,25 +1370,73 @@ <action selector="done:" target="Zxl-vm-6c9" id="RKB-kM-yzA"/> </connections> </button> - <segmentedControl verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="msj-PX-5Me"> - <rect key="frame" x="-1" y="-1" width="160" height="23"/> + <button fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Kr4-Dp-J27"> + <rect key="frame" x="19" y="19" width="40" height="22"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/> + <buttonCell key="cell" type="smallSquare" bezelStyle="smallSquare" image="NSAddTemplate" imagePosition="only" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="2Vt-RQ-Tw8"> + <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/> + <font key="font" metaFont="system"/> + </buttonCell> + <connections> + <action selector="addTheme:" target="Zxl-vm-6c9" id="h9c-Qx-Nl7"/> + </connections> + </button> + <button fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="no4-hd-N3G"> + <rect key="frame" x="58" y="19" width="40" height="22"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/> - <segmentedCell key="cell" borderStyle="border" alignment="left" segmentDistribution="fill" style="smallSquare" trackingMode="momentary" id="rIH-ls-kr1"> + <buttonCell key="cell" type="smallSquare" bezelStyle="smallSquare" image="NSRemoveTemplate" imagePosition="only" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="7yD-3i-tc5"> + <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/> <font key="font" metaFont="system"/> - <segments> - <segment image="NSAddTemplate" width="23"/> - <segment image="NSRemoveTemplate" width="23"/> - <segment enabled="NO"/> - <segment label="⋯" width="23"/> - </segments> - </segmentedCell> + </buttonCell> <connections> - <action selector="segmentAction:" target="Zxl-vm-6c9" id="6e6-CQ-Cko"/> + <action selector="deleteTheme:" target="Zxl-vm-6c9" id="tSc-6c-zmo"/> </connections> - </segmentedControl> + </button> + <button fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="czY-Ji-8aT" customClass="GBDisabledButton"> + <rect key="frame" x="97" y="19" width="43" height="22"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/> + <buttonCell key="cell" type="smallSquare" bezelStyle="smallSquare" imagePosition="overlaps" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="Jod-kq-ncg"> + <behavior key="behavior" lightByBackground="YES" lightByGray="YES" accelerator="YES"/> + <font key="font" metaFont="system"/> + </buttonCell> + </button> + <popUpButton fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="wID-ng-ogh"> + <rect key="frame" x="139" y="19" width="40" height="22"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/> + <popUpButtonCell key="cell" type="smallSquare" bezelStyle="smallSquare" imagePosition="only" alignment="center" lineBreakMode="truncatingTail" borderStyle="border" imageScaling="proportionallyDown" inset="2" pullsDown="YES" autoenablesItems="NO" altersStateOfSelectedItem="NO" id="8kS-rT-VYc"> + <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES" changeBackground="YES" changeGray="YES"/> + <font key="font" metaFont="message"/> + <menu key="menu" autoenablesItems="NO" id="ngd-kC-wSu"> + <items> + <menuItem image="NSActionTemplate" hidden="YES" id="PR1-PN-BPT"> + <modifierMask key="keyEquivalentModifierMask"/> + </menuItem> + <menuItem title="Restore Default Palettes" id="B9A-3a-cOd"> + <modifierMask key="keyEquivalentModifierMask"/> + <connections> + <action selector="restoreDefaultPalettes:" target="Zxl-vm-6c9" id="5B6-WE-NyM"/> + </connections> + </menuItem> + <menuItem isSeparatorItem="YES" id="7g5-RP-w1v"/> + <menuItem title="Import Palette…" id="5l9-cd-A8T"> + <modifierMask key="keyEquivalentModifierMask"/> + <connections> + <action selector="import:" target="Zxl-vm-6c9" id="fJj-oh-p6i"/> + </connections> + </menuItem> + <menuItem title="Export Palette…" id="AGy-Ug-ElV"> + <modifierMask key="keyEquivalentModifierMask"/> + <connections> + <action selector="export:" target="Zxl-vm-6c9" id="qUJ-K4-REI"/> + </connections> + </menuItem> + </items> + </menu> + </popUpButtonCell> + </popUpButton> </subviews> </view> - <point key="canvasLocation" x="-62.5" y="222.5"/> + <point key="canvasLocation" x="-38.5" y="207.5"/> </window> <customObject id="Zxl-vm-6c9" customClass="GBPaletteEditorController"> <connections> @@ -1403,8 +1451,6 @@ <outlet property="hueStrengthSlider" destination="ij9-bn-1y8" id="lcn-4q-27B"/> <outlet property="manualModeCheckbox" destination="l33-w0-rLw" id="NBU-1I-UzJ"/> <outlet property="menu" destination="dHJ-3R-Ora" id="SWT-qM-tca"/> - <outlet property="segmentControl" destination="msj-PX-5Me" id="0sp-qI-mlU"/> - <outlet property="segmentMenu" destination="v6S-Bm-QLG" id="c0x-OP-R0a"/> <outlet property="themesList" destination="ZVn-bk-duk" id="S4b-vM-ioi"/> </connections> </customObject> @@ -1415,7 +1461,7 @@ <rect key="screenRect" x="0.0" y="0.0" width="2560" height="1415"/> <view key="contentView" id="waz-WG-RYg"> <rect key="frame" x="0.0" y="0.0" width="521" height="322"/> - <autoresizingMask key="autoresizingMask"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <subviews> <button focusRingType="none" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="xhI-kr-h3J" customClass="GBPreferenceButton"> <rect key="frame" x="18" y="287" width="485" height="18"/> @@ -1456,24 +1502,15 @@ <action selector="closeJoyConsSheet:" target="QvC-M9-y7g" id="K2P-xu-B1o"/> </connections> </button> - <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="gmw-t5-3nG"> - <rect key="frame" x="18" y="20" width="411" height="14"/> - <autoresizingMask key="autoresizingMask" widthSizable="YES"/> - <textFieldCell key="cell" controlSize="small" lineBreakMode="clipping" focusRingType="none" title="Hold L and R on two Joy-Cons to pair them to a dual-controller grip" id="kRC-pE-5Pd"> - <font key="font" metaFont="smallSystem"/> - <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/> - <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/> - </textFieldCell> - </textField> - <scrollView focusRingType="none" fixedFrame="YES" autohidesScrollers="YES" horizontalLineScroll="26" horizontalPageScroll="10" verticalLineScroll="26" verticalPageScroll="10" usesPredominantAxisScrolling="NO" translatesAutoresizingMaskIntoConstraints="NO" id="9m1-mD-ctP"> + <scrollView focusRingType="none" fixedFrame="YES" autohidesScrollers="YES" horizontalLineScroll="26" horizontalPageScroll="10" verticalLineScroll="26" verticalPageScroll="10" hasHorizontalScroller="NO" usesPredominantAxisScrolling="NO" horizontalScrollElasticity="none" translatesAutoresizingMaskIntoConstraints="NO" id="9m1-mD-ctP"> <rect key="frame" x="20" y="55" width="481" height="205"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <clipView key="contentView" id="4U7-cB-J7O"> <rect key="frame" x="1" y="1" width="479" height="203"/> - <autoresizingMask key="autoresizingMask"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <subviews> - <tableView focusRingType="none" verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="lastColumnOnly" selectionHighlightStyle="none" alternatingRowBackgroundColors="YES" columnReordering="NO" columnResizing="NO" multipleSelection="NO" autosaveColumns="NO" typeSelect="NO" rowHeight="24" rowSizeStyle="large" id="XQa-0K-gl3"> - <rect key="frame" x="0.0" y="0.0" width="488" height="203"/> + <tableView focusRingType="none" verticalHuggingPriority="750" allowsExpansionToolTips="YES" tableStyle="fullWidth" alternatingRowBackgroundColors="YES" columnReordering="NO" columnResizing="NO" multipleSelection="NO" autosaveColumns="NO" typeSelect="NO" rowHeight="24" rowSizeStyle="large" id="XQa-0K-gl3"> + <rect key="frame" x="0.0" y="0.0" width="479" height="203"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <size key="intercellSpacing" width="3" height="2"/> <color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/> @@ -1487,7 +1524,7 @@ <imageCell key="dataCell" alignment="left" imageScaling="proportionallyDown" id="HEi-ii-9Hv" customClass="GBTintedImageCell"/> <tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/> </tableColumn> - <tableColumn width="250" minWidth="40" maxWidth="1000" id="YhU-Z2-p6i"> + <tableColumn width="241" minWidth="40" maxWidth="1000" id="YhU-Z2-p6i"> <tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border"> <color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/> <color key="backgroundColor" name="headerColor" catalog="System" colorSpace="catalog"/> @@ -1508,7 +1545,7 @@ Test</string> </tableHeaderCell> <popUpButtonCell key="dataCell" type="bevel" title="Horizontal Grip" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="bezel" imageScaling="proportionallyDown" inset="2" arrowPosition="arrowAtCenter" preferredEdge="maxY" selectedItem="IJX-Qq-TaU" id="rif-6W-xsN"> <behavior key="behavior" lightByBackground="YES" lightByGray="YES"/> - <font key="font" metaFont="menu"/> + <font key="font" metaFont="message"/> <menu key="menu" id="36b-lh-dDy"> <items> <menuItem title="Default Grip" id="8im-vm-Bj9"/> @@ -1527,8 +1564,8 @@ Test</string> </tableView> </subviews> </clipView> - <scroller key="horizontalScroller" wantsLayer="YES" verticalHuggingPriority="750" horizontal="YES" id="QaD-xE-QPs"> - <rect key="frame" x="1" y="188" width="479" height="16"/> + <scroller key="horizontalScroller" hidden="YES" wantsLayer="YES" verticalHuggingPriority="750" horizontal="YES" id="QaD-xE-QPs"> + <rect key="frame" x="-100" y="-100" width="479" height="16"/> <autoresizingMask key="autoresizingMask"/> </scroller> <scroller key="verticalScroller" hidden="YES" wantsLayer="YES" verticalHuggingPriority="750" horizontal="NO" id="Plj-YY-6jm"> @@ -1536,6 +1573,15 @@ Test</string> <autoresizingMask key="autoresizingMask"/> </scroller> </scrollView> + <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="gmw-t5-3nG"> + <rect key="frame" x="18" y="23" width="411" height="14"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES"/> + <textFieldCell key="cell" controlSize="small" lineBreakMode="clipping" focusRingType="none" title="Hold L and R on two Joy-Cons to pair them to a dual-controller grip" id="kRC-pE-5Pd"> + <font key="font" metaFont="smallSystem"/> + <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/> + <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/> + </textFieldCell> + </textField> </subviews> </view> <point key="canvasLocation" x="-1062.5" y="-96"/> @@ -1545,37 +1591,14 @@ Test</string> <outlet property="tableView" destination="XQa-0K-gl3" id="fhZ-wM-dnm"/> </connections> </customObject> - <menu id="v6S-Bm-QLG"> - <items> - <menuItem title="Restore Default Palettes" id="pZX-co-uHd"> - <modifierMask key="keyEquivalentModifierMask"/> - <connections> - <action selector="restoreDefaultPalettes:" target="Zxl-vm-6c9" id="zr5-w7-DYc"/> - </connections> - </menuItem> - <menuItem isSeparatorItem="YES" id="hH1-bz-mOh"/> - <menuItem title="Import Palette…" id="WaC-3o-BP0"> - <modifierMask key="keyEquivalentModifierMask"/> - <connections> - <action selector="import:" target="Zxl-vm-6c9" id="FBi-7Q-NQg"/> - </connections> - </menuItem> - <menuItem title="Export Palette…" id="9zU-Mf-6ia"> - <modifierMask key="keyEquivalentModifierMask"/> - <connections> - <action selector="export:" target="Zxl-vm-6c9" id="62i-Lv-2IO"/> - </connections> - </menuItem> - </items> - <point key="canvasLocation" x="349.5" y="434.5"/> - </menu> </objects> <resources> <image name="CPU" width="32" height="32"/> <image name="Display" width="32" height="32"/> <image name="Joypad" width="32" height="32"/> - <image name="NSAddTemplate" width="14" height="13"/> - <image name="NSRemoveTemplate" width="14" height="4"/> + <image name="NSActionTemplate" width="20" height="20"/> + <image name="NSAddTemplate" width="18" height="17"/> + <image name="NSRemoveTemplate" width="18" height="5"/> <image name="Speaker" width="32" height="32"/> <image name="Updates" width="32" height="32"/> </resources> diff --git a/Cocoa/Speaker~solid.png b/Cocoa/Speaker~solid.png Binary files differ. diff --git a/Cocoa/Speaker~solid@2x.png b/Cocoa/Speaker~solid@2x.png Binary files differ. diff --git a/Cocoa/Updates.png b/Cocoa/Updates.png Binary files differ. diff --git a/Cocoa/Updates@2x.png b/Cocoa/Updates@2x.png Binary files differ. diff --git a/Cocoa/Updates~solid.png b/Cocoa/Updates~solid.png Binary files differ. diff --git a/Cocoa/Updates~solid@2x.png b/Cocoa/Updates~solid@2x.png Binary files differ. diff --git a/Cocoa/Updates~solid~dark.png b/Cocoa/Updates~solid~dark.png Binary files differ. diff --git a/Cocoa/Updates~solid~dark@2x.png b/Cocoa/Updates~solid~dark@2x.png Binary files differ. diff --git a/iOS/GBCheatsController.m b/iOS/GBCheatsController.m @@ -91,11 +91,11 @@ } else { alertController.title = @"Invalid cheat code entered"; - [self presentViewController:alertController animated:YES completion:nil]; + [self presentViewController:alertController animated:true completion:nil]; } }]]; [alertController addAction:[UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:nil]]; - [self presentViewController:alertController animated:YES completion:nil]; + [self presentViewController:alertController animated:true completion:nil]; } + (UIBarButtonItem *)buttonWithLabel:(NSString *)label

This webpage is intended to be an accessible preview of this repository. To get a fuller picture, clone it and use the git CLI.