Develop and Download Open Source Software

Browse Subversion Repository

Annotation of /XspfManager/XspfMListViewController.m

Parent Directory Parent Directory | Revision Log Revision Log


Revision 258 - (hide annotations) (download)
Wed Jan 13 15:38:42 2010 UTC (14 years, 3 months ago) by masaki
File size: 2761 byte(s)
[Mod] XspfMXpsfObjectに関するメニューをXspfManagerクラスからもらうようにした。
1 masaki 21 //
2     // XspfMListViewController.m
3     // XspfManager
4     //
5     // Created by Hori,Masaki on 09/11/07.
6     // Copyright 2009 masakih. All rights reserved.
7     //
8    
9     #import "XspfMListViewController.h"
10    
11 masaki 192 #import "XspfManager.h"
12 masaki 21
13 masaki 212 #import "XspfMTableView.h"
14    
15 masaki 238 #import "XspfMXspfObject.h"
16 masaki 192
17 masaki 205
18 masaki 21 @implementation XspfMListViewController
19    
20 masaki 24 - (id)init
21     {
22     [super initWithNibName:@"ListView" bundle:nil];
23    
24     return self;
25     }
26 masaki 214 - (void)dealloc
27     {
28     [menu release];
29     [super dealloc];
30     }
31 masaki 212 - (void)awakeFromNib
32     {
33     [tableView setDoubleAction:@selector(openXspf:)];
34     [tableView registerForDraggedTypes:[NSArray arrayWithObjects:NSFilenamesPboardType, nil]];
35    
36     // [tableView setMenu:[self contextMenuForObject:nil]];
37     }
38 masaki 24
39 masaki 214 - (void)setMenu:(NSMenu *)inMenu
40     {
41     [menu autorelease];
42     menu = [inMenu retain];
43     }
44 masaki 212
45     - (IBAction)changeLabel:(id)sender
46 masaki 205 {
47 masaki 238 XspfMXspfObject *object = [sender representedObject];
48 masaki 212 object.label = [sender objectValue];
49     }
50    
51 masaki 238 - (NSMenu *)contextMenuForObject:(XspfMXspfObject *)object
52 masaki 212 {
53 masaki 258 NSMenu *objMenu = [[NSApp delegate] menuForXspfObject:object];
54     return objMenu;
55 masaki 205
56     return menu;
57     }
58    
59 masaki 212 - (NSMenu *)tableView:(XspfMTableView *)table menuForEvent:(NSEvent *)event
60 masaki 32 {
61 masaki 212 NSPoint mouse = [table convertPoint:[event locationInWindow] fromView:nil];
62     NSInteger row = [table rowAtPoint:mouse];
63     if(row == NSNotFound || row == -1) return nil;
64 masaki 205
65 masaki 238 XspfMXspfObject *object = [[[self representedObject] arrangedObjects] objectAtIndex:row];
66 masaki 212 return [self contextMenuForObject:object];
67 masaki 32 }
68 masaki 192 - (void)tableView:(NSTableView *)table sortDescriptorsDidChange:(NSArray *)oldDescriptors
69     {
70 masaki 204 // HMLog(HMLogLevelDebug, @"Enter %@, desc-> %@", NSStringFromSelector(_cmd), [table sortDescriptors]);
71 masaki 192 id controller = [self representedObject];
72     [controller willChangeValueForKey:@"selectionIndexes"];
73     [controller didChangeValueForKey:@"selectionIndexes"];
74     }
75    
76    
77 masaki 111 - (NSDragOperation)tableView:(NSTableView*)table
78     validateDrop:(id <NSDraggingInfo>)info
79     proposedRow:(NSInteger)row
80     proposedDropOperation:(NSTableViewDropOperation)dropOperation
81     {
82     id pb = [info draggingPasteboard];
83     id plist = [pb propertyListForType:NSFilenamesPboardType];
84    
85     NSWorkspace *ws = [NSWorkspace sharedWorkspace];
86     NSError *error = nil;
87     for(NSString *filePath in plist) {
88     NSString *type = [ws typeOfFile:filePath error:&error];
89     if(![ws type:type conformsToType:@"com.masakih.xspf"]) {
90     return NSDragOperationNone;
91     }
92     }
93     [table setDropRow:row dropOperation:NSTableViewDropAbove];
94    
95     return NSDragOperationCopy;
96     }
97    
98     - (BOOL)tableView:(NSTableView*)table
99     acceptDrop:(id <NSDraggingInfo>)info
100     row:(NSInteger)row
101     dropOperation:(NSTableViewDropOperation)dropOperation
102     {
103     id pb = [info draggingPasteboard];
104     id plist = [pb propertyListForType:NSFilenamesPboardType];
105    
106 masaki 184 [[NSApp delegate] registerFilePaths:plist];
107 masaki 111
108     return YES;
109     }
110    
111 masaki 21 @end

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