Develop and Download Open Source Software

Browse Subversion Repository

Annotation of /XspfQT/XspfQTAppDelegate.m

Parent Directory Parent Directory | Revision Log Revision Log


Revision 50 - (hide annotations) (download)
Sat Sep 13 15:24:20 2008 UTC (15 years, 7 months ago) by masaki
Original Path: XspfQT/XspfAppDelegate.m
File size: 2668 byte(s)
不完全ではあるがDocMenuを実装。
1 masaki 2 //
2     // XspfAppDelegate.m
3     // XspfQT
4     //
5     // Created by Hori,Masaki on 08/08/31.
6     // Copyright 2008 masakih. All rights reserved.
7     //
8    
9     #import "XspfAppDelegate.h"
10     #import "XspfValueTransformers.h"
11    
12     @implementation XspfAppDelegate
13    
14     + (void)initialize
15     {
16     [NSValueTransformer setValueTransformer:[[[XspfQTTimeTransformer alloc] init] autorelease]
17     forName:@"XspfQTTimeTransformer"];
18     [NSValueTransformer setValueTransformer:[[[XspfQTTimeDateTransformer alloc] init] autorelease]
19     forName:@"XspfQTTimeDateTransformer"];
20     }
21    
22 masaki 50 - (void)awakeFromNib
23     {
24     NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
25     [nc addObserver:self
26     selector:@selector(windowDidBecomeMain:)
27     name:NSWindowDidBecomeMainNotification
28     object:nil];
29     [nc addObserver:self
30     selector:@selector(windowWillClose:)
31     name:NSWindowWillCloseNotification
32     object:nil];
33     }
34     - (void)dealloc
35     {
36     NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
37     [nc removeObserver:self];
38    
39     [super dealloc];
40     }
41    
42     #pragma mark ### Actions ###
43     - (IBAction)playedTrack:(id)sender
44     {
45     // do noting.
46     }
47    
48     #pragma mark ### NSMenu valivation ###
49     - (BOOL)validateMenuItem:(NSMenuItem *)menuItem
50     {
51     if([menuItem tag] == 10000) {
52     NSWindow *m = mainWindowStore;
53     if(!m) {
54     m = [NSApp mainWindow];
55     }
56     NSString *title = [m valueForKeyPath:@"windowController.document.trackList.currentTrack.title"];
57     if(title) {
58     [menuItem setTitle:[NSString stringWithFormat:@"%@ played", title]];
59     } else {
60     [menuItem setTitle:@"Played Track Title"];
61     }
62     return NO;
63     }
64     if(!mainWindowStore) {
65     return NO;
66     }
67    
68     return YES;
69     }
70     - (IBAction)togglePlayAndPause:(id)sender
71     {
72     [[mainWindowStore windowController] togglePlayAndPause:sender];
73     }
74     - (IBAction)nextTrack:(id)sender
75     {
76     [[mainWindowStore windowController] nextTrack:sender];
77     }
78     - (IBAction)previousTrack:(id)sender
79     {
80     [[mainWindowStore windowController] previousTrack:sender];
81     }
82    
83    
84 masaki 2 - (BOOL)applicationShouldOpenUntitledFile:(NSApplication *)sender
85     {
86     return NO;
87     }
88    
89 masaki 50 - (void)storeMainWindow
90     {
91     mainWindowStore = [NSApp mainWindow];
92     }
93     - (void)unsaveMainWindow
94     {
95     mainWindowStore = nil;
96     }
97     - (void)applicationWillHide:(NSNotification *)notification
98     {
99     [self storeMainWindow];
100     }
101     - (void)applicationWillResignActive:(NSNotification *)notification
102     {
103     [self storeMainWindow];
104     }
105     - (void)applicationDidUnhide:(NSNotification *)notification
106     {
107     [self unsaveMainWindow];
108     }
109     - (void)applicationDidBecomeActive:(NSNotification *)notification
110     {
111     [self unsaveMainWindow];
112     }
113    
114     - (void)windowDidBecomeMain:(NSNotification *)notification
115     {
116     [self storeMainWindow];
117     }
118     - (void)windowWillClose:(NSNotification *)notification
119     {
120     [self unsaveMainWindow];
121     }
122    
123 masaki 2 @end

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26