From d960b4c0616f2d361e1326d3d64cf093fcb7aacb Mon Sep 17 00:00:00 2001 From: rogerman Date: Thu, 16 Aug 2012 00:36:22 +0000 Subject: [PATCH] Cocoa Port: - The main window now remembers if the status bar is shown or hidden. - Fix a bug with the status bar where if the status bar was to be shown when the main window was larger than the desktop's content area, then the status bar wouldn't show properly until the user resized or rotated the DS display. Now, the main window shrinks in size as necessary to accommodate the status bar. --- desmume/src/cocoa/DefaultUserPrefs.plist | Bin 5031 -> 5064 bytes .../cocoa/userinterface/emuWindowDelegate.h | 2 + .../cocoa/userinterface/emuWindowDelegate.mm | 47 ++++++++++++++---- 3 files changed, 38 insertions(+), 11 deletions(-) diff --git a/desmume/src/cocoa/DefaultUserPrefs.plist b/desmume/src/cocoa/DefaultUserPrefs.plist index aec738a8160e04223739fa0748aa73f53734eef8..5a3c4c0ce01534c50f4a7dee7926ea4357bd3918 100644 GIT binary patch delta 2291 zcmY*Z33yc16+UN{`}X&4#xP09kUarJAV5i2lp3-?Ffq$CQfPFTCeLKZY)mqwK}v+S zil`KLf(tGnwp13|5+rCWiUI}@L6{Jmst~Dh0a2C~)JA->G@riZ-gnM_mV5qp?%g`F zd!+DdzuVQ^lAC*mPF^c`8uB3@rodE~rr+Uls($C`a~>4H%!phZL!)?^j+E=~|82wC zuti?PqgWq{b+4#xL3qabFb!+9`Nq^V2c<=>X209nc9%T^@+I~#d<{4~O2fb-_O_8G{;Pj}?m1@AQ*7>~k+D9hq+7FYoF*sUVZMIIZ6?=ki zXN$|{bre?C3<<^F2A5ZL(714jYSrofh0CKBx_xy`TB_L=_mgFm`|4Hg3q!iL(r8O| z(8Qr2j+vzu_Nb)V=ay<;p>1r^PYP)Cwc1;pEy3oQ&VXLr(0U8?qFU5|R%=d~Y6)v+ z1)TmySDn*c>h%X(95lXK_13F_Nkxw0`UbV!8EA5O8}12Pmb>Z#K7XUnt7@etn>N{y zm6#ZHD)f0<0zS7}4U{|me%)TXWU^}0&6(O3!*K0oW14osn5lJ|GhA^)(aUreW;^Se z^sc3*P~vOQSN7uqt9^QPVQy*CEY+(9oNh-!u*K*0IqRz{$}9X@B@P=F zA6;HSu-@g1d`1YBObJr0y|Tt(Z}ZkgG+l=5>_~}a&W0F4`ak}0I=jxN&Vi<&Oib(|>9m!t{ICcD z&0sC`C1K| zV|}OxR>8yY2s{d_;g7He*2207?65o*g7vTg9)~C3Nq7o2Mgor0a=CQtGd=JuJO`U# zGdvGl;05>-{5cl%SuVr!mk_)N+h9BFfSvFX{59&ij?c3Gy$5zd2keHIVGne|UU&sw zjX5sj$6H!oz=!Zr%mBpi;( zXu}aYR3$I4q=qmJ(=h`xF$=RXCl>6ooM;&p!qIp$j=@`SERMtR5onw?M@dPU(2Ems z68;P)V;<(?6r76Fz>m}MR=f>o=*_c08&Jli+}?`?I1>x82#c`#;M zw9>TRw8PYG>TNe&G@H#9bH2I6Tx(uzUTuED+-2@DUn7)QNIbET5hR7Ak~ES|GDs%L zA~|Ff8BJ~`w~(=992rk?$pkWyOear~tz;M3LtZ1VlY`_aIYr(leWah9BcG5@$pvze zTqW1ZAi2Sq8Om6hBqon3VA|&}HH?$-Fs;lA<}qd`vxj+w>0%BshnYTRfVspB>N}rj zZEPx=!RE7t?49gfwvP3(es%@BhF!<5XScC?*!}Dg_B7kio@WO+Bgb$&m&}diCUP^l zQm&e-=Nh>t?tbnO?s0Atw}b2Cy0~N9DXy36Yv;~$*LVXj^GSR*pU+R{XYh93!7t>S z`F4I4|0KVi@8CQ6SNWrSFaI%rk^e?8307gaFhUq7OcRQQDxp@mNAL>)At*c`tP`FQ zUKDl0RELGZ-70PqUHl;(^ryNmED`%DS${>xW2{egj(NS~^olWg@ zK6O$zT}D^Y4Rj0LL3hy(`X+sg9-s&5A^JA$ribYfdX&CHkI{GOae9)T($8)EG8m#W N-W{2RsHBhd;t#nJmNNhV delta 2246 zcmYjR3wTt;6+Y+g-ns94C!05kAt6M9MH7ty5~vnQLU_bT65zuE>$+~B8s4Qmo&}2-<>%#|NoykXXeh? zKVa@sGt z&ux8J0-r5UE}u|hh0z!ev1%@hWnv%J#%DX?dIaM;fXnL~5f1siephW(WkscLoGa{e*H4T39p|bWX(_B6*%e#A#Dv}vR{2A* ztXYCRhh4BI=EM{g9(TasSnu~)?&EvYtLy#EmPYVJk&n(C;-_6Q;5+Fg}j<)>nHTGuaS(|8YrW zo7F`gg&7RG>P%4*CCX8tXc^Wkid2|XVpcbVD@rAa){3HJO&5&VvL)>T z09be@O=e?A&XDO)2le2AU%?D`44#HXunbnide{bg;Q$_~fPQXd{0!~3!3>xJ)9fAMAf8k3w11>lV=eiZU)%e8xcKA91=ivfegiA0LF2j`` zG|6!_0^h+l2I=!O!sY{!og1VrS}hIZtU#GpJjOG|c$5tL9y1y$5gN5g{J zwNZ|^2s$tx6EG2zFd0+2o#pC-lKOOD8m8lIn1OvU6SJ@%X2;;@F=n!MeV`*Jg16%U z%*BCt2mTBPb+4xwDUQ1$n1}gzH{OEs^hFEm+`BreQ7#kF%g zxf9$On`FzjmDwJ)wbQe5Bv@OCjTP=f`lV>q7sehgpxSoAn_!D zB$6c3mt>MG(vLhz7LjFS1$mjgO4gChWCz(p_LBYN0Qr!7M2?US@)_wQUF0-5N4_OD zgjNu46LN*Sh2cWEP$NteJi=^YsjxzLNmwnc7d8reg@eK;LYHt}xG360V%3if@eZ+2 zyiXh>P7o)F9=Mt2UyBzdPST}RDM!keilnhprBo%= zNkM6@^sL0BmC|ZyYpb+F+AZys4okDyy1G)hzW+b*NgRwpOYx)vZofo7Jb)MQWS6M%}KytG=fmR6kX_ z)C=l$jc6%ay4F|A*M@7Ov}$dd_J|hHLRzynUt6lJ(%#gzY42zUw1e8m+DYvz?V4`a z4ZXiUSTE9t>*MvQdcEGH&(Y`W&+BXTb@~Qla(~%LZ?VhGL`}xkiC; zzcI!bZ@7)=hR2v^EH>JVHO3}mm+`)F*yu8@8#k>wu26$IXdW%5BWO9TrY3EobLaxf o=rY screenFrame.size.height) + { + NSRect windowContentRect = [[window contentView] bounds]; + double widthToHeightRatio = windowContentRect.size.width / windowContentRect.size.height; + windowContentRect.size.height -= frameRect.size.height - screenFrame.size.height; + windowContentRect.size.width = windowContentRect.size.height * widthToHeightRatio; + frameRect.size.width = windowContentRect.size.width; + } + } + else + { statusBarHeight = 0; frameRect.origin.y += WINDOW_STATUS_BAR_HEIGHT; frameRect.size.height -= WINDOW_STATUS_BAR_HEIGHT; } - else - { - isShowingStatusBar = YES; - statusBarHeight = WINDOW_STATUS_BAR_HEIGHT; - frameRect.origin.y -= WINDOW_STATUS_BAR_HEIGHT; - frameRect.size.height += WINDOW_STATUS_BAR_HEIGHT; - } - [[self bindings] setValue:[NSNumber numberWithBool:isShowingStatusBar] forKey:@"isShowingStatusBar"]; + isShowingStatusBar = showStatusBar; + [[self bindings] setValue:[NSNumber numberWithBool:showStatusBar] forKey:@"isShowingStatusBar"]; + [[NSUserDefaults standardUserDefaults] setBool:showStatusBar forKey:@"DisplayView_ShowStatusBar"]; [window setFrame:frameRect display:YES animate:NO]; } @@ -1955,6 +1977,9 @@ - (void) setupUserDefaults { + // Set the display window per user preferences. + [self setShowStatusBar:[[NSUserDefaults standardUserDefaults] boolForKey:@"DisplayView_ShowStatusBar"]]; + // Set the display mode, sizing, and rotation. double displayScalar = (double)([[NSUserDefaults standardUserDefaults] floatForKey:@"DisplayView_Size"] / 100.0); double displayRotation = (double)[[NSUserDefaults standardUserDefaults] floatForKey:@"DisplayView_Rotation"];