From cb9d81aa7f6766f446218dc1dcfc33a1b3f5b4df Mon Sep 17 00:00:00 2001 From: Francisco Ryan Tolmasky I Date: Thu, 11 Jun 2009 14:05:12 -0700 Subject: [PATCH 1/4] Fix for capitalization issue with circular slider images. Reviewed by me. --- ...SliderBezel.png => slider-circular-bezel.png} | Bin ...arSliderKnob.png => slider-circular-knob.png} | Bin AppKit/Themes/Aristo/Resources/spinner.gif | Bin 0 -> 1849 bytes AppKit/Themes/Aristo/ThemeDescriptors.j | 4 ++-- 4 files changed, 2 insertions(+), 2 deletions(-) rename AppKit/Themes/Aristo/Resources/{CircularSliderBezel.png => slider-circular-bezel.png} (100%) rename AppKit/Themes/Aristo/Resources/{CircularSliderKnob.png => slider-circular-knob.png} (100%) create mode 100644 AppKit/Themes/Aristo/Resources/spinner.gif diff --git a/AppKit/Themes/Aristo/Resources/CircularSliderBezel.png b/AppKit/Themes/Aristo/Resources/slider-circular-bezel.png similarity index 100% rename from AppKit/Themes/Aristo/Resources/CircularSliderBezel.png rename to AppKit/Themes/Aristo/Resources/slider-circular-bezel.png diff --git a/AppKit/Themes/Aristo/Resources/CircularSliderKnob.png b/AppKit/Themes/Aristo/Resources/slider-circular-knob.png similarity index 100% rename from AppKit/Themes/Aristo/Resources/CircularSliderKnob.png rename to AppKit/Themes/Aristo/Resources/slider-circular-knob.png diff --git a/AppKit/Themes/Aristo/Resources/spinner.gif b/AppKit/Themes/Aristo/Resources/spinner.gif new file mode 100644 index 0000000000000000000000000000000000000000..06dbc2bc21dddcf0e09b566d5b211aee89570f52 GIT binary patch literal 1849 zcma*odr(tX9tZHtz31lM+(&Y`A`Ou`NeG&R#DrIfV%?hng21vs6v>ooRQQFbk7E_K!V( z{?5!fpZWgIZ%*d6t%i*j24bL}AZUJm9)h6R*;%L4IWse3G#VWaN1#$zSSXcBhlYlH zJ|D}n{r&w2f+Qp)SS*&n?*G4}{}!h?td_mjU6Kad-rW*QwWYCUk7d^e+sjpZAn6kT z5rM;`{~_}-wm+L@%+E;JphLm}C3WzQAQD0wBoY|rOTQX{(@pp-WAA8Iw0HKl|15j) zhGh(SFWu#5zUCw^T!}C~eC}~?{xG-r7ugQC>taC+|L^xr&a%{#cgUOZXIM&v?)k^2 z1i5%0!U00wq)r4vlAwXBA_m5J5WNeuBm-XJQ5pG4GD%vc|K){+TJ{AkHqN@SJKczX zU}QRd9n*_bf^h94)6Ctv{CUfz_;qs#RDuQ$DR%y1&5G-a6rhf*4Y zl+UOD1*GE{GQ7vv;c-tTIMkz0ovO>9j%b5hpa@a*CBJ#W!0@ndSwF|%hMkdFtXiU) z`BEp+yhkt8ZY>tg&uyH@%^%K4jDrbA;et&vnnzZ3z22@e6<27z2Vk13kb7OtISyxv z(XoO-LNQCZe3lfzc%*pNqU<9T+p~teThOEB+~e&U0mC|zS{Q)dJZ)!^1f7L(zg*L> z*vSW%?dR~@@0(}x6-V^A`~ImD;)NaBUnP8;RH=bS2@pk`wp>>8r&jGjmGPy%1BW}v zoPo}ca$~bze@efc3kapuEVW1!%teOZT3j2Tw5=hjiAf02d}7dL0oFC%@=RXp5Ow#% z@a>+AM|YWt$n&e`>sB-32gBcuTi>R>*|8@lp`y6thc7ydyqDsuUn~YzZf|{-R@-3y zL#wx{Ii}xxL_csiW*LBn0-A$>zp4WOmkf6=ilrjlW?-l9+bCd7|i?*b5NTmy<<6NZ0T8$SN@mwdC2f z6jqK=N@bS@!=YSj%>h0}*4p+%0HbTIrE$w7UMT6+AZZ&DAo*qZAAi(OtNbIfl#Dw^ zJWeiCp~zi#&t6x}m9)O^eR4HiLV3QA<<0>HZ8%$^lrSE94Wb}=+MM^!b>n#5&-JQR zkr-CEu9C;_F*7DqDisulV6Pmg$nFL0TPn%~*m^-`Z3^BgU(sNpnx%nW(!eV9A&FvI zHL3X3lw8Wji^6=8KbQDE-e%b?svdFxxdh$8r97@7$ojeI`6AL8Ob6QC$qh&>ZWVDX1F{0vJnT%%mE;GveKWR%C} zM&4d;Jf3s9|HAA)yVUPo`Aq;0do#)uHSXi5*QF*)x@MVVHr+cN)uMZ__F|&Ta#p8d z53TOKtce!PJUuie8UWol-S(`c2nH?UGqJP{!4RR4u$LCfn)q-hj0^f=h(VYy)T6eN zhRO!ja-aDBTcgeyP(8Ua4IdiOog^*CQa?R(cP#9AgL9`j>EX-6Yf1lzX(!~``M1XC zNmM<4<6d~wWZ$Xrk0K}UteTrq@LBBk#MsjkK;pbuVhe)NI7(7Pf(l?lxC7=1Z7Pzl zMbS;nV4NI5_N{1$P)&XC)huOGQ+h^zpYUZfb*1n6>!`#*b3y52LGmi+<4sY5jyD#- zw&$d}DTguLAfnRtjrM*JfqtHqUu6rQoU=g%1E9xk%;)TDm^2<8n-0IhTsQFaek)MY}>PK4;nBk=ow4pF>vzkO& gna%Org-kgQCf=+BeMi^RbuY;YE~rTjend;_cdi8t>i_@% literal 0 HcmV?d00001 diff --git a/AppKit/Themes/Aristo/ThemeDescriptors.j b/AppKit/Themes/Aristo/ThemeDescriptors.j index f5ecf0d27..72efe57a9 100644 --- a/AppKit/Themes/Aristo/ThemeDescriptors.j +++ b/AppKit/Themes/Aristo/ThemeDescriptors.j @@ -516,12 +516,12 @@ + (CPSlider)themedCircularSlider { var slider = [[CPSlider alloc] initWithFrame:CGRectMake(0.0, 0.0, 34.0, 34.0)], - trackColor = PatternColor([_CPCibCustomResource imageResourceWithName:"circularSliderBezel.png" size:CGSizeMake(34.0, 34.0)]); + trackColor = PatternColor([_CPCibCustomResource imageResourceWithName:"slider-circular-bezel.png" size:CGSizeMake(34.0, 34.0)]); [slider setSliderType:CPCircularSlider]; [slider setValue:trackColor forThemeAttribute:@"track-color" inState:CPThemeStateCircular]; - var knobColor = [CPColor colorWithPatternImage:[_CPCibCustomResource imageResourceWithName:"circularSliderKnob.png" size:CGSizeMake(5.0, 5.0)]], + var knobColor = [CPColor colorWithPatternImage:[_CPCibCustomResource imageResourceWithName:"slider-circular-knob.png" size:CGSizeMake(5.0, 5.0)]], knobHighlightedColor = knobColor; [slider setValue:CGSizeMake(5.0, 5.0) forThemeAttribute:@"knob-size" inState:CPThemeStateCircular]; From fe21fc82c4c2b9de98a932240371fc4a294d620f Mon Sep 17 00:00:00 2001 From: Francisco Ryan Tolmasky I Date: Fri, 12 Jun 2009 13:50:26 -0700 Subject: [PATCH 2/4] Updating version strings to 0.7.1. Reviewed by me. --- AppKit/Rakefile | 2 +- AppKit/Tools/BlendKit/Rakefile | 2 +- AppKit/Tools/blend/Rakefile | 2 +- Foundation/Rakefile | 2 +- Tools/Rake/Rakefile | 4 ++-- Tools/bake/Rakefile | 2 +- Tools/capp/Rakefile | 2 +- Tools/capp/main.j | 2 +- Tools/nib2cib/Rakefile | 2 +- Tools/press/Rakefile | 2 +- 10 files changed, 11 insertions(+), 11 deletions(-) diff --git a/AppKit/Rakefile b/AppKit/Rakefile index 90a77b47c..f4f3d30cc 100644 --- a/AppKit/Rakefile +++ b/AppKit/Rakefile @@ -17,7 +17,7 @@ AppKitFiles = FileList['**/*.j'].exclude('CoreGraphics/CGContextCanvas.j', 'Core ObjectiveJ::BundleTask.new(:AppKit) do |t| t.name = 'AppKit' t.identifier = 'com.280n.AppKit' - t.version = '0.7.0' + t.version = '0.7.1' t.author = '280 North, Inc.' t.email = 'feedback @nospam@ 280north.com' t.summary = 'AppKit classes for Cappuccino' diff --git a/AppKit/Tools/BlendKit/Rakefile b/AppKit/Tools/BlendKit/Rakefile index 47edc0a5f..0de00f5c5 100644 --- a/AppKit/Tools/BlendKit/Rakefile +++ b/AppKit/Tools/BlendKit/Rakefile @@ -12,7 +12,7 @@ $BUILD_PATH = File.join($BUILD_DIR, $CONFIGURATION, 'BlendKit') ObjectiveJ::BundleTask.new(:BlendKit) do |t| t.name = 'BlendKit' t.identifier = 'com.280n.BlendKit' - t.version = '0.7.0' + t.version = '0.7.1' t.author = '280 North, Inc.' t.email = 'feedback @nospam@ 280north.com' t.summary = 'BlendKit classes for Cappuccino' diff --git a/AppKit/Tools/blend/Rakefile b/AppKit/Tools/blend/Rakefile index 010e38fe8..ab4ccf908 100644 --- a/AppKit/Tools/blend/Rakefile +++ b/AppKit/Tools/blend/Rakefile @@ -15,7 +15,7 @@ $ENVIRONMENT_LIB_PRODUCT = File.join($ENVIRONMENT_LIB_DIR, 'blend') ObjectiveJ::BundleTask.new(:blend) do |t| t.name = 'blend' t.identifier = 'com.280n.blend' - t.version = '0.7.0' + t.version = '0.7.1' t.author = '280 North, Inc.' t.email = 'feedback @nospam@ 280north.com' t.summary = 'blend classes for Cappuccino' diff --git a/Foundation/Rakefile b/Foundation/Rakefile index 4a4b4d2ed..fe768cbc4 100644 --- a/Foundation/Rakefile +++ b/Foundation/Rakefile @@ -14,7 +14,7 @@ task :build => [:Foundation, $ENVIRONMENT_PRODUCT] ObjectiveJ::BundleTask.new(:Foundation) do |t| t.name = 'Foundation' t.identifier = 'com.280n.Foundation' - t.version = '0.7.0' + t.version = '0.7.1' t.author = '280 North, Inc.' t.email = 'feedback @nospam@ 280north.com' t.summary = 'Foundation classes for Cappuccino' diff --git a/Tools/Rake/Rakefile b/Tools/Rake/Rakefile index 4d1136c87..499992b66 100644 --- a/Tools/Rake/Rakefile +++ b/Tools/Rake/Rakefile @@ -17,7 +17,7 @@ spec = Gem::Specification.new do |s| s.homepage = 'http://cappuccino.org/' s.summary = "Objective-J extensions to Rake." s.name = 'objective-j' - s.version = "0.7.0" + s.version = "0.7.1" s.requirements << 'rake' s.require_path = 'lib' s.files = PKG_FILES @@ -34,7 +34,7 @@ Rake::GemPackageTask.new(spec) do |pkg| end #task :install do -# Gem::Installer.new(File.join($BUILD_DIR, $CONFIGURATION, 'rake', 'objective-j-0.7.0.gem')).install +# Gem::Installer.new(File.join($BUILD_DIR, $CONFIGURATION, 'rake', 'objective-j-0.7.1.gem')).install #end task :objj_gem => [:gem] do diff --git a/Tools/bake/Rakefile b/Tools/bake/Rakefile index 31227621b..e833736e0 100644 --- a/Tools/bake/Rakefile +++ b/Tools/bake/Rakefile @@ -15,7 +15,7 @@ $ENVIRONMENT_LIB_PRODUCT = File.join($ENVIRONMENT_LIB_DIR, 'bake') ObjectiveJ::BundleTask.new(:bake) do |t| t.name = 'bake' t.identifier = 'com.280n.bake' - t.version = '0.7.0' + t.version = '0.7.1' t.author = '280 North, Inc.' t.email = 'feedback @nospam@ 280north.com' t.summary = 'Deployment tool for Cappuccino applications' diff --git a/Tools/capp/Rakefile b/Tools/capp/Rakefile index 65dd06b42..c43dabd57 100644 --- a/Tools/capp/Rakefile +++ b/Tools/capp/Rakefile @@ -14,7 +14,7 @@ $ENVIRONMENT_LIB_PRODUCT = File.join($ENVIRONMENT_LIB_DIR, 'capp') ObjectiveJ::BundleTask.new(:capp) do |t| t.name = 'capp' t.identifier = 'com.280n.capp' - t.version = '0.7.0' + t.version = '0.7.1' t.author = '280 North, Inc.' t.email = 'feedback @nospam@ 280north.com' t.summary = 'Setup up Cappuccino projects' diff --git a/Tools/capp/main.j b/Tools/capp/main.j index 34d30702a..f48c67b4a 100644 --- a/Tools/capp/main.j +++ b/Tools/capp/main.j @@ -24,7 +24,7 @@ function main() switch (argument) { case "version": - case "--version": return print("capp version 0.7.0"); + case "--version": return print("capp version 0.7.1"); case "-h": case "--help": return printUsage(); diff --git a/Tools/nib2cib/Rakefile b/Tools/nib2cib/Rakefile index 06afd6890..e62d3de10 100644 --- a/Tools/nib2cib/Rakefile +++ b/Tools/nib2cib/Rakefile @@ -14,7 +14,7 @@ $ENVIRONMENT_LIB_PRODUCT = File.join($ENVIRONMENT_LIB_DIR, 'nib2cib') ObjectiveJ::BundleTask.new(:nib2cib) do |t| t.name = 'nib2cib' t.identifier = 'com.280n.nib2cib' - t.version = '0.7.0' + t.version = '0.7.1' t.author = '280 North, Inc.' t.email = 'feedback @nospam@ 280north.com' t.summary = 'nib2cib converts Cocoa nib and xibs to Cappuccino cibs' diff --git a/Tools/press/Rakefile b/Tools/press/Rakefile index 28eabe3d2..b483a0b05 100644 --- a/Tools/press/Rakefile +++ b/Tools/press/Rakefile @@ -16,7 +16,7 @@ $ENVIRONMENT_BRIDGE = File.join($ENVIRONMENT_LIB_DIR, 'press', 'bridge.js') ObjectiveJ::BundleTask.new(:press) do |t| t.name = 'press' t.identifier = 'com.280n.press' - t.version = '0.7.0' + t.version = '0.7.1' t.author = '280 North, Inc.' t.email = 'feedback @nospam@ 280north.com' t.summary = 'Deployment tool for Cappuccino applications' From 1e3b79de1798ea4f8a84b72792e66bb7e1aa5d79 Mon Sep 17 00:00:00 2001 From: Francisco Ryan Tolmasky I Date: Sat, 13 Jun 2009 14:50:38 -0700 Subject: [PATCH 3/4] Fix for superview's not remaining mouseEntered when mouse moves over subviews. Closes #126. Reviewed by me. --- AppKit/CPWindow/CPWindow.j | 63 +++++++++++++++++++++++++++++--------- 1 file changed, 48 insertions(+), 15 deletions(-) diff --git a/AppKit/CPWindow/CPWindow.j b/AppKit/CPWindow/CPWindow.j index 103fc2890..4044620d8 100644 --- a/AppKit/CPWindow/CPWindow.j +++ b/AppKit/CPWindow/CPWindow.j @@ -253,7 +253,7 @@ var CPWindowSaveImage = nil, CPView _contentView; CPView _toolbarView; - CPView _mouseOverView; + CPArray _mouseEnteredStack; CPView _leftMouseDownView; CPView _rightMouseDownView; @@ -1212,23 +1212,56 @@ CPTexturedBackgroundWindowMask case CPMouseMoved: if (!_acceptsMouseMovedEvents) return; - + + if (!_mouseEnteredStack) + _mouseEnteredStack = []; + var hitTestView = [_windowView hitTest:point]; - - if (hitTestView != _mouseOverView) + + if ([_mouseEnteredStack count] && [_mouseEnteredStack lastObject] === hitTestView) + return [hitTestView mouseMoved:anEvent]; + + var view = hitTestView, + mouseEnteredStack = []; + + while (view) { - if (_mouseOverView) - [_mouseOverView mouseExited:[CPEvent mouseEventWithType:CPMouseExited location:point - modifierFlags:[anEvent modifierFlags] timestamp:[anEvent timestamp] windowNumber:_windowNumber context:nil eventNumber:-1 clickCount:1 pressure:0]]; - - if (hitTestView) - [hitTestView mouseEntered:[CPEvent mouseEventWithType:CPMouseEntered location:point - modifierFlags:[anEvent modifierFlags] timestamp:[anEvent timestamp] windowNumber:_windowNumber context:nil eventNumber:-1 clickCount:1 pressure:0]]; - - _mouseOverView = hitTestView; + mouseEnteredStack.unshift(view); + + view = [view superview]; } - - [_mouseOverView mouseMoved:anEvent]; + + var deviation = MIN(_mouseEnteredStack.length, mouseEnteredStack.length); + + while (deviation--) + if (_mouseEnteredStack[deviation] !== mouseEnteredStack[deviation]) + break; + + var index = deviation, + count = _mouseEnteredStack.length; + + if (index < count) + { + var event = [CPEvent mouseEventWithType:CPMouseExited location:point modifierFlags:[anEvent modifierFlags] timestamp:[anEvent timestamp] windowNumber:_windowNumber context:nil eventNumber:-1 clickCount:1 pressure:0]; + + for (; index < count; ++index) + [_mouseEnteredStack[index] mouseExited:event]; + } + + index = deviation; + count = mouseEnteredStack.length; + + if (index < count) + { + var event = [CPEvent mouseEventWithType:CPMouseEntered location:point modifierFlags:[anEvent modifierFlags] timestamp:[anEvent timestamp] windowNumber:_windowNumber context:nil eventNumber:-1 clickCount:1 pressure:0]; + + for (; index < count; ++index) + [mouseEnteredStack[index] mouseEntered:event]; + } + + _mouseEnteredStack = mouseEnteredStack; + + [hitTestView mouseMoved:anEvent]; } } From bfcb94a8441480a22cfd649938b6252160fe8be5 Mon Sep 17 00:00:00 2001 From: Francisco Ryan Tolmasky I Date: Sat, 13 Jun 2009 18:27:31 -0700 Subject: [PATCH 4/4] Various key input fixes. Reviewed by me. --- AppKit/CPCompatibility.j | 7 +++++-- AppKit/CPResponder.j | 38 ++++++++++++++++---------------------- Objective-J/debug.js | 2 +- 3 files changed, 22 insertions(+), 25 deletions(-) diff --git a/AppKit/CPCompatibility.j b/AppKit/CPCompatibility.j index 2ba69a747..e5e30c41f 100644 --- a/AppKit/CPCompatibility.j +++ b/AppKit/CPCompatibility.j @@ -106,9 +106,12 @@ else if (USER_AGENT.indexOf("AppleWebKit/") != -1) var versionStart = USER_AGENT.indexOf("AppleWebKit/") + "AppleWebKit/".length, versionEnd = USER_AGENT.indexOf(" ", versionStart), - version = parseFloat(USER_AGENT.substring(versionStart, versionEnd), 10); + versionString = USER_AGENT.substring(versionStart, versionEnd), + versionDivision = versionString.indexOf('.'), + majorVersion = parseInt(versionString.substring(0, versionDivision)), + minorVersion = parseInt(versionString.substr(versionDivision + 1)); - if(USER_AGENT.indexOf("Plainview") == -1 && version >= 525.14 || USER_AGENT.indexOf("Chrome") != -1) + if((USER_AGENT.indexOf("Safari") !== CPNotFound && (majorVersion >= 525 && minorVersion > 14)) || USER_AGENT.indexOf("Chrome") !== CPNotFound) PLATFORM_FEATURES |= CPJavascriptRemedialKeySupport; } diff --git a/AppKit/CPResponder.j b/AppKit/CPResponder.j index 5d07e987b..c55a2731c 100644 --- a/AppKit/CPResponder.j +++ b/AppKit/CPResponder.j @@ -96,36 +96,38 @@ CPDownArrowKeyCode = 40; */ - (void)interpretKeyEvents:(CPArray)events { - var event, - index = 0; - - while(event = events[index++]) + var index = 0, + count = [events count]; + + for (; index < count; ++index) { + var event = events[index]; + switch([event keyCode]) { - case CPLeftArrowKeyCode: [self moveBackward:self]; + case CPLeftArrowKeyCode: [self doCommandBySelector:@selector(moveLeft:)]; break; - case CPRightArrowKeyCode: [self moveForward:self]; + case CPRightArrowKeyCode: [self doCommandBySelector:@selector(moveRight:)]; break; - case CPUpArrowKeyCode: [self moveUp:self]; + case CPUpArrowKeyCode: [self doCommandBySelector:@selector(moveUp:)]; break; - case CPDownArrowKeyCode: [self moveDown:self]; + case CPDownArrowKeyCode: [self doCommandBySelector:@selector(moveDown:)]; break; - case CPDeleteKeyCode: [self deleteBackward:self]; + case CPDeleteKeyCode: [self doCommandBySelector:@selector(deleteBackward:)]; break; case CPReturnKeyCode: - case 3: [self insertLineBreak:self]; + case 3: [self doCommandBySelector:@selector(insertLineBreak:)]; break; - case CPEscapeKeyCode: [self cancel:self]; + case CPEscapeKeyCode: [self doCommandBySelector:@selector(cancel:)]; break; case CPTabKeyCode: var shift = [event modifierFlags] & CPShiftKeyMask; if (!shift) - [self insertTab:self]; + [self doCommandBySelector:@selector(insertTab:)]; else - [self insertBackTab:self]; + [self doCommandBySelector:@selector(insertBackTab:)]; break; @@ -224,14 +226,6 @@ CPDownArrowKeyCode = 40; } // Action Methods -/*! - Deletes one character backward, or the selection if anything is selected. - @param aSender the object requesting this -*/ -- (void)deleteBackward:(id)aSender -{ -} - /*! Insert a line break at the caret position or selection. @param aSender the object requesting this @@ -278,7 +272,7 @@ CPDownArrowKeyCode = 40; */ - (void)doCommandBySelector:(SEL)aSelector { - if([self respondsToSelector:aSelector]) + if ([self respondsToSelector:aSelector]) [self performSelector:aSelector]; else [_nextResponder doCommandBySelector:aSelector]; diff --git a/Objective-J/debug.js b/Objective-J/debug.js index 9702e00c8..cbc5fd447 100644 --- a/Objective-J/debug.js +++ b/Objective-J/debug.js @@ -119,7 +119,7 @@ function objj_backtrace_set_enabled(enabled) function objj_debug_print_backtrace() { - print(objj_debug_backtrace_string()); + alert(objj_debug_backtrace_string()); } function objj_debug_backtrace_string()