My favorites | Sign in
Project Logo
                
Details: Show all Hide all

Older

  • Nov 09, 2009
    issue 34 (Update the PSMTabBarControl IB plug-in for Leopard/IB 3.x) reported by doobnet   -   The PSMTabBarControl Interface Builder plug-in seems to be built for Tiger/Interface Builder 2.x. It would be nice if it could be updated for Leopard/Interface Builder 3.x.
    The PSMTabBarControl Interface Builder plug-in seems to be built for Tiger/Interface Builder 2.x. It would be nice if it could be updated for Leopard/Interface Builder 3.x.
  • Oct 27, 2009
    r291 (Patch up a few leaks found in Adium. ) committed by stephen.holt   -   Patch up a few leaks found in Adium.
    Patch up a few leaks found in Adium.
  • Sep 15, 2009
    issue 33 (There is no delegate method in PSMTabs for a double click of...) reported by wildwobby   -   Common functionality in Apple's apps is that double clicking a resize bar, will resize what ever it is to make it most efficient (or create a new tab as in safari). Because PSMTabs doesn't have a delegate method that will fire when an event like this occurs, it is impossible to make this functionality happen. This detects when a double click occurs in the area of the view not occupied by a tab, and will fire a delegate method.
    Common functionality in Apple's apps is that double clicking a resize bar, will resize what ever it is to make it most efficient (or create a new tab as in safari). Because PSMTabs doesn't have a delegate method that will fire when an event like this occurs, it is impossible to make this functionality happen. This detects when a double click occurs in the area of the view not occupied by a tab, and will fire a delegate method.
  • Aug 25, 2009
    issue 32 (Build PSMTabBarControl as 64Bit (patch included)) Status changed by stephen.holt   -  
    Status: Fixed
    Status: Fixed
  • Aug 25, 2009
    r290 (Updating PSMTabBarControl.framework for 10.5+ and 64-bit com...) committed by stephen.holt   -   Updating PSMTabBarControl.framework for 10.5+ and 64-bit compatibility. If you need to use PSMTabBar on a 10.4 project, use the branch.
    Updating PSMTabBarControl.framework for 10.5+ and 64-bit compatibility. If you need to use PSMTabBar on a 10.4 project, use the branch.
  • Aug 25, 2009
    issue 32 (Build PSMTabBarControl as 64Bit (patch included)) commented on by stephen.holt   -   Updating the patch, makes it a Xcode 3.1 project, and won't build ppc64.
    Updating the patch, makes it a Xcode 3.1 project, and won't build ppc64.
  • Aug 25, 2009
    r289 (Branching for 10.4 compatibility) committed by stephen.holt   -   Branching for 10.4 compatibility
    Branching for 10.4 compatibility
  • Aug 24, 2009
    issue 32 (Build PSMTabBarControl as 64Bit (patch included)) reported by stephen.holt   -   The future is 64-bits, and that means leaving our 32-bit build processes behind. Posting this as a patch just so we don't break people building from trunk, as this patch requires the 10.5 SDK.
    The future is 64-bits, and that means leaving our 32-bit build processes behind. Posting this as a patch just so we don't break people building from trunk, as this patch requires the 10.5 SDK.
  • Aug 22, 2009
    r288 (Try unescaping a url first, then re-escape it. If, for some...) committed by stephen.holt   -   Try unescaping a url first, then re-escape it. If, for some reason, unescaping fails, fall back on the originating string.
    Try unescaping a url first, then re-escape it. If, for some reason, unescaping fails, fall back on the originating string.
  • Aug 11, 2009
    r287 (IMP caching didn't gain us much. ) committed by stephen.holt   -   IMP caching didn't gain us much.
    IMP caching didn't gain us much.
  • Aug 11, 2009
    r286 (Cache the IMP inside countByEnumeratingWithState:objects:cou...) committed by stephen.holt   -   Cache the IMP inside countByEnumeratingWithState:objects:count (NSFastEnumeration).
    Cache the IMP inside countByEnumeratingWithState:objects:count (NSFastEnumeration).
  • Aug 11, 2009
    r285 (Support NSFastEnumeration protocol ) committed by stephen.holt   -   Support NSFastEnumeration protocol
    Support NSFastEnumeration protocol
  • Jul 27, 2009
    r284 (We have an 'item' local variable; use it consistently to mak...) committed by tekjew   -   We have an 'item' local variable; use it consistently to make this code clearer
    We have an 'item' local variable; use it consistently to make this code clearer
  • Jul 26, 2009
    r283 (guard for your health ) committed by stephen.holt   -   guard for your health
    guard for your health
  • Jul 26, 2009
    r282 (Remove explicit locking completely in AH. Rather than check...) committed by stephen.holt   -   Remove explicit locking completely in AH. Rather than check and lock in -(id)init, just set these in +(void)initalize.
    Remove explicit locking completely in AH. Rather than check and lock in -(id)init, just set these in +(void)initalize.
  • Apr 21, 2009
    r281 (Mutating while enumerating is Not Supported) committed by catfish.man   -   Mutating while enumerating is Not Supported
    Mutating while enumerating is Not Supported
  • Apr 06, 2009
    r280 (Adium Tab Style: Move the object counter over 3 pixels to th...) committed by dogcow   -   Adium Tab Style: Move the object counter over 3 pixels to the right.
    Adium Tab Style: Move the object counter over 3 pixels to the right.
  • Apr 04, 2009
    r279 (Support for colored tab counts from Zac West) committed by catfish.man   -   Support for colored tab counts from Zac West
    Support for colored tab counts from Zac West
  • Mar 23, 2009
    r278 (Waving the mouse over side tabs is notably slow. Shark says ...) committed by catfish.man   -   Waving the mouse over side tabs is notably slow. Shark says this is due to string height calculation, so this introduces a primitive (but effective according to profiling) cache for string heights
    Waving the mouse over side tabs is notably slow. Shark says this is due to string height calculation, so this introduces a primitive (but effective according to profiling) cache for string heights
  • Feb 07, 2009
    r277 (Adding another external ) committed by cforsythe   -   Adding another external
    Adding another external
  • Dec 11, 2008
    issue 31 (PSMTabBarControl - Exception while animating) reported by binarynights   -   When rearranging tabs it crashes often with the folowing exception: *** Canceling drag because exception 'NSGenericException' (reason '*** Collection <NSCFSet: 0x168333d0> was mutated while being enumerated.') was raised during a dragging session Somehow I can't reproduce this with the example app but with my app it always happens. Could be that I create the PSMTabBarControl programatically, but I'm not sure... Anyway, I could fix this by copying the NSMutableSet before enumerating. Hope this helps. - (void)animateDrag:(NSTimer *)timer { NSEnumerator *e = [[_participatingTabBars copy] objectEnumerator]; .... }
    When rearranging tabs it crashes often with the folowing exception: *** Canceling drag because exception 'NSGenericException' (reason '*** Collection <NSCFSet: 0x168333d0> was mutated while being enumerated.') was raised during a dragging session Somehow I can't reproduce this with the example app but with my app it always happens. Could be that I create the PSMTabBarControl programatically, but I'm not sure... Anyway, I could fix this by copying the NSMutableSet before enumerating. Hope this helps. - (void)animateDrag:(NSTimer *)timer { NSEnumerator *e = [[_participatingTabBars copy] objectEnumerator]; .... }
  • Oct 29, 2008
    issue 30 (Sparkle App Can't Be Compiled) commented on by ybarthelemy   -   Sorry for the filename, my attached file is in fact a patch.
    Sorry for the filename, my attached file is in fact a patch.
  • Oct 29, 2008
    issue 30 (Sparkle App Can't Be Compiled) commented on by ybarthelemy   -   As a work around, the commanline utility can be disabled. The GUI will compile. I have started a patch for the command line, but it requires some method change as some properties have been removed in favor of dictionary. The patch just completes the refactoring of MyDocument to SCRDocument and adds SCRDocument to the commandline target in order to compile.
    As a work around, the commanline utility can be disabled. The GUI will compile. I have started a patch for the command line, but it requires some method change as some properties have been removed in favor of dictionary. The patch just completes the refactoring of MyDocument to SCRDocument and adds SCRDocument to the commandline target in order to compile.
  • Oct 29, 2008
    issue 19 (SparkleCaster no longer compiles) commented on by ybarthelemy   -   It appears compiling. There is not png issue for me.
    It appears compiling. There is not png issue for me.
  • Oct 14, 2008
    ObjectCreationMacros Wiki page added by dogcow
  • Oct 14, 2008
    r275 (Adding my object creation macros to maccode, yay. ) committed by dogcow   -   Adding my object creation macros to maccode, yay.
    Adding my object creation macros to maccode, yay.
  • Oct 08, 2008
    issue 30 (Sparkle App Can't Be Compiled) Owner changed by cforsythe   -   Assigning to the application owner
    Owner: RaddishIoW
    Assigning to the application owner
    Owner: RaddishIoW
  • Oct 06, 2008
    issue 30 (Sparkle App Can't Be Compiled) reported by l...@blackbilby.com   -   What steps will reproduce the problem? Just letting you know that it looks like there is some files missing from the SparkleCaster project. If you open the project and compile the SparkleCaster.m file references a MyDocuments.h file which doesn't exist, and the SparkleCaster.h file doesn't exist either. What is the expected output? What do you see instead? The application should compile after opening the project.
    What steps will reproduce the problem? Just letting you know that it looks like there is some files missing from the SparkleCaster project. If you open the project and compile the SparkleCaster.m file references a MyDocuments.h file which doesn't exist, and the SparkleCaster.h file doesn't exist either. What is the expected output? What do you see instead? The application should compile after opening the project.
  • Sep 29, 2008
    r274 (Adding more projects. ) committed by cforsythe   -   Adding more projects.
    Adding more projects.
  • Sep 29, 2008
    WhatIsMacCode Wiki page edited by dogcow
  • Sep 28, 2008
    r272 (Added fileview ) committed by cforsythe   -   Added fileview
    Added fileview
  • Sep 28, 2008
    issue 5 (ESSTimeTrialClass easily lets you implement a time limit int...) Status changed by cforsythe   -   Checked in with revision 271.
    Status: Fixed
    Checked in with revision 271.
    Status: Fixed
  • Sep 28, 2008
    r271 (Resolving issue 5. ) committed by cforsythe   -   Resolving issue 5 .
    Resolving issue 5 .
  • Sep 28, 2008
    issue 4 (NSImage Category) Status changed by cforsythe   -   Resolved in revision 270
    Status: Fixed
    Resolved in revision 270
    Status: Fixed
  • Sep 28, 2008
    r270 (Adding classes from Issue 4. ) committed by cforsythe   -   Adding classes from Issue 4 .
    Adding classes from Issue 4 .
  • Sep 28, 2008
    r269 (Updating the readme for a release. ) committed by cforsythe   -   Updating the readme for a release.
    Updating the readme for a release.
  • Sep 28, 2008
    r268 (Removing Growl. It moved to another scm. ) committed by cforsythe   -   Removing Growl. It moved to another scm.
    Removing Growl. It moved to another scm.
  • Sep 21, 2008
    issue 29 (IBPlugin missing (existing palette does not work in IB v3.x ...) reported by satsumac   -   What steps will reproduce the problem? 1. Put PSMTabBarControl.palette into ~/Library/Palettes/ 2. Start Interface Builder. 3. Search for "PSMTabBarControl" in IB's Library panel What is the expected output? What do you see instead? PSMTabBarControl should appear What version of the product are you using? On what operating system? Leopard, Xcode 3.1.x Please provide any additional information below. "PSMTabBarControl.palette" should have a "PSMTabBarControl.ibplugin" for use in Xcode 3.x
    What steps will reproduce the problem? 1. Put PSMTabBarControl.palette into ~/Library/Palettes/ 2. Start Interface Builder. 3. Search for "PSMTabBarControl" in IB's Library panel What is the expected output? What do you see instead? PSMTabBarControl should appear What version of the product are you using? On what operating system? Leopard, Xcode 3.1.x Please provide any additional information below. "PSMTabBarControl.palette" should have a "PSMTabBarControl.ibplugin" for use in Xcode 3.x
  • Sep 10, 2008
    issue 28 (ZDSMigrationHandler fails to copy relationships to target ob...) commented on by dan.gro...@wonderwarp.com   -   If anyone wants my crummy fix (went with option #2), the files are attached. If I weren't in a hurry, I'd probably more deeply investigate this and use #3.
    If anyone wants my crummy fix (went with option #2), the files are attached. If I weren't in a hurry, I'd probably more deeply investigate this and use #3.
  • Sep 10, 2008
    issue 28 (ZDSMigrationHandler fails to copy relationships to target ob...) reported by dan.gro...@wonderwarp.com   -   I found that, in using ZDSMigrationHandler, between two schemas where the only difference is a few added columns, that a lot of the relationships that existed in the old database were null in the new one. I investigated and put in a few NSLogs and it seems that, in performMigration, the newEntitiesReference dictionary only contains objects that have been handled already. So after we go to copy an object to the new managed object context, we pass this dictionary to copyRelationshipsFromManagedObject:withReference:. But if the target of the relationship does not exist in newEntitiesReference, the relationship ends up being null. Example output: 2008-09-10 04:34:05.658 ShoveBox[1299:2e13] Starting migration flow 2008-09-10 04:34:05.668 ShoveBox[1299:2e13] Building source stack 2008-09-10 04:34:05.776 ShoveBox[1299:2e13] Building destination stack 2008-09-10 04:34:06.273 ShoveBox[1299:2e13] Starting migration 2008-09-10 04:34:06.274 ShoveBox[1299:2e13] Current entity name is Action, new entities reference has 0 items 2008-09-10 04:34:06.281 ShoveBox[1299:2e13] Current entity name is Condition, new entities reference has 1 items 2008-09-10 04:34:06.283 ShoveBox[1299:2e13] Current entity name is ContentBlob, new entities reference has 2 items 2008-09-10 04:34:06.417 ShoveBox[1299:2e13] Current entity name is Entry, new entities reference has 112 items 2008-09-10 04:34:06.458 ShoveBox[1299:2e13] Current entity name is Folder, new entities reference has 222 items Possible solutions: 1. I'm being a moron and this isn't really a problem. 2. The migration helper can specify an array of entity names so that the dependent objects can be copied first. 3. performMigration can be rewritten so that it does a double-pass: first copying over the objects, then copying over the relationships. I'm happy to fix the issue, if indeed, it is an issue, but I thought I'd check here first. Thanks! Dan Grover Wonder Warp Software www.wonderwarp.com
    I found that, in using ZDSMigrationHandler, between two schemas where the only difference is a few added columns, that a lot of the relationships that existed in the old database were null in the new one. I investigated and put in a few NSLogs and it seems that, in performMigration, the newEntitiesReference dictionary only contains objects that have been handled already. So after we go to copy an object to the new managed object context, we pass this dictionary to copyRelationshipsFromManagedObject:withReference:. But if the target of the relationship does not exist in newEntitiesReference, the relationship ends up being null. Example output: 2008-09-10 04:34:05.658 ShoveBox[1299:2e13] Starting migration flow 2008-09-10 04:34:05.668 ShoveBox[1299:2e13] Building source stack 2008-09-10 04:34:05.776 ShoveBox[1299:2e13] Building destination stack 2008-09-10 04:34:06.273 ShoveBox[1299:2e13] Starting migration 2008-09-10 04:34:06.274 ShoveBox[1299:2e13] Current entity name is Action, new entities reference has 0 items 2008-09-10 04:34:06.281 ShoveBox[1299:2e13] Current entity name is Condition, new entities reference has 1 items 2008-09-10 04:34:06.283 ShoveBox[1299:2e13] Current entity name is ContentBlob, new entities reference has 2 items 2008-09-10 04:34:06.417 ShoveBox[1299:2e13] Current entity name is Entry, new entities reference has 112 items 2008-09-10 04:34:06.458 ShoveBox[1299:2e13] Current entity name is Folder, new entities reference has 222 items Possible solutions: 1. I'm being a moron and this isn't really a problem. 2. The migration helper can specify an array of entity names so that the dependent objects can be copied first. 3. performMigration can be rewritten so that it does a double-pass: first copying over the objects, then copying over the relationships. I'm happy to fix the issue, if indeed, it is an issue, but I thought I'd check here first. Thanks! Dan Grover Wonder Warp Software www.wonderwarp.com
  • Sep 03, 2008
    r267 (build 32/64 by default.) committed by stephen.holt   -   build 32/64 by default.
    build 32/64 by default.
  • Sep 03, 2008
    AutoHyperlinks (On Building and Using the AutoHyperlinks Frameowrk.) Wiki page added by stephen.holt
  • Sep 03, 2008
    r265 (Adding AutoHyperlinks source to maccode, as seen in Adium 1....) committed by stephen.holt   -   Adding AutoHyperlinks source to maccode, as seen in Adium 1.3
    Adding AutoHyperlinks source to maccode, as seen in Adium 1.3
  • Sep 01, 2008
    r264 (Added a class (plus NSString category) for enumerating lines...) committed by boredzo   -   Added a class (plus NSString category) for enumerating lines in a string. This could use some work — there's a property that's not implemented yet, and the enumerator currently skips empty lines. Other than that, though, it works.
    Added a class (plus NSString category) for enumerating lines in a string. This could use some work — there's a property that's not implemented yet, and the enumerator currently skips empty lines. Other than that, though, it works.
  • Aug 08, 2008
    issue 27 (Memory leak in NSImage+Quicklook) reported by tiennou7   -   We are leaking the CGImageRef created by Quicklook if the converted NSImage is valid, since we are returning it immediately ;-). Attached is a patch fixing this.
    We are leaking the CGImageRef created by Quicklook if the converted NSImage is valid, since we are returning it immediately ;-). Attached is a patch fixing this.
  • Aug 05, 2008
    issue 26 (overflow popup button animation is too fast in PSMTabBarCont...) commented on by keithmalkin   -   Here are some diffs to fix this. Index: PSMOverflowPopUpButton.h =================================================================== --- PSMOverflowPopUpButton.h (revision 263) +++ PSMOverflowPopUpButton.h (working copy) @@ -16,12 +16,20 @@ BOOL _animatingAlternateImage; NSTimer *_animationTimer; float _animationValue; + float _animationStep; + float _animationLimit; } //alternate image display - (BOOL)animatingAlternateImage; - (void)setAnimatingAlternateImage:(BOOL)flag; +//animation speed and limit +- (float)animationStep; // default value is 0.033 +- (void)setAnimationStep:(float)value; +- (float)animationLimit; // default value is 1.0 +- (void)setAnimationLimit:(float)value; + // archiving - (void)encodeWithCoder:(NSCoder *)aCoder; - (id)initWithCoder:(NSCoder *)aDecoder; Index: PSMOverflowPopUpButton.m =================================================================== --- PSMOverflowPopUpButton.m (revision 263) +++ PSMOverflowPopUpButton.m (working copy) @@ -10,7 +10,6 @@ #import "PSMTabBarControl.h" #define TIMER_INTERVAL 1.0 / 15.0 -#define ANIMATION_STEP 0.033f @implementation PSMOverflowPopUpButton @@ -24,6 +23,8 @@ _PSMTabBarOverflowPopUpImage = [[NSImage alloc] initByReferencingFile:[[PSMTabBarControl bundle] pathForImageResource:@"overflowImage"]]; _PSMTabBarOverflowDownPopUpImage = [[NSImage alloc] initByReferencingFile:[[PSMTabBarControl bundle] pathForImageResource:@"overflowImagePressed"]]; _animatingAlternateImage = NO; + _animationStep = 0.033f; + _animationLimit = 1.0f; } return self; } @@ -63,7 +64,7 @@ drawPoint.y += altImageSize.height; } - [[self alternateImage] compositeToPoint:drawPoint operation:NSCompositeSourceOver fraction:sin(_animationValue * M_PI)]; + [[self alternateImage] compositeToPoint:drawPoint operation:NSCompositeSourceOver fraction:sin(MIN(1.0, _animationValue) * M_PI)]; } } @@ -83,7 +84,7 @@ [_animationTimer invalidate], _animationTimer = nil; } else if (_animatingAlternateImage) { // Restart any animating alternate image if we unhide - _animationValue = ANIMATION_STEP; + _animationValue = _animationStep; _animationTimer = [NSTimer scheduledTimerWithTimeInterval:TIMER_INTERVAL target:self selector:@selector(animateStep:) userInfo:nil repeats:YES]; [[NSRunLoop currentRunLoop] addTimer:_animationTimer forMode:NSEventTrackingRunLoopMode]; } @@ -106,7 +107,7 @@ if (![self isHidden]) { if (flag) { - _animationValue = ANIMATION_STEP; + _animationValue = _animationStep; _animationTimer = [NSTimer scheduledTimerWithTimeInterval:TIMER_INTERVAL target:self selector:@selector(animateStep:) userInfo:nil repeats:YES]; [[NSRunLoop currentRunLoop] addTimer:_animationTimer forMode:NSEventTrackingRunLoopMode]; @@ -124,12 +125,32 @@ return _animatingAlternateImage; } +- (float)animationStep +{ + return _animationStep; +} + +- (void)setAnimationStep:(float)value +{ + _animationStep = value; +} + +- (float)animationLimit +{ + return _animationLimit; +} + +- (void)setAnimationLimit:(float)value +{ + _animationLimit = value; +} + - (void)animateStep:(NSTimer *)timer { - _animationValue += ANIMATION_STEP; + _animationValue += _animationStep; - if (_animationValue >= 1) { - _animationValue = ANIMATION_STEP; + if (_animationValue >= _animationLimit) { + _animationValue = _animationStep; } [self setNeedsDisplay:YES];
    Here are some diffs to fix this. Index: PSMOverflowPopUpButton.h =================================================================== --- PSMOverflowPopUpButton.h (revision 263) +++ PSMOverflowPopUpButton.h (working copy) @@ -16,12 +16,20 @@ BOOL _animatingAlternateImage; NSTimer *_animationTimer; float _animationValue; + float _animationStep; + float _animationLimit; } //alternate image display - (BOOL)animatingAlternateImage; - (void)setAnimatingAlternateImage:(BOOL)flag; +//animation speed and limit +- (float)animationStep; // default value is 0.033 +- (void)setAnimationStep:(float)value; +- (float)animationLimit; // default value is 1.0 +- (void)setAnimationLimit:(float)value; + // archiving - (void)encodeWithCoder:(NSCoder *)aCoder; - (id)initWithCoder:(NSCoder *)aDecoder; Index: PSMOverflowPopUpButton.m =================================================================== --- PSMOverflowPopUpButton.m (revision 263) +++ PSMOverflowPopUpButton.m (working copy) @@ -10,7 +10,6 @@ #import "PSMTabBarControl.h" #define TIMER_INTERVAL 1.0 / 15.0 -#define ANIMATION_STEP 0.033f @implementation PSMOverflowPopUpButton @@ -24,6 +23,8 @@ _PSMTabBarOverflowPopUpImage = [[NSImage alloc] initByReferencingFile:[[PSMTabBarControl bundle] pathForImageResource:@"overflowImage"]]; _PSMTabBarOverflowDownPopUpImage = [[NSImage alloc] initByReferencingFile:[[PSMTabBarControl bundle] pathForImageResource:@"overflowImagePressed"]]; _animatingAlternateImage = NO; + _animationStep = 0.033f; + _animationLimit = 1.0f; } return self; } @@ -63,7 +64,7 @@ drawPoint.y += altImageSize.height; } - [[self alternateImage] compositeToPoint:drawPoint operation:NSCompositeSourceOver fraction:sin(_animationValue * M_PI)]; + [[self alternateImage] compositeToPoint:drawPoint operation:NSCompositeSourceOver fraction:sin(MIN(1.0, _animationValue) * M_PI)]; } } @@ -83,7 +84,7 @@ [_animationTimer invalidate], _animationTimer = nil; } else if (_animatingAlternateImage) { // Restart any animating alternate image if we unhide - _animationValue = ANIMATION_STEP; + _animationValue = _animationStep; _animationTimer = [NSTimer scheduledTimerWithTimeInterval:TIMER_INTERVAL target:self selector:@selector(animateStep:) userInfo:nil repeats:YES]; [[NSRunLoop currentRunLoop] addTimer:_animationTimer forMode:NSEventTrackingRunLoopMode]; } @@ -106,7 +107,7 @@ if (![self isHidden]) { if (flag) { - _animationValue = ANIMATION_STEP; + _animationValue = _animationStep; _animationTimer = [NSTimer scheduledTimerWithTimeInterval:TIMER_INTERVAL target:self selector:@selector(animateStep:) userInfo:nil repeats:YES]; [[NSRunLoop currentRunLoop] addTimer:_animationTimer forMode:NSEventTrackingRunLoopMode]; @@ -124,12 +125,32 @@ return _animatingAlternateImage; } +- (float)animationStep +{ + return _animationStep; +} + +- (void)setAnimationStep:(float)value +{ + _animationStep = value; +} + +- (float)animationLimit +{ + return _animationLimit; +} + +- (void)setAnimationLimit:(float)value +{ + _animationLimit = value; +} + - (void)animateStep:(NSTimer *)timer { - _animationValue += ANIMATION_STEP; + _animationValue += _animationStep; - if (_animationValue >= 1) { - _animationValue = ANIMATION_STEP; + if (_animationValue >= _animationLimit) { + _animationValue = _animationStep; } [self setNeedsDisplay:YES];
  • Aug 05, 2008
    issue 26 (overflow popup button animation is too fast in PSMTabBarCont...) reported by keithmalkin   -   What steps will reproduce the problem? 1. Tweak the sample project so that it sets the overflow popup button's animation image 2. Run sample app 3. Create a bunch of tabs and observe the animation What is the expected output? What do you see instead? I expect animation that does not distract the user too terribly. Instead I see very noticeable animation. What version of the product are you using? On what operating system? I pulled the tip today, 8/5/2008. Leopard. Please provide any additional information below.
    What steps will reproduce the problem? 1. Tweak the sample project so that it sets the overflow popup button's animation image 2. Run sample app 3. Create a bunch of tabs and observe the animation What is the expected output? What do you see instead? I expect animation that does not distract the user too terribly. Instead I see very noticeable animation. What version of the product are you using? On what operating system? I pulled the tip today, 8/5/2008. Leopard. Please provide any additional information below.
  • Aug 05, 2008
    issue 25 (ugly behavior when tearing off last tab in PSMTabBarControl) commented on by keithmalkin   -   Index: PSMTabBarControl.h =================================================================== --- PSMTabBarControl.h (revision 263) +++ PSMTabBarControl.h (working copy) @@ -212,6 +212,7 @@ //Tear-off tabs methods - (NSImage *)tabView:(NSTabView *)aTabView imageForTabViewItem:(NSTabViewItem *)tabViewItem offset:(NSSize *)offset styleMask:(unsigned int *)styleMask; - (PSMTabBarControl *)tabView:(NSTabView *)aTabView newTabBarForDraggedTabViewItem:(NSTabViewItem *)tabViewItem atPoint:(NSPoint)point; +- (BOOL)tabView:(NSTabView *)aTabView shouldSpeciallyTreatDraggingOfLastTabViewItem:(NSTabViewItem *)tabViewItem; - (void)tabView:(NSTabView *)aTabView closeWindowForLastTabViewItem:(NSTabViewItem *)tabViewItem; //Overflow menu validation Index: PSMTabDragAssistant.m =================================================================== --- PSMTabDragAssistant.m (revision 263) +++ PSMTabDragAssistant.m (working copy) @@ -299,7 +299,9 @@ //set the window's alpha mask to zero if the last tab is being dragged //don't fade out the old window if the delegate doesn't respond to the new tab bar method, just to be safe if ([[[self sourceTabBar] tabView] numberOfTabViewItems] == 1 && [self sourceTabBar] == control && - [[[self sourceTabBar] delegate] respondsToSelector:@selector(tabView:newTabBarForDraggedTabViewItem:atPoint:)]) { + [[[self sourceTabBar] delegate] respondsToSelector:@selector(tabView:newTabBarForDraggedTabViewItem:atPoint:)] && + (![[[self sourceTabBar] delegate] respondsToSelector:@selector(tabView:shouldSpeciallyTreatDraggingOfLastTabViewItem:)] || + [[[self sourceTabBar] delegate] tabView:[[self sourceTabBar] tabView] shouldSpeciallyTreatDraggingOfLastTabViewItem:[[[[self sourceTabBar] tabView] tabViewItems] lastObject]])) { [[[self sourceTabBar] window] setAlphaValue:0.0]; if ([_sourceTabBar tearOffStyle] == PSMTabBarTearOffAlphaWindow) { @@ -500,7 +502,9 @@ [[_draggedTab window] setFrameTopLeftPoint:aPoint]; [[_draggedTab window] orderFront:nil]; - if ([[[self sourceTabBar] tabView] numberOfTabViewItems] == 1) { + if ([[[self sourceTabBar] tabView] numberOfTabViewItems] == 1 && + (![[[self sourceTabBar] delegate] respondsToSelector:@selector(tabView:shouldSpeciallyTreatDraggingOfLastTabViewItem:)] || + [[[self sourceTabBar] delegate] tabView:[[self sourceTabBar] tabView] shouldSpeciallyTreatDraggingOfLastTabViewItem:[[[[self sourceTabBar] tabView] tabViewItems] lastObject]])) { [self draggingExitedTabBar:[self sourceTabBar]]; [[_draggedTab window] setAlphaValue:0.0]; }
    Index: PSMTabBarControl.h =================================================================== --- PSMTabBarControl.h (revision 263) +++ PSMTabBarControl.h (working copy) @@ -212,6 +212,7 @@ //Tear-off tabs methods - (NSImage *)tabView:(NSTabView *)aTabView imageForTabViewItem:(NSTabViewItem *)tabViewItem offset:(NSSize *)offset styleMask:(unsigned int *)styleMask; - (PSMTabBarControl *)tabView:(NSTabView *)aTabView newTabBarForDraggedTabViewItem:(NSTabViewItem *)tabViewItem atPoint:(NSPoint)point; +- (BOOL)tabView:(NSTabView *)aTabView shouldSpeciallyTreatDraggingOfLastTabViewItem:(NSTabViewItem *)tabViewItem; - (void)tabView:(NSTabView *)aTabView closeWindowForLastTabViewItem:(NSTabViewItem *)tabViewItem; //Overflow menu validation Index: PSMTabDragAssistant.m =================================================================== --- PSMTabDragAssistant.m (revision 263) +++ PSMTabDragAssistant.m (working copy) @@ -299,7 +299,9 @@ //set the window's alpha mask to zero if the last tab is being dragged //don't fade out the old window if the delegate doesn't respond to the new tab bar method, just to be safe if ([[[self sourceTabBar] tabView] numberOfTabViewItems] == 1 && [self sourceTabBar] == control && - [[[self sourceTabBar] delegate] respondsToSelector:@selector(tabView:newTabBarForDraggedTabViewItem:atPoint:)]) { + [[[self sourceTabBar] delegate] respondsToSelector:@selector(tabView:newTabBarForDraggedTabViewItem:atPoint:)] && + (![[[self sourceTabBar] delegate] respondsToSelector:@selector(tabView:shouldSpeciallyTreatDraggingOfLastTabViewItem:)] || + [[[self sourceTabBar] delegate] tabView:[[self sourceTabBar] tabView] shouldSpeciallyTreatDraggingOfLastTabViewItem:[[[[self sourceTabBar] tabView] tabViewItems] lastObject]])) { [[[self sourceTabBar] window] setAlphaValue:0.0]; if ([_sourceTabBar tearOffStyle] == PSMTabBarTearOffAlphaWindow) { @@ -500,7 +502,9 @@ [[_draggedTab window] setFrameTopLeftPoint:aPoint]; [[_draggedTab window] orderFront:nil]; - if ([[[self sourceTabBar] tabView] numberOfTabViewItems] == 1) { + if ([[[self sourceTabBar] tabView] numberOfTabViewItems] == 1 && + (![[[self sourceTabBar] delegate] respondsToSelector:@selector(tabView:shouldSpeciallyTreatDraggingOfLastTabViewItem:)] || + [[[self sourceTabBar] delegate] tabView:[[self sourceTabBar] tabView] shouldSpeciallyTreatDraggingOfLastTabViewItem:[[[[self sourceTabBar] tabView] tabViewItems] lastObject]])) { [self draggingExitedTabBar:[self sourceTabBar]]; [[_draggedTab window] setAlphaValue:0.0]; }
  • Aug 05, 2008
    issue 25 (ugly behavior when tearing off last tab in PSMTabBarControl) reported by keithmalkin   -   What steps will reproduce the problem? 1. Run sample app 2. Change tear-off option to Miniwindow 3. Close all tabs but one and then tear it off What is the expected output? What do you see instead? I expect the same behavior as that which is experienced when tearing off a tab when multiple tabs exist. Instead, the window immediately closes and there is no DND image. What version of the product are you using? On what operating system? I pulled the tip today, 8/5/2008. Leopard. Please provide any additional information below.
    What steps will reproduce the problem? 1. Run sample app 2. Change tear-off option to Miniwindow 3. Close all tabs but one and then tear it off What is the expected output? What do you see instead? I expect the same behavior as that which is experienced when tearing off a tab when multiple tabs exist. Instead, the window immediately closes and there is no DND image. What version of the product are you using? On what operating system? I pulled the tip today, 8/5/2008. Leopard. Please provide any additional information below.
  • Aug 05, 2008
    issue 24 (PSMTabBarControl missing column of pixels) reported by bjhomer   -   This is a bug found in Adium, but they suggested that I report it here. You can see the original report at http://trac.adiumx.com/ticket/9110. In certain cases, the right boundary of the last chat tab disappears, resulting in an odd visual effect. This is with Adium 1.2.1 on OS X 10.5.1. Steps to reproduce the bug: 1. Disable the chevron (http://trac.adiumx.com/wiki/HiddenPreferences) 2. Set tabs to display on the bottom 3. Open three tabs 4. Resize the window so that the tabs have just been resized smaller. Yes, this is pixel hunting. If my measurements are correct, I can see it at 244 pixels width, but I may be off. It happens anytime the tabs would be made larger if the window were resized one pixel larger. 5. Select the 1st or 2nd tab, note that the right border of the third is present. 6. Select another app, or even another window in Adium. Watch the right border disappear. I've uploaded a video to Viddler so you can see this happening. http://www.viddler.com/explore/Bjhomer/videos/2/ What is the expected output? What do you see instead? The right column should not disappear, but it does. What version of the product are you using? On what operating system? Adium 1.3b10, OS X 10.5.4. I'm not sure what version of PSMTabBarControl they're using. I've also reproduced it in Adium 1.2.7.
    This is a bug found in Adium, but they suggested that I report it here. You can see the original report at http://trac.adiumx.com/ticket/9110. In certain cases, the right boundary of the last chat tab disappears, resulting in an odd visual effect. This is with Adium 1.2.1 on OS X 10.5.1. Steps to reproduce the bug: 1. Disable the chevron (http://trac.adiumx.com/wiki/HiddenPreferences) 2. Set tabs to display on the bottom 3. Open three tabs 4. Resize the window so that the tabs have just been resized smaller. Yes, this is pixel hunting. If my measurements are correct, I can see it at 244 pixels width, but I may be off. It happens anytime the tabs would be made larger if the window were resized one pixel larger. 5. Select the 1st or 2nd tab, note that the right border of the third is present. 6. Select another app, or even another window in Adium. Watch the right border disappear. I've uploaded a video to Viddler so you can see this happening. http://www.viddler.com/explore/Bjhomer/videos/2/ What is the expected output? What do you see instead? The right column should not disappear, but it does. What version of the product are you using? On what operating system? Adium 1.3b10, OS X 10.5.4. I'm not sure what version of PSMTabBarControl they're using. I've also reproduced it in Adium 1.2.7.
 
Hosted by Google Code