From 8e7559a1c66ff77dc0e14dd7690030e5ff85b660 Mon Sep 17 00:00:00 2001 From: Mitchell Livingston Date: Sat, 19 May 2007 01:16:52 +0000 Subject: [PATCH] when dragging torrents, dim the main window --- Transmission.xcodeproj/project.pbxproj | 6 + macosx/Controller.h | 2 + macosx/Controller.m | 142 +++++++++++------- macosx/DragOverlayWindow.h | 31 ++++ macosx/DragOverlayWindow.m | 46 ++++++ macosx/English.lproj/MainMenu.nib/info.nib | 2 +- .../MainMenu.nib/keyedobjects.nib | Bin 53495 -> 53524 bytes 7 files changed, 175 insertions(+), 54 deletions(-) create mode 100644 macosx/DragOverlayWindow.h create mode 100644 macosx/DragOverlayWindow.m diff --git a/Transmission.xcodeproj/project.pbxproj b/Transmission.xcodeproj/project.pbxproj index 16cfbcacb..c1797ebc9 100644 --- a/Transmission.xcodeproj/project.pbxproj +++ b/Transmission.xcodeproj/project.pbxproj @@ -109,6 +109,7 @@ A2305AAC0A3DCCEF00AB2D77 /* ProgressBarEndGreen.png in Resources */ = {isa = PBXBuildFile; fileRef = A2305AA70A3DCCEF00AB2D77 /* ProgressBarEndGreen.png */; }; A2305AAD0A3DCCEF00AB2D77 /* ProgressBarEndGray.png in Resources */ = {isa = PBXBuildFile; fileRef = A2305AA80A3DCCEF00AB2D77 /* ProgressBarEndGray.png */; }; A232D29E0A70903E00973B12 /* Filter.png in Resources */ = {isa = PBXBuildFile; fileRef = A232D29D0A70903E00973B12 /* Filter.png */; }; + A2385DD40BFE06C800B24EF6 /* DragOverlayWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = A2385DD20BFE06C800B24EF6 /* DragOverlayWindow.m */; }; A23BBEB70A9BBE77003F7274 /* BarButton.m in Sources */ = {isa = PBXBuildFile; fileRef = A27431D90A68538400FA780A /* BarButton.m */; }; A24103070AF80E390001C8D0 /* FilterButtonPressedLeft.png in Resources */ = {isa = PBXBuildFile; fileRef = A253F7140A699178008EE24F /* FilterButtonPressedLeft.png */; }; A246004D0A6DCE4600D19088 /* SpeedLimitButtonPressed.png in Resources */ = {isa = PBXBuildFile; fileRef = A246004C0A6DCE4600D19088 /* SpeedLimitButtonPressed.png */; }; @@ -328,6 +329,8 @@ A2305AA70A3DCCEF00AB2D77 /* ProgressBarEndGreen.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = ProgressBarEndGreen.png; path = macosx/Images/ProgressBarEndGreen.png; sourceTree = ""; }; A2305AA80A3DCCEF00AB2D77 /* ProgressBarEndGray.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = ProgressBarEndGray.png; path = macosx/Images/ProgressBarEndGray.png; sourceTree = ""; }; A232D29D0A70903E00973B12 /* Filter.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Filter.png; path = macosx/Images/Filter.png; sourceTree = ""; }; + A2385DD20BFE06C800B24EF6 /* DragOverlayWindow.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = DragOverlayWindow.m; path = macosx/DragOverlayWindow.m; sourceTree = ""; }; + A2385DD30BFE06C800B24EF6 /* DragOverlayWindow.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = DragOverlayWindow.h; path = macosx/DragOverlayWindow.h; sourceTree = ""; }; A2440F9C0BD331A2006A687A /* German */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = German; path = macosx/German.lproj/InfoPlist.strings; sourceTree = ""; }; A2440F9D0BD331A2006A687A /* German */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = German; path = macosx/German.lproj/InfoWindow.nib; sourceTree = ""; }; A2440F9E0BD331A2006A687A /* German */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = German; path = macosx/German.lproj/Localizable.strings; sourceTree = ""; }; @@ -452,6 +455,8 @@ 080E96DDFE201D6D7F000001 /* Sources */ = { isa = PBXGroup; children = ( + A2385DD20BFE06C800B24EF6 /* DragOverlayWindow.m */, + A2385DD30BFE06C800B24EF6 /* DragOverlayWindow.h */, A2265F3F0B5EF5F40093DDA5 /* FileBrowserCell.h */, A2265F400B5EF5F40093DDA5 /* FileBrowserCell.m */, A2BF078F0B066E0800757C92 /* SpeedLimitToTurtleIconTransformer.m */, @@ -993,6 +998,7 @@ A24999230B49F1B5001EADA3 /* ActionPopUpButton.m in Sources */, A2265F420B5EF5F40093DDA5 /* FileBrowserCell.m in Sources */, A2A1CB7A0BF29D5500AE959F /* PeerProgressIndicatorCell.m in Sources */, + A2385DD40BFE06C800B24EF6 /* DragOverlayWindow.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/macosx/Controller.h b/macosx/Controller.h index f7f72fafe..f14bd8873 100644 --- a/macosx/Controller.h +++ b/macosx/Controller.h @@ -30,6 +30,7 @@ #import "PrefsController.h" #import "InfoWindowController.h" #import "MessageWindowController.h" +#import "DragOverlayWindow.h" #import "Badger.h" #import "ImageBackgroundView.h" #import "BarButton.h" @@ -51,6 +52,7 @@ MessageWindowController * fMessageController; IBOutlet NSWindow * fWindow; + DragOverlayWindow * fOverlayWindow; IBOutlet NSScrollView * fScrollView; IBOutlet TorrentTableView * fTableView; NSToolbar * fToolbar; diff --git a/macosx/Controller.m b/macosx/Controller.m index af2bffa04..1b4bc4c7e 100644 --- a/macosx/Controller.m +++ b/macosx/Controller.m @@ -187,6 +187,7 @@ static void sleepCallBack(void * controller, io_service_t y, natural_t messageTy [fTorrents release]; [fDisplayedTorrents release]; [fBadger release]; + [fOverlayWindow release]; [fAutoImportedNames release]; [fPendingTorrentDownloads release]; @@ -201,6 +202,7 @@ static void sleepCallBack(void * controller, io_service_t y, natural_t messageTy [fFilterBar setBackgroundImage: [NSImage imageNamed: @"FilterBarBackground.png"]]; [fWindow setAcceptsMouseMovedEvents: YES]; //ensure filter buttons display correctly + fOverlayWindow = [[DragOverlayWindow alloc] init]; fToolbar = [[NSToolbar alloc] initWithIdentifier: @"Transmission Toolbar"]; [fToolbar setDelegate: self]; @@ -267,8 +269,9 @@ static void sleepCallBack(void * controller, io_service_t y, natural_t messageTy [fTableView setTorrents: fDisplayedTorrents]; [[fTableView tableColumnWithIdentifier: @"Torrent"] setDataCell: [[TorrentCell alloc] init]]; - [fTableView registerForDraggedTypes: [NSArray arrayWithObjects: NSFilenamesPboardType, - NSURLPboardType, TORRENT_TABLE_VIEW_DATA_TYPE, nil]]; + [fTableView registerForDraggedTypes: [NSArray arrayWithObject: TORRENT_TABLE_VIEW_DATA_TYPE]]; + [fWindow registerForDraggedTypes: [NSArray arrayWithObjects: NSFilenamesPboardType, + NSURLPboardType, nil]]; //register for sleep notifications IONotificationPortRef notify; @@ -521,6 +524,7 @@ static void sleepCallBack(void * controller, io_service_t y, natural_t messageTy tr_natTraversalEnable(fLib, 0); //remember window states and close all windows + #warning needed here? [fDefaults setBool: [[fInfoController window] isVisible] forKey: @"InfoVisible"]; [[NSApp windows] makeObjectsPerformSelector: @selector(close)]; [self showStatusBar: NO animate: NO]; @@ -2005,30 +2009,7 @@ static void sleepCallBack(void * controller, io_service_t y, natural_t messageTy proposedRow: (int) row proposedDropOperation: (NSTableViewDropOperation) operation { NSPasteboard * pasteboard = [info draggingPasteboard]; - if ([[pasteboard types] containsObject: NSFilenamesPboardType]) - { - //check if any files can be added - NSEnumerator * enumerator = [[pasteboard propertyListForType: NSFilenamesPboardType] objectEnumerator]; - NSString * file; - while ((file = [enumerator nextObject])) - { - tr_torrent_t * tempTor; - int error; - if ((tempTor = tr_torrentInit(fLib, [file UTF8String], NULL, 0, &error))) - { - tr_torrentClose(fLib, tempTor); - - [fTableView setDropRow: -1 dropOperation: NSTableViewDropOn]; - return NSDragOperationGeneric; - } - } - } - else if ([[pasteboard types] containsObject: NSURLPboardType]) - { - [fTableView setDropRow: -1 dropOperation: NSTableViewDropOn]; - return NSDragOperationGeneric; - } - else if ([[pasteboard types] containsObject: TORRENT_TABLE_VIEW_DATA_TYPE]) + if ([[pasteboard types] containsObject: TORRENT_TABLE_VIEW_DATA_TYPE]) { [fTableView setDropRow: row dropOperation: NSTableViewDropAbove]; return NSDragOperationGeneric; @@ -2042,33 +2023,7 @@ static void sleepCallBack(void * controller, io_service_t y, natural_t messageTy row: (int) newRow dropOperation: (NSTableViewDropOperation) operation { NSPasteboard * pasteboard = [info draggingPasteboard]; - if ([[pasteboard types] containsObject: NSFilenamesPboardType]) - { - //create an array of files that can be opened - NSMutableArray * filesToOpen = [[NSMutableArray alloc] init]; - NSEnumerator * enumerator = [[pasteboard propertyListForType: NSFilenamesPboardType] objectEnumerator]; - NSString * file; - while ((file = [enumerator nextObject])) - { - tr_torrent_t * tempTor; - int error; - if ((tempTor = tr_torrentInit(fLib, [file UTF8String], NULL, 0, &error))) - { - tr_torrentClose(fLib, tempTor); - [filesToOpen addObject: file]; - } - } - - [self application: NSApp openFiles: filesToOpen]; - [filesToOpen release]; - } - else if ([[pasteboard types] containsObject: NSURLPboardType]) - { - NSURL * url; - if ((url = [NSURL URLFromPasteboard: pasteboard])) - [self openURL: url]; - } - else if ([[pasteboard types] containsObject: TORRENT_TABLE_VIEW_DATA_TYPE]) + if ([[pasteboard types] containsObject: TORRENT_TABLE_VIEW_DATA_TYPE]) { //remember selected rows if needed NSArray * selectedTorrents = nil; @@ -2130,6 +2085,87 @@ static void sleepCallBack(void * controller, io_service_t y, natural_t messageTy [fInfoController updateInfoForTorrents: [fDisplayedTorrents objectsAtIndexes: [fTableView selectedRowIndexes]]]; } +- (NSDragOperation) draggingEntered: (id ) info +{ + NSPasteboard * pasteboard = [info draggingPasteboard]; + if ([[pasteboard types] containsObject: NSFilenamesPboardType]) + { + //check if any files can be added + NSEnumerator * enumerator = [[pasteboard propertyListForType: NSFilenamesPboardType] objectEnumerator]; + NSString * file; + while ((file = [enumerator nextObject])) + { + tr_torrent_t * tempTor; + int error; + if ((tempTor = tr_torrentInit(fLib, [file UTF8String], NULL, 0, &error))) + { + tr_torrentClose(fLib, tempTor); + + [fOverlayWindow setFrame: [fWindow frame] display: YES]; + [fOverlayWindow orderWindow: NSWindowAbove relativeTo: [fWindow windowNumber]]; + + return NSDragOperationGeneric; + } + } + } + else if ([[pasteboard types] containsObject: NSURLPboardType]) + { + [fOverlayWindow setFrame: [fWindow frame] display: YES]; + [fOverlayWindow orderWindow: NSWindowAbove relativeTo: [fWindow windowNumber]]; + + return NSDragOperationGeneric; + } + else; + + return NSDragOperationNone; +} + +- (void) draggingExited: (id ) sender +{ + [fOverlayWindow close]; +} + +- (BOOL) performDragOperation: (id ) info +{ + [fOverlayWindow close]; + + NSPasteboard * pasteboard = [info draggingPasteboard]; + if ([[pasteboard types] containsObject: NSFilenamesPboardType]) + { + //create an array of files that can be opened + NSMutableArray * filesToOpen = [[NSMutableArray alloc] init]; + NSEnumerator * enumerator = [[pasteboard propertyListForType: NSFilenamesPboardType] objectEnumerator]; + NSString * file; + while ((file = [enumerator nextObject])) + { + tr_torrent_t * tempTor; + int error; + if ((tempTor = tr_torrentInit(fLib, [file UTF8String], NULL, 0, &error))) + { + tr_torrentClose(fLib, tempTor); + [filesToOpen addObject: file]; + } + } + + [self application: NSApp openFiles: filesToOpen]; + [filesToOpen release]; + + return YES; + } + else if ([[pasteboard types] containsObject: NSURLPboardType]) + { + NSURL * url; + if ((url = [NSURL URLFromPasteboard: pasteboard])) + { + [self openURL: url]; + return YES; + } + } + else; + + return NO; +} + - (void) toggleSmallView: (id) sender { BOOL makeSmall = [fDefaults boolForKey: @"SmallView"]; diff --git a/macosx/DragOverlayWindow.h b/macosx/DragOverlayWindow.h new file mode 100644 index 000000000..c1a0e32e6 --- /dev/null +++ b/macosx/DragOverlayWindow.h @@ -0,0 +1,31 @@ +/****************************************************************************** + * $Id$ + * + * Copyright (c) 2007 Transmission authors and contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + *****************************************************************************/ + +#import + +@interface DragOverlayWindow : NSWindow +{ +} + +@end diff --git a/macosx/DragOverlayWindow.m b/macosx/DragOverlayWindow.m new file mode 100644 index 000000000..7024f9306 --- /dev/null +++ b/macosx/DragOverlayWindow.m @@ -0,0 +1,46 @@ +/****************************************************************************** + * $Id$ + * + * Copyright (c) 2007 Transmission authors and contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + *****************************************************************************/ + +#import "DragOverlayWindow.h" + +@implementation DragOverlayWindow + +- (id) init +{ + if (self = ([super initWithContentRect: NSMakeRect(0, 0, 0, 0) styleMask: NSBorderlessWindowMask + backing: NSBackingStoreBuffered defer: NO])) + { + [self setBackgroundColor: [NSColor blackColor]]; + [self setLevel: NSStatusWindowLevel]; + [self setAlphaValue: 0.5]; + [self setOpaque: NO]; + [self setHasShadow: NO]; + + [self setReleasedWhenClosed: NO]; + [self setIgnoresMouseEvents: YES]; + } + return self; +} + +@end diff --git a/macosx/English.lproj/MainMenu.nib/info.nib b/macosx/English.lproj/MainMenu.nib/info.nib index d442e30fb..6c2d65a5c 100644 --- a/macosx/English.lproj/MainMenu.nib/info.nib +++ b/macosx/English.lproj/MainMenu.nib/info.nib @@ -32,7 +32,7 @@ IBOpenObjects 29 - 1041 + 21 IBSystem Version 8P135 diff --git a/macosx/English.lproj/MainMenu.nib/keyedobjects.nib b/macosx/English.lproj/MainMenu.nib/keyedobjects.nib index edde5575f800c3396457de4b27a16c4e646ffa51..4cc3774e69bef8537f3a0e4bb0565d4c3e44e6ca 100644 GIT binary patch delta 23206 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 ocQ@MY>-KX8xbg10?oc<`9bM#9rfB*mh