From b6bfb9dac513972230a87e60363f346e7ac7b5d1 Mon Sep 17 00:00:00 2001 From: Pete Schaffner Date: Sun, 25 Feb 2024 21:47:15 +0100 Subject: [PATCH] Don't use a toolbar for the traditional title/tab bar I forgot I can use a `NSTitlebarAccessoryViewController` to house the button --- .../ResetZoom.imageset/Contents.json | 15 +++ .../ResetZoom.imageset/ResetZoom.pdf | Bin 0 -> 4795 bytes .../Features/Terminal/TerminalToolbar.swift | 26 +--- .../Features/Terminal/TerminalWindow.swift | 112 ++++++++++++------ 4 files changed, 89 insertions(+), 64 deletions(-) create mode 100644 macos/Assets.xcassets/ResetZoom.imageset/Contents.json create mode 100644 macos/Assets.xcassets/ResetZoom.imageset/ResetZoom.pdf diff --git a/macos/Assets.xcassets/ResetZoom.imageset/Contents.json b/macos/Assets.xcassets/ResetZoom.imageset/Contents.json new file mode 100644 index 000000000..b5bca19ac --- /dev/null +++ b/macos/Assets.xcassets/ResetZoom.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "ResetZoom.pdf", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "template-rendering-intent" : "template" + } +} diff --git a/macos/Assets.xcassets/ResetZoom.imageset/ResetZoom.pdf b/macos/Assets.xcassets/ResetZoom.imageset/ResetZoom.pdf new file mode 100644 index 0000000000000000000000000000000000000000..fa36790fc94eb8396b6ea25438d34198f23fedb2 GIT binary patch literal 4795 zcmai&cTf{++lOgN5djtH>WUPpDTFRP5D=6mNT?o z%{xr{b=QuPBwL}#5bix~JGa+bi<;b_`q?viex0SP;~?*AAVlS8ubcOIIgtmG6bEWTz>;c}O`DgBn< z`)t#JDu@MOmK+~KK94lUHK4B*f!Ef!-cG3P)%AB>{*YE0BO>)V(&?UQ?YT|HZ_b%H zUecO+0guR#FHMvd8BxLJiy*1vlew)wL{bFwg18Md2TSb|OyVSbBTckA)wx5+Tv1I{ zKonC4*6npIXFLj#lQ8y7t0)0>+3}`rN}gn~saNc=H`eJVF_RCyCDvU@dlq;H{?SlQ z-gY-O2@lT&>qz_Wj1F^f5f{CllcUAuHaiFhezrO@0mh5UxJZ50zJu!RH~j^V&=Wxl zswb@idOS-9B_41V_-hs1D7C8MJSAV!{>al;&C-nBBkJ)sTybpEeYH@oEJaXC#L5}d zD`wfuw&8p~hFbFS`+){{#IbfQjJ4S7%`9y30}@N>UYYZVDfyw!TQ#cPIcr}_^~N}q zY8#P!T_XH!v$mR9aowql5s6qumpaWJYQ%984*j8E_5n6Rx50z+S_hmtSt#uR@6+Jm zsMm?`m$x=D?)*gao<)ubIo1`iKjoYwpH9fwGy%8Q3DxUM=dlkJ85Bsq3TbL78xVwC z)J$X^ON=RB_(*nj22l4Dd)Pj9_dWDhZnJ*lSY(B}@zB=I$Z#4@jZo~S7ai(%?a&oV zpNtm;;s7RPW{qZftf|5seXbYF*(Jzrrsr2ngeTpg&={l^Wr;4FT(N z(;+2|W->Z%Ctl8q^Fclzqb$G$RT%eD8hDxLK3xDkJ_Sh?{c zV`oEuZ;Fz+u_Ro3YGZpn!9PFgS}pTv{h>B8ZeI7W_^>v=wzu+-`dk=|78AzJ?oUWz z-0Y6f2KfzfH}1G&0FVL7;nx|DaU%dw01OxbAR~+i&J%Bo@c>|d1R6Lu0>+Kt0UROH z=!kuP&O2KF3z-IZoUJj209XJZ1GpAo1%NbgE;zigJIWRV95GeH0|H3@IpDV$GQZ8Z z4oCqYwIlSpp$HfN1jl$`Z81g&_5Z>bDg%N3Z#@4_7A*kQ$Qu$s!?$9=l@1T*SDSe6<4x5awP(`Pyww`sW8s9DUY z>n82(=@2_`n!X=orIeHc?dI~WZ<2v_q*3u&10j!r!+;omSq*{XR7{%vGFSYCIA>_$ zjmw+3p@($s8wn!NPzaPGi!r;Hf2#3?%U1rZ7^y8eNoYEY2ie8_4wgYA8H}e2PUaBl zvMiGYKRe{yqsNeM=%iB3Y+vr}-AU7<0<)*sbj}H7xr9SC*}1=kf2W~hh;NjChi8f0 zm3Pdb^2u|Uj-U(ILFb(sOvcW9ZMEN9D>vRnL&V}6u1!Al(W7isFh2rw2EM>0YEla# zT~i!mmP`1SmyrXrj=QzP6X*Sn50qMc_f6J>mM9r�=zw%Th6j%t5s!VE*J>c};=| zRfX$u)tSj+{S|=f`!TAD@wD~xp)S_3jbE6BPed*)xp+`#I!lUumEF(0k87_DmETV3 z__lAVn8&FSbV=u|6h?CmP*k(JNs*}flXloEp%dF#E3;Akd_%)s} zINXsGawW*@v7{YSa6tcL0GEs~J-2_lGrOaw4V7Pryg`)?eJf6hO5+l(fSZahjo+dL z8-%H~=AC0n%nOfbsPE6Yy$dHSBittS)cB2Ox0s{t@PgUm+&L4$F7-60AJY?_GQol* z!8GExPVxmxxzmmVRKbDTY_y5AlG-#_Rk~Md%0pC4YLFpnuLn-cQSq`i}tY_yM(F@Tp{)Uew7UsyBhdWr}?)=bYqSr4kRZc^}81+R8xNt!2i*y9QT(Y$iZ`>Y{TDe=bd- zX6j>>T;8`)+A+7MX^)3xp^~{cnz^UKkiYoe0Rb0*8*Drba|{Q; zr{2R1g9`Ks{Gn`j8ZFTxFCPu5z0=_nx*o@_6Dq)IBp{Mf5p+YxiQh^{Nr-$gu1&!X zf#*W1TI-hzWCAvVtg$Kv@t1|z^{?`2st;e6zxr17j_MtaXGSLr-1^L(Cs(JN>yzPr zSN%YUIH{!dq^Y)&xS|;6gvF%0g8K1;N#02|l9|Fb7Xz;T%==MAV_2_RZyc0UW}2ln zS@B*eL`O3OmO||{prtLpX>L5orIiFPQy<7{gOpdlzfVJ z1|{7Fb~ybbY@w_=+_!4aX|rKLX(5g$m8XV>o5zGF3Dzvlo$8j_mO7I<2WzQtG(Yj0 z&V0sv?zJ^IA>~`=4ST`zNcpUi(&c=KZspvuBBc`Bf^sv5oa^OXXRKl+Eo9XyEh~+^ z)%A5jW+0mvhAUahhM6UqxwVK|i-7jJkHE;SNVO;R1z8bUwWthK&ZO<7=P^ayqB-U{ zip_GiZ*E7dDNk7lm4&D4#Og$~T{9l)8^3X@no>bwcAj+AAcvbeFtqWA@*2=bVjYsEs@Uc*RZsqrIKX$HJY%Xfe zY6tTphAt`iRd6>vsnIIjR;N_wtj-jTzS`^0p08}a2Td2oKaS54kt*yi{D2Lv*s17M z7eqyriCIZ036nt$upF>Pbvw5Io5`7M)$SO*%N|I3Qu3ppdYjrrfhU3wkSEHWUX42- zFq!R!ou_6urc?UI@Eam4E<3r{mq%BBxIn}a`f$WZ>#$1$<3O@ zXji~hdw8`&t0M}-JK+{F-e>sKu&m~mWBJN#v-(?g!%4D4mj#PUlgn9`I)}CfBr)5LJ&`M>MVKTZsl_NNXzJ8?SyMU zFLe}c6TR|zcD{E3t=k69C2Foss85r{4V1;~h3Z;|0Gj~#vi4dG1rdUH*782uvtO}q zP_{reUgmvNZ1c;h+by_*&zl-|&lJrYNaeiUp_98PzxJhN=fX+`^OfN{5q{6-g%2{f z-h4EVFwYwJG!XtKR|b1m@9xBWU~l@lu5%J9PY&;G5VulN%iA4vDKTAV)1Js@di#G@ zZw^_D4Cf3}xJgj1u9)sgFD)w_?+8kIVZHViUpPwM|6!6;UYTd32c0OB;E7@0(=J-9zh7O7ni> z2i^3Atkx=>zH$eS2ewO7*}_cvq8ZOsN)GyW2JH*U8%s|IZ&Au0Iz)$7X@CwBc3 z9HSIc#I!2377!%}3UQY>=KFG^X|;ox)H@YYEAsQrc0zYiroZ<-*#X_wxa!=!n4)rZ zyr4#YZ(z%H&hG1UuQzrjFF#_us77Tg=pbv~cB3U`eo22vKOr+p#rq!PkMBN0uJ*GN z+rjJm|90ggRXuWB3jm~}p`niQz}Nvtu4)8W{iVN0zWkT|{;ks<0O%UV4vSL9`2ZGR z01QB200j2Shdtd000aQ(V(mNt3*gAcjR33PTv+yB12s?tlnc(`4^j8{)6oAGaJk#W zm;C*RK6s2h6Bv+Z0{`~_WTd5~qyc;2&kO>Ul>&aP0&ah0Fo=xYKQk~G3jJpWk&^x& zy;A?mATTK8pS>_BO#a`Q{BQRq;89o?4F1 NSButton { + let button = NSButton() + button.target = nil + button.action = #selector(TerminalController.splitZoom(_:)) + button.isBordered = false + button.allowsExpansionToolTips = true + button.toolTip = "Reset Zoom" + button.contentTintColor = .controlAccentColor + button.state = .on + button.image = NSImage(named:"ResetZoom") + button.frame = NSRect(x: 0, y: 0, width: 20, height: 20) + button.translatesAutoresizingMaskIntoConstraints = false + button.widthAnchor.constraint(equalToConstant: 20).isActive = true + button.heightAnchor.constraint(equalToConstant: 20).isActive = true + + return button + } + // MARK: - Titlebar Tabs // Used by the window controller to enable/disable titlebar tabs. var titlebarTabs = false { didSet { self.titleVisibility = titlebarTabs ? .hidden : .visible - generateToolbar() + if titlebarTabs { + generateToolbar() + } } }