git.y1.nz

SameBoy

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

commit 7eb4a92d2abefc17b38b80e56a8132e0adcb803c
parent 006ee4f6cb9993ee484ebe9761f75c4ef0f123e4
Author: Lior Halphon <LIJI32@gmail.com>
Date:   Wed, 10 Jun 2020 23:28:33 +0300

Improve print window, add a button for actual physical printing

Diffstat:
MCocoa/Document.h1-
MCocoa/Document.m23++++++++++++++---------
MCocoa/Document.xib52++++++++++++++++++++++++++++++----------------------
3 files changed, 44 insertions(+), 32 deletions(-)

diff --git a/Cocoa/Document.h b/Cocoa/Document.h @@ -30,7 +30,6 @@ @property (strong) IBOutlet NSTableView *spritesTableView; @property (strong) IBOutlet NSPanel *printerFeedWindow; @property (strong) IBOutlet NSImageView *feedImageView; -@property (strong) IBOutlet NSButton *feedSaveButton; @property (strong) IBOutlet NSTextView *debuggerSideViewInput; @property (strong) IBOutlet NSTextView *debuggerSideView; @property (strong) IBOutlet GBSplitView *debuggerSplitView; diff --git a/Cocoa/Document.m b/Cocoa/Document.m @@ -565,16 +565,10 @@ static void rumbleCallback(GB_gameboy_t *gb, double amp) self.vramStatusLabel.cell.backgroundStyle = NSBackgroundStyleRaised; - [self.feedSaveButton removeFromSuperview]; self.consoleWindow.title = [NSString stringWithFormat:@"Debug Console – %@", [[self.fileURL path] lastPathComponent]]; self.debuggerSplitView.dividerColor = [NSColor clearColor]; - - /* contentView.superview.subviews.lastObject is the titlebar view */ - NSView *titleView = self.printerFeedWindow.contentView.superview.subviews.lastObject; - [titleView addSubview: self.feedSaveButton]; - self.feedSaveButton.frame = (NSRect){{268, 2}, {48, 17}}; - + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(updateHighpassFilter) name:@"GBHighpassFilterChanged" @@ -1636,13 +1630,24 @@ static void rumbleCallback(GB_gameboy_t *gb, double amp) scale:2.0]; NSRect frame = self.printerFeedWindow.frame; frame.size = self.feedImageView.image.size; + [self.printerFeedWindow setContentMaxSize:frame.size]; frame.size.height += self.printerFeedWindow.frame.size.height - self.printerFeedWindow.contentView.frame.size.height; - [self.printerFeedWindow setMaxSize:frame.size]; [self.printerFeedWindow setFrame:frame display:NO animate: self.printerFeedWindow.isVisible]; [self.printerFeedWindow orderFront:NULL]; }); } + +- (void)printDocument:(id)sender +{ + if (self.feedImageView.image.size.height == 0) { + NSBeep(); return; + } + NSImageView *view = [[NSImageView alloc] initWithFrame:(NSRect){{0,0}, self.feedImageView.image.size}]; + view.image = self.feedImageView.image; + [[NSPrintOperation printOperationWithView:view] runOperationModalForWindow:self.printerFeedWindow delegate:nil didRunSelector:NULL contextInfo:NULL]; +} + - (IBAction)savePrinterFeed:(id)sender { bool shouldResume = running; @@ -1678,7 +1683,7 @@ static void rumbleCallback(GB_gameboy_t *gb, double amp) - (IBAction)connectPrinter:(id)sender { [self performAtomicBlock:^{ - accessory = GBAccessoryPrinter; + accessory = GBAccessoryPrinter; GB_connect_printer(&gb, printImage); }]; } diff --git a/Cocoa/Document.xib b/Cocoa/Document.xib @@ -19,7 +19,6 @@ <outlet property="debuggerSplitView" destination="pUc-ZN-vl5" id="0sG-0D-cID"/> <outlet property="debuggerVerticalLine" destination="7bR-gM-1At" id="rfy-7Z-388"/> <outlet property="feedImageView" destination="Ar0-nN-eop" id="wHa-St-o4G"/> - <outlet property="feedSaveButton" destination="RLc-0I-sYZ" id="Yy9-dG-xXY"/> <outlet property="gridButton" destination="fL6-2S-Rgd" id="jtV-jh-GHC"/> <outlet property="mainWindow" destination="xOd-HO-29H" id="h8M-YB-vcC"/> <outlet property="memoryBankInput" destination="rdV-q6-hc6" id="KBx-9T-2mX"/> @@ -116,7 +115,7 @@ <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <clipView key="contentView" ambiguous="YES" drawsBackground="NO" copiesOnScroll="NO" id="EQe-Ad-L7S"> <rect key="frame" x="0.0" y="0.0" width="591" height="376"/> - <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> + <autoresizingMask key="autoresizingMask"/> <subviews> <textView ambiguous="YES" editable="NO" drawsBackground="NO" importsGraphics="NO" richText="NO" verticallyResizable="YES" baseWritingDirection="leftToRight" findStyle="bar" allowsNonContiguousLayout="YES" id="doS-dM-hnl"> <rect key="frame" x="0.0" y="0.0" width="591" height="376"/> @@ -153,7 +152,7 @@ <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/> <clipView key="contentView" ambiguous="YES" drawsBackground="NO" copiesOnScroll="NO" id="YHx-TM-zIC"> <rect key="frame" x="0.0" y="0.0" width="329" height="47"/> - <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> + <autoresizingMask key="autoresizingMask"/> <subviews> <textView ambiguous="YES" drawsBackground="NO" importsGraphics="NO" richText="NO" verticallyResizable="YES" allowsCharacterPickerTouchBarItem="NO" allowsUndo="YES" allowsNonContiguousLayout="YES" textCompletion="NO" spellingCorrection="YES" id="w0g-eK-jM4"> <rect key="frame" x="0.0" y="0.0" width="329" height="47"/> @@ -187,7 +186,7 @@ <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <clipView key="contentView" ambiguous="YES" drawsBackground="NO" copiesOnScroll="NO" id="Cs9-3x-ATg"> <rect key="frame" x="0.0" y="0.0" width="329" height="328"/> - <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> + <autoresizingMask key="autoresizingMask"/> <subviews> <textView ambiguous="YES" editable="NO" drawsBackground="NO" importsGraphics="NO" richText="NO" verticallyResizable="YES" baseWritingDirection="leftToRight" findStyle="bar" allowsNonContiguousLayout="YES" spellingCorrection="YES" id="JgV-7E-iwp"> <rect key="frame" x="0.0" y="0.0" width="329" height="328"/> @@ -339,7 +338,7 @@ <font key="font" metaFont="system"/> <tabViewItems> <tabViewItem label="Tileset" identifier="1" id="pXb-od-Wb1"> - <view key="view" id="lCG-Gt-XMF"> + <view key="view" ambiguous="YES" id="lCG-Gt-XMF"> <rect key="frame" x="0.0" y="0.0" width="512" height="408"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <subviews> @@ -505,7 +504,7 @@ <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <clipView key="contentView" ambiguous="YES" drawsBackground="NO" id="3VT-AA-xVT"> <rect key="frame" x="0.0" y="0.0" width="512" height="408"/> - <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> + <autoresizingMask key="autoresizingMask"/> <subviews> <tableView verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="none" alternatingRowBackgroundColors="YES" columnReordering="NO" columnResizing="NO" multipleSelection="NO" autosaveColumns="NO" typeSelect="NO" rowHeight="18" headerView="of1-KC-dXC" id="TOc-XJ-w9w"> <rect key="frame" x="0.0" y="0.0" width="512" height="391"/> @@ -640,7 +639,7 @@ </view> </tabViewItem> <tabViewItem label="Palettes" identifier="" id="vLb-Nh-UYE"> - <view key="view" ambiguous="YES" id="qIg-ci-WTA"> + <view key="view" id="qIg-ci-WTA"> <rect key="frame" x="0.0" y="0.0" width="512" height="408"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <subviews> @@ -649,7 +648,7 @@ <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <clipView key="contentView" ambiguous="YES" id="bP9-su-zQw"> <rect key="frame" x="0.0" y="0.0" width="512" height="408"/> - <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> + <autoresizingMask key="autoresizingMask"/> <subviews> <tableView verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnReordering="NO" columnResizing="NO" multipleSelection="NO" autosaveColumns="NO" typeSelect="NO" rowHeight="18" id="gfC-d3-dmq"> <rect key="frame" x="0.0" y="0.0" width="512" height="408"/> @@ -786,9 +785,10 @@ <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="1417"/> + <value key="minSize" type="size" width="320" height="16"/> <view key="contentView" id="RRS-aa-bPT"> <rect key="frame" x="0.0" y="0.0" width="320" height="288"/> - <autoresizingMask key="autoresizingMask"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <subviews> <imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Ar0-nN-eop" customClass="GBImageView"> <rect key="frame" x="0.0" y="0.0" width="320" height="288"/> @@ -797,20 +797,27 @@ </imageView> </subviews> </view> + <toolbar key="toolbar" implicitIdentifier="1FF86A2B-6637-4EE6-A25A-7298D79AE84E" autosavesConfiguration="NO" allowsUserCustomization="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="32" height="32"/> + <size key="maxSize" width="32" height="32"/> + <connections> + <action selector="savePrinterFeed:" target="-2" id="Dm3-h0-ch4"/> + </connections> + </toolbarItem> + <toolbarItem implicitItemIdentifier="NSToolbarPrintItem" id="mtd-zS-DXa"/> + <toolbarItem implicitItemIdentifier="NSToolbarSpaceItem" id="AoG-LH-J4b"/> + <toolbarItem implicitItemIdentifier="NSToolbarFlexibleSpaceItem" id="Q0x-n5-Q2Y"/> + </allowedToolbarItems> + <defaultToolbarItems> + <toolbarItem reference="CBz-1N-o0Q"/> + <toolbarItem reference="Q0x-n5-Q2Y"/> + <toolbarItem reference="mtd-zS-DXa"/> + </defaultToolbarItems> + </toolbar> <point key="canvasLocation" x="-159" y="356"/> </window> - <button verticalHuggingPriority="750" id="RLc-0I-sYZ"> - <rect key="frame" x="0.0" y="0.0" width="48" height="25"/> - <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES"/> - <buttonCell key="cell" type="roundTextured" title="Save" bezelStyle="texturedRounded" alignment="center" controlSize="mini" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="shw-MJ-B3T"> - <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/> - <font key="font" metaFont="miniSystem"/> - </buttonCell> - <connections> - <action selector="savePrinterFeed:" target="-2" id="Y3g-fU-2te"/> - </connections> - <point key="canvasLocation" x="-507" y="397"/> - </button> <window title="Cheats" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" restorable="NO" releasedWhenClosed="NO" visibleAtLaunch="NO" frameAutosaveName="" animationBehavior="default" id="4Yb-Np-JrF" customClass="NSPanel"> <windowStyleMask key="styleMask" titled="YES" closable="YES"/> <rect key="contentRect" x="0.0" y="0.0" width="692" height="272"/> @@ -970,7 +977,7 @@ <autoresizingMask key="autoresizingMask" flexibleMinX="YES" heightSizable="YES"/> <clipView key="contentView" id="mzf-yu-RID"> <rect key="frame" x="1" y="0.0" width="398" height="274"/> - <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> + <autoresizingMask key="autoresizingMask"/> <subviews> <tableView verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="none" alternatingRowBackgroundColors="YES" columnReordering="NO" columnResizing="NO" multipleSelection="NO" emptySelection="NO" autosaveColumns="NO" typeSelect="NO" headerView="pvX-uJ-qK5" id="tA3-8T-bxb"> <rect key="frame" x="0.0" y="0.0" width="398" height="249"/> @@ -1069,6 +1076,7 @@ </customObject> </objects> <resources> + <image name="NSFolder" width="32" height="32"/> <image name="NSStopProgressFreestandingTemplate" width="14" height="14"/> </resources> </document>

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