root / trunk / TagEditor.h

Revision 42, 5.4 kB (checked in by stephen_booth, 3 years ago)

Standardize UI

  • Property svn:keywords set to Id
Line 
1/*
2 *  $Id$
3 *
4 *  Copyright (C) 2005, 2006 Stephen F. Booth <me@sbooth.org>
5 *
6 *  This program is free software; you can redistribute it and/or modify
7 *  it under the terms of the GNU General Public License as published by
8 *  the Free Software Foundation; either version 2 of the License, or
9 *  (at your option) any later version.
10 *
11 *  This program is distributed in the hope that it will be useful,
12 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
13 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 *  GNU General Public License for more details.
15 *
16 *  You should have received a copy of the GNU General Public License
17 *  along with this program; if not, write to the Free Software
18 *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19 */
20
21#import <Cocoa/Cocoa.h>
22#import "TagArrayControllerDelegateMethods.h"
23#import "AddTagSheetDelegateMethods.h"
24#import "GuessTagsSheetDelegateMethods.h"
25#import "RenameFilesSheetDelegateMethods.h"
26#import "FileSelectionSheetDelegateMethods.h"
27#import "FileArrayController.h"
28#import "TagArrayController.h"
29
30enum {
31        kSaveMenuItemTag                                = 1,
32        kRevertMenuItemTag                              = 2,
33        kOpenMenuItemTag                                = 3,
34        kToggleDrawerMenuItemTag                = 4,
35        kSelectNextMenuItemTag                  = 5,
36        kSelectPreviousMenuItemTag              = 6,
37        kCloseMenuItemTag                               = 7,
38        kSelectAllFilesMenuItemTag              = 8,
39        kBasicTabMenuItemTag                    = 9,
40        kAdvancedTabMenuItemTag                 = 10,
41        kTabularTabMenuItemTag                  = 11,
42        kNewTagMenuItemTag                              = 12,
43        kDeleteTagMenuItemTag                   = 13,
44        kGuessTagsMenuItemTag                   = 14,
45       
46        kSortByFilenameMenuItemTag              = 15,
47        kSortByTitleMenuItemTag                 = 16,
48        kSortByArtistMenuItemTag                = 17,
49        kSortByAlbumMenuItemTag                 = 18,
50        kSortByYearMenuItemTag                  = 19,
51        kSortByGenreMenuItemTag                 = 20,
52        kSortByComposerMenuItemTag              = 21,
53        kSortByTrackNumberMenuItemTag   = 22,
54        kSortByDiscNumberMenuItemTag    = 23,
55       
56        kAddTagsFromFileMenuItemTag             = 24,
57        kRenameFilesMenuItemTag                 = 25,
58        kCopySelectedTagsMenuItemTag    = 26
59};
60
61enum {
62        kBasicTabViewItemIndex                  = 0,
63        kAdvancedTabViewItemIndex               = 1,
64        kTabularTabViewItemIndex                = 2
65};
66
67@interface TagEditor : NSWindowController <TagArrayControllerDelegateMethods, AddTagSheetDelegateMethods, GuessTagsSheetDelegateMethods, RenameFilesSheetDelegateMethods, FileSelectionSheetDelegateMethods>
68{
69        NSArray                                                 *_validKeys;
70        NSMutableArray                                  *_files;
71       
72        IBOutlet FileArrayController    *_filesController;
73        IBOutlet TagArrayController             *_tagsController;
74        IBOutlet NSArrayController              *_selectedFilesController;
75
76        IBOutlet NSDrawer                               *_filesDrawer;
77        IBOutlet NSTableView                    *_tagsTable;
78        IBOutlet NSTableView                    *_tabularTagsTable;
79        IBOutlet NSTabView                              *_tabView;
80        IBOutlet NSPopUpButton                  *_sortFilesPopUpButton;
81       
82        IBOutlet NSTextField                    *_titleTextField;
83        IBOutlet NSTextField                    *_artistTextField;
84        IBOutlet NSTextField                    *_albumTextField;
85        IBOutlet NSTextField                    *_yearTextField;
86        IBOutlet NSTextField                    *_genreTextField;
87        IBOutlet NSTextField                    *_composerTextField;
88        IBOutlet NSTextField                    *_MCNTextField;
89        IBOutlet NSTextField                    *_ISRCTextField;
90        IBOutlet NSTextField                    *_encoderTextField;
91        IBOutlet NSTextField                    *_commentTextField;
92        IBOutlet NSTextField                    *_customTextField;
93        IBOutlet NSTextField                    *_trackNumberTextField;
94        IBOutlet NSTextField                    *_trackTotalTextField;
95        IBOutlet NSTextField                    *_discNumberTextField;
96        IBOutlet NSTextField                    *_discTotalTextField;
97}
98
99+ (TagEditor *)                         sharedEditor;
100
101- (IBAction)                            selectBasicTab:(id)sender;
102- (IBAction)                            selectAdvancedTab:(id)sender;
103- (IBAction)                            selectTabularTab:(id)sender;
104
105- (IBAction)                            toggleFilesDrawer:(id)sender;
106- (IBAction)                            openFilesDrawer:(id)sender;
107- (IBAction)                            closeFilesDrawer:(id)sender;
108
109- (IBAction)                            openDocument:(id)sender;
110- (IBAction)                            saveDocument:(id)sender;
111- (IBAction)                            revertDocumentToSaved:(id)sender;
112- (IBAction)                            performClose:(id)sender;
113
114- (IBAction)                            selectNextFile:(id)sender;
115- (IBAction)                            selectPreviousFile:(id)sender;
116- (IBAction)                            selectAllFiles:(id)sender;
117- (IBAction)                            sortFiles:(id)sender;
118
119- (unsigned)                            countOfFiles;
120- (unsigned)                            countOfSelectedFiles;
121- (KeyValueTaggedFile *)        objectInFilesAtIndex:(unsigned)index;
122
123- (BOOL)                                        addFile:(NSString *)filename;
124- (BOOL)                                        addFile:(NSString *)filename atIndex:(unsigned)index;
125
126- (void)                                        openFilesDrawerIfNeeded;
127
128- (IBAction)                            newTag:(id)sender;
129- (IBAction)                            addTagsFromFile:(id)sender;
130- (IBAction)                            renameFiles:(id)sender;
131- (IBAction)                            guessTags:(id)sender;
132- (IBAction)                            copySelectedTags:(id)sender;
133- (IBAction)                            deleteTag:(id)sender;
134- (IBAction)                            delete:(id)sender;
135
136- (void)                                        setValue:(NSString *)value forTag:(NSString *)tag;
137- (void)                                        addValue:(NSString *)value forTag:(NSString *)tag;
138- (void)                                        updateTag:(NSString *)tag withValue:(NSString *)currentValue toValue:(NSString *)newValue;
139- (void)                                        renameTag:(NSString *)currentTag withValue:(NSString *)currentValue toTag:(NSString *)newTag;
140
141- (void)                                        guessTagsUsingPattern:(NSString *)pattern;
142- (void)                                        renameFilesUsingPattern:(NSString *)pattern;
143
144- (void)                                        copySelectedTagsToFiles:(NSArray *)files;
145
146- (void)                                        cutSelectedTagsToPasteboard;
147- (void)                                        copySelectedTagsToPasteboard;
148- (void)                                        pasteTagsFromPasteboard;
149
150- (BOOL)                                        applicationShouldTerminate;
151
152- (BOOL)                                        dirty;
153- (BOOL)                                        selectionDirty;
154
155- (NSArray *)                           genres;
156
157@end
158
159@interface TagEditor (ScriptingAdditions)
160
161- (void)                                        saveFile:(KeyValueTaggedFile *)file;
162- (void)                                        closeFile:(KeyValueTaggedFile *)file saveOptions:(NSSaveOptions)saveOptions;
163
164@end
Note: See TracBrowser for help on using the browser.