ghostty/macos/Sources/MainMenu.xib
Mitchell Hashimoto 2e74a0f9d4 macos: custom about window so we can be a first responder
Fixes #1052

This implements the about window as a custom window with a view
controller. This lets us implement the proper responder chain so that
our custom close window IBActions do the right thing.

This has an additional benefit that we can easily customize this window
going forward.
2023-12-17 15:51:04 -08:00

328 lines
21 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22505" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
<dependencies>
<deployment identifier="macosx"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22505"/>
</dependencies>
<objects>
<customObject id="-2" userLabel="File's Owner" customClass="NSApplication">
<connections>
<outlet property="delegate" destination="bbz-4X-AYv" id="4pZ-gB-Uf0"/>
</connections>
</customObject>
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
<customObject id="bbz-4X-AYv" userLabel="AppDelegate" customClass="AppDelegate" customModule="Ghostty" customModuleProvider="target">
<connections>
<outlet property="menuClose" destination="DVo-aG-piG" id="R3t-0C-aSU"/>
<outlet property="menuCloseWindow" destination="W5w-UZ-crk" id="6ff-BT-ENV"/>
<outlet property="menuCopy" destination="Jqf-pv-Zcu" id="bKd-1C-oy9"/>
<outlet property="menuDecreaseFontSize" destination="kzb-SZ-dOA" id="Y1B-Vh-6Z2"/>
<outlet property="menuEqualizeSplits" destination="3gH-VD-vL9" id="SiZ-ce-FOF"/>
<outlet property="menuIncreaseFontSize" destination="CIH-ey-Z6x" id="hkc-9C-80E"/>
<outlet property="menuMoveSplitDividerDown" destination="Zj7-2W-fdF" id="997-LL-nlN"/>
<outlet property="menuMoveSplitDividerLeft" destination="wSR-ny-j1a" id="HCZ-CI-2ob"/>
<outlet property="menuMoveSplitDividerRight" destination="CcX-ql-QU4" id="rIn-PK-fVM"/>
<outlet property="menuMoveSplitDividerUp" destination="h9Y-40-3oo" id="dDi-Vq-I3r"/>
<outlet property="menuNewTab" destination="uTG-Vz-hJU" id="eMg-R3-SeS"/>
<outlet property="menuNewWindow" destination="Was-JA-tGl" id="lK7-3I-CPG"/>
<outlet property="menuNextSplit" destination="bD7-ei-wKU" id="LeT-xw-eh4"/>
<outlet property="menuPaste" destination="i27-pK-umN" id="ICc-X2-gV3"/>
<outlet property="menuPreviousSplit" destination="Lic-px-1wg" id="Rto-CG-yRe"/>
<outlet property="menuQuit" destination="4sb-4s-VLi" id="qYN-S1-6UW"/>
<outlet property="menuReloadConfig" destination="KKH-XX-5py" id="Wvp-7J-wqX"/>
<outlet property="menuResetFontSize" destination="Jah-MY-aLX" id="ger-qM-wrm"/>
<outlet property="menuSelectSplitAbove" destination="0yU-hC-8xF" id="aPc-lS-own"/>
<outlet property="menuSelectSplitBelow" destination="QDz-d9-CBr" id="FsH-Dq-jij"/>
<outlet property="menuSelectSplitLeft" destination="cTK-oy-KuV" id="Jpr-5q-dqz"/>
<outlet property="menuSelectSplitRight" destination="upj-mc-L7X" id="nLY-o1-lky"/>
<outlet property="menuSplitHorizontal" destination="VUR-Ld-nLx" id="RxO-Zw-ovb"/>
<outlet property="menuSplitVertical" destination="UDZ-4y-6xL" id="fgZ-Wb-8OR"/>
<outlet property="menuTerminalInspector" destination="QwP-M5-fvh" id="wJi-Dh-S9f"/>
<outlet property="menuToggleFullScreen" destination="8kY-Pi-KaY" id="yQg-6V-OO6"/>
<outlet property="menuZoomSplit" destination="oPd-mn-IEH" id="wTu-jK-egI"/>
</connections>
</customObject>
<customObject id="YLy-65-1bz" customClass="NSFontManager"/>
<menu title="Main Menu" systemMenu="main" id="AYu-sK-qS6">
<items>
<menuItem title="Ghostty" id="1Xt-HY-uBw">
<modifierMask key="keyEquivalentModifierMask"/>
<menu key="submenu" title="Ghostty" systemMenu="apple" id="uQy-DD-JDr">
<items>
<menuItem title="About Ghostty" id="5kV-Vb-QxS">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="showAbout:" target="-1" id="tGt-68-tLn"/>
</connections>
</menuItem>
<menuItem isSeparatorItem="YES" id="VOq-y0-SEH"/>
<menuItem title="Preferences…" keyEquivalent="," id="BOF-NM-1cW"/>
<menuItem title="Reload Configuration" id="KKH-XX-5py">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="reloadConfig:" target="bbz-4X-AYv" id="h5x-tu-Izk"/>
</connections>
</menuItem>
<menuItem isSeparatorItem="YES" id="4je-JR-u6R"/>
<menuItem title="Hide Ghostty" keyEquivalent="h" id="Olw-nP-bQN">
<connections>
<action selector="hide:" target="-1" id="PnN-Uc-m68"/>
</connections>
</menuItem>
<menuItem title="Hide Others" keyEquivalent="h" id="Vdr-fp-XzO">
<modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
<connections>
<action selector="hideOtherApplications:" target="-1" id="VT4-aY-XCT"/>
</connections>
</menuItem>
<menuItem title="Show All" id="Kd2-mp-pUS">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="unhideAllApplications:" target="-1" id="Dhg-Le-xox"/>
</connections>
</menuItem>
<menuItem isSeparatorItem="YES" id="kCx-OE-vgT"/>
<menuItem title="Quit Ghostty" id="4sb-4s-VLi">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="terminate:" target="-1" id="Te7-pn-YzF"/>
</connections>
</menuItem>
</items>
</menu>
</menuItem>
<menuItem title="File" id="dMs-cI-mzQ">
<modifierMask key="keyEquivalentModifierMask"/>
<menu key="submenu" title="File" id="bib-Uj-vzu">
<items>
<menuItem title="New Window" id="Was-JA-tGl">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="newWindow:" target="-1" id="pnf-fE-gHi"/>
</connections>
</menuItem>
<menuItem title="New Tab" id="uTG-Vz-hJU">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="newTab:" target="-1" id="KoW-K7-hw5"/>
</connections>
</menuItem>
<menuItem isSeparatorItem="YES" id="m54-Is-iLE"/>
<menuItem title="Split Horizontally" id="VUR-Ld-nLx">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="splitHorizontally:" target="-1" id="cv2-Xg-FR4"/>
</connections>
</menuItem>
<menuItem title="Split Vertically" id="UDZ-4y-6xL">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="splitVertically:" target="-1" id="c6x-CF-u52"/>
</connections>
</menuItem>
<menuItem isSeparatorItem="YES" id="sjq-M1-UGS"/>
<menuItem title="Close" id="DVo-aG-piG">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="close:" target="-1" id="tTZ-2b-Mbm"/>
</connections>
</menuItem>
<menuItem title="Close Window" id="W5w-UZ-crk">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="closeWindow:" target="-1" id="ovs-xn-3ju"/>
</connections>
</menuItem>
</items>
</menu>
</menuItem>
<menuItem title="View" id="3L3-2p-Joi" userLabel="View">
<modifierMask key="keyEquivalentModifierMask"/>
<menu key="submenu" title="View" id="m6z-2H-VW7">
<items>
<menuItem title="Increase Font Size" id="CIH-ey-Z6x" userLabel="Increase Font Size">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="increaseFontSize:" target="-1" id="361-5E-7PY"/>
</connections>
</menuItem>
<menuItem title="Reset Font Size" id="Jah-MY-aLX">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="resetFontSize:" target="-1" id="3dh-T9-IkH"/>
</connections>
</menuItem>
<menuItem title="Decrease Font Size" id="kzb-SZ-dOA">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="decreaseFontSize:" target="-1" id="Zlz-QZ-t8K"/>
</connections>
</menuItem>
<menuItem isSeparatorItem="YES" id="L3L-I8-sqk"/>
<menuItem title="Terminal Inspector" id="QwP-M5-fvh">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="toggleTerminalInspector:" target="-1" id="87m-3R-fQl"/>
</connections>
</menuItem>
</items>
</menu>
</menuItem>
<menuItem title="Edit" id="ZUG-Nx-Wkj">
<modifierMask key="keyEquivalentModifierMask"/>
<menu key="submenu" title="Edit" id="iU4-OB-ccf">
<items>
<menuItem title="Copy" id="Jqf-pv-Zcu">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="copy:" target="-1" id="B4F-hg-R4T"/>
</connections>
</menuItem>
<menuItem title="Paste" id="i27-pK-umN">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="paste:" target="-1" id="ZKe-2B-mel"/>
</connections>
</menuItem>
<menuItem isSeparatorItem="YES" id="VYS-RG-uZD"/>
</items>
</menu>
</menuItem>
<menuItem title="Window" id="aUF-d1-5bR">
<modifierMask key="keyEquivalentModifierMask"/>
<menu key="submenu" title="Window" systemMenu="window" id="Td7-aD-5lo">
<items>
<menuItem title="Minimize" keyEquivalent="m" id="OY7-WF-poV">
<connections>
<action selector="performMiniaturize:" target="-1" id="VwT-WD-YPe"/>
</connections>
</menuItem>
<menuItem title="Zoom" id="R4o-n2-Eq4">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="performZoom:" target="-1" id="DIl-cC-cCs"/>
</connections>
</menuItem>
<menuItem isSeparatorItem="YES" id="eu3-7i-yIM"/>
<menuItem title="Toggle Full Screen" id="8kY-Pi-KaY">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="toggleGhosttyFullScreen:" target="-1" id="QB9-7R-xyc"/>
</connections>
</menuItem>
<menuItem title="Bring All to Front" id="LE2-aR-0XJ">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="arrangeInFront:" target="-1" id="DRN-fu-gQh"/>
</connections>
</menuItem>
<menuItem isSeparatorItem="YES" id="rlu-tP-x0P"/>
<menuItem title="Zoom Split" id="oPd-mn-IEH">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="splitZoom:" target="-1" id="g0e-Ls-D7L"/>
</connections>
</menuItem>
<menuItem title="Select Previous Split" id="Lic-px-1wg">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="splitMoveFocusPrevious:" target="-1" id="ip5-6M-66n"/>
</connections>
</menuItem>
<menuItem title="Select Next Split" id="bD7-ei-wKU">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="splitMoveFocusNext:" target="-1" id="FSV-0l-3VR"/>
</connections>
</menuItem>
<menuItem title="Select Split" id="dos-9S-LXC">
<modifierMask key="keyEquivalentModifierMask"/>
<menu key="submenu" title="Select Split" id="8tg-60-ZSU">
<items>
<menuItem title="Select Split Above" id="0yU-hC-8xF">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="splitMoveFocusAbove:" target="-1" id="0Y7-7I-yQO"/>
</connections>
</menuItem>
<menuItem title="Select Split Below" id="QDz-d9-CBr">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="splitMoveFocusBelow:" target="-1" id="9yp-du-tEq"/>
</connections>
</menuItem>
<menuItem title="Select Split Left" id="cTK-oy-KuV">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="splitMoveFocusLeft:" target="-1" id="BZI-DX-ly3"/>
</connections>
</menuItem>
<menuItem title="Select Split Right" id="upj-mc-L7X">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="splitMoveFocusRight:" target="-1" id="ELo-QZ-O6q"/>
</connections>
</menuItem>
</items>
</menu>
</menuItem>
<menuItem title="Resize Split" id="BJO-3W-fkO" userLabel="Resize Split">
<modifierMask key="keyEquivalentModifierMask"/>
<menu key="submenu" title="Resize Split" id="t7T-Ti-0im">
<items>
<menuItem title="Equalize Splits" id="3gH-VD-vL9">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="equalizeSplits:" target="-1" id="RE0-hS-YLf"/>
</connections>
</menuItem>
<menuItem isSeparatorItem="YES" id="XKA-Jd-h9t"/>
<menuItem title="Move Divider Up" id="h9Y-40-3oo">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="moveSplitDividerUp:" target="-1" id="NhD-6U-Eq2"/>
</connections>
</menuItem>
<menuItem title="Move Divider Down" id="Zj7-2W-fdF">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="moveSplitDividerDown:" target="-1" id="jeD-bm-wJX"/>
</connections>
</menuItem>
<menuItem title="Move Divider Left" id="wSR-ny-j1a">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="moveSplitDividerLeft:" target="-1" id="mlg-SJ-ZZO"/>
</connections>
</menuItem>
<menuItem title="Move Divider Right" id="CcX-ql-QU4">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="moveSplitDividerRight:" target="-1" id="h3W-wY-PI7"/>
</connections>
</menuItem>
</items>
</menu>
</menuItem>
</items>
</menu>
</menuItem>
<menuItem title="Help" id="wpr-3q-Mcd">
<modifierMask key="keyEquivalentModifierMask"/>
<menu key="submenu" title="Help" systemMenu="help" id="F2S-fz-NVQ">
<items>
<menuItem title="Ghostty Help" keyEquivalent="?" id="FKE-Sm-Kum">
<connections>
<action selector="showHelp:" target="bbz-4X-AYv" id="tiy-ow-xSw"/>
</connections>
</menuItem>
</items>
</menu>
</menuItem>
</items>
<point key="canvasLocation" x="139" y="154"/>
</menu>
</objects>
</document>