-capp_lint

-enable close buttons based on context
-remove stuff that doesn't work
This commit is contained in:
Darrell Walisser
2012-08-04 13:20:35 -04:00
parent 32c5c82cb9
commit 24ef4d41d2
4 changed files with 360 additions and 500 deletions
+2 -18
View File
@@ -1,41 +1,25 @@
/*
* AppController.j
* TestSheet
*
* Created by You on April 14, 2012.
* Copyright 2012, Your Company All rights reserved.
*/
@import <Foundation/CPObject.j>
@import "SheetWindowController.j"
@implementation AppController : CPObject
{
SheetController _sheetController;
SheetController _sheetController;
}
- (void)applicationDidFinishLaunching:(CPNotification)aNotification
{
// This is called when the application is done loading.
}
- (void)awakeFromCib
{
// This is called when the cib is done loading.
// You can implement this method on any object instantiated from a Cib.
// It's a useful hook for setting up current UI values, and other things.
// In this case, we want the window from Cib to become our full browser window
//[theWindow setFullPlatformWindow:YES];
_sheetController = [ [SheetWindowController alloc] initWithWindowCibName:@"Window"];
[self newDocument:self];
}
- (void)newDocument:(id)sender
{
[_sheetController newWindow:self];
[_sheetController newWindow:self];
}
@end
File diff suppressed because one or more lines are too long
+33 -175
View File
@@ -42,7 +42,7 @@
<object class="NSWindowTemplate" id="1056085528">
<int key="NSWindowStyleMask">15</int>
<int key="NSWindowBacking">2</int>
<string key="NSWindowRect">{{71, 767}, {455, 523}}</string>
<string key="NSWindowRect">{{71, 767}, {468, 425}}</string>
<int key="NSWTFlags">1946157056</int>
<string key="NSWindowTitle">Window</string>
<string key="NSWindowClass">NSWindow</string>
@@ -55,7 +55,7 @@
<object class="NSSlider" id="626349312">
<reference key="NSNextResponder" ref="161598483"/>
<int key="NSvFlags">301</int>
<string key="NSFrame">{{119, 56}, {96, 21}}</string>
<string key="NSFrame">{{116, 54}, {96, 21}}</string>
<reference key="NSSuperview" ref="161598483"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="225469319"/>
@@ -83,7 +83,7 @@
<object class="NSTextField" id="225469319">
<reference key="NSNextResponder" ref="161598483"/>
<int key="NSvFlags">301</int>
<string key="NSFrame">{{221, 61}, {96, 22}}</string>
<string key="NSFrame">{{234, 51}, {96, 22}}</string>
<reference key="NSSuperview" ref="161598483"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="244990043"/>
@@ -122,9 +122,10 @@
<object class="NSButton" id="917693159">
<reference key="NSNextResponder" ref="161598483"/>
<int key="NSvFlags">289</int>
<string key="NSFrame">{{361, 12}, {80, 32}}</string>
<string key="NSFrame">{{381, 12}, {80, 32}}</string>
<reference key="NSSuperview" ref="161598483"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="193918884">
@@ -145,7 +146,7 @@
<object class="NSButton" id="503115995">
<reference key="NSNextResponder" ref="161598483"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{14, 443}, {150, 32}}</string>
<string key="NSFrame">{{14, 345}, {150, 32}}</string>
<reference key="NSSuperview" ref="161598483"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="368830815"/>
@@ -169,7 +170,7 @@
<object class="NSButton" id="368830815">
<reference key="NSNextResponder" ref="161598483"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{14, 411}, {150, 32}}</string>
<string key="NSFrame">{{14, 313}, {150, 32}}</string>
<reference key="NSSuperview" ref="161598483"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="223206700"/>
@@ -193,7 +194,7 @@
<object class="NSButton" id="666980504">
<reference key="NSNextResponder" ref="161598483"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{14, 475}, {150, 32}}</string>
<string key="NSFrame">{{14, 377}, {150, 32}}</string>
<reference key="NSSuperview" ref="161598483"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="503115995"/>
@@ -217,7 +218,7 @@
<object class="NSButton" id="223206700">
<reference key="NSNextResponder" ref="161598483"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{14, 379}, {150, 32}}</string>
<string key="NSFrame">{{14, 281}, {150, 32}}</string>
<reference key="NSSuperview" ref="161598483"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="531109111"/>
@@ -241,7 +242,7 @@
<object class="NSButton" id="968632972">
<reference key="NSNextResponder" ref="161598483"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{14, 347}, {150, 32}}</string>
<string key="NSFrame">{{14, 249}, {150, 32}}</string>
<reference key="NSSuperview" ref="161598483"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="816373959"/>
@@ -262,82 +263,10 @@
<int key="NSPeriodicInterval">25</int>
</object>
</object>
<object class="NSButton" id="1055092187">
<reference key="NSNextResponder" ref="161598483"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{14, 317}, {150, 32}}</string>
<reference key="NSSuperview" ref="161598483"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="893839534"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="592906133">
<int key="NSCellFlags">67239424</int>
<int key="NSCellFlags2">134217728</int>
<string key="NSContents">Color Panel Sheet</string>
<reference key="NSSupport" ref="394344788"/>
<string key="NSCellIdentifier">_NS:9</string>
<reference key="NSControlView" ref="1055092187"/>
<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 class="NSButton" id="154209420">
<reference key="NSNextResponder" ref="161598483"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{14, 285}, {150, 32}}</string>
<reference key="NSSuperview" ref="161598483"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="132928531"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="822801681">
<int key="NSCellFlags">67239424</int>
<int key="NSCellFlags2">134217728</int>
<string key="NSContents">Open Panel Sheet</string>
<reference key="NSSupport" ref="394344788"/>
<string key="NSCellIdentifier">_NS:9</string>
<reference key="NSControlView" ref="154209420"/>
<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 class="NSButton" id="808066814">
<reference key="NSNextResponder" ref="161598483"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{14, 253}, {150, 32}}</string>
<reference key="NSSuperview" ref="161598483"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="133258452"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="311705944">
<int key="NSCellFlags">67239424</int>
<int key="NSCellFlags2">134217728</int>
<string key="NSContents">Save Panel Sheet</string>
<reference key="NSSupport" ref="394344788"/>
<string key="NSCellIdentifier">_NS:9</string>
<reference key="NSControlView" ref="808066814"/>
<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 class="NSButton" id="821769865">
<reference key="NSNextResponder" ref="161598483"/>
<int key="NSvFlags">289</int>
<string key="NSFrame">{{214, 12}, {147, 32}}</string>
<string key="NSFrame">{{234, 12}, {147, 32}}</string>
<reference key="NSSuperview" ref="161598483"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="917693159"/>
@@ -385,7 +314,7 @@
<object class="NSButton" id="133258452">
<reference key="NSNextResponder" ref="161598483"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{12, 206}, {329, 18}}</string>
<string key="NSFrame">{{18, 186}, {329, 18}}</string>
<reference key="NSSuperview" ref="161598483"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="772963208"/>
@@ -416,7 +345,7 @@
<object class="NSButton" id="1070361803">
<reference key="NSNextResponder" ref="161598483"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{12, 137}, {329, 18}}</string>
<string key="NSFrame">{{18, 130}, {329, 18}}</string>
<reference key="NSSuperview" ref="161598483"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="945251289"/>
@@ -442,10 +371,10 @@
<object class="NSButton" id="945251289">
<reference key="NSNextResponder" ref="161598483"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{12, 117}, {329, 18}}</string>
<string key="NSFrame">{{18, 110}, {329, 18}}</string>
<reference key="NSSuperview" ref="161598483"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="626349312"/>
<reference key="NSNextKeyView" ref="671904505"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="1032816">
@@ -468,9 +397,10 @@
<object class="NSButton" id="671904505">
<reference key="NSNextResponder" ref="161598483"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{12, 97}, {329, 18}}</string>
<string key="NSFrame">{{18, 90}, {329, 18}}</string>
<reference key="NSSuperview" ref="161598483"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="626349312"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="885506522">
@@ -493,10 +423,10 @@
<object class="NSButton" id="816373959">
<reference key="NSNextResponder" ref="161598483"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{193, 366}, {174, 18}}</string>
<string key="NSFrame">{{193, 268}, {174, 18}}</string>
<reference key="NSSuperview" ref="161598483"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="1055092187"/>
<reference key="NSNextKeyView"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="26730683">
@@ -519,7 +449,7 @@
<object class="NSButton" id="893839534">
<reference key="NSNextResponder" ref="161598483"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{193, 346}, {174, 18}}</string>
<string key="NSFrame">{{193, 248}, {174, 18}}</string>
<reference key="NSSuperview" ref="161598483"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="583986702"/>
@@ -545,7 +475,7 @@
<object class="NSMatrix" id="531109111">
<reference key="NSNextResponder" ref="161598483"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{194, 390}, {261, 113}}</string>
<string key="NSFrame">{{194, 292}, {261, 113}}</string>
<reference key="NSSuperview" ref="161598483"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="968632972"/>
@@ -736,10 +666,10 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<object class="NSButton" id="583986702">
<reference key="NSNextResponder" ref="161598483"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{192, 326}, {210, 18}}</string>
<string key="NSFrame">{{192, 228}, {210, 18}}</string>
<reference key="NSSuperview" ref="161598483"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="154209420"/>
<reference key="NSNextKeyView"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="920567219">
@@ -762,10 +692,10 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<object class="NSButton" id="132928531">
<reference key="NSNextResponder" ref="161598483"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{192, 306}, {180, 18}}</string>
<string key="NSFrame">{{192, 208}, {180, 18}}</string>
<reference key="NSSuperview" ref="161598483"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="808066814"/>
<reference key="NSNextKeyView"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="479229106">
@@ -788,7 +718,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<object class="NSTextField" id="772963208">
<reference key="NSNextResponder" ref="161598483"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{24, 174}, {368, 26}}</string>
<string key="NSFrame">{{30, 154}, {368, 26}}</string>
<reference key="NSSuperview" ref="161598483"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="1070361803"/>
@@ -816,7 +746,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
</object>
</object>
</array>
<string key="NSFrameSize">{455, 523}</string>
<string key="NSFrameSize">{468, 425}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="666980504"/>
@@ -987,30 +917,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
</object>
<int key="connectionID">206</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">newColorPanelSheet:</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="1055092187"/>
</object>
<int key="connectionID">216</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">newOpenPanelSheet:</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="154209420"/>
</object>
<int key="connectionID">217</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">newSavePanelSheet:</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="808066814"/>
</object>
<int key="connectionID">218</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">_shadeParentWindow</string>
@@ -1079,22 +985,19 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<reference ref="368830815"/>
<reference ref="223206700"/>
<reference ref="968632972"/>
<reference ref="917693159"/>
<reference ref="821769865"/>
<reference ref="244990043"/>
<reference ref="133258452"/>
<reference ref="1070361803"/>
<reference ref="772963208"/>
<reference ref="154209420"/>
<reference ref="1055092187"/>
<reference ref="816373959"/>
<reference ref="893839534"/>
<reference ref="531109111"/>
<reference ref="583986702"/>
<reference ref="132928531"/>
<reference ref="808066814"/>
<reference ref="133258452"/>
<reference ref="772963208"/>
<reference ref="1070361803"/>
<reference ref="945251289"/>
<reference ref="671904505"/>
<reference ref="244990043"/>
<reference ref="917693159"/>
<reference ref="821769865"/>
<reference ref="626349312"/>
<reference ref="225469319"/>
</array>
@@ -1390,45 +1293,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<reference key="object" ref="612486558"/>
<reference key="parent" ref="772963208"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">207</int>
<reference key="object" ref="1055092187"/>
<array class="NSMutableArray" key="children">
<reference ref="592906133"/>
</array>
<reference key="parent" ref="161598483"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">208</int>
<reference key="object" ref="592906133"/>
<reference key="parent" ref="1055092187"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">210</int>
<reference key="object" ref="154209420"/>
<array class="NSMutableArray" key="children">
<reference ref="822801681"/>
</array>
<reference key="parent" ref="161598483"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">211</int>
<reference key="object" ref="822801681"/>
<reference key="parent" ref="154209420"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">213</int>
<reference key="object" ref="808066814"/>
<array class="NSMutableArray" key="children">
<reference ref="311705944"/>
</array>
<reference key="parent" ref="161598483"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">214</int>
<reference key="object" ref="311705944"/>
<reference key="parent" ref="808066814"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">220</int>
<reference key="object" ref="671904505"/>
@@ -1487,12 +1351,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
<string key="202.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="203.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="204.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="207.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="208.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="210.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="211.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="213.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="214.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="22.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="220.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="221.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
@@ -1,125 +1,147 @@
@implementation SheetWindowController : CPWindowController
{
@outlet CPButton _closeButton;
@outlet CPButton _sheetWindowHackCheckbox;
@outlet CPButton _altCloseButton;
@outlet CPButton _otherCloseButton;
@outlet CPButton _orderOutAfterCheckbox;
@outlet CPRadioGroup _windowTypeMatrix;
@outlet CPButton _titledMaskButton;
@outlet CPButton _closableMaskButton;
@outlet CPButton _miniaturizableMaskButton;
@outlet CPButton _resizableMaskButton;
@outlet CPButton _shadeWindowView;
@outlet CPButton _shadeContentView;
@outlet CPButton _shadeParentWindow;
CPModalSession _modalSession;
CPWindow _parentWindow;
CPWindow _sheet;
int _returnCode;
CPColor _savedColor;
@outlet CPButton _closeButton;
@outlet CPButton _sheetWindowHackCheckbox;
@outlet CPButton _altCloseButton;
@outlet CPButton _otherCloseButton;
@outlet CPButton _orderOutAfterCheckbox;
@outlet CPRadioGroup _windowTypeMatrix;
@outlet CPButton _titledMaskButton;
@outlet CPButton _closableMaskButton;
@outlet CPButton _miniaturizableMaskButton;
@outlet CPButton _resizableMaskButton;
@outlet CPButton _shadeWindowView;
@outlet CPButton _shadeContentView;
@outlet CPButton _shadeParentWindow;
CPModalSession _modalSession;
CPWindow _parentWindow;
CPWindow _sheet;
int _returnCode;
CPColor _savedColor;
}
-(void)initWithWindowCibName:(CPString)cibName
- (void)initWithWindowCibName:(CPString)cibName
{
CPLog.debug("[%@ %@]", [self class], _cmd);
self = [super initWithWindowCibName:cibName];
CPLog.debug("[%@ %@]", [self class], _cmd);
_closeButton = nil;
return self;
}
self = [super initWithWindowCibName:cibName];
-(void)positionWindow
{
var keyWindow = [CPApp keyWindow];
var origin=CPPointMake(40,40);
if (keyWindow)
{
origin = ([keyWindow frame]).origin;
origin = CPPointMake(origin.x + 20, origin.y + 20);
}
[[self window] setFrameOrigin:origin];
}
_closeButton = nil;
-(void)awakeFromCib
{
CPLog.debug("[%@ %@]", [self class], _cmd);
if (!_closeButton)
CPLog.fatal("_closeButton is not connected!");
[_closeButton setTarget:self];
[_closeButton setAction:@selector(unsetAction:)];
[_altCloseButton setTarget:self];
[_altCloseButton setAction:@selector(unsetAction:)];
[_otherCloseButton setTarget:self];
[_otherCloseButton setAction:@selector(unsetAction:)];
}
-(void)unsetAction:(id)sender
{
CPLog.warn("No action set on this %@", [sender class]);
}
-(void)createCloseButton:(CPWindow)window
{
_closeButton = [ [CPButton alloc] initWithFrame:CGRectMake(0,0,32,100)];
[_closeButton setTitle:@"Close"];
[_closeButton setButtonType:CPMomentaryPushInButton];
[_closeButton setBezelStyle:CPBezelBorder];
[_closeButton sizeToFit];
[[window contentView] addSubview:_closeButton positioned:CPWindowAbove relativeTo:nil];
}
-(SheetWindowController)initWithStyleMask:(int)styleMask debug:(int)debug
{
CPLog.debug("[%@ %@] mask=%d radioGroup=%@", [self class], _cmd, styleMask, _windowTypeMatrix);
if (styleMask < 0)
return [self initWithWindowCibName:@"Window"];
var window = [ [CPWindow alloc]
initWithContentRect:CGRectMake(0,0,400,300)
styleMask:styleMask];
if (debug & 1)
[window setBackgroundColor:[CPColor colorWithCalibratedRed:1.0 green:0.0 blue:0.0 alpha:0.5]];
if (debug & 2)
[[window contentView] setBackgroundColor:[CPColor colorWithCalibratedRed:0.0 green:0.0 blue:1.0 alpha:0.5]];
if (self = [super initWithWindow:window])
{
[self createCloseButton:window];
}
return self;
}
-(SheetWindowController)allocController
- (void)positionWindow
{
CPLog.debug("[%@ %@] groupClass=%@", [self class], _cmd,
[ [ [ [ [_windowTypeMatrix subviews] objectAtIndex:0] radioGroup] selectedRadio] tag]);
var keyWindow = [CPApp keyWindow],
origin = CPPointMake(40,40);
var type = 1;
if (keyWindow)
{
origin = ([keyWindow frame]).origin;
origin = CPPointMake(origin.x + 20, origin.y + 20);
}
[[self window] setFrameOrigin:origin];
}
- (void)awakeFromCib
{
CPLog.debug("[%@ %@]", [self class], _cmd);
if (!_closeButton)
CPLog.fatal("_closeButton is not connected!");
[_closeButton setTarget:self];
[_closeButton setAction:@selector(unsetAction:)];
[_altCloseButton setTarget:self];
[_altCloseButton setAction:@selector(unsetAction:)];
[_otherCloseButton setTarget:self];
[_otherCloseButton setAction:@selector(unsetAction:)];
}
- (void)unsetAction:(id)sender
{
CPLog.warn("No action set on this %@", [sender class]);
}
- (void)addButtons:(CPWindow)window
{
var x = 10,
unsetAction = @selector(unsetAction:);
_closeButton = [ [CPButton alloc] initWithFrame:CGRectMake(x,10,32,100)];
[_closeButton setTitle:@"Close"];
[_closeButton setButtonType:CPMomentaryPushInButton];
[_closeButton setBezelStyle:CPBezelBorder];
[_closeButton sizeToFit];
[_closeButton setTarget:self];
[_closeButton setAction:unsetAction];
[[window contentView] addSubview:_closeButton positioned:CPWindowAbove relativeTo:nil];
x += 10 + CGRectGetWidth([_closeButton frame]);
_altCloseButton = [ [CPButton alloc] initWithFrame:CGRectMake(x, 10,32,100)];
[_altCloseButton setTitle:@"Close Parent Too"];
[_altCloseButton setButtonType:CPMomentaryPushInButton];
[_altCloseButton setBezelStyle:CPBezelBorder];
[_altCloseButton sizeToFit];
[_altCloseButton setTarget:self];
[_altCloseButton setAction:unsetAction];
[[window contentView] addSubview:_altCloseButton positioned:CPWindowAbove relativeTo:nil];
x += 10 + CGRectGetWidth([_altCloseButton frame]);
_otherCloseButton = [ [CPButton alloc] initWithFrame:CGRectMake(x, 10,32,100)];
[_otherCloseButton setTitle:@"Chain Sheets"];
[_otherCloseButton setButtonType:CPMomentaryPushInButton];
[_otherCloseButton setBezelStyle:CPBezelBorder];
[_otherCloseButton sizeToFit];
[_otherCloseButton setTarget:self];
[_otherCloseButton setAction:unsetAction];
[[window contentView] addSubview:_otherCloseButton positioned:CPWindowAbove relativeTo:nil];
}
- (SheetWindowController)initWithStyleMask:(int)styleMask debug:(int)debug
{
CPLog.debug("[%@ %@] mask=%d radioGroup=%@", [self class], _cmd, styleMask, _windowTypeMatrix);
if (styleMask < 0)
return [self initWithWindowCibName:@"Window"];
var window = [ [CPWindow alloc] initWithContentRect:CGRectMake(0,0,400,300) styleMask:styleMask];
if (debug & 1)
[window setBackgroundColor:[CPColor colorWithCalibratedRed:1.0 green:0.0 blue:0.0 alpha:0.5]];
if (debug & 2)
[[window contentView] setBackgroundColor:[CPColor colorWithCalibratedRed:0.0 green:0.0 blue:1.0 alpha:0.5]];
if (self = [super initWithWindow:window])
[self addButtons:window];
return self;
}
- (SheetWindowController)allocController
{
CPLog.debug("[%@ %@] groupClass=%@", [self class], _cmd,
[ [ [ [ [_windowTypeMatrix subviews] objectAtIndex:0] radioGroup] selectedRadio] tag]);
var type = 1;
if (_windowTypeMatrix)
type = [ [ [ [ [_windowTypeMatrix subviews] objectAtIndex:0] radioGroup] selectedRadio] tag];
var styleMask = 0;
if ([_titledMaskButton state])
styleMask |= CPTitledWindowMask;
if ([_closableMaskButton state])
styleMask |= CPClosableWindowMask;
if ([_miniaturizableMaskButton state])
styleMask |= CPMiniaturizableWindowMask;
styleMask |= CPTitledWindowMask;
if ([_closableMaskButton state])
styleMask |= CPClosableWindowMask;
if ([_miniaturizableMaskButton state])
styleMask |= CPMiniaturizableWindowMask;
switch (type)
{
case 2:
@@ -129,94 +151,114 @@
styleMask = CPBorderlessWindowMask;
break;
case 4:
styleMask |= CPTexturedBackgroundWindowMask;
styleMask |= CPTexturedBackgroundWindowMask;
break;
case 5:
styleMask = CPDocModalWindowMask;
break;
styleMask = CPDocModalWindowMask;
break;
default:
}
if ([_resizableMaskButton state])
styleMask |= CPResizableWindowMask;
if (type==1)
styleMask = -1;
styleMask |= CPResizableWindowMask;
if (type == 1)
styleMask = -1;
var debug = 0;
if ([_shadeWindowView state])
debug |= 1;
debug |= 1;
if ([_shadeContentView state])
debug |= 2;
debug |= 2;
return [[SheetWindowController alloc] initWithStyleMask:styleMask debug:debug];
}
-(SheetWindowController)allocWithPanel:(CPPanel)panel
- (SheetWindowController)allocWithPanel:(CPPanel)panel
{
return [[SheetWindowController alloc] initWithWindow:panel];
return [[SheetWindowController alloc] initWithWindow:panel];
}
- (void)disableUnlinkedButtons
{
CPLog.debug("[%@ %@]", [self class], _cmd);
var unsetSelector = @selector(unsetAction:);
if (_closeButton)
[_closeButton setEnabled:[_closeButton action] != unsetSelector];
if (_altCloseButton)
[_altCloseButton setEnabled:[_altCloseButton action] != unsetSelector];
if (_otherCloseButton)
[_otherCloseButton setEnabled:[_otherCloseButton action] != unsetSelector];
}
//
// Normal window
//
-(void)newDocument:(id)sender
- (void)newDocument:(id)sender
{
[self newWindow:sender];
[self newWindow:sender];
}
-(void)newWindow:(id)sender
- (void)newWindow:(id)sender
{
[[self allocController] runNormalWindow];
[[self allocController] runNormalWindow];
}
-(void)runNormalWindow
- (void)runNormalWindow
{
CPLog.debug("[%@ %@]", [self class], _cmd);
CPLog.debug("[%@ %@]", [self class], _cmd);
[self positionWindow];
[[self window] setTitle:@"Normal Window"];
[_closeButton setTarget:[self window]];
[_closeButton setAction:@selector(orderOut:)];
[self showWindow:self];
[self positionWindow];
[[self window] setTitle:@"Normal Window"];
[_closeButton setTarget:[self window]];
[_closeButton setAction:@selector(orderOut:)];
[self disableUnlinkedButtons];
[self showWindow:self];
}
//
// Modal window
//
-(void)newModalWindow:(id)sender
- (void)newModalWindow:(id)sender
{
[[self allocController] runModalWindow];
[[self allocController] runModalWindow];
}
-(void)runModalWindow
- (void)runModalWindow
{
CPLog.debug("[%@ %@]", [self class], _cmd);
CPLog.debug("[%@ %@]", [self class], _cmd);
[[self window] setTitle:@"Modal Window"];
[[self window] setTitle:@"Modal Window"];
[[self window] setDelegate:self];
[_closeButton setTarget:self];
[_closeButton setAction:@selector(endModalWindow:)];
//[self showWindow:self];
[CPApp runModalForWindow:[self window]];
[_closeButton setTarget:self];
[_closeButton setAction:@selector(endModalWindow:)];
[self disableUnlinkedButtons];
//[self showWindow:self];
[CPApp runModalForWindow:[self window]];
}
-(void)endModalWindow:(id)sender
- (void)endModalWindow:(id)sender
{
CPLog.debug("[%@ %@]", [self class], _cmd);
CPLog.debug("[%@ %@]", [self class], _cmd);
// performClose shouldn't work, if the window has no close button
if ([[self window] styleMask] & CPClosableWindowMask)
[[self window] performClose:self];
else
[[self window] close];
// performClose shouldn't work, if the window has no close button
if ([[self window] styleMask] & CPClosableWindowMask)
[[self window] performClose:self];
else
[[self window] close];
}
-(void)windowWillClose:(NSNotification*)notification
- (void)windowWillClose:(NSNotification*)notification
{
CPLog.debug("[%@ %@]", [self class], _cmd);
// this is one way to handle close button on modal window
CPLog.debug("[%@ %@]", [self class], _cmd);
// this is one way to handle close button on modal window
if ([CPApp modalWindow])
[CPApp stopModal];
}
@@ -224,243 +266,219 @@
//
// Sheet
//
-(void)newSheet:(id)sender
- (void)newSheet:(id)sender
{
[[self allocController] runSheetForWindow:[self window]];
[[self allocController] runSheetForWindow:[self window]];
}
-(void)runSheetForWindow:(CPWindow)parentWindow
- (void)runSheetForWindow:(CPWindow)parentWindow
{
CPLog.debug("[%@ %@]", [self class], _cmd);
CPLog.debug("[%@ %@]", [self class], _cmd);
var sheet = [self window];
[parentWindow setDelegate:self];
_parentWindow = parentWindow;
_sheet = sheet;
var sheet = [self window];
[parentWindow setDelegate:self];
_parentWindow = parentWindow;
_sheet = sheet;
// NOTE: _closeButton doesn't exist until we call [self window] to load window from cib!
[_closeButton setTarget:self];
[_closeButton setAction:@selector(closeSheet:)];
[_altCloseButton setAction:@selector(closeSheetAndParent:)];
[_otherCloseButton setAction:@selector(closeSheetAndRepeat:)];
[CPApp beginSheet:sheet
modalForWindow:parentWindow
modalDelegate:self
didEndSelector:@selector(didEndSheet:returnCode:contextInfo:)
contextInfo:parentWindow];
// NOTE: _closeButton doesn't exist until we call [self window] to load window from cib!
[_closeButton setTarget:self];
[_closeButton setAction:@selector(closeSheet:)];
[_altCloseButton setAction:@selector(closeSheetAndParent:)];
[_otherCloseButton setAction:@selector(closeSheetAndRepeat:)];
[self disableUnlinkedButtons];
[CPApp beginSheet:sheet
modalForWindow:parentWindow
modalDelegate:self
didEndSelector:@selector(didEndSheet:returnCode:contextInfo:)
contextInfo:parentWindow];
}
-(void)closeSheet:(id)sender
- (void)closeSheet:(id)sender
{
CPLog.debug("[%@ %@]", [self class], _cmd);
_returnCode = 1;
CPLog.debug("[%@ %@]", [self class], _cmd);
_returnCode = 1;
var orderOutAfter = [_orderOutAfterCheckbox state];
if (!orderOutAfter)
[[self window] orderOut:nil];
[CPApp endSheet:[self window] returnCode:_returnCode];
if (orderOutAfter)
[[self window] orderOut:nil];
var orderOutAfter = [_orderOutAfterCheckbox state];
if (!orderOutAfter)
[[self window] orderOut:nil];
[CPApp endSheet:[self window] returnCode:_returnCode];
if (orderOutAfter)
[[self window] orderOut:nil];
}
-(void)closeSheetAndParent:(id)sender
- (void)closeSheetAndParent:(id)sender
{
CPLog.debug("[%@ %@]", [self class], _cmd);
CPLog.debug("[%@ %@]", [self class], _cmd);
// common use case is saving document in response to a close,
// in this case we don't want to show the animation at all,
// and also get rid of the parent window
[_parentWindow close];
var orderOutAfter = [_orderOutAfterCheckbox state];
if (!orderOutAfter)
[[self window] orderOut:nil];
if (!orderOutAfter)
[[self window] orderOut:nil];
_returnCode = 99;
[CPApp endSheet:[self window] returnCode:_returnCode];
if (orderOutAfter)
[[self window] orderOut:nil];
[[self window] orderOut:nil];
}
-(void)closeSheetAndRepeat:(id)sender
- (void)closeSheetAndRepeat:(id)sender
{
CPLog.debug("[%@ %@]", [self class], _cmd);
CPLog.debug("[%@ %@]", [self class], _cmd);
// common use case is showing a progress bar after a save command,
// the orderout gets rid of the current sheet,
// the orderout gets rid of the current sheet,
// the return code indicates to open another sheet up
var orderOutAfter = [_orderOutAfterCheckbox state];
if (!orderOutAfter)
[[self window] orderOut:nil];
_returnCode = 77;
var orderOutAfter = [_orderOutAfterCheckbox state];
if (!orderOutAfter)
[[self window] orderOut:nil];
_returnCode = 77;
[CPApp endSheet:[self window] returnCode:_returnCode];
if (orderOutAfter)
[[self window] orderOut:nil];
[[self window] orderOut:nil];
}
//
// "Modal" Sheet implemented by using modal session
//
-(void)newModalSheet:(id)sender
- (void)newModalSheet:(id)sender
{
[[self allocController] runModalSheetForWindow:[self window]];
[[self allocController] runModalSheetForWindow:[self window]];
}
-(void)runModalSheetForWindow:(CPWindow)parentWindow
- (void)runModalSheetForWindow:(CPWindow)parentWindow
{
CPLog.debug("[%@ %@]", [self class], _cmd);
CPLog.debug("[%@ %@]", [self class], _cmd);
var sheet = [self window];
[parentWindow setDelegate:self];
_parentWindow = parentWindow;
_sheet = sheet;
var sheet = [self window];
[parentWindow setDelegate:self];
_parentWindow = parentWindow;
_sheet = sheet;
[_closeButton setTarget:self];
[_closeButton setAction:@selector(closeModalSheet:)];
[_closeButton setTarget:self];
[_closeButton setAction:@selector(closeModalSheet:)];
[self disableUnlinkedButtons];
[CPApp beginSheet:sheet
modalForWindow:parentWindow
modalDelegate:self
didEndSelector:@selector(didEndSheet:returnCode:contextInfo:)
contextInfo:parentWindow];
[CPApp beginSheet:sheet
modalForWindow:parentWindow
modalDelegate:self
didEndSelector:@selector(didEndSheet:returnCode:contextInfo:)
contextInfo:parentWindow];
// what is the difference between these two approaches?
[CPApp runModalForWindow:sheet];
//var session = [CPApp beginModalSessionForWindow:sheet];
//[CPApp runModalSession:session];
// what is the difference between these two approaches?
[CPApp runModalForWindow:sheet];
//var session = [CPApp beginModalSessionForWindow:sheet];
//[CPApp runModalSession:session];
}
-(void)closeModalSheet:(id)sender
- (void)closeModalSheet:(id)sender
{
CPLog.debug("[%@ %@]", [self class], _cmd);
var orderOutAfter = [_orderOutAfterCheckbox state];
if (!orderOutAfter)
[[self window] orderOut:nil];
_returnCode = 2;
[CPApp endSheet:[self window] returnCode:_returnCode];
// what return should we get, the sheet or modal?
[CPApp stopModalWithCode:999];
CPLog.debug("[%@ %@]", [self class], _cmd);
if (orderOutAfter)
[[self window] orderOut:nil];
var orderOutAfter = [_orderOutAfterCheckbox state];
if (!orderOutAfter)
[[self window] orderOut:nil];
_returnCode = 2;
[CPApp endSheet:[self window] returnCode:_returnCode];
// what return should we get, the sheet or modal?
[CPApp stopModalWithCode:999];
if (orderOutAfter)
[[self window] orderOut:nil];
}
//
// Test alert panels
//
-(void)newAlertSheet:(id)sender
- (void)newAlertSheet:(id)sender
{
[self runAlertSheet:[self window]];
[self runAlertSheet:[self window]];
}
-(void)runAlertSheet:(CPWindow)parentWindow
- (void)runAlertSheet:(CPWindow)parentWindow
{
// BUG: capp 0.9.5 on WebKit will chop off "bug." in the info text
var alert = [CPAlert alertWithMessageText:@"Alert message text goes here"
defaultButton:@"DefaultButton"
alternateButton:@"AltButton"
otherButton:@"OtherButton"
// BUG: capp 0.9.5 on WebKit will chop off "bug." in the info text
var alert = [CPAlert alertWithMessageText:@"Alert message text goes here"
defaultButton:@"DefaultButton"
alternateButton:@"AltButton"
otherButton:@"OtherButton"
informativeTextWithFormat:@"This informative text sentence shows text wrapping bug."];
[parentWindow setDelegate:self];
_parentWindow = parentWindow;
_sheet = alert;
_returnCode = -1;
[parentWindow setDelegate:self];
_parentWindow = parentWindow;
_sheet = alert;
_returnCode = -1;
[alert beginSheetModalForWindow:parentWindow
modalDelegate:self
didEndSelector:@selector(didEndSheet:returnCode:contextInfo:)
contextInfo:parentWindow];
modalDelegate:self
didEndSelector:@selector(didEndSheet:returnCode:contextInfo:)
contextInfo:parentWindow];
}
-(void)newColorPanelSheet:(id)sender
{
var panel = [CPColorPanel sharedColorPanel];
var controller = [self allocWithPanel:panel];
[controller createCloseButton:panel];
[controller runSheetForWindow:[self window]];
}
-(void)newOpenPanelSheet:(id)sender
{
var panel = [CPOpenPanel openPanel];
var controller = [self allocWithPanel:panel];
[controller createCloseButton:panel];
[controller runSheetForWindow:[self window]];
}
-(void)newSavePanelSheet:(id)sender
{
var panel = [CPSavePanel savePanel];
var controller = [self allocWithPanel:panel];
[controller createCloseButton:panel];
[controller runSheetForWindow:[self window]];
}
// Test open and save panels
//
// Test notifications/delegate methods
//
-(void)didEndSheet:(CPWindow)sheet returnCode:(int)returnCode contextInfo:(id)parentWindow
- (void)didEndSheet:(CPWindow)sheet returnCode:(int)returnCode contextInfo:(id)parentWindow
{
CPLog.debug("[%@ %@] returnCode=%d", [self class], _cmd, returnCode);
CPLog.debug("[%@ %@] returnCode=%d", [self class], _cmd, returnCode);
if (sheet !== _sheet)
CPLog.fatal("sheet invalid");
if (sheet !== _sheet)
CPLog.fatal("sheet invalid");
if (_returnCode >= 0 && returnCode != _returnCode)
CPLog.fatal("returnCode invalid");
if (_parentWindow !== parentWindow)
CPLog.fatal("contextInfo invalid");
// test sheet chaining. it should be possible to start another sheet from didEndSheet,
// but only if we orderOut: the sheet before we called endSheet: This is how cocoa works too.
if (returnCode == 77)
[self runSheetForWindow:parentWindow];
//[self runAlertSheet:parentWindow];
if (_returnCode >= 0 && returnCode != _returnCode)
CPLog.fatal("returnCode invalid");
if (_parentWindow !== parentWindow)
CPLog.fatal("contextInfo invalid");
// test sheet chaining. it should be possible to start another sheet from didEndSheet,
// but only if we orderOut: the sheet before we called endSheet: This is how cocoa works too.
if (returnCode == 77)
[self runSheetForWindow:parentWindow];
//[self runAlertSheet:parentWindow];
}
- (BOOL)shadeWindow
{
return [_shadeParentWindow state];
{
return [_shadeParentWindow state];
}
- (void)windowWillBeginSheet:(NSNotification*)notification
{
CPLog.debug("[%@ %@]", [self class], _cmd);
if ([notification object] !== _parentWindow)
CPLog.fatal("notification object should be delegate's window");
if ([[_parentWindow windowController] shadeWindow])
{
_savedColor = [[_parentWindow contentView] backgroundColor];
[[_parentWindow contentView] setBackgroundColor:
[CPColor colorWithCalibratedRed:0.0 green:0.7 blue:0.0 alpha:1.0]];
}
CPLog.debug("[%@ %@]", [self class], _cmd);
if ([notification object] !== _parentWindow)
CPLog.fatal("notification object should be delegate's window");
if ([[_parentWindow windowController] shadeWindow])
{
_savedColor = [[_parentWindow contentView] backgroundColor];
[[_parentWindow contentView] setBackgroundColor:
[CPColor colorWithCalibratedRed:0.0 green:0.7 blue:0.0 alpha:1.0]];
}
}
- (void)windowDidEndSheet:(NSNotification *)notification
{
CPLog.debug("[%@ %@]", [self class], _cmd);
CPLog.debug("[%@ %@]", [self class], _cmd);
if ([notification object] !== _parentWindow)
CPLog.fatal("notification object should be delegate's window");
if ([notification object] !== _parentWindow)
CPLog.fatal("notification object should be delegate's window");
if ([[_parentWindow windowController] shadeWindow])
[[_parentWindow contentView] setBackgroundColor:_savedColor];
if ([[_parentWindow windowController] shadeWindow])
[[_parentWindow contentView] setBackgroundColor:_savedColor];
}
@end