• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: iChat "Sort by..." animation
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: iChat "Sort by..." animation


  • Subject: Re: iChat "Sort by..." animation
  • From: zeno <email@hidden>
  • Date: Tue, 13 Jan 2004 15:54:06 +0100

Does anybody know a way to get the wonderful animation used by iChat to sort the buddies in the Buddy List?

(for those who don't know what I'm talking about.... lauch iChat => open the Buddy List => change "Sort by Availability", "Sort by Last Name" or "Sort by First Name" from the "View" menu...and you'll see. Disabling the "Show Offline buddies" from the "View" menu makes that animation more "comprehensible")

IIRC, there is the beginning of an answer in this sample code:

http://www.gigliwood.com/tabletester/


thanks stephane...
I'm looking at that code right now, the animation they get is quite cool, but not so cool as the one used in iChat.

I did a little "investigation": from a nib file inside the iChat.app I found out that the "BuddyList" table is actually a "AnimatingTableView". Then I found out that this class is part of the InstantMessage.framework: normally one cannot look at the headers of this framework since it's a "Private Framework" (located in /System/Library/PrivateFrameworks); but I found the "InstantMessage.h" header here: http://cvs.sourceforge.net/viewcvs.py/icar/icar/InstantMessage.h? rev=1.2

If you look inside InstantMessage.h you'll find the follwing:

------------------
@interface AnimatingTableView:FezExtendedTableView
{
char _animationEnabled;
NSMutableArray *_refArray;
NSMutableArray *_indexMapping;
NSTimer *_timer;
NSDate *_startTime;
double _animationTime;
int _curTableRows;
struct _NSRange _movementRange;
struct _NSRect _movementRect;
double _spline;
NSImage **_rowCache;
int _rowCacheSize;
}
- (float)_normalRowOffset:(int)fp12;
- (struct _NSPoint)_animatedRowOrigin:(int)fp16;
- (void)_clearRowCache;
- (void)_finishAnimation;
- (void)dealloc;
- (void)logDebugInfo;
- _mappingFromRefArray;
- (void)rememberIndexes;
- (void)animateMovementOverTime:(double)fp40;
- (void)oneStep:fp12;
- (void)setAnimationEnabled:(char)fp12;
- (char)isAnimationEnabled;
- (void)drawRow:(int)fp12 clipRect:(struct _NSRect)fp16;
- (struct _NSRect)frameOfCellAtColumn:(int)fp16 row:(int)fp20;
- (struct _NSRange)rowsInRect:(struct _NSRect)fp16;
- (int)numberOfRows;
- (void)tile;
- (void)reloadData;
@end
------------------

Hopefully this is the "original" class declaration used in ichat to get that animation. AnimatingTableView inherits from FezExtendedTableView which inherits from NSTableView.


Now, if someone could access or guess to the @implementation of the AnimatingTableView class...
_______________________________________________
cocoa-dev mailing list | email@hidden
Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/cocoa-dev
Do not post admin requests to the list. They will be ignored.
  • Follow-Ups:
    • Re: iChat "Sort by..." animation
      • From: Brian Ganninger <email@hidden>
    • Re: iChat "Sort by..." animation
      • From: Stephane Sudre <email@hidden>
References: 
 >Re: iChat "Sort by..." animation (From: Stephane Sudre <email@hidden>)

  • Prev by Date: Autorelease pool question
  • Next by Date: RE: memory management
  • Previous by thread: Re: iChat "Sort by..." animation
  • Next by thread: Re: iChat "Sort by..." animation
  • Index(es):
    • Date
    • Thread