mirror of
https://github.com/cappuccino/cappuccino.git
synced 2026-09-10 12:47:13 +00:00
Compare commits
11
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f1cb388827 | ||
|
|
2e1a0da0e4 | ||
|
|
47d0537ae4 | ||
|
|
81c2f219ee | ||
|
|
5e53a2326c | ||
|
|
0394731fdf | ||
|
|
a426aec2c9 | ||
|
|
dbad10f060 | ||
|
|
3985ef24e3 | ||
|
|
ff4a79d6cd | ||
|
|
9b017de39c |
@@ -595,7 +595,6 @@ CPCriticalAlertStyle = 2;
|
||||
frame.size = [self currentValueForThemeAttribute:@"size"];
|
||||
|
||||
_window = [[CPWindow alloc] initWithContentRect:frame styleMask:forceStyle || _defaultWindowStyle];
|
||||
[_window setLevel:CPStatusWindowLevel];
|
||||
|
||||
if (_title)
|
||||
[_window setTitle:_title];
|
||||
|
||||
+6
-26
@@ -250,13 +250,8 @@ CPRunContinuesResponse = -1002;
|
||||
_documentController = [CPDocumentController sharedDocumentController];
|
||||
|
||||
var needsUntitled = !!_documentController,
|
||||
URLStrings = nil;
|
||||
|
||||
#if PLATFORM(DOM)
|
||||
URLStrings = window.cpOpeningURLStrings && window.cpOpeningURLStrings();
|
||||
#endif
|
||||
|
||||
var index = 0,
|
||||
URLStrings = window.cpOpeningURLStrings && window.cpOpeningURLStrings(),
|
||||
index = 0,
|
||||
count = [URLStrings count];
|
||||
|
||||
for (; index < count; ++index)
|
||||
@@ -1014,8 +1009,7 @@ CPRunContinuesResponse = -1002;
|
||||
*/
|
||||
- (CPArray)arguments
|
||||
{
|
||||
// FIXME This should probably not access the window object #if !PLATFORM(DOM), but the unit tests rely on it.
|
||||
if (window && window.location && _fullArgsString !== window.location.hash)
|
||||
if (_fullArgsString !== window.location.hash)
|
||||
[self _reloadArguments];
|
||||
|
||||
return _args;
|
||||
@@ -1042,9 +1036,8 @@ CPRunContinuesResponse = -1002;
|
||||
if (!args || args.length == 0)
|
||||
{
|
||||
_args = [];
|
||||
#if PLATFORM(DOM)
|
||||
window.location.hash = @"#";
|
||||
#endif
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1059,15 +1052,12 @@ CPRunContinuesResponse = -1002;
|
||||
|
||||
var hash = [toEncode componentsJoinedByString:@"/"];
|
||||
|
||||
#if PLATFORM(DOM)
|
||||
window.location.hash = @"#" + hash;
|
||||
#endif
|
||||
}
|
||||
|
||||
- (void)_reloadArguments
|
||||
{
|
||||
// FIXME This should probably not access the window object #if !PLATFORM(DOM), but the unit tests rely on it.
|
||||
_fullArgsString = (window && window.location) ? window.location.hash : "";
|
||||
_fullArgsString = window.location.hash;
|
||||
|
||||
if (_fullArgsString.length)
|
||||
{
|
||||
@@ -1228,17 +1218,7 @@ function CPApplicationMain(args, namedArgs)
|
||||
#if PLATFORM(DOM)
|
||||
// hook to allow recorder, etc to manipulate things before starting AppKit
|
||||
if (window.parent !== window && typeof window.parent._childAppIsStarting === "function")
|
||||
{
|
||||
try
|
||||
{
|
||||
window.parent._childAppIsStarting(window);
|
||||
}
|
||||
catch(err)
|
||||
{
|
||||
// This could happen if we're in an iframe without access to the parent frame.
|
||||
CPLog.warn("Failed to call parent frame's _childAppIsStarting().");
|
||||
}
|
||||
}
|
||||
window.parent._childAppIsStarting(window);
|
||||
#endif
|
||||
|
||||
var mainBundle = [CPBundle mainBundle],
|
||||
|
||||
@@ -332,16 +332,6 @@ CPBelowBottom = 6;
|
||||
[_titleView setFont:aFont];
|
||||
}
|
||||
|
||||
/*!
|
||||
Return the text field used to display the receiver's title.
|
||||
|
||||
This is the Cappuccino equivalent to the `titleCell` method.
|
||||
*/
|
||||
- (CPTextField)titleView
|
||||
{
|
||||
return _titleView;
|
||||
}
|
||||
|
||||
- (void)_manageTitlePositioning
|
||||
{
|
||||
if (_titlePosition == CPNoTitle)
|
||||
|
||||
@@ -83,8 +83,7 @@ CPCanvasParentDrawErrorsOnMovementBug = 1 << 0;
|
||||
var USER_AGENT = "",
|
||||
PLATFORM_ENGINE = CPUnknownBrowserEngine,
|
||||
PLATFORM_FEATURES = 0,
|
||||
PLATFORM_BUGS = 0,
|
||||
PLATFORM_STYLE_JS_PROPERTIES = {};
|
||||
PLATFORM_BUGS = 0;
|
||||
|
||||
// default these features to true
|
||||
|
||||
@@ -274,87 +273,3 @@ else
|
||||
CPUndoKeyEquivalentModifierMask = CPControlKeyMask;
|
||||
CPRedoKeyEquivalentModifierMask = CPControlKeyMask;
|
||||
}
|
||||
|
||||
/*!
|
||||
Return the properly prefixed JS property for the given name. E.g. in a webkit browser,
|
||||
CPBrowserStyleProperty('transition') -> WebkitTransition
|
||||
|
||||
While technically not a style property, style related event handler names are also supported.
|
||||
CPBrowserStyleProperty('transitionend') -> 'webkitTransitionEnd'
|
||||
|
||||
CSS is only available in platform(dom), so don't rely too heavily on it.
|
||||
*/
|
||||
function CPBrowserStyleProperty(aProperty)
|
||||
{
|
||||
var lowerProperty = aProperty.toLowerCase();
|
||||
|
||||
if (PLATFORM_STYLE_JS_PROPERTIES[lowerProperty] === undefined)
|
||||
{
|
||||
var r = nil;
|
||||
|
||||
#if PLATFORM(DOM)
|
||||
var testElement = document.createElement('div');
|
||||
|
||||
switch (lowerProperty)
|
||||
{
|
||||
case 'transitionend':
|
||||
var candidates = {
|
||||
'WebkitTransition' : 'webkitTransitionEnd',
|
||||
'MozTransition' : 'transitionend',
|
||||
'OTransition' : 'oTransitionEnd',
|
||||
'msTransition' : 'MSTransitionEnd',
|
||||
'transition' : 'transitionend'
|
||||
};
|
||||
|
||||
r = candidates[PLATFORM_STYLE_JS_PROPERTIES['transition']] || nil;
|
||||
break;
|
||||
default:
|
||||
var prefixes = ["Webkit", "Moz", "O", "ms"],
|
||||
capProperty = [aProperty capitalizedString];
|
||||
|
||||
for (var i = 0; i < prefixes.length; i++)
|
||||
{
|
||||
if (prefixes[i] + capProperty in testElement.style)
|
||||
{
|
||||
r = prefixes[i] + capProperty;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!r && lowerProperty in testElement.style)
|
||||
r = lowerProperty;
|
||||
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
|
||||
PLATFORM_STYLE_JS_PROPERTIES[lowerProperty] = r;
|
||||
}
|
||||
|
||||
return PLATFORM_STYLE_JS_PROPERTIES[lowerProperty];
|
||||
}
|
||||
|
||||
function CPBrowserCSSProperty(aProperty)
|
||||
{
|
||||
var browserProperty = CPBrowserStyleProperty(aProperty);
|
||||
|
||||
if (!browserProperty)
|
||||
return nil;
|
||||
|
||||
var prefixes = {
|
||||
'Webkit': '-webkit-',
|
||||
'Moz': '-moz-',
|
||||
'O': '-o-',
|
||||
'ms': '-ms-'
|
||||
};
|
||||
|
||||
for (var prefix in prefixes)
|
||||
{
|
||||
if (browserProperty.substring(0, prefix.length) == prefix)
|
||||
{
|
||||
return prefixes[prefix] + browserProperty.substring(prefix.length).toLowerCase();
|
||||
}
|
||||
}
|
||||
|
||||
return browserProperty.toLowerCase();
|
||||
}
|
||||
|
||||
@@ -99,9 +99,6 @@ var CPSharedFontManager = nil,
|
||||
{
|
||||
if (!_availableFonts)
|
||||
{
|
||||
_availableFonts = [];
|
||||
|
||||
#if PLATFORM(DOM)
|
||||
_CPFontDetectSpan = document.createElement("span");
|
||||
_CPFontDetectSpan.fontSize = "24px";
|
||||
_CPFontDetectSpan.appendChild(document.createTextNode("mmmmmmmmmml"));
|
||||
@@ -113,16 +110,13 @@ var CPSharedFontManager = nil,
|
||||
|
||||
_CPFontDetectReferenceFonts = _CPFontDetectPickTwoDifferentFonts(["monospace", "serif", "sans-serif", "cursive"]);
|
||||
|
||||
_availableFonts = [];
|
||||
for (var i = 0; i < _CPFontDetectAllFonts.length; i++)
|
||||
{
|
||||
var available = _CPFontDetectFontAvailable(_CPFontDetectAllFonts[i]);
|
||||
if (available)
|
||||
_availableFonts.push(_CPFontDetectAllFonts[i]);
|
||||
}
|
||||
#else
|
||||
// If there's no font detection, just assume all fonts are available.
|
||||
_availableFonts = _CPFontDetectAllFonts;
|
||||
#endif
|
||||
}
|
||||
return _availableFonts;
|
||||
}
|
||||
|
||||
@@ -131,7 +131,7 @@ var CPBindingOperationAnd = 0,
|
||||
if (options)
|
||||
[_info setObject:options forKey:CPOptionsKey];
|
||||
|
||||
[self _updatePlaceholdersWithOptions:options forBinding:aName];
|
||||
[self _updatePlaceholdersWithOptions:options];
|
||||
|
||||
[aDestination addObserver:self forKeyPath:aKeyPath options:CPKeyValueObservingOptionNew context:aBinding];
|
||||
|
||||
@@ -321,11 +321,6 @@ var CPBindingOperationAnd = 0,
|
||||
}
|
||||
}
|
||||
|
||||
- (void)_updatePlaceholdersWithOptions:(CPDictionary)options forBinding:(CPString)aBinding
|
||||
{
|
||||
[self _updatePlaceholdersWithOptions:options];
|
||||
}
|
||||
|
||||
- (void)_placeholderForMarker:aMarker
|
||||
{
|
||||
var placeholder = _placeholderForMarker[aMarker];
|
||||
@@ -569,8 +564,6 @@ CPFontNameBinding = @"fontName";
|
||||
CPFontBoldBinding = @"fontBold";
|
||||
CPHiddenBinding = @"hidden";
|
||||
CPFilterPredicateBinding = @"filterPredicate";
|
||||
CPMaxValueBinding = @"maxValue";
|
||||
CPMinValueBinding = @"minValue";
|
||||
CPPredicateBinding = @"predicate";
|
||||
CPSelectedIndexBinding = @"selectedIndex";
|
||||
CPSelectedLabelBinding = @"selectedLabel";
|
||||
|
||||
+1
-8
@@ -234,7 +234,7 @@ Set the behavior of the CPPopover. It can be:
|
||||
[_attachedWindow setContentView:[_contentViewController view]];
|
||||
[_attachedWindow positionRelativeToRect:positioningRect ofView:positioningView preferredEdge:preferredEdge];
|
||||
|
||||
if (!_animates && _implementedDelegateMethods & CPPopoverDelegate_popover_didShow_)
|
||||
if (_implementedDelegateMethods & CPPopoverDelegate_popover_didShow_)
|
||||
[_delegate popoverDidShow:self];
|
||||
}
|
||||
|
||||
@@ -311,13 +311,6 @@ Set the behavior of the CPPopover. It can be:
|
||||
[_delegate popoverDidClose:self];
|
||||
}
|
||||
|
||||
/*! @ignore */
|
||||
- (void)attachedWindowDidShow:(_CPAttachedWindow)anAttachedWindow
|
||||
{
|
||||
if (_implementedDelegateMethods & CPPopoverDelegate_popover_didShow_)
|
||||
[_delegate popoverDidShow:self];
|
||||
}
|
||||
|
||||
|
||||
#pragma mark -
|
||||
#pragma mark Notifications
|
||||
|
||||
@@ -213,7 +213,7 @@ var CPScrollerStyleGlobal = CPScrollerStyleOverlay,
|
||||
|
||||
@param aStyle the scroller style to set all scroller views to use (CPScrollerStyleLegacy or CPScrollerStyleOverlay)
|
||||
*/
|
||||
+ (void)setGlobalScrollerStyle:(int)aStyle
|
||||
+ (int)setGlobalScrollerStyle:(int)aStyle
|
||||
{
|
||||
CPScrollerStyleGlobal = aStyle;
|
||||
[[CPNotificationCenter defaultCenter] postNotificationName:CPScrollerStyleGlobalChangeNotification object:nil];
|
||||
|
||||
+2
-35
@@ -76,22 +76,6 @@
|
||||
return [CPStepper stepperWithInitialValue:0.0 minValue:0.0 maxValue:59.0];
|
||||
}
|
||||
|
||||
+ (Class)_binderClassForBinding:(CPString)theBinding
|
||||
{
|
||||
if (theBinding == CPValueBinding || theBinding == CPMinValueBinding || theBinding == CPMaxValueBinding)
|
||||
return [_CPStepperValueBinder class];
|
||||
|
||||
return [super _binderClassForBinding:theBinding];
|
||||
}
|
||||
|
||||
- (id)_replacementKeyPathForBinding:(CPString)aBinding
|
||||
{
|
||||
if (aBinding == CPValueBinding)
|
||||
return @"doubleValue";
|
||||
|
||||
return [super _replacementKeyPathForBinding:aBinding];
|
||||
}
|
||||
|
||||
/*!
|
||||
Initializes a CPStepper.
|
||||
@param aFrame the frame of the control
|
||||
@@ -227,7 +211,8 @@
|
||||
else
|
||||
[self setDoubleValue:([self doubleValue] - _increment)];
|
||||
|
||||
[self sendAction:[self action] to:[self target]];
|
||||
if (_target && _action && [_target respondsToSelector:_action])
|
||||
[self sendAction:_action to:_target];
|
||||
}
|
||||
|
||||
/*!
|
||||
@@ -265,24 +250,6 @@
|
||||
|
||||
@end
|
||||
|
||||
@implementation _CPStepperValueBinder : CPBinder
|
||||
{
|
||||
}
|
||||
|
||||
- (void)_updatePlaceholdersWithOptions:(CPDictionary)options forBinding:(CPString)aBinding
|
||||
{
|
||||
var placeholder = (aBinding == CPMaxValueBinding) ? [_source maxValue] : [_source minValue];
|
||||
|
||||
[super _updatePlaceholdersWithOptions:options];
|
||||
|
||||
[self _setPlaceholder:placeholder forMarker:CPMultipleValuesMarker isDefault:YES];
|
||||
[self _setPlaceholder:placeholder forMarker:CPNoSelectionMarker isDefault:YES];
|
||||
[self _setPlaceholder:placeholder forMarker:CPNotApplicableMarker isDefault:YES];
|
||||
[self _setPlaceholder:placeholder forMarker:CPNullMarker isDefault:YES];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
var CPStepperMinValue = @"CPStepperMinValue",
|
||||
CPStepperMaxValue = @"CPStepperMaxValue",
|
||||
CPStepperValueWraps = @"CPStepperValueWraps",
|
||||
|
||||
+16
-25
@@ -88,6 +88,9 @@ var CPTabViewDidSelectTabViewItemSelector = 1,
|
||||
_box = [[CPBox alloc] initWithFrame:[self bounds]];
|
||||
[self setBackgroundColor:[CPColor colorWithCalibratedWhite:0.95 alpha:1.0]];
|
||||
|
||||
[_box setAutoresizingMask:CPViewWidthSizable | CPViewHeightSizable];
|
||||
[_tabs setAutoresizingMask:CPViewMinXMargin | CPViewMaxXMargin];
|
||||
|
||||
[self addSubview:_box];
|
||||
[self addSubview:_tabs];
|
||||
}
|
||||
@@ -340,9 +343,21 @@ var CPTabViewDidSelectTabViewItemSelector = 1,
|
||||
_type = aTabViewType;
|
||||
|
||||
if (_type !== CPTopTabsBezelBorder && _type !== CPBottomTabsBezelBorder)
|
||||
{
|
||||
[_box setFrame:[self bounds]];
|
||||
[_tabs removeFromSuperview];
|
||||
}
|
||||
else
|
||||
{
|
||||
var aFrame = [self frame],
|
||||
segmentedHeight = _CGRectGetHeight([_tabs frame]),
|
||||
origin = _type === CPTopTabsBezelBorder ? segmentedHeight / 2 : 0;
|
||||
|
||||
[_box setFrame:_CGRectMake(0, origin, _CGRectGetWidth(aFrame),
|
||||
_CGRectGetHeight(aFrame) - segmentedHeight / 2)];
|
||||
|
||||
[self addSubview:_tabs];
|
||||
}
|
||||
|
||||
switch (_type)
|
||||
{
|
||||
@@ -358,29 +373,6 @@ var CPTabViewDidSelectTabViewItemSelector = 1,
|
||||
[_box setBorderType:CPNoBorder];
|
||||
break;
|
||||
}
|
||||
|
||||
[self setNeedsLayout];
|
||||
}
|
||||
|
||||
- (void)layoutSubviews
|
||||
{
|
||||
// Even if CPTabView's autoresizesSubviews is NO, _tabs and _box has to be laid out.
|
||||
// This means we can't rely on autoresize masks.
|
||||
if (_type !== CPTopTabsBezelBorder && _type !== CPBottomTabsBezelBorder)
|
||||
{
|
||||
[_box setFrame:[self bounds]];
|
||||
}
|
||||
else
|
||||
{
|
||||
var aFrame = [self frame],
|
||||
segmentedHeight = _CGRectGetHeight([_tabs frame]),
|
||||
origin = _type === CPTopTabsBezelBorder ? segmentedHeight / 2 : 0;
|
||||
|
||||
[_box setFrame:_CGRectMake(0, origin, _CGRectGetWidth(aFrame),
|
||||
_CGRectGetHeight(aFrame) - segmentedHeight / 2)];
|
||||
|
||||
[self _repositionTabs];
|
||||
}
|
||||
}
|
||||
|
||||
/*!
|
||||
@@ -505,6 +497,7 @@ var CPTabViewItemsKey = "CPTabViewItemsKey",
|
||||
[_items makeObjectsPerformSelector:@selector(_setTabView:) withObject:self];
|
||||
|
||||
[self _updateItems];
|
||||
[self _repositionTabs];
|
||||
|
||||
[self setDelegate:[aCoder decodeObjectForKey:CPTabViewDelegateKey]];
|
||||
|
||||
@@ -513,8 +506,6 @@ var CPTabViewItemsKey = "CPTabViewItemsKey",
|
||||
[self selectTabViewItem:selected];
|
||||
|
||||
[self setTabViewType:[aCoder decodeIntForKey:CPTabViewTypeKey]];
|
||||
|
||||
[self setNeedsLayout];
|
||||
}
|
||||
|
||||
return self;
|
||||
|
||||
@@ -138,7 +138,7 @@ CPPressedTab = 2;
|
||||
_view = aView;
|
||||
|
||||
if ([_tabView selectedTabViewItem] == self)
|
||||
[_tabView _setContentViewFromItem:self];
|
||||
[_tabView _setContentViewForItem:self];
|
||||
}
|
||||
|
||||
/*!
|
||||
|
||||
+7
-24
@@ -308,11 +308,6 @@ CPTextFieldStatePlaceholder = CPThemeState("placeholder");
|
||||
if (shouldBeEditable)
|
||||
_isSelectable = YES;
|
||||
|
||||
if (_isEditable)
|
||||
[self setThemeState:CPThemeStateEditable];
|
||||
else
|
||||
[self unsetThemeState:CPThemeStateEditable];
|
||||
|
||||
// We only allow first responder status if the field is editable and enabled.
|
||||
if (!shouldBeEditable && [[self window] firstResponder] === self)
|
||||
[[self window] makeFirstResponder:nil];
|
||||
@@ -495,13 +490,13 @@ CPTextFieldStatePlaceholder = CPThemeState("placeholder");
|
||||
- (BOOL)becomeFirstResponder
|
||||
{
|
||||
#if PLATFORM(DOM)
|
||||
// FIXME Why do we care about who's the first responder in a different window?
|
||||
if (CPTextFieldInputOwner && [CPTextFieldInputOwner window] !== [self window])
|
||||
[[CPTextFieldInputOwner window] makeFirstResponder:nil];
|
||||
#endif
|
||||
|
||||
// As long as we are the first responder we need to monitor the key status of our window.
|
||||
[self _setObserveWindowKeyNotifications:YES];
|
||||
[[CPNotificationCenter defaultCenter] addObserver:self selector:@selector(_windowDidResignKey:) name:CPWindowDidResignKeyNotification object:[self window]];
|
||||
[[CPNotificationCenter defaultCenter] addObserver:self selector:@selector(_windowDidBecomeKey:) name:CPWindowDidBecomeKeyNotification object:[self window]];
|
||||
|
||||
_isEditing = NO;
|
||||
|
||||
@@ -618,6 +613,10 @@ CPTextFieldStatePlaceholder = CPThemeState("placeholder");
|
||||
/* @ignore */
|
||||
- (BOOL)resignFirstResponder
|
||||
{
|
||||
// When we are no longer the first responder we don't worry about the key status of our window anymore.
|
||||
[[CPNotificationCenter defaultCenter] removeObserver:self name:CPWindowDidResignKeyNotification object:[self window]];
|
||||
[[CPNotificationCenter defaultCenter] removeObserver:self name:CPWindowDidBecomeKeyNotification object:[self window]];
|
||||
|
||||
#if PLATFORM(DOM)
|
||||
|
||||
var element = [self _inputElement],
|
||||
@@ -639,9 +638,6 @@ CPTextFieldStatePlaceholder = CPThemeState("placeholder");
|
||||
|
||||
#endif
|
||||
|
||||
// When we are no longer the first responder we don't worry about the key status of our window anymore.
|
||||
[self _setObserveWindowKeyNotifications:NO];
|
||||
|
||||
[self _resignFirstKeyResponder];
|
||||
|
||||
_isEditing = NO;
|
||||
@@ -665,6 +661,7 @@ CPTextFieldStatePlaceholder = CPThemeState("placeholder");
|
||||
_willBecomeFirstResponderByClick = NO;
|
||||
|
||||
[self _updatePlaceholderState];
|
||||
|
||||
[self setNeedsLayout];
|
||||
|
||||
#if PLATFORM(DOM)
|
||||
@@ -699,20 +696,6 @@ CPTextFieldStatePlaceholder = CPThemeState("placeholder");
|
||||
#endif
|
||||
}
|
||||
|
||||
- (void)_setObserveWindowKeyNotifications:(BOOL)shouldObserve
|
||||
{
|
||||
if (shouldObserve)
|
||||
{
|
||||
[[CPNotificationCenter defaultCenter] addObserver:self selector:@selector(_windowDidResignKey:) name:CPWindowDidResignKeyNotification object:[self window]];
|
||||
[[CPNotificationCenter defaultCenter] addObserver:self selector:@selector(_windowDidBecomeKey:) name:CPWindowDidBecomeKeyNotification object:[self window]];
|
||||
}
|
||||
else
|
||||
{
|
||||
[[CPNotificationCenter defaultCenter] removeObserver:self name:CPWindowDidResignKeyNotification object:[self window]];
|
||||
[[CPNotificationCenter defaultCenter] removeObserver:self name:CPWindowDidBecomeKeyNotification object:[self window]];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)_windowDidResignKey:(CPNotification)aNotification
|
||||
{
|
||||
if (![[self window] isKeyWindow])
|
||||
|
||||
+38
-123
@@ -138,23 +138,18 @@ var CPScrollDestinationNone = 0,
|
||||
return _autocompleteMenu;
|
||||
}
|
||||
|
||||
- (void)_complete:(_CPAutocompleteMenu)anAutocompleteMenu
|
||||
{
|
||||
[self _autocompleteWithEvent:nil];
|
||||
}
|
||||
|
||||
- (void)_autocompleteWithEvent:(CPEvent)anEvent
|
||||
{
|
||||
if (![self _editorValue] && (![_autocompleteMenu contentArray] || ![self hasThemeState:CPThemeStateAutocompleting]))
|
||||
if (![self _inputElement].value && (![_autocompleteMenu contentArray] || ![self hasThemeState:CPThemeStateAutocompleting]))
|
||||
return;
|
||||
|
||||
[self _hideCompletions];
|
||||
|
||||
var token = [_autocompleteMenu selectedItem],
|
||||
shouldRemoveLastObject = token !== @"" && [self _editorValue] !== @"";
|
||||
shouldRemoveLastObject = token !== @"" && [self _inputElement].value !== @"";
|
||||
|
||||
if (!token)
|
||||
token = [self _editorValue];
|
||||
token = [self _inputElement].value;
|
||||
|
||||
// Make sure the user typed an actual token to prevent the previous token from being emptied
|
||||
// If the input area is empty, we want to fall back to the normal behavior, resigning first
|
||||
@@ -312,22 +307,9 @@ var CPScrollDestinationNone = 0,
|
||||
|
||||
- (BOOL)becomeFirstResponder
|
||||
{
|
||||
#if PLATFORM(DOM)
|
||||
if (CPTokenFieldInputOwner && [CPTokenFieldInputOwner window] !== [self window])
|
||||
[[CPTokenFieldInputOwner window] makeFirstResponder:nil];
|
||||
#endif
|
||||
|
||||
// As long as we are the first responder we need to monitor the key status of our window.
|
||||
[self _setObserveWindowKeyNotifications:YES];
|
||||
|
||||
if ([[self window] isKeyWindow])
|
||||
[self _becomeFirstKeyResponder];
|
||||
|
||||
return YES;
|
||||
}
|
||||
|
||||
- (void)_becomeFirstKeyResponder
|
||||
{
|
||||
[self setThemeState:CPThemeStateEditing];
|
||||
|
||||
[self _updatePlaceholderState];
|
||||
@@ -386,6 +368,8 @@ var CPScrollDestinationNone = 0,
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
return YES;
|
||||
}
|
||||
|
||||
- (BOOL)resignFirstResponder
|
||||
@@ -393,31 +377,9 @@ var CPScrollDestinationNone = 0,
|
||||
if (_preventResign)
|
||||
return NO;
|
||||
|
||||
[self _autocomplete];
|
||||
|
||||
// From CPTextField superclass.
|
||||
[self _setObserveWindowKeyNotifications:NO];
|
||||
|
||||
[self _resignFirstKeyResponder];
|
||||
|
||||
if (_shouldNotifyTarget)
|
||||
{
|
||||
_shouldNotifyTarget = NO;
|
||||
[self textDidEndEditing:[CPNotification notificationWithName:CPControlTextDidEndEditingNotification object:self userInfo:nil]];
|
||||
|
||||
if ([self sendsActionOnEndEditing])
|
||||
[self sendAction:[self action] to:[self target]];
|
||||
}
|
||||
|
||||
return YES;
|
||||
}
|
||||
|
||||
- (void)_resignFirstKeyResponder
|
||||
{
|
||||
[self unsetThemeState:CPThemeStateEditing];
|
||||
|
||||
[self _updatePlaceholderState];
|
||||
[self setNeedsLayout];
|
||||
[self _autocomplete];
|
||||
|
||||
#if PLATFORM(DOM)
|
||||
|
||||
@@ -447,6 +409,21 @@ var CPScrollDestinationNone = 0,
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
[self _updatePlaceholderState];
|
||||
|
||||
[self setNeedsLayout];
|
||||
|
||||
if (_shouldNotifyTarget)
|
||||
{
|
||||
_shouldNotifyTarget = NO;
|
||||
[self textDidEndEditing:[CPNotification notificationWithName:CPControlTextDidEndEditingNotification object:self userInfo:nil]];
|
||||
|
||||
if ([self sendsActionOnEndEditing])
|
||||
[self sendAction:[self action] to:[self target]];
|
||||
}
|
||||
|
||||
return YES;
|
||||
}
|
||||
|
||||
- (void)mouseDown:(CPEvent)anEvent
|
||||
@@ -515,9 +492,9 @@ var CPScrollDestinationNone = 0,
|
||||
|
||||
#if PLATFORM(DOM)
|
||||
|
||||
if ([self _editorValue])
|
||||
if ([self _inputElement].value != @"")
|
||||
{
|
||||
var token = [self _representedObjectForEditingString:[self _editorValue]];
|
||||
var token = [self _representedObjectForEditingString:[self _inputElement].value];
|
||||
[objectValue insertObject:token atIndex:_selectedRange.location];
|
||||
}
|
||||
|
||||
@@ -570,7 +547,6 @@ var CPScrollDestinationNone = 0,
|
||||
[newToken setTokenField:self];
|
||||
[newToken setRepresentedObject:tokenObject];
|
||||
[newToken setStringValue:tokenValue];
|
||||
[newToken setEditable:[self isEditable]];
|
||||
[contentView addSubview:newToken];
|
||||
}
|
||||
|
||||
@@ -616,13 +592,6 @@ var CPScrollDestinationNone = 0,
|
||||
}
|
||||
}
|
||||
|
||||
- (void)setEditable:(BOOL)shouldBeEditable
|
||||
{
|
||||
[super setEditable:shouldBeEditable];
|
||||
|
||||
[[self _tokens] makeObjectsPerformSelector:@selector(setEditable:) withObject:shouldBeEditable];
|
||||
}
|
||||
|
||||
- (void)sendAction:(SEL)anAction to:(id)anObject
|
||||
{
|
||||
_shouldNotifyTarget = NO;
|
||||
@@ -660,13 +629,10 @@ var CPScrollDestinationNone = 0,
|
||||
if (CPTokenFieldInputOwner && CPTokenFieldInputOwner._preventResign)
|
||||
return false;
|
||||
|
||||
if (!CPTokenFieldInputResigning && [[CPTokenFieldInputOwner window] isKeyWindow])
|
||||
if (!CPTokenFieldInputResigning && !CPTokenFieldFocusInput)
|
||||
{
|
||||
// If we lost focus somehow but we're not resigning and we're still in the key window, we'll need to take it back.
|
||||
window.setTimeout(function()
|
||||
{
|
||||
CPTokenFieldDOMInputElement.focus();
|
||||
}, 0.0);
|
||||
[[CPTokenFieldInputOwner window] makeFirstResponder:nil];
|
||||
return;
|
||||
}
|
||||
|
||||
CPTokenFieldHandleBlur(anEvent, CPTokenFieldDOMInputElement);
|
||||
@@ -702,13 +668,6 @@ var CPScrollDestinationNone = 0,
|
||||
}
|
||||
#endif
|
||||
|
||||
- (CPString)_editorValue
|
||||
{
|
||||
if (![self hasThemeState:CPThemeStateEditing])
|
||||
return @"";
|
||||
return [self _inputElement].value;
|
||||
}
|
||||
|
||||
- (void)moveUp:(id)sender
|
||||
{
|
||||
[[self _autocompleteMenu] selectPrevious];
|
||||
@@ -788,7 +747,7 @@ var CPScrollDestinationNone = 0,
|
||||
- (void)moveLeft:(id)sender
|
||||
{
|
||||
// Left arrow
|
||||
if ((_selectedRange.location > 0 || _selectedRange.length) && [self _editorValue] == "")
|
||||
if ((_selectedRange.location > 0 || _selectedRange.length) && CPTokenFieldDOMInputElement.value == "")
|
||||
{
|
||||
if (_selectedRange.length)
|
||||
// Simply collapse the range.
|
||||
@@ -807,7 +766,7 @@ var CPScrollDestinationNone = 0,
|
||||
|
||||
- (void)moveLeftAndModifySelection:(id)sender
|
||||
{
|
||||
if (_selectedRange.location > 0 && [self _editorValue] == "")
|
||||
if (_selectedRange.location > 0 && CPTokenFieldDOMInputElement.value == "")
|
||||
{
|
||||
_selectedRange.location--;
|
||||
// When shift is depressed, select the next token backwards.
|
||||
@@ -825,7 +784,7 @@ var CPScrollDestinationNone = 0,
|
||||
- (void)moveRight:(id)sender
|
||||
{
|
||||
// Right arrow
|
||||
if ((_selectedRange.location < [[self _tokens] count] || _selectedRange.length) && [self _editorValue] == "")
|
||||
if ((_selectedRange.location < [[self _tokens] count] || _selectedRange.length) && CPTokenFieldDOMInputElement.value == "")
|
||||
{
|
||||
if (_selectedRange.length)
|
||||
{
|
||||
@@ -851,7 +810,7 @@ var CPScrollDestinationNone = 0,
|
||||
|
||||
- (void)moveRightAndModifySelection:(id)sender
|
||||
{
|
||||
if (_CPMaxRange(_selectedRange) < [[self _tokens] count] && [self _editorValue] == "")
|
||||
if (_CPMaxRange(_selectedRange) < [[self _tokens] count] && CPTokenFieldDOMInputElement.value == "")
|
||||
{
|
||||
// Leave the selection location in place but include the next token to the right.
|
||||
_selectedRange.length++;
|
||||
@@ -869,7 +828,7 @@ var CPScrollDestinationNone = 0,
|
||||
{
|
||||
// TODO Even if the editor isn't empty you should be able to delete the previous token by placing the cursor
|
||||
// at the beginning of the editor.
|
||||
if ([self _editorValue] == @"")
|
||||
if (CPTokenFieldDOMInputElement.value == @"")
|
||||
{
|
||||
[self _hideCompletions];
|
||||
|
||||
@@ -895,7 +854,7 @@ var CPScrollDestinationNone = 0,
|
||||
{
|
||||
// TODO Even if the editor isn't empty you should be able to delete the next token by placing the cursor
|
||||
// at the end of the editor.
|
||||
if ([self _editorValue] == @"")
|
||||
if (CPTokenFieldDOMInputElement.value == @"")
|
||||
{
|
||||
// Delete forward if nothing is selected, else delete all selected.
|
||||
[self _hideCompletions];
|
||||
@@ -1011,7 +970,8 @@ var CPScrollDestinationNone = 0,
|
||||
|
||||
var frame = [self frame],
|
||||
contentView = [_tokenScrollView documentView],
|
||||
tokens = [self _tokens];
|
||||
tokens = [self _tokens],
|
||||
shouldShowAutoComplete = [self hasThemeState:CPThemeStateAutocompleting];
|
||||
|
||||
// Hack to make sure we are handling an array
|
||||
if (![tokens isKindOfClass:[CPArray class]])
|
||||
@@ -1029,9 +989,6 @@ var CPScrollDestinationNone = 0,
|
||||
lineHeight = [font defaultLineHeightForFont],
|
||||
editorInset = [self currentValueForThemeAttribute:@"editor-inset"];
|
||||
|
||||
// Put half a spacing above the tokens.
|
||||
offset.y += CEIL(spaceBetweenTokens.height / 2.0);
|
||||
|
||||
// Get the height of a typical token, or a token token if you will.
|
||||
[tokenToken sizeToFit];
|
||||
|
||||
@@ -1119,19 +1076,12 @@ var CPScrollDestinationNone = 0,
|
||||
if (isEditing && _selectedRange.length)
|
||||
{
|
||||
_inputFrame = nil;
|
||||
var inputElement = [self _inputElement];
|
||||
inputElement.style.display = "none";
|
||||
}
|
||||
else if (isEditing)
|
||||
{
|
||||
var inputElement = [self _inputElement];
|
||||
inputElement.style.display = "block";
|
||||
if (document.activeElement !== inputElement)
|
||||
inputElement.focus();
|
||||
[self _inputElement].style.left = "-10000px";
|
||||
[self _inputElement].focus();
|
||||
}
|
||||
|
||||
// Trim off any excess height downwards (in case we shrank).
|
||||
var scrollHeight = offset.y + tokenHeight;
|
||||
var scrollHeight = offset.y + tokenHeight + CEIL(spaceBetweenTokens.height / 2.0);
|
||||
if (_CGRectGetHeight([contentView bounds]) > scrollHeight)
|
||||
[contentView setFrameSize:_CGSizeMake(_CGRectGetWidth([_tokenScrollView bounds]), scrollHeight)];
|
||||
|
||||
@@ -1299,11 +1249,6 @@ var CPScrollDestinationNone = 0,
|
||||
return "tokenfield-token";
|
||||
}
|
||||
|
||||
- (BOOL)acceptsFirstResponder
|
||||
{
|
||||
return NO;
|
||||
}
|
||||
|
||||
- (id)initWithFrame:(CPRect)frame
|
||||
{
|
||||
if (self = [super initWithFrame:frame])
|
||||
@@ -1339,34 +1284,6 @@ var CPScrollDestinationNone = 0,
|
||||
_representedObject = representedObject;
|
||||
}
|
||||
|
||||
- (void)setEditable:(BOOL)shouldBeEditable
|
||||
{
|
||||
[super setEditable:shouldBeEditable];
|
||||
[self setNeedsLayout];
|
||||
}
|
||||
|
||||
- (BOOL)setThemeState:(CPThemeState)aState
|
||||
{
|
||||
var r = [super setThemeState:aState];
|
||||
|
||||
// Share hover state with the delete button.
|
||||
if (r && aState === CPThemeStateHovered)
|
||||
[_deleteButton setThemeState:aState];
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
- (BOOL)unsetThemeState:(CPThemeState)aState
|
||||
{
|
||||
var r = [super unsetThemeState:aState];
|
||||
|
||||
// Share hover state with the delete button.
|
||||
if (r && aState === CPThemeStateHovered)
|
||||
[_deleteButton unsetThemeState:aState];
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
- (CGSize)_minimumFrameSize
|
||||
{
|
||||
var size = _CGSizeMakeZero(),
|
||||
@@ -1392,7 +1309,6 @@ var CPScrollDestinationNone = 0,
|
||||
{
|
||||
[_deleteButton setTarget:self];
|
||||
[_deleteButton setAction:@selector(_delete:)];
|
||||
[_deleteButton setEnabled:[self isEditable]];
|
||||
|
||||
var frame = [bezelView frame],
|
||||
buttonOffset = [_deleteButton currentValueForThemeAttribute:@"offset"],
|
||||
@@ -1414,8 +1330,7 @@ var CPScrollDestinationNone = 0,
|
||||
|
||||
- (void)_delete:(id)sender
|
||||
{
|
||||
if ([self isEditable])
|
||||
[_tokenField _deleteToken:self];
|
||||
[_tokenField _deleteToken:self];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
+8
-9
@@ -247,7 +247,7 @@ var CPToolbarsByIdentifier = nil,
|
||||
_window = aWindow;
|
||||
|
||||
if (_window)
|
||||
[[CPNotificationCenter defaultCenter] addObserver:self selector:@selector(_autoValidateVisibleItems) name:_CPWindowDidChangeFirstResponderNotification object:aWindow];
|
||||
[[CPNotificationCenter defaultCenter] addObserver:self selector:@selector(_autovalidate) name:_CPWindowDidChangeFirstResponderNotification object:aWindow];
|
||||
}
|
||||
|
||||
/*!
|
||||
@@ -400,15 +400,14 @@ var CPToolbarsByIdentifier = nil,
|
||||
*/
|
||||
- (void)validateVisibleItems
|
||||
{
|
||||
[self _validateVisibleItems:NO]
|
||||
var toolbarItems = [self visibleItems],
|
||||
count = [toolbarItems count];
|
||||
|
||||
while (count--)
|
||||
[toolbarItems[count] validate];
|
||||
}
|
||||
|
||||
- (void)_autoValidateVisibleItems
|
||||
{
|
||||
[self _validateVisibleItems:YES]
|
||||
}
|
||||
|
||||
- (void)_validateVisibleItems:(BOOL)isAutovalidation
|
||||
- (void)_autovalidate
|
||||
{
|
||||
var toolbarItems = [self visibleItems],
|
||||
count = [toolbarItems count];
|
||||
@@ -416,7 +415,7 @@ var CPToolbarsByIdentifier = nil,
|
||||
while (count--)
|
||||
{
|
||||
var item = [toolbarItems objectAtIndex:count];
|
||||
if (!isAutovalidation || [item autovalidates])
|
||||
if ([item autovalidates])
|
||||
[item validate];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1673,29 +1673,11 @@ CPTexturedBackgroundWindowMask
|
||||
[self selectPreviousKeyView:self];
|
||||
else
|
||||
[self selectNextKeyView:self];
|
||||
#if PLATFORM(DOM)
|
||||
// Make sure the browser doesn't try to do its own tab handling.
|
||||
// This is important or the browser might blur the shared text field or token field input field,
|
||||
// even that we just moved it to a new first responder.
|
||||
[[[anEvent window] platformWindow] _propagateCurrentDOMEvent:NO]
|
||||
#endif
|
||||
|
||||
return;
|
||||
}
|
||||
else if ([anEvent charactersIgnoringModifiers] === CPBackTabCharacter)
|
||||
{
|
||||
var didTabBack = [self selectPreviousKeyView:self];
|
||||
if (didTabBack)
|
||||
{
|
||||
#if PLATFORM(DOM)
|
||||
// Make sure the browser doesn't try to do its own tab handling.
|
||||
// This is important or the browser might blur the shared text field or token field input field,
|
||||
// even that we just moved it to a new first responder.
|
||||
[[[anEvent window] platformWindow] _propagateCurrentDOMEvent:NO]
|
||||
#endif
|
||||
}
|
||||
|
||||
return didTabBack;
|
||||
}
|
||||
return [self selectPreviousKeyView:self];
|
||||
|
||||
[[self firstResponder] keyDown:anEvent];
|
||||
|
||||
@@ -1856,9 +1838,7 @@ CPTexturedBackgroundWindowMask
|
||||
*/
|
||||
- (BOOL)canBecomeKeyWindow
|
||||
{
|
||||
// In Cocoa only resizable or titled windows return YES here by default. But the main browser window in Cappuccino
|
||||
// doesn't have these masks even that it's both titled and resizable, so we return YES when isFullPlatformWindow too.
|
||||
return (_styleMask & CPTitledWindowMask) || (_styleMask & CPResizableWindowMask) || [self isFullPlatformWindow];
|
||||
return YES;
|
||||
}
|
||||
|
||||
/*!
|
||||
|
||||
@@ -53,20 +53,15 @@ var _CPAttachedWindowViewDefaultCursorSize = CGSizeMake(16, 10),
|
||||
*/
|
||||
- (CGRect)contentRectForFrameRect:(CGRect)aFrameRect
|
||||
{
|
||||
var contentRect = CGRectMakeCopy(aFrameRect),
|
||||
modifierX = 16,
|
||||
modifierY = 19;
|
||||
var contentRect = CGRectMakeCopy(aFrameRect);
|
||||
|
||||
// @todo change border art and remove this pixel perfect adaptation
|
||||
//
|
||||
// @comment: If we use this, each time we open the popover, the content
|
||||
// view is reduced a little over and over
|
||||
// return CGRectInset(contentRect, modifierX, modifierY);
|
||||
// return CGRectInset(contentRect, 20, 20);
|
||||
|
||||
contentRect.origin.x += modifierX;
|
||||
contentRect.origin.y += modifierY;
|
||||
contentRect.size.width -= modifierX * 2;
|
||||
contentRect.size.height -= modifierY * 2;
|
||||
contentRect.origin.x += 18;
|
||||
contentRect.origin.y += 17;
|
||||
contentRect.size.width -= 35;
|
||||
contentRect.size.height -= 37;
|
||||
|
||||
return contentRect;
|
||||
}
|
||||
@@ -78,21 +73,15 @@ var _CPAttachedWindowViewDefaultCursorSize = CGSizeMake(16, 10),
|
||||
*/
|
||||
+ (CGRect)frameRectForContentRect:(CGRect)aContentRect
|
||||
{
|
||||
var frameRect = CGRectMakeCopy(aContentRect),
|
||||
modifierX = 16,
|
||||
modifierY = 19;
|
||||
var frameRect = CGRectMakeCopy(aContentRect);
|
||||
|
||||
// @todo change border art and remove this pixel perfect adaptation
|
||||
// @comment: If we use this, each time we open the popover, the content
|
||||
//
|
||||
// view is reduced a little over and over
|
||||
// return CGRectOffset(frameRect, modifierX, modifierY);
|
||||
|
||||
frameRect.origin.x -= modifierX;
|
||||
frameRect.origin.y -= modifierY;
|
||||
frameRect.size.width += modifierX * 2;
|
||||
frameRect.size.height += modifierY * 2;
|
||||
//return CGRectOffset(frameRect, 20, 20);
|
||||
|
||||
frameRect.origin.x -= 18;
|
||||
frameRect.origin.y -= 17;
|
||||
frameRect.size.width += 35;
|
||||
frameRect.size.height += 37;
|
||||
return frameRect;
|
||||
}
|
||||
|
||||
|
||||
@@ -152,6 +152,38 @@ var STANDARD_GRADIENT_HEIGHT = 41.0;
|
||||
return _CPStandardWindowViewDividerBackgroundColor;
|
||||
}
|
||||
|
||||
- (CGRect)contentRectForFrameRect:(CGRect)aFrameRect
|
||||
{
|
||||
var contentRect = [[self class] contentRectForFrameRect:aFrameRect],
|
||||
theToolbar = [[self window] toolbar];
|
||||
|
||||
if ([theToolbar isVisible])
|
||||
{
|
||||
var toolbarHeight = CGRectGetHeight([[theToolbar _toolbarView] frame]);
|
||||
|
||||
contentRect.origin.y += toolbarHeight;
|
||||
contentRect.size.height -= toolbarHeight;
|
||||
}
|
||||
|
||||
return contentRect;
|
||||
}
|
||||
|
||||
- (CGRect)frameRectForContentRect:(CGRect)aContentRect
|
||||
{
|
||||
var frameRect = [[self class] frameRectForContentRect:aContentRect],
|
||||
theToolbar = [[self window] toolbar];
|
||||
|
||||
if ([theToolbar isVisible])
|
||||
{
|
||||
var toolbarHeight = CGRectGetHeight([[theToolbar _toolbarView] frame]);
|
||||
|
||||
frameRect.origin.y -= toolbarHeight;
|
||||
frameRect.size.height += toolbarHeight;
|
||||
}
|
||||
|
||||
return frameRect;
|
||||
}
|
||||
|
||||
- (id)initWithFrame:(CPRect)aFrame styleMask:(unsigned)aStyleMask
|
||||
{
|
||||
self = [super initWithFrame:aFrame styleMask:aStyleMask];
|
||||
|
||||
@@ -76,34 +76,12 @@ var _CPWindowViewResizeIndicatorImage = nil;
|
||||
|
||||
- (CGRect)contentRectForFrameRect:(CGRect)aFrameRect
|
||||
{
|
||||
var contentRect = [[self class] contentRectForFrameRect:aFrameRect],
|
||||
theToolbar = [[self window] toolbar];
|
||||
|
||||
if ([theToolbar isVisible])
|
||||
{
|
||||
var toolbarHeight = CGRectGetHeight([[theToolbar _toolbarView] frame]);
|
||||
|
||||
contentRect.origin.y += toolbarHeight;
|
||||
contentRect.size.height -= toolbarHeight;
|
||||
}
|
||||
|
||||
return contentRect;
|
||||
return [[self class] contentRectForFrameRect:aFrameRect];
|
||||
}
|
||||
|
||||
- (CGRect)frameRectForContentRect:(CGRect)aContentRect
|
||||
{
|
||||
var frameRect = [[self class] frameRectForContentRect:aContentRect],
|
||||
theToolbar = [[self window] toolbar];
|
||||
|
||||
if ([theToolbar isVisible])
|
||||
{
|
||||
var toolbarHeight = CGRectGetHeight([[theToolbar _toolbarView] frame]);
|
||||
|
||||
frameRect.origin.y -= toolbarHeight;
|
||||
frameRect.size.height += toolbarHeight;
|
||||
}
|
||||
|
||||
return frameRect;
|
||||
return [[self class] frameRectForContentRect:aContentRect];
|
||||
}
|
||||
|
||||
- (id)initWithFrame:(CPRect)aFrame styleMask:(unsigned)aStyleMask
|
||||
|
||||
@@ -285,7 +285,7 @@
|
||||
|
||||
// Change of document means toolbar items may no longer make sense.
|
||||
// FIXME: DOCUMENT ARCHITECTURE Should we setToolbar: as well?
|
||||
[[[self window] toolbar] _autoValidateVisibleItems];
|
||||
[[[self window] toolbar] validateVisibleItems];
|
||||
}
|
||||
|
||||
- (void)setSupportsMultipleDocuments:(BOOL)shouldSupportMultipleDocuments
|
||||
|
||||
@@ -1028,7 +1028,7 @@ var themedButtonValues = nil,
|
||||
overrides =
|
||||
[
|
||||
[@"bezel-inset", CGInsetMakeZero()],
|
||||
[@"editor-inset", CGInsetMake(3.0, 0.0, 0.0, 0.0)],
|
||||
[@"editor-inset", CGInsetMake(2.0, 0.0, 0.0, 0.0)],
|
||||
|
||||
// Non-bezeled token field with tokens
|
||||
[@"content-inset", CGInsetMake(6.0, 8.0, 4.0, 8.0)],
|
||||
@@ -1037,7 +1037,7 @@ var themedButtonValues = nil,
|
||||
[@"content-inset", CGInsetMake(7.0, 8.0, 6.0, 8.0), CPTextFieldStatePlaceholder],
|
||||
|
||||
// Bezeled token field with tokens
|
||||
[@"content-inset", CGInsetMake(5.0, 5.0, 4.0, 5.0), CPThemeStateBezeled],
|
||||
[@"content-inset", CGInsetMake(6.0, 5.0, 4.0, 5.0), CPThemeStateBezeled],
|
||||
|
||||
// Bezeled token field with no tokens
|
||||
[@"content-inset", CGInsetMake(8.0, 8.0, 7.0, 8.0), CPThemeStateBezeled | CPTextFieldStatePlaceholder]
|
||||
@@ -1089,7 +1089,7 @@ var themedButtonValues = nil,
|
||||
[@"text-color", textHighlightedColor, CPThemeStateHighlighted],
|
||||
|
||||
[@"bezel-inset", CGInsetMakeZero(), CPThemeStateBezeled],
|
||||
[@"content-inset", CGInsetMake(2.0, 20.0, 2.0, 20.0), CPThemeStateBezeled],
|
||||
[@"content-inset", CGInsetMake(2.0, 22.0, 2.0, 15.0), CPThemeStateBezeled],
|
||||
|
||||
// Minimum height == maximum height since tokens are fixed height.
|
||||
[@"min-size", CGSizeMake(0.0, 19.0)],
|
||||
@@ -1112,17 +1112,16 @@ var themedButtonValues = nil,
|
||||
|
||||
themeValues =
|
||||
[
|
||||
[@"bezel-color", bezelColor, CPThemeStateBordered | CPThemeStateHovered],
|
||||
[@"bezel-color", [bezelColor colorWithAlphaComponent:0], CPThemeStateBordered | CPThemeStateDisabled],
|
||||
[@"bezel-color", bezelHighlightedColor, CPThemeStateBordered | CPThemeStateHighlighted],
|
||||
[@"bezel-color", bezelColor, CPThemeStateBordered],
|
||||
[@"bezel-color", bezelHighlightedColor, CPThemeStateBordered | CPThemeStateHighlighted],
|
||||
|
||||
[@"min-size", CGSizeMake(8.0, 8.0)],
|
||||
[@"max-size", CGSizeMake(8.0, 8.0)],
|
||||
|
||||
[@"bezel-inset", CGInsetMake(0.0, 0.0, 0.0, 0.0), CPThemeStateBordered],
|
||||
[@"bezel-inset", CGInsetMake(0.0, 0.0, 0.0, 0.0), CPThemeStateBordered | CPThemeStateHighlighted],
|
||||
[@"bezel-inset", CGInsetMake(0.0, 0.0, 0.0, 0.0), CPThemeStateBordered],
|
||||
[@"bezel-inset", CGInsetMake(0.0, 0.0, 0.0, 0.0), CPThemeStateBordered | CPThemeStateHighlighted],
|
||||
|
||||
[@"offset", CGPointMake(17, 6), CPThemeStateBordered]
|
||||
[@"offset", CGPointMake(17, 6), CPThemeStateBordered]
|
||||
];
|
||||
|
||||
[self registerThemeValues:themeValues forView:button];
|
||||
|
||||
+20
-34
@@ -31,8 +31,7 @@ CPPopoverAppearanceMinimal = 0;
|
||||
CPPopoverAppearanceHUD = 1;
|
||||
|
||||
var _CPAttachedWindow_attachedWindowShouldClose_ = 1 << 0,
|
||||
_CPAttachedWindow_attachedWindowDidClose_ = 1 << 1,
|
||||
_CPAttachedWindow_attachedWindowDidShow_ = 1 << 2;
|
||||
_CPAttachedWindow_attachedWindowDidClose_ = 1 << 1;
|
||||
|
||||
|
||||
/*!
|
||||
@@ -134,7 +133,7 @@ var _CPAttachedWindow_attachedWindowShouldClose_ = 1 << 0,
|
||||
[self setMovableByWindowBackground:YES];
|
||||
[self setHasShadow:NO];
|
||||
|
||||
[self setCSS3Property:@"TransitionProperty" value:CPBrowserCSSProperty('transform') + @", opacity"];
|
||||
[self setCSS3Property:@"TransitionProperty" value:@"-webkit-transform, opacity"];
|
||||
|
||||
[_windowView setNeedsDisplay:YES];
|
||||
}
|
||||
@@ -171,9 +170,6 @@ var _CPAttachedWindow_attachedWindowShouldClose_ = 1 << 0,
|
||||
|
||||
if ([_delegate respondsToSelector:@selector(attachedWindowDidClose:)])
|
||||
_implementedDelegateMethods |= _CPAttachedWindow_attachedWindowDidClose_;
|
||||
|
||||
if ([_delegate respondsToSelector:@selector(attachedWindowDidShow:)])
|
||||
_implementedDelegateMethods |= _CPAttachedWindow_attachedWindowDidShow_;
|
||||
}
|
||||
|
||||
#pragma mark -
|
||||
@@ -350,18 +346,25 @@ var _CPAttachedWindow_attachedWindowShouldClose_ = 1 << 0,
|
||||
}
|
||||
|
||||
/*! @ignore */
|
||||
- (void)setCSS3Property:(CPString)aProperty value:(CPString)value
|
||||
- (void)setCSS3Property:(CPString)property value:(CPString)value
|
||||
{
|
||||
var browserProperty = CPBrowserStyleProperty(aProperty);
|
||||
_DOMElement.style['webkit' + property] = value;
|
||||
|
||||
if (browserProperty)
|
||||
_DOMElement.style[browserProperty] = value;
|
||||
// Support other browsers here eventually
|
||||
}
|
||||
|
||||
/*! @ignore */
|
||||
- (BOOL)browserSupportsAnimation
|
||||
{
|
||||
return CPBrowserStyleProperty('transition') && CPBrowserStyleProperty('transitionend');
|
||||
return typeof(_DOMElement.style.webkitTransition) !== "undefined";
|
||||
|
||||
/*
|
||||
No others browsers supported yet.
|
||||
|
||||
typeof(_DOMElement.style.MozTransition) !== "undefined" ||
|
||||
typeof(_DOMElement.style.MsTransition) !== "undefined" ||
|
||||
typeof(_DOMElement.style.OTransition) !== "undefined";
|
||||
*/
|
||||
}
|
||||
|
||||
#pragma mark -
|
||||
@@ -381,14 +384,6 @@ var _CPAttachedWindow_attachedWindowShouldClose_ = 1 << 0,
|
||||
#pragma mark -
|
||||
#pragma mark Overrides
|
||||
|
||||
/*!
|
||||
Attached windows, such as pop overs, can usually become the key window.
|
||||
*/
|
||||
- (BOOL)canBecomeKeyWindow
|
||||
{
|
||||
return YES;
|
||||
}
|
||||
|
||||
/*!
|
||||
Called when the window is losing focus.
|
||||
*/
|
||||
@@ -453,28 +448,19 @@ var _CPAttachedWindow_attachedWindowShouldClose_ = 1 << 0,
|
||||
|
||||
// Set up the pop-out transition
|
||||
[self setCSS3Property:@"Transform" value:@"scale(1.1)"];
|
||||
[self setCSS3Property:@"Transition" value:CPBrowserCSSProperty('transform') + @" 200ms ease-in"];
|
||||
[self setCSS3Property:@"Transition" value:@"-webkit-transform 200ms ease-in"];
|
||||
|
||||
var transitionEndFunction = function()
|
||||
{
|
||||
_DOMElement.removeEventListener(CPBrowserStyleProperty('transitionend'), transitionEndFunction, YES);
|
||||
_DOMElement.removeEventListener("webkitTransitionEnd", transitionEndFunction, YES);
|
||||
|
||||
// Now set up the pop-in to normal size transition.
|
||||
// Because we are watching the -webkit-transform, it will occur now.
|
||||
[self setCSS3Property:@"Transform" value:@"scale(1)"];
|
||||
[self setCSS3Property:@"Transition" value:CPBrowserCSSProperty('transform') + @" 50ms linear"];
|
||||
|
||||
var transitionCompleteFunction = function()
|
||||
{
|
||||
_DOMElement.removeEventListener(CPBrowserStyleProperty('transitionend'), transitionCompleteFunction, YES);
|
||||
if (_implementedDelegateMethods & _CPAttachedWindow_attachedWindowDidShow_)
|
||||
[_delegate attachedWindowDidShow:self];
|
||||
}
|
||||
|
||||
_DOMElement.addEventListener(CPBrowserStyleProperty('transitionend'), transitionCompleteFunction, YES);
|
||||
[self setCSS3Property:@"Transition" value:@"-webkit-transform 50ms linear"];
|
||||
};
|
||||
|
||||
_DOMElement.addEventListener(CPBrowserStyleProperty('transitionend'), transitionEndFunction, YES);
|
||||
_DOMElement.addEventListener("webkitTransitionEnd", transitionEndFunction, YES);
|
||||
}, 0);
|
||||
}
|
||||
else
|
||||
@@ -507,11 +493,11 @@ var _CPAttachedWindow_attachedWindowShouldClose_ = 1 << 0,
|
||||
|
||||
var transitionEndFunction = function()
|
||||
{
|
||||
_DOMElement.removeEventListener(CPBrowserStyleProperty("transitionend"), transitionEndFunction, YES);
|
||||
_DOMElement.removeEventListener("webkitTransitionEnd", transitionEndFunction, YES);
|
||||
[self _close];
|
||||
};
|
||||
|
||||
_DOMElement.addEventListener(CPBrowserStyleProperty("transitionend"), transitionEndFunction, YES);
|
||||
_DOMElement.addEventListener("webkitTransitionEnd", transitionEndFunction, YES);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -55,7 +55,7 @@ var _CPAutocompleteMenuMaximumHeight = 307;
|
||||
[_menuWindow setLevel:CPPopUpMenuWindowLevel];
|
||||
[_menuWindow setHasShadow:YES];
|
||||
[_menuWindow setShadowStyle:CPMenuWindowShadowStyle];
|
||||
[_menuWindow setAcceptsMouseMovedEvents:YES];
|
||||
[_menuWindow setAcceptsMouseMovedEvents:NO];
|
||||
[_menuWindow setBackgroundColor:[_CPMenuWindow backgroundColorForBackgroundStyle:_CPMenuWindowPopUpBackgroundStyle]];
|
||||
|
||||
var contentView = [_menuWindow contentView];
|
||||
@@ -73,8 +73,6 @@ var _CPAutocompleteMenuMaximumHeight = 307;
|
||||
|
||||
[tableView setDataSource:self];
|
||||
[tableView setDelegate:self];
|
||||
[tableView setTarget:self];
|
||||
[tableView setAction:@selector(complete:)];
|
||||
[tableView setAllowsMultipleSelection:NO];
|
||||
[tableView setHeaderView:nil];
|
||||
[tableView setCornerView:nil];
|
||||
@@ -163,7 +161,7 @@ var _CPAutocompleteMenuMaximumHeight = 307;
|
||||
// TODO Track down why mystery constant is needed to allocate enough width. Scroll view insets?
|
||||
}
|
||||
|
||||
var frameOrigin = [[textField window] convertBaseToGlobal:[textField convertPointToBase:origin]],
|
||||
var frameOrigin = [textField convertPoint:origin toView:nil],
|
||||
screenSize = [([CPPlatform isBrowser] ? [_menuWindow platformWindow] : [_menuWindow screen]) visibleFrame].size,
|
||||
availableWidth = screenSize.width - frameOrigin.x,
|
||||
availableHeight = screenSize.height - frameOrigin.y,
|
||||
@@ -253,11 +251,6 @@ var _CPAutocompleteMenuMaximumHeight = 307;
|
||||
return [contentArray objectAtIndex:row];
|
||||
}
|
||||
|
||||
- (@action)complete:(id)sender
|
||||
{
|
||||
[textField _complete:self];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
|
||||
|
||||
@@ -292,7 +292,7 @@ var _CPimageAndTextViewFrameSizeChangedFlag = 1 << 0,
|
||||
{
|
||||
[self layoutIfNeeded];
|
||||
|
||||
var textFrame = _CGRectMakeZero();
|
||||
var textFrame = CGRectMakeZero();
|
||||
|
||||
if (_DOMTextElement)
|
||||
{
|
||||
@@ -681,47 +681,38 @@ var _CPimageAndTextViewFrameSizeChangedFlag = 1 << 0,
|
||||
textRectWidth = _CGRectGetWidth(textRect),
|
||||
textRectHeight = _CGRectGetHeight(textRect);
|
||||
|
||||
if (textRectWidth <= 0 || textRectHeight <= 0)
|
||||
if (_verticalAlignment !== CPTopVerticalTextAlignment)
|
||||
{
|
||||
// Don't bother trying to position the text in an empty rect.
|
||||
textRectWidth = 0;
|
||||
textRectHeight = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (_verticalAlignment !== CPTopVerticalTextAlignment)
|
||||
if (!_textSize)
|
||||
{
|
||||
if (!_textSize)
|
||||
if (_lineBreakMode === CPLineBreakByCharWrapping ||
|
||||
_lineBreakMode === CPLineBreakByWordWrapping)
|
||||
{
|
||||
if (_lineBreakMode === CPLineBreakByCharWrapping ||
|
||||
_lineBreakMode === CPLineBreakByWordWrapping)
|
||||
{
|
||||
_textSize = [_text sizeWithFont:_font inWidth:textRectWidth];
|
||||
}
|
||||
else
|
||||
{
|
||||
_textSize = [_text sizeWithFont:_font];
|
||||
_textSize = [_text sizeWithFont:_font inWidth:textRectWidth];
|
||||
}
|
||||
else
|
||||
{
|
||||
_textSize = [_text sizeWithFont:_font];
|
||||
|
||||
// Account for possible fractional pixels at right edge
|
||||
_textSize.width += 1;
|
||||
}
|
||||
|
||||
// Account for possible fractional pixels at bottom edge
|
||||
_textSize.height += 1;
|
||||
// Account for possible fractional pixels at right edge
|
||||
_textSize.width += 1;
|
||||
}
|
||||
|
||||
if (_verticalAlignment === CPCenterVerticalTextAlignment)
|
||||
{
|
||||
// Since we added +1 px height above to show fractional pixels on the bottom, we have to remove that when calculating vertical centre.
|
||||
textRectY = textRectY + (textRectHeight - _textSize.height + 1.0) / 2.0;
|
||||
textRectHeight = _textSize.height;
|
||||
}
|
||||
// Account for possible fractional pixels at bottom edge
|
||||
_textSize.height += 1;
|
||||
}
|
||||
|
||||
else //if (_verticalAlignment === CPBottomVerticalTextAlignment)
|
||||
{
|
||||
textRectY = textRectY + textRectHeight - _textSize.height;
|
||||
textRectHeight = _textSize.height;
|
||||
}
|
||||
if (_verticalAlignment === CPCenterVerticalTextAlignment)
|
||||
{
|
||||
// Since we added +1 px height above to show fractional pixels on the bottom, we have to remove that when calculating vertical centre.
|
||||
textRectY = textRectY + (textRectHeight - _textSize.height + 1.0) / 2.0;
|
||||
textRectHeight = _textSize.height;
|
||||
}
|
||||
|
||||
else //if (_verticalAlignment === CPBottomVerticalTextAlignment)
|
||||
{
|
||||
textRectY = textRectY + textRectHeight - _textSize.height;
|
||||
textRectHeight = _textSize.height;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -749,7 +740,7 @@ var _CPimageAndTextViewFrameSizeChangedFlag = 1 << 0,
|
||||
|
||||
- (void)sizeToFit
|
||||
{
|
||||
var size = _CGSizeMakeZero();
|
||||
var size = CGSizeMakeZero();
|
||||
|
||||
if ((_imagePosition !== CPNoImage) && _image)
|
||||
{
|
||||
@@ -790,13 +781,4 @@ var _CPimageAndTextViewFrameSizeChangedFlag = 1 << 0,
|
||||
[self setFrameSize:size];
|
||||
}
|
||||
|
||||
- (void)setFrameSize:(CGSize)aSize
|
||||
{
|
||||
// If we're applying line breaks the height of the text size might change as a result of the bounds changing.
|
||||
if ((_lineBreakMode === CPLineBreakByCharWrapping || _lineBreakMode === CPLineBreakByWordWrapping) && aSize.width !== [self frameSize].width)
|
||||
_textSize = nil;
|
||||
|
||||
[super setFrameSize:aSize];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@@ -74,18 +74,6 @@ CPPointCreateCopy = CGPointMakeCopy;
|
||||
*/
|
||||
CPPointEqualToPoint = CGPointEqualToPoint;
|
||||
|
||||
/*!
|
||||
Tests whether the CGPoint is contained by the CGRect.
|
||||
@group CGPoint
|
||||
@param aPoint the CGPoint to check
|
||||
@param aRect the CGRect to check
|
||||
@return BOOL \c YES if the rect contains the point.
|
||||
*/
|
||||
CPPointInRect = function(aPoint, aRect)
|
||||
{
|
||||
return CGRectContainsPoint(aRect, aPoint)
|
||||
};
|
||||
|
||||
/*!
|
||||
Test whether the two CGRects have the same origin and size
|
||||
@group CGRect
|
||||
|
||||
@@ -254,9 +254,6 @@ var _CPTimerBridgeTimer = function(codeOrFunction, aDelay, shouldRepeat, functio
|
||||
theFunction = function() { codeOrFunction.apply(window, functionArgs); if (!shouldRepeat) CPTimersForTimeoutIDs[timeoutID] = nil; }
|
||||
}
|
||||
|
||||
// A call such as setTimeout(f) is technically invalid but browsers seem to treat it as setTimeout(f, 0), so so will we.
|
||||
aDelay = aDelay | 0.0;
|
||||
|
||||
CPTimersForTimeoutIDs[timeoutID] = [CPTimer scheduledTimerWithTimeInterval:aDelay / 1000 callback:theFunction repeats:shouldRepeat];
|
||||
|
||||
return timeoutID;
|
||||
|
||||
@@ -151,12 +151,8 @@ var CPURLConnectionDelegate = nil;
|
||||
var URL = [_request URL],
|
||||
scheme = [URL scheme];
|
||||
|
||||
// Browsers use "file:", Titanium uses "app:"
|
||||
_isLocalFileConnection = scheme === "file" ||
|
||||
((scheme === "http" || scheme === "https:") &&
|
||||
window.location &&
|
||||
(window.location.protocol === "file:" || window.location.protocol === "app:"));
|
||||
|
||||
// Browsers use "file:"
|
||||
_isLocalFileConnection = scheme === "file";
|
||||
_HTTPRequest = new CFHTTPRequest();
|
||||
|
||||
if (shouldStartImmediately)
|
||||
|
||||
@@ -195,7 +195,7 @@ globalResults = [];
|
||||
[[CPNotificationCenter defaultCenter] addObserver:self
|
||||
selector:@selector(receiveNotification:)
|
||||
name:CPApplicationWillTerminateNotification
|
||||
object:nil];
|
||||
object:nil];
|
||||
|
||||
[app replyToApplicationShouldTerminate:CPTerminateNow];
|
||||
[self assert:CPApplicationWillTerminateNotification equals:[globalResults[0] name]];
|
||||
@@ -223,8 +223,8 @@ globalResults = [];
|
||||
|
||||
- (void)testTargetForAction
|
||||
{
|
||||
var mainWin = [[TestMainWindow alloc] init],
|
||||
keyWin = [[TestKeyWindow alloc] init];
|
||||
var mainWin = [[TestMainWindow alloc] init];
|
||||
var keyWin = [[TestKeyWindow alloc] init];
|
||||
mainWin._isVisible = YES;
|
||||
keyWin._isVisible = YES;
|
||||
[mainWin makeMainWindow];
|
||||
@@ -252,6 +252,6 @@ globalResults = [];
|
||||
|
||||
// when no target is given, targetForAction is called
|
||||
[self assert:app equals:[app targetForAction:@selector(someTestMethod:) to:nil from:nil]];
|
||||
}
|
||||
|
||||
}
|
||||
@end
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,28 +1,26 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="8.00">
|
||||
<data>
|
||||
<int key="IBDocument.SystemTarget">1080</int>
|
||||
<string key="IBDocument.SystemVersion">12C60</string>
|
||||
<string key="IBDocument.InterfaceBuilderVersion">2844</string>
|
||||
<string key="IBDocument.AppKitVersion">1187.34</string>
|
||||
<string key="IBDocument.HIToolboxVersion">625.00</string>
|
||||
<int key="IBDocument.SystemTarget">1070</int>
|
||||
<string key="IBDocument.SystemVersion">11D50d</string>
|
||||
<string key="IBDocument.InterfaceBuilderVersion">2182</string>
|
||||
<string key="IBDocument.AppKitVersion">1138.32</string>
|
||||
<string key="IBDocument.HIToolboxVersion">568.00</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="NS.object.0">2844</string>
|
||||
<string key="NS.object.0">2182</string>
|
||||
</object>
|
||||
<array key="IBDocument.IntegratedClassDependencies">
|
||||
<string>NSButton</string>
|
||||
<string>NSButtonCell</string>
|
||||
<string>NSCustomObject</string>
|
||||
<string>NSMatrix</string>
|
||||
<string>NSSlider</string>
|
||||
<string>NSSliderCell</string>
|
||||
<string>NSTextField</string>
|
||||
<string>NSTextFieldCell</string>
|
||||
<string>NSTokenField</string>
|
||||
<string>NSTokenFieldCell</string>
|
||||
<string>NSView</string>
|
||||
<string>NSWindowTemplate</string>
|
||||
<string>NSTextFieldCell</string>
|
||||
<string>NSSliderCell</string>
|
||||
<string>NSMatrix</string>
|
||||
<string>NSSlider</string>
|
||||
<string>NSButtonCell</string>
|
||||
<string>NSButton</string>
|
||||
<string>NSCustomObject</string>
|
||||
</array>
|
||||
<array key="IBDocument.PluginDependencies">
|
||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
@@ -57,13 +55,13 @@
|
||||
<object class="NSSlider" id="626349312">
|
||||
<reference key="NSNextResponder" ref="161598483"/>
|
||||
<int key="NSvFlags">301</int>
|
||||
<string key="NSFrame">{{59, 52}, {96, 21}}</string>
|
||||
<string key="NSFrame">{{116, 54}, {96, 21}}</string>
|
||||
<reference key="NSSuperview" ref="161598483"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="225469319"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSSliderCell" key="NSCell" id="1024364993">
|
||||
<int key="NSCellFlags">-2080112384</int>
|
||||
<int key="NSCellFlags">-2079981824</int>
|
||||
<int key="NSCellFlags2">0</int>
|
||||
<string key="NSContents"/>
|
||||
<object class="NSFont" key="NSSupport">
|
||||
@@ -81,18 +79,17 @@
|
||||
<bool key="NSAllowsTickMarkValuesOnly">NO</bool>
|
||||
<bool key="NSVertical">NO</bool>
|
||||
</object>
|
||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
||||
</object>
|
||||
<object class="NSTextField" id="225469319">
|
||||
<reference key="NSNextResponder" ref="161598483"/>
|
||||
<int key="NSvFlags">301</int>
|
||||
<string key="NSFrame">{{166, 51}, {96, 22}}</string>
|
||||
<string key="NSFrame">{{234, 51}, {96, 22}}</string>
|
||||
<reference key="NSSuperview" ref="161598483"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="393836098"/>
|
||||
<reference key="NSNextKeyView" ref="244990043"/>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSTextFieldCell" key="NSCell" id="771311359">
|
||||
<int key="NSCellFlags">-1804599231</int>
|
||||
<int key="NSCellFlags">-1804468671</int>
|
||||
<int key="NSCellFlags2">272630784</int>
|
||||
<string key="NSContents"/>
|
||||
<object class="NSFont" key="NSSupport" id="394344788">
|
||||
@@ -100,10 +97,9 @@
|
||||
<double key="NSSize">13</double>
|
||||
<int key="NSfFlags">1044</int>
|
||||
</object>
|
||||
<string key="NSPlaceholderString">CPTextField</string>
|
||||
<reference key="NSControlView" ref="225469319"/>
|
||||
<bool key="NSDrawsBackground">YES</bool>
|
||||
<object class="NSColor" key="NSBackgroundColor" id="539867213">
|
||||
<object class="NSColor" key="NSBackgroundColor">
|
||||
<int key="NSColorSpace">6</int>
|
||||
<string key="NSCatalogName">System</string>
|
||||
<string key="NSColorName">textBackgroundColor</string>
|
||||
@@ -122,7 +118,6 @@
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
||||
</object>
|
||||
<object class="NSButton" id="917693159">
|
||||
<reference key="NSNextResponder" ref="161598483"/>
|
||||
@@ -134,20 +129,19 @@
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSButtonCell" key="NSCell" id="193918884">
|
||||
<int key="NSCellFlags">67108864</int>
|
||||
<int key="NSCellFlags">67239424</int>
|
||||
<int key="NSCellFlags2">134217728</int>
|
||||
<string key="NSContents">Close</string>
|
||||
<reference key="NSSupport" ref="394344788"/>
|
||||
<string key="NSCellIdentifier">_NS:9</string>
|
||||
<reference key="NSControlView" ref="917693159"/>
|
||||
<int key="NSButtonFlags">-2038284288</int>
|
||||
<int key="NSButtonFlags">-2038284033</int>
|
||||
<int key="NSButtonFlags2">129</int>
|
||||
<string key="NSAlternateContents"/>
|
||||
<string type="base64-UTF8" key="NSKeyEquivalent">DQ</string>
|
||||
<int key="NSPeriodicDelay">200</int>
|
||||
<int key="NSPeriodicInterval">25</int>
|
||||
</object>
|
||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
||||
</object>
|
||||
<object class="NSButton" id="503115995">
|
||||
<reference key="NSNextResponder" ref="161598483"/>
|
||||
@@ -159,20 +153,19 @@
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSButtonCell" key="NSCell" id="387916657">
|
||||
<int key="NSCellFlags">67108864</int>
|
||||
<int key="NSCellFlags">67239424</int>
|
||||
<int key="NSCellFlags2">134217728</int>
|
||||
<string key="NSContents">Modal Window</string>
|
||||
<reference key="NSSupport" ref="394344788"/>
|
||||
<string key="NSCellIdentifier">_NS:9</string>
|
||||
<reference key="NSControlView" ref="503115995"/>
|
||||
<int key="NSButtonFlags">-2038284288</int>
|
||||
<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>
|
||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
||||
</object>
|
||||
<object class="NSButton" id="368830815">
|
||||
<reference key="NSNextResponder" ref="161598483"/>
|
||||
@@ -184,20 +177,19 @@
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSButtonCell" key="NSCell" id="17045191">
|
||||
<int key="NSCellFlags">67108864</int>
|
||||
<int key="NSCellFlags">67239424</int>
|
||||
<int key="NSCellFlags2">134217728</int>
|
||||
<string key="NSContents">Sheet</string>
|
||||
<reference key="NSSupport" ref="394344788"/>
|
||||
<string key="NSCellIdentifier">_NS:9</string>
|
||||
<reference key="NSControlView" ref="368830815"/>
|
||||
<int key="NSButtonFlags">-2038284288</int>
|
||||
<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>
|
||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
||||
</object>
|
||||
<object class="NSButton" id="666980504">
|
||||
<reference key="NSNextResponder" ref="161598483"/>
|
||||
@@ -209,20 +201,19 @@
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSButtonCell" key="NSCell" id="549512143">
|
||||
<int key="NSCellFlags">67108864</int>
|
||||
<int key="NSCellFlags">67239424</int>
|
||||
<int key="NSCellFlags2">134217728</int>
|
||||
<string key="NSContents">Window</string>
|
||||
<reference key="NSSupport" ref="394344788"/>
|
||||
<string key="NSCellIdentifier">_NS:9</string>
|
||||
<reference key="NSControlView" ref="666980504"/>
|
||||
<int key="NSButtonFlags">-2038284288</int>
|
||||
<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>
|
||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
||||
</object>
|
||||
<object class="NSButton" id="223206700">
|
||||
<reference key="NSNextResponder" ref="161598483"/>
|
||||
@@ -234,20 +225,19 @@
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSButtonCell" key="NSCell" id="202127501">
|
||||
<int key="NSCellFlags">67108864</int>
|
||||
<int key="NSCellFlags">67239424</int>
|
||||
<int key="NSCellFlags2">134217728</int>
|
||||
<string key="NSContents">Modal Sheet</string>
|
||||
<reference key="NSSupport" ref="394344788"/>
|
||||
<string key="NSCellIdentifier">_NS:9</string>
|
||||
<reference key="NSControlView" ref="223206700"/>
|
||||
<int key="NSButtonFlags">-2038284288</int>
|
||||
<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>
|
||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
||||
</object>
|
||||
<object class="NSButton" id="968632972">
|
||||
<reference key="NSNextResponder" ref="161598483"/>
|
||||
@@ -259,20 +249,19 @@
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSButtonCell" key="NSCell" id="895163260">
|
||||
<int key="NSCellFlags">67108864</int>
|
||||
<int key="NSCellFlags">67239424</int>
|
||||
<int key="NSCellFlags2">134217728</int>
|
||||
<string key="NSContents">Alert Sheet</string>
|
||||
<reference key="NSSupport" ref="394344788"/>
|
||||
<string key="NSCellIdentifier">_NS:9</string>
|
||||
<reference key="NSControlView" ref="968632972"/>
|
||||
<int key="NSButtonFlags">-2038284288</int>
|
||||
<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>
|
||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
||||
</object>
|
||||
<object class="NSButton" id="821769865">
|
||||
<reference key="NSNextResponder" ref="161598483"/>
|
||||
@@ -284,20 +273,19 @@
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSButtonCell" key="NSCell" id="119441282">
|
||||
<int key="NSCellFlags">67108864</int>
|
||||
<int key="NSCellFlags">67239424</int>
|
||||
<int key="NSCellFlags2">134217728</int>
|
||||
<string key="NSContents">Close Parent Too</string>
|
||||
<reference key="NSSupport" ref="394344788"/>
|
||||
<string key="NSCellIdentifier">_NS:9</string>
|
||||
<reference key="NSControlView" ref="821769865"/>
|
||||
<int key="NSButtonFlags">-2038284288</int>
|
||||
<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>
|
||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
||||
</object>
|
||||
<object class="NSButton" id="244990043">
|
||||
<reference key="NSNextResponder" ref="161598483"/>
|
||||
@@ -309,20 +297,19 @@
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSButtonCell" key="NSCell" id="280494721">
|
||||
<int key="NSCellFlags">67108864</int>
|
||||
<int key="NSCellFlags">67239424</int>
|
||||
<int key="NSCellFlags2">134217728</int>
|
||||
<string key="NSContents">Chain Sheets</string>
|
||||
<reference key="NSSupport" ref="394344788"/>
|
||||
<string key="NSCellIdentifier">_NS:9</string>
|
||||
<reference key="NSControlView" ref="244990043"/>
|
||||
<int key="NSButtonFlags">-2038284288</int>
|
||||
<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>
|
||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
||||
</object>
|
||||
<object class="NSButton" id="133258452">
|
||||
<reference key="NSNextResponder" ref="161598483"/>
|
||||
@@ -334,13 +321,13 @@
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSButtonCell" key="NSCell" id="220534627">
|
||||
<int key="NSCellFlags">67108864</int>
|
||||
<int key="NSCellFlags">67239424</int>
|
||||
<int key="NSCellFlags2">0</int>
|
||||
<string key="NSContents">orderOut: after endSheet:</string>
|
||||
<reference key="NSSupport" ref="394344788"/>
|
||||
<string key="NSCellIdentifier">_NS:9</string>
|
||||
<reference key="NSControlView" ref="133258452"/>
|
||||
<int key="NSButtonFlags">1211912448</int>
|
||||
<int key="NSButtonFlags">1211912703</int>
|
||||
<int key="NSButtonFlags2">2</int>
|
||||
<object class="NSCustomResource" key="NSNormalImage" id="757628530">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
@@ -354,7 +341,6 @@
|
||||
<int key="NSPeriodicDelay">200</int>
|
||||
<int key="NSPeriodicInterval">25</int>
|
||||
</object>
|
||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
||||
</object>
|
||||
<object class="NSButton" id="1070361803">
|
||||
<reference key="NSNextResponder" ref="161598483"/>
|
||||
@@ -366,13 +352,13 @@
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSButtonCell" key="NSCell" id="858583142">
|
||||
<int key="NSCellFlags">67108864</int>
|
||||
<int key="NSCellFlags">67239424</int>
|
||||
<int key="NSCellFlags2">0</int>
|
||||
<string key="NSContents">Shade Window View of Non-CIB Windows</string>
|
||||
<reference key="NSSupport" ref="394344788"/>
|
||||
<string key="NSCellIdentifier">_NS:9</string>
|
||||
<reference key="NSControlView" ref="1070361803"/>
|
||||
<int key="NSButtonFlags">1211912448</int>
|
||||
<int key="NSButtonFlags">1211912703</int>
|
||||
<int key="NSButtonFlags2">2</int>
|
||||
<reference key="NSNormalImage" ref="757628530"/>
|
||||
<reference key="NSAlternateImage" ref="375806730"/>
|
||||
@@ -381,7 +367,6 @@
|
||||
<int key="NSPeriodicDelay">200</int>
|
||||
<int key="NSPeriodicInterval">25</int>
|
||||
</object>
|
||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
||||
</object>
|
||||
<object class="NSButton" id="945251289">
|
||||
<reference key="NSNextResponder" ref="161598483"/>
|
||||
@@ -393,13 +378,13 @@
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSButtonCell" key="NSCell" id="1032816">
|
||||
<int key="NSCellFlags">67108864</int>
|
||||
<int key="NSCellFlags">67239424</int>
|
||||
<int key="NSCellFlags2">0</int>
|
||||
<string key="NSContents">Shade Content View of Non-CIB Window</string>
|
||||
<reference key="NSSupport" ref="394344788"/>
|
||||
<string key="NSCellIdentifier">_NS:9</string>
|
||||
<reference key="NSControlView" ref="945251289"/>
|
||||
<int key="NSButtonFlags">1211912448</int>
|
||||
<int key="NSButtonFlags">1211912703</int>
|
||||
<int key="NSButtonFlags2">2</int>
|
||||
<reference key="NSNormalImage" ref="757628530"/>
|
||||
<reference key="NSAlternateImage" ref="375806730"/>
|
||||
@@ -408,7 +393,6 @@
|
||||
<int key="NSPeriodicDelay">200</int>
|
||||
<int key="NSPeriodicInterval">25</int>
|
||||
</object>
|
||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
||||
</object>
|
||||
<object class="NSButton" id="671904505">
|
||||
<reference key="NSNextResponder" ref="161598483"/>
|
||||
@@ -420,13 +404,13 @@
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSButtonCell" key="NSCell" id="885506522">
|
||||
<int key="NSCellFlags">67108864</int>
|
||||
<int key="NSCellFlags">67239424</int>
|
||||
<int key="NSCellFlags2">0</int>
|
||||
<string key="NSContents">Shade Parent Window on windowWillBeginSheet:</string>
|
||||
<reference key="NSSupport" ref="394344788"/>
|
||||
<string key="NSCellIdentifier">_NS:9</string>
|
||||
<reference key="NSControlView" ref="671904505"/>
|
||||
<int key="NSButtonFlags">1211912448</int>
|
||||
<int key="NSButtonFlags">1211912703</int>
|
||||
<int key="NSButtonFlags2">2</int>
|
||||
<reference key="NSNormalImage" ref="757628530"/>
|
||||
<reference key="NSAlternateImage" ref="375806730"/>
|
||||
@@ -435,7 +419,6 @@
|
||||
<int key="NSPeriodicDelay">200</int>
|
||||
<int key="NSPeriodicInterval">25</int>
|
||||
</object>
|
||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
||||
</object>
|
||||
<object class="NSButton" id="816373959">
|
||||
<reference key="NSNextResponder" ref="161598483"/>
|
||||
@@ -443,17 +426,17 @@
|
||||
<string key="NSFrame">{{193, 268}, {174, 18}}</string>
|
||||
<reference key="NSSuperview" ref="161598483"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="893839534"/>
|
||||
<reference key="NSNextKeyView"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSButtonCell" key="NSCell" id="26730683">
|
||||
<int key="NSCellFlags">-2080374784</int>
|
||||
<int key="NSCellFlags">-2080244224</int>
|
||||
<int key="NSCellFlags2">0</int>
|
||||
<string key="NSContents">CPTitledWindowMask</string>
|
||||
<reference key="NSSupport" ref="394344788"/>
|
||||
<string key="NSCellIdentifier">_NS:9</string>
|
||||
<reference key="NSControlView" ref="816373959"/>
|
||||
<int key="NSButtonFlags">1211912448</int>
|
||||
<int key="NSButtonFlags">1211912703</int>
|
||||
<int key="NSButtonFlags2">2</int>
|
||||
<reference key="NSNormalImage" ref="757628530"/>
|
||||
<reference key="NSAlternateImage" ref="375806730"/>
|
||||
@@ -462,7 +445,6 @@
|
||||
<int key="NSPeriodicDelay">200</int>
|
||||
<int key="NSPeriodicInterval">25</int>
|
||||
</object>
|
||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
||||
</object>
|
||||
<object class="NSButton" id="893839534">
|
||||
<reference key="NSNextResponder" ref="161598483"/>
|
||||
@@ -474,13 +456,13 @@
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSButtonCell" key="NSCell" id="497880742">
|
||||
<int key="NSCellFlags">-2080374784</int>
|
||||
<int key="NSCellFlags">-2080244224</int>
|
||||
<int key="NSCellFlags2">0</int>
|
||||
<string key="NSContents">CPClosableWindowMask</string>
|
||||
<reference key="NSSupport" ref="394344788"/>
|
||||
<string key="NSCellIdentifier">_NS:9</string>
|
||||
<reference key="NSControlView" ref="893839534"/>
|
||||
<int key="NSButtonFlags">1211912448</int>
|
||||
<int key="NSButtonFlags">1211912703</int>
|
||||
<int key="NSButtonFlags2">2</int>
|
||||
<reference key="NSNormalImage" ref="757628530"/>
|
||||
<reference key="NSAlternateImage" ref="375806730"/>
|
||||
@@ -489,7 +471,6 @@
|
||||
<int key="NSPeriodicDelay">200</int>
|
||||
<int key="NSPeriodicInterval">25</int>
|
||||
</object>
|
||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
||||
</object>
|
||||
<object class="NSMatrix" id="531109111">
|
||||
<reference key="NSNextResponder" ref="161598483"/>
|
||||
@@ -500,18 +481,17 @@
|
||||
<reference key="NSNextKeyView" ref="968632972"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
||||
<int key="NSNumRows">5</int>
|
||||
<int key="NSNumCols">1</int>
|
||||
<array class="NSMutableArray" key="NSCells">
|
||||
<object class="NSButtonCell" id="552182731">
|
||||
<int key="NSCellFlags">-2080374784</int>
|
||||
<int key="NSCellFlags">-2080244224</int>
|
||||
<int key="NSCellFlags2">0</int>
|
||||
<string key="NSContents">CIB Window</string>
|
||||
<reference key="NSSupport" ref="394344788"/>
|
||||
<reference key="NSControlView" ref="531109111"/>
|
||||
<int key="NSTag">1</int>
|
||||
<int key="NSButtonFlags">1211912448</int>
|
||||
<int key="NSButtonFlags">1211912703</int>
|
||||
<int key="NSButtonFlags2">0</int>
|
||||
<object class="NSButtonImageSource" key="NSAlternateImage" id="680600750">
|
||||
<string key="NSImageName">NSRadioButton</string>
|
||||
@@ -522,13 +502,13 @@
|
||||
<int key="NSPeriodicInterval">25</int>
|
||||
</object>
|
||||
<object class="NSButtonCell" id="268094245">
|
||||
<int key="NSCellFlags">67108864</int>
|
||||
<int key="NSCellFlags">67239424</int>
|
||||
<int key="NSCellFlags2">0</int>
|
||||
<string key="NSContents">CPHUDBackgroundWindowMask</string>
|
||||
<reference key="NSSupport" ref="394344788"/>
|
||||
<reference key="NSControlView" ref="531109111"/>
|
||||
<int key="NSTag">2</int>
|
||||
<int key="NSButtonFlags">1211912448</int>
|
||||
<int key="NSButtonFlags">1211912703</int>
|
||||
<int key="NSButtonFlags2">0</int>
|
||||
<object class="NSImage" key="NSNormalImage">
|
||||
<int key="NSImageFlags">549453824</int>
|
||||
@@ -577,39 +557,39 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
|
||||
<int key="NSPeriodicInterval">75</int>
|
||||
</object>
|
||||
<object class="NSButtonCell" id="569365394">
|
||||
<int key="NSCellFlags">67108864</int>
|
||||
<int key="NSCellFlags">67239424</int>
|
||||
<int key="NSCellFlags2">0</int>
|
||||
<string key="NSContents">CPBorderlessWindowMask</string>
|
||||
<reference key="NSSupport" ref="394344788"/>
|
||||
<reference key="NSControlView" ref="531109111"/>
|
||||
<int key="NSTag">3</int>
|
||||
<int key="NSButtonFlags">1211912448</int>
|
||||
<int key="NSButtonFlags">1211912703</int>
|
||||
<int key="NSButtonFlags2">0</int>
|
||||
<reference key="NSAlternateImage" ref="680600750"/>
|
||||
<int key="NSPeriodicDelay">400</int>
|
||||
<int key="NSPeriodicInterval">75</int>
|
||||
</object>
|
||||
<object class="NSButtonCell" id="755250605">
|
||||
<int key="NSCellFlags">67108864</int>
|
||||
<int key="NSCellFlags">67239424</int>
|
||||
<int key="NSCellFlags2">0</int>
|
||||
<string key="NSContents">CPTexturedBackgroundWindowMask</string>
|
||||
<reference key="NSSupport" ref="394344788"/>
|
||||
<reference key="NSControlView" ref="531109111"/>
|
||||
<int key="NSTag">4</int>
|
||||
<int key="NSButtonFlags">1211912448</int>
|
||||
<int key="NSButtonFlags">1211912703</int>
|
||||
<int key="NSButtonFlags2">0</int>
|
||||
<reference key="NSAlternateImage" ref="680600750"/>
|
||||
<int key="NSPeriodicDelay">400</int>
|
||||
<int key="NSPeriodicInterval">75</int>
|
||||
</object>
|
||||
<object class="NSButtonCell" id="830766462">
|
||||
<int key="NSCellFlags">67108864</int>
|
||||
<int key="NSCellFlags">67239424</int>
|
||||
<int key="NSCellFlags2">0</int>
|
||||
<string key="NSContents">CPDocModalWindowMask</string>
|
||||
<reference key="NSSupport" ref="394344788"/>
|
||||
<reference key="NSControlView" ref="531109111"/>
|
||||
<int key="NSTag">5</int>
|
||||
<int key="NSButtonFlags">1211912448</int>
|
||||
<int key="NSButtonFlags">1211912703</int>
|
||||
<int key="NSButtonFlags2">0</int>
|
||||
<reference key="NSAlternateImage" ref="680600750"/>
|
||||
<int key="NSPeriodicDelay">400</int>
|
||||
@@ -621,11 +601,11 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
|
||||
<int key="NSMatrixFlags">1151868928</int>
|
||||
<string key="NSCellClass">NSActionCell</string>
|
||||
<object class="NSButtonCell" key="NSProtoCell" id="510263560">
|
||||
<int key="NSCellFlags">67108864</int>
|
||||
<int key="NSCellFlags">67239424</int>
|
||||
<int key="NSCellFlags2">0</int>
|
||||
<string key="NSContents">Radio</string>
|
||||
<reference key="NSSupport" ref="394344788"/>
|
||||
<int key="NSButtonFlags">1211912448</int>
|
||||
<int key="NSButtonFlags">1211912703</int>
|
||||
<int key="NSButtonFlags2">0</int>
|
||||
<object class="NSImage" key="NSNormalImage">
|
||||
<int key="NSImageFlags">549453824</int>
|
||||
@@ -689,17 +669,17 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
|
||||
<string key="NSFrame">{{192, 228}, {210, 18}}</string>
|
||||
<reference key="NSSuperview" ref="161598483"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="132928531"/>
|
||||
<reference key="NSNextKeyView"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSButtonCell" key="NSCell" id="920567219">
|
||||
<int key="NSCellFlags">-2080374784</int>
|
||||
<int key="NSCellFlags">-2080244224</int>
|
||||
<int key="NSCellFlags2">0</int>
|
||||
<string key="NSContents">CPMiniaturizableWindowMask</string>
|
||||
<reference key="NSSupport" ref="394344788"/>
|
||||
<string key="NSCellIdentifier">_NS:9</string>
|
||||
<reference key="NSControlView" ref="583986702"/>
|
||||
<int key="NSButtonFlags">1211912448</int>
|
||||
<int key="NSButtonFlags">1211912703</int>
|
||||
<int key="NSButtonFlags2">2</int>
|
||||
<reference key="NSNormalImage" ref="757628530"/>
|
||||
<reference key="NSAlternateImage" ref="375806730"/>
|
||||
@@ -708,7 +688,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
|
||||
<int key="NSPeriodicDelay">200</int>
|
||||
<int key="NSPeriodicInterval">25</int>
|
||||
</object>
|
||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
||||
</object>
|
||||
<object class="NSButton" id="132928531">
|
||||
<reference key="NSNextResponder" ref="161598483"/>
|
||||
@@ -716,17 +695,17 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
|
||||
<string key="NSFrame">{{192, 208}, {180, 18}}</string>
|
||||
<reference key="NSSuperview" ref="161598483"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="133258452"/>
|
||||
<reference key="NSNextKeyView"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSButtonCell" key="NSCell" id="479229106">
|
||||
<int key="NSCellFlags">-2080374784</int>
|
||||
<int key="NSCellFlags">-2080244224</int>
|
||||
<int key="NSCellFlags2">0</int>
|
||||
<string key="NSContents">CPResizableWindowMask</string>
|
||||
<reference key="NSSupport" ref="394344788"/>
|
||||
<string key="NSCellIdentifier">_NS:9</string>
|
||||
<reference key="NSControlView" ref="132928531"/>
|
||||
<int key="NSButtonFlags">1211912448</int>
|
||||
<int key="NSButtonFlags">1211912703</int>
|
||||
<int key="NSButtonFlags2">2</int>
|
||||
<reference key="NSNormalImage" ref="757628530"/>
|
||||
<reference key="NSAlternateImage" ref="375806730"/>
|
||||
@@ -735,7 +714,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
|
||||
<int key="NSPeriodicDelay">200</int>
|
||||
<int key="NSPeriodicInterval">25</int>
|
||||
</object>
|
||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
||||
</object>
|
||||
<object class="NSTextField" id="772963208">
|
||||
<reference key="NSNextResponder" ref="161598483"/>
|
||||
@@ -748,7 +726,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
|
||||
<string key="NSAntiCompressionPriority">{250, 750}</string>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSTextFieldCell" key="NSCell" id="612486558">
|
||||
<int key="NSCellFlags">67108864</int>
|
||||
<int key="NSCellFlags">67239424</int>
|
||||
<int key="NSCellFlags2">272629760</int>
|
||||
<string key="NSContents">It is not specified if endSheet: or orderOut: on sheet should be called first. However, cannot call orderOut: after endSheet: when chaining.</string>
|
||||
<object class="NSFont" key="NSSupport">
|
||||
@@ -759,43 +737,13 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
|
||||
<string key="NSCellIdentifier">_NS:9</string>
|
||||
<reference key="NSControlView" ref="772963208"/>
|
||||
<reference key="NSBackgroundColor" ref="567491004"/>
|
||||
<object class="NSColor" key="NSTextColor" id="879929027">
|
||||
<object class="NSColor" key="NSTextColor">
|
||||
<int key="NSColorSpace">6</int>
|
||||
<string key="NSCatalogName">System</string>
|
||||
<string key="NSColorName">controlTextColor</string>
|
||||
<reference key="NSColor" ref="170726192"/>
|
||||
</object>
|
||||
</object>
|
||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
||||
</object>
|
||||
<object class="NSTokenField" id="393836098">
|
||||
<reference key="NSNextResponder" ref="161598483"/>
|
||||
<int key="NSvFlags">268</int>
|
||||
<set class="NSMutableSet" key="NSDragTypes">
|
||||
<string>NSStringPboardType</string>
|
||||
</set>
|
||||
<string key="NSFrame">{{275, 51}, {96, 22}}</string>
|
||||
<reference key="NSSuperview" ref="161598483"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="244990043"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSTokenFieldCell" key="NSCell" id="437001198">
|
||||
<int key="NSCellFlags">341835776</int>
|
||||
<int key="NSCellFlags2">0</int>
|
||||
<reference key="NSSupport" ref="394344788"/>
|
||||
<string key="NSPlaceholderString">CPTokenField</string>
|
||||
<string key="NSCellIdentifier">_NS:9</string>
|
||||
<reference key="NSControlView" ref="393836098"/>
|
||||
<bool key="NSDrawsBackground">YES</bool>
|
||||
<reference key="NSBackgroundColor" ref="539867213"/>
|
||||
<reference key="NSTextColor" ref="879929027"/>
|
||||
<reference key="NSDelegate" ref="393836098"/>
|
||||
<double key="NSCompletionDelay">0.0</double>
|
||||
<int key="NSTokenStyle">0</int>
|
||||
</object>
|
||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
||||
<int key="NSTokenFieldVersion">2</int>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSFrameSize">{468, 425}</string>
|
||||
@@ -803,7 +751,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="666980504"/>
|
||||
</object>
|
||||
<string key="NSScreenRect">{{0, 0}, {2560, 1418}}</string>
|
||||
<string key="NSScreenRect">{{0, 0}, {1920, 1178}}</string>
|
||||
<string key="NSMaxSize">{10000000000000, 10000000000000}</string>
|
||||
<bool key="NSWindowIsRestorable">YES</bool>
|
||||
</object>
|
||||
@@ -814,13 +762,13 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="NSEnabled">YES</bool>
|
||||
<object class="NSButtonCell" key="NSCell" id="725655611">
|
||||
<int key="NSCellFlags">-2080374784</int>
|
||||
<int key="NSCellFlags">-2080244224</int>
|
||||
<int key="NSCellFlags2">0</int>
|
||||
<string key="NSContents">CPTitledWindowMask</string>
|
||||
<reference key="NSSupport" ref="394344788"/>
|
||||
<string key="NSCellIdentifier">_NS:9</string>
|
||||
<reference key="NSControlView" ref="147975559"/>
|
||||
<int key="NSButtonFlags">1211912448</int>
|
||||
<int key="NSButtonFlags">1211912703</int>
|
||||
<int key="NSButtonFlags2">2</int>
|
||||
<reference key="NSNormalImage" ref="757628530"/>
|
||||
<reference key="NSAlternateImage" ref="375806730"/>
|
||||
@@ -829,7 +777,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
|
||||
<int key="NSPeriodicDelay">200</int>
|
||||
<int key="NSPeriodicInterval">25</int>
|
||||
</object>
|
||||
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
|
||||
</object>
|
||||
</array>
|
||||
<object class="IBObjectContainer" key="IBDocument.Objects">
|
||||
@@ -994,14 +941,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
|
||||
</object>
|
||||
<int key="connectionID">33</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBOutletConnection" key="connection">
|
||||
<string key="label">delegate</string>
|
||||
<reference key="source" ref="393836098"/>
|
||||
<reference key="destination" ref="1001"/>
|
||||
</object>
|
||||
<int key="connectionID">226</int>
|
||||
</object>
|
||||
</array>
|
||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
||||
<array key="orderedObjects">
|
||||
@@ -1059,9 +998,8 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
|
||||
<reference ref="244990043"/>
|
||||
<reference ref="917693159"/>
|
||||
<reference ref="821769865"/>
|
||||
<reference ref="225469319"/>
|
||||
<reference ref="393836098"/>
|
||||
<reference ref="626349312"/>
|
||||
<reference ref="225469319"/>
|
||||
</array>
|
||||
<reference key="parent" ref="1056085528"/>
|
||||
</object>
|
||||
@@ -1368,19 +1306,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
|
||||
<reference key="object" ref="885506522"/>
|
||||
<reference key="parent" ref="671904505"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">224</int>
|
||||
<reference key="object" ref="393836098"/>
|
||||
<array class="NSMutableArray" key="children">
|
||||
<reference ref="437001198"/>
|
||||
</array>
|
||||
<reference key="parent" ref="161598483"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">225</int>
|
||||
<reference key="object" ref="437001198"/>
|
||||
<reference key="parent" ref="393836098"/>
|
||||
</object>
|
||||
</array>
|
||||
</object>
|
||||
<dictionary class="NSMutableDictionary" key="flattenedProperties">
|
||||
@@ -1429,8 +1354,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
|
||||
<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>
|
||||
<string key="224.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="225.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="23.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="25.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="28.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
@@ -1447,13 +1370,57 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
|
||||
<nil key="activeLocalization"/>
|
||||
<dictionary class="NSMutableDictionary" key="localizations"/>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">226</int>
|
||||
<int key="maxID">223</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">SheetWindowController</string>
|
||||
<string key="superclassName">NSWindowController</string>
|
||||
<dictionary class="NSMutableDictionary" key="actions">
|
||||
<string key="newAlertSheet:">id</string>
|
||||
<string key="newColorPanelSheet:">id</string>
|
||||
<string key="newModalSheet:">id</string>
|
||||
<string key="newModalWindow:">id</string>
|
||||
<string key="newOpenPanelSheet:">id</string>
|
||||
<string key="newSavePanelSheet:">id</string>
|
||||
<string key="newSheet:">id</string>
|
||||
<string key="newWindow:">id</string>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="actionInfosByName">
|
||||
<object class="IBActionInfo" key="newAlertSheet:">
|
||||
<string key="name">newAlertSheet:</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBActionInfo" key="newColorPanelSheet:">
|
||||
<string key="name">newColorPanelSheet:</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBActionInfo" key="newModalSheet:">
|
||||
<string key="name">newModalSheet:</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBActionInfo" key="newModalWindow:">
|
||||
<string key="name">newModalWindow:</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBActionInfo" key="newOpenPanelSheet:">
|
||||
<string key="name">newOpenPanelSheet:</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBActionInfo" key="newSavePanelSheet:">
|
||||
<string key="name">newSavePanelSheet:</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBActionInfo" key="newSheet:">
|
||||
<string key="name">newSheet:</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBActionInfo" key="newWindow:">
|
||||
<string key="name">newWindow:</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="outlets">
|
||||
<string key="_altCloseButton">NSButton</string>
|
||||
<string key="_closableMaskButton">NSButton</string>
|
||||
@@ -1465,9 +1432,8 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
|
||||
<string key="_shadeContentView">NSButton</string>
|
||||
<string key="_shadeParentWindow">NSButton</string>
|
||||
<string key="_shadeWindowView">NSButton</string>
|
||||
<string key="_sheetWindowHackCheckbox">NSButton</string>
|
||||
<string key="_titledMaskButton">NSButton</string>
|
||||
<string key="_windowTypeMatrix">CPRadioGroup</string>
|
||||
<string key="_windowTypeMatrix">NSMatrix</string>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
|
||||
<object class="IBToOneOutletInfo" key="_altCloseButton">
|
||||
@@ -1510,17 +1476,13 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes>
|
||||
<string key="name">_shadeWindowView</string>
|
||||
<string key="candidateClassName">NSButton</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="_sheetWindowHackCheckbox">
|
||||
<string key="name">_sheetWindowHackCheckbox</string>
|
||||
<string key="candidateClassName">NSButton</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="_titledMaskButton">
|
||||
<string key="name">_titledMaskButton</string>
|
||||
<string key="candidateClassName">NSButton</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="_windowTypeMatrix">
|
||||
<string key="name">_windowTypeMatrix</string>
|
||||
<string key="candidateClassName">CPRadioGroup</string>
|
||||
<string key="candidateClassName">NSMatrix</string>
|
||||
</object>
|
||||
</dictionary>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
|
||||
@@ -126,11 +126,11 @@
|
||||
- (SheetWindowController)allocController
|
||||
{
|
||||
CPLog.debug("[%@ %@] groupClass=%@", [self class], _cmd,
|
||||
[[_windowTypeMatrix selectedRadio] tag]);
|
||||
[[[[[_windowTypeMatrix subviews] objectAtIndex:0] radioGroup] selectedRadio] tag]);
|
||||
|
||||
var type = 1;
|
||||
if (_windowTypeMatrix)
|
||||
type = [[_windowTypeMatrix selectedRadio] tag];
|
||||
type = [[[[[_windowTypeMatrix subviews] objectAtIndex:0] radioGroup] selectedRadio] tag];
|
||||
|
||||
var styleMask = 0;
|
||||
if ([_titledMaskButton state])
|
||||
@@ -481,20 +481,4 @@
|
||||
[[_parentWindow contentView] setBackgroundColor:_savedColor];
|
||||
}
|
||||
|
||||
- (CPArray)tokenField:(CPTokenField)aTokenField completionsForSubstring:(CPString)substring indexOfToken:(int)tokenIndex indexOfSelectedItem:(int)selectedIndex
|
||||
{
|
||||
var choices = ["aardvark", "baa", "caaing whale"],
|
||||
r = [];
|
||||
|
||||
// Don't complete 'blank' - this would show all available matches which is excessive.
|
||||
if (!substring)
|
||||
return r;
|
||||
|
||||
for (var i = 0; i < choices.length; i++)
|
||||
if (choices[i].toLowerCase().indexOf(substring.toLowerCase()) == 0)
|
||||
r.push(choices[i]);
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -1,33 +0,0 @@
|
||||
/*
|
||||
* AppController.j
|
||||
* CPStepperBindings
|
||||
*
|
||||
* Created by You on November 27, 2012.
|
||||
* Copyright 2012, Your Company All rights reserved.
|
||||
*/
|
||||
|
||||
@import <Foundation/CPObject.j>
|
||||
|
||||
|
||||
@implementation AppController : CPObject
|
||||
{
|
||||
CPWindow theWindow; //this "outlet" is connected automatically by the Cib
|
||||
@outlet CPStepper stepper @accessors;
|
||||
}
|
||||
|
||||
- (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];
|
||||
}
|
||||
|
||||
@end
|
||||
@@ -1,10 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>Main cib file base name</key>
|
||||
<string>MainMenu.cib</string>
|
||||
<key>CPBundleName</key>
|
||||
<string>CPStepperBindings</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -1,94 +0,0 @@
|
||||
/*
|
||||
* Jakefile
|
||||
* CPStepperBindings
|
||||
*
|
||||
* Created by You on November 27, 2012.
|
||||
* Copyright 2012, Your Company All rights reserved.
|
||||
*/
|
||||
|
||||
var ENV = require("system").env,
|
||||
FILE = require("file"),
|
||||
JAKE = require("jake"),
|
||||
task = JAKE.task,
|
||||
FileList = JAKE.FileList,
|
||||
app = require("cappuccino/jake").app,
|
||||
configuration = ENV["CONFIG"] || ENV["CONFIGURATION"] || ENV["c"] || "Debug",
|
||||
OS = require("os");
|
||||
|
||||
app ("CPStepperBindings", function(task)
|
||||
{
|
||||
task.setBuildIntermediatesPath(FILE.join("Build", "CPStepperBindings.build", configuration));
|
||||
task.setBuildPath(FILE.join("Build", configuration));
|
||||
|
||||
task.setProductName("CPStepperBindings");
|
||||
task.setIdentifier("com.yourcompany.CPStepperBindings");
|
||||
task.setVersion("1.0");
|
||||
task.setAuthor("Your Company");
|
||||
task.setEmail("feedback @nospam@ yourcompany.com");
|
||||
task.setSummary("CPStepperBindings");
|
||||
task.setSources((new FileList("**/*.j")).exclude(FILE.join("Build", "**")));
|
||||
task.setResources(new FileList("Resources/**"));
|
||||
task.setIndexFilePath("index.html");
|
||||
task.setInfoPlistPath("Info.plist");
|
||||
task.setNib2CibFlags("-R Resources/");
|
||||
|
||||
if (configuration === "Debug")
|
||||
task.setCompilerFlags("-DDEBUG -g");
|
||||
else
|
||||
task.setCompilerFlags("-O");
|
||||
});
|
||||
|
||||
task ("default", ["CPStepperBindings"], function()
|
||||
{
|
||||
printResults(configuration);
|
||||
});
|
||||
|
||||
task ("build", ["default"]);
|
||||
|
||||
task ("debug", function()
|
||||
{
|
||||
ENV["CONFIGURATION"] = "Debug";
|
||||
JAKE.subjake(["."], "build", ENV);
|
||||
});
|
||||
|
||||
task ("release", function()
|
||||
{
|
||||
ENV["CONFIGURATION"] = "Release";
|
||||
JAKE.subjake(["."], "build", ENV);
|
||||
});
|
||||
|
||||
task ("run", ["debug"], function()
|
||||
{
|
||||
OS.system(["open", FILE.join("Build", "Debug", "CPStepperBindings", "index.html")]);
|
||||
});
|
||||
|
||||
task ("run-release", ["release"], function()
|
||||
{
|
||||
OS.system(["open", FILE.join("Build", "Release", "CPStepperBindings", "index.html")]);
|
||||
});
|
||||
|
||||
task ("deploy", ["release"], function()
|
||||
{
|
||||
FILE.mkdirs(FILE.join("Build", "Deployment", "CPStepperBindings"));
|
||||
OS.system(["press", "-f", FILE.join("Build", "Release", "CPStepperBindings"), FILE.join("Build", "Deployment", "CPStepperBindings")]);
|
||||
printResults("Deployment")
|
||||
});
|
||||
|
||||
task ("desktop", ["release"], function()
|
||||
{
|
||||
FILE.mkdirs(FILE.join("Build", "Desktop", "CPStepperBindings"));
|
||||
require("cappuccino/nativehost").buildNativeHost(FILE.join("Build", "Release", "CPStepperBindings"), FILE.join("Build", "Desktop", "CPStepperBindings", "CPStepperBindings.app"));
|
||||
printResults("Desktop")
|
||||
});
|
||||
|
||||
task ("run-desktop", ["desktop"], function()
|
||||
{
|
||||
OS.system([FILE.join("Build", "Desktop", "CPStepperBindings", "CPStepperBindings.app", "Contents", "MacOS", "NativeHost"), "-i"]);
|
||||
});
|
||||
|
||||
function printResults(configuration)
|
||||
{
|
||||
print("----------------------------");
|
||||
print(configuration+" app built at path: "+FILE.join("Build", configuration, "CPStepperBindings"));
|
||||
print("----------------------------");
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
Binary file not shown.
|
Before Width: | Height: | Size: 1.4 KiB |
@@ -1,107 +0,0 @@
|
||||
<!DOCTYPE html
|
||||
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||
<!--
|
||||
index-debug.html
|
||||
CPStepperBindings
|
||||
|
||||
Created by You on November 27, 2012.
|
||||
Copyright 2012, Your Company All rights reserved.
|
||||
-->
|
||||
<head>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7, chrome=1" />
|
||||
|
||||
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
|
||||
|
||||
<meta name="apple-mobile-web-app-capable" content="yes" />
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
|
||||
|
||||
<link rel="apple-touch-icon" href="Resources/icon.png" />
|
||||
<link rel="apple-touch-startup-image" href="Resources/default.png" />
|
||||
|
||||
<title>CPStepperBindings</title>
|
||||
|
||||
<script type="text/javascript">
|
||||
OBJJ_MAIN_FILE = "main.j";
|
||||
OBJJ_INCLUDE_PATHS = ["Frameworks/Debug", "Frameworks", "SomethingElse"];
|
||||
</script>
|
||||
|
||||
<script type="text/javascript" src="Frameworks/Debug/Objective-J/Objective-J.js" charset="UTF-8"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
objj_msgSend_reset();
|
||||
|
||||
// DEBUG OPTIONS:
|
||||
|
||||
// Uncomment to enable printing of backtraces on exceptions:
|
||||
//objj_msgSend_decorate(objj_backtrace_decorator);
|
||||
|
||||
// Uncomment to supress exceptions that take place inside a message
|
||||
//objj_msgSend_decorate(objj_supress_exceptions_decorator)
|
||||
|
||||
// Uncomment to enable runtime type checking:
|
||||
//objj_msgSend_decorate(objj_typecheck_decorator);
|
||||
|
||||
// Uncomment (along with both above) to print backtraces on type check errors:
|
||||
//objj_typecheck_prints_backtrace = true;
|
||||
|
||||
// Uncomment to disable the default logger (CPLogConsole if window.console exists, CPLogPopup otherwise):
|
||||
//CPLogUnregister(CPLogDefault);
|
||||
|
||||
// Uncomment to enable a specific logger:
|
||||
//CPLogRegister(CPLogConsole);
|
||||
//CPLogRegister(CPLogPopup);
|
||||
|
||||
// Tag view DOM elements with a "data-cappuccino-view" attribute that contains
|
||||
// the class name of the view that created them. Comment this or set to false to disable.
|
||||
appkit_tag_dom_elements = true;
|
||||
</script>
|
||||
|
||||
<style type="text/css">
|
||||
body{margin:0; padding:0;}
|
||||
#container {position: absolute; top:50%; left:50%;}
|
||||
#content {width:800px; text-align:center; margin-left: -400px; height:50px; margin-top:-25px; line-height: 50px;}
|
||||
#content {font-family: "Helvetica", "Arial", sans-serif; font-size: 18px; color: black; text-shadow: 0px 1px 0px white; }
|
||||
#loadgraphic {margin-right: 0.2em; margin-bottom:-2px;}
|
||||
</style>
|
||||
|
||||
<!--[if lt IE 7]>
|
||||
<STYLE type="text/css">
|
||||
#container { position: relative; top: 50%; }
|
||||
#content { position: relative;}
|
||||
</STYLE>
|
||||
<![endif]-->
|
||||
|
||||
</head>
|
||||
|
||||
<body style="">
|
||||
<div id="cappuccino-body">
|
||||
<div id="loadingcontainer" style="background-color: #eeeeee; overflow:hidden; width:100%; height:100%; position: absolute; top: 0; left: 0;">
|
||||
<script type="text/javascript">
|
||||
document.write("<div id='container'><p id='content'>" +
|
||||
"<img id='loadgraphic' width='16' height='16' src='Resources/spinner.gif' /> " +
|
||||
"Loading CPStepperBindings...</p></div>");
|
||||
</script>
|
||||
|
||||
<noscript>
|
||||
<div id="container">
|
||||
<div style="width: 440px; padding: 10px 25px 20px 25px; font-family: sans-serif; background-color: #ffffff; position: relative; left: -245px; top: -120px; text-align: center; -moz-border-radius: 20px; -webkit-border-radius: 20px; color: #555555">
|
||||
<p style="line-height: 1.4em;">JavaScript is required for this site to work correctly but is either disabled or not supported by your browser.</p>
|
||||
<p style="font-size:120%; padding:10px;"><a href="http://cappuccino.org/noscript">Show me how to enable JavaScript</a></p>
|
||||
<p style="font-size:80%;">You may want to upgrade to a newer browser while you're at it:</p>
|
||||
<ul style="margin:0;padding:0; text-align: center; font-size:80%;" >
|
||||
<li style="display: inline;"><a href="http://www.apple.com/safari/download/">Safari</a></li>
|
||||
<li style="display: inline;"><a href="http://www.mozilla.com/en-US/firefox/">Firefox</a></li>
|
||||
<li style="display: inline;"><a href="http://www.google.com/chrome/">Chrome</a></li>
|
||||
<li style="display: inline;"><a href="http://www.opera.com/download/">Opera</a></li>
|
||||
<li style="display: inline;"><a href="http://www.microsoft.com/windows/downloads/ie/getitnow.mspx">Internet Explorer</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</noscript>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -1,77 +0,0 @@
|
||||
<!DOCTYPE html
|
||||
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||
<!--
|
||||
index.html
|
||||
CPStepperBindings
|
||||
|
||||
Created by You on November 27, 2012.
|
||||
Copyright 2012, Your Company All rights reserved.
|
||||
-->
|
||||
<head>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7, chrome=1" />
|
||||
|
||||
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
|
||||
|
||||
<meta name="apple-mobile-web-app-capable" content="yes" />
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
|
||||
|
||||
<link rel="apple-touch-icon" href="Resources/icon.png" />
|
||||
<link rel="apple-touch-startup-image" href="Resources/default.png" />
|
||||
|
||||
<title>CPStepperBindings</title>
|
||||
|
||||
<script type="text/javascript">
|
||||
OBJJ_MAIN_FILE = "main.j";
|
||||
</script>
|
||||
|
||||
<script type="text/javascript" src="Frameworks/Objective-J/Objective-J.js" charset="UTF-8"></script>
|
||||
|
||||
<style type="text/css">
|
||||
body{margin:0; padding:0;}
|
||||
#container {position: absolute; top:50%; left:50%;}
|
||||
#content {width:800px; text-align:center; margin-left: -400px; height:50px; margin-top:-25px; line-height: 50px;}
|
||||
#content {font-family: "Helvetica", "Arial", sans-serif; font-size: 18px; color: black; text-shadow: 0px 1px 0px white; }
|
||||
#loadgraphic {margin-right: 0.2em; margin-bottom:-2px;}
|
||||
</style>
|
||||
|
||||
<!--[if lt IE 7]>
|
||||
<STYLE type="text/css">
|
||||
#container { position: relative; top: 50%; }
|
||||
#content { position: relative;}
|
||||
</STYLE>
|
||||
<![endif]-->
|
||||
|
||||
</head>
|
||||
|
||||
<body style="">
|
||||
<div id="cappuccino-body">
|
||||
<div id="loadingcontainer" style="background-color: #eeeeee; overflow:hidden; width:100%; height:100%; position: absolute; top: 0; left: 0;">
|
||||
<script type="text/javascript">
|
||||
document.write("<div id='container'><p id='content'>" +
|
||||
"<img id='loadgraphic' width='16' height='16' src='Resources/spinner.gif' /> " +
|
||||
"Loading CPStepperBindings...</p></div>");
|
||||
</script>
|
||||
|
||||
<noscript>
|
||||
<div id="container">
|
||||
<div style="width: 440px; padding: 10px 25px 20px 25px; font-family: sans-serif; background-color: #ffffff; position: relative; left: -245px; top: -120px; text-align: center; -moz-border-radius: 20px; -webkit-border-radius: 20px; color: #555555">
|
||||
<p style="line-height: 1.4em;">JavaScript is required for this site to work correctly but is either disabled or not supported by your browser.</p>
|
||||
<p style="font-size:120%; padding:10px;"><a href="http://cappuccino.org/noscript">Show me how to enable JavaScript</a></p>
|
||||
<p style="font-size:80%;">You may want to upgrade to a newer browser while you're at it:</p>
|
||||
<ul style="margin:0;padding:0; text-align: center; font-size:80%;" >
|
||||
<li style="display: inline;"><a href="http://www.apple.com/safari/download/">Safari</a></li>
|
||||
<li style="display: inline;"><a href="http://www.mozilla.com/en-US/firefox/">Firefox</a></li>
|
||||
<li style="display: inline;"><a href="http://www.google.com/chrome/">Chrome</a></li>
|
||||
<li style="display: inline;"><a href="http://www.opera.com/download/">Opera</a></li>
|
||||
<li style="display: inline;"><a href="http://www.microsoft.com/windows/downloads/ie/getitnow.mspx">Internet Explorer</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</noscript>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -1,18 +0,0 @@
|
||||
/*
|
||||
* AppController.j
|
||||
* CPStepperBindings
|
||||
*
|
||||
* Created by You on November 27, 2012.
|
||||
* Copyright 2012, Your Company All rights reserved.
|
||||
*/
|
||||
|
||||
@import <Foundation/Foundation.j>
|
||||
@import <AppKit/AppKit.j>
|
||||
|
||||
@import "AppController.j"
|
||||
|
||||
|
||||
function main(args, namedArgs)
|
||||
{
|
||||
CPApplicationMain(args, namedArgs);
|
||||
}
|
||||
@@ -11,18 +11,15 @@
|
||||
|
||||
|
||||
@implementation AppController : CPObject
|
||||
{
|
||||
CPTabView tabView1;
|
||||
}
|
||||
|
||||
- (void)applicationDidFinishLaunching:(CPNotification)aNotification
|
||||
{
|
||||
var theWindow = [[CPWindow alloc] initWithContentRect:CGRectMakeZero() styleMask:CPBorderlessBridgeWindowMask],
|
||||
contentView = [theWindow contentView];
|
||||
|
||||
tabView1 = [[CPTabView alloc] initWithFrame:CGRectMake(50,50,400,400)];
|
||||
[tabView1 setTabViewType:CPNoTabsBezelBorder];
|
||||
[tabView1 setTabViewType:CPTopTabsBezelBorder];
|
||||
var tabView = [[CPTabView alloc] initWithFrame:CGRectMake(50,50,400,400)];
|
||||
[tabView setTabViewType:CPNoTabsBezelBorder];
|
||||
[tabView setTabViewType:CPTopTabsBezelBorder];
|
||||
|
||||
var tabs = [
|
||||
"First Tab", "a label",
|
||||
@@ -42,27 +39,14 @@
|
||||
var item = [[CPTabViewItem alloc] initWithIdentifier:tabs[i]];
|
||||
[item setView:view];
|
||||
[item setLabel:tabs[i]];
|
||||
[tabView1 addTabViewItem:item];
|
||||
[tabView addTabViewItem:item];
|
||||
}
|
||||
|
||||
[contentView addSubview:tabView1];
|
||||
[contentView addSubview:tabView];
|
||||
|
||||
[tabView1 setAutoresizingMask:CPViewWidthSizable | CPViewHeightSizable];
|
||||
|
||||
var toggleButton = [CPButton buttonWithTitle:@"Cycle Tab View Type"];
|
||||
[toggleButton setAction:@selector(switchTabType:)];
|
||||
[toggleButton setTarget:self];
|
||||
[toggleButton sizeToFit];
|
||||
[toggleButton setFrameOrigin:CGPointMake(CGRectGetWidth([contentView frame]) - CGRectGetWidth([toggleButton frame]) - 15, 15)];
|
||||
[toggleButton setAutoresizingMask:CPViewMinXMargin | CPViewMaxYMargin];
|
||||
[contentView addSubview:toggleButton];
|
||||
[tabView setAutoresizingMask:CPViewWidthSizable | CPViewHeightSizable];
|
||||
|
||||
[theWindow orderFront:self];
|
||||
}
|
||||
|
||||
- (@action)switchTabType:(id)sender
|
||||
{
|
||||
[tabView1 setTabViewType:[tabView1 tabViewType] < CPNoTabsNoBorder ? [tabView1 tabViewType] + 1 : CPTopTabsBezelBorder];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@@ -12,7 +12,6 @@
|
||||
@implementation AppController : CPObject
|
||||
{
|
||||
CPWindow aWindow;
|
||||
CPTextField bezelToggleField;
|
||||
}
|
||||
|
||||
- (void)applicationDidFinishLaunching:(CPNotification)aNotification
|
||||
@@ -84,33 +83,6 @@
|
||||
y = CGRectGetMaxY([textField frame]) + 6;
|
||||
}
|
||||
|
||||
label = [[CPTextField alloc] initWithFrame:CGRectMake(15, 420, 600, 30)];
|
||||
[label setLineBreakMode:CPLineBreakByWordWrapping];
|
||||
[label setStringValue:"This text field has been configured to show its text at a fixed location both with and without bezel."];
|
||||
[contentView addSubview:label];
|
||||
|
||||
bezelToggleField = [CPTextField textFieldWithStringValue:"" placeholder:"Placeholder" width:200],
|
||||
|
||||
[bezelToggleField setEditable:YES];
|
||||
[bezelToggleField setFrameOrigin:CGPointMake(15, 445)];
|
||||
console.log("" + bezelToggleField._themeAttributes['content-inset']._parentAttribute._values);
|
||||
console.log("" + bezelToggleField._themeAttributes['content-inset']._values);
|
||||
[bezelToggleField setValue:[bezelToggleField valueForThemeAttribute:@"content-inset" inState:CPThemeStateBezeled] forThemeAttribute:@"content-inset" inState:CPThemeStateNormal];
|
||||
console.log("" + bezelToggleField._themeAttributes['content-inset']._parentAttribute._values);
|
||||
console.log("" + bezelToggleField._themeAttributes['content-inset']._values);
|
||||
|
||||
[contentView addSubview:bezelToggleField];
|
||||
|
||||
var bezelToggleButton = [CPButton buttonWithTitle:"Show Bezel"];
|
||||
|
||||
[bezelToggleButton setButtonType:CPPushOnPushOffButton];
|
||||
[bezelToggleButton setAction:@selector(toggleBezel:)];
|
||||
[bezelToggleButton setTarget:self];
|
||||
[bezelToggleButton setState:CPOnState];
|
||||
[bezelToggleButton sizeToFit];
|
||||
[bezelToggleButton setFrameOrigin:CGPointMake(CGRectGetMaxX([bezelToggleField frame]) + 15, 448)];
|
||||
[contentView addSubview:bezelToggleButton];
|
||||
|
||||
[theWindow orderFront:self];
|
||||
|
||||
aWindow = [[CPWindow alloc] initWithContentRect:CGRectMake(150, 300, 400, 150) styleMask:CPTitledWindowMask | CPClosableWindowMask | CPDocModalWindowMask];
|
||||
@@ -126,7 +98,9 @@
|
||||
[contentView addSubview:label];
|
||||
|
||||
[textField setFrame:CGRectMake(15, CGRectGetMaxY([label frame]) + 10, 300, 30)];
|
||||
|
||||
[textField setEditable:YES];
|
||||
|
||||
[textField setTarget:self];
|
||||
[textField setAction:@selector(modalAction:)];
|
||||
|
||||
@@ -135,11 +109,6 @@
|
||||
[CPApp beginSheet:aWindow modalForWindow:theWindow modalDelegate:self didEndSelector:nil contextInfo:nil];
|
||||
}
|
||||
|
||||
- (@action)toggleBezel:(id)sender
|
||||
{
|
||||
[bezelToggleField setBezeled:([sender state] == CPOnState)];
|
||||
}
|
||||
|
||||
- (void)modalAction:(id)sender
|
||||
{
|
||||
[CPApp endSheet:aWindow returnCode:0];
|
||||
|
||||
@@ -87,11 +87,6 @@ var STATES = ['Alabama', 'Alaska', 'Arizona', 'Arkansas', 'California', 'Colorad
|
||||
// Delegate must be set before objectValue
|
||||
[tokenFieldD setDelegate:self];
|
||||
|
||||
var tokenFieldDEditable = [CPCheckBox checkBoxWithTitle:"Editable"];
|
||||
[tokenFieldDEditable setFrame:CGRectMake(525, CGRectGetMinY([tokenFieldD frame]), 200, 30)];
|
||||
[tokenFieldDEditable bind:CPValueBinding toObject:tokenFieldD withKeyPath:@"editable" options:nil];
|
||||
[contentView addSubview:tokenFieldDEditable];
|
||||
|
||||
allPersons = [
|
||||
[Person personWithFirstName:@"Luc" lastName:@"Vauvillier"],
|
||||
[Person personWithFirstName:@"John" lastName:@"Doe"],
|
||||
|
||||
@@ -220,8 +220,8 @@ var NSButtonIsBorderedMask = 0x00800000,
|
||||
- If there is no max height either, don't do any height adjustments.
|
||||
*/
|
||||
var theme = [[Converter sharedConverter] themes][0],
|
||||
minSize = [theme valueForAttributeWithName:@"min-size" forClass:[self class]],
|
||||
maxSize = [theme valueForAttributeWithName:@"max-size" forClass:[self class]],
|
||||
minSize = [theme valueForAttributeWithName:@"min-size" forClass:[CPButton class]],
|
||||
maxSize = [theme valueForAttributeWithName:@"max-size" forClass:[CPButton class]],
|
||||
adjustHeight = NO;
|
||||
|
||||
if (minSize.height > 0 && maxSize.height > 0 && minSize.height === maxSize.height)
|
||||
|
||||
Reference in New Issue
Block a user