| 57 |
[preferenceWindow makeKeyAndOrderFront:nil]; |
[preferenceWindow makeKeyAndOrderFront:nil]; |
| 58 |
} |
} |
| 59 |
-(IBAction)selectPreferenceTab:(id)sender{ |
-(IBAction)selectPreferenceTab:(id)sender{ |
|
NSView *contentView; |
|
|
NSRect rect; |
|
|
float toolbarHeight; |
|
| 60 |
NSString *identifier = [sender itemIdentifier]; |
NSString *identifier = [sender itemIdentifier]; |
|
contentView = [preferenceWindow contentView]; |
|
|
|
|
|
toolbarHeight = [preferenceWindow frame].size.height - [contentView frame].size.height; |
|
|
NSLog(@"toolbarHeight = %f", toolbarHeight); |
|
|
|
|
| 61 |
if([identifier isEqual:@"general_tab"]){ |
if([identifier isEqual:@"general_tab"]){ |
| 62 |
rect.origin = NSMakePoint([preferenceWindow frame].origin.x, |
[self changePreferenceView:generalPref]; |
|
[preferenceWindow frame].origin.y - ([generalPref bounds].size.height - [contentView bounds].size.height) - toolbarHeight); |
|
|
rect.size = [generalPref bounds].size; |
|
|
[preferenceWindow setFrame:rect display:YES animate:YES]; |
|
|
[contentView replaceSubview:accountPref with:generalPref]; |
|
| 63 |
}else{ |
}else{ |
| 64 |
rect.origin = NSMakePoint([preferenceWindow frame].origin.x, |
[self changePreferenceView:accountPref]; |
|
[preferenceWindow frame].origin.y - ([accountPref bounds].size.height - [contentView bounds].size.height) - toolbarHeight); |
|
|
rect.size = [accountPref bounds].size; |
|
|
[preferenceWindow setFrame:rect display:YES animate:YES]; |
|
|
[contentView replaceSubview:generalPref with:accountPref]; |
|
| 65 |
} |
} |
| 66 |
|
|
| 67 |
} |
} |
| 68 |
|
-(IBAction)changePreferenceView:(NSView *)newView{ |
| 69 |
|
|
| 70 |
|
NSRect oldContentRect; // 切替前のコンテンツビューのRect |
| 71 |
|
NSRect oldWindowRect; // 切替前のWindowのRect |
| 72 |
|
NSRect newContentRect; // 切替後のコンテンツビューのRect |
| 73 |
|
NSRect newWindowRect; // 切替後のWindowーのRect |
| 74 |
|
float toolbarHeight; // ツールバーの高さ |
| 75 |
|
|
| 76 |
|
NSView *contentsView; // Windowのコンテンツビュー |
| 77 |
|
|
| 78 |
|
oldWindowRect = [preferenceWindow frame]; |
| 79 |
|
oldContentRect = [[preferenceWindow contentView] bounds]; |
| 80 |
|
|
| 81 |
|
toolbarHeight = NSHeight(oldWindowRect) - NSHeight(oldContentRect); |
| 82 |
|
|
| 83 |
|
newContentRect = [newView bounds]; |
| 84 |
|
|
| 85 |
|
// リサイズ後のWindowのRectを計算 |
| 86 |
|
newWindowRect.origin.x |
| 87 |
|
= oldWindowRect.origin.x; |
| 88 |
|
newWindowRect.origin.y |
| 89 |
|
= oldWindowRect.origin.y + (NSHeight(oldContentRect) - NSHeight(newContentRect)); |
| 90 |
|
newWindowRect.size.width |
| 91 |
|
= newContentRect.size.width; |
| 92 |
|
newWindowRect.size.height |
| 93 |
|
= toolbarHeight + newContentRect.size.height; |
| 94 |
|
|
| 95 |
|
contentsView = [preferenceWindow contentView]; |
| 96 |
|
[contentsView replaceSubview:[[contentsView subviews] objectAtIndex:0] with:newView]; |
| 97 |
|
[preferenceWindow setFrame:newWindowRect display:YES animate:YES]; |
| 98 |
|
|
| 99 |
|
} |
| 100 |
|
|
| 101 |
@end |
@end |