iOS/Cocoa SampleApp, Drawingboard, and Networking updates
http://codereview.appspot.com/4843041/ http://codereview.appspot.com/4826061/ http://codereview.appspot.com/4832044/ http://codereview.appspot.com/4798055/ git-svn-id: http://skia.googlecode.com/svn/trunk@2058 2bbb7eff-a529-9590-31e7-b0007b416f81
This commit is contained in:
parent
0168afc719
commit
f3493f0e1f
@ -11,9 +11,9 @@
|
|||||||
<string key="NS.object.0">851</string>
|
<string key="NS.object.0">851</string>
|
||||||
</object>
|
</object>
|
||||||
<array class="NSMutableArray" key="IBDocument.EditedObjectIDs">
|
<array class="NSMutableArray" key="IBDocument.EditedObjectIDs">
|
||||||
|
<integer value="296"/>
|
||||||
<integer value="372"/>
|
<integer value="372"/>
|
||||||
<integer value="634"/>
|
<integer value="634"/>
|
||||||
<integer value="296"/>
|
|
||||||
</array>
|
</array>
|
||||||
<array key="IBDocument.PluginDependencies">
|
<array key="IBDocument.PluginDependencies">
|
||||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
@ -58,7 +58,7 @@
|
|||||||
</object>
|
</object>
|
||||||
<object class="NSCustomView" id="758604943">
|
<object class="NSCustomView" id="758604943">
|
||||||
<reference key="NSNextResponder"/>
|
<reference key="NSNextResponder"/>
|
||||||
<int key="NSvFlags">256</int>
|
<int key="NSvFlags">4352</int>
|
||||||
<array class="NSMutableArray" key="NSSubviews">
|
<array class="NSMutableArray" key="NSSubviews">
|
||||||
<object class="NSScrollView" id="1038370525">
|
<object class="NSScrollView" id="1038370525">
|
||||||
<reference key="NSNextResponder" ref="758604943"/>
|
<reference key="NSNextResponder" ref="758604943"/>
|
||||||
@ -109,14 +109,10 @@
|
|||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<object class="NSTextFieldCell" key="NSDataCell" id="241301801">
|
<object class="NSTextFieldCell" key="NSDataCell" id="241301801">
|
||||||
<int key="NSCellFlags">67239488</int>
|
<int key="NSCellFlags">68288064</int>
|
||||||
<int key="NSCellFlags2">67110912</int>
|
<int key="NSCellFlags2">67241216</int>
|
||||||
<string key="NSContents">Text Cell</string>
|
<string key="NSContents">Text Cell</string>
|
||||||
<object class="NSFont" key="NSSupport" id="109605427">
|
<reference key="NSSupport" ref="26"/>
|
||||||
<string key="NSName">LucidaGrande</string>
|
|
||||||
<double key="NSSize">13</double>
|
|
||||||
<int key="NSfFlags">1044</int>
|
|
||||||
</object>
|
|
||||||
<reference key="NSControlView" ref="429436769"/>
|
<reference key="NSControlView" ref="429436769"/>
|
||||||
<object class="NSColor" key="NSBackgroundColor" id="598476436">
|
<object class="NSColor" key="NSBackgroundColor" id="598476436">
|
||||||
<int key="NSColorSpace">6</int>
|
<int key="NSColorSpace">6</int>
|
||||||
@ -156,7 +152,11 @@
|
|||||||
<int key="NSCellFlags">67239488</int>
|
<int key="NSCellFlags">67239488</int>
|
||||||
<int key="NSCellFlags2">272630784</int>
|
<int key="NSCellFlags2">272630784</int>
|
||||||
<string key="NSContents">Text</string>
|
<string key="NSContents">Text</string>
|
||||||
<reference key="NSSupport" ref="109605427"/>
|
<object class="NSFont" key="NSSupport">
|
||||||
|
<string key="NSName">LucidaGrande</string>
|
||||||
|
<double key="NSSize">13</double>
|
||||||
|
<int key="NSfFlags">1044</int>
|
||||||
|
</object>
|
||||||
<reference key="NSControlView" ref="429436769"/>
|
<reference key="NSControlView" ref="429436769"/>
|
||||||
<object class="NSColor" key="NSBackgroundColor">
|
<object class="NSColor" key="NSBackgroundColor">
|
||||||
<int key="NSColorSpace">6</int>
|
<int key="NSColorSpace">6</int>
|
||||||
@ -192,7 +192,7 @@
|
|||||||
<bytes key="NSWhite">MC41AA</bytes>
|
<bytes key="NSWhite">MC41AA</bytes>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<double key="NSRowHeight">25</double>
|
<double key="NSRowHeight">35</double>
|
||||||
<int key="NSTvFlags">1128267776</int>
|
<int key="NSTvFlags">1128267776</int>
|
||||||
<reference key="NSDelegate"/>
|
<reference key="NSDelegate"/>
|
||||||
<reference key="NSDataSource"/>
|
<reference key="NSDataSource"/>
|
||||||
@ -239,11 +239,12 @@
|
|||||||
<reference key="NSVScroller" ref="617550661"/>
|
<reference key="NSVScroller" ref="617550661"/>
|
||||||
<reference key="NSHScroller" ref="977018641"/>
|
<reference key="NSHScroller" ref="977018641"/>
|
||||||
<reference key="NSContentView" ref="250930136"/>
|
<reference key="NSContentView" ref="250930136"/>
|
||||||
<bytes key="NSScrollAmts">QSAAAEEgAABB2AAAQdgAAA</bytes>
|
<bytes key="NSScrollAmts">QSAAAEEgAABCFAAAQhQAAA</bytes>
|
||||||
</object>
|
</object>
|
||||||
</array>
|
</array>
|
||||||
<string key="NSFrameSize">{341, 321}</string>
|
<string key="NSFrameSize">{341, 321}</string>
|
||||||
<reference key="NSSuperview"/>
|
<reference key="NSSuperview"/>
|
||||||
|
<bool key="NSViewCanDrawConcurrently">YES</bool>
|
||||||
<string key="NSClassName">NSView</string>
|
<string key="NSClassName">NSView</string>
|
||||||
</object>
|
</object>
|
||||||
<object class="NSDrawer" id="764451088">
|
<object class="NSDrawer" id="764451088">
|
||||||
@ -969,6 +970,15 @@
|
|||||||
<reference key="NSOnImage" ref="35465992"/>
|
<reference key="NSOnImage" ref="35465992"/>
|
||||||
<reference key="NSMixedImage" ref="502551668"/>
|
<reference key="NSMixedImage" ref="502551668"/>
|
||||||
</object>
|
</object>
|
||||||
|
<object class="NSMenuItem" id="87708234">
|
||||||
|
<reference key="NSMenu" ref="466310130"/>
|
||||||
|
<string key="NSTitle">Show Menu Key Equivalents</string>
|
||||||
|
<string key="NSKeyEquiv"/>
|
||||||
|
<int key="NSMnemonicLoc">2147483647</int>
|
||||||
|
<int key="NSState">1</int>
|
||||||
|
<reference key="NSOnImage" ref="35465992"/>
|
||||||
|
<reference key="NSMixedImage" ref="502551668"/>
|
||||||
|
</object>
|
||||||
<object class="NSMenuItem" id="102151532">
|
<object class="NSMenuItem" id="102151532">
|
||||||
<reference key="NSMenu" ref="466310130"/>
|
<reference key="NSMenu" ref="466310130"/>
|
||||||
<string key="NSTitle">Show Toolbar</string>
|
<string key="NSTitle">Show Toolbar</string>
|
||||||
@ -2298,6 +2308,14 @@
|
|||||||
</object>
|
</object>
|
||||||
<int key="connectionID">712</int>
|
<int key="connectionID">712</int>
|
||||||
</object>
|
</object>
|
||||||
|
<object class="IBConnectionRecord">
|
||||||
|
<object class="IBActionConnection" key="connection">
|
||||||
|
<string key="label">toggleKeyEquivalents:</string>
|
||||||
|
<reference key="source" ref="429436769"/>
|
||||||
|
<reference key="destination" ref="87708234"/>
|
||||||
|
</object>
|
||||||
|
<int key="connectionID">719</int>
|
||||||
|
</object>
|
||||||
</array>
|
</array>
|
||||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
<object class="IBMutableOrderedSet" key="objectRecords">
|
||||||
<array key="orderedObjects">
|
<array key="orderedObjects">
|
||||||
@ -2738,6 +2756,7 @@
|
|||||||
<reference ref="237841660"/>
|
<reference ref="237841660"/>
|
||||||
<reference ref="962976284"/>
|
<reference ref="962976284"/>
|
||||||
<reference ref="368680108"/>
|
<reference ref="368680108"/>
|
||||||
|
<reference ref="87708234"/>
|
||||||
</array>
|
</array>
|
||||||
<reference key="parent" ref="586577488"/>
|
<reference key="parent" ref="586577488"/>
|
||||||
</object>
|
</object>
|
||||||
@ -3396,6 +3415,11 @@
|
|||||||
<reference key="object" ref="368680108"/>
|
<reference key="object" ref="368680108"/>
|
||||||
<reference key="parent" ref="466310130"/>
|
<reference key="parent" ref="466310130"/>
|
||||||
</object>
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">718</int>
|
||||||
|
<reference key="object" ref="87708234"/>
|
||||||
|
<reference key="parent" ref="466310130"/>
|
||||||
|
</object>
|
||||||
</array>
|
</array>
|
||||||
</object>
|
</object>
|
||||||
<dictionary class="NSMutableDictionary" key="flattenedProperties">
|
<dictionary class="NSMutableDictionary" key="flattenedProperties">
|
||||||
@ -3509,7 +3533,7 @@
|
|||||||
<string key="29.WindowOrigin">{74, 862}</string>
|
<string key="29.WindowOrigin">{74, 862}</string>
|
||||||
<string key="29.editorWindowContentRectSynchronizationRect">{{6, 978}, {478, 20}}</string>
|
<string key="29.editorWindowContentRectSynchronizationRect">{{6, 978}, {478, 20}}</string>
|
||||||
<string key="295.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="295.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="296.IBEditorWindowLastContentRect">{{591, 416}, {242, 83}}</string>
|
<string key="296.IBEditorWindowLastContentRect">{{591, 396}, {279, 103}}</string>
|
||||||
<string key="296.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="296.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="296.editorWindowContentRectSynchronizationRect">{{475, 832}, {234, 43}}</string>
|
<string key="296.editorWindowContentRectSynchronizationRect">{{475, 832}, {234, 43}}</string>
|
||||||
<string key="297.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="297.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
@ -3631,7 +3655,7 @@
|
|||||||
<integer value="1" key="58.ImportedFromIB2"/>
|
<integer value="1" key="58.ImportedFromIB2"/>
|
||||||
<string key="629.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="629.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<object class="NSAffineTransform" key="629.IBViewBoundsToFrameTransform">
|
<object class="NSAffineTransform" key="629.IBViewBoundsToFrameTransform">
|
||||||
<bytes key="NSTransformStruct">P4AAAL+AAAAAAAAAxBNAAA</bytes>
|
<bytes key="NSTransformStruct">P4AAAL+AAAAAAAAAw5+AAA</bytes>
|
||||||
</object>
|
</object>
|
||||||
<string key="630.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="630.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="631.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="631.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
@ -3640,6 +3664,7 @@
|
|||||||
<object class="NSAffineTransform" key="632.IBViewBoundsToFrameTransform"/>
|
<object class="NSAffineTransform" key="632.IBViewBoundsToFrameTransform"/>
|
||||||
<string key="634.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="634.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="635.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="635.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string key="637.CustomClassName">SkTextFieldCell</string>
|
||||||
<string key="637.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="637.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="661.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="661.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="698.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="698.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
@ -3647,6 +3672,7 @@
|
|||||||
<string key="706.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="706.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="708.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="708.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="710.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="710.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string key="718.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="72.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="72.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<integer value="1" key="72.ImportedFromIB2"/>
|
<integer value="1" key="72.ImportedFromIB2"/>
|
||||||
<string key="73.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="73.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
@ -3678,7 +3704,7 @@
|
|||||||
<nil key="activeLocalization"/>
|
<nil key="activeLocalization"/>
|
||||||
<dictionary class="NSMutableDictionary" key="localizations"/>
|
<dictionary class="NSMutableDictionary" key="localizations"/>
|
||||||
<nil key="sourceID"/>
|
<nil key="sourceID"/>
|
||||||
<int key="maxID">712</int>
|
<int key="maxID">719</int>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||||
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
|
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||||
@ -3745,11 +3771,30 @@
|
|||||||
<object class="IBPartialClassDescription">
|
<object class="IBPartialClassDescription">
|
||||||
<string key="className">SkOptionsTableView</string>
|
<string key="className">SkOptionsTableView</string>
|
||||||
<string key="superclassName">NSTableView</string>
|
<string key="superclassName">NSTableView</string>
|
||||||
|
<object class="NSMutableDictionary" key="actions">
|
||||||
|
<string key="NS.key.0">toggleKeyEquivalents:</string>
|
||||||
|
<string key="NS.object.0">id</string>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableDictionary" key="actionInfosByName">
|
||||||
|
<string key="NS.key.0">toggleKeyEquivalents:</string>
|
||||||
|
<object class="IBActionInfo" key="NS.object.0">
|
||||||
|
<string key="name">toggleKeyEquivalents:</string>
|
||||||
|
<string key="candidateClassName">id</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
<string key="majorKey">IBProjectSource</string>
|
<string key="majorKey">IBProjectSource</string>
|
||||||
<string key="minorKey">../../experimental/CocoaSampleApp/SkOptionsTableView.h</string>
|
<string key="minorKey">../../experimental/CocoaSampleApp/SkOptionsTableView.h</string>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">SkTextFieldCell</string>
|
||||||
|
<string key="superclassName">NSTextFieldCell</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBProjectSource</string>
|
||||||
|
<string key="minorKey">../../experimental/CocoaSampleApp/SkTextFieldCell.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
</array>
|
</array>
|
||||||
<array class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
|
<array class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
|
||||||
<object class="IBPartialClassDescription">
|
<object class="IBPartialClassDescription">
|
||||||
@ -3926,7 +3971,7 @@
|
|||||||
<int key="IBDocument.localizationMode">0</int>
|
<int key="IBDocument.localizationMode">0</int>
|
||||||
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string>
|
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string>
|
||||||
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
||||||
<string key="IBDocument.LastKnownRelativeProjectPath">../../out/gyp/SampleAppCocoa.xcodeproj</string>
|
<string key="IBDocument.LastKnownRelativeProjectPath">../../out/gyp/CocoaSampleApp.xcodeproj</string>
|
||||||
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
||||||
<dictionary class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
|
<dictionary class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
|
||||||
<string key="NSMenuCheckmark">{9, 8}</string>
|
<string key="NSMenuCheckmark">{9, 8}</string>
|
||||||
|
@ -2,8 +2,8 @@
|
|||||||
#import <Cocoa/Cocoa.h>
|
#import <Cocoa/Cocoa.h>
|
||||||
#include "SampleApp.h"
|
#include "SampleApp.h"
|
||||||
|
|
||||||
class SkOSWindow;
|
|
||||||
class SkEvent;
|
class SkEvent;
|
||||||
|
class SkOSWindow;
|
||||||
@class SkNSView;
|
@class SkNSView;
|
||||||
|
|
||||||
@protocol SkNSViewOptionsDelegate <NSObject>
|
@protocol SkNSViewOptionsDelegate <NSObject>
|
||||||
@ -18,7 +18,6 @@ class SkEvent;
|
|||||||
|
|
||||||
NSString* fTitle;
|
NSString* fTitle;
|
||||||
SkOSWindow* fWind;
|
SkOSWindow* fWind;
|
||||||
|
|
||||||
NSOpenGLContext* fGLContext;
|
NSOpenGLContext* fGLContext;
|
||||||
id<SkNSViewOptionsDelegate> fOptionsDelegate;
|
id<SkNSViewOptionsDelegate> fOptionsDelegate;
|
||||||
}
|
}
|
||||||
|
@ -1,11 +1,8 @@
|
|||||||
#import "SkNSView.h"
|
#import "SkNSView.h"
|
||||||
#include "SkApplication.h"
|
#include "SkApplication.h"
|
||||||
#include "SkCanvas.h"
|
#include "SkCanvas.h"
|
||||||
#include "GrContext.h"
|
|
||||||
#include "SkCGUtils.h"
|
#include "SkCGUtils.h"
|
||||||
#include "SkEvent.h"
|
#include "SkEvent.h"
|
||||||
#include "GrGLInterface.h"
|
|
||||||
#include "SkGpuDevice.h"
|
|
||||||
|
|
||||||
//#define FORCE_REDRAW
|
//#define FORCE_REDRAW
|
||||||
@implementation SkNSView
|
@implementation SkNSView
|
||||||
@ -43,8 +40,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
-(BOOL) inLiveResize {
|
-(BOOL) inLiveResize {
|
||||||
if (fWind != NULL) {
|
NSSize s = [self frame].size;
|
||||||
NSSize s = [self frame].size;
|
if (fWind != NULL && fWind->width() != s.width && fWind->height() != s.height) {
|
||||||
fWind->resize(s.width, s.height);
|
fWind->resize(s.width, s.height);
|
||||||
[fGLContext update];
|
[fGLContext update];
|
||||||
}
|
}
|
||||||
@ -59,27 +56,40 @@
|
|||||||
[super dealloc];
|
[super dealloc];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)layoutSubviews {
|
|
||||||
NSSize rect = self.bounds.size;
|
|
||||||
fWind->resize(rect.width, rect.height);
|
|
||||||
fWind->inval(NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
- (void)drawWithCanvas:(SkCanvas*)canvas {
|
- (void)drawSkia {
|
||||||
fRedrawRequestPending = false;
|
fRedrawRequestPending = false;
|
||||||
fWind->draw(canvas);
|
SkCanvas canvas(fWind->getBitmap());
|
||||||
|
fWind->draw(&canvas);
|
||||||
#ifdef FORCE_REDRAW
|
#ifdef FORCE_REDRAW
|
||||||
fWind->inval(NULL);
|
fWind->inval(NULL);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)drawRect:(NSRect)dirtyRect {
|
- (void)setSkTitle:(const char *)title {
|
||||||
SkCanvas canvas(fWind->getBitmap());
|
self.fTitle = [NSString stringWithUTF8String:title];
|
||||||
[self drawWithCanvas:&canvas];
|
[[self window] setTitle:self.fTitle];
|
||||||
CGContextRef ctx = (CGContextRef)[[NSGraphicsContext currentContext] graphicsPort];
|
}
|
||||||
SkCGDrawBitmap(ctx, fWind->getBitmap(), 0, 0);
|
|
||||||
|
- (BOOL)onHandleEvent:(const SkEvent&)evt {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
#include "SkOSMenu.h"
|
||||||
|
- (void)onAddMenu:(const SkOSMenu*)menu {
|
||||||
|
[self.fOptionsDelegate view:self didAddMenu:menu];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)onUpdateMenu:(const SkOSMenu*)menu {
|
||||||
|
[self.fOptionsDelegate view:self didUpdateMenu:menu];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)postInvalWithRect:(const SkIRect*)r {
|
||||||
|
if (!fRedrawRequestPending) {
|
||||||
|
fRedrawRequestPending = true;
|
||||||
|
[self performSelector:@selector(drawSkia) withObject:nil afterDelay:0];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
@ -121,7 +131,7 @@ static SkKey raw2key(UInt32 raw)
|
|||||||
{ SK_Mac1Key, k1_SkKey },
|
{ SK_Mac1Key, k1_SkKey },
|
||||||
{ SK_Mac2Key, k2_SkKey },
|
{ SK_Mac2Key, k2_SkKey },
|
||||||
{ SK_Mac3Key, k3_SkKey },
|
{ SK_Mac3Key, k3_SkKey },
|
||||||
{ SK_Mac4Key, k4_SkKey },
|
{ SK_Mac4Key, k4_SkKey },
|
||||||
{ SK_Mac5Key, k5_SkKey },
|
{ SK_Mac5Key, k5_SkKey },
|
||||||
{ SK_Mac6Key, k6_SkKey },
|
{ SK_Mac6Key, k6_SkKey },
|
||||||
{ SK_Mac7Key, k7_SkKey },
|
{ SK_Mac7Key, k7_SkKey },
|
||||||
@ -179,34 +189,16 @@ static SkKey raw2key(UInt32 raw)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
- (void)swipeWithEvent:(NSEvent *)event {
|
||||||
|
CGFloat x = [event deltaX];
|
||||||
- (void)setSkTitle:(const char *)title {
|
if (x < 0)
|
||||||
NSString* text = [NSString stringWithUTF8String:title];
|
((SampleWindow*)fWind)->previousSample();
|
||||||
if ([text length] > 0)
|
else if (x > 0)
|
||||||
self.fTitle = text;
|
((SampleWindow*)fWind)->nextSample();
|
||||||
[[self window] setTitle:fTitle];
|
else
|
||||||
|
((SampleWindow*)fWind)->showOverview();
|
||||||
}
|
}
|
||||||
|
|
||||||
- (BOOL)onHandleEvent:(const SkEvent&)evt {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
#include "SkOSMenu.h"
|
|
||||||
- (void)onAddMenu:(const SkOSMenu*)menu {
|
|
||||||
[self.fOptionsDelegate view:self didAddMenu:menu];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)onUpdateMenu:(const SkOSMenu*)menu {
|
|
||||||
[self.fOptionsDelegate view:self didUpdateMenu:menu];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)postInvalWithRect:(const SkIRect*)r {
|
|
||||||
if (!fRedrawRequestPending) {
|
|
||||||
fRedrawRequestPending = true;
|
|
||||||
[self performSelector:@selector(display) withObject:nil afterDelay:0];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
#include <OpenGL/OpenGL.h>
|
#include <OpenGL/OpenGL.h>
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ SkOSWindow::~SkOSWindow() {
|
|||||||
void SkOSWindow::onHandleInval(const SkIRect& r) {
|
void SkOSWindow::onHandleInval(const SkIRect& r) {
|
||||||
if (!fInvalEventIsPending) {
|
if (!fInvalEventIsPending) {
|
||||||
fInvalEventIsPending = true;
|
fInvalEventIsPending = true;
|
||||||
(new SkEvent(kINVAL_NSVIEW_EventType))->post(this->getSinkID());
|
(new SkEvent(kINVAL_NSVIEW_EventType, this->getSinkID()))->post();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -13,16 +13,17 @@
|
|||||||
@interface SkOptionsTableView : NSTableView <SkNSViewOptionsDelegate, NSTableViewDelegate, NSTableViewDataSource> {
|
@interface SkOptionsTableView : NSTableView <SkNSViewOptionsDelegate, NSTableViewDelegate, NSTableViewDataSource> {
|
||||||
NSMutableArray* fItems;
|
NSMutableArray* fItems;
|
||||||
const SkTDArray<SkOSMenu*>* fMenus;
|
const SkTDArray<SkOSMenu*>* fMenus;
|
||||||
|
BOOL fShowKeys;
|
||||||
}
|
}
|
||||||
@property (nonatomic, retain) NSMutableArray* fItems;
|
@property (nonatomic, retain) NSMutableArray* fItems;
|
||||||
|
|
||||||
- (void)registerMenus:(const SkTDArray<SkOSMenu*>*)menus;
|
- (void)registerMenus:(const SkTDArray<SkOSMenu*>*)menus;
|
||||||
- (void)updateMenu:(const SkOSMenu*)menu;
|
- (void)updateMenu:(const SkOSMenu*)menu;
|
||||||
- (void)loadMenu:(const SkOSMenu*)menu;
|
- (void)loadMenu:(const SkOSMenu*)menu;
|
||||||
|
- (IBAction)toggleKeyEquivalents:(id)sender;
|
||||||
|
|
||||||
- (NSCell*)createAction;
|
- (NSCell*)createAction;
|
||||||
- (NSCell*)createList:(NSArray*)items current:(int)index;
|
- (NSCell*)createList:(NSArray*)items current:(int)index;
|
||||||
- (NSCell*)createSegmented:(NSArray*)items current:(int)index;
|
|
||||||
- (NSCell*)createSlider:(float)value min:(float)min max:(float)max;
|
- (NSCell*)createSlider:(float)value min:(float)min max:(float)max;
|
||||||
- (NSCell*)createSwitch:(BOOL)state;
|
- (NSCell*)createSwitch:(BOOL)state;
|
||||||
- (NSCell*)createTextField:(NSString*)placeHolder;
|
- (NSCell*)createTextField:(NSString*)placeHolder;
|
||||||
|
@ -15,6 +15,8 @@
|
|||||||
if ((self = [super initWithCoder:coder])) {
|
if ((self = [super initWithCoder:coder])) {
|
||||||
self.dataSource = self;
|
self.dataSource = self;
|
||||||
self.delegate = self;
|
self.delegate = self;
|
||||||
|
fMenus = NULL;
|
||||||
|
fShowKeys = YES;
|
||||||
[self setSelectionHighlightStyle:NSTableViewSelectionHighlightStyleNone];
|
[self setSelectionHighlightStyle:NSTableViewSelectionHighlightStyleNone];
|
||||||
self.fItems = [NSMutableArray array];
|
self.fItems = [NSMutableArray array];
|
||||||
}
|
}
|
||||||
@ -31,6 +33,13 @@
|
|||||||
[self updateMenu:menu];
|
[self updateMenu:menu];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (IBAction)toggleKeyEquivalents:(id)sender {
|
||||||
|
fShowKeys = !fShowKeys;
|
||||||
|
NSMenuItem* item = (NSMenuItem*)sender;
|
||||||
|
[item setState:fShowKeys];
|
||||||
|
[self reloadData];
|
||||||
|
}
|
||||||
|
|
||||||
- (void)registerMenus:(const SkTDArray<SkOSMenu*>*)menus {
|
- (void)registerMenus:(const SkTDArray<SkOSMenu*>*)menus {
|
||||||
fMenus = menus;
|
fMenus = menus;
|
||||||
for (NSUInteger i = 0; i < fMenus->count(); ++i) {
|
for (NSUInteger i = 0; i < fMenus->count(); ++i) {
|
||||||
@ -65,47 +74,53 @@
|
|||||||
- (void)loadMenu:(const SkOSMenu*)menu {
|
- (void)loadMenu:(const SkOSMenu*)menu {
|
||||||
for (int i = 0; i < menu->countItems(); ++i) {
|
for (int i = 0; i < menu->countItems(); ++i) {
|
||||||
const SkOSMenu::Item* item = menu->getItem(i);
|
const SkOSMenu::Item* item = menu->getItem(i);
|
||||||
NSString* str;
|
|
||||||
int index = 0;
|
|
||||||
NSArray* optionstrs = nil;
|
|
||||||
|
|
||||||
SkOptionItem* option = [[SkOptionItem alloc] init];
|
SkOptionItem* option = [[SkOptionItem alloc] init];
|
||||||
option.fItem = item;
|
option.fItem = item;
|
||||||
bool state = false;
|
|
||||||
SkOSMenu::TriState tristate;
|
if (SkOSMenu::kList_Type == item->getType()) {
|
||||||
switch (item->getType()) {
|
int index = 0, count = 0;
|
||||||
case SkOSMenu::kAction_Type:
|
SkOSMenu::FindListItemCount(item->getEvent(), &count);
|
||||||
option.fCell = [self createAction];
|
NSMutableArray* optionstrs = [[NSMutableArray alloc] initWithCapacity:count];
|
||||||
break;
|
SkString options[count];
|
||||||
case SkOSMenu::kList_Type:
|
SkOSMenu::FindListItems(item->getEvent(), options);
|
||||||
optionstrs = [[NSString stringWithUTF8String:item->getEvent()->findString(SkOSMenu::List_Items_Str)]
|
for (int i = 0; i < count; ++i)
|
||||||
componentsSeparatedByString:[NSString stringWithUTF8String:SkOSMenu::Delimiter]];
|
[optionstrs addObject:[NSString stringWithUTF8String:options[i].c_str()]];
|
||||||
item->getEvent()->findS32(item->getSlotName(), &index);
|
SkOSMenu::FindListIndex(item->getEvent(), item->getSlotName(), &index);
|
||||||
option.fCell = [self createList:optionstrs current:index];
|
option.fCell = [self createList:optionstrs current:index];
|
||||||
break;
|
[optionstrs release];
|
||||||
case SkOSMenu::kSlider_Type:
|
}
|
||||||
SkScalar min, max, value;
|
else {
|
||||||
item->getEvent()->findScalar(SkOSMenu::Slider_Min_Scalar, &min);
|
bool state = false;
|
||||||
item->getEvent()->findScalar(SkOSMenu::Slider_Max_Scalar, &max);
|
SkString str;
|
||||||
item->getEvent()->findScalar(item->getSlotName(), &value);
|
SkOSMenu::TriState tristate;
|
||||||
option.fCell = [self createSlider:value
|
switch (item->getType()) {
|
||||||
min:min
|
case SkOSMenu::kAction_Type:
|
||||||
max:max];
|
option.fCell = [self createAction];
|
||||||
break;
|
break;
|
||||||
case SkOSMenu::kSwitch_Type:
|
case SkOSMenu::kSlider_Type:
|
||||||
item->getEvent()->findBool(item->getSlotName(), &state);
|
SkScalar min, max, value;
|
||||||
option.fCell = [self createSwitch:(BOOL)state];
|
SkOSMenu::FindSliderValue(item->getEvent(), item->getSlotName(), &value);
|
||||||
break;
|
SkOSMenu::FindSliderMin(item->getEvent(), &min);
|
||||||
case SkOSMenu::kTriState_Type:
|
SkOSMenu::FindSliderMax(item->getEvent(), &max);
|
||||||
item->getEvent()->findS32(item->getSlotName(), (int*)&tristate);
|
option.fCell = [self createSlider:value
|
||||||
option.fCell = [self createTriState:[self triStateToNSState:tristate]];
|
min:min
|
||||||
break;
|
max:max];
|
||||||
case SkOSMenu::kTextField_Type:
|
break;
|
||||||
str = [NSString stringWithUTF8String:item->getEvent()->findString(item->getSlotName())];
|
case SkOSMenu::kSwitch_Type:
|
||||||
option.fCell = [self createTextField:str];
|
SkOSMenu::FindSwitchState(item->getEvent(), item->getSlotName(), &state);
|
||||||
break;
|
option.fCell = [self createSwitch:(BOOL)state];
|
||||||
default:
|
break;
|
||||||
break;
|
case SkOSMenu::kTriState_Type:
|
||||||
|
SkOSMenu::FindTriState(item->getEvent(), item->getSlotName(), &tristate);
|
||||||
|
option.fCell = [self createTriState:[self triStateToNSState:tristate]];
|
||||||
|
break;
|
||||||
|
case SkOSMenu::kTextField_Type:
|
||||||
|
SkOSMenu::FindText(item->getEvent(),item->getSlotName(), &str);
|
||||||
|
option.fCell = [self createTextField:[NSString stringWithUTF8String:str.c_str()]];
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
[fItems addObject:option];
|
[fItems addObject:option];
|
||||||
[option release];
|
[option release];
|
||||||
@ -118,8 +133,14 @@
|
|||||||
|
|
||||||
- (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
|
- (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
|
||||||
int columnIndex = [tableView columnWithIdentifier:[tableColumn identifier]];
|
int columnIndex = [tableView columnWithIdentifier:[tableColumn identifier]];
|
||||||
if (columnIndex == 0)
|
if (columnIndex == 0) {
|
||||||
return [NSString stringWithUTF8String:((SkOptionItem*)[fItems objectAtIndex:row]).fItem->getLabel()];
|
const SkOSMenu::Item* item = ((SkOptionItem*)[fItems objectAtIndex:row]).fItem;
|
||||||
|
NSString* label = [NSString stringWithUTF8String:item->getLabel()];
|
||||||
|
if (fShowKeys)
|
||||||
|
return [NSString stringWithFormat:@"%@ (%c)", label, item->getKeyEquivalent()];
|
||||||
|
else
|
||||||
|
return label;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
return nil;
|
return nil;
|
||||||
}
|
}
|
||||||
@ -151,7 +172,6 @@
|
|||||||
[cell setFloatValue:[storedCell floatValue]];
|
[cell setFloatValue:[storedCell floatValue]];
|
||||||
break;
|
break;
|
||||||
case SkOSMenu::kSwitch_Type:
|
case SkOSMenu::kSwitch_Type:
|
||||||
[cell setTitle:storedCell.title];
|
|
||||||
[cell setState:[(NSButtonCell*)storedCell state]];
|
[cell setState:[(NSButtonCell*)storedCell state]];
|
||||||
break;
|
break;
|
||||||
case SkOSMenu::kTextField_Type:
|
case SkOSMenu::kTextField_Type:
|
||||||
@ -159,7 +179,6 @@
|
|||||||
[cell setStringValue:[storedCell stringValue]];
|
[cell setStringValue:[storedCell stringValue]];
|
||||||
break;
|
break;
|
||||||
case SkOSMenu::kTriState_Type:
|
case SkOSMenu::kTriState_Type:
|
||||||
[cell setTitle:storedCell.title];
|
|
||||||
[cell setState:[(NSButtonCell*)storedCell state]];
|
[cell setState:[(NSButtonCell*)storedCell state]];
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@ -226,19 +245,6 @@
|
|||||||
return cell;
|
return cell;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (NSCell*)createSegmented:(NSArray*)items current:(int)index {
|
|
||||||
NSSegmentedCell* cell = [[[NSSegmentedCell alloc] init] autorelease];
|
|
||||||
[cell setSegmentStyle:NSSegmentStyleSmallSquare];
|
|
||||||
[cell setSegmentCount:[items count]];
|
|
||||||
NSUInteger i = 0;
|
|
||||||
for (NSString* label in items) {
|
|
||||||
[cell setLabel:label forSegment:i];
|
|
||||||
++i;
|
|
||||||
}
|
|
||||||
[cell setSelectedSegment:index];
|
|
||||||
return cell;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSCell*)createSlider:(float)value min:(float)min max:(float)max {
|
- (NSCell*)createSlider:(float)value min:(float)min max:(float)max {
|
||||||
NSSliderCell* cell = [[[NSSliderCell alloc] init] autorelease];
|
NSSliderCell* cell = [[[NSSliderCell alloc] init] autorelease];
|
||||||
[cell setFloatValue:value];
|
[cell setFloatValue:value];
|
||||||
@ -249,8 +255,8 @@
|
|||||||
|
|
||||||
- (NSCell*)createSwitch:(BOOL)state {
|
- (NSCell*)createSwitch:(BOOL)state {
|
||||||
NSButtonCell* cell = [[[NSButtonCell alloc] init] autorelease];
|
NSButtonCell* cell = [[[NSButtonCell alloc] init] autorelease];
|
||||||
[cell setTitle:(state) ? @"On" : @"Off"];
|
|
||||||
[cell setState:state];
|
[cell setState:state];
|
||||||
|
[cell setTitle:@""];
|
||||||
[cell setButtonType:NSSwitchButton];
|
[cell setButtonType:NSSwitchButton];
|
||||||
return cell;
|
return cell;
|
||||||
}
|
}
|
||||||
@ -265,15 +271,10 @@
|
|||||||
|
|
||||||
- (NSCell*)createTriState:(NSCellStateValue)state {
|
- (NSCell*)createTriState:(NSCellStateValue)state {
|
||||||
NSButtonCell* cell = [[[NSButtonCell alloc] init] autorelease];
|
NSButtonCell* cell = [[[NSButtonCell alloc] init] autorelease];
|
||||||
if (NSOnState == state)
|
|
||||||
[cell setTitle:@"On"];
|
|
||||||
else if (NSOffState == state)
|
|
||||||
[cell setTitle:@"Off"];
|
|
||||||
else
|
|
||||||
[cell setTitle:@"Mixed"];
|
|
||||||
[cell setAllowsMixedState:TRUE];
|
[cell setAllowsMixedState:TRUE];
|
||||||
|
[cell setTitle:@""];
|
||||||
[cell setState:(NSInteger)state];
|
[cell setState:(NSInteger)state];
|
||||||
[cell setButtonType:NSSwitchButton];
|
[cell setButtonType:NSSwitchButton];
|
||||||
return cell;
|
return cell;
|
||||||
}
|
}
|
||||||
@end
|
@end
|
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
|
signal(SIGPIPE, SIG_IGN);
|
||||||
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
|
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
|
||||||
int retVal = NSApplicationMain(argc, (const char **)argv);
|
int retVal = NSApplicationMain(argc, (const char **)argv);
|
||||||
[pool release];
|
[pool release];
|
||||||
|
250
experimental/DrawingBoard/SampleDrawingClient.cpp
Normal file
250
experimental/DrawingBoard/SampleDrawingClient.cpp
Normal file
@ -0,0 +1,250 @@
|
|||||||
|
#include "SampleCode.h"
|
||||||
|
#include "SkView.h"
|
||||||
|
#include "SkCanvas.h"
|
||||||
|
#include "SkGPipe.h"
|
||||||
|
#include "SkSockets.h"
|
||||||
|
#include "SkNetPipeController.h"
|
||||||
|
#include "SkCornerPathEffect.h"
|
||||||
|
#include "SkColorPalette.h"
|
||||||
|
#include "SkOSMenu.h"
|
||||||
|
|
||||||
|
#define MAX_READ_PER_FRAME 5
|
||||||
|
class DrawingClientView : public SampleView {
|
||||||
|
public:
|
||||||
|
DrawingClientView() {
|
||||||
|
fSocket = NULL;
|
||||||
|
fTotalBytesRead = 0;
|
||||||
|
fPalette = new SkColorPalette;
|
||||||
|
fPalette->setSize(100, 300);
|
||||||
|
fPalette->setVisibleP(true);
|
||||||
|
this->attachChildToFront(fPalette);
|
||||||
|
fPalette->unref();
|
||||||
|
fBrushSize = SkFloatToScalar(2.5);
|
||||||
|
fAA = false;
|
||||||
|
fPaletteVisible = true;
|
||||||
|
fSync = false;
|
||||||
|
fVector = false;
|
||||||
|
}
|
||||||
|
~DrawingClientView() {
|
||||||
|
if (fSocket) {
|
||||||
|
delete fSocket;
|
||||||
|
}
|
||||||
|
fData.reset();
|
||||||
|
fBuffer.reset();
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual void requestMenu(SkOSMenu* menu) {
|
||||||
|
menu->setTitle("Drawing Client");
|
||||||
|
menu->appendTextField("Server IP", "Server IP", this->getSinkID(), "IP address or hostname");
|
||||||
|
menu->appendSwitch("Vector", "Vector", this->getSinkID(), fVector);
|
||||||
|
menu->appendSlider("Brush Size", "Brush Size", this->getSinkID(), 1.0, 100.0, fBrushSize);
|
||||||
|
menu->appendSwitch("Anti-Aliasing", "AA", this->getSinkID(), fAA);
|
||||||
|
menu->appendSwitch("Show Color Palette", "Palette", this->getSinkID(), fPaletteVisible);
|
||||||
|
menu->appendSwitch("Sync", "Sync", this->getSinkID(), fSync);
|
||||||
|
menu->appendAction("Clear", this->getSinkID());
|
||||||
|
}
|
||||||
|
|
||||||
|
protected:
|
||||||
|
|
||||||
|
static void readData(int cid, const void* data, size_t size,
|
||||||
|
SkSocket::DataType type, void* context) {
|
||||||
|
DrawingClientView* view = (DrawingClientView*)context;
|
||||||
|
view->onRead(cid, data, size, type);
|
||||||
|
}
|
||||||
|
|
||||||
|
void onRead(int cid, const void* data, size_t size, SkSocket::DataType type) {
|
||||||
|
if (size > 0) {
|
||||||
|
fBuffer.reset();
|
||||||
|
if (type == SkSocket::kPipeReplace_type)
|
||||||
|
fBuffer.append(size, (const char*)data);
|
||||||
|
else if (type == SkSocket::kPipeAppend_type)
|
||||||
|
fData.append(size, (const char*)data);
|
||||||
|
else {
|
||||||
|
//other types of data
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool onQuery(SkEvent* evt) {
|
||||||
|
if (SampleCode::TitleQ(*evt)) {
|
||||||
|
SampleCode::TitleR(evt, "Drawing Client");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return this->INHERITED::onQuery(evt);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool onEvent(const SkEvent& evt) {;
|
||||||
|
if (SkOSMenu::FindSliderValue(&evt, "Brush Size", &fBrushSize))
|
||||||
|
return true;
|
||||||
|
|
||||||
|
SkString s;
|
||||||
|
if (SkOSMenu::FindText(&evt, "Server IP", &s)) {
|
||||||
|
if (NULL != fSocket) {
|
||||||
|
delete fSocket;
|
||||||
|
}
|
||||||
|
fSocket = new SkTCPClient(s.c_str(), 40000);
|
||||||
|
fSocket->connectToServer();
|
||||||
|
fSocket->suspendWrite();
|
||||||
|
SkDebugf("Connecting to %s\n", s.c_str());
|
||||||
|
fData.reset();
|
||||||
|
fBuffer.reset();
|
||||||
|
this->inval(NULL);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (SkOSMenu::FindSwitchState(&evt, "AA", &fAA) ||
|
||||||
|
SkOSMenu::FindSwitchState(&evt, "Sync", &fSync))
|
||||||
|
return true;
|
||||||
|
if (SkOSMenu::FindSwitchState(&evt, "Vector", &fVector)) {
|
||||||
|
this->clearBitmap();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (SkOSMenu::FindAction(&evt, "Clear")) {
|
||||||
|
this->clear();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (SkOSMenu::FindSwitchState(&evt, "Palette", &fPaletteVisible)) {
|
||||||
|
fPalette->setVisibleP(fPaletteVisible);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return this->INHERITED::onEvent(evt);
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual SkView::Click* onFindClickHandler(SkScalar x, SkScalar y) {
|
||||||
|
return new Click(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual bool onClick(SkView::Click* click) {
|
||||||
|
switch (click->fState) {
|
||||||
|
case SkView::Click::kDown_State:
|
||||||
|
fCurrLine.moveTo(click->fCurr);
|
||||||
|
fType = SkSocket::kPipeReplace_type;
|
||||||
|
if (fSocket)
|
||||||
|
fSocket->resumeWrite();
|
||||||
|
break;
|
||||||
|
case SkView::Click::kMoved_State:
|
||||||
|
fCurrLine.lineTo(click->fCurr);
|
||||||
|
break;
|
||||||
|
case SkView::Click::kUp_State:
|
||||||
|
fType = SkSocket::kPipeAppend_type;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual void onDrawContent(SkCanvas* canvas) {
|
||||||
|
if (fSocket) {
|
||||||
|
if (fSocket->isConnected()) {
|
||||||
|
if (fSync) {
|
||||||
|
int count = 0;
|
||||||
|
while (fSocket->readPacket(readData, this) > 0 &&
|
||||||
|
count < MAX_READ_PER_FRAME)
|
||||||
|
++count;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
fSocket->readPacket(readData, this);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
fSocket->connectToServer();
|
||||||
|
}
|
||||||
|
size_t bytesRead = 0;
|
||||||
|
SkCanvas bufferCanvas(fBase);
|
||||||
|
SkCanvas* tempCanvas;
|
||||||
|
while (fTotalBytesRead < fData.count()) {
|
||||||
|
if (fVector)
|
||||||
|
tempCanvas = canvas;
|
||||||
|
else
|
||||||
|
tempCanvas = &bufferCanvas;
|
||||||
|
SkGPipeReader reader(tempCanvas);
|
||||||
|
SkGPipeReader::Status status = reader.playback(fData.begin() + fTotalBytesRead,
|
||||||
|
fData.count() - fTotalBytesRead,
|
||||||
|
&bytesRead);
|
||||||
|
SkASSERT(SkGPipeReader::kError_Status != status);
|
||||||
|
fTotalBytesRead += bytesRead;
|
||||||
|
}
|
||||||
|
if (fVector)
|
||||||
|
fTotalBytesRead = 0;
|
||||||
|
else
|
||||||
|
canvas->drawBitmap(fBase, 0, 0, NULL);
|
||||||
|
|
||||||
|
size_t totalBytesRead = 0;
|
||||||
|
while (totalBytesRead < fBuffer.count()) {
|
||||||
|
SkGPipeReader reader(canvas);
|
||||||
|
reader.playback(fBuffer.begin() + totalBytesRead,
|
||||||
|
fBuffer.count() - totalBytesRead,
|
||||||
|
&bytesRead);
|
||||||
|
|
||||||
|
totalBytesRead += bytesRead;
|
||||||
|
}
|
||||||
|
|
||||||
|
SkNetPipeController controller(canvas);
|
||||||
|
SkGPipeWriter writer;
|
||||||
|
SkCanvas* writerCanvas = writer.startRecording(&controller,
|
||||||
|
SkGPipeWriter::kCrossProcess_Flag);
|
||||||
|
|
||||||
|
//controller.disablePlayback();
|
||||||
|
SkPaint p;
|
||||||
|
p.setColor(fPalette->getColor());
|
||||||
|
p.setStyle(SkPaint::kStroke_Style);
|
||||||
|
p.setStrokeWidth(fBrushSize);
|
||||||
|
p.setStrokeCap(SkPaint::kRound_Cap);
|
||||||
|
p.setStrokeJoin(SkPaint::kRound_Join);
|
||||||
|
p.setAntiAlias(fAA);
|
||||||
|
p.setPathEffect(new SkCornerPathEffect(55))->unref();
|
||||||
|
writerCanvas->drawPath(fCurrLine, p);
|
||||||
|
writer.endRecording();
|
||||||
|
|
||||||
|
controller.writeToSocket(fSocket, fType);
|
||||||
|
if (fType == SkSocket::kPipeAppend_type && fSocket) {
|
||||||
|
fSocket->suspendWrite();
|
||||||
|
fCurrLine.reset();
|
||||||
|
}
|
||||||
|
|
||||||
|
this->inval(NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual void onSizeChange() {
|
||||||
|
this->INHERITED::onSizeChange();
|
||||||
|
fPalette->setLoc(this->width()-100, 0);
|
||||||
|
fBase.setConfig(SkBitmap::kARGB_8888_Config, this->width(), this->height());
|
||||||
|
fBase.allocPixels(NULL);
|
||||||
|
this->clearBitmap();
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
void clear() {
|
||||||
|
fData.reset();
|
||||||
|
fBuffer.reset();
|
||||||
|
fCurrLine.reset();
|
||||||
|
fTotalBytesRead = 0;
|
||||||
|
this->clearBitmap();
|
||||||
|
}
|
||||||
|
void clearBitmap() {
|
||||||
|
fTotalBytesRead = 0;
|
||||||
|
fBase.eraseColor(fBGColor);
|
||||||
|
}
|
||||||
|
SkTDArray<char> fData;
|
||||||
|
SkTDArray<char> fBuffer;
|
||||||
|
SkBitmap fBase;
|
||||||
|
SkPath fCurrLine;
|
||||||
|
SkTCPClient* fSocket;
|
||||||
|
SkSocket::DataType fType;
|
||||||
|
SkColorPalette* fPalette;
|
||||||
|
bool fPaletteVisible;
|
||||||
|
size_t fTotalBytesRead;
|
||||||
|
SkScalar fBrushSize;
|
||||||
|
bool fAA;
|
||||||
|
bool fSync;
|
||||||
|
bool fVector;
|
||||||
|
|
||||||
|
typedef SampleView INHERITED;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
static SkView* MyFactory() { return new DrawingClientView; }
|
||||||
|
static SkViewRegister reg(MyFactory);
|
||||||
|
|
200
experimental/DrawingBoard/SampleDrawingServer.cpp
Normal file
200
experimental/DrawingBoard/SampleDrawingServer.cpp
Normal file
@ -0,0 +1,200 @@
|
|||||||
|
#include "SampleCode.h"
|
||||||
|
#include "SkView.h"
|
||||||
|
#include "SkCanvas.h"
|
||||||
|
#include "SkGPipe.h"
|
||||||
|
#include "SkSockets.h"
|
||||||
|
#include "SkNetPipeController.h"
|
||||||
|
#include "SkCornerPathEffect.h"
|
||||||
|
#include "SkOSMenu.h"
|
||||||
|
#include <map>
|
||||||
|
class DrawingServerView : public SampleView {
|
||||||
|
public:
|
||||||
|
DrawingServerView(){
|
||||||
|
fServer = new SkTCPServer(40000);
|
||||||
|
fServer->suspendWrite();
|
||||||
|
fTotalBytesRead = fTotalBytesWritten = 0;
|
||||||
|
fVector = true;
|
||||||
|
}
|
||||||
|
~DrawingServerView() {
|
||||||
|
delete fServer;
|
||||||
|
fData.reset();
|
||||||
|
fBuffer.reset();
|
||||||
|
fClientMap.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual void requestMenu(SkOSMenu* menu) {
|
||||||
|
menu->setTitle("Drawing Server");
|
||||||
|
menu->appendAction("Clear", this->getSinkID());
|
||||||
|
menu->appendSwitch("Vector", "Vector", this->getSinkID(), fVector);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected:
|
||||||
|
static void readData(int cid, const void* data, size_t size,
|
||||||
|
SkSocket::DataType type, void* context) {
|
||||||
|
DrawingServerView* view = (DrawingServerView*)context;
|
||||||
|
view->onRead(cid, data, size, type);
|
||||||
|
}
|
||||||
|
|
||||||
|
void onRead(int cid, const void* data, size_t size, SkSocket::DataType type) {
|
||||||
|
if (NULL == data && size <= 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
ClientState* cs;
|
||||||
|
std::map<int, ClientState*>::iterator it = fClientMap.find(cid);
|
||||||
|
if (it == fClientMap.end()) { //New client
|
||||||
|
cs = new ClientState;
|
||||||
|
cs->bufferBase = 0;
|
||||||
|
cs->bufferSize = 0;
|
||||||
|
fClientMap[cid] = cs;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
cs = it->second;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (type == SkSocket::kPipeReplace_type) {
|
||||||
|
fBuffer.remove(cs->bufferBase, cs->bufferSize);
|
||||||
|
|
||||||
|
for (it = fClientMap.begin(); it != fClientMap.end(); ++it) {
|
||||||
|
if (cid == it->first)
|
||||||
|
continue;
|
||||||
|
else {
|
||||||
|
if (it->second->bufferBase > cs->bufferBase) {
|
||||||
|
it->second->bufferBase -= cs->bufferSize;
|
||||||
|
SkASSERT(it->second->bufferBase >= 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
cs->bufferBase = fBuffer.count();
|
||||||
|
cs->bufferSize = size;
|
||||||
|
fBuffer.append(size, (const char*)data);
|
||||||
|
}
|
||||||
|
else if (type == SkSocket::kPipeAppend_type) {
|
||||||
|
fData.append(size, (const char*)data);
|
||||||
|
fServer->resumeWrite();
|
||||||
|
fServer->writePacket(fData.begin() + fTotalBytesWritten,
|
||||||
|
fData.count() - fTotalBytesWritten,
|
||||||
|
SkSocket::kPipeAppend_type);
|
||||||
|
fTotalBytesWritten = fData.count();
|
||||||
|
fServer->suspendWrite();
|
||||||
|
//this->clearBitmap();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
//other types of data
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// overrides from SkEventSink
|
||||||
|
bool onQuery(SkEvent* evt) {
|
||||||
|
if (SampleCode::TitleQ(*evt)) {
|
||||||
|
SampleCode::TitleR(evt, "Drawing Server");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return this->INHERITED::onQuery(evt);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool onEvent(const SkEvent& evt) {
|
||||||
|
if (SkOSMenu::FindAction(&evt, "Clear")) {
|
||||||
|
this->clear();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (SkOSMenu::FindSwitchState(&evt, "Vector", &fVector)) {
|
||||||
|
this->clearBitmap();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return this->INHERITED::onEvent(evt);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
virtual void onDrawContent(SkCanvas* canvas) {
|
||||||
|
if (fCurrMatrix != canvas->getTotalMatrix()) {
|
||||||
|
fTotalBytesRead = 0;
|
||||||
|
fCurrMatrix = canvas->getTotalMatrix();
|
||||||
|
}
|
||||||
|
|
||||||
|
fServer->acceptConnections();
|
||||||
|
if (fServer->readPacket(readData, this) > 0) {
|
||||||
|
fServer->resumeWrite();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
fServer->suspendWrite();
|
||||||
|
}
|
||||||
|
|
||||||
|
size_t bytesRead;
|
||||||
|
SkCanvas bufferCanvas(fBase);
|
||||||
|
SkCanvas* tempCanvas;
|
||||||
|
while (fTotalBytesRead < fData.count()) {
|
||||||
|
if (fVector)
|
||||||
|
tempCanvas = canvas;
|
||||||
|
else
|
||||||
|
tempCanvas = &bufferCanvas;
|
||||||
|
SkGPipeReader reader(tempCanvas);
|
||||||
|
SkGPipeReader::Status stat = reader.playback(fData.begin() + fTotalBytesRead,
|
||||||
|
fData.count() - fTotalBytesRead,
|
||||||
|
&bytesRead);
|
||||||
|
SkASSERT(SkGPipeReader::kError_Status != stat);
|
||||||
|
fTotalBytesRead += bytesRead;
|
||||||
|
|
||||||
|
if (SkGPipeReader::kDone_Status == stat) {}
|
||||||
|
}
|
||||||
|
if (fVector)
|
||||||
|
fTotalBytesRead = 0;
|
||||||
|
else
|
||||||
|
canvas->drawBitmap(fBase, 0, 0, NULL);
|
||||||
|
|
||||||
|
size_t totalBytesRead = 0;
|
||||||
|
while (totalBytesRead < fBuffer.count()) {
|
||||||
|
SkGPipeReader reader(canvas);
|
||||||
|
reader.playback(fBuffer.begin() + totalBytesRead,
|
||||||
|
fBuffer.count() - totalBytesRead,
|
||||||
|
&bytesRead);
|
||||||
|
totalBytesRead += bytesRead;
|
||||||
|
}
|
||||||
|
|
||||||
|
fServer->writePacket(fBuffer.begin(), fBuffer.count(),
|
||||||
|
SkSocket::kPipeReplace_type);
|
||||||
|
|
||||||
|
this->inval(NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual void onSizeChange() {
|
||||||
|
this->INHERITED::onSizeChange();
|
||||||
|
fBase.setConfig(SkBitmap::kARGB_8888_Config, this->width(), this->height());
|
||||||
|
fBase.allocPixels(NULL);
|
||||||
|
this->clearBitmap();
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
void clear() {
|
||||||
|
fData.reset();
|
||||||
|
fBuffer.reset();
|
||||||
|
fTotalBytesRead = fTotalBytesWritten = 0;
|
||||||
|
fClientMap.clear();
|
||||||
|
this->clearBitmap();
|
||||||
|
}
|
||||||
|
void clearBitmap() {
|
||||||
|
fTotalBytesRead = 0;
|
||||||
|
fBase.eraseColor(fBGColor);
|
||||||
|
}
|
||||||
|
|
||||||
|
struct ClientState {
|
||||||
|
int bufferBase;
|
||||||
|
int bufferSize;
|
||||||
|
};
|
||||||
|
std::map<int, ClientState*> fClientMap;
|
||||||
|
SkTDArray<char> fData;
|
||||||
|
SkTDArray<char> fBuffer;
|
||||||
|
size_t fTotalBytesRead;
|
||||||
|
size_t fTotalBytesWritten;
|
||||||
|
SkMatrix fCurrMatrix;
|
||||||
|
SkBitmap fBase;
|
||||||
|
bool fVector;
|
||||||
|
SkTCPServer* fServer;
|
||||||
|
typedef SampleView INHERITED;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
static SkView* MyFactory() { return new DrawingServerView; }
|
||||||
|
static SkViewRegister reg(MyFactory);
|
@ -16,9 +16,12 @@ SkColorPalette::SkColorPalette() {
|
|||||||
fGradientRect = SkRect::MakeWH(SkIntToScalar(100), SkIntToScalar(100));
|
fGradientRect = SkRect::MakeWH(SkIntToScalar(100), SkIntToScalar(100));
|
||||||
fSelected = 0;
|
fSelected = 0;
|
||||||
fCurrColor = 0xFF000000;
|
fCurrColor = 0xFF000000;
|
||||||
for (int i = 0; i < PaletteSlots; ++i) {
|
|
||||||
fColors[i] = 0xFF000000;
|
fColors[0] = SK_ColorWHITE;
|
||||||
}
|
fColors[1] = SK_ColorBLACK;
|
||||||
|
fColors[2] = SK_ColorRED;
|
||||||
|
fColors[3] = SK_ColorGREEN;
|
||||||
|
fColors[4] = SK_ColorBLUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool SkColorPalette::onEvent(const SkEvent& evt) {
|
bool SkColorPalette::onEvent(const SkEvent& evt) {
|
||||||
@ -26,24 +29,27 @@ bool SkColorPalette::onEvent(const SkEvent& evt) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void SkColorPalette::onDraw(SkCanvas* canvas) {
|
void SkColorPalette::onDraw(SkCanvas* canvas) {
|
||||||
canvas->drawColor(0xFFEEEEEE);
|
canvas->drawColor(SK_ColorWHITE);
|
||||||
|
|
||||||
SkPaint paint;
|
SkPaint paint;
|
||||||
paint.setAntiAlias(true);
|
paint.setAntiAlias(true);
|
||||||
paint.setStyle(SkPaint::kStrokeAndFill_Style);
|
|
||||||
|
|
||||||
canvas->translate(PalettePadding, PalettePadding);
|
canvas->translate(PalettePadding, PalettePadding);
|
||||||
|
|
||||||
for (int i = 0; i < PaletteSlots; ++i) {
|
for (int i = 0; i < PaletteSlots; ++i) {
|
||||||
if (fSelected == i) {
|
if (fSelected == i) {
|
||||||
paint.setStrokeWidth(SkIntToScalar(3));
|
paint.setStrokeWidth(SkIntToScalar(3));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
paint.setStrokeWidth(0);
|
paint.setStrokeWidth(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
paint.setStyle(SkPaint::kStroke_Style);
|
||||||
|
paint.setColor(SK_ColorBLACK);
|
||||||
|
canvas->drawRect(fSlotRect, paint);
|
||||||
|
paint.setStyle(SkPaint::kFill_Style);
|
||||||
paint.setColor(fColors[i]);
|
paint.setColor(fColors[i]);
|
||||||
canvas->drawRect(fSlotRect, paint);
|
canvas->drawRect(fSlotRect, paint);
|
||||||
|
|
||||||
canvas->translate(0, fSlotRect.height() + PalettePadding);
|
canvas->translate(0, fSlotRect.height() + PalettePadding);
|
||||||
}
|
}
|
||||||
paint.setStrokeWidth(0);
|
paint.setStrokeWidth(0);
|
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright 2011 Google Inc.
|
* Copyright 2011 Google Inc.
|
||||||
*
|
*
|
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright 2011 Google Inc.
|
* Copyright 2011 Google Inc.
|
||||||
*
|
*
|
110
experimental/Networking/SampleNetPipeReader.cpp
Normal file
110
experimental/Networking/SampleNetPipeReader.cpp
Normal file
@ -0,0 +1,110 @@
|
|||||||
|
#include "SampleCode.h"
|
||||||
|
#include "SkView.h"
|
||||||
|
#include "SkCanvas.h"
|
||||||
|
#include "SkGradientShader.h"
|
||||||
|
#include "SkGPipe.h"
|
||||||
|
#include "SkSockets.h"
|
||||||
|
#include "SkOSMenu.h"
|
||||||
|
|
||||||
|
#define MAX_READS_PER_FRAME 5
|
||||||
|
class NetPipeReaderView : public SampleView {
|
||||||
|
public:
|
||||||
|
NetPipeReaderView() {
|
||||||
|
fSocket = NULL;
|
||||||
|
fSync = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
~NetPipeReaderView() {
|
||||||
|
if (fSocket) {
|
||||||
|
delete fSocket;
|
||||||
|
}
|
||||||
|
fDataArray.reset();
|
||||||
|
}
|
||||||
|
virtual void requestMenu(SkOSMenu* menu) {
|
||||||
|
menu->setTitle("Net Pipe Reader");
|
||||||
|
menu->appendTextField("Server IP", "Server IP", this->getSinkID(),
|
||||||
|
"IP address");
|
||||||
|
menu->appendSwitch("Sync", "Sync", this->getSinkID(), fSync);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected:
|
||||||
|
static void readData(int cid, const void* data, size_t size,
|
||||||
|
SkSocket::DataType type, void* context) {
|
||||||
|
NetPipeReaderView* view = (NetPipeReaderView*)context;
|
||||||
|
view->onRead(data, size);
|
||||||
|
}
|
||||||
|
|
||||||
|
void onRead(const void* data, size_t size) {
|
||||||
|
if (size > 0)
|
||||||
|
fDataArray.append(size, (const char*)data);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool onQuery(SkEvent* evt) {
|
||||||
|
if (SampleCode::TitleQ(*evt)) {
|
||||||
|
SampleCode::TitleR(evt, "Net Pipe Reader");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return this->INHERITED::onQuery(evt);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool onEvent(const SkEvent& evt) {;
|
||||||
|
SkString s;
|
||||||
|
if (SkOSMenu::FindText(&evt, "Server IP", &s)) {
|
||||||
|
if (NULL != fSocket) {
|
||||||
|
delete fSocket;
|
||||||
|
}
|
||||||
|
fSocket = new SkTCPClient(s.c_str());
|
||||||
|
fSocket->connectToServer();
|
||||||
|
SkDebugf("Connecting to %s\n", s.c_str());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (SkOSMenu::FindSwitchState(&evt, "Sync", &fSync))
|
||||||
|
return true;
|
||||||
|
return this->INHERITED::onEvent(evt);
|
||||||
|
}
|
||||||
|
|
||||||
|
void onDrawContent(SkCanvas* canvas) {
|
||||||
|
if (NULL == fSocket)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (fSocket->isConnected()) {
|
||||||
|
int dataToRemove = fDataArray.count();
|
||||||
|
if (fSync) {
|
||||||
|
int numreads = 0;
|
||||||
|
while (fSocket->readPacket(readData, this) > 0 &&
|
||||||
|
numreads < MAX_READS_PER_FRAME) {
|
||||||
|
fDataArray.remove(0, dataToRemove);
|
||||||
|
dataToRemove = fDataArray.count();
|
||||||
|
++numreads;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (fSocket->readPacket(readData, this) > 0)
|
||||||
|
fDataArray.remove(0, dataToRemove);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
fSocket->connectToServer();
|
||||||
|
|
||||||
|
SkGPipeReader reader(canvas);
|
||||||
|
size_t bytesRead;
|
||||||
|
SkGPipeReader::Status fStatus = reader.playback(fDataArray.begin(),
|
||||||
|
fDataArray.count(),
|
||||||
|
&bytesRead);
|
||||||
|
SkASSERT(SkGPipeReader::kError_Status != fStatus);
|
||||||
|
this->inval(NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
bool fSync;
|
||||||
|
SkTDArray<char> fDataArray;
|
||||||
|
SkTCPClient* fSocket;
|
||||||
|
typedef SampleView INHERITED;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
static SkView* MyFactory() { return new NetPipeReaderView; }
|
||||||
|
static SkViewRegister reg(MyFactory);
|
||||||
|
|
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright 2011 Google Inc.
|
* Copyright 2011 Google Inc.
|
||||||
*
|
*
|
||||||
@ -20,8 +19,6 @@ SkSocket::SkSocket() {
|
|||||||
fReadSuspended = false;
|
fReadSuspended = false;
|
||||||
fWriteSuspended = false;
|
fWriteSuspended = false;
|
||||||
fSockfd = this->createSocket();
|
fSockfd = this->createSocket();
|
||||||
fTimeout.tv_sec = 0;
|
|
||||||
fTimeout.tv_usec = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
SkSocket::~SkSocket() {
|
SkSocket::~SkSocket() {
|
||||||
@ -31,7 +28,13 @@ SkSocket::~SkSocket() {
|
|||||||
int SkSocket::createSocket() {
|
int SkSocket::createSocket() {
|
||||||
int sockfd = socket(AF_INET, SOCK_STREAM, 0);
|
int sockfd = socket(AF_INET, SOCK_STREAM, 0);
|
||||||
if (sockfd < 0) {
|
if (sockfd < 0) {
|
||||||
//SkDebugf("ERROR opening socket\n");
|
SkDebugf("ERROR opening socket\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
int reuse = 1;
|
||||||
|
|
||||||
|
if (setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &reuse, sizeof(int)) < 0) {
|
||||||
|
SkDebugf("error: %s\n", strerror(errno));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
#ifdef NONBLOCKING_SOCKETS
|
#ifdef NONBLOCKING_SOCKETS
|
||||||
@ -46,8 +49,9 @@ void SkSocket::closeSocket(int sockfd) {
|
|||||||
if (!fReady)
|
if (!fReady)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
//SkDebugf("Closed fd:%d\n", sockfd);
|
shutdown(sockfd, 2); //stop sending/receiving
|
||||||
close(sockfd);
|
close(sockfd);
|
||||||
|
//SkDebugf("Closed fd:%d\n", sockfd);
|
||||||
|
|
||||||
if (FD_ISSET(sockfd, &fMasterSet)) {
|
if (FD_ISSET(sockfd, &fMasterSet)) {
|
||||||
FD_CLR(sockfd, &fMasterSet);
|
FD_CLR(sockfd, &fMasterSet);
|
||||||
@ -56,10 +60,8 @@ void SkSocket::closeSocket(int sockfd) {
|
|||||||
fMaxfd -= 1;
|
fMaxfd -= 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (0 == fMaxfd) {
|
if (0 == fMaxfd)
|
||||||
fConnected = false;
|
fConnected = false;
|
||||||
//SkDebugf("all connections closed\n");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void SkSocket::onFailedConnection(int sockfd) {
|
void SkSocket::onFailedConnection(int sockfd) {
|
||||||
@ -77,9 +79,10 @@ void SkSocket::addToMasterSet(int sockfd) {
|
|||||||
fMaxfd = sockfd;
|
fMaxfd = sockfd;
|
||||||
}
|
}
|
||||||
|
|
||||||
int SkSocket::readPacket(void (*onRead)(const void*, size_t, int, DataType,
|
int SkSocket::readPacket(void (*onRead)(int, const void*, size_t, DataType,
|
||||||
void*), void* context) {
|
void*), void* context) {
|
||||||
if (!fConnected || !fReady || NULL == onRead || fReadSuspended)
|
if (!fConnected || !fReady || NULL == onRead || NULL == context
|
||||||
|
|| fReadSuspended)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
int totalBytesRead = 0;
|
int totalBytesRead = 0;
|
||||||
@ -139,9 +142,9 @@ int SkSocket::readPacket(void (*onRead)(const void*, size_t, int, DataType,
|
|||||||
failure = true;
|
failure = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
//SkDebugf("read packet(done:%d, bytes:%d) from fd:%d in %d attempts\n",
|
//SkDebugf("read packet(done:%d, bytes:%d) from fd:%d in %d tries\n",
|
||||||
// h.done, h.bytes, fSockfd, attempts);
|
// h.done, h.bytes, fSockfd, attempts);
|
||||||
stream.write(packet + HEADER_SIZE, h.bytes);\
|
stream.write(packet + HEADER_SIZE, h.bytes);
|
||||||
bytesReadInPacket = 0;
|
bytesReadInPacket = 0;
|
||||||
attempts = 0;
|
attempts = 0;
|
||||||
bytesReadInTransfer += h.bytes;
|
bytesReadInTransfer += h.bytes;
|
||||||
@ -156,7 +159,7 @@ int SkSocket::readPacket(void (*onRead)(const void*, size_t, int, DataType,
|
|||||||
if (bytesReadInTransfer > 0) {
|
if (bytesReadInTransfer > 0) {
|
||||||
SkData* data = stream.copyToData();
|
SkData* data = stream.copyToData();
|
||||||
SkASSERT(data->size() == bytesReadInTransfer);
|
SkASSERT(data->size() == bytesReadInTransfer);
|
||||||
onRead(data->data(), data->size(), i, h.type, context);
|
onRead(i, data->data(), data->size(), h.type, context);
|
||||||
data->unref();
|
data->unref();
|
||||||
|
|
||||||
totalBytesRead += bytesReadInTransfer;
|
totalBytesRead += bytesReadInTransfer;
|
||||||
@ -206,7 +209,7 @@ int SkSocket::writePacket(void* data, size_t size, DataType type) {
|
|||||||
#ifdef NONBLOCKING_SOCKETS
|
#ifdef NONBLOCKING_SOCKETS
|
||||||
else if (errno == EWOULDBLOCK || errno == EAGAIN) {
|
else if (errno == EWOULDBLOCK || errno == EAGAIN) {
|
||||||
if (bytesWrittenInPacket > 0 || bytesWrittenInTransfer > 0)
|
if (bytesWrittenInPacket > 0 || bytesWrittenInTransfer > 0)
|
||||||
continue; //incomplete packet or frame, keep tring
|
continue; //incomplete packet or frame, keep trying
|
||||||
else
|
else
|
||||||
break; //client not available, skip current transfer
|
break; //client not available, skip current transfer
|
||||||
}
|
}
|
||||||
@ -220,10 +223,8 @@ int SkSocket::writePacket(void* data, size_t size, DataType type) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bytesWrittenInPacket += retval;
|
bytesWrittenInPacket += retval;
|
||||||
if (bytesWrittenInPacket < PACKET_SIZE) {
|
if (bytesWrittenInPacket < PACKET_SIZE)
|
||||||
//SkDebugf("Wrote %d/%d\n", bytesWrittenInPacket, PACKET_SIZE);
|
continue; //incomplete packet, keep trying
|
||||||
continue; //incomplete packet, keep tring
|
|
||||||
}
|
|
||||||
|
|
||||||
SkASSERT(bytesWrittenInPacket == PACKET_SIZE);
|
SkASSERT(bytesWrittenInPacket == PACKET_SIZE);
|
||||||
//SkDebugf("wrote to packet(done:%d, bytes:%d) to fd:%d in %d tries\n",
|
//SkDebugf("wrote to packet(done:%d, bytes:%d) to fd:%d in %d tries\n",
|
||||||
@ -233,15 +234,14 @@ int SkSocket::writePacket(void* data, size_t size, DataType type) {
|
|||||||
attempts = 0;
|
attempts = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (failure) {
|
if (failure)
|
||||||
//SkDebugf("Failed to write to fd:%d, terminating connection\n", i);
|
|
||||||
this->onFailedConnection(i);
|
this->onFailedConnection(i);
|
||||||
}
|
|
||||||
|
|
||||||
totalBytesWritten += bytesWrittenInTransfer;
|
totalBytesWritten += bytesWrittenInTransfer;
|
||||||
}
|
}
|
||||||
return totalBytesWritten;
|
return totalBytesWritten;
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
SkTCPServer::SkTCPServer(int port) {
|
SkTCPServer::SkTCPServer(int port) {
|
||||||
sockaddr_in serverAddr;
|
sockaddr_in serverAddr;
|
||||||
@ -250,33 +250,32 @@ SkTCPServer::SkTCPServer(int port) {
|
|||||||
serverAddr.sin_port = htons(port);
|
serverAddr.sin_port = htons(port);
|
||||||
|
|
||||||
if (bind(fSockfd, (sockaddr*)&serverAddr, sizeof(serverAddr)) < 0) {
|
if (bind(fSockfd, (sockaddr*)&serverAddr, sizeof(serverAddr)) < 0) {
|
||||||
//SkDebugf("ERROR on binding\n");
|
SkDebugf("ERROR on binding: %s\n", strerror(errno));
|
||||||
fReady = false;
|
fReady = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SkTCPServer::~SkTCPServer() {
|
SkTCPServer::~SkTCPServer() {
|
||||||
this->disconnectAllConnections();
|
this->disconnectAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
int SkTCPServer::acceptIncomingConnections() {
|
int SkTCPServer::acceptConnections() {
|
||||||
if (!fReady)
|
if (!fReady)
|
||||||
return -1;
|
return -1;
|
||||||
// if (fConnected)
|
|
||||||
// return 0;
|
|
||||||
|
|
||||||
listen(fSockfd, MAX_CLIENTS);
|
listen(fSockfd, MAX_WAITING_CLIENTS);
|
||||||
////SkDebugf("Accepting Incoming connections\n");
|
|
||||||
int newfd;
|
int newfd;
|
||||||
|
for (int i = 0; i < MAX_WAITING_CLIENTS; ++i) {
|
||||||
for (int i = 0; i < MAX_CLIENTS; ++i) {
|
|
||||||
#ifdef NONBLOCKING_SOCKETS
|
#ifdef NONBLOCKING_SOCKETS
|
||||||
fd_set workingSet;
|
fd_set workingSet;
|
||||||
FD_ZERO(&workingSet);
|
FD_ZERO(&workingSet);
|
||||||
FD_SET(fSockfd, &workingSet);
|
FD_SET(fSockfd, &workingSet);
|
||||||
int sel = select(fSockfd + 1, &workingSet, NULL, NULL, &fTimeout);
|
timeval timeout;
|
||||||
|
timeout.tv_sec = 0;
|
||||||
|
timeout.tv_usec = 0;
|
||||||
|
int sel = select(fSockfd + 1, &workingSet, NULL, NULL, &timeout);
|
||||||
if (sel < 0) {
|
if (sel < 0) {
|
||||||
//SkDebugf("select() failed with error %s\n", strerror(errno));
|
SkDebugf("select() failed with error %s\n", strerror(errno));
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (sel == 0) //select() timed out
|
if (sel == 0) //select() timed out
|
||||||
@ -286,10 +285,10 @@ int SkTCPServer::acceptIncomingConnections() {
|
|||||||
socklen_t clientLen = sizeof(clientAddr);
|
socklen_t clientLen = sizeof(clientAddr);
|
||||||
newfd = accept(fSockfd, (struct sockaddr*)&clientAddr, &clientLen);
|
newfd = accept(fSockfd, (struct sockaddr*)&clientAddr, &clientLen);
|
||||||
if (newfd< 0) {
|
if (newfd< 0) {
|
||||||
//SkDebugf("accept() failed with error %s\n", strerror(errno));
|
SkDebugf("accept() failed with error %s\n", strerror(errno));
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
//SkDebugf("New incoming connection - %d\n", newfd);
|
SkDebugf("New incoming connection - %d\n", newfd);
|
||||||
fConnected = true;
|
fConnected = true;
|
||||||
#ifdef NONBLOCKING_SOCKETS
|
#ifdef NONBLOCKING_SOCKETS
|
||||||
this->setNonBlocking(newfd);
|
this->setNonBlocking(newfd);
|
||||||
@ -300,12 +299,10 @@ int SkTCPServer::acceptIncomingConnections() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int SkTCPServer::disconnectAllConnections() {
|
int SkTCPServer::disconnectAll() {
|
||||||
////SkDebugf("disconnecting server\n");
|
|
||||||
if (!fConnected || !fReady)
|
if (!fConnected || !fReady)
|
||||||
return -1;
|
return -1;
|
||||||
for (int i = 0; i <= fMaxfd; ++i)
|
for (int i = 0; i <= fMaxfd; ++i) {
|
||||||
{
|
|
||||||
if (FD_ISSET(i, &fMasterSet))
|
if (FD_ISSET(i, &fMasterSet))
|
||||||
this->closeSocket(i);
|
this->closeSocket(i);
|
||||||
}
|
}
|
||||||
@ -331,7 +328,7 @@ SkTCPClient::SkTCPClient(const char* hostname, int port) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void SkTCPClient::onFailedConnection(int sockfd) {
|
void SkTCPClient::onFailedConnection(int sockfd) { //cleanup and recreate socket
|
||||||
SkASSERT(sockfd == fSockfd);
|
SkASSERT(sockfd == fSockfd);
|
||||||
this->closeSocket(fSockfd);
|
this->closeSocket(fSockfd);
|
||||||
fSockfd = this->createSocket();
|
fSockfd = this->createSocket();
|
||||||
@ -358,6 +355,6 @@ int SkTCPClient::connectToServer() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
fConnected = true;
|
fConnected = true;
|
||||||
//SkDebugf("Succesfully reached server\n");
|
SkDebugf("Succesfully reached server\n");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright 2011 Google Inc.
|
* Copyright 2011 Google Inc.
|
||||||
*
|
*
|
||||||
@ -12,19 +11,15 @@
|
|||||||
#include <sys/socket.h>
|
#include <sys/socket.h>
|
||||||
#include "SkTypes.h"
|
#include "SkTypes.h"
|
||||||
#include "SkStream.h"
|
#include "SkStream.h"
|
||||||
|
|
||||||
/* PACKET and HEADER Format */
|
/* PACKET and HEADER Format */
|
||||||
#define PACKET_SIZE 1024
|
#define PACKET_SIZE 1024
|
||||||
#define HEADER_SIZE 20
|
#define HEADER_SIZE 20
|
||||||
#define CONTENT_SIZE 1004
|
#define CONTENT_SIZE 1004
|
||||||
|
|
||||||
#define DEFAULT_PORT 15555
|
#define DEFAULT_PORT 15555
|
||||||
|
#define MAX_WAITING_CLIENTS 3
|
||||||
#define NONBLOCKING_SOCKETS
|
#define NONBLOCKING_SOCKETS
|
||||||
#ifdef NONBLOCKING_SOCKETS
|
|
||||||
#define MAX_CLIENTS 3
|
|
||||||
#else
|
|
||||||
#define MAX_CLIENTS 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
class SkSocket {
|
class SkSocket {
|
||||||
public:
|
public:
|
||||||
@ -44,7 +39,9 @@ public:
|
|||||||
kString_type,
|
kString_type,
|
||||||
kInt_type
|
kInt_type
|
||||||
};
|
};
|
||||||
/*
|
|
||||||
|
bool isConnected() { return fConnected; }
|
||||||
|
/**
|
||||||
* Write data to the socket. Data is a pointer to the beginning of the data
|
* Write data to the socket. Data is a pointer to the beginning of the data
|
||||||
* to be sent and dataSize specifies the number of bytes to send. This
|
* to be sent and dataSize specifies the number of bytes to send. This
|
||||||
* method will spread the data across multiple packets if the data can't all
|
* method will spread the data across multiple packets if the data can't all
|
||||||
@ -54,29 +51,40 @@ public:
|
|||||||
* was an error during the transfer, in which case the method returns -1.
|
* was an error during the transfer, in which case the method returns -1.
|
||||||
* For blocking sockets, write will block indefinitely if the socket at the
|
* For blocking sockets, write will block indefinitely if the socket at the
|
||||||
* other end of the connection doesn't receive any data.
|
* other end of the connection doesn't receive any data.
|
||||||
|
* NOTE: This method guarantees that all of the data will be sent unless
|
||||||
|
* there was an error, so it might block temporarily when the write buffer
|
||||||
|
* is full
|
||||||
*/
|
*/
|
||||||
int writePacket(void* data, size_t size, DataType type = kPipeAppend_type);
|
int writePacket(void* data, size_t size, DataType type = kPipeAppend_type);
|
||||||
|
|
||||||
/*
|
/**
|
||||||
* Read a logical packet from socket. The data read will be stored
|
* Read a logical packet from socket. The data read will be stored
|
||||||
* sequentially in the dataArray. This method will keep running until all
|
* sequentially in the dataArray. This method will keep running until all
|
||||||
* the data in a logical chunk has been read (assembling multiple partial
|
* the data in a logical chunk has been read (assembling multiple partial
|
||||||
* packets if necessary) and return the number of bytes successfully read,
|
* packets if necessary) and return the number of bytes successfully read,
|
||||||
* unless there was an error, in which case the method returns -1. NOTE: For
|
* unless there was an error, in which case the method returns -1. \For
|
||||||
* nonblocking sockets, read will return 0 if there's nothing to read. For
|
* nonblocking sockets, read will return 0 if there's nothing to read. For
|
||||||
* blocking sockets, read will block indefinitely if the socket doesn't
|
* blocking sockets, read will block indefinitely if the socket doesn't
|
||||||
* receive any data.
|
* receive any data.
|
||||||
* once
|
* NOTE: This method guarantees that all the data in a logical packet will
|
||||||
|
* be read so there might be temporary delays if it's waiting for parts of a
|
||||||
|
* packet
|
||||||
*/
|
*/
|
||||||
int readPacket(void (*onRead)(const void* data, size_t size,int cid,
|
int readPacket(void (*onRead)(int cid, const void* data, size_t size,
|
||||||
DataType type, void*), void* context);
|
DataType type, void*), void* context);
|
||||||
|
|
||||||
// Suspend network transfers until resume() is called. Leaves all
|
/**
|
||||||
// connections in tact.
|
* Suspend network transfers until resume() is called. Leaves all
|
||||||
|
* connections in tact.
|
||||||
|
*/
|
||||||
void suspendAll() { fReadSuspended = fWriteSuspended = true; }
|
void suspendAll() { fReadSuspended = fWriteSuspended = true; }
|
||||||
// Resume all network transfers.
|
/**
|
||||||
|
* Resume all network transfers.
|
||||||
|
*/
|
||||||
void resumeAll() { fReadSuspended = fWriteSuspended = false; }
|
void resumeAll() { fReadSuspended = fWriteSuspended = false; }
|
||||||
// Other helper functions
|
/**
|
||||||
|
* Other helper functions
|
||||||
|
*/
|
||||||
void suspendRead() { fReadSuspended = true; }
|
void suspendRead() { fReadSuspended = true; }
|
||||||
void resumeRead() { fReadSuspended = false; }
|
void resumeRead() { fReadSuspended = false; }
|
||||||
void suspendWrite() { fWriteSuspended = true; }
|
void suspendWrite() { fWriteSuspended = true; }
|
||||||
@ -89,22 +97,34 @@ protected:
|
|||||||
DataType type;
|
DataType type;
|
||||||
};
|
};
|
||||||
|
|
||||||
// Create a socket and return its file descriptor. Returns -1 on failure
|
/**
|
||||||
|
* Create a socket and return its file descriptor. Returns -1 on failure
|
||||||
|
*/
|
||||||
int createSocket();
|
int createSocket();
|
||||||
// Close the socket specifies by the socket file descriptor passed in. Will
|
|
||||||
// update fMaxfd
|
/**
|
||||||
|
* Close the socket specified by the socket file descriptor argument. Will
|
||||||
|
* update fMaxfd and working set properly
|
||||||
|
*/
|
||||||
void closeSocket(int sockfd);
|
void closeSocket(int sockfd);
|
||||||
|
|
||||||
// called when a broken or terminated connection has been detected. Closes
|
/**
|
||||||
// the socket file descriptor and removes it from the master set by default.
|
* Called when a broken or terminated connection has been detected. Closes
|
||||||
// Override to handle broken connections differently
|
* the socket file descriptor and removes it from the master set by default.
|
||||||
|
* Override to handle broken connections differently
|
||||||
|
*/
|
||||||
virtual void onFailedConnection(int sockfd);
|
virtual void onFailedConnection(int sockfd);
|
||||||
|
|
||||||
// set the socket specified by the socket file descriptor as nonblocking
|
/**
|
||||||
|
* Set the socket specified by the socket file descriptor as nonblocking
|
||||||
|
*/
|
||||||
void setNonBlocking(int sockfd);
|
void setNonBlocking(int sockfd);
|
||||||
// add the socket specified by the socket file descriptor to the master
|
|
||||||
// file descriptor set, which is used to in the select() to detect new data
|
/**
|
||||||
// or connections
|
* Add the socket specified by the socket file descriptor to the master
|
||||||
|
* file descriptor set, which is used to in the select() to detect new data
|
||||||
|
* or connections
|
||||||
|
*/
|
||||||
void addToMasterSet(int sockfd);
|
void addToMasterSet(int sockfd);
|
||||||
|
|
||||||
bool fConnected;
|
bool fConnected;
|
||||||
@ -114,32 +134,37 @@ protected:
|
|||||||
int fMaxfd;
|
int fMaxfd;
|
||||||
int fPort;
|
int fPort;
|
||||||
int fSockfd;
|
int fSockfd;
|
||||||
// fMasterSet contains all the file descriptors to be used for read/write.
|
|
||||||
// For clients, this will only contain fSockfd. For servers, this will
|
/**
|
||||||
// contain all the file descriptors associated with established connections
|
* fMasterSet contains all the file descriptors to be used for read/write.
|
||||||
// to clients
|
* For clients, this only contains the client socket. For servers, this
|
||||||
|
* contains all the file descriptors associated with established connections
|
||||||
|
* to clients
|
||||||
|
*/
|
||||||
fd_set fMasterSet;
|
fd_set fMasterSet;
|
||||||
timeval fTimeout;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* TCP server. Can accept simultaneous connections to multiple SkTCPClients and
|
* TCP server. Can accept simultaneous connections to multiple SkTCPClients and
|
||||||
* read/write data back and forth using read/writePacket calls. Port number can
|
* read/write data back and forth using read/writePacket calls. Port number can
|
||||||
* be specified, but make sure that the clients use the same port for connections
|
* be specified, but make sure that client/server use the same port
|
||||||
*/
|
*/
|
||||||
class SkTCPServer : public SkSocket {
|
class SkTCPServer : public SkSocket {
|
||||||
public:
|
public:
|
||||||
SkTCPServer(int port = DEFAULT_PORT);
|
SkTCPServer(int port = DEFAULT_PORT);
|
||||||
~SkTCPServer();
|
~SkTCPServer();
|
||||||
|
|
||||||
// accept any incoming connections to the server, will only accept a limited
|
/**
|
||||||
// number of clients (specified by MAX_CLIENTS) at a time. Returns -1 on
|
* Accept any incoming connections to the server, will accept 1 connection
|
||||||
// error. For blocking sockets, this method will block until a client has
|
* at a time. Returns -1 on error. For blocking sockets, this method will
|
||||||
// connected
|
* block until a client calls connectToServer()
|
||||||
int acceptIncomingConnections();
|
*/
|
||||||
|
int acceptConnections();
|
||||||
|
|
||||||
// disconnect all connections to clients. Returns -1 on error
|
/**
|
||||||
int disconnectAllConnections();
|
* Disconnect all connections to clients. Returns -1 on error
|
||||||
|
*/
|
||||||
|
int disconnectAll();
|
||||||
private:
|
private:
|
||||||
typedef SkSocket INHERITED;
|
typedef SkSocket INHERITED;
|
||||||
};
|
};
|
||||||
@ -153,15 +178,17 @@ class SkTCPClient : public SkSocket {
|
|||||||
public:
|
public:
|
||||||
SkTCPClient(const char* hostname, int port = DEFAULT_PORT);
|
SkTCPClient(const char* hostname, int port = DEFAULT_PORT);
|
||||||
|
|
||||||
// Connect to server. Returns -1 on error or failure. Make sure to call this
|
/**
|
||||||
// before any read/write operation to make sure that a connection is
|
* Connect to server. Returns -1 on error or failure. Call this to connect
|
||||||
// is established or is still open and reconnect to server if necessary. For
|
* or reconnect to the server. For blocking sockets, this method will block
|
||||||
// blocking sockets, this method will block until the connection is accepted
|
* until the connection is accepted by the server.
|
||||||
// by the server.
|
*/
|
||||||
int connectToServer();
|
int connectToServer();
|
||||||
|
protected:
|
||||||
// Client needs to recreate the socket when a connection is broken because
|
/**
|
||||||
// connect can only be called successfully once.
|
* Client needs to recreate the socket when a connection is broken because
|
||||||
|
* connect can only be called successfully once.
|
||||||
|
*/
|
||||||
virtual void onFailedConnection(int sockfd);
|
virtual void onFailedConnection(int sockfd);
|
||||||
private:
|
private:
|
||||||
sockaddr_in fServerAddr;
|
sockaddr_in fServerAddr;
|
@ -2,9 +2,9 @@
|
|||||||
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10">
|
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10">
|
||||||
<data>
|
<data>
|
||||||
<int key="IBDocument.SystemTarget">1060</int>
|
<int key="IBDocument.SystemTarget">1060</int>
|
||||||
<string key="IBDocument.SystemVersion">10J3250</string>
|
<string key="IBDocument.SystemVersion">10K540</string>
|
||||||
<string key="IBDocument.InterfaceBuilderVersion">851</string>
|
<string key="IBDocument.InterfaceBuilderVersion">851</string>
|
||||||
<string key="IBDocument.AppKitVersion">1038.35</string>
|
<string key="IBDocument.AppKitVersion">1038.36</string>
|
||||||
<string key="IBDocument.HIToolboxVersion">461.00</string>
|
<string key="IBDocument.HIToolboxVersion">461.00</string>
|
||||||
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
||||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
@ -12,7 +12,9 @@
|
|||||||
</object>
|
</object>
|
||||||
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
|
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<integer value="632"/>
|
||||||
<integer value="533"/>
|
<integer value="533"/>
|
||||||
|
<integer value="24"/>
|
||||||
</object>
|
</object>
|
||||||
<object class="NSArray" key="IBDocument.PluginDependencies">
|
<object class="NSArray" key="IBDocument.PluginDependencies">
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
@ -1326,6 +1328,33 @@
|
|||||||
<object class="NSCustomView" id="322594744">
|
<object class="NSCustomView" id="322594744">
|
||||||
<reference key="NSNextResponder" ref="439893737"/>
|
<reference key="NSNextResponder" ref="439893737"/>
|
||||||
<int key="NSvFlags">274</int>
|
<int key="NSvFlags">274</int>
|
||||||
|
<object class="NSMutableArray" key="NSSubviews">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<object class="NSButton" id="215613538">
|
||||||
|
<reference key="NSNextResponder" ref="322594744"/>
|
||||||
|
<int key="NSvFlags">268</int>
|
||||||
|
<string key="NSFrame">{{362, 312}, {96, 32}}</string>
|
||||||
|
<reference key="NSSuperview" ref="322594744"/>
|
||||||
|
<bool key="NSEnabled">YES</bool>
|
||||||
|
<object class="NSButtonCell" key="NSCell" id="406327166">
|
||||||
|
<int key="NSCellFlags">67239424</int>
|
||||||
|
<int key="NSCellFlags2">134217728</int>
|
||||||
|
<string key="NSContents">Button</string>
|
||||||
|
<object class="NSFont" key="NSSupport" id="109605427">
|
||||||
|
<string key="NSName">LucidaGrande</string>
|
||||||
|
<double key="NSSize">13</double>
|
||||||
|
<int key="NSfFlags">1044</int>
|
||||||
|
</object>
|
||||||
|
<reference key="NSControlView" ref="215613538"/>
|
||||||
|
<int key="NSButtonFlags">-2038284033</int>
|
||||||
|
<int key="NSButtonFlags2">129</int>
|
||||||
|
<string key="NSAlternateContents"/>
|
||||||
|
<string key="NSKeyEquivalent"/>
|
||||||
|
<int key="NSPeriodicDelay">200</int>
|
||||||
|
<int key="NSPeriodicInterval">25</int>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
<string key="NSFrameSize">{480, 360}</string>
|
<string key="NSFrameSize">{480, 360}</string>
|
||||||
<reference key="NSSuperview" ref="439893737"/>
|
<reference key="NSSuperview" ref="439893737"/>
|
||||||
<string key="NSClassName">SkNSView</string>
|
<string key="NSClassName">SkNSView</string>
|
||||||
@ -1343,6 +1372,194 @@
|
|||||||
<object class="NSCustomObject" id="755631768">
|
<object class="NSCustomObject" id="755631768">
|
||||||
<string key="NSClassName">NSFontManager</string>
|
<string key="NSClassName">NSFontManager</string>
|
||||||
</object>
|
</object>
|
||||||
|
<object class="NSCustomView" id="758604943">
|
||||||
|
<reference key="NSNextResponder"/>
|
||||||
|
<int key="NSvFlags">256</int>
|
||||||
|
<object class="NSMutableArray" key="NSSubviews">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<object class="NSScrollView" id="1038370525">
|
||||||
|
<reference key="NSNextResponder" ref="758604943"/>
|
||||||
|
<int key="NSvFlags">274</int>
|
||||||
|
<object class="NSMutableArray" key="NSSubviews">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<object class="NSClipView" id="250930136">
|
||||||
|
<reference key="NSNextResponder" ref="1038370525"/>
|
||||||
|
<int key="NSvFlags">2304</int>
|
||||||
|
<object class="NSMutableArray" key="NSSubviews">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<object class="NSTableView" id="429436769">
|
||||||
|
<reference key="NSNextResponder" ref="250930136"/>
|
||||||
|
<int key="NSvFlags">256</int>
|
||||||
|
<string key="NSFrameSize">{241, 301}</string>
|
||||||
|
<reference key="NSSuperview" ref="250930136"/>
|
||||||
|
<bool key="NSEnabled">YES</bool>
|
||||||
|
<object class="_NSCornerView" key="NSCornerView">
|
||||||
|
<nil key="NSNextResponder"/>
|
||||||
|
<int key="NSvFlags">-2147483392</int>
|
||||||
|
<string key="NSFrame">{{224, 0}, {16, 17}}</string>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableArray" key="NSTableColumns">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<object class="NSTableColumn" id="691918008">
|
||||||
|
<double key="NSWidth">100</double>
|
||||||
|
<double key="NSMinWidth">40</double>
|
||||||
|
<double key="NSMaxWidth">1000</double>
|
||||||
|
<object class="NSTableHeaderCell" key="NSHeaderCell">
|
||||||
|
<int key="NSCellFlags">75628096</int>
|
||||||
|
<int key="NSCellFlags2">2048</int>
|
||||||
|
<string key="NSContents"/>
|
||||||
|
<object class="NSFont" key="NSSupport" id="26">
|
||||||
|
<string key="NSName">LucidaGrande</string>
|
||||||
|
<double key="NSSize">11</double>
|
||||||
|
<int key="NSfFlags">3100</int>
|
||||||
|
</object>
|
||||||
|
<object class="NSColor" key="NSBackgroundColor" id="805714581">
|
||||||
|
<int key="NSColorSpace">3</int>
|
||||||
|
<bytes key="NSWhite">MC4zMzMzMzI5ODU2AA</bytes>
|
||||||
|
</object>
|
||||||
|
<object class="NSColor" key="NSTextColor" id="372600372">
|
||||||
|
<int key="NSColorSpace">6</int>
|
||||||
|
<string key="NSCatalogName">System</string>
|
||||||
|
<string key="NSColorName">headerTextColor</string>
|
||||||
|
<object class="NSColor" key="NSColor" id="1032326875">
|
||||||
|
<int key="NSColorSpace">3</int>
|
||||||
|
<bytes key="NSWhite">MAA</bytes>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="NSTextFieldCell" key="NSDataCell" id="241301801">
|
||||||
|
<int key="NSCellFlags">337772096</int>
|
||||||
|
<int key="NSCellFlags2">2048</int>
|
||||||
|
<string key="NSContents">Text Cell</string>
|
||||||
|
<reference key="NSSupport" ref="109605427"/>
|
||||||
|
<reference key="NSControlView" ref="429436769"/>
|
||||||
|
<object class="NSColor" key="NSBackgroundColor" id="598476436">
|
||||||
|
<int key="NSColorSpace">6</int>
|
||||||
|
<string key="NSCatalogName">System</string>
|
||||||
|
<string key="NSColorName">controlBackgroundColor</string>
|
||||||
|
<object class="NSColor" key="NSColor">
|
||||||
|
<int key="NSColorSpace">3</int>
|
||||||
|
<bytes key="NSWhite">MC42NjY2NjY2ODY1AA</bytes>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="NSColor" key="NSTextColor" id="1018211721">
|
||||||
|
<int key="NSColorSpace">6</int>
|
||||||
|
<string key="NSCatalogName">System</string>
|
||||||
|
<string key="NSColorName">controlTextColor</string>
|
||||||
|
<reference key="NSColor" ref="1032326875"/>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<int key="NSResizingMask">3</int>
|
||||||
|
<bool key="NSIsResizeable">YES</bool>
|
||||||
|
<bool key="NSIsEditable">YES</bool>
|
||||||
|
<reference key="NSTableView" ref="429436769"/>
|
||||||
|
</object>
|
||||||
|
<object class="NSTableColumn" id="394988372">
|
||||||
|
<double key="NSWidth">135</double>
|
||||||
|
<double key="NSMinWidth">40</double>
|
||||||
|
<double key="NSMaxWidth">1000</double>
|
||||||
|
<object class="NSTableHeaderCell" key="NSHeaderCell">
|
||||||
|
<int key="NSCellFlags">75628096</int>
|
||||||
|
<int key="NSCellFlags2">2048</int>
|
||||||
|
<string key="NSContents"/>
|
||||||
|
<reference key="NSSupport" ref="26"/>
|
||||||
|
<reference key="NSBackgroundColor" ref="805714581"/>
|
||||||
|
<reference key="NSTextColor" ref="372600372"/>
|
||||||
|
</object>
|
||||||
|
<object class="NSTextFieldCell" key="NSDataCell" id="878937020">
|
||||||
|
<int key="NSCellFlags">337772096</int>
|
||||||
|
<int key="NSCellFlags2">2048</int>
|
||||||
|
<string key="NSContents">Text Cell</string>
|
||||||
|
<reference key="NSSupport" ref="109605427"/>
|
||||||
|
<reference key="NSControlView" ref="429436769"/>
|
||||||
|
<reference key="NSBackgroundColor" ref="598476436"/>
|
||||||
|
<reference key="NSTextColor" ref="1018211721"/>
|
||||||
|
</object>
|
||||||
|
<int key="NSResizingMask">3</int>
|
||||||
|
<bool key="NSIsResizeable">YES</bool>
|
||||||
|
<bool key="NSIsEditable">YES</bool>
|
||||||
|
<reference key="NSTableView" ref="429436769"/>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<double key="NSIntercellSpacingWidth">3</double>
|
||||||
|
<double key="NSIntercellSpacingHeight">2</double>
|
||||||
|
<object class="NSColor" key="NSBackgroundColor">
|
||||||
|
<int key="NSColorSpace">3</int>
|
||||||
|
<bytes key="NSWhite">MQA</bytes>
|
||||||
|
</object>
|
||||||
|
<object class="NSColor" key="NSGridColor">
|
||||||
|
<int key="NSColorSpace">6</int>
|
||||||
|
<string key="NSCatalogName">System</string>
|
||||||
|
<string key="NSColorName">gridColor</string>
|
||||||
|
<object class="NSColor" key="NSColor">
|
||||||
|
<int key="NSColorSpace">3</int>
|
||||||
|
<bytes key="NSWhite">MC41AA</bytes>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<double key="NSRowHeight">17</double>
|
||||||
|
<int key="NSTvFlags">-700448768</int>
|
||||||
|
<reference key="NSDelegate"/>
|
||||||
|
<reference key="NSDataSource"/>
|
||||||
|
<int key="NSGridStyleMask">1</int>
|
||||||
|
<int key="NSColumnAutoresizingStyle">4</int>
|
||||||
|
<int key="NSDraggingSourceMaskForLocal">15</int>
|
||||||
|
<int key="NSDraggingSourceMaskForNonLocal">0</int>
|
||||||
|
<bool key="NSAllowsTypeSelect">YES</bool>
|
||||||
|
<int key="NSTableViewDraggingDestinationStyle">0</int>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<string key="NSFrame">{{1, 1}, {241, 301}}</string>
|
||||||
|
<reference key="NSSuperview" ref="1038370525"/>
|
||||||
|
<reference key="NSNextKeyView" ref="429436769"/>
|
||||||
|
<reference key="NSDocView" ref="429436769"/>
|
||||||
|
<reference key="NSBGColor" ref="598476436"/>
|
||||||
|
<int key="NScvFlags">4</int>
|
||||||
|
</object>
|
||||||
|
<object class="NSScroller" id="617550661">
|
||||||
|
<reference key="NSNextResponder" ref="1038370525"/>
|
||||||
|
<int key="NSvFlags">-2147483392</int>
|
||||||
|
<string key="NSFrame">{{317, 1}, {15, 574}}</string>
|
||||||
|
<reference key="NSSuperview" ref="1038370525"/>
|
||||||
|
<reference key="NSTarget" ref="1038370525"/>
|
||||||
|
<string key="NSAction">_doScroller:</string>
|
||||||
|
<double key="NSPercent">0.95370370149612427</double>
|
||||||
|
</object>
|
||||||
|
<object class="NSScroller" id="977018641">
|
||||||
|
<reference key="NSNextResponder" ref="1038370525"/>
|
||||||
|
<int key="NSvFlags">-2147483392</int>
|
||||||
|
<string key="NSFrame">{{1, 263}, {157, 15}}</string>
|
||||||
|
<reference key="NSSuperview" ref="1038370525"/>
|
||||||
|
<int key="NSsFlags">1</int>
|
||||||
|
<reference key="NSTarget" ref="1038370525"/>
|
||||||
|
<string key="NSAction">_doScroller:</string>
|
||||||
|
<double key="NSPercent">0.98996657133102417</double>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<string key="NSFrameSize">{243, 303}</string>
|
||||||
|
<reference key="NSSuperview" ref="758604943"/>
|
||||||
|
<reference key="NSNextKeyView" ref="250930136"/>
|
||||||
|
<int key="NSsFlags">562</int>
|
||||||
|
<reference key="NSVScroller" ref="617550661"/>
|
||||||
|
<reference key="NSHScroller" ref="977018641"/>
|
||||||
|
<reference key="NSContentView" ref="250930136"/>
|
||||||
|
<bytes key="NSScrollAmts">QSAAAEEgAABBmAAAQZgAAA</bytes>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<string key="NSFrameSize">{243, 303}</string>
|
||||||
|
<reference key="NSSuperview"/>
|
||||||
|
<string key="NSClassName">NSView</string>
|
||||||
|
</object>
|
||||||
|
<object class="NSDrawer" id="764451088">
|
||||||
|
<nil key="NSNextResponder"/>
|
||||||
|
<string key="NSContentSize">{200, 100}</string>
|
||||||
|
<string key="NSMinContentSize">{0, 0}</string>
|
||||||
|
<string key="NSMaxContentSize">{10000, 10000}</string>
|
||||||
|
<int key="NSPreferredEdge">2</int>
|
||||||
|
<double key="NSLeadingOffset">0.0</double>
|
||||||
|
<double key="NSTrailingOffset">15</double>
|
||||||
|
<nil key="NSParentWindow"/>
|
||||||
|
<nil key="NSDelegate"/>
|
||||||
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBObjectContainer" key="IBDocument.Objects">
|
<object class="IBObjectContainer" key="IBDocument.Objects">
|
||||||
<object class="NSMutableArray" key="connectionRecords">
|
<object class="NSMutableArray" key="connectionRecords">
|
||||||
@ -1907,14 +2124,6 @@
|
|||||||
</object>
|
</object>
|
||||||
<int key="connectionID">493</int>
|
<int key="connectionID">493</int>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBOutletConnection" key="connection">
|
|
||||||
<string key="label">delegate</string>
|
|
||||||
<reference key="source" ref="1021"/>
|
|
||||||
<reference key="destination" ref="976324537"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">495</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
<object class="IBConnectionRecord">
|
||||||
<object class="IBActionConnection" key="connection">
|
<object class="IBActionConnection" key="connection">
|
||||||
<string key="label">alignCenter:</string>
|
<string key="label">alignCenter:</string>
|
||||||
@ -2021,19 +2230,27 @@
|
|||||||
</object>
|
</object>
|
||||||
<object class="IBConnectionRecord">
|
<object class="IBConnectionRecord">
|
||||||
<object class="IBOutletConnection" key="connection">
|
<object class="IBOutletConnection" key="connection">
|
||||||
<string key="label">fView</string>
|
<string key="label">contentView</string>
|
||||||
<reference key="source" ref="972006081"/>
|
<reference key="source" ref="764451088"/>
|
||||||
<reference key="destination" ref="322594744"/>
|
<reference key="destination" ref="758604943"/>
|
||||||
</object>
|
</object>
|
||||||
<int key="connectionID">535</int>
|
<int key="connectionID">542</int>
|
||||||
|
</object>
|
||||||
|
<object class="IBConnectionRecord">
|
||||||
|
<object class="IBActionConnection" key="connection">
|
||||||
|
<string key="label">toggle:</string>
|
||||||
|
<reference key="source" ref="764451088"/>
|
||||||
|
<reference key="destination" ref="215613538"/>
|
||||||
|
</object>
|
||||||
|
<int key="connectionID">649</int>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBConnectionRecord">
|
<object class="IBConnectionRecord">
|
||||||
<object class="IBOutletConnection" key="connection">
|
<object class="IBOutletConnection" key="connection">
|
||||||
<string key="label">window</string>
|
<string key="label">parentWindow</string>
|
||||||
<reference key="source" ref="976324537"/>
|
<reference key="source" ref="764451088"/>
|
||||||
<reference key="destination" ref="972006081"/>
|
<reference key="destination" ref="972006081"/>
|
||||||
</object>
|
</object>
|
||||||
<int key="connectionID">536</int>
|
<int key="connectionID">650</int>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
<object class="IBMutableOrderedSet" key="objectRecords">
|
||||||
@ -3085,8 +3302,100 @@
|
|||||||
<object class="IBObjectRecord">
|
<object class="IBObjectRecord">
|
||||||
<int key="objectID">533</int>
|
<int key="objectID">533</int>
|
||||||
<reference key="object" ref="322594744"/>
|
<reference key="object" ref="322594744"/>
|
||||||
|
<object class="NSMutableArray" key="children">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<reference ref="215613538"/>
|
||||||
|
</object>
|
||||||
<reference key="parent" ref="439893737"/>
|
<reference key="parent" ref="439893737"/>
|
||||||
</object>
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">538</int>
|
||||||
|
<reference key="object" ref="758604943"/>
|
||||||
|
<object class="NSMutableArray" key="children">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<reference ref="1038370525"/>
|
||||||
|
</object>
|
||||||
|
<reference key="parent" ref="0"/>
|
||||||
|
<string key="objectName">Drawer Content View</string>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">539</int>
|
||||||
|
<reference key="object" ref="764451088"/>
|
||||||
|
<reference key="parent" ref="0"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">629</int>
|
||||||
|
<reference key="object" ref="1038370525"/>
|
||||||
|
<object class="NSMutableArray" key="children">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<reference ref="617550661"/>
|
||||||
|
<reference ref="977018641"/>
|
||||||
|
<reference ref="429436769"/>
|
||||||
|
</object>
|
||||||
|
<reference key="parent" ref="758604943"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">630</int>
|
||||||
|
<reference key="object" ref="617550661"/>
|
||||||
|
<reference key="parent" ref="1038370525"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">631</int>
|
||||||
|
<reference key="object" ref="977018641"/>
|
||||||
|
<reference key="parent" ref="1038370525"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">632</int>
|
||||||
|
<reference key="object" ref="429436769"/>
|
||||||
|
<object class="NSMutableArray" key="children">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<reference ref="691918008"/>
|
||||||
|
<reference ref="394988372"/>
|
||||||
|
</object>
|
||||||
|
<reference key="parent" ref="1038370525"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">634</int>
|
||||||
|
<reference key="object" ref="691918008"/>
|
||||||
|
<object class="NSMutableArray" key="children">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<reference ref="241301801"/>
|
||||||
|
</object>
|
||||||
|
<reference key="parent" ref="429436769"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">637</int>
|
||||||
|
<reference key="object" ref="241301801"/>
|
||||||
|
<reference key="parent" ref="691918008"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">635</int>
|
||||||
|
<reference key="object" ref="394988372"/>
|
||||||
|
<object class="NSMutableArray" key="children">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<reference ref="878937020"/>
|
||||||
|
</object>
|
||||||
|
<reference key="parent" ref="429436769"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">636</int>
|
||||||
|
<reference key="object" ref="878937020"/>
|
||||||
|
<reference key="parent" ref="394988372"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">646</int>
|
||||||
|
<reference key="object" ref="215613538"/>
|
||||||
|
<object class="NSMutableArray" key="children">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<reference ref="406327166"/>
|
||||||
|
</object>
|
||||||
|
<reference key="parent" ref="322594744"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">647</int>
|
||||||
|
<reference key="object" ref="406327166"/>
|
||||||
|
<reference key="parent" ref="215613538"/>
|
||||||
|
</object>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<object class="NSMutableDictionary" key="flattenedProperties">
|
<object class="NSMutableDictionary" key="flattenedProperties">
|
||||||
@ -3312,6 +3621,9 @@
|
|||||||
<string>517.IBPluginDependency</string>
|
<string>517.IBPluginDependency</string>
|
||||||
<string>533.IBPluginDependency</string>
|
<string>533.IBPluginDependency</string>
|
||||||
<string>533.IBViewBoundsToFrameTransform</string>
|
<string>533.IBViewBoundsToFrameTransform</string>
|
||||||
|
<string>538.IBEditorWindowLastContentRect</string>
|
||||||
|
<string>538.IBPluginDependency</string>
|
||||||
|
<string>539.IBPluginDependency</string>
|
||||||
<string>56.IBPluginDependency</string>
|
<string>56.IBPluginDependency</string>
|
||||||
<string>56.ImportedFromIB2</string>
|
<string>56.ImportedFromIB2</string>
|
||||||
<string>57.IBEditorWindowLastContentRect</string>
|
<string>57.IBEditorWindowLastContentRect</string>
|
||||||
@ -3320,6 +3632,18 @@
|
|||||||
<string>57.editorWindowContentRectSynchronizationRect</string>
|
<string>57.editorWindowContentRectSynchronizationRect</string>
|
||||||
<string>58.IBPluginDependency</string>
|
<string>58.IBPluginDependency</string>
|
||||||
<string>58.ImportedFromIB2</string>
|
<string>58.ImportedFromIB2</string>
|
||||||
|
<string>629.IBPluginDependency</string>
|
||||||
|
<string>629.IBViewBoundsToFrameTransform</string>
|
||||||
|
<string>630.IBPluginDependency</string>
|
||||||
|
<string>631.IBPluginDependency</string>
|
||||||
|
<string>632.IBPluginDependency</string>
|
||||||
|
<string>634.IBPluginDependency</string>
|
||||||
|
<string>635.IBPluginDependency</string>
|
||||||
|
<string>636.IBPluginDependency</string>
|
||||||
|
<string>637.IBPluginDependency</string>
|
||||||
|
<string>646.IBPluginDependency</string>
|
||||||
|
<string>646.IBViewBoundsToFrameTransform</string>
|
||||||
|
<string>647.IBPluginDependency</string>
|
||||||
<string>72.IBPluginDependency</string>
|
<string>72.IBPluginDependency</string>
|
||||||
<string>72.ImportedFromIB2</string>
|
<string>72.ImportedFromIB2</string>
|
||||||
<string>73.IBPluginDependency</string>
|
<string>73.IBPluginDependency</string>
|
||||||
@ -3404,7 +3728,7 @@
|
|||||||
<integer value="1"/>
|
<integer value="1"/>
|
||||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<integer value="1"/>
|
<integer value="1"/>
|
||||||
<string>{{547, 180}, {254, 283}}</string>
|
<string>{{559, 374}, {254, 283}}</string>
|
||||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<integer value="1"/>
|
<integer value="1"/>
|
||||||
<string>{{187, 434}, {243, 243}}</string>
|
<string>{{187, 434}, {243, 243}}</string>
|
||||||
@ -3449,17 +3773,17 @@
|
|||||||
<integer value="1"/>
|
<integer value="1"/>
|
||||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<integer value="1"/>
|
<integer value="1"/>
|
||||||
<string>{{654, 239}, {194, 73}}</string>
|
<string>{{719, 584}, {194, 73}}</string>
|
||||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<integer value="1"/>
|
<integer value="1"/>
|
||||||
<string>{{525, 802}, {197, 73}}</string>
|
<string>{{525, 802}, {197, 73}}</string>
|
||||||
<string>{{380, 836}, {489, 20}}</string>
|
<string>{{366, 657}, {485, 20}}</string>
|
||||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<integer value="1"/>
|
<integer value="1"/>
|
||||||
<string>{74, 862}</string>
|
<string>{74, 862}</string>
|
||||||
<string>{{6, 978}, {478, 20}}</string>
|
<string>{{6, 978}, {478, 20}}</string>
|
||||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string>{{604, 269}, {231, 43}}</string>
|
<string>{{669, 614}, {231, 43}}</string>
|
||||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string>{{475, 832}, {234, 43}}</string>
|
<string>{{475, 832}, {234, 43}}</string>
|
||||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
@ -3478,16 +3802,16 @@
|
|||||||
<integer value="1"/>
|
<integer value="1"/>
|
||||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<integer value="1"/>
|
<integer value="1"/>
|
||||||
<string>{{358, 214}, {480, 360}}</string>
|
<string>{{83, 418}, {480, 360}}</string>
|
||||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string>{{358, 214}, {480, 360}}</string>
|
<string>{{83, 418}, {480, 360}}</string>
|
||||||
<integer value="1"/>
|
<integer value="1"/>
|
||||||
<string>{{33, 99}, {480, 360}}</string>
|
<string>{{33, 99}, {480, 360}}</string>
|
||||||
<string>{3.40282e+38, 3.40282e+38}</string>
|
<string>{3.40282e+38, 3.40282e+38}</string>
|
||||||
<string>{0, 0}</string>
|
<string>{0, 0}</string>
|
||||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string>{{591, 420}, {83, 43}}</string>
|
<string>{{603, 614}, {83, 43}}</string>
|
||||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string>{{523, 2}, {178, 283}}</string>
|
<string>{{523, 2}, {178, 283}}</string>
|
||||||
@ -3537,7 +3861,7 @@
|
|||||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string>{{725, 289}, {246, 23}}</string>
|
<string>{{790, 634}, {221, 23}}</string>
|
||||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
@ -3570,15 +3894,34 @@
|
|||||||
<object class="NSAffineTransform">
|
<object class="NSAffineTransform">
|
||||||
<bytes key="NSTransformStruct">AULIAABDAgAAA</bytes>
|
<bytes key="NSTransformStruct">AULIAABDAgAAA</bytes>
|
||||||
</object>
|
</object>
|
||||||
|
<string>{{136, 964}, {243, 303}}</string>
|
||||||
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<integer value="1"/>
|
<integer value="1"/>
|
||||||
<string>{{286, 129}, {275, 183}}</string>
|
<string>{{378, 474}, {250, 183}}</string>
|
||||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<integer value="1"/>
|
<integer value="1"/>
|
||||||
<string>{{23, 794}, {245, 183}}</string>
|
<string>{{23, 794}, {245, 183}}</string>
|
||||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<integer value="1"/>
|
<integer value="1"/>
|
||||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<object class="NSAffineTransform">
|
||||||
|
<bytes key="NSTransformStruct">P4AAAL+AAAAAAAAAxBNAAA</bytes>
|
||||||
|
</object>
|
||||||
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<object class="NSAffineTransform">
|
||||||
|
<bytes key="NSTransformStruct">P4AAAL+AAABDhgAAw6sAAA</bytes>
|
||||||
|
</object>
|
||||||
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<integer value="1"/>
|
<integer value="1"/>
|
||||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<integer value="1"/>
|
<integer value="1"/>
|
||||||
@ -3594,7 +3937,7 @@
|
|||||||
<integer value="1"/>
|
<integer value="1"/>
|
||||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<integer value="1"/>
|
<integer value="1"/>
|
||||||
<string>{{452, 109}, {196, 203}}</string>
|
<string>{{517, 454}, {196, 203}}</string>
|
||||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<integer value="1"/>
|
<integer value="1"/>
|
||||||
<string>{{145, 474}, {199, 203}}</string>
|
<string>{{145, 474}, {199, 203}}</string>
|
||||||
@ -3622,7 +3965,7 @@
|
|||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<nil key="sourceID"/>
|
<nil key="sourceID"/>
|
||||||
<int key="maxID">536</int>
|
<int key="maxID">650</int>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||||
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
|
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||||
@ -3630,9 +3973,20 @@
|
|||||||
<object class="IBPartialClassDescription">
|
<object class="IBPartialClassDescription">
|
||||||
<string key="className">SampleWindow</string>
|
<string key="className">SampleWindow</string>
|
||||||
<string key="superclassName">SkNSWindow</string>
|
<string key="superclassName">SkNSWindow</string>
|
||||||
|
<object class="NSMutableDictionary" key="outlets">
|
||||||
|
<string key="NS.key.0">fView</string>
|
||||||
|
<string key="NS.object.0">SkNSView</string>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
|
||||||
|
<string key="NS.key.0">fView</string>
|
||||||
|
<object class="IBToOneOutletInfo" key="NS.object.0">
|
||||||
|
<string key="name">fView</string>
|
||||||
|
<string key="candidateClassName">SkNSView</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
<string key="majorKey">IBProjectSource</string>
|
<string key="majorKey">IBProjectSource</string>
|
||||||
<string key="minorKey">SampleWindow.h</string>
|
<string key="minorKey">../../experimental/SimpleCocoaApp/SampleWindow.h</string>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBPartialClassDescription">
|
<object class="IBPartialClassDescription">
|
||||||
@ -3651,7 +4005,7 @@
|
|||||||
</object>
|
</object>
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
<string key="majorKey">IBProjectSource</string>
|
<string key="majorKey">IBProjectSource</string>
|
||||||
<string key="minorKey">SimpleCocoaAppDelegate.h</string>
|
<string key="minorKey">../../experimental/SimpleCocoaApp/SimpleCocoaAppDelegate.h</string>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBPartialClassDescription">
|
<object class="IBPartialClassDescription">
|
||||||
@ -3659,31 +4013,28 @@
|
|||||||
<string key="superclassName">NSView</string>
|
<string key="superclassName">NSView</string>
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
<string key="majorKey">IBProjectSource</string>
|
<string key="majorKey">IBProjectSource</string>
|
||||||
<string key="minorKey">SkNSView.h</string>
|
<string key="minorKey">../../experimental/SimpleCocoaApp/SkNSView.h</string>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBPartialClassDescription">
|
<object class="IBPartialClassDescription">
|
||||||
<string key="className">SkNSWindow</string>
|
<string key="className">SkNSWindow</string>
|
||||||
<string key="superclassName">NSWindow</string>
|
<string key="superclassName">NSWindow</string>
|
||||||
<object class="NSMutableDictionary" key="outlets">
|
|
||||||
<string key="NS.key.0">fView</string>
|
|
||||||
<string key="NS.object.0">SkNSView</string>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
|
|
||||||
<string key="NS.key.0">fView</string>
|
|
||||||
<object class="IBToOneOutletInfo" key="NS.object.0">
|
|
||||||
<string key="name">fView</string>
|
|
||||||
<string key="candidateClassName">SkNSView</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
<string key="majorKey">IBProjectSource</string>
|
<string key="majorKey">IBProjectSource</string>
|
||||||
<string key="minorKey">SkNSWindow.h</string>
|
<string key="minorKey">../../experimental/SimpleCocoaApp/SkNSWindow.h</string>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
|
<object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSActionCell</string>
|
||||||
|
<string key="superclassName">NSCell</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">AppKit.framework/Headers/NSActionCell.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
<object class="IBPartialClassDescription">
|
<object class="IBPartialClassDescription">
|
||||||
<string key="className">NSApplication</string>
|
<string key="className">NSApplication</string>
|
||||||
<string key="superclassName">NSResponder</string>
|
<string key="superclassName">NSResponder</string>
|
||||||
@ -3735,6 +4086,30 @@
|
|||||||
<string key="minorKey">AppKit.framework/Headers/NSBrowser.h</string>
|
<string key="minorKey">AppKit.framework/Headers/NSBrowser.h</string>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSButton</string>
|
||||||
|
<string key="superclassName">NSControl</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">AppKit.framework/Headers/NSButton.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSButtonCell</string>
|
||||||
|
<string key="superclassName">NSActionCell</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">AppKit.framework/Headers/NSButtonCell.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSCell</string>
|
||||||
|
<string key="superclassName">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">AppKit.framework/Headers/NSCell.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
<object class="IBPartialClassDescription">
|
<object class="IBPartialClassDescription">
|
||||||
<string key="className">NSControl</string>
|
<string key="className">NSControl</string>
|
||||||
<string key="superclassName">NSView</string>
|
<string key="superclassName">NSView</string>
|
||||||
@ -3872,6 +4247,14 @@
|
|||||||
<string key="minorKey">AppKit.framework/Headers/NSDocumentController.h</string>
|
<string key="minorKey">AppKit.framework/Headers/NSDocumentController.h</string>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSDrawer</string>
|
||||||
|
<string key="superclassName">NSResponder</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier" id="716270263">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">AppKit.framework/Headers/NSDrawer.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
<object class="IBPartialClassDescription">
|
<object class="IBPartialClassDescription">
|
||||||
<string key="className">NSFontManager</string>
|
<string key="className">NSFontManager</string>
|
||||||
<string key="superclassName">NSObject</string>
|
<string key="superclassName">NSObject</string>
|
||||||
@ -3880,14 +4263,6 @@
|
|||||||
<string key="minorKey">AppKit.framework/Headers/NSFontManager.h</string>
|
<string key="minorKey">AppKit.framework/Headers/NSFontManager.h</string>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSFormatter</string>
|
|
||||||
<string key="superclassName">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSFormatter.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
<object class="IBPartialClassDescription">
|
||||||
<string key="className">NSMatrix</string>
|
<string key="className">NSMatrix</string>
|
||||||
<string key="superclassName">NSControl</string>
|
<string key="superclassName">NSControl</string>
|
||||||
@ -4032,133 +4407,7 @@
|
|||||||
<string key="className">NSObject</string>
|
<string key="className">NSObject</string>
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSArchiver.h</string>
|
<string key="minorKey">PrintCore.framework/Headers/PDEPluginInterface.h</string>
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSClassDescription.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSError.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSObjectScripting.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSPortCoder.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSScriptClassDescription.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSScriptKeyValueCoding.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSScriptObjectSpecifiers.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSScriptWhoseTests.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSURLDownload.h</string>
|
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBPartialClassDescription">
|
<object class="IBPartialClassDescription">
|
||||||
@ -4176,6 +4425,30 @@
|
|||||||
<string key="minorKey">AppKit.framework/Headers/NSResponder.h</string>
|
<string key="minorKey">AppKit.framework/Headers/NSResponder.h</string>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSScrollView</string>
|
||||||
|
<string key="superclassName">NSView</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">AppKit.framework/Headers/NSScrollView.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSScroller</string>
|
||||||
|
<string key="superclassName">NSControl</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">AppKit.framework/Headers/NSScroller.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSTableColumn</string>
|
||||||
|
<string key="superclassName">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">AppKit.framework/Headers/NSTableColumn.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
<object class="IBPartialClassDescription">
|
<object class="IBPartialClassDescription">
|
||||||
<string key="className">NSTableView</string>
|
<string key="className">NSTableView</string>
|
||||||
<string key="superclassName">NSControl</string>
|
<string key="superclassName">NSControl</string>
|
||||||
@ -4189,6 +4462,14 @@
|
|||||||
<string key="minorKey">AppKit.framework/Headers/NSText.h</string>
|
<string key="minorKey">AppKit.framework/Headers/NSText.h</string>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSTextFieldCell</string>
|
||||||
|
<string key="superclassName">NSActionCell</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">AppKit.framework/Headers/NSTextFieldCell.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
<object class="IBPartialClassDescription">
|
<object class="IBPartialClassDescription">
|
||||||
<string key="className">NSTextView</string>
|
<string key="className">NSTextView</string>
|
||||||
<string key="superclassName">NSText</string>
|
<string key="superclassName">NSText</string>
|
||||||
@ -4222,10 +4503,7 @@
|
|||||||
</object>
|
</object>
|
||||||
<object class="IBPartialClassDescription">
|
<object class="IBPartialClassDescription">
|
||||||
<string key="className">NSWindow</string>
|
<string key="className">NSWindow</string>
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
<reference key="sourceIdentifier" ref="716270263"/>
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">AppKit.framework/Headers/NSDrawer.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
</object>
|
||||||
<object class="IBPartialClassDescription">
|
<object class="IBPartialClassDescription">
|
||||||
<string key="className">NSWindow</string>
|
<string key="className">NSWindow</string>
|
||||||
@ -4246,16 +4524,12 @@
|
|||||||
</object>
|
</object>
|
||||||
<int key="IBDocument.localizationMode">0</int>
|
<int key="IBDocument.localizationMode">0</int>
|
||||||
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string>
|
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string>
|
||||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
|
|
||||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
|
|
||||||
<integer value="1060" key="NS.object.0"/>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
|
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
|
||||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3</string>
|
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3</string>
|
||||||
<integer value="3000" key="NS.object.0"/>
|
<integer value="3000" key="NS.object.0"/>
|
||||||
</object>
|
</object>
|
||||||
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
||||||
<string key="IBDocument.LastKnownRelativeProjectPath">../SimpleCocoaApp.xcodeproj</string>
|
<string key="IBDocument.LastKnownRelativeProjectPath">../../../out/gyp/SimpleCocoaApp.xcodeproj</string>
|
||||||
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
||||||
<object class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
|
<object class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
#include "SkEvent.h"
|
#include "SkEvent.h"
|
||||||
#define SkEventClass @"SkEvenClass"
|
#define SkEventClass @"SkEvenClass"
|
||||||
@implementation SkEventNotifier
|
@implementation SkEventNotifier
|
||||||
//Overwritten from NSObject
|
|
||||||
- (id)init {
|
- (id)init {
|
||||||
self = [super init];
|
self = [super init];
|
||||||
if (self) {
|
if (self) {
|
||||||
@ -44,9 +43,12 @@
|
|||||||
@end
|
@end
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
void SkEvent::SignalNonEmptyQueue() {
|
void SkEvent::SignalNonEmptyQueue() {
|
||||||
//post a SkEventClass event to the default notification center
|
//post a SkEventClass event to the default notification queue
|
||||||
[[NSNotificationCenter defaultCenter] postNotificationName:SkEventClass
|
NSNotification* notification = [NSNotification notificationWithName:SkEventClass object:nil];
|
||||||
object:nil];
|
[[NSNotificationQueue defaultQueue] enqueueNotification:notification
|
||||||
|
postingStyle:NSPostWhenIdle
|
||||||
|
coalesceMask:NSNotificationNoCoalescing
|
||||||
|
forModes:nil];
|
||||||
}
|
}
|
||||||
|
|
||||||
void SkEvent::SignalQueueTimer(SkMSec delay) {
|
void SkEvent::SignalQueueTimer(SkMSec delay) {
|
||||||
|
@ -1,18 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2011 Google Inc.
|
|
||||||
*
|
|
||||||
* Use of this source code is governed by a BSD-style license that can be
|
|
||||||
* found in the LICENSE file.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import <UIKit/UIKit.h>
|
|
||||||
|
|
||||||
|
|
||||||
@interface SkAlertPrompt : UIAlertView {
|
|
||||||
UITextField *textField;
|
|
||||||
}
|
|
||||||
@property (nonatomic, retain) UITextField *textField;
|
|
||||||
|
|
||||||
- (NSString*)enteredText;
|
|
||||||
|
|
||||||
@end
|
|
@ -1,49 +0,0 @@
|
|||||||
//
|
|
||||||
// SkAlertPrompt.m
|
|
||||||
// iOSSampleApp
|
|
||||||
//
|
|
||||||
// Created by Yang Su on 7/6/11.
|
|
||||||
// Copyright 2011 Google Inc.
|
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
|
||||||
// found in the LICENSE file.
|
|
||||||
//
|
|
||||||
|
|
||||||
#import "SkAlertPrompt.h"
|
|
||||||
|
|
||||||
@implementation SkAlertPrompt
|
|
||||||
@synthesize textField;
|
|
||||||
|
|
||||||
- (id)initWithTitle:(NSString *)title
|
|
||||||
message:(NSString *)message
|
|
||||||
delegate:(id)delegate
|
|
||||||
cancelButtonTitle:(NSString *)cancelButtonTitle
|
|
||||||
otherButtonTitles:(NSString *)okayButtonTitle,... {
|
|
||||||
if (self = [super initWithTitle:title
|
|
||||||
message:message
|
|
||||||
delegate:delegate
|
|
||||||
cancelButtonTitle:cancelButtonTitle
|
|
||||||
otherButtonTitles:okayButtonTitle, nil]) {
|
|
||||||
self.textField = [[UITextField alloc]
|
|
||||||
initWithFrame:CGRectMake(12, 45, 260, 25)];
|
|
||||||
[self.textField setBackgroundColor:[UIColor whiteColor]];
|
|
||||||
textField.borderStyle = UITextBorderStyleLine;
|
|
||||||
[self addSubview:self.textField];
|
|
||||||
}
|
|
||||||
return self;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)show {
|
|
||||||
[textField becomeFirstResponder];
|
|
||||||
[super show];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSString *)enteredText {
|
|
||||||
return textField.text;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)dealloc {
|
|
||||||
[textField release];
|
|
||||||
[super dealloc];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
@ -36,7 +36,7 @@
|
|||||||
- (UITableViewCell*)createSlider:(NSString*)title min:(float)min max:(float)max default:(float)value;
|
- (UITableViewCell*)createSlider:(NSString*)title min:(float)min max:(float)max default:(float)value;
|
||||||
- (UITableViewCell*)createSwitch:(NSString*)title default:(BOOL)state;
|
- (UITableViewCell*)createSwitch:(NSString*)title default:(BOOL)state;
|
||||||
- (UITableViewCell*)createTriState:(NSString*)title default:(int)index;
|
- (UITableViewCell*)createTriState:(NSString*)title default:(int)index;
|
||||||
- (UITableViewCell*)createTextField:(NSString*)title default:(const char*)value;
|
- (UITableViewCell*)createTextField:(NSString*)title default:(NSString*)value;
|
||||||
- (UITableViewCell*)createList:(NSString*)title default:(NSString*)value;
|
- (UITableViewCell*)createList:(NSString*)title default:(NSString*)value;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
@ -70,22 +70,22 @@
|
|||||||
const SkOSMenu::Item* item = menu->getItem(i);
|
const SkOSMenu::Item* item = menu->getItem(i);
|
||||||
NSString* title = [NSString stringWithUTF8String:item->getLabel()];
|
NSString* title = [NSString stringWithUTF8String:item->getLabel()];
|
||||||
|
|
||||||
int index = 0;
|
|
||||||
NSArray* optionstrs = nil;
|
|
||||||
if (SkOSMenu::kList_Type == item->getType()) {
|
if (SkOSMenu::kList_Type == item->getType()) {
|
||||||
|
int value = 0;
|
||||||
SkOptionListItem* List = [[SkOptionListItem alloc] init];
|
SkOptionListItem* List = [[SkOptionListItem alloc] init];
|
||||||
//List.fCmdID = item->fOSCmd;
|
|
||||||
//List.getEvent() = item->getEvent();
|
|
||||||
List.fItem = item;
|
List.fItem = item;
|
||||||
List.fOptions = [[SkOptionListController alloc] initWithStyle:UITableViewStyleGrouped];
|
List.fOptions = [[SkOptionListController alloc] initWithStyle:UITableViewStyleGrouped];
|
||||||
|
|
||||||
NSArray* optionstrs = [[NSString stringWithUTF8String:item->getEvent()->findString(SkOSMenu::List_Items_Str)]
|
int count = 0;
|
||||||
componentsSeparatedByString:[NSString stringWithUTF8String:SkOSMenu::Delimiter]];
|
SkOSMenu::FindListItemCount(item->getEvent(), &count);
|
||||||
for (NSString* optionstr in optionstrs) {
|
SkString options[count];
|
||||||
[List.fOptions addOption:optionstr];
|
SkOSMenu::FindListItems(item->getEvent(), options);
|
||||||
}
|
for (int i = 0; i < count; ++i)
|
||||||
item->getEvent()->findS32(item->getSlotName(), &index);
|
[List.fOptions addOption:[NSString stringWithUTF8String:options[i].c_str()]];
|
||||||
List.fOptions.fSelectedIndex = index;
|
SkOSMenu::FindListIndex(item->getEvent(), item->getSlotName(), &value);
|
||||||
|
|
||||||
|
List.fOptions.fSelectedIndex = value;
|
||||||
List.fCell = [self createList:title
|
List.fCell = [self createList:title
|
||||||
default:[List.fOptions getSelectedOption]];
|
default:[List.fOptions getSelectedOption]];
|
||||||
List.fOptions.fParentCell = List.fCell;
|
List.fOptions.fParentCell = List.fCell;
|
||||||
@ -95,32 +95,36 @@
|
|||||||
else {
|
else {
|
||||||
SkOptionItem* option = [[SkOptionItem alloc] init];
|
SkOptionItem* option = [[SkOptionItem alloc] init];
|
||||||
option.fItem = item;
|
option.fItem = item;
|
||||||
|
|
||||||
bool state = false;
|
bool state = false;
|
||||||
|
SkString str;
|
||||||
|
SkOSMenu::TriState tristate;
|
||||||
switch (item->getType()) {
|
switch (item->getType()) {
|
||||||
case SkOSMenu::kAction_Type:
|
case SkOSMenu::kAction_Type:
|
||||||
option.fCell = [self createAction:title];
|
option.fCell = [self createAction:title];
|
||||||
break;
|
break;
|
||||||
case SkOSMenu::kSwitch_Type:
|
case SkOSMenu::kSwitch_Type:
|
||||||
item->getEvent()->findBool(item->getSlotName(), &state);
|
SkOSMenu::FindSwitchState(item->getEvent(), item->getSlotName(), &state);
|
||||||
option.fCell = [self createSwitch:title default:(BOOL)state];
|
option.fCell = [self createSwitch:title default:(BOOL)state];
|
||||||
break;
|
break;
|
||||||
case SkOSMenu::kSlider_Type:
|
case SkOSMenu::kSlider_Type:
|
||||||
SkScalar min, max, value;
|
SkScalar min, max, value;
|
||||||
item->getEvent()->findScalar(SkOSMenu::Slider_Min_Scalar, &min);
|
SkOSMenu::FindSliderValue(item->getEvent(), item->getSlotName(), &value);
|
||||||
item->getEvent()->findScalar(SkOSMenu::Slider_Max_Scalar, &max);
|
SkOSMenu::FindSliderMin(item->getEvent(), &min);
|
||||||
item->getEvent()->findScalar(item->getSlotName(), &value);
|
SkOSMenu::FindSliderMax(item->getEvent(), &max);
|
||||||
option.fCell = [self createSlider:title
|
option.fCell = [self createSlider:title
|
||||||
min:min
|
min:min
|
||||||
max:max
|
max:max
|
||||||
default:value];
|
default:value];
|
||||||
break;
|
break;
|
||||||
case SkOSMenu::kTriState_Type:
|
case SkOSMenu::kTriState_Type:
|
||||||
item->getEvent()->findS32(item->getSlotName(), &index);
|
SkOSMenu::FindTriState(item->getEvent(), item->getSlotName(), &tristate);
|
||||||
option.fCell = [self createTriState:title default:index];
|
option.fCell = [self createTriState:title default:(int)tristate];
|
||||||
break;
|
break;
|
||||||
case SkOSMenu::kTextField_Type:
|
case SkOSMenu::kTextField_Type:
|
||||||
|
SkOSMenu::FindText(item->getEvent(), item->getSlotName(), &str);
|
||||||
option.fCell = [self createTextField:title
|
option.fCell = [self createTextField:title
|
||||||
default:item->getEvent()->findString(item->getSlotName())];
|
default:[NSString stringWithUTF8String:str.c_str()]];
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
@ -225,7 +229,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
- (UITableViewCell*)createTextField:(NSString*)title
|
- (UITableViewCell*)createTextField:(NSString*)title
|
||||||
default:(const char*)value {
|
default:(NSString*)value {
|
||||||
UITableViewCell* cell = [[[UITableViewCell alloc]
|
UITableViewCell* cell = [[[UITableViewCell alloc]
|
||||||
initWithStyle:UITableViewCellStyleValue1
|
initWithStyle:UITableViewCellStyleValue1
|
||||||
reuseIdentifier:nil] autorelease];
|
reuseIdentifier:nil] autorelease];
|
||||||
@ -236,7 +240,7 @@
|
|||||||
textField.adjustsFontSizeToFitWidth = YES;
|
textField.adjustsFontSizeToFitWidth = YES;
|
||||||
textField.textAlignment = UITextAlignmentRight;
|
textField.textAlignment = UITextAlignmentRight;
|
||||||
textField.textColor = cell.detailTextLabel.textColor;
|
textField.textColor = cell.detailTextLabel.textColor;
|
||||||
textField.placeholder = [NSString stringWithUTF8String:value];
|
textField.placeholder = value;
|
||||||
textField.returnKeyType = UIReturnKeyDone;
|
textField.returnKeyType = UIReturnKeyDone;
|
||||||
[textField addTarget:self
|
[textField addTarget:self
|
||||||
action:@selector(valueChanged:)
|
action:@selector(valueChanged:)
|
||||||
@ -280,7 +284,7 @@
|
|||||||
|
|
||||||
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
|
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||||
UITableViewCell* cell = [tableView cellForRowAtIndexPath:indexPath];
|
UITableViewCell* cell = [tableView cellForRowAtIndexPath:indexPath];
|
||||||
id item = [fItems objectAtIndex:indexPath.row];
|
id item = [fItems objectAtIndex:[self convertPathToIndex:indexPath]];
|
||||||
|
|
||||||
if ([item isKindOfClass:[SkOptionListItem class]]) {
|
if ([item isKindOfClass:[SkOptionListItem class]]) {
|
||||||
SkOptionListItem* list = (SkOptionListItem*)item;
|
SkOptionListItem* list = (SkOptionListItem*)item;
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
#import "SkAlertPrompt.h"
|
#import "SkAlertPrompt.h"
|
||||||
#import "SkUIDetailViewController.h"
|
#import "SkUIDetailViewController.h"
|
||||||
#include "SampleApp.h"
|
#include "SampleApp.h"
|
||||||
#include "SkApplication.h"
|
|
||||||
#include "SkCGUtils.h"
|
#include "SkCGUtils.h"
|
||||||
#include "SkData.h"
|
#include "SkData.h"
|
||||||
#include "SkOSMenu.h"
|
#include "SkOSMenu.h"
|
||||||
@ -19,10 +18,23 @@
|
|||||||
|
|
||||||
[self createButtons];
|
[self createButtons];
|
||||||
|
|
||||||
|
UISwipeGestureRecognizer* swipe = [[UISwipeGestureRecognizer alloc]
|
||||||
|
initWithTarget:self
|
||||||
|
action:@selector(handleSwipe:)];
|
||||||
|
[self.navigationController.navigationBar addGestureRecognizer:swipe];
|
||||||
|
[swipe release];
|
||||||
|
swipe = [[UISwipeGestureRecognizer alloc]
|
||||||
|
initWithTarget:self
|
||||||
|
action:@selector(handleSwipe:)];
|
||||||
|
swipe.direction = UISwipeGestureRecognizerDirectionLeft;
|
||||||
|
[self.navigationController.navigationBar addGestureRecognizer:swipe];
|
||||||
|
[swipe release];
|
||||||
|
|
||||||
fOptionsController = [[SkOptionsTableViewController alloc]
|
fOptionsController = [[SkOptionsTableViewController alloc]
|
||||||
initWithStyle:UITableViewStyleGrouped];
|
initWithStyle:UITableViewStyleGrouped];
|
||||||
fSkUIView.fOptionsDelegate = fOptionsController;
|
fSkUIView.fOptionsDelegate = fOptionsController;
|
||||||
[fOptionsController registerMenus:fWind->getMenus()];
|
[fOptionsController registerMenus:fWind->getMenus()];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)createButtons {
|
- (void)createButtons {
|
||||||
@ -62,6 +74,13 @@
|
|||||||
[toolbar release];
|
[toolbar release];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (void)handleSwipe:(UISwipeGestureRecognizer *)sender {
|
||||||
|
if (UISwipeGestureRecognizerDirectionRight == sender.direction)
|
||||||
|
fWind->previousSample();
|
||||||
|
else
|
||||||
|
fWind->nextSample();
|
||||||
|
}
|
||||||
|
|
||||||
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
|
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
|
||||||
return YES; // Overriden to allow auto rotation for any direction
|
return YES; // Overriden to allow auto rotation for any direction
|
||||||
}
|
}
|
||||||
@ -71,7 +90,6 @@
|
|||||||
[fOptionsButton release];
|
[fOptionsButton release];
|
||||||
[fPopOverController release];
|
[fPopOverController release];
|
||||||
[fOptionsController release];
|
[fOptionsController release];
|
||||||
application_term();
|
|
||||||
[super dealloc];
|
[super dealloc];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -15,7 +15,8 @@
|
|||||||
#include "SkMatrix.h"
|
#include "SkMatrix.h"
|
||||||
#include "FlingState.h"
|
#include "FlingState.h"
|
||||||
#include "SampleApp.h"
|
#include "SampleApp.h"
|
||||||
#include "SkiOSDeviceManager.h"
|
|
||||||
|
class SkiOSDeviceManager;
|
||||||
class SkOSWindow;
|
class SkOSWindow;
|
||||||
class SkEvent;
|
class SkEvent;
|
||||||
struct FPSState;
|
struct FPSState;
|
||||||
@ -30,7 +31,7 @@ struct FPSState;
|
|||||||
|
|
||||||
@interface SkUIView : UIView {
|
@interface SkUIView : UIView {
|
||||||
BOOL fRedrawRequestPending;
|
BOOL fRedrawRequestPending;
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
EAGLContext* fContext;
|
EAGLContext* fContext;
|
||||||
GLuint fRenderbuffer;
|
GLuint fRenderbuffer;
|
||||||
|
@ -15,71 +15,82 @@
|
|||||||
#include "GrGLInterface.h"
|
#include "GrGLInterface.h"
|
||||||
#include "SkGpuDevice.h"
|
#include "SkGpuDevice.h"
|
||||||
#include "SkCGUtils.h"
|
#include "SkCGUtils.h"
|
||||||
|
class SkiOSDeviceManager : public SampleWindow::DeviceManager {
|
||||||
SkiOSDeviceManager::SkiOSDeviceManager() {
|
public:
|
||||||
fGrContext = NULL;
|
SkiOSDeviceManager() {
|
||||||
fGrRenderTarget = NULL;
|
fGrContext = NULL;
|
||||||
usingGL = false;
|
fGrRenderTarget = NULL;
|
||||||
}
|
|
||||||
|
|
||||||
SkiOSDeviceManager::~SkiOSDeviceManager() {
|
|
||||||
SkSafeUnref(fGrContext);
|
|
||||||
SkSafeUnref(fGrRenderTarget);
|
|
||||||
}
|
|
||||||
|
|
||||||
void SkiOSDeviceManager::init(SampleWindow* win) {
|
|
||||||
win->attachGL();
|
|
||||||
if (NULL == fGrContext) {
|
|
||||||
#ifdef USE_GL_1
|
|
||||||
fGrContext = GrContext::Create(kOpenGL_Fixed_GrEngine, NULL);
|
|
||||||
#else
|
|
||||||
fGrContext = GrContext::Create(kOpenGL_Shaders_GrEngine, NULL);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
fGrRenderTarget = SkGpuDevice::Current3DApiRenderTarget();
|
|
||||||
if (NULL == fGrContext) {
|
|
||||||
SkDebugf("Failed to setup 3D");
|
|
||||||
win->detachGL();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
bool SkiOSDeviceManager::supportsDeviceType(SampleWindow::DeviceType dType) {
|
|
||||||
switch (dType) {
|
|
||||||
case SampleWindow::kRaster_DeviceType:
|
|
||||||
case SampleWindow::kPicture_DeviceType: // fallthru
|
|
||||||
return true;
|
|
||||||
case SampleWindow::kGPU_DeviceType:
|
|
||||||
return NULL != fGrContext;
|
|
||||||
default:
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
bool SkiOSDeviceManager::prepareCanvas(SampleWindow::DeviceType dType,
|
|
||||||
SkCanvas* canvas,
|
|
||||||
SampleWindow* win) {
|
|
||||||
if (SampleWindow::kGPU_DeviceType == dType) {
|
|
||||||
canvas->setDevice(new SkGpuDevice(fGrContext, fGrRenderTarget))->unref();
|
|
||||||
usingGL = true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
//The clip needs to be applied with a device attached to the canvas
|
|
||||||
canvas->setBitmapDevice(win->getBitmap());
|
|
||||||
usingGL = false;
|
usingGL = false;
|
||||||
}
|
}
|
||||||
return true;
|
virtual ~SkiOSDeviceManager() {
|
||||||
}
|
SkSafeUnref(fGrContext);
|
||||||
|
SkSafeUnref(fGrRenderTarget);
|
||||||
void SkiOSDeviceManager::publishCanvas(SampleWindow::DeviceType dType,
|
|
||||||
SkCanvas* canvas,
|
|
||||||
SampleWindow* win) {
|
|
||||||
if (SampleWindow::kGPU_DeviceType == dType) {
|
|
||||||
fGrContext->flush();
|
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
//CGContextRef cg = UIGraphicsGetCurrentContext();
|
virtual void init(SampleWindow* win) {
|
||||||
//SkCGDrawBitmap(cg, win->getBitmap(), 0, 0);
|
win->attachGL();
|
||||||
|
if (NULL == fGrContext) {
|
||||||
|
#ifdef USE_GL_1
|
||||||
|
fGrContext = GrContext::Create(kOpenGL_Fixed_GrEngine, NULL);
|
||||||
|
#else
|
||||||
|
fGrContext = GrContext::Create(kOpenGL_Shaders_GrEngine, NULL);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
fGrRenderTarget = SkGpuDevice::Current3DApiRenderTarget();
|
||||||
|
if (NULL == fGrContext) {
|
||||||
|
SkDebugf("Failed to setup 3D");
|
||||||
|
win->detachGL();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual bool supportsDeviceType(SampleWindow::DeviceType dType) {
|
||||||
|
switch (dType) {
|
||||||
|
case SampleWindow::kRaster_DeviceType:
|
||||||
|
case SampleWindow::kPicture_DeviceType: // fallthru
|
||||||
|
return true;
|
||||||
|
case SampleWindow::kGPU_DeviceType:
|
||||||
|
return NULL != fGrContext;
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
win->presentGL();
|
virtual bool prepareCanvas(SampleWindow::DeviceType dType,
|
||||||
}
|
SkCanvas* canvas,
|
||||||
|
SampleWindow* win) {
|
||||||
|
if (SampleWindow::kGPU_DeviceType == dType) {
|
||||||
|
canvas->setDevice(new SkGpuDevice(fGrContext, fGrRenderTarget))->unref();
|
||||||
|
usingGL = true;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
//The clip needs to be applied with a device attached to the canvas
|
||||||
|
canvas->setBitmapDevice(win->getBitmap());
|
||||||
|
usingGL = false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
virtual void publishCanvas(SampleWindow::DeviceType dType,
|
||||||
|
SkCanvas* canvas,
|
||||||
|
SampleWindow* win) {
|
||||||
|
if (SampleWindow::kGPU_DeviceType == dType) {
|
||||||
|
fGrContext->flush();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
//CGContextRef cg = UIGraphicsGetCurrentContext();
|
||||||
|
//SkCGDrawBitmap(cg, win->getBitmap(), 0, 0);
|
||||||
|
}
|
||||||
|
win->presentGL();
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual void windowSizeChanged(SampleWindow* win) {}
|
||||||
|
|
||||||
|
bool isUsingGL() { return usingGL; }
|
||||||
|
|
||||||
|
virtual GrContext* getGrContext() { return fGrContext; }
|
||||||
|
private:
|
||||||
|
bool usingGL;
|
||||||
|
GrContext* fGrContext;
|
||||||
|
GrRenderTarget* fGrRenderTarget;
|
||||||
|
};
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
@implementation SkUIView
|
@implementation SkUIView
|
||||||
@ -90,17 +101,8 @@ void SkiOSDeviceManager::publishCanvas(SampleWindow::DeviceType dType,
|
|||||||
#include "SkEvent.h"
|
#include "SkEvent.h"
|
||||||
#include "SkWindow.h"
|
#include "SkWindow.h"
|
||||||
|
|
||||||
static float gScreenScale = 1;
|
|
||||||
|
|
||||||
#define kREDRAW_UIVIEW_GL "sk_redraw_uiview_gl_iOS"
|
#define kREDRAW_UIVIEW_GL "sk_redraw_uiview_gl_iOS"
|
||||||
|
|
||||||
static const float SCALE_FOR_ZOOM_LENS = 4.0;
|
|
||||||
#define Y_OFFSET_FOR_ZOOM_LENS 200
|
|
||||||
#define SIZE_FOR_ZOOM_LENS 250
|
|
||||||
|
|
||||||
static const float MAX_ZOOM_SCALE = 4.0;
|
|
||||||
static const float MIN_ZOOM_SCALE = 2.0 / MAX_ZOOM_SCALE;
|
|
||||||
|
|
||||||
extern bool gDoTraceDraw;
|
extern bool gDoTraceDraw;
|
||||||
#define DO_TRACE_DRAW_MAX 100
|
#define DO_TRACE_DRAW_MAX 100
|
||||||
|
|
||||||
@ -171,6 +173,16 @@ static FPSState gFPS;
|
|||||||
- (id)initWithMyDefaults {
|
- (id)initWithMyDefaults {
|
||||||
fRedrawRequestPending = false;
|
fRedrawRequestPending = false;
|
||||||
fFPSState = new FPSState;
|
fFPSState = new FPSState;
|
||||||
|
|
||||||
|
//Add gesture recognizer for single taps. Taps on the right half of the view
|
||||||
|
//will cause SampleApp to go to the next sample, taps on the left will go to
|
||||||
|
//the previous sample
|
||||||
|
UITapGestureRecognizer* tap = [[UITapGestureRecognizer alloc]
|
||||||
|
initWithTarget:self
|
||||||
|
action:@selector(handleTap:)];
|
||||||
|
[self addGestureRecognizer:tap];
|
||||||
|
[tap release];
|
||||||
|
|
||||||
#ifdef USE_GL_1
|
#ifdef USE_GL_1
|
||||||
fGL.fContext = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES1];
|
fGL.fContext = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES1];
|
||||||
#else
|
#else
|
||||||
@ -227,6 +239,7 @@ static FPSState gFPS;
|
|||||||
fWind = new SampleWindow(self, NULL, NULL, fDevManager);
|
fWind = new SampleWindow(self, NULL, NULL, fDevManager);
|
||||||
application_init();
|
application_init();
|
||||||
fWind->resize(self.frame.size.width, self.frame.size.height, SKWIND_CONFIG);
|
fWind->resize(self.frame.size.width, self.frame.size.height, SKWIND_CONFIG);
|
||||||
|
|
||||||
return self;
|
return self;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -258,11 +271,6 @@ static FPSState gFPS;
|
|||||||
|
|
||||||
- (void)layoutSubviews {
|
- (void)layoutSubviews {
|
||||||
int W, H;
|
int W, H;
|
||||||
gScreenScale = [UIScreen mainScreen].scale;
|
|
||||||
|
|
||||||
if ([self respondsToSelector:@selector(setContentScaleFactor:)]) {
|
|
||||||
self.contentScaleFactor = gScreenScale;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Allocate color buffer backing based on the current layer size
|
// Allocate color buffer backing based on the current layer size
|
||||||
glBindRenderbuffer(GL_RENDERBUFFER, fGL.fRenderbuffer);
|
glBindRenderbuffer(GL_RENDERBUFFER, fGL.fRenderbuffer);
|
||||||
@ -400,6 +408,15 @@ static FPSState gFPS;
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (void)handleTap:(UISwipeGestureRecognizer *)sender {
|
||||||
|
// CGPoint loc = [sender locationInView:self];
|
||||||
|
// if (loc.x > self.bounds.size.width/2)
|
||||||
|
// ((SampleWindow*)fWind)->nextSample();
|
||||||
|
// else
|
||||||
|
// ((SampleWindow*)fWind)->previousSample();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
- (void)setSkTitle:(const char *)title {
|
- (void)setSkTitle:(const char *)title {
|
||||||
|
@ -1,36 +0,0 @@
|
|||||||
#ifndef SkiOSDeviceManager_DEFINED
|
|
||||||
#define SkiOSDeviceManager_DEFINED
|
|
||||||
#include "SampleApp.h"
|
|
||||||
#include "SkCanvas.h"
|
|
||||||
#include "GrContext.h"
|
|
||||||
#include "GrGLInterface.h"
|
|
||||||
#include "SkGpuDevice.h"
|
|
||||||
#include "SkCGUtils.h"
|
|
||||||
#include "GrContext.h"
|
|
||||||
class SkiOSDeviceManager : public SampleWindow::DeviceManager {
|
|
||||||
public:
|
|
||||||
SkiOSDeviceManager();
|
|
||||||
virtual ~SkiOSDeviceManager();
|
|
||||||
|
|
||||||
virtual void init(SampleWindow* win);
|
|
||||||
|
|
||||||
virtual bool supportsDeviceType(SampleWindow::DeviceType dType);
|
|
||||||
virtual bool prepareCanvas(SampleWindow::DeviceType dType,
|
|
||||||
SkCanvas* canvas,
|
|
||||||
SampleWindow* win);
|
|
||||||
virtual void publishCanvas(SampleWindow::DeviceType dType,
|
|
||||||
SkCanvas* canvas,
|
|
||||||
SampleWindow* win);
|
|
||||||
|
|
||||||
virtual void windowSizeChanged(SampleWindow* win) {}
|
|
||||||
|
|
||||||
bool isUsingGL() { return usingGL; }
|
|
||||||
|
|
||||||
virtual GrContext* getGrContext() { return fGrContext; }
|
|
||||||
private:
|
|
||||||
bool usingGL;
|
|
||||||
GrContext* fGrContext;
|
|
||||||
GrRenderTarget* fGrRenderTarget;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif
|
|
@ -429,23 +429,25 @@
|
|||||||
260EF18513AFD62E0064D447 /* CoreText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 260EF18413AFD62E0064D447 /* CoreText.framework */; };
|
260EF18513AFD62E0064D447 /* CoreText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 260EF18413AFD62E0064D447 /* CoreText.framework */; };
|
||||||
260EF2B013AFDBD30064D447 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; };
|
260EF2B013AFDBD30064D447 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; };
|
||||||
263BE75813CCC7BF00CCE991 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 263BE75713CCC7BF00CCE991 /* QuartzCore.framework */; };
|
263BE75813CCC7BF00CCE991 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 263BE75713CCC7BF00CCE991 /* QuartzCore.framework */; };
|
||||||
|
26591EB913EB16EB000DA8A8 /* TransitionView.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26591EB813EB16EB000DA8A8 /* TransitionView.cpp */; };
|
||||||
265C7DE313D75752008329F6 /* SkOptionListController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 265C7DE213D75752008329F6 /* SkOptionListController.mm */; };
|
265C7DE313D75752008329F6 /* SkOptionListController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 265C7DE213D75752008329F6 /* SkOptionListController.mm */; };
|
||||||
265C816C13D77860008329F6 /* SampleDrawingClient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 265C816A13D77860008329F6 /* SampleDrawingClient.cpp */; };
|
|
||||||
2662AB7013BD067900CDE7E9 /* SkiOSSampleApp-Debug.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 2662AB6F13BD067900CDE7E9 /* SkiOSSampleApp-Debug.xcconfig */; };
|
2662AB7013BD067900CDE7E9 /* SkiOSSampleApp-Debug.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 2662AB6F13BD067900CDE7E9 /* SkiOSSampleApp-Debug.xcconfig */; };
|
||||||
2662AB7613BD0C0D00CDE7E9 /* SkiOSSampleApp-Release.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 2662AB7513BD0C0D00CDE7E9 /* SkiOSSampleApp-Release.xcconfig */; };
|
2662AB7613BD0C0D00CDE7E9 /* SkiOSSampleApp-Release.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 2662AB7513BD0C0D00CDE7E9 /* SkiOSSampleApp-Release.xcconfig */; };
|
||||||
2662AB7813BD0C1E00CDE7E9 /* SkiOSSampleApp-Base.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 2662AB7713BD0C1E00CDE7E9 /* SkiOSSampleApp-Base.xcconfig */; };
|
2662AB7813BD0C1E00CDE7E9 /* SkiOSSampleApp-Base.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = 2662AB7713BD0C1E00CDE7E9 /* SkiOSSampleApp-Base.xcconfig */; };
|
||||||
2663AC9413D5D8D400C20488 /* SkOptionsTableViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 2663AC9313D5D8D400C20488 /* SkOptionsTableViewController.mm */; };
|
2663AC9413D5D8D400C20488 /* SkOptionsTableViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 2663AC9313D5D8D400C20488 /* SkOptionsTableViewController.mm */; };
|
||||||
26677D6613B4C548009319B8 /* SkData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26677D6513B4C548009319B8 /* SkData.cpp */; };
|
26677D6613B4C548009319B8 /* SkData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26677D6513B4C548009319B8 /* SkData.cpp */; };
|
||||||
26811E7913DEFAE8001A1609 /* SkBitSet.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26811E7813DEFAE8001A1609 /* SkBitSet.cpp */; };
|
26811E7913DEFAE8001A1609 /* SkBitSet.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26811E7813DEFAE8001A1609 /* SkBitSet.cpp */; };
|
||||||
26811E8613DEFC33001A1609 /* SampleDrawingServer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 265C816B13D77860008329F6 /* SampleDrawingServer.cpp */; };
|
268C50D613F022820003FF9A /* SkColorPalette.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 268C50D213F022820003FF9A /* SkColorPalette.cpp */; };
|
||||||
268F31FE13CDE72D003A1EF2 /* SkSockets.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 268F31FA13CDE726003A1EF2 /* SkSockets.cpp */; };
|
268C50D713F022820003FF9A /* SkNetPipeController.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 268C50D413F022820003FF9A /* SkNetPipeController.cpp */; };
|
||||||
|
268C50DA13F022AF0003FF9A /* SampleDrawingClient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 268C50D813F022AF0003FF9A /* SampleDrawingClient.cpp */; };
|
||||||
|
268C50DB13F022AF0003FF9A /* SampleDrawingServer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 268C50D913F022AF0003FF9A /* SampleDrawingServer.cpp */; };
|
||||||
|
268C50DF13F0230C0003FF9A /* SampleNetPipeReader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 268C50DC13F0230C0003FF9A /* SampleNetPipeReader.cpp */; };
|
||||||
|
268C50E013F0230C0003FF9A /* SkSockets.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 268C50DD13F0230C0003FF9A /* SkSockets.cpp */; };
|
||||||
26962B2313CDF6A00039B1FB /* SkOSFile_iOS.mm in Sources */ = {isa = PBXBuildFile; fileRef = 260EE8BB13AFA7790064D447 /* SkOSFile_iOS.mm */; };
|
26962B2313CDF6A00039B1FB /* SkOSFile_iOS.mm in Sources */ = {isa = PBXBuildFile; fileRef = 260EE8BB13AFA7790064D447 /* SkOSFile_iOS.mm */; };
|
||||||
26962C8013CE256E0039B1FB /* SkUIDetailViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 26962C7913CE256E0039B1FB /* SkUIDetailViewController.mm */; };
|
26962C8013CE256E0039B1FB /* SkUIDetailViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 26962C7913CE256E0039B1FB /* SkUIDetailViewController.mm */; };
|
||||||
26962C8113CE256E0039B1FB /* SkUIRootViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 26962C7B13CE256E0039B1FB /* SkUIRootViewController.mm */; };
|
26962C8113CE256E0039B1FB /* SkUIRootViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 26962C7B13CE256E0039B1FB /* SkUIRootViewController.mm */; };
|
||||||
26962CA413CE265C0039B1FB /* SkOSWindow_iOS.mm in Sources */ = {isa = PBXBuildFile; fileRef = 26962CA313CE265C0039B1FB /* SkOSWindow_iOS.mm */; };
|
26962CA413CE265C0039B1FB /* SkOSWindow_iOS.mm in Sources */ = {isa = PBXBuildFile; fileRef = 26962CA313CE265C0039B1FB /* SkOSWindow_iOS.mm */; };
|
||||||
26962CAB13CE268A0039B1FB /* SampleApp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26962CA913CE268A0039B1FB /* SampleApp.cpp */; };
|
26962CAB13CE268A0039B1FB /* SampleApp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26962CA913CE268A0039B1FB /* SampleApp.cpp */; };
|
||||||
26962CEC13CE293A0039B1FB /* SkColorPalette.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26962CE813CE293A0039B1FB /* SkColorPalette.cpp */; };
|
|
||||||
26962CED13CE293A0039B1FB /* SkNetPipeController.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26962CEA13CE293A0039B1FB /* SkNetPipeController.cpp */; };
|
|
||||||
26962D4F13CE2D780039B1FB /* GrGLDefaultInterface_iOS.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26962D4E13CE2D780039B1FB /* GrGLDefaultInterface_iOS.cpp */; };
|
26962D4F13CE2D780039B1FB /* GrGLDefaultInterface_iOS.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26962D4E13CE2D780039B1FB /* GrGLDefaultInterface_iOS.cpp */; };
|
||||||
26A8AFF313E05D7000A3C111 /* GrResourceCache.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26A8AFF113E05D7000A3C111 /* GrResourceCache.cpp */; };
|
26A8AFF313E05D7000A3C111 /* GrResourceCache.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26A8AFF113E05D7000A3C111 /* GrResourceCache.cpp */; };
|
||||||
26E0E40A13B4E67800866555 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 260EE9D113AFA7850064D447 /* OpenGLES.framework */; };
|
26E0E40A13B4E67800866555 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 260EE9D113AFA7850064D447 /* OpenGLES.framework */; };
|
||||||
@ -1325,10 +1327,9 @@
|
|||||||
260EE9D113AFA7850064D447 /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; };
|
260EE9D113AFA7850064D447 /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; };
|
||||||
260EF18413AFD62E0064D447 /* CoreText.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreText.framework; path = System/Library/Frameworks/CoreText.framework; sourceTree = SDKROOT; };
|
260EF18413AFD62E0064D447 /* CoreText.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreText.framework; path = System/Library/Frameworks/CoreText.framework; sourceTree = SDKROOT; };
|
||||||
263BE75713CCC7BF00CCE991 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
|
263BE75713CCC7BF00CCE991 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
|
||||||
|
26591EB813EB16EB000DA8A8 /* TransitionView.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TransitionView.cpp; sourceTree = "<group>"; };
|
||||||
265C7DE113D75752008329F6 /* SkOptionListController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkOptionListController.h; path = Shared/SkOptionListController.h; sourceTree = "<group>"; };
|
265C7DE113D75752008329F6 /* SkOptionListController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkOptionListController.h; path = Shared/SkOptionListController.h; sourceTree = "<group>"; };
|
||||||
265C7DE213D75752008329F6 /* SkOptionListController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = SkOptionListController.mm; path = Shared/SkOptionListController.mm; sourceTree = "<group>"; };
|
265C7DE213D75752008329F6 /* SkOptionListController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = SkOptionListController.mm; path = Shared/SkOptionListController.mm; sourceTree = "<group>"; };
|
||||||
265C816A13D77860008329F6 /* SampleDrawingClient.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SampleDrawingClient.cpp; sourceTree = "<group>"; };
|
|
||||||
265C816B13D77860008329F6 /* SampleDrawingServer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SampleDrawingServer.cpp; sourceTree = "<group>"; };
|
|
||||||
2662AB6F13BD067900CDE7E9 /* SkiOSSampleApp-Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "SkiOSSampleApp-Debug.xcconfig"; sourceTree = "<group>"; };
|
2662AB6F13BD067900CDE7E9 /* SkiOSSampleApp-Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "SkiOSSampleApp-Debug.xcconfig"; sourceTree = "<group>"; };
|
||||||
2662AB7513BD0C0D00CDE7E9 /* SkiOSSampleApp-Release.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "SkiOSSampleApp-Release.xcconfig"; sourceTree = "<group>"; };
|
2662AB7513BD0C0D00CDE7E9 /* SkiOSSampleApp-Release.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "SkiOSSampleApp-Release.xcconfig"; sourceTree = "<group>"; };
|
||||||
2662AB7713BD0C1E00CDE7E9 /* SkiOSSampleApp-Base.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "SkiOSSampleApp-Base.xcconfig"; sourceTree = "<group>"; };
|
2662AB7713BD0C1E00CDE7E9 /* SkiOSSampleApp-Base.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "SkiOSSampleApp-Base.xcconfig"; sourceTree = "<group>"; };
|
||||||
@ -1336,11 +1337,17 @@
|
|||||||
2663AC9313D5D8D400C20488 /* SkOptionsTableViewController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = SkOptionsTableViewController.mm; path = Shared/SkOptionsTableViewController.mm; sourceTree = "<group>"; };
|
2663AC9313D5D8D400C20488 /* SkOptionsTableViewController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = SkOptionsTableViewController.mm; path = Shared/SkOptionsTableViewController.mm; sourceTree = "<group>"; };
|
||||||
26677D6413B4C53E009319B8 /* SkData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkData.h; path = core/SkData.h; sourceTree = "<group>"; };
|
26677D6413B4C53E009319B8 /* SkData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkData.h; path = core/SkData.h; sourceTree = "<group>"; };
|
||||||
26677D6513B4C548009319B8 /* SkData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkData.cpp; path = core/SkData.cpp; sourceTree = "<group>"; };
|
26677D6513B4C548009319B8 /* SkData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkData.cpp; path = core/SkData.cpp; sourceTree = "<group>"; };
|
||||||
266CB66113CF56E30011139A /* SkiOSDeviceManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkiOSDeviceManager.h; path = Shared/SkiOSDeviceManager.h; sourceTree = "<group>"; };
|
|
||||||
26811E7813DEFAE8001A1609 /* SkBitSet.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkBitSet.cpp; path = ../../src/pdf/SkBitSet.cpp; sourceTree = SOURCE_ROOT; };
|
26811E7813DEFAE8001A1609 /* SkBitSet.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkBitSet.cpp; path = ../../src/pdf/SkBitSet.cpp; sourceTree = SOURCE_ROOT; };
|
||||||
26811E7A13DEFAF7001A1609 /* SkBitSet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkBitSet.h; path = ../../include/pdf/SkBitSet.h; sourceTree = SOURCE_ROOT; };
|
26811E7A13DEFAF7001A1609 /* SkBitSet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkBitSet.h; path = ../../include/pdf/SkBitSet.h; sourceTree = SOURCE_ROOT; };
|
||||||
268F31FA13CDE726003A1EF2 /* SkSockets.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkSockets.cpp; path = ../SkSockets.cpp; sourceTree = "<group>"; };
|
268C50D213F022820003FF9A /* SkColorPalette.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkColorPalette.cpp; path = ../DrawingBoard/SkColorPalette.cpp; sourceTree = SOURCE_ROOT; };
|
||||||
268F31FB13CDE726003A1EF2 /* SkSockets.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkSockets.h; path = ../SkSockets.h; sourceTree = "<group>"; };
|
268C50D313F022820003FF9A /* SkColorPalette.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkColorPalette.h; path = ../DrawingBoard/SkColorPalette.h; sourceTree = SOURCE_ROOT; };
|
||||||
|
268C50D413F022820003FF9A /* SkNetPipeController.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkNetPipeController.cpp; path = ../DrawingBoard/SkNetPipeController.cpp; sourceTree = SOURCE_ROOT; };
|
||||||
|
268C50D513F022820003FF9A /* SkNetPipeController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkNetPipeController.h; path = ../DrawingBoard/SkNetPipeController.h; sourceTree = SOURCE_ROOT; };
|
||||||
|
268C50D813F022AF0003FF9A /* SampleDrawingClient.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SampleDrawingClient.cpp; path = ../DrawingBoard/SampleDrawingClient.cpp; sourceTree = SOURCE_ROOT; };
|
||||||
|
268C50D913F022AF0003FF9A /* SampleDrawingServer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SampleDrawingServer.cpp; path = ../DrawingBoard/SampleDrawingServer.cpp; sourceTree = SOURCE_ROOT; };
|
||||||
|
268C50DC13F0230C0003FF9A /* SampleNetPipeReader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SampleNetPipeReader.cpp; path = ../Networking/SampleNetPipeReader.cpp; sourceTree = SOURCE_ROOT; };
|
||||||
|
268C50DD13F0230C0003FF9A /* SkSockets.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkSockets.cpp; path = ../Networking/SkSockets.cpp; sourceTree = SOURCE_ROOT; };
|
||||||
|
268C50DE13F0230C0003FF9A /* SkSockets.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkSockets.h; path = ../Networking/SkSockets.h; sourceTree = SOURCE_ROOT; };
|
||||||
26962C7813CE256E0039B1FB /* SkUIDetailViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkUIDetailViewController.h; path = Shared/SkUIDetailViewController.h; sourceTree = "<group>"; };
|
26962C7813CE256E0039B1FB /* SkUIDetailViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkUIDetailViewController.h; path = Shared/SkUIDetailViewController.h; sourceTree = "<group>"; };
|
||||||
26962C7913CE256E0039B1FB /* SkUIDetailViewController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = SkUIDetailViewController.mm; path = Shared/SkUIDetailViewController.mm; sourceTree = "<group>"; };
|
26962C7913CE256E0039B1FB /* SkUIDetailViewController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = SkUIDetailViewController.mm; path = Shared/SkUIDetailViewController.mm; sourceTree = "<group>"; };
|
||||||
26962C7A13CE256E0039B1FB /* SkUIRootViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkUIRootViewController.h; path = Shared/SkUIRootViewController.h; sourceTree = "<group>"; };
|
26962C7A13CE256E0039B1FB /* SkUIRootViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkUIRootViewController.h; path = Shared/SkUIRootViewController.h; sourceTree = "<group>"; };
|
||||||
@ -1351,10 +1358,6 @@
|
|||||||
26962CA513CE26730039B1FB /* SkOSWindow_iOS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkOSWindow_iOS.h; path = ../../include/views/SkOSWindow_iOS.h; sourceTree = SOURCE_ROOT; };
|
26962CA513CE26730039B1FB /* SkOSWindow_iOS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkOSWindow_iOS.h; path = ../../include/views/SkOSWindow_iOS.h; sourceTree = SOURCE_ROOT; };
|
||||||
26962CA913CE268A0039B1FB /* SampleApp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SampleApp.cpp; path = ../../samplecode/SampleApp.cpp; sourceTree = SOURCE_ROOT; };
|
26962CA913CE268A0039B1FB /* SampleApp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SampleApp.cpp; path = ../../samplecode/SampleApp.cpp; sourceTree = SOURCE_ROOT; };
|
||||||
26962CAA13CE268A0039B1FB /* SampleApp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SampleApp.h; path = ../../samplecode/SampleApp.h; sourceTree = SOURCE_ROOT; };
|
26962CAA13CE268A0039B1FB /* SampleApp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SampleApp.h; path = ../../samplecode/SampleApp.h; sourceTree = SOURCE_ROOT; };
|
||||||
26962CE813CE293A0039B1FB /* SkColorPalette.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkColorPalette.cpp; path = Shared/DrawingBoard/SkColorPalette.cpp; sourceTree = "<group>"; };
|
|
||||||
26962CE913CE293A0039B1FB /* SkColorPalette.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkColorPalette.h; path = Shared/DrawingBoard/SkColorPalette.h; sourceTree = "<group>"; };
|
|
||||||
26962CEA13CE293A0039B1FB /* SkNetPipeController.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkNetPipeController.cpp; path = Shared/DrawingBoard/SkNetPipeController.cpp; sourceTree = "<group>"; };
|
|
||||||
26962CEB13CE293A0039B1FB /* SkNetPipeController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkNetPipeController.h; path = Shared/DrawingBoard/SkNetPipeController.h; sourceTree = "<group>"; };
|
|
||||||
26962D4E13CE2D780039B1FB /* GrGLDefaultInterface_iOS.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = GrGLDefaultInterface_iOS.cpp; path = ../../gpu/src/ios/GrGLDefaultInterface_iOS.cpp; sourceTree = SOURCE_ROOT; };
|
26962D4E13CE2D780039B1FB /* GrGLDefaultInterface_iOS.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = GrGLDefaultInterface_iOS.cpp; path = ../../gpu/src/ios/GrGLDefaultInterface_iOS.cpp; sourceTree = SOURCE_ROOT; };
|
||||||
26A8AFF113E05D7000A3C111 /* GrResourceCache.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GrResourceCache.cpp; sourceTree = "<group>"; };
|
26A8AFF113E05D7000A3C111 /* GrResourceCache.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GrResourceCache.cpp; sourceTree = "<group>"; };
|
||||||
26A8AFF213E05D7000A3C111 /* GrResourceCache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GrResourceCache.h; sourceTree = "<group>"; };
|
26A8AFF213E05D7000A3C111 /* GrResourceCache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GrResourceCache.h; sourceTree = "<group>"; };
|
||||||
@ -1456,8 +1459,7 @@
|
|||||||
260E002313B11F5B0064D447 /* samplecode */ = {
|
260E002313B11F5B0064D447 /* samplecode */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
265C816A13D77860008329F6 /* SampleDrawingClient.cpp */,
|
26591EB813EB16EB000DA8A8 /* TransitionView.cpp */,
|
||||||
265C816B13D77860008329F6 /* SampleDrawingServer.cpp */,
|
|
||||||
260E002413B11F5B0064D447 /* ClockFaceView.cpp */,
|
260E002413B11F5B0064D447 /* ClockFaceView.cpp */,
|
||||||
260E002513B11F5B0064D447 /* OverView.cpp */,
|
260E002513B11F5B0064D447 /* OverView.cpp */,
|
||||||
260E002613B11F5B0064D447 /* SampleAARects.cpp */,
|
260E002613B11F5B0064D447 /* SampleAARects.cpp */,
|
||||||
@ -2715,7 +2717,6 @@
|
|||||||
children = (
|
children = (
|
||||||
26FB98D113D0C87000ACBEA0 /* SkUIView.h */,
|
26FB98D113D0C87000ACBEA0 /* SkUIView.h */,
|
||||||
26FB98D213D0C87000ACBEA0 /* SkUIView.mm */,
|
26FB98D213D0C87000ACBEA0 /* SkUIView.mm */,
|
||||||
266CB66113CF56E30011139A /* SkiOSDeviceManager.h */,
|
|
||||||
26962D4E13CE2D780039B1FB /* GrGLDefaultInterface_iOS.cpp */,
|
26962D4E13CE2D780039B1FB /* GrGLDefaultInterface_iOS.cpp */,
|
||||||
26962CA513CE26730039B1FB /* SkOSWindow_iOS.h */,
|
26962CA513CE26730039B1FB /* SkOSWindow_iOS.h */,
|
||||||
26962CA313CE265C0039B1FB /* SkOSWindow_iOS.mm */,
|
26962CA313CE265C0039B1FB /* SkOSWindow_iOS.mm */,
|
||||||
@ -2740,10 +2741,12 @@
|
|||||||
26962CE713CE29120039B1FB /* DrawingBoard */ = {
|
26962CE713CE29120039B1FB /* DrawingBoard */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
26962CE813CE293A0039B1FB /* SkColorPalette.cpp */,
|
268C50D813F022AF0003FF9A /* SampleDrawingClient.cpp */,
|
||||||
26962CE913CE293A0039B1FB /* SkColorPalette.h */,
|
268C50D913F022AF0003FF9A /* SampleDrawingServer.cpp */,
|
||||||
26962CEA13CE293A0039B1FB /* SkNetPipeController.cpp */,
|
268C50D213F022820003FF9A /* SkColorPalette.cpp */,
|
||||||
26962CEB13CE293A0039B1FB /* SkNetPipeController.h */,
|
268C50D313F022820003FF9A /* SkColorPalette.h */,
|
||||||
|
268C50D413F022820003FF9A /* SkNetPipeController.cpp */,
|
||||||
|
268C50D513F022820003FF9A /* SkNetPipeController.h */,
|
||||||
);
|
);
|
||||||
name = DrawingBoard;
|
name = DrawingBoard;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@ -2751,8 +2754,9 @@
|
|||||||
26F67B2A13CB3564005DDCD2 /* Networking */ = {
|
26F67B2A13CB3564005DDCD2 /* Networking */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
268F31FA13CDE726003A1EF2 /* SkSockets.cpp */,
|
268C50DC13F0230C0003FF9A /* SampleNetPipeReader.cpp */,
|
||||||
268F31FB13CDE726003A1EF2 /* SkSockets.h */,
|
268C50DD13F0230C0003FF9A /* SkSockets.cpp */,
|
||||||
|
268C50DE13F0230C0003FF9A /* SkSockets.h */,
|
||||||
);
|
);
|
||||||
name = Networking;
|
name = Networking;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@ -3339,27 +3343,29 @@
|
|||||||
26F548E913B91980007CC564 /* SkBitmapProcState_opts_arm.cpp in Sources */,
|
26F548E913B91980007CC564 /* SkBitmapProcState_opts_arm.cpp in Sources */,
|
||||||
26F548EC13B91980007CC564 /* SkBlitRow_opts_none.cpp in Sources */,
|
26F548EC13B91980007CC564 /* SkBlitRow_opts_none.cpp in Sources */,
|
||||||
26F548ED13B91980007CC564 /* SkUtils_opts_none.cpp in Sources */,
|
26F548ED13B91980007CC564 /* SkUtils_opts_none.cpp in Sources */,
|
||||||
268F31FE13CDE72D003A1EF2 /* SkSockets.cpp in Sources */,
|
|
||||||
26962B2313CDF6A00039B1FB /* SkOSFile_iOS.mm in Sources */,
|
26962B2313CDF6A00039B1FB /* SkOSFile_iOS.mm in Sources */,
|
||||||
26962C8013CE256E0039B1FB /* SkUIDetailViewController.mm in Sources */,
|
26962C8013CE256E0039B1FB /* SkUIDetailViewController.mm in Sources */,
|
||||||
26962C8113CE256E0039B1FB /* SkUIRootViewController.mm in Sources */,
|
26962C8113CE256E0039B1FB /* SkUIRootViewController.mm in Sources */,
|
||||||
26962CA413CE265C0039B1FB /* SkOSWindow_iOS.mm in Sources */,
|
26962CA413CE265C0039B1FB /* SkOSWindow_iOS.mm in Sources */,
|
||||||
26962CAB13CE268A0039B1FB /* SampleApp.cpp in Sources */,
|
26962CAB13CE268A0039B1FB /* SampleApp.cpp in Sources */,
|
||||||
26962CEC13CE293A0039B1FB /* SkColorPalette.cpp in Sources */,
|
|
||||||
26962CED13CE293A0039B1FB /* SkNetPipeController.cpp in Sources */,
|
|
||||||
26962D4F13CE2D780039B1FB /* GrGLDefaultInterface_iOS.cpp in Sources */,
|
26962D4F13CE2D780039B1FB /* GrGLDefaultInterface_iOS.cpp in Sources */,
|
||||||
26FB98D313D0C87000ACBEA0 /* SkUIView.mm in Sources */,
|
26FB98D313D0C87000ACBEA0 /* SkUIView.mm in Sources */,
|
||||||
2663AC9413D5D8D400C20488 /* SkOptionsTableViewController.mm in Sources */,
|
2663AC9413D5D8D400C20488 /* SkOptionsTableViewController.mm in Sources */,
|
||||||
265C7DE313D75752008329F6 /* SkOptionListController.mm in Sources */,
|
265C7DE313D75752008329F6 /* SkOptionListController.mm in Sources */,
|
||||||
265C816C13D77860008329F6 /* SampleDrawingClient.cpp in Sources */,
|
|
||||||
26811E7913DEFAE8001A1609 /* SkBitSet.cpp in Sources */,
|
26811E7913DEFAE8001A1609 /* SkBitSet.cpp in Sources */,
|
||||||
26811E8613DEFC33001A1609 /* SampleDrawingServer.cpp in Sources */,
|
|
||||||
26A8AFF313E05D7000A3C111 /* GrResourceCache.cpp in Sources */,
|
26A8AFF313E05D7000A3C111 /* GrResourceCache.cpp in Sources */,
|
||||||
26FB125E13E70310001AFF6D /* SkEventNotifier.mm in Sources */,
|
26FB125E13E70310001AFF6D /* SkEventNotifier.mm in Sources */,
|
||||||
26FB129313E704AE001AFF6D /* GrGLTexture.cpp in Sources */,
|
26FB129313E704AE001AFF6D /* GrGLTexture.cpp in Sources */,
|
||||||
26FB129413E704B0001AFF6D /* GrContext.cpp in Sources */,
|
26FB129413E704B0001AFF6D /* GrContext.cpp in Sources */,
|
||||||
26FB12B013E70D3B001AFF6D /* GrGLRenderTarget.cpp in Sources */,
|
26FB12B013E70D3B001AFF6D /* GrGLRenderTarget.cpp in Sources */,
|
||||||
26FB12B413E70D51001AFF6D /* GrRenderTarget.cpp in Sources */,
|
26FB12B413E70D51001AFF6D /* GrRenderTarget.cpp in Sources */,
|
||||||
|
26591EB913EB16EB000DA8A8 /* TransitionView.cpp in Sources */,
|
||||||
|
268C50D613F022820003FF9A /* SkColorPalette.cpp in Sources */,
|
||||||
|
268C50D713F022820003FF9A /* SkNetPipeController.cpp in Sources */,
|
||||||
|
268C50DA13F022AF0003FF9A /* SampleDrawingClient.cpp in Sources */,
|
||||||
|
268C50DB13F022AF0003FF9A /* SampleDrawingServer.cpp in Sources */,
|
||||||
|
268C50DF13F0230C0003FF9A /* SampleNetPipeReader.cpp in Sources */,
|
||||||
|
268C50E013F0230C0003FF9A /* SkSockets.cpp in Sources */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
@ -3397,7 +3403,7 @@
|
|||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
baseConfigurationReference = 2662AB6F13BD067900CDE7E9 /* SkiOSSampleApp-Debug.xcconfig */;
|
baseConfigurationReference = 2662AB6F13BD067900CDE7E9 /* SkiOSSampleApp-Debug.xcconfig */;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
|
ARCHS = "$(ARCHS_UNIVERSAL_IPHONE_OS)";
|
||||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||||
GCC_C_LANGUAGE_STANDARD = c99;
|
GCC_C_LANGUAGE_STANDARD = c99;
|
||||||
GCC_OPTIMIZATION_LEVEL = 0;
|
GCC_OPTIMIZATION_LEVEL = 0;
|
||||||
|
@ -53,6 +53,7 @@
|
|||||||
'../samplecode/SampleDegenerateTwoPtRadials.cpp',
|
'../samplecode/SampleDegenerateTwoPtRadials.cpp',
|
||||||
'../samplecode/SampleDither.cpp',
|
'../samplecode/SampleDither.cpp',
|
||||||
'../samplecode/SampleDitherBitmap.cpp',
|
'../samplecode/SampleDitherBitmap.cpp',
|
||||||
|
'../samplecode/SampleDrawBitmap.cpp',
|
||||||
'../samplecode/SampleDrawLooper.cpp',
|
'../samplecode/SampleDrawLooper.cpp',
|
||||||
'../samplecode/SampleEffects.cpp',
|
'../samplecode/SampleEffects.cpp',
|
||||||
'../samplecode/SampleEmboss.cpp',
|
'../samplecode/SampleEmboss.cpp',
|
||||||
@ -117,6 +118,24 @@
|
|||||||
# Dependencies for the pipe code in SampleApp
|
# Dependencies for the pipe code in SampleApp
|
||||||
'../src/pipe/SkGPipeRead.cpp',
|
'../src/pipe/SkGPipeRead.cpp',
|
||||||
'../src/pipe/SkGPipeWrite.cpp',
|
'../src/pipe/SkGPipeWrite.cpp',
|
||||||
|
|
||||||
|
# DrawingBoard
|
||||||
|
'../experimental/DrawingBoard/SkColorPalette.h',
|
||||||
|
'../experimental/DrawingBoard/SkColorPalette.cpp',
|
||||||
|
'../experimental/DrawingBoard/SkNetPipeController.h',
|
||||||
|
'../experimental/DrawingBoard/SkNetPipeController.cpp',
|
||||||
|
'../experimental/DrawingBoard/SampleDrawingClient.cpp',
|
||||||
|
'../experimental/DrawingBoard/SampleDrawingServer.cpp',
|
||||||
|
|
||||||
|
# Networking
|
||||||
|
'../experimental/Networking/SampleNetPipeReader.cpp',
|
||||||
|
'../experimental/Networking/SkSockets.cpp',
|
||||||
|
'../experimental/Networking/SkSockets.h',
|
||||||
|
|
||||||
|
# Transition
|
||||||
|
'../src/utils/SkInterpolator.cpp',
|
||||||
|
'../include/utils/SkInterpolator.h',
|
||||||
|
'../samplecode/TransitionView.cpp',
|
||||||
],
|
],
|
||||||
'sources!': [
|
'sources!': [
|
||||||
'../samplecode/SampleSkLayer.cpp', #relies on SkMatrix44 which doesn't compile
|
'../samplecode/SampleSkLayer.cpp', #relies on SkMatrix44 which doesn't compile
|
||||||
@ -163,14 +182,12 @@
|
|||||||
'../experimental/CocoaSampleApp/SampleAppDelegate.mm',
|
'../experimental/CocoaSampleApp/SampleAppDelegate.mm',
|
||||||
'../experimental/CocoaSampleApp/SkNSView.h',
|
'../experimental/CocoaSampleApp/SkNSView.h',
|
||||||
'../experimental/CocoaSampleApp/SkNSView.mm',
|
'../experimental/CocoaSampleApp/SkNSView.mm',
|
||||||
'../experimental/CocoaSampleApp/SkOSWindow_Mac.h',
|
|
||||||
'../experimental/CocoaSampleApp/SkOSWindow_Mac.mm',
|
|
||||||
'../experimental/CocoaSampleApp/SkOptionsTableView.h',
|
'../experimental/CocoaSampleApp/SkOptionsTableView.h',
|
||||||
'../experimental/CocoaSampleApp/SkOptionsTableView.mm',
|
'../experimental/CocoaSampleApp/SkOptionsTableView.mm',
|
||||||
|
'../experimental/CocoaSampleApp/SkOSWindow_Mac.h',
|
||||||
|
'../experimental/CocoaSampleApp/SkOSWindow_Mac.mm',
|
||||||
'../experimental/CocoaSampleApp/SkTextFieldCell.h',
|
'../experimental/CocoaSampleApp/SkTextFieldCell.h',
|
||||||
'../experimental/CocoaSampleApp/SkTextFieldCell.m',
|
'../experimental/CocoaSampleApp/SkTextFieldCell.m',
|
||||||
'../experimental/SkSockets.h',
|
|
||||||
'../experimental/SkSockets.cpp',
|
|
||||||
'../experimental/SkEventNotifier.h',
|
'../experimental/SkEventNotifier.h',
|
||||||
'../experimental/SkEventNotifier.mm',
|
'../experimental/SkEventNotifier.mm',
|
||||||
],
|
],
|
||||||
@ -181,6 +198,10 @@
|
|||||||
'$(SDKROOT)/System/Library/Frameworks/QuartzCore.framework',
|
'$(SDKROOT)/System/Library/Frameworks/QuartzCore.framework',
|
||||||
'$(SDKROOT)/System/Library/Frameworks/OpenGL.framework',
|
'$(SDKROOT)/System/Library/Frameworks/OpenGL.framework',
|
||||||
],
|
],
|
||||||
|
'libraries!': [
|
||||||
|
'$(SDKROOT)/System/Library/Frameworks/Carbon.framework',
|
||||||
|
'$(SDKROOT)/System/Library/Frameworks/AGL.framework',
|
||||||
|
],
|
||||||
},
|
},
|
||||||
'xcode_settings' : {
|
'xcode_settings' : {
|
||||||
'INFOPLIST_FILE' : '../experimental/CocoaSampleApp/SampleApp-Info.plist',
|
'INFOPLIST_FILE' : '../experimental/CocoaSampleApp/SampleApp-Info.plist',
|
||||||
@ -189,48 +210,6 @@
|
|||||||
'../experimental/CocoaSampleApp/SampleApp.xib',
|
'../experimental/CocoaSampleApp/SampleApp.xib',
|
||||||
],
|
],
|
||||||
}],
|
}],
|
||||||
[ 'skia_os == "ios"', {
|
|
||||||
# TODO: This doesn't build properly yet, but it's getting there.
|
|
||||||
'sources!': [
|
|
||||||
'../samplecode/SampleDecode.cpp',
|
|
||||||
],
|
|
||||||
'sources': [
|
|
||||||
'../experimental/iOSSampleApp/SkIOSNotifier.mm',
|
|
||||||
'../experimental/iOSSampleApp/SkTime_iOS.mm',
|
|
||||||
'../experimental/iOSSampleApp/SkUIDetailViewController.mm',
|
|
||||||
'../experimental/iOSSampleApp/SkUIRootViewController.mm',
|
|
||||||
'../experimental/iOSSampleApp/SkUIView_shell.mm',
|
|
||||||
|
|
||||||
'../experimental/iOSSampleApp/iOSSampleApp_Prefix.pch',
|
|
||||||
'../experimental/iOSSampleApp/Shared/main.m',
|
|
||||||
'../experimental/iOSSampleApp/iPad/AppDelegate_iPad.mm',
|
|
||||||
'../experimental/iOSSampleApp/iPad/SkUISplitViewController.mm',
|
|
||||||
'../experimental/iOSSampleApp/iPhone/AppDelegate_iPhone.mm',
|
|
||||||
'../experimental/iOSSampleApp/iPhone/SkUINavigationController.mm',
|
|
||||||
|
|
||||||
'../src/utils/ios/SkOSWindow_iOS.mm',
|
|
||||||
'../src/utils/ios/SkImageDecoder_iOS.mm',
|
|
||||||
'../src/utils/ios/SkStream_NSData.mm',
|
|
||||||
'../src/utils/ios/SkOSFile_iOS.mm',
|
|
||||||
|
|
||||||
'../src/utils/mac/SkCreateCGImageRef.cpp',
|
|
||||||
'../experimental/iOSSampleApp/SkiOSSampleApp-Debug.xcconfig',
|
|
||||||
'../experimental/iOSSampleApp/SkiOSSampleApp-Release.xcconfig',
|
|
||||||
],
|
|
||||||
'include_dirs' : [
|
|
||||||
'../experimental/iOSSampleApp',
|
|
||||||
'../experimental/iOSSampleApp/iPad',
|
|
||||||
'../experimental/iOSSampleApp/iPhone',
|
|
||||||
'../include/utils/ios',
|
|
||||||
'../../gpu/include',
|
|
||||||
],
|
|
||||||
'xcode_config_file': '../experimental/iOSSampleApp/SkiOSSampleApp-Base.xcconfig',
|
|
||||||
'mac_bundle_resources' : [
|
|
||||||
'../experimental/iOSSampleApp/iPad/MainWindow_iPad.xib',
|
|
||||||
'../experimental/iOSSampleApp/iPhone/MainWindow_iPhone.xib',
|
|
||||||
],
|
|
||||||
}],
|
|
||||||
|
|
||||||
],
|
],
|
||||||
'msvs_settings': {
|
'msvs_settings': {
|
||||||
'VCLinkerTool': {
|
'VCLinkerTool': {
|
||||||
|
@ -21,7 +21,7 @@ SkOSWindow::~SkOSWindow() {
|
|||||||
void SkOSWindow::onHandleInval(const SkIRect& r) {
|
void SkOSWindow::onHandleInval(const SkIRect& r) {
|
||||||
if (!fInvalEventIsPending) {
|
if (!fInvalEventIsPending) {
|
||||||
fInvalEventIsPending = true;
|
fInvalEventIsPending = true;
|
||||||
(new SkEvent(kINVAL_UIVIEW_EventType))->post(this->getSinkID());
|
(new SkEvent(kINVAL_UIVIEW_EventType, this->getSinkID()))->post();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user