Develop and Download Open Source Software

Browse Subversion Repository

Annotation of /XspfQT/XspfQTAppDelegate.m

Parent Directory Parent Directory | Revision Log Revision Log


Revision 63 - (hide annotations) (download)
Sun Sep 14 16:54:48 2008 UTC (15 years, 7 months ago) by masaki
Original Path: XspfQT/XspfAppDelegate.m
File size: 2964 byte(s)
インフォメーションパネルを実装。
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 masaki 63 #import "XspfQTInformationWindowController.h"
12 masaki 2
13     @implementation XspfAppDelegate
14    
15     + (void)initialize
16     {
17     [NSValueTransformer setValueTransformer:[[[XspfQTTimeTransformer alloc] init] autorelease]
18     forName:@"XspfQTTimeTransformer"];
19     [NSValueTransformer setValueTransformer:[[[XspfQTTimeDateTransformer alloc] init] autorelease]
20     forName:@"XspfQTTimeDateTransformer"];
21     }
22    
23 masaki 50 - (void)awakeFromNib
24     {
25     NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
26     [nc addObserver:self
27     selector:@selector(windowDidBecomeMain:)
28     name:NSWindowDidBecomeMainNotification
29     object:nil];
30     [nc addObserver:self
31     selector:@selector(windowWillClose:)
32     name:NSWindowWillCloseNotification
33     object:nil];
34     }
35     - (void)dealloc
36     {
37     NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
38     [nc removeObserver:self];
39    
40     [super dealloc];
41     }
42    
43     #pragma mark ### Actions ###
44     - (IBAction)playedTrack:(id)sender
45     {
46     // do noting.
47     }
48 masaki 63 - (IBAction)openInformationPanel:(id)sender
49     {
50     XspfQTInformationWindowController *wc;
51     wc = [XspfQTInformationWindowController sharedInstance];
52     [wc showWindow:sender];
53     }
54     - (IBAction)togglePlayAndPause:(id)sender
55     {
56     [[mainWindowStore windowController] togglePlayAndPause:sender];
57     }
58     - (IBAction)nextTrack:(id)sender
59     {
60     [[mainWindowStore windowController] nextTrack:sender];
61     }
62     - (IBAction)previousTrack:(id)sender
63     {
64     [[mainWindowStore windowController] previousTrack:sender];
65     }
66 masaki 50
67     #pragma mark ### NSMenu valivation ###
68     - (BOOL)validateMenuItem:(NSMenuItem *)menuItem
69     {
70 masaki 63 if([menuItem action] == @selector(openInformationPanel:)) {
71     return YES;
72     }
73    
74 masaki 50 if([menuItem tag] == 10000) {
75     NSWindow *m = mainWindowStore;
76     if(!m) {
77     m = [NSApp mainWindow];
78     }
79     NSString *title = [m valueForKeyPath:@"windowController.document.trackList.currentTrack.title"];
80     if(title) {
81     [menuItem setTitle:[NSString stringWithFormat:@"%@ played", title]];
82     } else {
83     [menuItem setTitle:@"Played Track Title"];
84     }
85     return NO;
86     }
87     if(!mainWindowStore) {
88     return NO;
89     }
90    
91     return YES;
92     }
93    
94 masaki 2 - (BOOL)applicationShouldOpenUntitledFile:(NSApplication *)sender
95     {
96     return NO;
97     }
98    
99 masaki 50 - (void)storeMainWindow
100     {
101     mainWindowStore = [NSApp mainWindow];
102     }
103     - (void)unsaveMainWindow
104     {
105     mainWindowStore = nil;
106     }
107     - (void)applicationWillHide:(NSNotification *)notification
108     {
109     [self storeMainWindow];
110     }
111     - (void)applicationWillResignActive:(NSNotification *)notification
112     {
113     [self storeMainWindow];
114     }
115     - (void)applicationDidUnhide:(NSNotification *)notification
116     {
117     [self unsaveMainWindow];
118     }
119     - (void)applicationDidBecomeActive:(NSNotification *)notification
120     {
121     [self unsaveMainWindow];
122     }
123    
124     - (void)windowDidBecomeMain:(NSNotification *)notification
125     {
126     [self storeMainWindow];
127     }
128     - (void)windowWillClose:(NSNotification *)notification
129     {
130     [self unsaveMainWindow];
131     }
132    
133 masaki 2 @end

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