git.ithinksw.org
/
ITKit.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
f9f1dcb
)
Adding a better cancel job to the Pivot effect. Also redoing the showcase interface...
author
Matthew Judy
<mjudy@ithinksw.com>
Sun, 13 Apr 2003 09:58:59 +0000
(09:58 +0000)
committer
Matthew Judy
<mjudy@ithinksw.com>
Sun, 13 Apr 2003 09:58:59 +0000
(09:58 +0000)
ITPivotWindowEffect.m
patch
|
blob
|
history
ITWindowEffect.h
patch
|
blob
|
history
Showcase/Controller.h
patch
|
blob
|
history
Showcase/Controller.m
patch
|
blob
|
history
Showcase/English.lproj/MainMenu.nib/classes.nib
patch
|
blob
|
history
Showcase/English.lproj/MainMenu.nib/keyedobjects.nib
patch
|
blob
|
history
diff --git
a/ITPivotWindowEffect.m
b/ITPivotWindowEffect.m
index
85b5f50
..
2c87f68
100755
(executable)
--- a/
ITPivotWindowEffect.m
+++ b/
ITPivotWindowEffect.m
@@
-5,6
+5,8
@@
@interface ITPivotWindowEffect (Private)
- (void)setPivot:(float)angle;
@interface ITPivotWindowEffect (Private)
- (void)setPivot:(float)angle;
+- (void)performAppearFromProgress:(float)progress effectTime:(float)time;
+- (void)performVanishFromProgress:(float)progress effectTime:(float)time;
- (void)appearFinish;
- (void)vanishFinish;
@end
- (void)appearFinish;
- (void)vanishFinish;
@end
@@
-15,9
+17,19
@@
- (void)performAppear
{
[self setWindowVisibility:ITTransientStatusWindowAppearingState];
- (void)performAppear
{
[self setWindowVisibility:ITTransientStatusWindowAppearingState];
- [self setPivot:315.0];
- _effectProgress = 0.0;
- [_window setAlphaValue:0.0];
+ [self performAppearFromProgress:0.0 effectTime:_effectTime];
+}
+
+- (void)performAppearFromProgress:(float)progress effectTime:(float)time
+{
+ _effectProgress = progress;
+ _effectSpeed = (1.0 / (EFFECT_FPS * time));
+
+ if ( progress == 0.0 ) {
+ [self setPivot:315.0];
+ [_window setAlphaValue:0.0];
+ }
+
[_window orderFront:self];
_effectTimer = [NSTimer scheduledTimerWithTimeInterval:(1.0 / EFFECT_FPS)
target:self
[_window orderFront:self];
_effectTimer = [NSTimer scheduledTimerWithTimeInterval:(1.0 / EFFECT_FPS)
target:self
@@
-29,9
+41,18
@@
- (void)performVanish
{
[self setWindowVisibility:ITTransientStatusWindowVanishingState];
- (void)performVanish
{
[self setWindowVisibility:ITTransientStatusWindowVanishingState];
- [self setPivot:0.0];
- _effectProgress = 1.0;
- [_window setAlphaValue:1.0];
+ [self performVanishFromProgress:1.0 effectTime:_effectTime];
+}
+
+- (void)performVanishFromProgress:(float)progress effectTime:(float)time
+{
+ _effectProgress = progress;
+ _effectSpeed = (1.0 / (EFFECT_FPS * time));
+ if ( progress == 1.0 ) {
+ [self setPivot:0.0];
+ [_window setAlphaValue:1.0];
+ }
+
[_window orderFront:self];
_effectTimer = [NSTimer scheduledTimerWithTimeInterval:(1.0 / EFFECT_FPS)
target:self
[_window orderFront:self];
_effectTimer = [NSTimer scheduledTimerWithTimeInterval:(1.0 / EFFECT_FPS)
target:self
@@
-42,27
+63,28
@@
- (void)cancelAppear
{
- (void)cancelAppear
{
- [self appearFinish];
- [_window orderOut:self];
- [self setPivot:0.0];
- [_window setAlphaValue:1.0];
- [self setWindowVisibility:ITTransientStatusWindowHiddenState];
+ [self setWindowVisibility:ITTransientStatusWindowVanishingState];
+
+ [_effectTimer invalidate];
+ _effectTimer = nil;
+
+ [self performVanishFromProgress:_effectProgress effectTime:(_effectTime / 3.5)];
}
- (void)cancelVanish
{
}
- (void)cancelVanish
{
- [self
vanishFinish
];
- [self setPivot:0.0];
- [_
window setAlphaValue:1.0
];
-
[_window orderFront:self]
;
- [_window display];
- [self
setWindowVisibility:ITTransientStatusWindowVisibleState
];
+ [self
setWindowVisibility:ITTransientStatusWindowAppearingState
];
+
+ [_
effectTimer invalidate
];
+
_effectTimer = nil
;
+
+ [self
performAppearFromProgress:_effectProgress effectTime:(_effectTime / 3.5)
];
}
- (void)appearStep
{
float interPivot = 0.0;
}
- (void)appearStep
{
float interPivot = 0.0;
- _effectProgress +=
(1.0 / (EFFECT_FPS * _effectTime))
;
+ _effectProgress +=
_effectSpeed
;
_effectProgress = (_effectProgress < 1.0 ? _effectProgress : 1.0);
interPivot = (( sin((_effectProgress * pi) - (pi / 2)) + 1 ) / 2);
[self setPivot:((interPivot * 45) + 315)];
_effectProgress = (_effectProgress < 1.0 ? _effectProgress : 1.0);
interPivot = (( sin((_effectProgress * pi) - (pi / 2)) + 1 ) / 2);
[self setPivot:((interPivot * 45) + 315)];
@@
-76,7
+98,7
@@
- (void)vanishStep
{
float interPivot = 1.0;
- (void)vanishStep
{
float interPivot = 1.0;
- _effectProgress -=
(1.0 / (EFFECT_FPS * _effectTime))
;
+ _effectProgress -=
_effectSpeed
;
_effectProgress = (_effectProgress > 0.0 ? _effectProgress : 0.0);
interPivot = (( sin((_effectProgress * pi) - (pi / 2)) + 1 ) / 2);
[self setPivot:((interPivot * 45) + 315)];
_effectProgress = (_effectProgress > 0.0 ? _effectProgress : 0.0);
interPivot = (( sin((_effectProgress * pi) - (pi / 2)) + 1 ) / 2);
[self setPivot:((interPivot * 45) + 315)];
@@
-104,6
+126,7
@@
- (void)setPivot:(float)angle
{
float degAngle = (angle * (pi / 180));
- (void)setPivot:(float)angle
{
float degAngle = (angle * (pi / 180));
+
CGAffineTransform transform = CGAffineTransformMakeRotation(degAngle);
// Set pivot rotation point
CGAffineTransform transform = CGAffineTransformMakeRotation(degAngle);
// Set pivot rotation point
diff --git
a/ITWindowEffect.h
b/ITWindowEffect.h
index
907a39a
..
2cc6c45
100755
(executable)
--- a/
ITWindowEffect.h
+++ b/
ITWindowEffect.h
@@
-46,6
+46,7
@@
typedef enum {
{
NSWindow *_window;
float _effectTime;
{
NSWindow *_window;
float _effectTime;
+ float _effectSpeed;
double _effectProgress;
ITVerticalWindowPosition _verticalPosition;
ITHorizontalWindowPosition _horizontalPosition;
double _effectProgress;
ITVerticalWindowPosition _verticalPosition;
ITHorizontalWindowPosition _horizontalPosition;
diff --git
a/Showcase/Controller.h
b/Showcase/Controller.h
index
4b6d72e
..
8f96266
100755
(executable)
--- a/
Showcase/Controller.h
+++ b/
Showcase/Controller.h
@@
-39,8
+39,7
@@
// ITTransientStatusWindow Support
- (IBAction)buildStatusWindow:(id)sender;
// ITTransientStatusWindow Support
- (IBAction)buildStatusWindow:(id)sender;
-- (IBAction)showStatusWindow:(id)sender;
-- (IBAction)hideStatusWindow:(id)sender;
+- (IBAction)toggleStatusWindow:(id)sender;
- (IBAction)changeWindowSetting:(id)sender;
// ITTabView support
- (IBAction)changeWindowSetting:(id)sender;
// ITTabView support
diff --git
a/Showcase/Controller.m
b/Showcase/Controller.m
index
a8914aa
..
16b5c0b
100755
(executable)
--- a/
Showcase/Controller.m
+++ b/
Showcase/Controller.m
@@
-204,15
+204,15
@@
[statusWindow setExitEffect:[[ITPivotWindowEffect alloc] initWithWindow:statusWindow]];
}
[statusWindow setExitEffect:[[ITPivotWindowEffect alloc] initWithWindow:statusWindow]];
}
-- (IBAction)
show
StatusWindow:(id)sender
+- (IBAction)
toggle
StatusWindow:(id)sender
{
{
- [[statusWindow contentView] setNeedsDisplay:YES];
- [statusWindow appear:self];
-}
-
-- (IBAction)hideStatusWindow:(id)sender
-{
- [statusWindow vanish:self];
+ if ( ([statusWindow visibilityState] == ITTransientStatusWindowHiddenState) ||
+ ([statusWindow visibilityState] == ITTransientStatusWindowVanishingState) ) {
+ [[statusWindow contentView] setNeedsDisplay:YES];
+ [statusWindow appear:self];
+ } else {
+ [statusWindow vanish:self];
+ }
}
- (IBAction)changeWindowSetting:(id)sender
}
- (IBAction)changeWindowSetting:(id)sender
@@
-279,6
+279,7
@@
{
}
{
}
+
/*************************************************************************/
#pragma mark -
#pragma mark NSWindow DELEGATE METHODS
/*************************************************************************/
#pragma mark -
#pragma mark NSWindow DELEGATE METHODS
diff --git
a/Showcase/English.lproj/MainMenu.nib/classes.nib
b/Showcase/English.lproj/MainMenu.nib/classes.nib
index
89dc17d
..
a953fe1
100755
(executable)
--- a/
Showcase/English.lproj/MainMenu.nib/classes.nib
+++ b/
Showcase/English.lproj/MainMenu.nib/classes.nib
@@
-4,8
+4,6
@@
ACTIONS = {
buildStatusWindow = id;
changeWindowSetting = id;
ACTIONS = {
buildStatusWindow = id;
changeWindowSetting = id;
- hideStatusWindow = id;
- showStatusWindow = id;
toggleCastsShadow = id;
toggleCommandDragging = id;
toggleControlDragging = id;
toggleCastsShadow = id;
toggleCommandDragging = id;
toggleControlDragging = id;
@@
-14,6
+12,7
@@
toggleOptionDragging = id;
toggleShiftDragging = id;
toggleStatusItem = id;
toggleOptionDragging = id;
toggleShiftDragging = id;
toggleStatusItem = id;
+ toggleStatusWindow = id;
toggleTabDragging = id;
toggleTitle = id;
};
toggleTabDragging = id;
toggleTitle = id;
};
diff --git
a/Showcase/English.lproj/MainMenu.nib/keyedobjects.nib
b/Showcase/English.lproj/MainMenu.nib/keyedobjects.nib
index
a831893
..
276577d
100755
(executable)
Binary files a/Showcase/English.lproj/MainMenu.nib/keyedobjects.nib and b/Showcase/English.lproj/MainMenu.nib/keyedobjects.nib differ