Develop and Download Open Source Software

Browse Subversion Repository

Annotation of /XspfManager/XspfMListViewController.m

Parent Directory Parent Directory | Revision Log Revision Log


Revision 214 - (hide annotations) (download)
Mon Jan 4 17:01:40 2010 UTC (14 years, 3 months ago) by masaki
File size: 2803 byte(s)
[Mod] メニューの生成はIBで!
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     #import "XSPFMXspfObject.h"
16 masaki 205 #import "XspfMLabelMenuItem.h"
17 masaki 192
18 masaki 205
19 masaki 21 @implementation XspfMListViewController
20    
21 masaki 24 - (id)init
22     {
23     [super initWithNibName:@"ListView" bundle:nil];
24    
25     return self;
26     }
27 masaki 214 - (void)dealloc
28     {
29     [menu release];
30     [super dealloc];
31     }
32 masaki 212 - (void)awakeFromNib
33     {
34     [tableView setDoubleAction:@selector(openXspf:)];
35     [tableView registerForDraggedTypes:[NSArray arrayWithObjects:NSFilenamesPboardType, nil]];
36    
37     // [tableView setMenu:[self contextMenuForObject:nil]];
38     }
39 masaki 24
40 masaki 214 - (void)setMenu:(NSMenu *)inMenu
41     {
42     [menu autorelease];
43     menu = [inMenu retain];
44     }
45 masaki 212
46     - (IBAction)changeLabel:(id)sender
47 masaki 205 {
48 masaki 212 XSPFMXspfObject *object = [sender representedObject];
49     object.label = [sender objectValue];
50     }
51    
52     - (NSMenu *)contextMenuForObject:(XSPFMXspfObject *)object
53     {
54 masaki 214 [labelMenuItem setObjectValue:object.label];
55     [labelMenuItem setRepresentedObject:object];
56 masaki 205
57     return menu;
58     }
59    
60 masaki 212 - (NSMenu *)tableView:(XspfMTableView *)table menuForEvent:(NSEvent *)event
61 masaki 32 {
62 masaki 212 NSPoint mouse = [table convertPoint:[event locationInWindow] fromView:nil];
63     NSInteger row = [table rowAtPoint:mouse];
64     if(row == NSNotFound || row == -1) return nil;
65 masaki 205
66 masaki 212 XSPFMXspfObject *object = [[[self representedObject] arrangedObjects] objectAtIndex:row];
67     return [self contextMenuForObject:object];
68 masaki 32 }
69 masaki 192 - (void)tableView:(NSTableView *)table sortDescriptorsDidChange:(NSArray *)oldDescriptors
70     {
71 masaki 204 // HMLog(HMLogLevelDebug, @"Enter %@, desc-> %@", NSStringFromSelector(_cmd), [table sortDescriptors]);
72 masaki 192 id controller = [self representedObject];
73     [controller willChangeValueForKey:@"selectionIndexes"];
74     [controller didChangeValueForKey:@"selectionIndexes"];
75     }
76    
77    
78 masaki 111 - (NSDragOperation)tableView:(NSTableView*)table
79     validateDrop:(id <NSDraggingInfo>)info
80     proposedRow:(NSInteger)row
81     proposedDropOperation:(NSTableViewDropOperation)dropOperation
82     {
83     id pb = [info draggingPasteboard];
84     id plist = [pb propertyListForType:NSFilenamesPboardType];
85    
86     NSWorkspace *ws = [NSWorkspace sharedWorkspace];
87     NSError *error = nil;
88     for(NSString *filePath in plist) {
89     NSString *type = [ws typeOfFile:filePath error:&error];
90     if(![ws type:type conformsToType:@"com.masakih.xspf"]) {
91     return NSDragOperationNone;
92     }
93     }
94     [table setDropRow:row dropOperation:NSTableViewDropAbove];
95    
96     return NSDragOperationCopy;
97     }
98    
99     - (BOOL)tableView:(NSTableView*)table
100     acceptDrop:(id <NSDraggingInfo>)info
101     row:(NSInteger)row
102     dropOperation:(NSTableViewDropOperation)dropOperation
103     {
104     id pb = [info draggingPasteboard];
105     id plist = [pb propertyListForType:NSFilenamesPboardType];
106    
107 masaki 184 [[NSApp delegate] registerFilePaths:plist];
108 masaki 111
109     return YES;
110     }
111    
112 masaki 21 @end

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