diff --git a/Configurations/Build/Common/Foundation.xcconfig b/Configurations/Build/Common/Foundation.xcconfig index 8a793e618..d288e4d9d 100644 --- a/Configurations/Build/Common/Foundation.xcconfig +++ b/Configurations/Build/Common/Foundation.xcconfig @@ -68,7 +68,7 @@ INFOPLIST_OUTPUT_FORMAT = binary LD_NO_PIE = YES LD_RUNPATH_SEARCH_PATHS = @loader_path/../Frameworks @executable_path/../Frameworks LIBRARY_SEARCH_PATHS = -MACOSX_DEPLOYMENT_TARGET = 10.9 +MACOSX_DEPLOYMENT_TARGET = 10.12 ONLY_ACTIVE_ARCH = NO OTHER_CFLAGS = -Xclang -fobjc-runtime-has-weak PLIST_FILE_OUTPUT_FORMAT = binary diff --git a/Frameworks/Auto Hyperlinks b/Frameworks/Auto Hyperlinks index 8331b570d..ae67975d3 160000 --- a/Frameworks/Auto Hyperlinks +++ b/Frameworks/Auto Hyperlinks @@ -1 +1 @@ -Subproject commit 8331b570d541618cbf2d12df4f3aaa99b0c1b7b9 +Subproject commit ae67975d318f1ee4269334d74563a10555bada58 diff --git a/Frameworks/Cocoa Extensions b/Frameworks/Cocoa Extensions index 7841da9bf..32d0e57a6 160000 --- a/Frameworks/Cocoa Extensions +++ b/Frameworks/Cocoa Extensions @@ -1 +1 @@ -Subproject commit 7841da9bfadf3b2c051c75a09fe32ad5a6af3a60 +Subproject commit 32d0e57a66f302e4fe646c5faa96000c7c18a4c3 diff --git a/Frameworks/Static Libraries b/Frameworks/Static Libraries index 469569151..bf48f6e03 160000 --- a/Frameworks/Static Libraries +++ b/Frameworks/Static Libraries @@ -1 +1 @@ -Subproject commit 469569151cc698af7bc422356d0b3d1c475d8b92 +Subproject commit bf48f6e03265ea83a0a7e9a464fadf09fc453b65 diff --git a/Sources/App/Classes/Controllers/TXAppearance.m b/Sources/App/Classes/Controllers/TXAppearance.m index 3c05d7b77..86483b0a5 100644 --- a/Sources/App/Classes/Controllers/TXAppearance.m +++ b/Sources/App/Classes/Controllers/TXAppearance.m @@ -48,7 +48,6 @@ NSString * const TXSystemAppearanceChangedNotification = @"TXSystemAppearanceCha @property (nonatomic, copy, readwrite) NSString *appearanceName; @property (nonatomic, assign, readwrite) TXAppearanceType appearanceType; @property (nonatomic, assign, readwrite) BOOL isDarkAppearance; -@property (nonatomic, assign, readwrite) BOOL isModernAppearance; @property (nonatomic, assign, readwrite) TXAppKitAppearanceTarget appKitAppearanceTarget; @end @@ -76,10 +75,6 @@ NSString * const TXSystemAppearanceChangedNotification = @"TXSystemAppearanceCha { [self updateAppearance]; - if (TEXTUAL_RUNNING_ON_YOSEMITE == NO) { - return; - } - [RZWorkspaceNotificationCenter() addObserver:self selector:@selector(accessibilityDisplayOptionsDidChange:) name:NSWorkspaceAccessibilityDisplayOptionsDidChangeNotification @@ -97,10 +92,6 @@ NSString * const TXSystemAppearanceChangedNotification = @"TXSystemAppearanceCha - (void)prepareForApplicationTermination { - if (TEXTUAL_RUNNING_ON_YOSEMITE == NO) { - return; - } - LogToConsoleTerminationProgress("Removing appearance change observers."); [RZNotificationCenter() removeObserver:self]; @@ -116,22 +107,6 @@ NSString * const TXSystemAppearanceChangedNotification = @"TXSystemAppearanceCha + (nullable NSString *)appearanceNameForType:(TXAppearanceType)type { switch (type) { - case TXAppearanceTypeMavericksAquaLight: - { - return @"MavericksLightAqua"; - } - case TXAppearanceTypeMavericksAquaDark: - { - return @"MavericksDarkAqua"; - } - case TXAppearanceTypeMavericksGraphiteLight: - { - return @"MavericksLightGraphite"; - } - case TXAppearanceTypeMavericksGraphiteDark: - { - return @"MavericksDarkGraphite"; - } case TXAppearanceTypeYosemiteLight: { return @"YosemiteLight"; @@ -197,11 +172,9 @@ NSString * const TXSystemAppearanceChangedNotification = @"TXSystemAppearanceCha { TXAppearanceType appearanceType; - BOOL onYosemite = TEXTUAL_RUNNING_ON_YOSEMITE; BOOL onMojave = TEXTUAL_RUNNING_ON_MOJAVE; BOOL isAppearanceDark = NO; - BOOL isAppearanceModern = YES; // good default TXPreferredAppearance preferredAppearance = [TPCPreferences appearance]; @@ -253,7 +226,7 @@ NSString * const TXSystemAppearanceChangedNotification = @"TXSystemAppearanceCha appKitAppearanceTarget = TXAppKitAppearanceTargetWindow; } } - else if (onYosemite) + else { if (isAppearanceDark) { appearanceType = TXAppearanceTypeYosemiteDark; @@ -265,27 +238,6 @@ NSString * const TXSystemAppearanceChangedNotification = @"TXSystemAppearanceCha object on individual views. We do this for dark and light appearance because we want to set vibrant light. Not aqua. */ appKitAppearanceTarget = TXAppKitAppearanceTargetView; - } - else - { - isAppearanceModern = NO; - - if ([NSColor currentControlTint] == NSGraphiteControlTint) { - if (isAppearanceDark) { - appearanceType = TXAppearanceTypeMavericksGraphiteDark; - } else { - appearanceType = TXAppearanceTypeMavericksGraphiteLight; - } // isAppearanceDark - } else { - if (isAppearanceDark) { - appearanceType = TXAppearanceTypeMavericksAquaDark; - } else { - appearanceType = TXAppearanceTypeMavericksAquaLight; - } // isAppearanceDark - } // Graphite - - /* Mavericks doesn't have vibrancy or dark which means there - is no need to change the AppKit appearance target for it. */ } // macOS Version /* Test for changes */ @@ -320,8 +272,7 @@ NSString * const TXSystemAppearanceChangedNotification = @"TXSystemAppearanceCha newProperties.appearanceType = appearanceType; newProperties.isDarkAppearance = isAppearanceDark; - newProperties.isModernAppearance = isAppearanceModern; - + newProperties.appKitAppearanceTarget = appKitAppearanceTarget; self.properties = newProperties; diff --git a/Sources/App/Classes/Controllers/TXApplication.m b/Sources/App/Classes/Controllers/TXApplication.m index d09d0daa1..1857a650b 100644 --- a/Sources/App/Classes/Controllers/TXApplication.m +++ b/Sources/App/Classes/Controllers/TXApplication.m @@ -84,7 +84,7 @@ NS_ASSUME_NONNULL_BEGIN - (BOOL)performedCustomKeyboardEvent:(NSEvent *)event { - if (event.type != NSKeyDown) { + if (event.type != NSEventTypeKeyDown) { return NO; } diff --git a/Sources/App/Classes/Controllers/TXMasterController.m b/Sources/App/Classes/Controllers/TXMasterController.m index 54ad1a47e..1db5aa227 100644 --- a/Sources/App/Classes/Controllers/TXMasterController.m +++ b/Sources/App/Classes/Controllers/TXMasterController.m @@ -112,24 +112,20 @@ NS_ASSUME_NONNULL_BEGIN - (void)prepareInitialState { - if (TEXTUAL_RUNNING_ON_SIERRA) { - LogToConsoleSetDefaultSubsystem(os_log_create(TXBundleBuildProductIdentifierCString, "General")); - } + LogToConsoleSetDefaultSubsystem(os_log_create(TXBundleBuildProductIdentifierCString, "General")); - NSUInteger keyboardKeys = ([NSEvent modifierFlags] & NSDeviceIndependentModifierFlagsMask); + NSUInteger keyboardKeys = ([NSEvent modifierFlags] & NSEventModifierFlagDeviceIndependentFlagsMask); - if ((keyboardKeys & NSControlKeyMask) == NSControlKeyMask) { + if ((keyboardKeys & NSEventModifierFlagControl) == NSEventModifierFlagControl) { self.debugModeIsOn = YES; - LogToConsoleSetDebugLoggingEnabled(YES); - LogToConsoleDebug("Launching in debug mode"); } #if defined(DEBUG) self.ghostModeIsOn = YES; // Do not use autoconnect during debug #else - if ((keyboardKeys & NSShiftKeyMask) == NSShiftKeyMask) { + if ((keyboardKeys & NSEventModifierFlagShift) == NSEventModifierFlagShift) { self.ghostModeIsOn = YES; LogToConsoleInfo("Launching without autoconnecting to the configured servers"); @@ -157,11 +153,7 @@ NS_ASSUME_NONNULL_BEGIN /* We wait until -awakeFromNib to wake the window so that the menu controller created by the main nib has time to load. */ - if (TEXTUAL_RUNNING_ON_YOSEMITE) { - [RZMainBundle() loadNibNamed:@"TVCMainWindowYosemite" owner:self topLevelObjects:nil]; - } else { - [RZMainBundle() loadNibNamed:@"TVCMainWindowMavericks" owner:self topLevelObjects:nil]; - } + [RZMainBundle() loadNibNamed:@"TVCMainWindow" owner:self topLevelObjects:nil]; } - (void)applicationWakeStepOne diff --git a/Sources/App/Classes/Controllers/TXMenuController.m b/Sources/App/Classes/Controllers/TXMenuController.m index c998b0290..cce9c2b79 100755 --- a/Sources/App/Classes/Controllers/TXMenuController.m +++ b/Sources/App/Classes/Controllers/TXMenuController.m @@ -520,9 +520,9 @@ NS_ASSUME_NONNULL_BEGIN } case MTMMServerConnectWithoutProxy: // "Connect Without Proxy" { - NSUInteger flags = ([NSEvent modifierFlags] & NSDeviceIndependentModifierFlagsMask); + NSUInteger flags = ([NSEvent modifierFlags] & NSEventModifierFlagDeviceIndependentFlagsMask); - if (flags != NSShiftKeyMask) { + if (flags != NSEventModifierFlagShift) { menuItem.hidden = YES; return NO; @@ -588,12 +588,6 @@ NS_ASSUME_NONNULL_BEGIN return [viewController highlightAvailable:(tag == MTMMNavigationPreviousHighlight)]; } - case MTMMNavigationSearchChannels: // "Search channels…" - { - menuItem.hidden = (TEXTUAL_RUNNING_ON_YOSEMITE == NO); - - return YES; - } case MTMMChannelJoinChannel: // "Join Channel" { @@ -726,16 +720,6 @@ NS_ASSUME_NONNULL_BEGIN return [TPCPreferences logHighlights]; } - case MTMMWindowBuddyList: // "Buddy List" - { -#ifdef TEXTUAL_BUILT_WITH_BUDDY_LIST_WINDOW - menuItem.hidden = (TEXTUAL_RUNNING_ON_YOSEMITE == NO); -#else - menuItem.hidden = YES; -#endif - - return YES; - } case MTUserControlsAddIgnore: // "Add Ignore" { @@ -3125,7 +3109,7 @@ NS_ASSUME_NONNULL_BEGIN target:self action:@selector(_navigateToChannelInNavigationList:) keyEquivalent:[NSString stringWithUniChar:('0' + keyboardIndex)] - keyEquivalentMask:NSCommandKeyMask]; + keyEquivalentMask:NSEventModifierFlagCommand]; } channelMenuItem.userInfo = [worldController() pasteboardStringForItem:c]; @@ -3481,31 +3465,6 @@ NS_ASSUME_NONNULL_BEGIN [windowController() removeWindowFromWindowList:sender]; } -#pragma mark - -#pragma mark Buddy List Window - -- (void)showBuddyListWindow:(id)sender -{ -#ifdef TEXTUAL_BUILT_WITH_BUDDY_LIST_WINDOW - _popWindowViewIfExists(@"TDCBuddyListDialog"); - - TDCBuddyListDialog *dialog = [TDCBuddyListDialog new]; - - dialog.delegate = (id)self; - - [dialog show]; - - [windowController() addWindowToWindowList:dialog]; -#endif -} - -#ifdef TEXTUAL_BUILT_WITH_BUDDY_LIST_WINDOW -- (void)buddyListDialogWillClose:(TDCBuddyListDialog *)sender -{ - [windowController() removeWindowFromWindowList:sender]; -} -#endif - #pragma mark - #pragma mark Server Properties Sheet @@ -3742,9 +3701,6 @@ NS_ASSUME_NONNULL_BEGIN - (void)showChannelSpotlightWindow:(id)sender { - NSAssert(TEXTUAL_RUNNING_ON_YOSEMITE, - @"This feature requires OS X Yosemite or later"); - _popWindowViewIfExists(@"TDCChannelSpotlightController"); TDCChannelSpotlightController *dialog = [TDCChannelSpotlightController new]; diff --git a/Sources/App/Classes/Dialogs/Buddy List/TDCBuddyListDialog.m b/Sources/App/Classes/Dialogs/Buddy List/TDCBuddyListDialog.m deleted file mode 100644 index 952f540c6..000000000 --- a/Sources/App/Classes/Dialogs/Buddy List/TDCBuddyListDialog.m +++ /dev/null @@ -1,92 +0,0 @@ -/* ********************************************************************* - * _____ _ _ - * |_ _|____ _| |_ _ _ __ _| | - * | |/ _ \ \/ / __| | | |/ _` | | - * | | __/> <| |_| |_| | (_| | | - * |_|\___/_/\_\\__|\__,_|\__,_|_| - * - * Copyright (c) 2010 - 2016 Codeux Software, LLC & respective contributors. - * Please see Acknowledgements.pdf for additional information. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Textual, "Codeux Software, LLC", nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - *********************************************************************** */ - -#import "TVCBasicTableView.h" -#import "TDCBuddyListDialogDropViewPrivate.h" -#import "TDCBuddyListDialogInternal.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface TDCBuddyListDialog () -@property (nonatomic, weak) IBOutlet TDCBuddyListDialogDropView *dropView; -@property (nonatomic, weak) IBOutlet TVCBasicTableView *buddyListTable; -@property (nonatomic, weak) IBOutlet NSArrayController *buddyListController; -@property (nonatomic, weak) IBOutlet NSSegmentedControl *navigationController; -@end - -@implementation TDCBuddyListDialog - -- (instancetype)init -{ - if ((self = [super init])) { - [self prepareInitialState]; - - return self; - } - - return nil; -} - -- (void)prepareInitialState -{ - [RZMainBundle() loadNibNamed:@"TDCBuddyListDialog" owner:self topLevelObjects:nil]; -} - -- (void)droppedNicknames:(NSArray *)nicknames fromClient:(IRCClient *)client -{ - -} - -- (void)show -{ - [self.window restoreWindowStateForClass:self.class]; - - [super show]; -} - -- (void)windowWillClose:(NSNotification *)note -{ - [self.window saveWindowStateForClass:self.class]; - - if ([self.delegate respondsToSelector:@selector(buddyListDialogWillClose:)]) { - [self.delegate buddyListDialogWillClose:self]; - } -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/App/Classes/Dialogs/Buddy List/TDCBuddyListDialogDropView.m b/Sources/App/Classes/Dialogs/Buddy List/TDCBuddyListDialogDropView.m deleted file mode 100644 index 575bc3121..000000000 --- a/Sources/App/Classes/Dialogs/Buddy List/TDCBuddyListDialogDropView.m +++ /dev/null @@ -1,131 +0,0 @@ -/* ********************************************************************* - * _____ _ _ - * |_ _|____ _| |_ _ _ __ _| | - * | |/ _ \ \/ / __| | | |/ _` | | - * | | __/> <| |_| |_| | (_| | | - * |_|\___/_/\_\\__|\__,_|\__,_|_| - * - * Copyright (c) 2010 - 2016 Codeux Software, LLC & respective contributors. - * Please see Acknowledgements.pdf for additional information. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Textual, "Codeux Software, LLC", nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - *********************************************************************** */ - -#import "TXMasterController.h" -#import "IRCClient.h" -#import "IRCChannelPrivate.h" -#import "IRCWorldPrivate.h" -#import "TVCServerList.h" -#import "TVCMemberList.h" -#import "TDCBuddyListDialogInternal.h" -#import "TDCBuddyListDialogDropViewPrivate.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface TDCBuddyListDialogDropView () -@property (nonatomic, weak) IBOutlet TDCBuddyListDialog *parentDialog; -@property (nonatomic, weak) IBOutlet NSView *visualDropView; -@property (nonatomic, strong, nullable) IRCClient *lastDraggedClient; -@property (nonatomic, copy, nullable) NSArray *lastDraggedNicknames; -@end - -@implementation TDCBuddyListDialogDropView - -- (void)hideVisualDropView -{ - self.visualDropView.hidden = YES; -} - -- (void)showVisualDropView -{ - self.visualDropView.hidden = NO; -} - -- (void)awakeFromNib -{ - [self registerForDraggedTypes:@[TVCServerListDragType, TVCMemberListDragType]]; -} - -- (NSDragOperation)draggingEntered:(id )sender -{ - NSPasteboard *pasteboard = [sender draggingPasteboard]; - - NSString *pasteboardType = [pasteboard availableTypeFromArray:[self registeredDraggedTypes]]; - - if ([pasteboardType isEqualToString:TVCServerListDragType]) - { - NSString *draggedItemToken = [pasteboard stringForType:TVCServerListDragType]; - - IRCTreeItem *draggedItem = [worldController() findItemWithPasteboardString:draggedItemToken]; - - if (draggedItem.isPrivateMessage == NO) { - return NSDragOperationNone; - } - - self.lastDraggedClient = draggedItem.associatedClient; - - self.lastDraggedNicknames = @[draggedItem.name]; - } - else if ([pasteboardType isEqualToString:TVCMemberListDragType]) - { - NSData *draggedData = [pasteboard dataForType:TVCMemberListDragType]; - - BOOL draggedDataProcessed = - [IRCChannel readNicknamesFromPasteboardData:draggedData withBlock:^(IRCChannel *channel, NSArray *nicknames) { - self.lastDraggedClient = channel.associatedClient; - - self.lastDraggedNicknames = nicknames; - }]; - - if (draggedDataProcessed == NO) { - return NSDragOperationNone; - } - } - - return NSDragOperationCopy; -} - -- (BOOL)performDragOperation:(id )sender -{ - [self.parentDialog droppedNicknames:self.lastDraggedNicknames - fromClient:self.lastDraggedClient]; - - self.lastDraggedClient = nil; - - self.lastDraggedNicknames = nil; - - return YES; -} - -- (BOOL)wantsPeriodicDraggingUpdates -{ - return NO; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/App/Classes/Dialogs/Buddy List/TDCBuddyListDialogEntry.m b/Sources/App/Classes/Dialogs/Buddy List/TDCBuddyListDialogEntry.m deleted file mode 100644 index f38e876bc..000000000 --- a/Sources/App/Classes/Dialogs/Buddy List/TDCBuddyListDialogEntry.m +++ /dev/null @@ -1,45 +0,0 @@ -/* ********************************************************************* - * _____ _ _ - * |_ _|____ _| |_ _ _ __ _| | - * | |/ _ \ \/ / __| | | |/ _` | | - * | | __/> <| |_| |_| | (_| | | - * |_|\___/_/\_\\__|\__,_|\__,_|_| - * - * Copyright (c) 2010 - 2016 Codeux Software, LLC & respective contributors. - * Please see Acknowledgements.pdf for additional information. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Textual, "Codeux Software, LLC", nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - *********************************************************************** */ - -#import "TDCBuddyListDialogEntryPrivate.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation TDCBuddyListDialogEntry -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/App/Classes/Dialogs/Buddy List/TDCBuddyListDialogTable.m b/Sources/App/Classes/Dialogs/Buddy List/TDCBuddyListDialogTable.m deleted file mode 100644 index 4e09d412d..000000000 --- a/Sources/App/Classes/Dialogs/Buddy List/TDCBuddyListDialogTable.m +++ /dev/null @@ -1,136 +0,0 @@ -/* ********************************************************************* - * _____ _ _ - * |_ _|____ _| |_ _ _ __ _| | - * | |/ _ \ \/ / __| | | |/ _` | | - * | | __/> <| |_| |_| | (_| | | - * |_|\___/_/\_\\__|\__,_|\__,_|_| - * - * Copyright (c) 2010 - 2016 Codeux Software, LLC & respective contributors. - * Please see Acknowledgements.pdf for additional information. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Textual, "Codeux Software, LLC", nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - *********************************************************************** */ - -#import "IRCAddressBookUserTracking.h" -#import "IRCClient.h" -#import "TDCBuddyListDialogEntryPrivate.h" -#import "TDCBuddyListDialogTablePrivate.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation TDCBuddyListDialogCellView - -- (BOOL)wantsLayer -{ - return YES; -} - -- (NSViewLayerContentsRedrawPolicy)layerContentsRedrawPolicy -{ - return NSViewLayerContentsRedrawOnSetNeedsDisplay; -} - -- (NSString *)nickname -{ - TDCBuddyListDialogEntry *objectValue = self.objectValue; - - if (objectValue == nil) { - return @""; - } - - return objectValue.nickname; -} - -- (NSString *)networkName -{ - TDCBuddyListDialogEntry *objectValue = self.objectValue; - - if (objectValue == nil) { - return @""; - } - - return objectValue.client.networkNameAlt; -} - -- (NSImage *)availabilityImage -{ - TDCBuddyListDialogEntry *objectValue = self.objectValue; - - NSString *imageName = nil; - - switch (objectValue.availability) { - case IRCAddressBookUserTrackingStatusAvailalbe: - { - imageName = @"NSStatusAvailable"; - - break; - } - case IRCAddressBookUserTrackingStatusNotAvailalbe: - { - imageName = @"NSStatusUnavailable"; - - break; - } - case IRCAddressBookUserTrackingStatusAway: - { - imageName = @"NSStatusPartiallyAvailable"; - - break; - } - default: - { - imageName = @"NSStatusNone"; - - break; - } - } - - return [NSImage imageNamed:imageName]; -} - -- (void)setObjectValue:(nullable id)objectValue -{ - super.objectValue = objectValue; - - [self reloadKeyValues]; -} - -- (void)reloadKeyValues -{ - [self willChangeValueForKey:@"nickname"]; - [self didChangeValueForKey:@"nickname"]; - - [self willChangeValueForKey:@"networkName"]; - [self didChangeValueForKey:@"networkName"]; - - [self willChangeValueForKey:@"availabilityImage"]; - [self didChangeValueForKey:@"availabilityImage"]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/App/Classes/Dialogs/Channel Spotlight/TDCChannelSpotlightAppearance.m b/Sources/App/Classes/Dialogs/Channel Spotlight/TDCChannelSpotlightAppearance.m index ead53108b..30ba8fd35 100644 --- a/Sources/App/Classes/Dialogs/Channel Spotlight/TDCChannelSpotlightAppearance.m +++ b/Sources/App/Classes/Dialogs/Channel Spotlight/TDCChannelSpotlightAppearance.m @@ -59,8 +59,8 @@ NS_ASSUME_NONNULL_BEGIN @property (nonatomic, copy, nullable, readwrite) NSColor *searchResultChannelNameTextColor; @property (nonatomic, copy, nullable, readwrite) NSColor *searchResultChannelDescriptionTextColor; @property (nonatomic, copy, nullable, readwrite) NSColor *searchResultKeyboardShortcutTextColor; -@property (nonatomic, assign, readwrite) CGFloat searchResultKeyboardShortcutDeselectedTopOffset; -@property (nonatomic, assign, readwrite) CGFloat searchResultKeyboardShortcutSelectedTopOffset; +@property (nonatomic, assign, readwrite) CGFloat searchResultKeyboardShortcutDeselectedOffset; +@property (nonatomic, assign, readwrite) CGFloat searchResultKeyboardShortcutSelectedOffset; @property (nonatomic, copy, nullable, readwrite) NSColor *searchResultSelectedTextColor; @end @@ -109,8 +109,8 @@ NS_ASSUME_NONNULL_BEGIN self.searchResultChannelNameTextColor = [self colorInGroup:searchResult withKey:@"channelNameTextColor"]; self.searchResultChannelDescriptionTextColor = [self colorInGroup:searchResult withKey:@"channelDescriptionTextColor"]; self.searchResultKeyboardShortcutTextColor = [self colorInGroup:searchResult withKey:@"keyboardShortcutTextColor"]; - self.searchResultKeyboardShortcutDeselectedTopOffset = [self measurementInGroup:searchResult withKey:@"keyboardShortcutDeselectedTopOffset"]; - self.searchResultKeyboardShortcutSelectedTopOffset = [self measurementInGroup:searchResult withKey:@"keyboardShortcutSelectedTextOffset"]; + self.searchResultKeyboardShortcutDeselectedOffset = [self measurementInGroup:searchResult withKey:@"keyboardShortcutDeselectedOffset"]; + self.searchResultKeyboardShortcutSelectedOffset = [self measurementInGroup:searchResult withKey:@"keyboardShortcutSelectedOffset"]; self.searchResultSelectedTextColor = [self colorInGroup:searchResult withKey:@"selectedTextColor"]; [self flushAppearanceProperties]; diff --git a/Sources/App/Classes/Dialogs/Channel Spotlight/TDCChannelSpotlightController.m b/Sources/App/Classes/Dialogs/Channel Spotlight/TDCChannelSpotlightController.m index fb41f5f70..54d5be548 100644 --- a/Sources/App/Classes/Dialogs/Channel Spotlight/TDCChannelSpotlightController.m +++ b/Sources/App/Classes/Dialogs/Channel Spotlight/TDCChannelSpotlightController.m @@ -90,7 +90,7 @@ NS_ASSUME_NONNULL_BEGIN self.searchResultsTable.doubleAction = @selector(delegatePostSelectChannelForDoubleClickedRow:); self.mouseEventMonitor = - [NSEvent addLocalMonitorForEventsMatchingMask:NSKeyDownMask + [NSEvent addLocalMonitorForEventsMatchingMask:NSEventMaskKeyDown handler:^NSEvent *(NSEvent *event) { return [self respondToKeyDownEvent:event]; }]; @@ -232,11 +232,11 @@ NS_ASSUME_NONNULL_BEGIN case 28 ... 29: case 82 ... 92: // 0-9 (number pad) { - NSUInteger keyboardKeys = (event.modifierFlags & NSDeviceIndependentModifierFlagsMask); + NSUInteger keyboardKeys = (event.modifierFlags & NSEventModifierFlagDeviceIndependentFlagsMask); - keyboardKeys &= ~NSNumericPadKeyMask; + keyboardKeys &= ~NSEventModifierFlagNumericPad; - if (keyboardKeys == NSCommandKeyMask) { + if (keyboardKeys == NSEventModifierFlagCommand) { return [self handleCommandNumberEvent:event]; } diff --git a/Sources/App/Classes/Dialogs/Channel Spotlight/TDCChannelSpotlightSearchResultsTable.m b/Sources/App/Classes/Dialogs/Channel Spotlight/TDCChannelSpotlightSearchResultsTable.m index 8ae8d0046..926d01e0c 100644 --- a/Sources/App/Classes/Dialogs/Channel Spotlight/TDCChannelSpotlightSearchResultsTable.m +++ b/Sources/App/Classes/Dialogs/Channel Spotlight/TDCChannelSpotlightSearchResultsTable.m @@ -60,7 +60,7 @@ NS_ASSUME_NONNULL_BEGIN @property (readonly, copy) NSString *unreadCountDescription; @property (nonatomic, weak) IBOutlet NSTextField *channelNameField; @property (nonatomic, weak) IBOutlet NSTextField *keyboardShortcutField; -@property (nonatomic, weak) IBOutlet NSLayoutConstraint *keyboardShortcutFieldTopConstraint; +@property (nonatomic, weak) IBOutlet NSLayoutConstraint *keyboardShortcutFieldOffsetConstraint; @property (nonatomic, weak) IBOutlet NSTextField *unreadCountDescriptionField; @property (nonatomic, assign) BOOL staticLabelsPopulated; @property (readonly) TDCChannelSpotlightAppearance *userInterfaceObjects; @@ -110,7 +110,7 @@ NS_ASSUME_NONNULL_BEGIN self.unreadCountDescriptionField.textColor = appearance.searchResultChannelDescriptionTextColor; self.keyboardShortcutField.textColor = appearance.searchResultKeyboardShortcutTextColor; - self.keyboardShortcutFieldTopConstraint.constant = appearance.searchResultKeyboardShortcutDeselectedTopOffset; + self.keyboardShortcutFieldOffsetConstraint.constant = appearance.searchResultKeyboardShortcutDeselectedOffset; } else { @@ -121,7 +121,7 @@ NS_ASSUME_NONNULL_BEGIN self.unreadCountDescriptionField.textColor = selectedTextColor; self.keyboardShortcutField.textColor = selectedTextColor; - self.keyboardShortcutFieldTopConstraint.constant = appearance.searchResultKeyboardShortcutSelectedTopOffset; + self.keyboardShortcutFieldOffsetConstraint.constant = appearance.searchResultKeyboardShortcutSelectedOffset; } } diff --git a/Sources/App/Classes/Dialogs/License Manager/Standalone/TDCLicenseManagerDialog.m b/Sources/App/Classes/Dialogs/License Manager/Standalone/TDCLicenseManagerDialog.m index da6f06ac9..876f4bce2 100644 --- a/Sources/App/Classes/Dialogs/License Manager/Standalone/TDCLicenseManagerDialog.m +++ b/Sources/App/Classes/Dialogs/License Manager/Standalone/TDCLicenseManagerDialog.m @@ -66,11 +66,8 @@ NSString * const TDCLicenseManagerTrialExpiredNotification = @"TDCLicenseManager #define _upgradeDialogRemindMeInterval 345600 // 4 days @interface TDCLicenseManagerDialog () -@property (nonatomic, weak) IBOutlet NSView *contentView; @property (nonatomic, strong) IBOutlet NSView *contentViewUnregisteredTextualView; @property (nonatomic, strong) IBOutlet NSView *contentViewRegisteredTextualView; -@property (nonatomic, weak) IBOutlet NSLayoutConstraint *contentViewWidthConstraint; -@property (nonatomic, weak) IBOutlet NSLayoutConstraint *contentViewHeightConstraint; @property (nonatomic, weak) IBOutlet NSTextField *unregisteredViewLicenseKeyTextField; @property (nonatomic, weak) IBOutlet NSTextField *unregisteredViewTrialInformationTextField; @property (nonatomic, weak) IBOutlet NSTextField *registeredViewLicenseKeyTextField; @@ -158,13 +155,7 @@ NSString * const TDCLicenseManagerTrialExpiredNotification = @"TDCLicenseManager return; } - NSString *appStoreIconPath = nil; - - if (TEXTUAL_RUNNING_ON_SIERRA) { - appStoreIconPath = [appStoreApplication pathForResource:@"AppIcon" ofType:@"icns"]; - } else { - appStoreIconPath = [appStoreApplication pathForResource:@"appStore" ofType:@"icns"]; - } + NSString *appStoreIconPath = [appStoreApplication pathForResource:@"AppIcon" ofType:@"icns"]; if (appStoreIconPath == nil) { return; @@ -202,9 +193,7 @@ NSString * const TDCLicenseManagerTrialExpiredNotification = @"TDCLicenseManager self.unregisteredViewTrialInformationTextField.stringValue = formattedTrialInformation; } - [self.contentView attachSubview:contentView - adjustedWidthConstraint:self.contentViewWidthConstraint - adjustedHeightConstraint:self.contentViewHeightConstraint]; + [self.window replaceContentView:contentView]; } #pragma mark - diff --git a/Sources/App/Classes/Dialogs/Preferences/TDCPreferencesController.m b/Sources/App/Classes/Dialogs/Preferences/TDCPreferencesController.m index 75e6b6194..8dd433b6a 100644 --- a/Sources/App/Classes/Dialogs/Preferences/TDCPreferencesController.m +++ b/Sources/App/Classes/Dialogs/Preferences/TDCPreferencesController.m @@ -54,6 +54,7 @@ #import "IRCWorld.h" #import "TLOEncryptionManagerPrivate.h" #import "TLOLocalization.h" +#import "TLOpenLink.h" #import "TVCMainWindowPrivate.h" #import "TVCNotificationConfigurationViewControllerPrivate.h" #import "TDCAlert.h" @@ -147,13 +148,10 @@ NS_ASSUME_NONNULL_BEGIN @property (nonatomic, strong) IBOutlet NSView *contentViewICloud; @property (nonatomic, strong) IBOutlet NSView *contentViewHiddenPreferences; -@property (nonatomic, strong) IBOutlet NSView *contentView; -@property (nonatomic, strong) IBOutlet NSView *shareDataBetweenDevicesView; @property (nonatomic, weak) IBOutlet NSMatrix *checkForUpdatesMatrix; -@property (nonatomic, weak) IBOutlet NSLayoutConstraint *checkForUpdatesHeightConstraint; -@property (nonatomic, weak) IBOutlet NSLayoutConstraint *shareDataBetweenDevicesViewHeightConstraint; -@property (nonatomic, weak) IBOutlet NSLayoutConstraint *contentViewHeightConstraint; -@property (nonatomic, weak) IBOutlet NSLayoutConstraint *contentViewWidthConstraint; +@property (nonatomic, weak) IBOutlet NSStackView *contentViewGeneralStackView; +@property (nonatomic, weak) IBOutlet NSView *contentViewGeneralCheckForUpdatesView; +@property (nonatomic, weak) IBOutlet NSView *contentViewGeneralShareDataView; @property (nonatomic, strong) IBOutlet NSToolbar *navigationToolbar; @property (nonatomic, strong) IBOutlet NSMenu *installedAddonsMenu; @property (nonatomic, assign) BOOL reloadingTheme; @@ -201,6 +199,8 @@ NS_ASSUME_NONNULL_BEGIN #if TEXTUAL_BUILT_WITH_ADVANCED_ENCRYPTION == 1 - (IBAction)offRecordMessagingPolicyChanged:(id)sender; +- (IBAction)offRecordMessagingOpenOfficialWebsite:(id)sender; +- (IBAction)offRecordMessagingOpenHelpDocument:(id)sender; #endif @end @@ -299,14 +299,15 @@ NS_ASSUME_NONNULL_BEGIN object:nil]; #if TEXTUAL_BUILT_WITH_ICLOUD_SUPPORT == 0 - /* Hide "Share data between devices" when iCloud support is not enabled - by setting the subview height to 0. Set height before calling firstPane: - so that firstPane: can calculate the correct total height. */ - self.shareDataBetweenDevicesViewHeightConstraint.constant = 0.0; + /* Hide "Share data between devices" when iCloud support is not enabled. */ + [self.contentViewGeneralStackView setVisibilityPriority:NSStackViewVisibilityPriorityNotVisible + forView:self.contentViewGeneralShareDataView]; #endif #if TEXTUAL_BUILT_WITH_SPARKLE_ENABLED == 0 - self.checkForUpdatesHeightConstraint.constant = 0.0; + /* Hide preferences for updates when support is not enabled. */ + [self.contentViewGeneralStackView setVisibilityPriority:NSStackViewVisibilityPriorityNotVisible + forView:self.contentViewGeneralCheckForUpdatesView]; #endif [self.contentViewGeneral layoutSubtreeIfNeeded]; @@ -437,9 +438,7 @@ NS_ASSUME_NONNULL_BEGIN - (void)firstPane:(NSView *)view selectedItem:(NSInteger)selectedItem { - [self.contentView attachSubview:view - adjustedWidthConstraint:self.contentViewWidthConstraint - adjustedHeightConstraint:self.contentViewHeightConstraint]; + [self.window replaceContentView:view]; if (selectedItem >= 0) { self.navigationToolbar.selectedItemIdentifier = _unsignedIntegerString(selectedItem); @@ -459,14 +458,6 @@ NS_ASSUME_NONNULL_BEGIN - (void)saveWindowFrame { - /* When saving the final window frame, we remove the content view - before doing so then manually set the frame because if we were - to restore the original constant to the content view's height, - that will require a layout pass before window registers it. - We have no use for the content view or its constraints once - we know the height difference, so let's just discard it and go. */ - [self.contentView removeFromSuperview]; - NSWindow *window = self.window; [window restoreDefaultSizeAndDisplay:NO]; @@ -1337,6 +1328,16 @@ NS_ASSUME_NONNULL_BEGIN { [TPCPreferences performReloadAction:TPCPreferencesReloadActionEncryptionPolicy]; } + +- (void)offRecordMessagingOpenOfficialWebsite:(id)sender +{ + [TLOpenLink openWithString:@"https://otr.cypherpunks.ca/"]; +} + +- (void)offRecordMessagingOpenHelpDocument:(id)sender +{ + [TLOpenLink openWithString:@"https://help.codeux.com/textual/Off-the-Record-Messaging.kb"]; +} #endif - (void)onChangedHighlightType:(id)sender diff --git a/Sources/App/Classes/Dialogs/TDCAlert.m b/Sources/App/Classes/Dialogs/TDCAlert.m index 52612fbfd..2fc90ea93 100755 --- a/Sources/App/Classes/Dialogs/TDCAlert.m +++ b/Sources/App/Classes/Dialogs/TDCAlert.m @@ -543,7 +543,7 @@ NSString * const TDCAlertSuppressionPrefix = @"Text Input Prompt Suppression -> /* Construct alert */ NSAlert *alert = [NSAlert new]; - alert.alertStyle = NSInformationalAlertStyle; + alert.alertStyle = NSAlertStyleInformational; alert.messageText = titleText; alert.informativeText = bodyText; @@ -576,26 +576,12 @@ NSString * const TDCAlertSuppressionPrefix = @"Text Input Prompt Suppression -> context.completionBlock = completionBlock; /* Pop alert */ - if (TEXTUAL_RUNNING_ON_YOSEMITE) { - [alert beginSheetModalForWindow:window completionHandler:^(NSModalResponse returnCode) { - [self _alertSheetResponseCallback_stage2:alert returnCode:returnCode contextInfo:context]; - }]; - } else { - [alert beginSheetModalForWindow:window - modalDelegate:[self class] - didEndSelector:@selector(_alertSheetResponseCallback_stage1:returnCode:contextInfo:) - contextInfo:(void *)CFBridgingRetain(context)]; - } + [alert beginSheetModalForWindow:window completionHandler:^(NSModalResponse returnCode) { + [self _alertSheetResponseCallback:alert returnCode:returnCode contextInfo:context]; + }]; } -+ (void)_alertSheetResponseCallback_stage1:(NSAlert *)alert returnCode:(NSInteger)returnCode contextInfo:(void *)context -{ - TDCAlertContext *contextObject = ((TDCAlertContext *)CFBridgingRelease(context)); - - [self _alertSheetResponseCallback_stage2:alert returnCode:returnCode contextInfo:contextObject]; -} - -+ (void)_alertSheetResponseCallback_stage2:(NSAlert *)alert returnCode:(NSInteger)returnCode contextInfo:(TDCAlertContext *)context ++ (void)_alertSheetResponseCallback:(NSAlert *)alert returnCode:(NSInteger)returnCode contextInfo:(TDCAlertContext *)context { NSString *suppressionKey = context.suppressionKey; diff --git a/Sources/App/Classes/Dialogs/TDCChannelModifyTopicSheet.m b/Sources/App/Classes/Dialogs/TDCChannelModifyTopicSheet.m index 3245ad6d0..7e8b43d6b 100755 --- a/Sources/App/Classes/Dialogs/TDCChannelModifyTopicSheet.m +++ b/Sources/App/Classes/Dialogs/TDCChannelModifyTopicSheet.m @@ -36,6 +36,9 @@ * *********************************************************************** */ +#warning TODO: Continuing entering text that exceeds the height \ + of the text field will grow the window. + #import "NSObjectHelperPrivate.h" #import "TLOLocalization.h" #import "IRCClient.h" diff --git a/Sources/App/Classes/Dialogs/TDCChannelPropertiesSheet.m b/Sources/App/Classes/Dialogs/TDCChannelPropertiesSheet.m index 1a970baa5..010e27380 100755 --- a/Sources/App/Classes/Dialogs/TDCChannelPropertiesSheet.m +++ b/Sources/App/Classes/Dialogs/TDCChannelPropertiesSheet.m @@ -83,8 +83,7 @@ typedef NS_ENUM(NSUInteger, TDCChannelPropertiesSheetSelection) @property (nonatomic, strong) IBOutlet NSView *contentViewDefaultsView; @property (nonatomic, strong) IBOutlet NSView *contentViewGeneralView; @property (nonatomic, strong) IBOutlet NSView *contentViewNotifications; -@property (nonatomic, weak) IBOutlet NSLayoutConstraint *contentViewWidthConstraint; -@property (nonatomic, weak) IBOutlet NSLayoutConstraint *contentViewHeightConstraint; +@property (nonatomic, strong) IBOutlet NSView *contentViewNotificationsHost; @property (nonatomic, strong) IBOutlet TVCNotificationConfigurationViewController *notificationsController; - (IBAction)onMenuBarItemChanged:(id)sender; @@ -232,7 +231,7 @@ DESIGNATED_INITIALIZER_EXCEPTION_BODY_END self.notificationsController.notifications = notifications; - [self.notificationsController attachToView:self.contentViewNotifications]; + [self.notificationsController attachToView:self.contentViewNotificationsHost]; } - (void)reloadNotificationsController @@ -298,9 +297,7 @@ DESIGNATED_INITIALIZER_EXCEPTION_BODY_END - (void)selectPane:(NSView *)view { - [self.contentView attachSubview:view - adjustedWidthConstraint:self.contentViewWidthConstraint - adjustedHeightConstraint:self.contentViewHeightConstraint]; + [self.contentView replaceFirstSubview:view]; } - (void)start diff --git a/Sources/App/Classes/Dialogs/TDCServerHighlightListSheet.m b/Sources/App/Classes/Dialogs/TDCServerHighlightListSheet.m index 27eb7bb47..5c903bfe1 100755 --- a/Sources/App/Classes/Dialogs/TDCServerHighlightListSheet.m +++ b/Sources/App/Classes/Dialogs/TDCServerHighlightListSheet.m @@ -124,26 +124,6 @@ NS_ASSUME_NONNULL_BEGIN } } -- (void)lazilyDefineHeightForRow:(NSUInteger)row -{ - NSTableView *tableView = self.highlightListTable; - - NSSize cellViewSpacing = tableView.intercellSpacing; - - NSTableCellView *cellView = [tableView viewAtColumn:1 row:row makeIfNecessary:NO]; - - NSRect textFieldFrame = cellView.textField.frame; - - IRCHighlightLogEntry *entryItem = self.highlightListController.arrangedObjects[row]; - - entryItem.rowHeight = (textFieldFrame.size.height + cellViewSpacing.height); - - [NSAnimationContext performBlockWithoutAnimation:^{ - [tableView noteHeightOfRowsWithIndexesChanged: - [NSIndexSet indexSetWithIndex:row]]; - }]; -} - - (void)onClearList:(id)sender { self.highlightListController.content = nil; @@ -204,17 +184,6 @@ NS_ASSUME_NONNULL_BEGIN #pragma mark - #pragma mark NSTableView Delegate -- (CGFloat)tableView:(NSTableView *)aTableView heightOfRow:(NSInteger)row -{ - IRCHighlightLogEntry *entryItem = self.highlightListController.arrangedObjects[row]; - - if (entryItem.rowHeight > 0) { - return entryItem.rowHeight; - } - - return aTableView.rowHeight; -} - - (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row { NSTableCellView *result = [tableView makeViewWithIdentifier:tableColumn.identifier owner:self]; @@ -222,11 +191,6 @@ NS_ASSUME_NONNULL_BEGIN return result; } -- (void)tableView:(NSTableView *)tableView didAddRowView:(NSTableRowView *)rowView forRow:(NSInteger)row -{ - [self lazilyDefineHeightForRow:row]; -} - #pragma mark - #pragma mark NSWindow Delegate diff --git a/Sources/App/Classes/Dialogs/TDCSheetBase.m b/Sources/App/Classes/Dialogs/TDCSheetBase.m index d824ff610..a405f0b91 100755 --- a/Sources/App/Classes/Dialogs/TDCSheetBase.m +++ b/Sources/App/Classes/Dialogs/TDCSheetBase.m @@ -64,11 +64,10 @@ NS_ASSUME_NONNULL_BEGIN - (void)startSheetWithWindow:(NSWindow *)window { - [NSApp beginSheet:self.sheet - modalForWindow:window - modalDelegate:self - didEndSelector:@selector(sheetDidEnd:returnCode:contextInfo:) - contextInfo:nil]; + [window beginSheet:self.sheet + completionHandler:^(NSModalResponse returnCode) { + [self sheetDidEndWithReturnCode:returnCode]; + }]; } - (void)endSheet @@ -76,7 +75,7 @@ NS_ASSUME_NONNULL_BEGIN [NSApp endSheet:self.sheet]; } -- (void)sheetDidEnd:(NSWindow *)sender returnCode:(NSInteger)returnCode contextInfo:(void *)contextInfo +- (void)sheetDidEndWithReturnCode:(NSInteger)returnCode { [self.sheet close]; } diff --git a/Sources/App/Classes/Headers/Internal/TDCBuddyListDialogInternal.h b/Sources/App/Classes/Headers/Internal/TDCBuddyListDialogInternal.h deleted file mode 100644 index d53f2fea8..000000000 --- a/Sources/App/Classes/Headers/Internal/TDCBuddyListDialogInternal.h +++ /dev/null @@ -1,48 +0,0 @@ -/* ********************************************************************* - * _____ _ _ - * |_ _|____ _| |_ _ _ __ _| | - * | |/ _ \ \/ / __| | | |/ _` | | - * | | __/> <| |_| |_| | (_| | | - * |_|\___/_/\_\\__|\__,_|\__,_|_| - * - * Copyright (c) 2010 - 2016 Codeux Software, LLC & respective contributors. - * Please see Acknowledgements.pdf for additional information. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Textual, "Codeux Software, LLC", nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - *********************************************************************** */ - -#import "TDCBuddyListDialogPrivate.h" - -NS_ASSUME_NONNULL_BEGIN - -@class IRCClient; - -@interface TDCBuddyListDialog () -- (void)droppedNicknames:(NSArray *)nicknames fromClient:(IRCClient *)client; -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/App/Classes/Headers/NSColorHelper.h b/Sources/App/Classes/Headers/NSColorHelper.h index a2c2e8fc7..42c828597 100755 --- a/Sources/App/Classes/Headers/NSColorHelper.h +++ b/Sources/App/Classes/Headers/NSColorHelper.h @@ -58,8 +58,6 @@ NS_ASSUME_NONNULL_BEGIN @property (class, readonly) NSColor *formatterNormalGrayColor; @property (class, readonly) NSColor *formatterLightGrayColor; -@property (class, readonly) NSColor *labelColorBackwardsCompat; - @property (class, readonly) NSColor *outlineViewHeaderTextColor; @property (class, readonly) NSColor *outlineViewHeaderDisabledTextColor; @end diff --git a/Sources/App/Classes/Headers/NSViewHelper.h b/Sources/App/Classes/Headers/NSViewHelper.h index 96ee21074..1db434cd3 100644 --- a/Sources/App/Classes/Headers/NSViewHelper.h +++ b/Sources/App/Classes/Headers/NSViewHelper.h @@ -37,11 +37,31 @@ NS_ASSUME_NONNULL_BEGIN -@interface NSView (TXViewHelper) -@property (readonly, copy) NSArray *constraintsForHuggingEdges; // top, right, bottom, left all == 0 +@interface NSWindow (TXWindowHelper) +/* Reset size of window to accommodate -minSize */ +- (void)changeFrameToMin; // display = YES; animate = NO +- (void)changeFrameToMinAndDisplay:(BOOL)display; // animate = NO +- (void)changeFrameToMinAndDisplay:(BOOL)display animate:(BOOL)animate; -- (void)attachSubviewToHugEdges:(NSView *)subview; -- (void)attachSubview:(NSView *)subview adjustedWidthConstraint:(nullable NSLayoutConstraint *)parentViewWidthConstraint adjustedHeightConstraint:(nullable NSLayoutConstraint *)parentViewHeightConstraint; +/* Sets content view to nil, resets frame to fit view, then assigns new view. */ +- (void)replaceContentView:(NSView *)withView; +@end + +@interface NSView (TXViewHelper) +/* Self top, right, bottom, left will = superview with 0.0 constant. */ +- (void)addConstraintsToSuperviewToHugEdges; + +/* Superview width and height will = self with 0.0 constant. */ +/* A priority of 550 is used to encourage hugging. */ +- (void)addConstraintsToSueprviewToEqualDimensions; + +/* Remove first subview (if one is present) and replaces it with subview. */ +/* The new superview width and height will equal that of subview with a + priority of 550. The subview top, right, bottom, and left will equal + that of the superview with 0.0 constant. */ +/* See -addConstraintsToSuperviewToHugEdges + -addConstraintsToSueprviewToEqualDimensions */ +- (void)replaceFirstSubview:(NSView *)withView; @end NS_ASSUME_NONNULL_END diff --git a/Sources/App/Classes/Headers/Private/IRCHighlightLogEntryPrivate.h b/Sources/App/Classes/Headers/Private/IRCHighlightLogEntryPrivate.h index 4bf7b9617..1db356974 100644 --- a/Sources/App/Classes/Headers/Private/IRCHighlightLogEntryPrivate.h +++ b/Sources/App/Classes/Headers/Private/IRCHighlightLogEntryPrivate.h @@ -45,7 +45,6 @@ NS_ASSUME_NONNULL_BEGIN @property (readonly, weak) IRCChannel *channel; @property (readonly, copy) NSString *channelName; @property (readonly, copy) NSString *timeLoggedFormatted; -@property (nonatomic, assign) CGFloat rowHeight; @end @interface IRCHighlightLogEntryMutable : IRCHighlightLogEntry diff --git a/Sources/App/Classes/Headers/Private/TDCBuddyListDialogDropViewPrivate.h b/Sources/App/Classes/Headers/Private/TDCBuddyListDialogDropViewPrivate.h deleted file mode 100644 index 5287ea134..000000000 --- a/Sources/App/Classes/Headers/Private/TDCBuddyListDialogDropViewPrivate.h +++ /dev/null @@ -1,45 +0,0 @@ -/* ********************************************************************* - * _____ _ _ - * |_ _|____ _| |_ _ _ __ _| | - * | |/ _ \ \/ / __| | | |/ _` | | - * | | __/> <| |_| |_| | (_| | | - * |_|\___/_/\_\\__|\__,_|\__,_|_| - * - * Copyright (c) 2010 - 2016 Codeux Software, LLC & respective contributors. - * Please see Acknowledgements.pdf for additional information. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Textual, "Codeux Software, LLC", nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - *********************************************************************** */ - -NS_ASSUME_NONNULL_BEGIN - -@interface TDCBuddyListDialogDropView : NSView -- (void)hideVisualDropView; -- (void)showVisualDropView; -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/App/Classes/Headers/Private/TDCBuddyListDialogEntryPrivate.h b/Sources/App/Classes/Headers/Private/TDCBuddyListDialogEntryPrivate.h deleted file mode 100644 index fb113d15e..000000000 --- a/Sources/App/Classes/Headers/Private/TDCBuddyListDialogEntryPrivate.h +++ /dev/null @@ -1,50 +0,0 @@ -/* ********************************************************************* - * _____ _ _ - * |_ _|____ _| |_ _ _ __ _| | - * | |/ _ \ \/ / __| | | |/ _` | | - * | | __/> <| |_| |_| | (_| | | - * |_|\___/_/\_\\__|\__,_|\__,_|_| - * - * Copyright (c) 2010 - 2016 Codeux Software, LLC & respective contributors. - * Please see Acknowledgements.pdf for additional information. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Textual, "Codeux Software, LLC", nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - *********************************************************************** */ - -#import "IRCAddressBookUserTracking.h" - -NS_ASSUME_NONNULL_BEGIN - -@class IRCClient; - -@interface TDCBuddyListDialogEntry : NSObject -@property (nonatomic, strong) IRCClient *client; -@property (nonatomic, copy) NSString *nickname; -@property (nonatomic, assign) IRCAddressBookUserTrackingStatus availability; -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/App/Classes/Headers/Private/TDCBuddyListDialogPrivate.h b/Sources/App/Classes/Headers/Private/TDCBuddyListDialogPrivate.h deleted file mode 100644 index 5c21d3737..000000000 --- a/Sources/App/Classes/Headers/Private/TDCBuddyListDialogPrivate.h +++ /dev/null @@ -1,59 +0,0 @@ -/* ********************************************************************* - * _____ _ _ - * |_ _|____ _| |_ _ _ __ _| | - * | |/ _ \ \/ / __| | | |/ _` | | - * | | __/> <| |_| |_| | (_| | | - * |_|\___/_/\_\\__|\__,_|\__,_|_| - * - * Copyright (c) 2010 - 2016 Codeux Software, LLC & respective contributors. - * Please see Acknowledgements.pdf for additional information. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Textual, "Codeux Software, LLC", nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - *********************************************************************** */ - -#import "TDCWindowBase.h" - -NS_ASSUME_NONNULL_BEGIN - -typedef NS_ENUM(NSUInteger, TDCBuddyListDialogNavigationSelection) { - TDCBuddyListDialogNavigationSelectionAll = 0, - TDCBuddyListDialogNavigationSelectionOnline = 1, - TDCBuddyListDialogNavigationSelectionOffline = 2 -}; - -@protocol TDCBuddyListDialogDelegate; - -@interface TDCBuddyListDialog : TDCWindowBase -@end - -@protocol TDCBuddyListDialogDelegate -@required - -- (void)buddyListDialogWillClose:(TDCBuddyListDialog *)sender; -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/App/Classes/Headers/Private/TDCBuddyListDialogTablePrivate.h b/Sources/App/Classes/Headers/Private/TDCBuddyListDialogTablePrivate.h deleted file mode 100644 index 0c23dbc3e..000000000 --- a/Sources/App/Classes/Headers/Private/TDCBuddyListDialogTablePrivate.h +++ /dev/null @@ -1,46 +0,0 @@ -/* ********************************************************************* - * _____ _ _ - * |_ _|____ _| |_ _ _ __ _| | - * | |/ _ \ \/ / __| | | |/ _` | | - * | | __/> <| |_| |_| | (_| | | - * |_|\___/_/\_\\__|\__,_|\__,_|_| - * - * Copyright (c) 2010 - 2016 Codeux Software, LLC & respective contributors. - * Please see Acknowledgements.pdf for additional information. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Textual, "Codeux Software, LLC", nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - *********************************************************************** */ - -NS_ASSUME_NONNULL_BEGIN - -@interface TDCBuddyListDialogCellView : NSTableCellView -@property (readonly) NSString *nickname; -@property (readonly) NSString *networkName; -@property (readonly) NSImage *availabilityImage; -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/App/Classes/Headers/Private/TDCChannelSpotlightAppearancePrivate.h b/Sources/App/Classes/Headers/Private/TDCChannelSpotlightAppearancePrivate.h index edcc2864d..8ef629195 100755 --- a/Sources/App/Classes/Headers/Private/TDCChannelSpotlightAppearancePrivate.h +++ b/Sources/App/Classes/Headers/Private/TDCChannelSpotlightAppearancePrivate.h @@ -56,8 +56,8 @@ NS_ASSUME_NONNULL_BEGIN @property (readonly, copy, nullable) NSColor *searchResultChannelNameTextColor; @property (readonly, copy, nullable) NSColor *searchResultChannelDescriptionTextColor; @property (readonly, copy, nullable) NSColor *searchResultKeyboardShortcutTextColor; -@property (readonly) CGFloat searchResultKeyboardShortcutDeselectedTopOffset; -@property (readonly) CGFloat searchResultKeyboardShortcutSelectedTopOffset; +@property (readonly) CGFloat searchResultKeyboardShortcutDeselectedOffset; +@property (readonly) CGFloat searchResultKeyboardShortcutSelectedOffset; @property (readonly, copy, nullable) NSColor *searchResultSelectedTextColor; @end diff --git a/Sources/App/Classes/Headers/Private/TVCAppearancePrivate.h b/Sources/App/Classes/Headers/Private/TVCAppearancePrivate.h index 40a001216..fce0402f8 100644 --- a/Sources/App/Classes/Headers/Private/TVCAppearancePrivate.h +++ b/Sources/App/Classes/Headers/Private/TVCAppearancePrivate.h @@ -41,8 +41,8 @@ NS_ASSUME_NONNULL_BEGIN @interface TVCAppearance () /* TVCListAppearance will take care of all the hard work such as - inheritance and retina. You only need to specify "MavericksDark" - for example, not "MavericksDarkRetina" */ + inheritance and retina. You only need to specify "MojaveDark" + for example, not "MojaveDarkRetina" */ - (nullable instancetype)initWithAppearanceNamed:(NSString *)appearanceName atURL:(NSURL *)appearanceLocation forRetinaDisplay:(BOOL)forRetinaDisplay NS_DESIGNATED_INITIALIZER; diff --git a/Sources/App/Classes/Headers/Private/TVCMainWindowSidebarSmoothTextFieldPrivate.h b/Sources/App/Classes/Headers/Private/TVCMainWindowSidebarSmoothTextFieldPrivate.h index e907850a4..3434ef024 100644 --- a/Sources/App/Classes/Headers/Private/TVCMainWindowSidebarSmoothTextFieldPrivate.h +++ b/Sources/App/Classes/Headers/Private/TVCMainWindowSidebarSmoothTextFieldPrivate.h @@ -37,13 +37,10 @@ NS_ASSUME_NONNULL_BEGIN -@interface TVCMainWindowSidebarMavericksSmoothTextField : NSTextField +@interface TVCMainWindowSidebarSmoothTextField : NSTextField @end -@interface TVCMainWindowSidebarYosemiteSmoothTextField : NSTextField -@end - -@interface TVCMainWindowSidebarYosemiteSmoothTextFieldCell : NSTextFieldCell +@interface TVCMainWindowSidebarSmoothTextFieldCell : NSTextFieldCell @end NS_ASSUME_NONNULL_END diff --git a/Sources/App/Classes/Headers/Private/TVCMemberListAppearancePrivate.h b/Sources/App/Classes/Headers/Private/TVCMemberListAppearancePrivate.h index 622c89771..a6cf5861d 100755 --- a/Sources/App/Classes/Headers/Private/TVCMemberListAppearancePrivate.h +++ b/Sources/App/Classes/Headers/Private/TVCMemberListAppearancePrivate.h @@ -45,7 +45,4 @@ NS_ASSUME_NONNULL_BEGIN - (nullable instancetype)initWithMemberList:(TVCMemberList *)MemberList inWindow:(TVCMainWindow *)mainWindow; @end -@interface TVCMemberListMavericksBackgroundBox : NSBox -@end - NS_ASSUME_NONNULL_END diff --git a/Sources/App/Classes/Headers/Private/TVCMemberListPrivate.h b/Sources/App/Classes/Headers/Private/TVCMemberListPrivate.h index 260377a42..b3a5309e4 100644 --- a/Sources/App/Classes/Headers/Private/TVCMemberListPrivate.h +++ b/Sources/App/Classes/Headers/Private/TVCMemberListPrivate.h @@ -40,7 +40,6 @@ NS_ASSUME_NONNULL_BEGIN -@class TVCMemberListMavericksBackgroundBox; @class TVCMemberListUserInfoPopover; @interface TVCMemberList () @@ -48,7 +47,6 @@ NS_ASSUME_NONNULL_BEGIN - (TVCMemberListAppearance *)userInterfaceObjects; - (nullable NSVisualEffectView *)visualEffectView; -- (nullable TVCMemberListMavericksBackgroundBox *)backgroundView; - (TVCMemberListUserInfoPopover *)memberListUserInfoPopover; - (void)addItemToList:(NSUInteger)rowIndex; diff --git a/Sources/App/Classes/Headers/Private/TVCServerListAppearancePrivate.h b/Sources/App/Classes/Headers/Private/TVCServerListAppearancePrivate.h index 8e04aedb4..b9afee109 100755 --- a/Sources/App/Classes/Headers/Private/TVCServerListAppearancePrivate.h +++ b/Sources/App/Classes/Headers/Private/TVCServerListAppearancePrivate.h @@ -43,12 +43,6 @@ NS_ASSUME_NONNULL_BEGIN @interface TVCServerListAppearance () - (nullable instancetype)initWithServerList:(TVCServerList *)serverList inWindow:(TVCMainWindow *)mainWindow; - -- (void)setOutlineViewDefaultDisclosureTriangle:(NSImage *)image; -- (void)setOutlineViewAlternateDisclosureTriangle:(NSImage *)image; -@end - -@interface TVCServerListMavericksBackgroundBox : NSBox @end NS_ASSUME_NONNULL_END diff --git a/Sources/App/Classes/Headers/Private/TVCServerListCellPrivate.h b/Sources/App/Classes/Headers/Private/TVCServerListCellPrivate.h index d8dbddb32..04bd44282 100755 --- a/Sources/App/Classes/Headers/Private/TVCServerListCellPrivate.h +++ b/Sources/App/Classes/Headers/Private/TVCServerListCellPrivate.h @@ -51,8 +51,6 @@ NS_ASSUME_NONNULL_BEGIN @interface TVCServerListCell : NSTableCellView - (void)populateMessageCountBadge; - -- (void)updateGroupDisclosureTriangle; @end @interface TVCServerListCellChildItem : TVCServerListCell diff --git a/Sources/App/Classes/Headers/Private/TVCServerListPrivate.h b/Sources/App/Classes/Headers/Private/TVCServerListPrivate.h index a0bb4d826..d0cd502e7 100644 --- a/Sources/App/Classes/Headers/Private/TVCServerListPrivate.h +++ b/Sources/App/Classes/Headers/Private/TVCServerListPrivate.h @@ -40,8 +40,6 @@ NS_ASSUME_NONNULL_BEGIN -@class TVCServerListMavericksBackgroundBox; - @interface TVCServerList () @property (nonatomic, weak) id keyDelegate; @property (nonatomic, copy, nullable) NSImage *outlineViewDefaultDisclosureTriangle; @@ -49,7 +47,6 @@ NS_ASSUME_NONNULL_BEGIN - (TVCServerListAppearance *)userInterfaceObjects; - (nullable NSVisualEffectView *)visualEffectView; -- (nullable TVCServerListMavericksBackgroundBox *)backgroundView; - (BOOL)leftMouseIsDownInView; diff --git a/Sources/App/Classes/Headers/TVCMemberListAppearance.h b/Sources/App/Classes/Headers/TVCMemberListAppearance.h index 8bf3ea7b3..9c70746a1 100755 --- a/Sources/App/Classes/Headers/TVCMemberListAppearance.h +++ b/Sources/App/Classes/Headers/TVCMemberListAppearance.h @@ -45,8 +45,6 @@ NS_ASSUME_NONNULL_BEGIN @property (readonly) CGFloat minimumWidth; @property (readonly) CGFloat maximumWidth; -@property (readonly, copy, nullable) NSColor *backgroundColorActiveWindow; -@property (readonly, copy, nullable) NSColor *backgroundColorInactiveWindow; @property (readonly, copy, nullable) NSColor *rowSelectionColorActiveWindow; @property (readonly, copy, nullable) NSColor *rowSelectionColorInactiveWindow; @@ -54,24 +52,14 @@ NS_ASSUME_NONNULL_BEGIN #pragma mark Member Cell @property (readonly) BOOL cellRowEmphasized; -@property (readonly) CGFloat cellRowHeight; -@property (readonly, copy, nullable) NSImage *cellSelectionImageActiveWindow; -@property (readonly, copy, nullable) NSImage *cellSelectionImageInactiveWindow; @property (readonly, copy, nullable) NSColor *cellTextColorActiveWindow; @property (readonly, copy, nullable) NSColor *cellTextColorInactiveWindow; -@property (readonly, copy, nullable) NSColor *cellTextShadowColorActiveWindow; -@property (readonly, copy, nullable) NSColor *cellTextShadowColorInactiveWindow; @property (readonly, copy, nullable) NSColor *cellAwayTextColorActiveWindow; @property (readonly, copy, nullable) NSColor *cellAwayTextColorInactiveWindow; -@property (readonly, copy, nullable) NSColor *cellAwayTextShadowColorActiveWindow; -@property (readonly, copy, nullable) NSColor *cellAwayTextShadowColorInactiveWindow; @property (readonly, copy, nullable) NSColor *cellSelectedTextColorActiveWindow; @property (readonly, copy, nullable) NSColor *cellSelectedTextColorInactiveWindow; -@property (readonly, copy, nullable) NSColor *cellSelectedTextShadowColorActiveWindow; -@property (readonly, copy, nullable) NSColor *cellSelectedTextShadowColorInactiveWindow; @property (readonly, copy, nullable) NSFont *cellFont; @property (readonly, copy, nullable) NSFont *cellFontSelected; -@property (readonly) CGFloat cellTopOffset; #pragma mark - #pragma mark Mark Badge @@ -84,13 +72,8 @@ NS_ASSUME_NONNULL_BEGIN @property (readonly, copy, nullable) NSColor *markBadgeTextColorInactiveWindow; @property (readonly, copy, nullable) NSColor *markBadgeSelectedTextColorActiveWindow; @property (readonly, copy, nullable) NSColor *markBadgeSelectedTextColorInactiveWindow; -@property (readonly, copy, nullable) NSColor *markBadgeShadowColorActiveWindow; -@property (readonly, copy, nullable) NSColor *markBadgeShadowColorInactiveWindow; @property (readonly, copy, nullable) NSFont *markBadgeFont; @property (readonly, copy, nullable) NSFont *markBadgeFontSelected; -@property (readonly) CGFloat markBadgeWidth; -@property (readonly) CGFloat markBadgeHeight; -@property (readonly) CGFloat markBadgeTopOffset; #pragma mark - #pragma mark Mark Badge Modes diff --git a/Sources/App/Classes/Headers/TVCServerListAppearance.h b/Sources/App/Classes/Headers/TVCServerListAppearance.h index 593007b4e..0469c5d40 100755 --- a/Sources/App/Classes/Headers/TVCServerListAppearance.h +++ b/Sources/App/Classes/Headers/TVCServerListAppearance.h @@ -44,8 +44,6 @@ NS_ASSUME_NONNULL_BEGIN @property (readonly) CGFloat minimumWidth; @property (readonly) CGFloat maximumWidth; -@property (readonly, copy, nullable) NSColor *backgroundColorActiveWindow; -@property (readonly, copy, nullable) NSColor *backgroundColorInactiveWindow; @property (readonly, copy, nullable) NSColor *rowSelectionColorActiveWindow; @property (readonly, copy, nullable) NSColor *rowSelectionColorInactiveWindow; @@ -53,51 +51,31 @@ NS_ASSUME_NONNULL_BEGIN #pragma mark Server Cell @property (readonly) BOOL serverRowEmphasized; -@property (readonly) CGFloat serverRowHeight; -@property (readonly, copy, nullable) NSImage *serverSelectionImageActiveWindow; -@property (readonly, copy, nullable) NSImage *serverSelectionImageInactiveWindow; @property (readonly, copy, nullable) NSColor *serverTextColorActiveWindow; @property (readonly, copy, nullable) NSColor *serverTextColorInactiveWindow; -@property (readonly, copy, nullable) NSColor *serverTextShadowColorActiveWindow; -@property (readonly, copy, nullable) NSColor *serverTextShadowColorInactiveWindow; @property (readonly, copy, nullable) NSColor *serverDisabledTextColorActiveWindow; @property (readonly, copy, nullable) NSColor *serverDisabledTextColorInactiveWindow; -@property (readonly, copy, nullable) NSColor *serverDisabledTextShadowColorActiveWindow; -@property (readonly, copy, nullable) NSColor *serverDisabledTextShadowColorInactiveWindow; @property (readonly, copy, nullable) NSColor *serverSelectedTextColorActiveWindow; @property (readonly, copy, nullable) NSColor *serverSelectedTextColorInactiveWindow; -@property (readonly, copy, nullable) NSColor *serverSelectedTextShadowColorActiveWindow; -@property (readonly, copy, nullable) NSColor *serverSelectedTextShadowColorInactiveWindow; @property (readonly, copy, nullable) NSFont *serverFont; @property (readonly, copy, nullable) NSFont *serverFontSelected; -@property (readonly) CGFloat serverTopOffset; #pragma mark - #pragma mark Channel Cell @property (readonly) BOOL channelRowEmphasized; -@property (readonly) CGFloat channelRowHeight; -@property (readonly, copy, nullable) NSImage *channelSelectionImageActiveWindow; -@property (readonly, copy, nullable) NSImage *channelSelectionImageInactiveWindow; @property (readonly, copy, nullable) NSColor *channelTextColorActiveWindow; @property (readonly, copy, nullable) NSColor *channelTextColorInactiveWindow; -@property (readonly, copy, nullable) NSColor *channelTextShadowColorActiveWindow; -@property (readonly, copy, nullable) NSColor *channelTextShadowColorInactiveWindow; @property (readonly, copy, nullable) NSColor *channelDisabledTextColorActiveWindow; @property (readonly, copy, nullable) NSColor *channelDisabledTextColorInactiveWindow; -@property (readonly, copy, nullable) NSColor *channelDisabledTextShadowColorActiveWindow; -@property (readonly, copy, nullable) NSColor *channelDisabledTextShadowColorInactiveWindow; @property (readonly, copy, nullable) NSColor *channelSelectedTextColorActiveWindow; @property (readonly, copy, nullable) NSColor *channelSelectedTextColorInactiveWindow; -@property (readonly, copy, nullable) NSColor *channelSelectedTextShadowColorActiveWindow; -@property (readonly, copy, nullable) NSColor *channelSelectedTextShadowColorInactiveWindow; @property (readonly, copy, nullable) NSColor *channelErroneousTextColorActiveWindow; @property (readonly, copy, nullable) NSColor *channelErroneousTextColorInactiveWindow; @property (readonly, copy, nullable) NSColor *channelHighlightTextColorActiveWindow; @property (readonly, copy, nullable) NSColor *channelHighlightTextColorInactiveWindow; @property (readonly, copy, nullable) NSFont *channelFont; @property (readonly, copy, nullable) NSFont *channelFontSelected; -@property (readonly) CGFloat channelTopOffset; #pragma mark - #pragma mark Message Count Badge @@ -115,22 +93,15 @@ NS_ASSUME_NONNULL_BEGIN @property (readonly, copy, nullable) NSColor *unreadBadgeSelectedTextColorInactiveWindow; @property (readonly, copy, nullable) NSColor *unreadBadgeHighlightTextColorActiveWindow; @property (readonly, copy, nullable) NSColor *unreadBadgeHighlightTextColorInactiveWindow; -@property (readonly, copy, nullable) NSColor *unreadBadgeShadowColorActiveWindow; -@property (readonly, copy, nullable) NSColor *unreadBadgeShadowColorInactiveWindow; @property (readonly, copy, nullable) NSFont *unreadBadgeFont; @property (readonly, copy, nullable) NSFont *unreadBadgeFontSelected; @property (readonly) CGFloat unreadBadgeMinimumWidth; @property (readonly) CGFloat unreadBadgeHeight; @property (readonly) CGFloat unreadBadgePadding; -@property (readonly) CGFloat unreadBadgeTextCenterYOffset; -@property (readonly) CGFloat unreadBadgeTopOffset; -@property (readonly) CGFloat unreadBadgeRightMargin; #pragma mark - #pragma mark Accessors -- (nullable NSImage *)disclosureTriangleInContext:(BOOL)up selected:(BOOL)selected; - - (nullable NSString *)statusIconForActiveChannel:(BOOL)isActive selected:(BOOL)isSelected activeWindow:(BOOL)isActiveWindow diff --git a/Sources/App/Classes/Headers/TXAppearance.h b/Sources/App/Classes/Headers/TXAppearance.h index 8be31113d..118186b79 100644 --- a/Sources/App/Classes/Headers/TXAppearance.h +++ b/Sources/App/Classes/Headers/TXAppearance.h @@ -39,10 +39,6 @@ NS_ASSUME_NONNULL_BEGIN typedef NS_ENUM(NSUInteger, TXAppearanceType) { - TXAppearanceTypeMavericksAquaLight, - TXAppearanceTypeMavericksAquaDark, - TXAppearanceTypeMavericksGraphiteLight, - TXAppearanceTypeMavericksGraphiteDark, TXAppearanceTypeYosemiteLight, TXAppearanceTypeYosemiteDark, TXAppearanceTypeMojaveLight, @@ -73,7 +69,6 @@ typedef NS_ENUM(NSUInteger, TXAppKitAppearanceTarget) @property (readonly, copy) NSString *shortAppearanceDescription; // e.g. "light", "dark" @property (readonly) BOOL isDarkAppearance; -@property (readonly) BOOL isModernAppearance; // Anything newer or equal to OS X Yosemite @property (readonly) TXAppKitAppearanceTarget appKitAppearanceTarget; @property (readonly, nullable) NSAppearance *appKitAppearance; // nil when -appKitAppearanceTarget = none diff --git a/Sources/App/Classes/Headers/TXMenuController.h b/Sources/App/Classes/Headers/TXMenuController.h index fda984a2a..e77a56037 100755 --- a/Sources/App/Classes/Headers/TXMenuController.h +++ b/Sources/App/Classes/Headers/TXMenuController.h @@ -209,9 +209,8 @@ enum MTMMWindowViewLogs = 815, // "View Logs" MTMMWindowHighlightList = 816, // "Highlight List" MTMMWindowFileTransfers = 817, // "File Transfers" - MTMMWindowBuddyList = 818, // "Buddy List" - MTMMWindowBuddyListSeparator = 819, // "-" - MTMMWindowBrightAllToFront = 820, // "Bring All to Front" + MTMMWindowFileTransfersSeparator = 818, // "-" + MTMMWindowBrightAllToFront = 819, // "Bring All to Front" /* Main menu - Help menu */ MTMMHelpAcknowledgements = 900, // "Acknowledgements" @@ -461,7 +460,6 @@ enum - (IBAction)showAboutWindow:(id)sender; - (IBAction)showAddressBook:(id)sender; -- (IBAction)showBuddyListWindow:(id)sender; - (IBAction)showChannelBanExceptionList:(id)sender; - (IBAction)showChannelBanList:(id)sender; - (IBAction)showChannelInviteExceptionList:(id)sender; diff --git a/Sources/App/Classes/Helpers/Cocoa (Objective-C)/NSColorHelper.m b/Sources/App/Classes/Helpers/Cocoa (Objective-C)/NSColorHelper.m index 035916adf..5fcc51e2a 100755 --- a/Sources/App/Classes/Helpers/Cocoa (Objective-C)/NSColorHelper.m +++ b/Sources/App/Classes/Helpers/Cocoa (Objective-C)/NSColorHelper.m @@ -241,15 +241,6 @@ NS_ASSUME_NONNULL_BEGIN #pragma mark - #pragma mark Other Colors -+ (NSColor *)labelColorBackwardsCompat -{ - if (TEXTUAL_RUNNING_ON_YOSEMITE) { - return [NSColor labelColor]; - } else { - return [NSColor controlTextColor]; - } -} - + (NSColor *)outlineViewHeaderTextColor { return [self colorWithCalibratedRed:0.439216 green:0.494118 blue:0.54902 alpha:1.0]; diff --git a/Sources/App/Classes/Helpers/Cocoa (Objective-C)/NSViewHelper.m b/Sources/App/Classes/Helpers/Cocoa (Objective-C)/NSViewHelper.m index d03bd41cf..a08b2aa24 100644 --- a/Sources/App/Classes/Helpers/Cocoa (Objective-C)/NSViewHelper.m +++ b/Sources/App/Classes/Helpers/Cocoa (Objective-C)/NSViewHelper.m @@ -39,6 +39,55 @@ NS_ASSUME_NONNULL_BEGIN +@implementation NSWindow (TXWindowHelper) + +- (void)changeFrameToMin +{ + [self changeFrameToMinAndDisplay:YES animate:NO]; +} + +- (void)changeFrameToMinAndDisplay:(BOOL)display +{ + [self changeFrameToMinAndDisplay:display animate:NO]; +} + +- (void)changeFrameToMinAndDisplay:(BOOL)display animate:(BOOL)animate +{ + NSSize minSize = self.contentMinSize; + + [self changeFrameTo:minSize display:display animate:NO]; +} + +- (void)changeFrameTo:(NSSize)minSize display:(BOOL)display animate:(BOOL)animate +{ + NSRect oldFrame = self.frame; + NSRect newFrame = oldFrame; + + NSRect contentRect = [self contentRectForFrameRect:newFrame]; + + float bezelHeight = (newFrame.size.height - contentRect.size.height); + + newFrame.size.width = minSize.width; + newFrame.size.height = (bezelHeight + minSize.height); + + newFrame.origin.y = (NSMaxY(oldFrame) - newFrame.size.height); + + [self setFrame:newFrame display:display animate:animate]; +} + +- (void)replaceContentView:(NSView *)withView +{ + self.contentView = nil; + + [self changeFrameTo:withView.frame.size display:NO animate:NO]; + + self.contentView = withView; +} + +@end + +#pragma mark - + @implementation NSView (TXViewHelperPrivate) - (nullable TVCMainWindow *)mainWindow @@ -58,94 +107,82 @@ NS_ASSUME_NONNULL_BEGIN @implementation NSView (TXViewHelper) -- (NSArray *)constraintsForHuggingEdges +- (void)addConstraintsToSuperviewToHugEdges { + NSView *superview = self.superview; + + NSArray *constraints = @[ + [NSLayoutConstraint constraintWithItem:self + attribute:NSLayoutAttributeLeft + relatedBy:NSLayoutRelationEqual + toItem:superview + attribute:NSLayoutAttributeLeft + multiplier:1.0 + constant:0.0], + + [NSLayoutConstraint constraintWithItem:self + attribute:NSLayoutAttributeRight + relatedBy:NSLayoutRelationEqual + toItem:superview + attribute:NSLayoutAttributeRight + multiplier:1.0 + constant:0.0], + + [NSLayoutConstraint constraintWithItem:self + attribute:NSLayoutAttributeTop + relatedBy:NSLayoutRelationEqual + toItem:superview + attribute:NSLayoutAttributeTop + multiplier:1.0 + constant:0.0], + + [NSLayoutConstraint constraintWithItem:self + attribute:NSLayoutAttributeBottom + relatedBy:NSLayoutRelationEqual + toItem:superview + attribute:NSLayoutAttributeBottom + multiplier:1.0 + constant:0.0] + ]; + + [superview addConstraints:constraints]; +} + +- (void)addConstraintsToSueprviewToEqualDimensions +{ + NSView *superview = self.superview; + NSMutableArray *constraints = [NSMutableArray array]; [constraints addObjectsFromArray: - [NSLayoutConstraint constraintsWithVisualFormat:@"H:|-0-[self]-0-|" + [NSLayoutConstraint constraintsWithVisualFormat:@"H:|-0-[self(0@550)]-0-|" options:NSLayoutFormatDirectionLeadingToTrailing metrics:nil views:NSDictionaryOfVariableBindings(self)]]; [constraints addObjectsFromArray: - [NSLayoutConstraint constraintsWithVisualFormat:@"V:|-0-[self]-0-|" + [NSLayoutConstraint constraintsWithVisualFormat:@"V:|-0-[self(0@550)]-0-|" options:NSLayoutFormatDirectionLeadingToTrailing metrics:nil views:NSDictionaryOfVariableBindings(self)]]; - return [constraints copy]; + [superview addConstraints:constraints]; } -- (void)attachSubviewToHugEdges:(NSView *)subview +- (void)replaceFirstSubview:(NSView *)withSubview { - NSParameterAssert(subview != nil); + NSParameterAssert(withSubview != nil); /* Remove any views that may already be in place. */ - NSArray *contentSubviews = self.subviews; + [self.subviews.firstObject removeFromSuperviewWithoutNeedingDisplay]; - if (contentSubviews.count > 0) { - [contentSubviews[0] removeFromSuperview]; - } + /* Add subview. */ + [self addSubview:withSubview]; - [self addSubview:subview]; + /* Apply constraints. */ + [withSubview addConstraintsToSuperviewToHugEdges]; - /* Add new constraints. */ - [self addConstraints:subview.constraintsForHuggingEdges]; -} - -- (void)attachSubview:(NSView *)subview adjustedWidthConstraint:(nullable NSLayoutConstraint *)parentViewWidthConstraint adjustedHeightConstraint:(nullable NSLayoutConstraint *)parentViewHeightConstraint -{ - NSParameterAssert(subview != nil); - - /* Remove any views that may already be in place. */ - NSArray *contentSubviews = self.subviews; - - if (contentSubviews.count > 0) { - [contentSubviews[0] removeFromSuperview]; - } - - [self addSubview:subview]; - - /* Adjust constraints of parent view to maintain the same size - of the subview that is being added. */ - NSRect subviewFrame = subview.bounds; - - CGFloat subviewFrameWidth = NSWidth(subviewFrame); - CGFloat subviewFrameHeight = NSHeight(subviewFrame); - - if ( parentViewWidthConstraint) { - parentViewWidthConstraint.constant = subviewFrameWidth; - } - - if ( parentViewHeightConstraint) { - parentViewHeightConstraint.constant = subviewFrameHeight; - } - - /* Add new constraints. */ - NSMutableArray *constraints = [NSMutableArray array]; - - [constraints addObject: - [NSLayoutConstraint constraintWithItem:subview - attribute:NSLayoutAttributeWidth - relatedBy:NSLayoutRelationEqual - toItem:nil - attribute:NSLayoutAttributeNotAnAttribute - multiplier:1.0 - constant:subviewFrameWidth] - ]; - - [constraints addObject: - [NSLayoutConstraint constraintWithItem:subview - attribute:NSLayoutAttributeHeight - relatedBy:NSLayoutRelationEqual - toItem:nil - attribute:NSLayoutAttributeNotAnAttribute - multiplier:1.0 - constant:subviewFrameHeight] - ]; - - [subview addConstraints:constraints]; + [withSubview addConstraintsToSueprviewToEqualDimensions]; } @end diff --git a/Sources/App/Classes/IRC/IRCChannel.m b/Sources/App/Classes/IRC/IRCChannel.m index e3930cd6c..6d4024a43 100644 --- a/Sources/App/Classes/IRC/IRCChannel.m +++ b/Sources/App/Classes/IRC/IRCChannel.m @@ -1252,9 +1252,7 @@ DESIGNATED_INITIALIZER_EXCEPTION_BODY_END - (nullable NSView *)outlineView:(NSOutlineView *)outlineView viewForTableColumn:(nullable NSTableColumn *)tableColumn item:(id)item { - NSString *viewIdentifier = ((TEXTUAL_RUNNING_ON_MOJAVE) ? @"GroupViewMojave" : @"GroupView"); - - NSView *newView = [outlineView makeViewWithIdentifier:viewIdentifier owner:self]; + NSView *newView = [outlineView makeViewWithIdentifier:@"GroupView" owner:self]; return newView; } diff --git a/Sources/App/Classes/IRC/IRCClient.m b/Sources/App/Classes/IRC/IRCClient.m index 745ae660f..f9fcd002d 100644 --- a/Sources/App/Classes/IRC/IRCClient.m +++ b/Sources/App/Classes/IRC/IRCClient.m @@ -1364,19 +1364,7 @@ DESIGNATED_INITIALIZER_EXCEPTION_BODY_END - (NSString *)label { - __block BOOL usesUppercaseLabel = NO; - - static dispatch_once_t onceToken; - - dispatch_once(&onceToken, ^{ - usesUppercaseLabel = (TEXTUAL_RUNNING_ON_YOSEMITE == NO); - }); - - if (usesUppercaseLabel) { - return self.config.connectionName.uppercaseString; - } else { - return self.config.connectionName; - } + return self.config.connectionName; } #pragma mark - diff --git a/Sources/App/Classes/IRC/IRCWorld.m b/Sources/App/Classes/IRC/IRCWorld.m index 264564229..558fc6bc1 100644 --- a/Sources/App/Classes/IRC/IRCWorld.m +++ b/Sources/App/Classes/IRC/IRCWorld.m @@ -352,7 +352,7 @@ NSString * const IRCWorldWillDestroyChannelNotification = @"IRCWorldWillDestroyC { /* Ask for the day, month, and year from the current calender. */ /* We are not asking for time which means that it will default to zero. */ - NSDateComponents *currentDayComponents = [RZCurrentCalender() components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit) fromDate:[NSDate date]]; + NSDateComponents *currentDayComponents = [RZCurrentCalender() components:(NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay) fromDate:[NSDate date]]; NSDate *lastMidnight = [RZCurrentCalender() dateFromComponents:currentDayComponents]; diff --git a/Sources/App/Classes/Library/License Manager/Standalone/TLOLicenseManagerDownloader.m b/Sources/App/Classes/Library/License Manager/Standalone/TLOLicenseManagerDownloader.m index b871d0417..f297ba77c 100644 --- a/Sources/App/Classes/Library/License Manager/Standalone/TLOLicenseManagerDownloader.m +++ b/Sources/App/Classes/Library/License Manager/Standalone/TLOLicenseManagerDownloader.m @@ -64,25 +64,21 @@ NSUInteger const TLOLicenseManagerDownloaderRequestStatusCodeGenericError = 2000 NSUInteger const TLOLicenseManagerDownloaderRequestStatusCodeTryAgainLater = 2000001; /* Private header */ +typedef void (^TLOLicenseManagerDownloaderConnectionCompletionBlock)(TLOLicenseManagerDownloaderRequestType requestType, NSURLResponse * _Nullable response, NSData * _Nullable data); + @interface TLOLicenseManagerDownloaderConnection : NSObject @property (nonatomic, weak) TLOLicenseManagerDownloader *delegate; // To be set by caller @property (nonatomic, assign) TLOLicenseManagerDownloaderRequestType requestType; // To be set by caller @property (nonatomic, copy) NSDictionary *requestContextInfo; // Information set by caller such as license key or e-mail address -@property (nonatomic, strong) NSURLConnection *requestConnection; // Will be set by the object, readonly -@property (nonatomic, strong) NSHTTPURLResponse *requestResponse; // Will be set by the object, readonly -@property (nonatomic, strong) NSMutableData *requestResponseData; // Will be set by the object, readonly +@property (nonatomic, strong) NSURLSessionTask *sessionTask; -- (BOOL)setupConnectionRequest; +- (void)performRequest:(TLOLicenseManagerDownloaderConnectionCompletionBlock)completionBlock; - (void)cancelRequest; @end @interface TLOLicenseManagerDownloader () @property (nonatomic, strong, nullable) TLOLicenseManagerDownloaderConnection *activeConnection; - -- (void)processResponseForRequestType:(TLOLicenseManagerDownloaderRequestType)requestType - httpStatusCode:(NSUInteger)requestHttpStatusCode - contents:(nullable NSData *)requestContents; @end #define _connectionTimeoutInterval 30.0 @@ -98,8 +94,8 @@ NSUInteger const TLOLicenseManagerDownloaderRequestStatusCodeTryAgainLater = 200 NSDictionary *contextInfo = @{@"licenseKey" : licenseKey}; - [self setupNewActionWithRequestType:TLOLicenseManagerDownloaderRequestTypeActivation - context:contextInfo]; + [self performRequestType:TLOLicenseManagerDownloaderRequestTypeActivation + context:contextInfo]; } - (void)deactivateLicense @@ -117,8 +113,8 @@ NSUInteger const TLOLicenseManagerDownloaderRequestStatusCodeTryAgainLater = 200 NSDictionary *contextInfo = @{@"licenseKey" : licenseKey}; - [self setupNewActionWithRequestType:TLOLicenseManagerDownloaderRequestTypeLicenseUpgradeEligibility - context:contextInfo]; + [self performRequestType:TLOLicenseManagerDownloaderRequestTypeLicenseUpgradeEligibility + context:contextInfo]; } - (void)checkUpgradeEligibilityOfReceipt:(NSString *)receiptData @@ -134,8 +130,8 @@ NSUInteger const TLOLicenseManagerDownloaderRequestStatusCodeTryAgainLater = 200 @"licenseOwnerMacAddress" : macAddress }; - [self setupNewActionWithRequestType:TLOLicenseManagerDownloaderRequestTypeReceiptUpgradeEligibility - context:contextInfo]; + [self performRequestType:TLOLicenseManagerDownloaderRequestTypeReceiptUpgradeEligibility + context:contextInfo]; } - (void)requestLostLicenseKeyForContactAddress:(NSString *)contactAddress @@ -144,8 +140,8 @@ NSUInteger const TLOLicenseManagerDownloaderRequestStatusCodeTryAgainLater = 200 NSDictionary *contextInfo = @{@"licenseOwnerContactAddress" : contactAddress}; - [self setupNewActionWithRequestType:TLOLicenseManagerDownloaderRequestTypeSendLostLicense - context:contextInfo]; + [self performRequestType:TLOLicenseManagerDownloaderRequestTypeSendLostLicense + context:contextInfo]; } - (void)migrateMacAppStorePurchase:(NSString *)receiptData licenseOwnerName:(NSString *)licenseOwnerName licenseOwnerContactAddress:(NSString *)licenseOwnerContactAddress @@ -165,15 +161,15 @@ NSUInteger const TLOLicenseManagerDownloaderRequestStatusCodeTryAgainLater = 200 @"licenseOwnerMacAddress" : macAddress }; - [self setupNewActionWithRequestType:TLOLicenseManagerDownloaderRequestTypeMigrateAppStore - context:contextInfo]; + [self performRequestType:TLOLicenseManagerDownloaderRequestTypeMigrateAppStore + context:contextInfo]; } -- (void)setupNewActionWithRequestType:(TLOLicenseManagerDownloaderRequestType)requestType context:(NSDictionary *)requestContext +- (void)performRequestType:(TLOLicenseManagerDownloaderRequestType)requestType context:(NSDictionary *)requestContext { NSParameterAssert(requestContext != nil); - if (self.activeConnection != nil) { + if ( self.activeConnection != nil) { [self.activeConnection cancelRequest]; } @@ -185,9 +181,20 @@ NSUInteger const TLOLicenseManagerDownloaderRequestStatusCodeTryAgainLater = 200 connectionObject.requestType = requestType; - self.activeConnection = connectionObject; + __weak TLOLicenseManagerDownloader *weakSelf = self; - [connectionObject setupConnectionRequest]; + [connectionObject performRequest:^(TLOLicenseManagerDownloaderRequestType requestType, NSURLResponse *response, NSData *data) { + /* Connection uses NSURLSession which is a background task. */ + /* The result of processing the response will update the UI + which must always take place on the main thread. */ + XRPerformBlockAsynchronouslyOnMainQueue(^{ + [weakSelf processResponse:response forRequestType:requestType contents:data]; + }); + + weakSelf.activeConnection = nil; + }]; + + self.activeConnection = connectionObject; } - (void)cancelRequest @@ -205,43 +212,49 @@ NSUInteger const TLOLicenseManagerDownloaderRequestStatusCodeTryAgainLater = 200 self.completionBlock = nil; } -- (void)processResponseForRequestType:(TLOLicenseManagerDownloaderRequestType)requestType httpStatusCode:(NSUInteger)requestHttpStatusCode contents:(nullable NSData *)requestContents +- (void)processResponse:(nullable NSURLResponse *)response forRequestType:(TLOLicenseManagerDownloaderRequestType)requestType contents:(nullable NSData *)responseContents +{ + /* We assume the response failed until proven otherwise. */ + NSUInteger responseStatusCode = TLOLicenseManagerDownloaderRequestHTTPStatusTryAgainLater; + + if ([response isKindOfClass:[NSHTTPURLResponse class]]) { + responseStatusCode = ((NSHTTPURLResponse *)response).statusCode; + } + + [self processResponseForRequestType:requestType + httpStatusCode:responseStatusCode + contents:responseContents]; +} + +- (void)processResponseForRequestType:(TLOLicenseManagerDownloaderRequestType)requestType httpStatusCode:(NSUInteger)responseStatusCode contents:(nullable NSData *)responseContents { /* The license API returns content as property lists, including errors. This method will try to convert the returned contents into an NSDictionary (assuming its a valid property list). If that fails, then the method shows generic failure reason and logs to the console that the contents could not parsed. */ - XRPerformBlockAsynchronouslyOnMainQueue(^{ - self.activeConnection = nil; - }); - -#define _performCompletionBlockAndReturn(operationResult) \ - if (self.completionBlock) { \ - self.completionBlock((operationResult), (statusCode), (statusContext)); \ - } \ - \ - return; /* Define defaults */ id propertyList = nil; - NSUInteger statusCode = 0; + BOOL errorBlockPerformed = NO; - id statusContext = nil; + NSUInteger apiStatusCode = 0; - if (requestHttpStatusCode == TLOLicenseManagerDownloaderRequestHTTPStatusTryAgainLater) { - statusCode = TLOLicenseManagerDownloaderRequestStatusCodeTryAgainLater; + id apiStatusContext = nil; + + if (responseStatusCode == TLOLicenseManagerDownloaderRequestHTTPStatusTryAgainLater) { + apiStatusCode = TLOLicenseManagerDownloaderRequestStatusCodeTryAgainLater; goto present_fatal_error; } else { - statusCode = TLOLicenseManagerDownloaderRequestStatusCodeGenericError; + apiStatusCode = TLOLicenseManagerDownloaderRequestStatusCodeGenericError; } /* Attempt to convert contents into a property list dictionary */ - if (requestContents) { + if (responseContents) { NSError *propertyListReadError = nil; - propertyList = [NSPropertyListSerialization propertyListWithData:requestContents + propertyList = [NSPropertyListSerialization propertyListWithData:responseContents options:NSPropertyListImmutable format:NULL error:&propertyListReadError]; @@ -263,22 +276,22 @@ NSUInteger const TLOLicenseManagerDownloaderRequestStatusCodeTryAgainLater = 200 goto present_fatal_error; } - statusCode = [l_statusCode unsignedIntegerValue]; + apiStatusCode = [l_statusCode unsignedIntegerValue]; - statusContext = propertyList[@"Status Context"]; + apiStatusContext = propertyList[@"Status Context"]; - if (requestHttpStatusCode == TLOLicenseManagerDownloaderRequestHTTPStatusSuccess) + if (responseStatusCode == TLOLicenseManagerDownloaderRequestHTTPStatusSuccess) { /* Process successful results */ - if (requestType == TLOLicenseManagerDownloaderRequestTypeActivation && statusCode == TLOLicenseManagerDownloaderRequestStatusCodeSuccess) + if (requestType == TLOLicenseManagerDownloaderRequestTypeActivation && apiStatusCode == TLOLicenseManagerDownloaderRequestStatusCodeSuccess) { - if (statusContext == nil || [statusContext isKindOfClass:[NSData class]] == NO) { + if (apiStatusContext == nil || [apiStatusContext isKindOfClass:[NSData class]] == NO) { LogToConsoleError("'Status Context' is nil or not of kind 'NSData'"); goto present_fatal_error; } - if (self.actionBlock != nil && self.actionBlock(statusCode, statusContext) == NO) { + if (self.actionBlock != nil && self.actionBlock(apiStatusCode, apiStatusContext) == NO) { LogToConsoleError("Failed to write user license file contents"); goto present_fatal_error; @@ -291,21 +304,21 @@ NSUInteger const TLOLicenseManagerDownloaderRequestStatusCodeTryAgainLater = 200 alternateButton:nil]; } } - else if (requestType == TLOLicenseManagerDownloaderRequestTypeSendLostLicense && statusCode == TLOLicenseManagerDownloaderRequestStatusCodeSuccess) + else if (requestType == TLOLicenseManagerDownloaderRequestTypeSendLostLicense && apiStatusCode == TLOLicenseManagerDownloaderRequestStatusCodeSuccess) { - if (statusContext == nil || [statusContext isKindOfClass:[NSDictionary class]] == NO) { + if (apiStatusContext == nil || [apiStatusContext isKindOfClass:[NSDictionary class]] == NO) { LogToConsoleError("'Status Context' is nil or not of kind 'NSDictionary'"); goto present_fatal_error; } - if (self.actionBlock != nil && self.actionBlock(statusCode, statusContext) == NO) { + if (self.actionBlock != nil && self.actionBlock(apiStatusCode, apiStatusContext) == NO) { LogToConsoleError("Action blocked returned error"); goto present_fatal_error; } - NSString *licenseOwnerContactAddress = statusContext[@"licenseOwnerContactAddress"]; + NSString *licenseOwnerContactAddress = apiStatusContext[@"licenseOwnerContactAddress"]; if (licenseOwnerContactAddress.length == 0) { LogToConsoleError("'licenseOwnerContactAddress' is nil or of zero length"); @@ -320,21 +333,21 @@ NSUInteger const TLOLicenseManagerDownloaderRequestStatusCodeTryAgainLater = 200 alternateButton:nil]; } } - else if (requestType == TLOLicenseManagerDownloaderRequestTypeMigrateAppStore && statusCode == TLOLicenseManagerDownloaderRequestStatusCodeSuccess) + else if (requestType == TLOLicenseManagerDownloaderRequestTypeMigrateAppStore && apiStatusCode == TLOLicenseManagerDownloaderRequestStatusCodeSuccess) { - if (statusContext == nil || [statusContext isKindOfClass:[NSDictionary class]] == NO) { + if (apiStatusContext == nil || [apiStatusContext isKindOfClass:[NSDictionary class]] == NO) { LogToConsoleError("'Status Context' is nil or not of kind 'NSDictionary'"); goto present_fatal_error; } - if (self.actionBlock != nil && self.actionBlock(statusCode, statusContext) == NO) { + if (self.actionBlock != nil && self.actionBlock(apiStatusCode, apiStatusContext) == NO) { LogToConsoleError("Action blocked returned error"); goto present_fatal_error; } - NSString *licenseOwnerContactAddress = statusContext[@"licenseOwnerContactAddress"]; + NSString *licenseOwnerContactAddress = apiStatusContext[@"licenseOwnerContactAddress"]; if (licenseOwnerContactAddress.length == 0) { LogToConsoleError("'licenseOwnerContactAddress' is nil or of zero length"); @@ -349,37 +362,45 @@ NSUInteger const TLOLicenseManagerDownloaderRequestStatusCodeTryAgainLater = 200 alternateButton:nil]; } } - else if (requestType == TLOLicenseManagerDownloaderRequestTypeLicenseUpgradeEligibility && statusCode == TLOLicenseManagerDownloaderRequestStatusCodeSuccess) + else if (requestType == TLOLicenseManagerDownloaderRequestTypeLicenseUpgradeEligibility && apiStatusCode == TLOLicenseManagerDownloaderRequestStatusCodeSuccess) { - if (statusContext == nil || [statusContext isKindOfClass:[NSDictionary class]] == NO) { + if (apiStatusContext == nil || [apiStatusContext isKindOfClass:[NSDictionary class]] == NO) { LogToConsoleError("'Status Context' is nil or not of kind 'NSDictionary'"); goto present_fatal_error; } if (self.actionBlock != nil) { - (void)self.actionBlock(statusCode, statusContext); + (void)self.actionBlock(apiStatusCode, apiStatusContext); } } - else if (requestType == TLOLicenseManagerDownloaderRequestTypeReceiptUpgradeEligibility && statusCode == TLOLicenseManagerDownloaderRequestStatusCodeSuccess) + else if (requestType == TLOLicenseManagerDownloaderRequestTypeReceiptUpgradeEligibility && apiStatusCode == TLOLicenseManagerDownloaderRequestStatusCodeSuccess) { - if (statusContext == nil || [statusContext isKindOfClass:[NSDictionary class]] == NO) { + if (apiStatusContext == nil || [apiStatusContext isKindOfClass:[NSDictionary class]] == NO) { LogToConsoleError("'Status Context' is nil or not of kind 'NSDictionary'"); goto present_fatal_error; } if (self.actionBlock != nil) { - (void)self.actionBlock(statusCode, statusContext); + (void)self.actionBlock(apiStatusCode, apiStatusContext); } } - - _performCompletionBlockAndReturn(YES) + + if (self.completionBlock) { + self.completionBlock(YES, apiStatusCode, apiStatusContext); + } + + return; } else // TLOLicenseManagerDownloaderRequestStatusCodeSuccess { - if (self.errorBlock != nil && self.errorBlock(statusCode, statusContext)) { - goto perform_return; + if (self.errorBlock != nil) { + errorBlockPerformed = YES; + + if (self.errorBlock(apiStatusCode, apiStatusContext)) { + goto perform_return; + } } if (self.isSilentOnFailure) { @@ -387,22 +408,22 @@ NSUInteger const TLOLicenseManagerDownloaderRequestStatusCodeTryAgainLater = 200 } /* Errors related to license activation. */ - if (requestType == TLOLicenseManagerDownloaderRequestTypeActivation && statusCode == 6500000) + if (requestType == TLOLicenseManagerDownloaderRequestTypeActivation && apiStatusCode == 6500000) { [TDCAlert modalAlertWithMessage:TXTLS(@"TLOLicenseManager[wc7-mn]") title:TXTLS(@"TLOLicenseManager[fg6-gf]") defaultButton:TXTLS(@"Prompts[c7s-dq]") alternateButton:nil]; } - else if (requestType == TLOLicenseManagerDownloaderRequestTypeActivation && statusCode == 6500001) + else if (requestType == TLOLicenseManagerDownloaderRequestTypeActivation && apiStatusCode == 6500001) { - if (statusContext == nil || [statusContext isKindOfClass:[NSDictionary class]] == NO) { + if (apiStatusContext == nil || [apiStatusContext isKindOfClass:[NSDictionary class]] == NO) { LogToConsoleError("'Status Context' kind is not of 'NSDictionary'"); goto present_fatal_error; } - NSString *licenseKey = statusContext[@"licenseKey"]; + NSString *licenseKey = apiStatusContext[@"licenseKey"]; if (licenseKey.length == 0) { LogToConsoleError("'licenseKey' is nil or of zero length"); @@ -419,15 +440,15 @@ NSUInteger const TLOLicenseManagerDownloaderRequestStatusCodeTryAgainLater = 200 [self contactSupport]; } } - else if (requestType == TLOLicenseManagerDownloaderRequestTypeActivation && statusCode == 6500002) + else if (requestType == TLOLicenseManagerDownloaderRequestTypeActivation && apiStatusCode == 6500002) { - if (statusContext == nil || [statusContext isKindOfClass:[NSDictionary class]] == NO) { + if (apiStatusContext == nil || [apiStatusContext isKindOfClass:[NSDictionary class]] == NO) { LogToConsoleError("'Status Context' kind is not of 'NSDictionary'"); goto present_fatal_error; } - NSString *licenseKey = statusContext[@"licenseKey"]; + NSString *licenseKey = apiStatusContext[@"licenseKey"]; if (licenseKey.length == 0) { LogToConsoleError("'licenseKey' is nil or of zero length"); @@ -435,7 +456,7 @@ NSUInteger const TLOLicenseManagerDownloaderRequestStatusCodeTryAgainLater = 200 goto present_fatal_error; } - NSInteger licenseKeyActivationLimit = [statusContext integerForKey:@"licenseKeyActivationLimit"]; + NSInteger licenseKeyActivationLimit = [apiStatusContext integerForKey:@"licenseKeyActivationLimit"]; [TDCAlert modalAlertWithMessage:TXTLS(@"TLOLicenseManager[6aa-ow]", licenseKeyActivationLimit) title:TXTLS(@"TLOLicenseManager[o66-ox]", licenseKey.prettyLicenseKey) @@ -444,22 +465,22 @@ NSUInteger const TLOLicenseManagerDownloaderRequestStatusCodeTryAgainLater = 200 } /* Errors related to lost license recovery. */ - else if (requestType == TLOLicenseManagerDownloaderRequestTypeSendLostLicense && statusCode == 6400000) + else if (requestType == TLOLicenseManagerDownloaderRequestTypeSendLostLicense && apiStatusCode == 6400000) { [TDCAlert modalAlertWithMessage:TXTLS(@"TLOLicenseManager[dio-y9]") title:TXTLS(@"TLOLicenseManager[ocm-03]") defaultButton:TXTLS(@"Prompts[c7s-dq]") alternateButton:nil]; } - else if (requestType == TLOLicenseManagerDownloaderRequestTypeSendLostLicense && statusCode == 6400001) + else if (requestType == TLOLicenseManagerDownloaderRequestTypeSendLostLicense && apiStatusCode == 6400001) { - if (statusContext == nil || [statusContext isKindOfClass:[NSDictionary class]] == NO) { + if (apiStatusContext == nil || [apiStatusContext isKindOfClass:[NSDictionary class]] == NO) { LogToConsoleError("'Status Context' kind is not of 'NSDictionary'"); goto present_fatal_error; } - NSString *originalInput = statusContext[@"originalInput"]; + NSString *originalInput = apiStatusContext[@"originalInput"]; if (originalInput.length == 0) { LogToConsoleError("'originalInput' is nil or of zero length"); @@ -474,24 +495,24 @@ NSUInteger const TLOLicenseManagerDownloaderRequestStatusCodeTryAgainLater = 200 } /* Error messages related to Mac App Store migration. */ - else if (requestType == TLOLicenseManagerDownloaderRequestTypeMigrateAppStore && statusCode == 6600002) + else if (requestType == TLOLicenseManagerDownloaderRequestTypeMigrateAppStore && apiStatusCode == 6600002) { [TDCAlert modalAlertWithMessage:TXTLS(@"TLOLicenseManager[bu4-zk]") title:TXTLS(@"TLOLicenseManager[ztd-5y]") defaultButton:TXTLS(@"Prompts[c7s-dq]") alternateButton:nil]; } - else if (requestType == TLOLicenseManagerDownloaderRequestTypeMigrateAppStore && statusCode == 6600003) + else if (requestType == TLOLicenseManagerDownloaderRequestTypeMigrateAppStore && apiStatusCode == 6600003) { /* We do not present a custom dialog for this error, but we still log the contents of the context to the console to help diagnose issues. */ - if (statusContext == nil || [statusContext isKindOfClass:[NSDictionary class]] == NO) { + if (apiStatusContext == nil || [apiStatusContext isKindOfClass:[NSDictionary class]] == NO) { LogToConsoleError("'Status Context' kind is not of 'NSDictionary'"); goto present_fatal_error; } - NSString *errorMessage = statusContext[@"Error Message"]; + NSString *errorMessage = apiStatusContext[@"Error Message"]; if (errorMessage.length == 0) { LogToConsoleError("'errorMessage' is nil or of zero length"); @@ -506,44 +527,48 @@ NSUInteger const TLOLicenseManagerDownloaderRequestStatusCodeTryAgainLater = 200 defaultButton:TXTLS(@"Prompts[c7s-dq]") alternateButton:nil]; } - else if (requestType == TLOLicenseManagerDownloaderRequestTypeMigrateAppStore && statusCode == 6600004) + else if (requestType == TLOLicenseManagerDownloaderRequestTypeMigrateAppStore && apiStatusCode == 6600004) { [TDCAlert modalAlertWithMessage:TXTLS(@"TLOLicenseManager[36y-49]") title:TXTLS(@"TLOLicenseManager[enb-hw]") defaultButton:TXTLS(@"Prompts[c7s-dq]") alternateButton:nil]; } - else if (requestType == TLOLicenseManagerDownloaderRequestTypeMigrateAppStore && statusCode == 6600006) + else if (requestType == TLOLicenseManagerDownloaderRequestTypeMigrateAppStore && apiStatusCode == 6600006) { [TDCAlert modalAlertWithMessage:TXTLS(@"TLOLicenseManager[do9-8x]") title:TXTLS(@"TLOLicenseManager[f49-rk]") defaultButton:TXTLS(@"Prompts[c7s-dq]") alternateButton:nil]; } - else if (requestType == TLOLicenseManagerDownloaderRequestTypeMigrateAppStore && statusCode == 6600007) + else if (requestType == TLOLicenseManagerDownloaderRequestTypeMigrateAppStore && apiStatusCode == 6600007) { [TDCAlert modalAlertWithMessage:TXTLS(@"TLOLicenseManager[4n2-ps]") title:TXTLS(@"TLOLicenseManager[t28-j9]") defaultButton:TXTLS(@"Prompts[c7s-dq]") alternateButton:nil]; } - - _performCompletionBlockAndReturn(NO) } } -present_fatal_error: - if ((self.errorBlock == nil || - self.errorBlock(statusCode, statusContext) == NO) && +present_fatal_error: ; + if ( + /* Perform error block if it was not performed + by some other condition presented below. */ + (errorBlockPerformed || + self.errorBlock == nil || + self.errorBlock(apiStatusCode, apiStatusContext) == NO) && + + /* Do we even present an error? */ self.isSilentOnFailure == NO) { [self presentTryAgainLaterErrorDialog]; } perform_return: - _performCompletionBlockAndReturn(NO) - -#undef _performCompletionBlockAndReturn + if (self.completionBlock) { + self.completionBlock(NO, apiStatusCode, apiStatusContext); + } } - (void)presentTryAgainLaterErrorDialog @@ -673,32 +698,20 @@ perform_return: self.delegate = nil; } -- (void)destroyConnectionRequest -{ - if ( self.requestConnection) { - [self.requestConnection cancel]; - } - - self.requestConnection = nil; - self.requestResponse = nil; - self.requestResponseData = nil; -} - - (void)cancelRequest { - [self destroyConnectionRequest]; + if ( self.sessionTask) { + [self.sessionTask cancel]; + } } -- (BOOL)setupConnectionRequest +- (void)performRequest:(TLOLicenseManagerDownloaderConnectionCompletionBlock)completionBlock { - /* Destroy any cached data that may be defined */ - [self destroyConnectionRequest]; - /* Setup request including HTTP POST data. Return NO on failure */ NSURL *requestURL = [self requestURL]; if (requestURL == nil) { - return NO; + return; } NSMutableURLRequest *baseRequest = [NSMutableURLRequest requestWithURL:requestURL @@ -706,61 +719,37 @@ perform_return: timeoutInterval:_connectionTimeoutInterval]; if ([self populateRequestPostData:baseRequest] == NO) { - return NO; + return; } /* Create the connection and start it */ - self.requestResponseData = [NSMutableData data]; + TLOLicenseManagerDownloaderRequestType requestType = self.requestType; - self.requestConnection = [[NSURLConnection alloc] initWithRequest:baseRequest delegate:self startImmediately:NO]; + __weak TLOLicenseManagerDownloaderConnection *weakSelf = self; - [self.requestConnection start]; + NSURLSession *session = [NSURLSession sharedSession]; - /* Return a successful result */ - return YES; -} + NSURLSessionTask *task = [session dataTaskWithRequest:baseRequest completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) + { + if (data == nil) { + if (error) { + LogToConsoleError("Request failed with error: %@", + error.localizedDescription); + } -- (void)connectionDidFinishLoading:(NSURLConnection *)connection -{ - NSUInteger requestStatusCode = self.requestResponse.statusCode; + completionBlock(requestType, nil, nil); - NSData *requestContentsCopy = [self.requestResponseData copy]; + return; + } - [self destroyConnectionRequest]; + completionBlock(requestType, response, data); - if ( self.delegate) { - [self.delegate processResponseForRequestType:self.requestType - httpStatusCode:requestStatusCode - contents:requestContentsCopy]; - } -} + weakSelf.sessionTask = nil; + }]; -- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error -{ - [self destroyConnectionRequest]; // Destroy the existing request + [task resume]; - LogToConsoleError("Failed to complete connection request with error: %@", error.localizedDescription); - - if ( self.delegate) { - [self.delegate processResponseForRequestType:self.requestType - httpStatusCode:TLOLicenseManagerDownloaderRequestHTTPStatusTryAgainLater - contents:nil]; - } -} - -- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data -{ - [self.requestResponseData appendData:data]; -} - -- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response -{ - self.requestResponse = (id)response; -} - -- (nullable NSCachedURLResponse *)connection:(NSURLConnection *)connection willCacheResponse:(NSCachedURLResponse *)cachedResponse -{ - return nil; + self.sessionTask = task; } @end diff --git a/Sources/App/Classes/Library/TLOKeyEventHandler.m b/Sources/App/Classes/Library/TLOKeyEventHandler.m index 30fc09da9..73133be08 100755 --- a/Sources/App/Classes/Library/TLOKeyEventHandler.m +++ b/Sources/App/Classes/Library/TLOKeyEventHandler.m @@ -152,7 +152,7 @@ ClassWithDesignatedInitializerInitMethod return NO; } - NSUInteger modifiers = (e.modifierFlags & (NSShiftKeyMask | NSControlKeyMask | NSAlternateKeyMask | NSCommandKeyMask)); + NSUInteger modifiers = (e.modifierFlags & (NSEventModifierFlagShift | NSEventModifierFlagControl | NSEventModifierFlagOption | NSEventModifierFlagCommand)); NSNumber *modifierKeys = @(modifiers); diff --git a/Sources/App/Classes/Library/TLOpenLink.swift b/Sources/App/Classes/Library/TLOpenLink.swift index f7f4edb74..1800117b3 100644 --- a/Sources/App/Classes/Library/TLOpenLink.swift +++ b/Sources/App/Classes/Library/TLOpenLink.swift @@ -41,12 +41,10 @@ public class OpenLink: NSObject @objc(open:inBackground:) public static func open(url: URL, inBackground: Bool = TPCPreferences.openBrowserInBackground()) { - if #available(OSX 10.10, *) { - if inBackground { - NSWorkspace.shared.open([url], withAppBundleIdentifier: nil, options: [.withoutActivation], additionalEventParamDescriptor: nil, launchIdentifiers: nil) + if inBackground { + NSWorkspace.shared.open([url], withAppBundleIdentifier: nil, options: [.withoutActivation], additionalEventParamDescriptor: nil, launchIdentifiers: nil) - return - } + return } NSWorkspace.shared.open(url) diff --git a/Sources/App/Classes/Preferences/TPCPreferencesLocal.m b/Sources/App/Classes/Preferences/TPCPreferencesLocal.m index e314b01e0..146e14c1c 100755 --- a/Sources/App/Classes/Preferences/TPCPreferencesLocal.m +++ b/Sources/App/Classes/Preferences/TPCPreferencesLocal.m @@ -715,17 +715,7 @@ NSUInteger const TPCPreferencesDictionaryVersion = 602; + (BOOL)webKit2Enabled { - BOOL canUseWebKit2 = [RZUserDefaults() boolForKey:@"UsesWebKit2WhenAvailable"]; - - if (canUseWebKit2 == NO) { - return NO; - } - - if (TEXTUAL_RUNNING_ON_ELCAPITAN) { - return YES; - } - - return NO; + return [RZUserDefaults() boolForKey:@"UsesWebKit2WhenAvailable"]; } + (BOOL)webKit2ProcessPoolSizeLimited diff --git a/Sources/App/Classes/Preferences/TPCPreferencesReload.m b/Sources/App/Classes/Preferences/TPCPreferencesReload.m index 818db6fe8..38411ca7d 100644 --- a/Sources/App/Classes/Preferences/TPCPreferencesReload.m +++ b/Sources/App/Classes/Preferences/TPCPreferencesReload.m @@ -259,13 +259,9 @@ NS_ASSUME_NONNULL_BEGIN } } else if ((reloadAction & TPCPreferencesReloadActionServerListUnreadBadges) == TPCPreferencesReloadActionServerListUnreadBadges) { if (didReloadUserInterface == NO) { - /* The color used for unread badges on Yosemite also apply to the text color - so we must reload all drawings instead of only the badges themselves. */ - if (TEXTUAL_RUNNING_ON_YOSEMITE) { - [mainWindowServerList() refreshAllDrawings]; - } else { - [mainWindowServerList() refreshAllUnreadMessageCountBadges]; - } + /* The color used for unread badges also apply to the text color so + we must reload all drawings instead of only the badges themselves. */ + [mainWindowServerList() refreshAllDrawings]; } } diff --git a/Sources/App/Classes/Views/Channel View/Extras/TVCLogControllerOperationQueue.m b/Sources/App/Classes/Views/Channel View/Extras/TVCLogControllerOperationQueue.m index 59c667bee..94012814d 100644 --- a/Sources/App/Classes/Views/Channel View/Extras/TVCLogControllerOperationQueue.m +++ b/Sources/App/Classes/Views/Channel View/Extras/TVCLogControllerOperationQueue.m @@ -90,9 +90,7 @@ NS_ASSUME_NONNULL_BEGIN self.pendingOperations = [NSMutableDictionary dictionary]; - if (TEXTUAL_RUNNING_ON_YOSEMITE) { - self.qualityOfService = NSQualityOfServiceDefault; - } + self.qualityOfService = NSQualityOfServiceDefault; } #pragma mark - diff --git a/Sources/App/Classes/Views/Channel View/TVCLogPolicy.m b/Sources/App/Classes/Views/Channel View/TVCLogPolicy.m index 52c9bc394..67ebc34e8 100755 --- a/Sources/App/Classes/Views/Channel View/TVCLogPolicy.m +++ b/Sources/App/Classes/Views/Channel View/TVCLogPolicy.m @@ -225,7 +225,7 @@ NS_ASSUME_NONNULL_BEGIN NSRect mouseLocationLocal = [webViewWindow convertRectFromScreen:NSMakeRect(mouseLocationGlobal.x, mouseLocationGlobal.y, 0, 0)]; - NSEvent *event = [NSEvent mouseEventWithType:NSRightMouseUp + NSEvent *event = [NSEvent mouseEventWithType:NSEventTypeRightMouseUp location:mouseLocationLocal.origin modifierFlags:0 timestamp:0 @@ -341,9 +341,9 @@ NS_ASSUME_NONNULL_BEGIN BOOL openInBackground = [TPCPreferences openBrowserInBackground]; - NSUInteger keyboardKeys = ([NSEvent modifierFlags] & NSDeviceIndependentModifierFlagsMask); + NSUInteger keyboardKeys = ([NSEvent modifierFlags] & NSEventModifierFlagDeviceIndependentFlagsMask); - if ((keyboardKeys & NSCommandKeyMask) == NSCommandKeyMask) { + if ((keyboardKeys & NSEventModifierFlagCommand) == NSEventModifierFlagCommand) { openInBackground = !openInBackground; } diff --git a/Sources/App/Classes/Views/Channel View/TVCLogView.m b/Sources/App/Classes/Views/Channel View/TVCLogView.m index 4d097f72d..fc86a19d5 100755 --- a/Sources/App/Classes/Views/Channel View/TVCLogView.m +++ b/Sources/App/Classes/Views/Channel View/TVCLogView.m @@ -130,9 +130,9 @@ ClassWithDesignatedInitializerInitMethod NSUInteger m = e.modifierFlags; - BOOL cmd = ((m & NSCommandKeyMask) == NSCommandKeyMask); - BOOL alt = ((m & NSAlternateKeyMask) == NSAlternateKeyMask); - BOOL ctrl = ((m & NSControlKeyMask) == NSControlKeyMask); + BOOL cmd = ((m & NSEventModifierFlagCommand) == NSEventModifierFlagCommand); + BOOL alt = ((m & NSEventModifierFlagOption) == NSEventModifierFlagOption); + BOOL ctrl = ((m & NSEventModifierFlagControl) == NSEventModifierFlagControl); if (ctrl == NO && alt == NO && cmd == NO) { [self.viewController logViewWebViewKeyDown:e]; @@ -199,13 +199,11 @@ ClassWithDesignatedInitializerInitMethod dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER); - if (TEXTUAL_RUNNING_ON_ELCAPITAN) { - [TVCLogViewInternalWK2 emptyCaches:^{ - dispatch_semaphore_signal(semaphore); - }]; + [TVCLogViewInternalWK2 emptyCaches:^{ + dispatch_semaphore_signal(semaphore); + }]; - dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER); - } + dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER); } - (void)recreateTemporaryCopyOfThemeIfNecessary diff --git a/Sources/App/Classes/Views/Channel View/TVCLogViewInternalWK2.m b/Sources/App/Classes/Views/Channel View/TVCLogViewInternalWK2.m index 267359918..0e09444e1 100644 --- a/Sources/App/Classes/Views/Channel View/TVCLogViewInternalWK2.m +++ b/Sources/App/Classes/Views/Channel View/TVCLogViewInternalWK2.m @@ -78,18 +78,12 @@ static TVCLogScriptEventSink *_sharedWebViewScriptSink = nil; _sharedWebViewConfiguration.processPool = _sharedProcessPool; - BOOL runningOnSierra = TEXTUAL_RUNNING_ON_SIERRA; + _sharedWebViewConfiguration._allowUniversalAccessFromFileURLs = YES; - if (runningOnSierra) { - _sharedWebViewConfiguration._allowUniversalAccessFromFileURLs = YES; - } + WKPreferences *preferences = _sharedWebViewConfiguration.preferences; - if (TEXTUAL_RUNNING_ON_ELCAPITAN) { - WKPreferences *preferences = _sharedWebViewConfiguration.preferences; - - preferences._allowFileAccessFromFileURLs = YES; - preferences._developerExtrasEnabled = YES; - } + preferences._allowFileAccessFromFileURLs = YES; + preferences._developerExtrasEnabled = YES; _sharedWebViewScriptSink = [[TVCLogScriptEventSink alloc] initWithWebView:nil]; @@ -100,11 +94,7 @@ static TVCLogScriptEventSink *_sharedWebViewScriptSink = nil; [_sharedUserContentController addScriptMessageHandler:(id)_sharedWebViewScriptSink name:@"channelMemberCount"]; [_sharedUserContentController addScriptMessageHandler:(id)_sharedWebViewScriptSink name:@"channelName"]; [_sharedUserContentController addScriptMessageHandler:(id)_sharedWebViewScriptSink name:@"channelNameDoubleClicked"]; - - if (runningOnSierra == NO) { - [_sharedUserContentController addScriptMessageHandler:(id)_sharedWebViewScriptSink name:@"displayContextMenu"]; - } - + [_sharedUserContentController addScriptMessageHandler:(id)_sharedWebViewScriptSink name:@"displayContextMenu"]; [_sharedUserContentController addScriptMessageHandler:(id)_sharedWebViewScriptSink name:@"copySelectionWhenPermitted"]; [_sharedUserContentController addScriptMessageHandler:(id)_sharedWebViewScriptSink name:@"encryptionAuthenticateUser"]; [_sharedUserContentController addScriptMessageHandler:(id)_sharedWebViewScriptSink name:@"inlineMediaEnabledForView"]; @@ -206,11 +196,9 @@ create_normal_pool: self.translatesAutoresizingMaskIntoConstraints = NO; - if (TEXTUAL_RUNNING_ON_ELCAPITAN) { - self.allowsLinkPreview = [TPCPreferences webKit2PreviewLinks]; + self.allowsLinkPreview = [TPCPreferences webKit2PreviewLinks]; - self.customUserAgent = TVCLogViewCommonUserAgentString; - } + self.customUserAgent = TVCLogViewCommonUserAgentString; self.navigationDelegate = (id)self; @@ -527,10 +515,6 @@ create_normal_pool: + (void)load { - if (TEXTUAL_RUNNING_ON_YOSEMITE == NO) { - return; - } - static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ diff --git a/Sources/App/Classes/Views/Channel View/TVCWK1AutoScroller.m b/Sources/App/Classes/Views/Channel View/TVCWK1AutoScroller.m index c4a98369b..89cf20722 100755 --- a/Sources/App/Classes/Views/Channel View/TVCWK1AutoScroller.m +++ b/Sources/App/Classes/Views/Channel View/TVCWK1AutoScroller.m @@ -184,29 +184,6 @@ static CGFloat _userScrolledMinimum = 25.0; return (contentRect.size.height > frameRect.size.height); } -- (void)redrawFrameIfNeeded -{ - /* WebKit uses layered compositing for position: fixed elements as of Yosemite. - However, there are some issues related to this change which results in position - fixed elements flickering while scrolling. This has been filed as radar #18211024 - but in the meantime, we redraw the WebView on scroll to workaround this issue. */ - static BOOL _performForceRedraw = NO; - - static dispatch_once_t onceToken; - - dispatch_once(&onceToken, ^{ - _performForceRedraw = - (TEXTUAL_RUNNING_ON_YOSEMITE && - TEXTUAL_RUNNING_ON_ELCAPITAN == NO); - }); - - if (_performForceRedraw == NO) { - return; - } - - [self redrawFrame]; -} - - (void)redrawFrame { [self.documentView setNeedsLayout:YES]; @@ -273,8 +250,6 @@ static CGFloat _userScrolledMinimum = 25.0; LogToConsoleDebug("Scrolled below threshold. Enabled auto scroll."); } } - - [self redrawFrameIfNeeded]; } - (void)webViewDidChangeFrame:(NSNotification *)aNotification diff --git a/Sources/App/Classes/Views/Errors/TVCAlert.m b/Sources/App/Classes/Views/Errors/TVCAlert.m index a6f0a3cef..18246296b 100755 --- a/Sources/App/Classes/Views/Errors/TVCAlert.m +++ b/Sources/App/Classes/Views/Errors/TVCAlert.m @@ -139,11 +139,10 @@ typedef NS_ENUM(NSUInteger, TVCAlertType) { if (window) { self.alertType = TVCAlertTypeSheet; - [NSApp beginSheet:self.panel - modalForWindow:window - modalDelegate:self - didEndSelector:@selector(_alertSheetDidEnd:returnCode:contextInfo:) - contextInfo:nil]; + [window beginSheet:self.panel + completionHandler:^(NSModalResponse returnCode) { + [self _alertSheetDidEndWithReturnCode:returnCode]; + }]; } else { self.alertType = TVCAlertTypeNonblockingPanel; @@ -251,7 +250,7 @@ typedef NS_ENUM(NSUInteger, TVCAlertType) { firstButtonAnchor = suppressionButton; } else { - [suppressionButton removeFromSuperview]; + [suppressionButton removeFromSuperviewWithoutNeedingDisplay]; } /* Add first button */ @@ -275,11 +274,11 @@ typedef NS_ENUM(NSUInteger, TVCAlertType) { NSUInteger buttonsCount = self.buttons.count; if (buttonsCount < 3) { - [self.thirdButton removeFromSuperview]; + [self.thirdButton removeFromSuperviewWithoutNeedingDisplay]; } if (buttonsCount < 2) { - [self.secondButton removeFromSuperview]; + [self.secondButton removeFromSuperviewWithoutNeedingDisplay]; } /* Update state */ @@ -357,7 +356,7 @@ typedef NS_ENUM(NSUInteger, TVCAlertType) { button.title = title; - [XRAccessibility setAccessibilityTitle:TXTLS(@"Accessibility[wbj-gr]", title) forObject:button]; + [button setAccessibilityTitle:TXTLS(@"Accessibility[wbj-gr]", title)]; [self.buttonsInt addObject:button]; @@ -453,11 +452,11 @@ typedef NS_ENUM(NSUInteger, TVCAlertType) { #pragma mark - #pragma mark Panel Delegate -- (void)_alertSheetDidEnd:(NSWindow *)sender returnCode:(NSInteger)returnCode contextInfo:(void *)contextInfo +- (void)_alertSheetDidEndWithReturnCode:(NSInteger)returnCode { [self _postCompletionBlockWithResponse:returnCode]; - [sender orderOut:nil]; + [self.panel orderOut:nil]; } @end diff --git a/Sources/App/Classes/Views/Main Window/TVCMainWindow.m b/Sources/App/Classes/Views/Main Window/TVCMainWindow.m index 96d14e0d9..664e1f23e 100644 --- a/Sources/App/Classes/Views/Main Window/TVCMainWindow.m +++ b/Sources/App/Classes/Views/Main Window/TVCMainWindow.m @@ -281,9 +281,7 @@ NSString * const TVCMainWindowSelectionChangedNotification = @"TVCMainWindowSele self.userInterfaceObjects = appearance; - if (TEXTUAL_RUNNING_ON_YOSEMITE) { - [self updateVibrancyWithAppearance:appearance]; - } + [self updateVibrancyWithAppearance:appearance]; [self notifyApplicationAppearanceChanged]; } @@ -612,34 +610,34 @@ NSString * const TVCMainWindowSelectionChangedNotification = @"TVCMainWindowSele [self registerSelector:@selector(exitFullscreenMode:) key:TXKeyEscapeCode modifiers:0]; [self registerSelector:@selector(tab:) key:TXKeyTabCode modifiers:0]; - [self registerSelector:@selector(shiftTab:) key:TXKeyTabCode modifiers:NSShiftKeyMask]; + [self registerSelector:@selector(shiftTab:) key:TXKeyTabCode modifiers:NSEventModifierFlagShift]; - [self registerSelector:@selector(selectPreviousSelection:) key:TXKeyTabCode modifiers:NSAlternateKeyMask]; + [self registerSelector:@selector(selectPreviousSelection:) key:TXKeyTabCode modifiers:NSEventModifierFlagOption]; - [self registerSelector:@selector(textFormattingBold:) character:'b' modifiers:NSCommandKeyMask]; - [self registerSelector:@selector(textFormattingUnderline:) character:'u' modifiers:(NSControlKeyMask | NSShiftKeyMask)]; - [self registerSelector:@selector(textFormattingItalic:) character:'i' modifiers:(NSControlKeyMask | NSShiftKeyMask)]; - [self registerSelector:@selector(textFormattingForegroundColor:) character:'c' modifiers:(NSControlKeyMask | NSShiftKeyMask)]; - [self registerSelector:@selector(textFormattingBackgroundColor:) character:'h' modifiers:(NSControlKeyMask | NSShiftKeyMask)]; + [self registerSelector:@selector(textFormattingBold:) character:'b' modifiers:NSEventModifierFlagCommand]; + [self registerSelector:@selector(textFormattingUnderline:) character:'u' modifiers:(NSEventModifierFlagControl | NSEventModifierFlagShift)]; + [self registerSelector:@selector(textFormattingItalic:) character:'i' modifiers:(NSEventModifierFlagControl | NSEventModifierFlagShift)]; + [self registerSelector:@selector(textFormattingForegroundColor:) character:'c' modifiers:(NSEventModifierFlagControl | NSEventModifierFlagShift)]; + [self registerSelector:@selector(textFormattingBackgroundColor:) character:'h' modifiers:(NSEventModifierFlagControl | NSEventModifierFlagShift)]; - [self registerSelector:@selector(speakPendingNotifications:) character:'.' modifiers:NSCommandKeyMask]; + [self registerSelector:@selector(speakPendingNotifications:) character:'.' modifiers:NSEventModifierFlagCommand]; - [self registerSelector:@selector(inputHistoryUp:) character:'p' modifiers:NSControlKeyMask]; - [self registerSelector:@selector(inputHistoryDown:) character:'n' modifiers:NSControlKeyMask]; + [self registerSelector:@selector(inputHistoryUp:) character:'p' modifiers:NSEventModifierFlagControl]; + [self registerSelector:@selector(inputHistoryDown:) character:'n' modifiers:NSEventModifierFlagControl]; /* Text field keyboard shortcuts */ - [self registerInputSelector:@selector(sendControlEnterMessageMaybe:) key:TXKeyEnterCode modifiers:NSControlKeyMask]; + [self registerInputSelector:@selector(sendControlEnterMessageMaybe:) key:TXKeyEnterCode modifiers:NSEventModifierFlagControl]; - [self registerInputSelector:@selector(sendMessageAsAction:) key:TXKeyReturnCode modifiers:NSCommandKeyMask]; - [self registerInputSelector:@selector(sendMessageAsAction:) key:TXKeyEnterCode modifiers:NSCommandKeyMask]; + [self registerInputSelector:@selector(sendMessageAsAction:) key:TXKeyReturnCode modifiers:NSEventModifierFlagCommand]; + [self registerInputSelector:@selector(sendMessageAsAction:) key:TXKeyEnterCode modifiers:NSEventModifierFlagCommand]; - [self registerInputSelector:@selector(focusWebview:) character:'l' modifiers:(NSAlternateKeyMask | NSCommandKeyMask)]; + [self registerInputSelector:@selector(focusWebview:) character:'l' modifiers:(NSEventModifierFlagOption | NSEventModifierFlagCommand)]; [self registerInputSelector:@selector(inputHistoryUpWithScrollCheck:) key:TXKeyUpArrowCode modifiers:0]; - [self registerInputSelector:@selector(inputHistoryUpWithScrollCheck:) key:TXKeyUpArrowCode modifiers:NSAlternateKeyMask]; + [self registerInputSelector:@selector(inputHistoryUpWithScrollCheck:) key:TXKeyUpArrowCode modifiers:NSEventModifierFlagOption]; [self registerInputSelector:@selector(inputHistoryDownWithScrollCheck:) key:TXKeyDownArrowCode modifiers:0]; - [self registerInputSelector:@selector(inputHistoryDownWithScrollCheck:) key:TXKeyDownArrowCode modifiers:NSAlternateKeyMask]; + [self registerInputSelector:@selector(inputHistoryDownWithScrollCheck:) key:TXKeyDownArrowCode modifiers:NSEventModifierFlagOption]; } #pragma mark - @@ -1951,36 +1949,7 @@ NSString * const TVCMainWindowSelectionChangedNotification = @"TVCMainWindowSele } } -- (void)addAccessoryViewsToTitlebarOnMavericks -{ - NSThemeFrame *themeFrame = (NSThemeFrame *)self.contentView.superview; - - NSView *accessoryView = self.titlebarAccessoryView; - - [themeFrame addSubview:accessoryView]; - - NSLayoutConstraint *topConstraint = - [NSLayoutConstraint constraintWithItem:accessoryView - attribute:NSLayoutAttributeTop - relatedBy:NSLayoutRelationEqual - toItem:themeFrame - attribute:NSLayoutAttributeTop - multiplier:1 - constant:0]; - - NSLayoutConstraint *rightConstraint = - [NSLayoutConstraint constraintWithItem:accessoryView - attribute:NSLayoutAttributeTrailing - relatedBy:NSLayoutRelationEqual - toItem:themeFrame - attribute:NSLayoutAttributeTrailing - multiplier:1 - constant:0]; - - [themeFrame addConstraints:@[topConstraint, rightConstraint]]; -} - -- (void)addAccessoryViewsToTitlebarOnYosemite +- (void)addAccessoryViewsToTitlebar { NSThemeFrame *themeFrame = (NSThemeFrame *)self.contentView.superview; @@ -1993,15 +1962,6 @@ NSString * const TVCMainWindowSelectionChangedNotification = @"TVCMainWindowSele [self addTitlebarAccessoryViewController:accessoryView]; } -- (void)addAccessoryViewsToTitlebar -{ - if (TEXTUAL_RUNNING_ON_YOSEMITE) { - [self addAccessoryViewsToTitlebarOnYosemite]; - } else { - [self addAccessoryViewsToTitlebarOnMavericks]; - } -} - - (void)updateTitleFor:(IRCTreeItem *)item { NSParameterAssert(item != nil); @@ -2113,7 +2073,7 @@ NSString * const TVCMainWindowSelectionChangedNotification = @"TVCMainWindowSele self.title = title; - [XRAccessibility setAccessibilityTitle:TXTLS(@"Accessibility[k79-1a]") forObject:self]; + [self setAccessibilityTitle:TXTLS(@"Accessibility[k79-1a]")]; } #pragma mark - @@ -2213,6 +2173,8 @@ NSString * const TVCMainWindowSelectionChangedNotification = @"TVCMainWindowSele self.memberList.target = menuController(); self.memberList.doubleAction = @selector(memberInMemberListDoubleClicked:); + self.memberList.stronglyReferencesItems = NO; + self.serverList.keyDelegate = self; self.serverList.delegate = (id)self; @@ -2221,6 +2183,8 @@ NSString * const TVCMainWindowSelectionChangedNotification = @"TVCMainWindowSele self.serverList.target = self; self.serverList.doubleAction = @selector(outlineViewDoubleClicked:); + self.serverList.stronglyReferencesItems = NO; + /* Inform the table we want drag events */ [self.serverList registerForDraggedTypes:_treeDragItemTypes]; @@ -2710,19 +2674,6 @@ NSString * const TVCMainWindowSelectionChangedNotification = @"TVCMainWindowSele return item; } -- (CGFloat)outlineView:(NSOutlineView *)outlineView heightOfRowByItem:(id)item -{ - TVCServerList *serverList = (id)outlineView; - - TVCServerListAppearance *appearance = serverList.userInterfaceObjects; - - if (item == nil || [item isClient]) { - return appearance.serverRowHeight; - } - - return appearance.channelRowHeight; -} - - (nullable NSTableRowView *)outlineView:(NSOutlineView *)outlineView rowViewForItem:(id)item { if (item == nil || [item isClient]) { @@ -2734,14 +2685,12 @@ NSString * const TVCMainWindowSelectionChangedNotification = @"TVCMainWindowSele - (nullable NSView *)outlineView:(NSOutlineView *)outlineView viewForTableColumn:(nullable NSTableColumn *)tableColumn item:(id)item { - BOOL onMojave = TEXTUAL_RUNNING_ON_MOJAVE; - NSString *viewIdentifier = nil; if (item == nil || [item isClient]) { - viewIdentifier = ((onMojave) ? @"GroupViewMojave" : @"GroupView"); + viewIdentifier = @"GroupView"; } else { - viewIdentifier = ((onMojave) ? @"ChildViewMojave" : @"ChildView"); + viewIdentifier = @"ChildView"; } NSView *newView = [outlineView makeViewWithIdentifier:viewIdentifier owner:self]; @@ -2808,10 +2757,10 @@ NSString * const TVCMainWindowSelectionChangedNotification = @"TVCMainWindowSele } /* If command or shift are held down, allow change. */ - NSUInteger keyboardKeys = ([NSEvent modifierFlags] & NSDeviceIndependentModifierFlagsMask); + NSUInteger keyboardKeys = ([NSEvent modifierFlags] & NSEventModifierFlagDeviceIndependentFlagsMask); - if ((keyboardKeys & NSCommandKeyMask) == NSCommandKeyMask || - (keyboardKeys & NSShiftKeyMask) == NSShiftKeyMask) + if ((keyboardKeys & NSEventModifierFlagCommand) == NSEventModifierFlagCommand || + (keyboardKeys & NSEventModifierFlagShift) == NSEventModifierFlagShift) { return YES; } @@ -2870,9 +2819,9 @@ NSString * const TVCMainWindowSelectionChangedNotification = @"TVCMainWindowSele IRCTreeItem *selectedItem = nil; - NSUInteger keyboardKeys = ([NSEvent modifierFlags] & NSDeviceIndependentModifierFlagsMask); + NSUInteger keyboardKeys = ([NSEvent modifierFlags] & NSEventModifierFlagDeviceIndependentFlagsMask); - if (keyboardKeys == NSCommandKeyMask) { + if (keyboardKeys == NSEventModifierFlagCommand) { NSInteger rowBeneathMouse = serverList.rowBeneathMouse; if (rowBeneathMouse >= 0 && [selectedRows containsIndex:rowBeneathMouse]) { diff --git a/Sources/App/Classes/Views/Main Window/TVCMainWindowChannelView.m b/Sources/App/Classes/Views/Main Window/TVCMainWindowChannelView.m index 0801ad74d..bd3c538a6 100644 --- a/Sources/App/Classes/Views/Main Window/TVCMainWindowChannelView.m +++ b/Sources/App/Classes/Views/Main Window/TVCMainWindowChannelView.m @@ -326,10 +326,6 @@ NSComparisonResult sortSubviews(TVCMainWindowChannelViewSubview *firstView, - (void)updateVibrancy { - if (TEXTUAL_RUNNING_ON_YOSEMITE == NO) { - return; - } - if (themeSettings().underlyingWindowColorIsDark) { self.appearance = [TXAppearancePropertyCollection appKitDarkAppearance]; } else { diff --git a/Sources/App/Classes/Views/Main Window/TVCMainWindowLoadingScreen.m b/Sources/App/Classes/Views/Main Window/TVCMainWindowLoadingScreen.m index 94b2bae30..ff36c2dc7 100644 --- a/Sources/App/Classes/Views/Main Window/TVCMainWindowLoadingScreen.m +++ b/Sources/App/Classes/Views/Main Window/TVCMainWindowLoadingScreen.m @@ -51,8 +51,6 @@ NS_ASSUME_NONNULL_BEGIN @property (nonatomic, weak) IBOutlet NSTextField *progressViewDescriptionTextField; @property (nonatomic, weak) IBOutlet NSProgressIndicator *progressViewIndicator; @property (nonatomic, strong) IBOutlet NSView *trialExpiredView; -@property (nonatomic, weak) IBOutlet NSLayoutConstraint *loadingScreenMinimumWidthConstraint; -@property (nonatomic, weak) IBOutlet NSLayoutConstraint *loadingScreenMinimumHeightConstraint; @end @implementation TVCMainWindowLoadingScreenView @@ -120,33 +118,43 @@ NS_ASSUME_NONNULL_BEGIN [self disableBackgroundControlsStepOne]; - NSRect viewFrame = view.frame; - - self.loadingScreenMinimumWidthConstraint.constant = viewFrame.size.width; - self.loadingScreenMinimumHeightConstraint.constant = viewFrame.size.height; - [self addSubview:view]; - NSMutableArray *constraints = [NSMutableArray array]; - - [constraints addObject: + NSArray * constraints = @[ + /* Center view on both axis. */ [NSLayoutConstraint constraintWithItem:view attribute:NSLayoutAttributeCenterX relatedBy:NSLayoutRelationEqual toItem:self attribute:NSLayoutAttributeCenterX multiplier:1.0 - constant:0.0] - ]; + constant:0.0], - [constraints addObject: [NSLayoutConstraint constraintWithItem:view attribute:NSLayoutAttributeCenterY relatedBy:NSLayoutRelationEqual toItem:self attribute:NSLayoutAttributeCenterY multiplier:1.0 - constant:0.0] + constant:0.0], + + /* Constrain edges but use >= so that window does not + shrink to conform to it. */ + [NSLayoutConstraint constraintWithItem:view + attribute:NSLayoutAttributeLeft + relatedBy:NSLayoutRelationGreaterThanOrEqual + toItem:self + attribute:NSLayoutAttributeLeft + multiplier:1.0 + constant:0.0], + + [NSLayoutConstraint constraintWithItem:view + attribute:NSLayoutAttributeTop + relatedBy:NSLayoutRelationGreaterThanOrEqual + toItem:self + attribute:NSLayoutAttributeTop + multiplier:1.0 + constant:0.0], ]; [self addConstraints:constraints]; @@ -167,9 +175,6 @@ NS_ASSUME_NONNULL_BEGIN { [self enableBackgroundControlsStepOne]; - self.loadingScreenMinimumWidthConstraint.constant = 0.0; - self.loadingScreenMinimumHeightConstraint.constant = 0.0; - /* ================================== */ void (^phaseTwoBlock)(NSView *) = ^(NSView *viewToHide) { diff --git a/Sources/App/Classes/Views/Main Window/TVCMainWindowSidebarSmoothTextField.m b/Sources/App/Classes/Views/Main Window/TVCMainWindowSidebarSmoothTextField.m index 5efe8c3c2..bd000a7c5 100644 --- a/Sources/App/Classes/Views/Main Window/TVCMainWindowSidebarSmoothTextField.m +++ b/Sources/App/Classes/Views/Main Window/TVCMainWindowSidebarSmoothTextField.m @@ -41,64 +41,10 @@ NS_ASSUME_NONNULL_BEGIN -#pragma mark - -#pragma mark OS X Mavericks - -@interface TVCMainWindowSidebarMavericksSmoothTextFieldBackingLayer : CALayer -@property (nonatomic, weak) NSWindow *t_mainWindow; +@implementation TVCMainWindowSidebarSmoothTextField @end -@implementation TVCMainWindowSidebarMavericksSmoothTextField - -- (BOOL)wantsLayer -{ - return YES; -} - -- (void)viewWillMoveToWindow:(nullable NSWindow *)newWindow -{ - ((TVCMainWindowSidebarMavericksSmoothTextFieldBackingLayer *)self.layer).t_mainWindow = newWindow; -} - -- (NSViewLayerContentsRedrawPolicy)layerContentsRedrawPolicy -{ - return NSViewLayerContentsRedrawBeforeViewResize; -} - -- (CALayer *)makeBackingLayer -{ - return [TVCMainWindowSidebarMavericksSmoothTextFieldBackingLayer layer]; -} - -@end - -#pragma mark - - -@implementation TVCMainWindowSidebarMavericksSmoothTextFieldBackingLayer - -- (CGFloat)contentsScale -{ - return self.t_mainWindow.backingScaleFactor; -} - -- (void)drawInContext:(CGContextRef)context -{ - CGContextSetShouldAntialias(context, true); - CGContextSetShouldSmoothFonts(context, true); - CGContextSetShouldSubpixelPositionFonts(context, true); - - [super drawInContext:context]; -} - -@end - -#pragma mark - -#pragma mark OS X Yosemite - -@implementation TVCMainWindowSidebarYosemiteSmoothTextField -@end - -@implementation TVCMainWindowSidebarYosemiteSmoothTextFieldCell +@implementation TVCMainWindowSidebarSmoothTextFieldCell - (CGFloat)contentsScale { @@ -159,9 +105,7 @@ NS_ASSUME_NONNULL_BEGIN - (void)drawWithFrame:(NSRect)cellFrame inView:(NSView *)controlView { /* Mojave no longer performs subpixel antialiasing */ - if (TEXTUAL_RUNNING_ON_YOSEMITE == NO || - TEXTUAL_RUNNING_ON_MOJAVE) - { + if (TEXTUAL_RUNNING_ON_MOJAVE) { [super drawWithFrame:cellFrame inView:controlView]; return; @@ -194,7 +138,7 @@ NS_ASSUME_NONNULL_BEGIN [stringValueImage drawInRect:cellFrameCopy fromRect:NSZeroRect - operation:NSCompositeSourceOver + operation:NSCompositingOperationSourceOver fraction:1.0 respectFlipped:YES hints:nil]; diff --git a/Sources/App/Classes/Views/Main Window/TVCMainWindowTextView.m b/Sources/App/Classes/Views/Main Window/TVCMainWindowTextView.m index cac3bc7e9..7443cfba1 100755 --- a/Sources/App/Classes/Views/Main Window/TVCMainWindowTextView.m +++ b/Sources/App/Classes/Views/Main Window/TVCMainWindowTextView.m @@ -151,9 +151,7 @@ NS_ASSUME_NONNULL_BEGIN self.userInterfaceObjects = appearance; - if (TEXTUAL_RUNNING_ON_YOSEMITE) { - [self updateVibrancyWithAppearance:appearance]; - } + [self updateVibrancyWithAppearance:appearance]; self.textContainerInset = appearance.textViewInset; @@ -246,9 +244,7 @@ NS_ASSUME_NONNULL_BEGIN { super.attributedStringValue = attributedStringValue; - if (TEXTUAL_RUNNING_ON_YOSEMITE) { - [self updateAllFontColorsToMatchTheDefaultFont]; - } + [self updateAllFontColorsToMatchTheDefaultFont]; } - (void)updateTextDirection @@ -400,10 +396,6 @@ NS_ASSUME_NONNULL_BEGIN self.textViewHeightConstraint.constant = backgroundHeight; - if (TEXTUAL_RUNNING_ON_YOSEMITE == NO) { - [window setContentBorderThickness:backgroundHeight forEdge:NSMinYEdge]; - } - id scrollViewContentView = self.enclosingScrollView.contentView; NSRect contentViewBounds = [scrollViewContentView bounds]; @@ -513,124 +505,18 @@ NS_ASSUME_NONNULL_BEGIN @implementation TVCMainWindowTextViewBackground -#pragma mark - -#pragma mark Mavericks UI Drawing - -- (void)drawControllerForMavericksWithAppearance:(TVCMainWindowTextViewAppearance *)appearance -{ - NSParameterAssert(appearance != nil); - - BOOL isWindowActive = self.mainWindow.activeForDrawing; - - NSRect cellBounds = self.frame; - - NSRect backgroundFrame = NSMakeRect(0.0, 1.0, cellBounds.size.width, - (cellBounds.size.height - 1.0)); - - NSRect foregroundFrame = NSMakeRect(1.0, 2.0, (cellBounds.size.width - 2.0), - (cellBounds.size.height - 3.0)); - - CGContextRef context = RZGraphicsCurrentContext().graphicsPort; - - NSColor *backgroundColor = nil; - NSColor *backgroundBorderColor = nil; - NSColor *insideShadowColor = nil; - NSColor *outsideShadowColor = nil; - - if (isWindowActive) { - backgroundColor = appearance.textViewBackgroundColorActiveWindow; - backgroundBorderColor = appearance.textViewOutlineColorActiveWindow; - insideShadowColor = appearance.textViewInsideShadowColorActiveWindow; - outsideShadowColor = appearance.textViewOutsidePrimaryShadowColorActiveWindow; - } else { - backgroundColor = appearance.textViewBackgroundColorInactiveWindow; - backgroundBorderColor = appearance.textViewOutlineColorInactiveWindow; - insideShadowColor = appearance.textViewInsideShadowColorInactiveWindow; - outsideShadowColor = appearance.textViewOutsidePrimaryShadowColorInactiveWindow; - } // isWindowActive - - /* Shadow values */ - NSShadow *outsideShadow = [NSShadow new]; - - outsideShadow.shadowBlurRadius = 0.0; - outsideShadow.shadowColor = outsideShadowColor; - outsideShadow.shadowOffset = NSMakeSize(0.0, (-1.0)); - - NSShadow *insideShadow = [NSShadow new]; - - insideShadow.shadowBlurRadius = 0.0; - insideShadow.shadowColor = insideShadowColor; - insideShadow.shadowOffset = NSMakeSize(0.0, (-1.0)); - - /* Draw the background rectangle which will act as the stroke of - the foreground rectangle. It will also host the bottom shadow. */ - NSBezierPath *backgroundPath = [NSBezierPath bezierPathWithRoundedRect:backgroundFrame xRadius:3.5 yRadius:3.5]; - - [NSGraphicsContext saveGraphicsState]; - - [outsideShadow set]; - - [backgroundBorderColor setFill]; - - [backgroundPath fill]; - - [NSGraphicsContext restoreGraphicsState]; - - /* Draw the foreground rectangle */ - NSBezierPath *foregroundPath = [NSBezierPath bezierPathWithRoundedRect:foregroundFrame xRadius:3.5 yRadius:3.5]; - - [backgroundColor setFill]; - - [foregroundPath fill]; - - /* Draw the inside shadow of the foreground rectangle */ - [NSGraphicsContext saveGraphicsState]; - - NSRectClip(foregroundPath.bounds); - - CGContextSetShadowWithColor(context, CGSizeZero, 0.0, NULL); - - CGContextSetAlpha(context, insideShadowColor.alphaComponent); - - CGContextBeginTransparencyLayer(context, NULL); - - { - /* Inside shadow drawing */ - [insideShadow set]; - - CGContextSetBlendMode(context, kCGBlendModeSourceOut); - - CGContextBeginTransparencyLayer(context, NULL); - - /* Fill shadow */ - [insideShadowColor setFill]; - - [foregroundPath fill]; - - /* Complete drawing */ - CGContextEndTransparencyLayer(context); - } - - CGContextEndTransparencyLayer(context); - - [NSGraphicsContext restoreGraphicsState]; -} - -#pragma mark - -#pragma mark Yosemite UI Drawing - -- (void)drawControllerForYosemiteWithAppearance:(TVCMainWindowTextViewAppearance *)appearance +- (void)drawControllerForWithAppearance:(TVCMainWindowTextViewAppearance *)appearance { NSParameterAssert(appearance != nil); if (appearance.isDarkAppearance == NO) { - [self drawLightControllerForYosemiteWithAppearance:appearance]; + [self drawLightControllerForWithAppearance:appearance]; } else { - [self drawDarkControllerForYosemiteWithAppearance:appearance]; + [self drawDarkControllerForWithAppearance:appearance]; } } -- (void)drawDarkControllerForYosemiteWithAppearance:(TVCMainWindowTextViewAppearance *)appearance +- (void)drawDarkControllerForWithAppearance:(TVCMainWindowTextViewAppearance *)appearance { NSParameterAssert(appearance != nil); @@ -676,7 +562,7 @@ NS_ASSUME_NONNULL_BEGIN [NSGraphicsContext restoreGraphicsState]; } -- (void)drawLightControllerForYosemiteWithAppearance:(TVCMainWindowTextViewAppearance *)appearance +- (void)drawLightControllerForWithAppearance:(TVCMainWindowTextViewAppearance *)appearance { NSParameterAssert(appearance != nil); @@ -801,11 +687,7 @@ NS_ASSUME_NONNULL_BEGIN return; } - if (TEXTUAL_RUNNING_ON_YOSEMITE) { - [self drawControllerForYosemiteWithAppearance:appearance]; - } else { - [self drawControllerForMavericksWithAppearance:appearance]; - } + [self drawControllerForWithAppearance:appearance]; } @end @@ -813,9 +695,6 @@ NS_ASSUME_NONNULL_BEGIN #pragma mark - #pragma mark Text Field Background Vibrant View -/* The content view layer only exists on Yosemite and later. - Textual on Mavericks and earlier uses the content border of - the window in place of this layer for the content view. */ @implementation TVCMainWindowTextViewContentView - (void)drawRect:(NSRect)dirtyRect diff --git a/Sources/App/Classes/Views/Main Window/TVCMainWindowTitlebarAccessoryView.m b/Sources/App/Classes/Views/Main Window/TVCMainWindowTitlebarAccessoryView.m index 879386238..e26fe02d3 100644 --- a/Sources/App/Classes/Views/Main Window/TVCMainWindowTitlebarAccessoryView.m +++ b/Sources/App/Classes/Views/Main Window/TVCMainWindowTitlebarAccessoryView.m @@ -44,8 +44,6 @@ NS_ASSUME_NONNULL_BEGIN -/* This class is used by both Mavericks and Yosemite, but only the Yosemite - version does any drawing. */ @implementation TVCMainWindowTitlebarAccessoryView @end @@ -56,7 +54,6 @@ NS_ASSUME_NONNULL_BEGIN @property (nonatomic, assign) BOOL drawsCustomBackgroundColor; @property (nonatomic, weak) IBOutlet NSLayoutConstraint *lockButtonLeftMarginConstraint; @property (nonatomic, weak) IBOutlet NSLayoutConstraint *lockButtonRightMarginConstraint; -@property (nonatomic, weak) IBOutlet NSLayoutConstraint *lockButtonSuperviewWidthConstraint; @end @implementation TVCMainWindowTitlebarAccessoryViewLockButton @@ -78,19 +75,13 @@ NS_ASSUME_NONNULL_BEGIN CGFloat totalViewWidth = (buttonLeftMargin + buttonWidth + buttonRightMargin); - if (TEXTUAL_RUNNING_ON_YOSEMITE) { - NSRect superviewFrame = self.superview.frame; + NSRect superviewFrame = self.superview.frame; - superviewFrame.size.width = totalViewWidth; + superviewFrame.size.width = totalViewWidth; - self.superview.frame = superviewFrame; + self.superview.frame = superviewFrame; - return; - } - - if (self.lockButtonSuperviewWidthConstraint) { - self.lockButtonSuperviewWidthConstraint.constant = totalViewWidth; - } + return; } - (void)awakeFromNib @@ -126,10 +117,6 @@ NS_ASSUME_NONNULL_BEGIN - (void)disableDrawingCustomBackgroundColor { - if (TEXTUAL_RUNNING_ON_YOSEMITE == NO) { - return; - } - self.cell.backgroundStyle = NSBackgroundStyleRaised; self.drawsCustomBackgroundColor = NO; @@ -137,10 +124,6 @@ NS_ASSUME_NONNULL_BEGIN - (void)enableDrawingCustomBackgroundColor { - if (TEXTUAL_RUNNING_ON_YOSEMITE == NO) { - return; - } - self.cell.backgroundStyle = NSBackgroundStyleLowered; self.drawsCustomBackgroundColor = YES; @@ -153,13 +136,13 @@ NS_ASSUME_NONNULL_BEGIN } if (self.drawsCustomBackgroundColor) { - [self drawInteriorOnYosemite]; + [self drawInterior]; } [super drawRect:dirtyRect]; } -- (void)drawInteriorOnYosemite +- (void)drawInterior { if (self.mainWindow.isActiveForDrawing == NO) { return; @@ -171,15 +154,15 @@ NS_ASSUME_NONNULL_BEGIN return; } - [self drawInteriorForActiveWindowOnYosemiteWithAppearance:appearance]; + [self drawInteriorForActiveWindowWithAppearance:appearance]; } -- (void)drawInteriorForActiveWindowOnYosemiteWithAppearance:(TVCMainWindowAppearance *)appearance +- (void)drawInteriorForActiveWindowWithAppearance:(TVCMainWindowAppearance *)appearance { NSParameterAssert(appearance != nil); - /* On Yosemite, we get the bounds of the object and tweak it just slighly to match what - it actually is. After that, we draw our color in behind it to fake the background. */ + /* We get the bounds of the object and tweak it just slighly to match what it + actually is. After that, we draw our color in behind it to fake the background. */ NSRect controllerFrame = self.bounds; controllerFrame.size.height -= 1.0; diff --git a/Sources/App/Classes/Views/Server List/TVCServerList.m b/Sources/App/Classes/Views/Server List/TVCServerList.m index 0f518061c..8c0bccadc 100755 --- a/Sources/App/Classes/Views/Server List/TVCServerList.m +++ b/Sources/App/Classes/Views/Server List/TVCServerList.m @@ -51,7 +51,6 @@ NSString * const TVCServerListDragType = @"TVCServerListDragType"; @interface TVCServerList () @property (nonatomic, strong, readwrite) TVCServerListAppearance *userInterfaceObjects; @property (nonatomic, weak, readwrite) IBOutlet NSVisualEffectView *visualEffectView; -@property (nonatomic, weak, readwrite) IBOutlet TVCServerListMavericksBackgroundBox *backgroundView; @property (nonatomic, assign, readwrite) BOOL leftMouseIsDownInView; @end @@ -186,13 +185,7 @@ NSString * const TVCServerListDragType = @"TVCServerListDragType"; __kindof TVCServerListCell *rowView = [self viewAtColumn:0 row:rowIndex makeIfNecessary:NO]; - BOOL isGroupItem = [rowView isKindOfClass:[TVCServerListCellGroupItem class]]; - - if (isGroupItem) { - [rowView updateGroupDisclosureTriangle]; // Calls setNeedsDisplay: for item - } else { - rowView.needsDisplay = YES; - } + rowView.needsDisplay = YES; } - (void)refreshDrawingForItem:(IRCTreeItem *)cellItem @@ -337,22 +330,16 @@ NSString * const TVCServerListDragType = @"TVCServerListDragType"; { NSParameterAssert(appearance != nil); - BOOL onYosemite = TEXTUAL_RUNNING_ON_YOSEMITE; - /* We assign a strong reference to these instead of returning the original value every time so that there are no race conditions for when it changes. */ self.userInterfaceObjects = appearance; - if (onYosemite) { - [self updateVibrancyWithAppearance:appearance]; - } + [self updateVibrancyWithAppearance:appearance]; - if (onYosemite == NO) { - if (appearance.isDarkAppearance) { - self.enclosingScrollView.scrollerKnobStyle = NSScrollerKnobStyleLight; - } else { - self.enclosingScrollView.scrollerKnobStyle = NSScrollerKnobStyleDark; - } + if (appearance.isDarkAppearance) { + self.enclosingScrollView.scrollerKnobStyle = NSScrollerKnobStyleLight; + } else { + self.enclosingScrollView.scrollerKnobStyle = NSScrollerKnobStyleDark; } self.needsDisplay = YES; @@ -380,10 +367,6 @@ NSString * const TVCServerListDragType = @"TVCServerListDragType"; - (void)respondToRequiresRedraw { - if (self.backgroundView) { - self.backgroundView.needsDisplay = YES; - } - [self refreshAllDrawings:YES]; } diff --git a/Sources/App/Classes/Views/Server List/TVCServerListAppearance.m b/Sources/App/Classes/Views/Server List/TVCServerListAppearance.m index d5730586c..0b98c2810 100644 --- a/Sources/App/Classes/Views/Server List/TVCServerListAppearance.m +++ b/Sources/App/Classes/Views/Server List/TVCServerListAppearance.m @@ -46,10 +46,6 @@ NS_ASSUME_NONNULL_BEGIN -@interface TVCServerListMavericksBackgroundBox () -@property (nonatomic, weak) IBOutlet TVCServerList *serverList; -@end - @interface TVCServerListAppearance () @property (nonatomic, weak, readwrite) TVCServerList *serverList; @@ -57,8 +53,6 @@ NS_ASSUME_NONNULL_BEGIN @property (nonatomic, assign, readwrite) CGFloat minimumWidth; @property (nonatomic, assign, readwrite) CGFloat maximumWidth; -@property (nonatomic, copy, nullable, readwrite) NSColor *backgroundColorActiveWindow; -@property (nonatomic, copy, nullable, readwrite) NSColor *backgroundColorInactiveWindow; @property (nonatomic, copy, nullable, readwrite) NSColor *rowSelectionColorActiveWindow; @property (nonatomic, copy, nullable, readwrite) NSColor *rowSelectionColorInactiveWindow; @@ -66,51 +60,31 @@ NS_ASSUME_NONNULL_BEGIN #pragma mark Server Cell @property (nonatomic, assign, readwrite) BOOL serverRowEmphasized; -@property (nonatomic, assign, readwrite) CGFloat serverRowHeight; -@property (nonatomic, copy, nullable, readwrite) NSImage *serverSelectionImageActiveWindow; -@property (nonatomic, copy, nullable, readwrite) NSImage *serverSelectionImageInactiveWindow; @property (nonatomic, copy, nullable, readwrite) NSColor *serverTextColorActiveWindow; @property (nonatomic, copy, nullable, readwrite) NSColor *serverTextColorInactiveWindow; -@property (nonatomic, copy, nullable, readwrite) NSColor *serverTextShadowColorActiveWindow; -@property (nonatomic, copy, nullable, readwrite) NSColor *serverTextShadowColorInactiveWindow; @property (nonatomic, copy, nullable, readwrite) NSColor *serverDisabledTextColorActiveWindow; @property (nonatomic, copy, nullable, readwrite) NSColor *serverDisabledTextColorInactiveWindow; -@property (nonatomic, copy, nullable, readwrite) NSColor *serverDisabledTextShadowColorActiveWindow; -@property (nonatomic, copy, nullable, readwrite) NSColor *serverDisabledTextShadowColorInactiveWindow; @property (nonatomic, copy, nullable, readwrite) NSColor *serverSelectedTextColorActiveWindow; @property (nonatomic, copy, nullable, readwrite) NSColor *serverSelectedTextColorInactiveWindow; -@property (nonatomic, copy, nullable, readwrite) NSColor *serverSelectedTextShadowColorActiveWindow; -@property (nonatomic, copy, nullable, readwrite) NSColor *serverSelectedTextShadowColorInactiveWindow; @property (nonatomic, copy, nullable, readwrite) NSFont *serverFont; @property (nonatomic, copy, nullable, readwrite) NSFont *serverFontSelected; -@property (nonatomic, assign, readwrite) CGFloat serverTopOffset; #pragma mark - #pragma mark Channel Cell @property (nonatomic, assign, readwrite) BOOL channelRowEmphasized; -@property (nonatomic, assign, readwrite) CGFloat channelRowHeight; -@property (nonatomic, copy, nullable, readwrite) NSImage *channelSelectionImageActiveWindow; -@property (nonatomic, copy, nullable, readwrite) NSImage *channelSelectionImageInactiveWindow; @property (nonatomic, copy, nullable, readwrite) NSColor *channelTextColorActiveWindow; @property (nonatomic, copy, nullable, readwrite) NSColor *channelTextColorInactiveWindow; -@property (nonatomic, copy, nullable, readwrite) NSColor *channelTextShadowColorActiveWindow; -@property (nonatomic, copy, nullable, readwrite) NSColor *channelTextShadowColorInactiveWindow; @property (nonatomic, copy, nullable, readwrite) NSColor *channelDisabledTextColorActiveWindow; @property (nonatomic, copy, nullable, readwrite) NSColor *channelDisabledTextColorInactiveWindow; -@property (nonatomic, copy, nullable, readwrite) NSColor *channelDisabledTextShadowColorActiveWindow; -@property (nonatomic, copy, nullable, readwrite) NSColor *channelDisabledTextShadowColorInactiveWindow; @property (nonatomic, copy, nullable, readwrite) NSColor *channelSelectedTextColorActiveWindow; @property (nonatomic, copy, nullable, readwrite) NSColor *channelSelectedTextColorInactiveWindow; -@property (nonatomic, copy, nullable, readwrite) NSColor *channelSelectedTextShadowColorActiveWindow; -@property (nonatomic, copy, nullable, readwrite) NSColor *channelSelectedTextShadowColorInactiveWindow; @property (nonatomic, copy, nullable, readwrite) NSColor *channelErroneousTextColorActiveWindow; @property (nonatomic, copy, nullable, readwrite) NSColor *channelErroneousTextColorInactiveWindow; @property (nonatomic, copy, nullable, readwrite) NSColor *channelHighlightTextColorActiveWindow; @property (nonatomic, copy, nullable, readwrite) NSColor *channelHighlightTextColorInactiveWindow; @property (nonatomic, copy, nullable, readwrite) NSFont *channelFont; @property (nonatomic, copy, nullable, readwrite) NSFont *channelFontSelected; -@property (nonatomic, assign, readwrite) CGFloat channelTopOffset; #pragma mark - #pragma mark Message Count Badge @@ -127,16 +101,11 @@ NS_ASSUME_NONNULL_BEGIN @property (nonatomic, copy, nullable, readwrite) NSColor *unreadBadgeSelectedTextColorInactiveWindow; @property (nonatomic, copy, nullable, readwrite) NSColor *unreadBadgeHighlightTextColorActiveWindow; @property (nonatomic, copy, nullable, readwrite) NSColor *unreadBadgeHighlightTextColorInactiveWindow; -@property (nonatomic, copy, nullable, readwrite) NSColor *unreadBadgeShadowColorActiveWindow; -@property (nonatomic, copy, nullable, readwrite) NSColor *unreadBadgeShadowColorInactiveWindow; @property (nonatomic, copy, nullable, readwrite) NSFont *unreadBadgeFont; @property (nonatomic, copy, nullable, readwrite) NSFont *unreadBadgeFontSelected; @property (nonatomic, assign, readwrite) CGFloat unreadBadgeMinimumWidth; @property (nonatomic, assign, readwrite) CGFloat unreadBadgeHeight; @property (nonatomic, assign, readwrite) CGFloat unreadBadgePadding; -@property (nonatomic, assign, readwrite) CGFloat unreadBadgeTextCenterYOffset; -@property (nonatomic, assign, readwrite) CGFloat unreadBadgeTopOffset; -@property (nonatomic, assign, readwrite) CGFloat unreadBadgeRightMargin; @end @implementation TVCServerListAppearance @@ -181,56 +150,34 @@ NS_ASSUME_NONNULL_BEGIN self.rowSelectionColorActiveWindow = [self colorForKey:@"selectionColor" forActiveWindow:YES]; self.rowSelectionColorInactiveWindow = [self colorForKey:@"selectionColor" forActiveWindow:NO]; - self.backgroundColorActiveWindow = [self colorForKey:@"backgroundColor" forActiveWindow:YES]; - self.backgroundColorInactiveWindow = [self colorForKey:@"backgroundColor" forActiveWindow:NO]; NSDictionary *serverCell = properties[@"Server Cell"]; self.serverRowEmphasized = [serverCell boolForKey:@"rowEmphasized"]; - self.serverRowHeight = [self measurementInGroup:serverCell withKey:@"rowHeight"]; - self.serverSelectionImageActiveWindow = [self imageInGroup:serverCell withKey:@"selectionImage" forActiveWindow:YES]; - self.serverSelectionImageInactiveWindow = [self imageInGroup:serverCell withKey:@"selectionImage" forActiveWindow:NO]; self.serverTextColorActiveWindow = [self colorInGroup:serverCell withKey:@"normalTextColor" forActiveWindow:YES]; self.serverTextColorInactiveWindow = [self colorInGroup:serverCell withKey:@"normalTextColor" forActiveWindow:NO]; - self.serverTextShadowColorActiveWindow = [self colorInGroup:serverCell withKey:@"normalTextShadowColor" forActiveWindow:YES]; - self.serverTextShadowColorInactiveWindow = [self colorInGroup:serverCell withKey:@"normalTextShadowColor" forActiveWindow:NO]; self.serverDisabledTextColorActiveWindow = [self colorInGroup:serverCell withKey:@"disabledTextColor" forActiveWindow:YES]; self.serverDisabledTextColorInactiveWindow = [self colorInGroup:serverCell withKey:@"disabledTextColor" forActiveWindow:NO]; - self.serverDisabledTextShadowColorActiveWindow = [self colorInGroup:serverCell withKey:@"disabledTextShadowColor" forActiveWindow:YES]; - self.serverDisabledTextShadowColorInactiveWindow = [self colorInGroup:serverCell withKey:@"disabledTextShadowColor" forActiveWindow:NO]; self.serverSelectedTextColorActiveWindow = [self colorInGroup:serverCell withKey:@"selectedTextColor" forActiveWindow:YES]; self.serverSelectedTextColorInactiveWindow = [self colorInGroup:serverCell withKey:@"selectedTextColor" forActiveWindow:NO]; - self.serverSelectedTextShadowColorActiveWindow = [self colorInGroup:serverCell withKey:@"selectedTextShadowColor" forActiveWindow:YES]; - self.serverSelectedTextShadowColorInactiveWindow = [self colorInGroup:serverCell withKey:@"selectedTextShadowColor" forActiveWindow:NO]; self.serverFont = [self fontInGroup:serverCell withKey:@"font"]; self.serverFontSelected = [self fontInGroup:serverCell withKey:@"fontSelected"]; - self.serverTopOffset = [self measurementInGroup:serverCell withKey:@"topOffset"]; NSDictionary *channelCell = properties[@"Channel Cell"]; self.channelRowEmphasized = [channelCell boolForKey:@"rowEmphasized"]; - self.channelRowHeight = [self measurementInGroup:channelCell withKey:@"rowHeight"]; - self.channelSelectionImageActiveWindow = [self imageInGroup:channelCell withKey:@"selectionImage" forActiveWindow:YES]; - self.channelSelectionImageInactiveWindow = [self imageInGroup:channelCell withKey:@"selectionImage" forActiveWindow:NO]; self.channelTextColorActiveWindow = [self colorInGroup:channelCell withKey:@"normalTextColor" forActiveWindow:YES]; self.channelTextColorInactiveWindow = [self colorInGroup:channelCell withKey:@"normalTextColor" forActiveWindow:NO]; - self.channelTextShadowColorActiveWindow = [self colorInGroup:channelCell withKey:@"normalTextShadowColor" forActiveWindow:YES]; - self.channelTextShadowColorInactiveWindow = [self colorInGroup:channelCell withKey:@"normalTextShadowColor" forActiveWindow:NO]; self.channelDisabledTextColorActiveWindow = [self colorInGroup:channelCell withKey:@"disabledTextColor" forActiveWindow:YES]; self.channelDisabledTextColorInactiveWindow = [self colorInGroup:channelCell withKey:@"disabledTextColor" forActiveWindow:NO]; - self.channelDisabledTextShadowColorActiveWindow = [self colorInGroup:channelCell withKey:@"disabledTextShadowColor" forActiveWindow:YES]; - self.channelDisabledTextShadowColorInactiveWindow = [self colorInGroup:channelCell withKey:@"disabledTextShadowColor" forActiveWindow:NO]; self.channelSelectedTextColorActiveWindow = [self colorInGroup:channelCell withKey:@"selectedTextColor" forActiveWindow:YES]; self.channelSelectedTextColorInactiveWindow = [self colorInGroup:channelCell withKey:@"selectedTextColor" forActiveWindow:NO]; - self.channelSelectedTextShadowColorActiveWindow = [self colorInGroup:channelCell withKey:@"selectedTextShadowColor" forActiveWindow:YES]; - self.channelSelectedTextShadowColorInactiveWindow = [self colorInGroup:channelCell withKey:@"selectedTextShadowColor" forActiveWindow:NO]; self.channelErroneousTextColorActiveWindow = [self colorInGroup:channelCell withKey:@"erroneousTextColor" forActiveWindow:YES]; self.channelErroneousTextColorInactiveWindow = [self colorInGroup:channelCell withKey:@"erroneousTextColor" forActiveWindow:NO]; self.channelHighlightTextColorActiveWindow = [self colorInGroup:channelCell withKey:@"highlightTextColor" forActiveWindow:YES]; self.channelHighlightTextColorInactiveWindow = [self colorInGroup:channelCell withKey:@"highlightTextColor" forActiveWindow:NO]; self.channelFont = [self fontInGroup:channelCell withKey:@"font"]; self.channelFontSelected = [self fontInGroup:channelCell withKey:@"fontSelected"]; - self.channelTopOffset = [self measurementInGroup:channelCell withKey:@"topOffset"]; NSDictionary *unreadBadge = properties[@"Unread Badge"]; @@ -246,16 +193,11 @@ NS_ASSUME_NONNULL_BEGIN self.unreadBadgeSelectedTextColorInactiveWindow = [self colorInGroup:unreadBadge withKey:@"selectedTextColor" forActiveWindow:NO]; self.unreadBadgeHighlightTextColorActiveWindow = [self colorInGroup:unreadBadge withKey:@"highlightTextColor" forActiveWindow:YES]; self.unreadBadgeHighlightTextColorInactiveWindow = [self colorInGroup:unreadBadge withKey:@"highlightTextColor" forActiveWindow:NO]; - self.unreadBadgeShadowColorActiveWindow = [self colorInGroup:unreadBadge withKey:@"shadowColor" forActiveWindow:YES]; - self.unreadBadgeShadowColorInactiveWindow = [self colorInGroup:unreadBadge withKey:@"shadowColor" forActiveWindow:NO]; self.unreadBadgeFont = [self fontInGroup:unreadBadge withKey:@"font"]; self.unreadBadgeFontSelected = [self fontInGroup:unreadBadge withKey:@"fontSelected"]; self.unreadBadgeMinimumWidth = [self measurementInGroup:unreadBadge withKey:@"minimumWidth"]; self.unreadBadgeHeight = [self measurementInGroup:unreadBadge withKey:@"height"]; self.unreadBadgePadding = [self measurementInGroup:unreadBadge withKey:@"padding"]; - self.unreadBadgeTextCenterYOffset = [self measurementInGroup:unreadBadge withKey:@"textCenterYOffset"]; - self.unreadBadgeTopOffset = [self measurementInGroup:unreadBadge withKey:@"topOffset"]; - self.unreadBadgeRightMargin = [self measurementInGroup:unreadBadge withKey:@"rightMargin"]; [self flushAppearanceProperties]; } @@ -263,64 +205,6 @@ NS_ASSUME_NONNULL_BEGIN #pragma mark - #pragma mark Everything Else -- (void)setOutlineViewDefaultDisclosureTriangle:(NSImage *)image -{ - if (self.serverList.outlineViewDefaultDisclosureTriangle == nil) { - self.serverList.outlineViewDefaultDisclosureTriangle = image; - } -} - -- (void)setOutlineViewAlternateDisclosureTriangle:(NSImage *)image -{ - if (self.serverList.outlineViewAlternateDisclosureTriangle == nil) { - self.serverList.outlineViewAlternateDisclosureTriangle = image; - } -} - -- (nullable NSImage *)disclosureTriangleInContext:(BOOL)up selected:(BOOL)selected -{ - TXAppearanceType appearanceType = self.appearanceType; - - switch (appearanceType) { - case TXAppearanceTypeMavericksAquaDark: - case TXAppearanceTypeMavericksGraphiteDark: - { - if (up) { - if (selected) { - return [NSImage imageNamed:@"MavericksDarkServerListViewDisclosureUpSelected"]; - } else { - return [NSImage imageNamed:@"MavericksDarkServerListViewDisclosureUp"]; - } - } else { - if (selected) { - return [NSImage imageNamed:@"MavericksDarkServerListViewDisclosureDownSelected"]; - } else { - return [NSImage imageNamed:@"MavericksDarkServerListViewDisclosureDown"]; - } - } - } // Mavericks - case TXAppearanceTypeYosemiteDark: - case TXAppearanceTypeMojaveDark: - { - if (up) { - return [NSImage imageNamed:@"YosemiteDarkServerListViewDisclosureUp"]; - } else { - return [NSImage imageNamed:@"YosemiteDarkServerListViewDisclosureDown"]; - } - } // Yosemite, Mojave - default: - { - break; - } - } // switch() - - if (up) { - return self.serverList.outlineViewDefaultDisclosureTriangle; - } else { - return self.serverList.outlineViewAlternateDisclosureTriangle; - } -} - - (nullable NSString *)statusIconForActiveChannel:(BOOL)isActive selected:(BOOL)isSelected activeWindow:(BOOL)isActiveWindow treatAsTemplate:(BOOL *)treatAsTemplate { NSParameterAssert(treatAsTemplate != NULL); @@ -328,24 +212,6 @@ NS_ASSUME_NONNULL_BEGIN TXAppearanceType appearanceType = self.appearanceType; switch (appearanceType) { - case TXAppearanceTypeMavericksAquaLight: - case TXAppearanceTypeMavericksGraphiteLight: - { - if (isActive) { - return @"channelRoomStatusIconMavericksLightActive"; - } else { - return @"channelRoomStatusIconMavericksLightInactive"; - } - } - case TXAppearanceTypeMavericksAquaDark: - case TXAppearanceTypeMavericksGraphiteDark: - { - if (isActive) { - return @"channelRoomStatusIconMavericksDarkActive"; - } else { - return @"channelRoomStatusIconMavericksDarkInactive"; - } - } // Mavericks case TXAppearanceTypeYosemiteLight: case TXAppearanceTypeMojaveLight: { @@ -357,18 +223,18 @@ NS_ASSUME_NONNULL_BEGIN *treatAsTemplate = NO; if (isActive) { - return @"channelRoomStatusIconYosemiteDarkActive"; + return @"channelRoomStatusIconDarkActive"; } else { - return @"channelRoomStatusIconYosemiteDarkInactive"; + return @"channelRoomStatusIconDarkInactive"; } } // quirk fix *treatAsTemplate = YES; if (isActive) { - return @"channelRoomStatusIconYosemiteLightActive"; + return @"channelRoomStatusIconLightActive"; } else { - return @"channelRoomStatusIconYosemiteLightInactive"; + return @"channelRoomStatusIconLightInactive"; } } // Yosemite, Mojave case TXAppearanceTypeYosemiteDark: @@ -377,9 +243,9 @@ NS_ASSUME_NONNULL_BEGIN *treatAsTemplate = NO; if (isActive) { - return @"channelRoomStatusIconYosemiteDarkActive"; + return @"channelRoomStatusIconDarkActive"; } else { - return @"channelRoomStatusIconYosemiteDarkInactive"; + return @"channelRoomStatusIconDarkInactive"; } } // Yosemite, Mojave } // switch() @@ -392,21 +258,6 @@ NS_ASSUME_NONNULL_BEGIN TXAppearanceType appearanceType = self.appearanceType; switch (appearanceType) { - case TXAppearanceTypeMavericksAquaLight: - case TXAppearanceTypeMavericksAquaDark: - case TXAppearanceTypeMavericksGraphiteLight: - case TXAppearanceTypeMavericksGraphiteDark: - { - if (isSelected) { - return @"NSUser"; - } - - if (isActive) { - return @"MavericksDarkServerListViewSelectedPrivateMessageUserActive"; - } else { - return @"MavericksDarkServerListViewSelectedPrivateMessageUserInactive"; - } - } // Mavericks case TXAppearanceTypeYosemiteLight: case TXAppearanceTypeMojaveLight: { @@ -439,44 +290,4 @@ NS_ASSUME_NONNULL_BEGIN @end -#pragma mark - - -@implementation TVCServerListMavericksBackgroundBox - -- (void)drawRect:(NSRect)dirtyRect -{ - /* The following is specialized drawing for the normal source list - background when inside a backed layer view. */ - TVCServerListAppearance *appearance = self.serverList.userInterfaceObjects; - - if (appearance == nil) { - return; - } - - NSColor *backgroundColor = nil; - - if (self.mainWindow.isActiveForDrawing) { - backgroundColor = appearance.backgroundColorActiveWindow; - } else { - backgroundColor = appearance.backgroundColorInactiveWindow; - } - - if ( backgroundColor) { - [backgroundColor set]; - - NSRectFill(self.bounds); - } else { - NSGradient *backgroundGradient = [NSGradient sourceListBackgroundGradientColor]; - - [backgroundGradient drawInRect:self.bounds angle:270.0]; - } -} - -- (BOOL)isOpaque -{ - return YES; -} - -@end - NS_ASSUME_NONNULL_END diff --git a/Sources/App/Classes/Views/Server List/TVCServerListCell.m b/Sources/App/Classes/Views/Server List/TVCServerListCell.m index 0561b518c..817c83002 100755 --- a/Sources/App/Classes/Views/Server List/TVCServerListCell.m +++ b/Sources/App/Classes/Views/Server List/TVCServerListCell.m @@ -60,12 +60,13 @@ NS_ASSUME_NONNULL_BEGIN @end @interface TVCServerListCell () +@property (nonatomic, weak, nullable) IBOutlet NSButton *disclosureTriangle; @property (nonatomic, weak) IBOutlet NSTextField *cellTextField; @property (nonatomic, weak) IBOutlet NSImageView *messageCountBadgeImageView; -@property (nonatomic, weak) IBOutlet NSLayoutConstraint *messageCountBadgeWidthConstraint; -@property (nonatomic, weak) IBOutlet NSLayoutConstraint *messageCountBadgeTrailingConstraint; -@property (nonatomic, weak) IBOutlet NSLayoutConstraint *textFieldTopConstraint; -@property (nonatomic, weak) IBOutlet NSLayoutConstraint *messageCountBadgeTopConstraint; +// Deactivating thse constraints will dereference them. +// We need to maintrain a strong reference. +@property (nonatomic, strong) IBOutlet NSLayoutConstraint *messageCountBadgeLeadingConstraint; +@property (nonatomic, strong) IBOutlet NSLayoutConstraint *messageCountBadgeTrailingConstraint; @property (readonly) BOOL isGroupItem; @property (readonly) TVCServerList *serverList; @property (readonly) __kindof TVCServerListRowCell *rowCell; @@ -88,35 +89,6 @@ NS_ASSUME_NONNULL_BEGIN #pragma mark - #pragma mark Cell Drawing -- (void)viewDidMoveToWindow -{ - [super viewDidMoveToWindow]; - - [self tx_updateConstraints]; -} - -- (void)tx_updateConstraints -{ - TVCServerListAppearance *appearance = self.userInterfaceObjects; - - if (appearance.isModernAppearance) { - [self updateConstraintsForYosemiteWithAppearance:appearance]; - } -} - -- (void)updateConstraintsForYosemiteWithAppearance:(TVCServerListAppearance *)appearance -{ - NSParameterAssert(appearance != nil); - - if (self.isGroupItem) { - self.textFieldTopConstraint.constant = appearance.serverTopOffset; - } else { - self.textFieldTopConstraint.constant = appearance.channelTopOffset; - - self.messageCountBadgeTopConstraint.constant = appearance.unreadBadgeTopOffset; - } -} - - (BOOL)wantsUpdateLayer { return YES; @@ -140,11 +112,7 @@ NS_ASSUME_NONNULL_BEGIN TVCServerListAppearance *appearance = self.userInterfaceObjects; - if (appearance.isModernAppearance) { - [self updateDrawingForYosemiteWithAppearance:appearance inContext:drawingContext]; - } else { - [self updateDrawingForMavericksWithAppearance:appearance inContext:drawingContext]; - } + [self updateDrawingForWithAppearance:appearance inContext:drawingContext]; } - (void)updateTextFieldInContext:(TVCServerListCellDrawingContext *)drawingContext @@ -174,26 +142,26 @@ NS_ASSUME_NONNULL_BEGIN if (isGroupItem) { if (isActive) { - [XRAccessibility setAccessibilityValueDescription:TXTLS(@"Accessibility[bmy-d2]", stringValueNew) forObject:textFieldCell]; + [textFieldCell setAccessibilityValueDescription:TXTLS(@"Accessibility[bmy-d2]", stringValueNew)]; } else { - [XRAccessibility setAccessibilityValueDescription:TXTLS(@"Accessibility[tu4-8u]", stringValueNew) forObject:textFieldCell]; + [textFieldCell setAccessibilityValueDescription:TXTLS(@"Accessibility[tu4-8u]", stringValueNew)]; } // isActive } else { if (((IRCChannel *)cellItem).isChannel == NO) { - [XRAccessibility setAccessibilityValueDescription:TXTLS(@"Accessibility[9sn-xp]", stringValueNew) forObject:textFieldCell]; + [textFieldCell setAccessibilityValueDescription:TXTLS(@"Accessibility[9sn-xp]", stringValueNew)]; } else { if (isActive) { - [XRAccessibility setAccessibilityValueDescription:TXTLS(@"Accessibility[75f-og]", stringValueNew) forObject:textFieldCell]; + [textFieldCell setAccessibilityValueDescription:TXTLS(@"Accessibility[75f-og]", stringValueNew)]; } else { - [XRAccessibility setAccessibilityValueDescription:TXTLS(@"Accessibility[edc-7o]", stringValueNew) forObject:textFieldCell]; + [textFieldCell setAccessibilityValueDescription:TXTLS(@"Accessibility[edc-7o]", stringValueNew)]; } // isActive } // isChannel - [XRAccessibility setAccessibilityLabel:nil forObject:self.imageView.cell]; + [self.imageView.cell setAccessibilityLabel:nil]; } // isGroupItem } -- (void)updateDrawingForYosemiteWithAppearance:(TVCServerListAppearance *)appearance inContext:(TVCServerListCellDrawingContext *)drawingContext +- (void)updateDrawingForWithAppearance:(TVCServerListAppearance *)appearance inContext:(TVCServerListCellDrawingContext *)drawingContext { NSParameterAssert(appearance != nil); NSParameterAssert(drawingContext != nil); @@ -225,7 +193,7 @@ NS_ASSUME_NONNULL_BEGIN self.imageView.image = icon; } - NSAttributedString *newValue = [self attributedTextFieldValueForYosemiteWithAppearance:appearance inContext:drawingContext]; + NSAttributedString *newValue = [self attributedTextFieldValueWithAppearance:appearance inContext:drawingContext]; self.cellTextField.attributedStringValue = newValue; @@ -234,191 +202,7 @@ NS_ASSUME_NONNULL_BEGIN } } -- (void)updateDrawingForMavericksWithAppearance:(TVCServerListAppearance *)appearance inContext:(TVCServerListCellDrawingContext *)drawingContext -{ - NSParameterAssert(appearance != nil); - NSParameterAssert(drawingContext != nil); - - BOOL isActive = drawingContext.isActive; - BOOL isWindowActive = drawingContext.isWindowActive; - BOOL isSelected = drawingContext.isSelected; - BOOL isGroupItem = drawingContext.isGroupItem; - - if (isGroupItem == NO) { - IRCTreeItem *cellItem = self.cellItem; - - IRCChannel *channel = (IRCChannel *)cellItem; - - NSString *iconName = nil; - - BOOL iconIsTemplate = NO; - - if (channel.isChannel) { - iconName = [appearance statusIconForActiveChannel:isActive selected:isSelected activeWindow:isWindowActive treatAsTemplate:&iconIsTemplate]; - } else { - iconName = [appearance statusIconForActiveQuery:isActive selected:isSelected activeWindow:isWindowActive treatAsTemplate:&iconIsTemplate]; - } // isChannel - - NSImage *icon = [NSImage imageNamed:iconName]; - - icon.template = iconIsTemplate; - - self.imageView.image = icon; - } - - NSAttributedString *newValue = [self attributedTextFieldValueForMavericksWithAppearance:appearance inContext:drawingContext]; - - self.cellTextField.attributedStringValue = newValue; - - if (isGroupItem == NO) { - [self populateMessageCountBadgeWithAppearance:appearance inContext:drawingContext]; - } -} - -- (NSAttributedString *)attributedTextFieldValueForMavericksWithAppearance:(TVCServerListAppearance *)appearance inContext:(TVCServerListCellDrawingContext *)drawingContext -{ - NSParameterAssert(appearance != nil); - NSParameterAssert(drawingContext != nil); - - BOOL isActive = drawingContext.isActive; - BOOL isGroupItem = drawingContext.isGroupItem; - BOOL isInverted = drawingContext.isInverted; - BOOL isSelected = drawingContext.isSelected; - BOOL isWindowActive = drawingContext.isWindowActive; - - NSTextField *textField = self.cellTextField; - - NSAttributedString *stringValue = textField.attributedStringValue; - - NSMutableAttributedString *mutableStringValue = [stringValue mutableCopy]; - - [mutableStringValue beginEditing]; - - NSFont *controlFont = nil; - - NSColor *controlColor = nil; - - NSShadow *itemShadow = nil; - - if (isGroupItem) - { - if (isSelected) { - controlFont = appearance.serverFontSelected; - } else { - controlFont = appearance.serverFont; - } // isSelected - - NSColor *shadowColor = nil; - - if (isSelected) { - if (isWindowActive) { - controlColor = appearance.serverSelectedTextColorActiveWindow; - shadowColor = appearance.serverSelectedTextShadowColorActiveWindow; - } else { - controlColor = appearance.serverSelectedTextColorInactiveWindow; - shadowColor = appearance.serverSelectedTextShadowColorInactiveWindow; - } // isWindowActive - } else if (isActive) { - if (isWindowActive) { - controlColor = appearance.serverTextColorActiveWindow; - shadowColor = appearance.serverTextShadowColorActiveWindow; - } else { - controlColor = appearance.serverTextColorInactiveWindow; - shadowColor = appearance.serverTextShadowColorInactiveWindow; - } // isWindowActive - } else { - if (isWindowActive) { - controlColor = appearance.serverDisabledTextColorActiveWindow; - shadowColor = appearance.serverDisabledTextShadowColorActiveWindow; - } else { - controlColor = appearance.serverDisabledTextColorInactiveWindow; - shadowColor = appearance.serverDisabledTextShadowColorInactiveWindow; - } // isWindowActive - } // isActive - - if (shadowColor) { - itemShadow = [NSShadow new]; - - itemShadow.shadowOffset = NSMakeSize(0.0, (-1.0)); - - if (isInverted) { - itemShadow.shadowBlurRadius = 1.0; - } - - itemShadow.shadowColor = shadowColor; - } // shadowColor - } - else // isGroupItem - { - if (isSelected) { - controlFont = appearance.channelFontSelected; - } else { - controlFont = appearance.channelFont; - } // isSelected - - NSColor *shadowColor = nil; - - if (isSelected) { - if (isWindowActive) { - controlColor = appearance.channelSelectedTextColorActiveWindow; - shadowColor = appearance.channelSelectedTextShadowColorActiveWindow; - } else { - controlColor = appearance.channelSelectedTextColorInactiveWindow; - shadowColor = appearance.channelSelectedTextShadowColorInactiveWindow; - } // isWindowActive - } else if (isActive) { - if (isWindowActive) { - controlColor = appearance.channelTextColorActiveWindow; - shadowColor = appearance.channelTextShadowColorActiveWindow; - } else { - controlColor = appearance.channelTextColorInactiveWindow; - shadowColor = appearance.channelTextShadowColorInactiveWindow; - } // isWindowActive - } else { - if (isWindowActive) { - controlColor = appearance.channelDisabledTextColorActiveWindow; - shadowColor = appearance.channelDisabledTextShadowColorActiveWindow; - } else { - controlColor = appearance.channelDisabledTextColorInactiveWindow; - shadowColor = appearance.channelDisabledTextShadowColorInactiveWindow; - } // isWindowActive - } // isActive - - if (shadowColor) { - itemShadow = [NSShadow new]; - - itemShadow.shadowBlurRadius = 1.0; - - itemShadow.shadowOffset = NSMakeSize(0.0, (-1.0)); - - if (isSelected && isInverted == NO) { - itemShadow.shadowBlurRadius = 2.0; - } - - itemShadow.shadowColor = shadowColor; - } // shadowColor - } // isGroupItem - - NSRange stringValueRange = stringValue.range; - - if (controlFont) { - [mutableStringValue addAttribute:NSFontAttributeName value:controlFont range:stringValueRange]; - } - - if (controlColor) { - [mutableStringValue addAttribute:NSForegroundColorAttributeName value:controlColor range:stringValueRange]; - } - - if (itemShadow) { - [mutableStringValue addAttribute:NSShadowAttributeName value:itemShadow range:stringValueRange]; - } - - [mutableStringValue endEditing]; - - return mutableStringValue; -} - -- (NSAttributedString *)attributedTextFieldValueForYosemiteWithAppearance:(TVCServerListAppearance *)appearance inContext:(TVCServerListCellDrawingContext *)drawingContext +- (NSAttributedString *)attributedTextFieldValueWithAppearance:(TVCServerListAppearance *)appearance inContext:(TVCServerListCellDrawingContext *)drawingContext { NSParameterAssert(appearance != nil); NSParameterAssert(drawingContext != nil); @@ -572,6 +356,10 @@ NS_ASSUME_NONNULL_BEGIN (isSelectedFrontmost == NO && isSelected && multipleRowsSelected) || (isWindowActive == NO && isSelected)); + if (associatedChannel.config.showTreeBadgeCount == NO) { + drawMessageBadge = NO; + } + NSUInteger treeUnreadCount = associatedChannel.treeUnreadCount; NSUInteger nicknameHighlightCount = associatedChannel.nicknameHighlightCount; @@ -581,18 +369,6 @@ NS_ASSUME_NONNULL_BEGIN isHighlight = NO; } - if (associatedChannel.config.showTreeBadgeCount == NO) { - if (appearance.isModernAppearance) { - drawMessageBadge = NO; /* On Yosemite we colorize the channel name itself. */ - } else { - if (isHighlight) { - treeUnreadCount = nicknameHighlightCount; - } else { - drawMessageBadge = NO; - } - } - } - /* Begin draw if we want to. */ if (treeUnreadCount > 0 && drawMessageBadge) { NSAttributedString *stringToDraw = [self messageCountBadgeTextForCount:treeUnreadCount isHighlight:isHighlight withAppearance:appearance inContext:drawingContext]; @@ -601,13 +377,15 @@ NS_ASSUME_NONNULL_BEGIN [self drawMessageCountBadgeWithString:stringToDraw inRect:badgeRect isHighlight:isHighlight withAppearance:appearance inContext:drawingContext]; - self.messageCountBadgeTrailingConstraint.constant = appearance.unreadBadgeRightMargin; - self.messageCountBadgeWidthConstraint.constant = NSWidth(badgeRect); + self.messageCountBadgeLeadingConstraint.active = YES; + self.messageCountBadgeTrailingConstraint.active = YES; } else { - self.messageCountBadgeTrailingConstraint.constant = 0.0; - self.messageCountBadgeWidthConstraint.constant = 0.0; - self.messageCountBadgeImageView.image = nil; + + /* Disable constraints when badge is not visible to + allow text field to hug the right of the table view. */ + self.messageCountBadgeLeadingConstraint.active = NO; + self.messageCountBadgeTrailingConstraint.active = NO; } } @@ -685,25 +463,13 @@ NS_ASSUME_NONNULL_BEGIN NSParameterAssert(appearance != nil); NSParameterAssert(drawingContext != nil); - BOOL isDrawingOnMavericks = (appearance.isModernAppearance == NO); BOOL isSelected = drawingContext.isSelected; BOOL isWindowActive = drawingContext.isWindowActive; - /* Create image that we will draw into. If we are drawing for Mavericks, - then the frame of our image is one point greater because we draw a shadow. */ - NSImage *badgeImage = nil; + /* Create image that we will draw into. */ + NSRect badgeFrame = NSMakeRect(0.0, 0.0, NSWidth(rectToDraw), NSHeight(rectToDraw)); - NSRect badgeFrame = NSZeroRect; - - if (isDrawingOnMavericks) { - badgeFrame = NSMakeRect(0.0, 1.0, NSWidth(rectToDraw), NSHeight(rectToDraw)); - - badgeImage = [NSImage newImageWithSize:NSMakeSize(NSWidth(rectToDraw), (NSHeight(rectToDraw) + 1.0))]; - } else { - badgeFrame = NSMakeRect(0.0, 0.0, NSWidth(rectToDraw), NSHeight(rectToDraw)); - - badgeImage = [NSImage newImageWithSize:NSMakeSize(NSWidth(rectToDraw), NSHeight(rectToDraw))]; - } // isDrawingOnMavericks + NSImage *badgeImage = [NSImage newImageWithSize:NSMakeSize(NSWidth(rectToDraw), NSHeight(rectToDraw))]; [badgeImage lockFocus]; @@ -736,32 +502,6 @@ NS_ASSUME_NONNULL_BEGIN } // isWindowActive } - /* Frame is dropped by 1 point to make room for shadow */ - if (isDrawingOnMavericks) { - if (isSelected == NO) { - NSRect shadowFrame = badgeFrame; - - shadowFrame.origin.y -= 1; - - /* The shadow frame is a round rectangle that matches the one - being drawn with a 1 point offset below the badge to give the - appearance of a drop shadow. */ - NSBezierPath *shadowPath = [NSBezierPath bezierPathWithRoundedRect:shadowFrame xRadius:7.0 yRadius:7.0]; - - NSColor *shadowColor = nil; - - if (isWindowActive) { - shadowColor = appearance.unreadBadgeShadowColorActiveWindow; - } else { - shadowColor = appearance.unreadBadgeShadowColorInactiveWindow; - } // isWindowActive - - [shadowColor set]; - - [shadowPath fill]; - } // isSelected - } // isDrawingOnMavericks - /* Draw the background of the badge */ NSBezierPath *badgePath = [NSBezierPath bezierPathWithRoundedRect:badgeFrame xRadius:7.0 yRadius:7.0]; @@ -774,8 +514,6 @@ NS_ASSUME_NONNULL_BEGIN NSMakePoint((NSMidX(badgeFrame) - (stringToDraw.size.width / 2.0)), (NSMidY(badgeFrame) - (stringToDraw.size.height / 2.0))); - badgeTextPoint.y += appearance.unreadBadgeTextCenterYOffset; - /* Perform draw and set image */ [stringToDraw drawAtPoint:badgeTextPoint]; @@ -784,64 +522,6 @@ NS_ASSUME_NONNULL_BEGIN self.messageCountBadgeImageView.image = badgeImage; } -#pragma mark - -#pragma mark Disclosure Triangle - -- (void)updateGroupDisclosureTriangle -{ - TVCServerListRowCell *rowCell = self.rowCell; - - NSButton *theButtonParent = nil; - - for (NSView *subview in rowCell.subviews) { - if ([subview isKindOfClass:[NSButton class]]) { - theButtonParent = (id)subview; - } - } - - if (theButtonParent) { - [self updateGroupDisclosureTriangle:theButtonParent isSelected:rowCell.isSelected setNeedsDisplay:YES]; - } else { - self.needsDisplay = YES; - } -} - -- (void)updateGroupDisclosureTriangle:(NSButton *)theButtonParent isSelected:(BOOL)isSelected setNeedsDisplay:(BOOL)setNeedsDisplay -{ - TVCServerListAppearance *appearance = self.userInterfaceObjects; - - NSButtonCell *theButton = theButtonParent.cell; - - [appearance setOutlineViewDefaultDisclosureTriangle:theButton.image]; - [appearance setOutlineViewAlternateDisclosureTriangle:theButton.alternateImage]; - - NSImage *primaryImage = [appearance disclosureTriangleInContext:YES selected:isSelected]; - NSImage *alternateImage = [appearance disclosureTriangleInContext:NO selected:isSelected]; - - // If the images are not nullified before setting the new, - // then NSImageView has some weird behavior on OS X Mountain Lion and - // OS X Mavericks that causes the images not to draw as intended. - theButton.image = nil; - theButton.image = primaryImage; - - theButton.alternateImage = nil; - theButton.alternateImage = alternateImage; - - if (appearance.isModernAppearance) { - theButton.highlightsBy = NSNoCellMask; - } else { - if (isSelected) { - theButton.backgroundStyle = NSBackgroundStyleLowered; - } else { - theButton.backgroundStyle = NSBackgroundStyleRaised; - } - } - - if (setNeedsDisplay) { - self.needsDisplay = YES; - } -} - #pragma mark - #pragma mark Cell Information @@ -970,22 +650,6 @@ NS_ASSUME_NONNULL_BEGIN - (void)setNeedsDisplayOnChild { - if (self.isGroupItem) { - NSButton *disclosureTriangle = nil; - - for (NSView *subview in self.subviews) { - if ([subview isKindOfClass:[NSButton class]]) { - disclosureTriangle = (id)subview; - } - } - - if (disclosureTriangle) { - [self.childCell updateGroupDisclosureTriangle:disclosureTriangle isSelected:self.isSelected setNeedsDisplay:YES]; - - return; - } - } - self.childCell.needsDisplay = YES; } @@ -999,68 +663,23 @@ NS_ASSUME_NONNULL_BEGIN TVCServerListAppearance *appearance = self.userInterfaceObjects; - if (appearance.isModernAppearance) - { - NSColor *selectionColor = nil; + NSColor *selectionColor = nil; - if (isWindowActive) { - selectionColor = appearance.rowSelectionColorActiveWindow; - } else { - selectionColor = appearance.rowSelectionColorInactiveWindow; - } // isWindowActive + if (isWindowActive) { + selectionColor = appearance.rowSelectionColorActiveWindow; + } else { + selectionColor = appearance.rowSelectionColorInactiveWindow; + } // isWindowActive - if (selectionColor) { - [selectionColor set]; + if (selectionColor) { + [selectionColor set]; - NSRect selectionRect = self.bounds; + NSRect selectionRect = self.bounds; - NSRectFill(selectionRect); - } else { - [super drawSelectionInRect:dirtyRect]; - } // selectionColor - } - else // Yosemite or later - { - NSImage *selectionImage = nil; - - if (self.isGroupItem) { - if (isWindowActive) { - selectionImage = appearance.serverSelectionImageActiveWindow; - } else { - selectionImage = appearance.serverSelectionImageInactiveWindow; - } // isWindowActive - } else { - if (isWindowActive) { - selectionImage = appearance.channelSelectionImageActiveWindow; - } else { - selectionImage = appearance.channelSelectionImageInactiveWindow; - } // isWindowActive - } // isGroupItem - - if (selectionImage) { - NSRect selectionRect = self.bounds; - - [selectionImage drawInRect:selectionRect - fromRect:NSZeroRect - operation:NSCompositeSourceOver - fraction:1.0 - respectFlipped:YES - hints:nil]; - } else { - [super drawSelectionInRect:dirtyRect]; - } // selectionImage - } // Yosemite or later -} - -- (void)didAddSubview:(NSView *)subview -{ - if ([subview isKindOfClass:[NSButton class]]) { - if (self.isGroupItem) { - [self.childCell updateGroupDisclosureTriangle:(id)subview isSelected:self.isSelected setNeedsDisplay:NO]; - } - } - - [super didAddSubview:subview]; + NSRectFill(selectionRect); + } else { + [super drawSelectionInRect:dirtyRect]; + } // selectionColor } #pragma mark - diff --git a/Sources/App/Classes/Views/TVCAppearance.m b/Sources/App/Classes/Views/TVCAppearance.m index 52fea85b5..3227af008 100644 --- a/Sources/App/Classes/Views/TVCAppearance.m +++ b/Sources/App/Classes/Views/TVCAppearance.m @@ -562,19 +562,11 @@ ClassWithDesignatedInitializerInitMethod return nil; } - BOOL onElCapitan = TEXTUAL_RUNNING_ON_ELCAPITAN; - CGFloat weight = [fontProperties doubleForKey:@"weight"]; if ([name isEqualToString:@"System"]) { - CGFloat systemWeight = ((onElCapitan) ? weight : NSFontWeightRegular); - - if (weight == NSFontWeightRegular) { - return [NSFont systemFontOfSize:size]; - } else { - return [NSFont systemFontOfSize:size weight:systemWeight]; - } + return [NSFont systemFontOfSize:size weight:weight]; } else if ([name isEqualToString:@"SystemBold"]) { @@ -582,21 +574,11 @@ ClassWithDesignatedInitializerInitMethod } else if ([name isEqualToString:@"SystemMonospace"]) { - CGFloat systemWeight = ((onElCapitan) ? weight : NSFontWeightRegular); - - if (onElCapitan) { - return [NSFont monospacedDigitSystemFontOfSize:size weight:systemWeight]; - } else { - return [NSFont systemFontOfSize:size]; - } + return [NSFont monospacedDigitSystemFontOfSize:size weight:weight]; } else if ([name isEqualToString:@"SystemMonospaceBold"]) { - if (onElCapitan) { - return [NSFont monospacedDigitSystemFontOfSize:size weight:NSFontWeightBold]; - } else { - return [NSFont boldSystemFontOfSize:size]; - } + return [NSFont monospacedDigitSystemFontOfSize:size weight:NSFontWeightBold]; } if (weight > 0) { @@ -810,11 +792,6 @@ DESIGNATED_INITIALIZER_EXCEPTION_BODY_END return self.applicationProperties.isDarkAppearance; } -- (BOOL)isModernAppearance -{ - return self.applicationProperties.isModernAppearance; -} - - (TXAppKitAppearanceTarget)appKitAppearanceTarget { return self.applicationProperties.appKitAppearanceTarget; diff --git a/Sources/App/Classes/Views/TVCContentNavigationOutlineView.m b/Sources/App/Classes/Views/TVCContentNavigationOutlineView.m index af15dadd7..8b1b938cb 100644 --- a/Sources/App/Classes/Views/TVCContentNavigationOutlineView.m +++ b/Sources/App/Classes/Views/TVCContentNavigationOutlineView.m @@ -43,8 +43,6 @@ NS_ASSUME_NONNULL_BEGIN @interface TVCContentNavigationOutlineView () @property (nonatomic, strong) IBOutlet NSView *contentView; -@property (nonatomic, weak) IBOutlet NSLayoutConstraint *contentViewHeightConstraint; -@property (nonatomic, weak) IBOutlet NSLayoutConstraint *contentViewWidthConstraint; @property (nonatomic, weak, nullable, readwrite) TVCContentNavigationOutlineViewItem *selectedItem; @property (nonatomic, weak, nullable) TVCContentNavigationOutlineViewItem *lastSelection; @property (readonly, nullable) TVCContentNavigationOutlineViewItem *parentOfLastSelection; @@ -234,9 +232,7 @@ NS_ASSUME_NONNULL_BEGIN - (void)presentView:(NSView *)newView { - [self.contentView attachSubview:newView - adjustedWidthConstraint:self.contentViewWidthConstraint - adjustedHeightConstraint:self.contentViewHeightConstraint]; + [self.contentView replaceFirstSubview:newView]; } @end diff --git a/Sources/App/Classes/Views/TVCDockIcon.m b/Sources/App/Classes/Views/TVCDockIcon.m index fe7ed04e7..0cb222229 100755 --- a/Sources/App/Classes/Views/TVCDockIcon.m +++ b/Sources/App/Classes/Views/TVCDockIcon.m @@ -134,8 +134,6 @@ static NSInteger _cachedMessageCount = (-1); BOOL showRedBadge = (messageCount >= 1); BOOL showGreenBadge = (highlightCount >= 1); - BOOL onYosemite = TEXTUAL_RUNNING_ON_YOSEMITE; - /* ////////////////////////////////////////////////////////// */ /* Define Text Drawing Globals */ /* ////////////////////////////////////////////////////////// */ @@ -144,25 +142,12 @@ static NSInteger _cachedMessageCount = (-1); NSMutableAttributedString *badgeText = [NSMutableAttributedString alloc]; - NSDictionary *badgeTextAttributes = nil; + CGFloat badgeTextFrameCorrection = 2.0; - CGFloat badgeTextFrameCorrection = 0.0; - - if (onYosemite) { - badgeTextFrameCorrection = 2.0; - - badgeTextAttributes = @{ - NSFontAttributeName : [NSFont fontWithName:@"Helvetica" size:24.0], - NSForegroundColorAttributeName : [NSColor whiteColor] - }; - } else { - badgeTextFrameCorrection = 1.0; - - badgeTextAttributes = @{ - NSFontAttributeName : [NSFont fontWithName:@"Helvetica" size:22.0], - NSForegroundColorAttributeName : [NSColor whiteColor] - }; - } + NSDictionary *badgeTextAttributes = @{ + NSFontAttributeName : [NSFont fontWithName:@"Helvetica" size:24.0], + NSForegroundColorAttributeName : [NSColor whiteColor] + }; /* ////////////////////////////////////////////////////////// */ /* Load Drawing Images */ @@ -170,34 +155,13 @@ static NSInteger _cachedMessageCount = (-1); NSImage *appIcon = [[self applicationIcon] copy]; - NSImage *redBadgeLeft = nil; - NSImage *redBadgeCenter = nil; - NSImage *redBadgeRight = nil; + NSImage *redBadgeLeft = [NSImage imageNamed:@"DIRedBadgeLeft.ping"]; + NSImage *redBadgeCenter = [NSImage imageNamed:@"DIRedBadgeCenter.ping"]; + NSImage *redBadgeRight = [NSImage imageNamed:@"DIRedBadgeRight.ping"]; - NSImage *greenBadgeLeft = nil; - NSImage *greenBadgeCenter = nil; - NSImage *greenBadgeRight = nil; - - if (onYosemite) - { - redBadgeLeft = [NSImage imageNamed:@"DIRedBadgeLeftYosemite.png"]; - redBadgeCenter = [NSImage imageNamed:@"DIRedBadgeCenterYosemite.png"]; - redBadgeRight = [NSImage imageNamed:@"DIRedBadgeRightYosemite.png"]; - - greenBadgeLeft = [NSImage imageNamed:@"DIGreenBadgeLeftYosemite.png"]; - greenBadgeCenter = [NSImage imageNamed:@"DIGreenBadgeCenterYosemite.png"]; - greenBadgeRight = [NSImage imageNamed:@"DIGreenBadgeRightYosemite.png"]; - } - else - { - redBadgeLeft = [NSImage imageNamed:@"DIRedBadgeLeftMavericks.png"]; - redBadgeCenter = [NSImage imageNamed:@"DIRedBadgeCenterMavericks.png"]; - redBadgeRight = [NSImage imageNamed:@"DIRedBadgeRightMavericks.png"]; - - greenBadgeLeft = [NSImage imageNamed:@"DIGreenBadgeLeftMavericks.png"]; - greenBadgeCenter = [NSImage imageNamed:@"DIGreenBadgeCenterMavericks.png"]; - greenBadgeRight = [NSImage imageNamed:@"DIGreenBadgeRightMavericks.png"]; - } + NSImage *greenBadgeLeft = [NSImage imageNamed:@"DIGreenBadgeLeft.ping"]; + NSImage *greenBadgeCenter = [NSImage imageNamed:@"DIGreenBadgeCenter.ping"]; + NSImage *greenBadgeRight = [NSImage imageNamed:@"DIGreenBadgeRight.ping"]; /* ////////////////////////////////////////////////////////// */ /* Build Scaling Frames */ @@ -209,46 +173,23 @@ static NSInteger _cachedMessageCount = (-1); [appIcon lockFocus]; - if (onYosemite) - { - /* Red Badge Size */ - redBadgeRightFrame.size.height = 53.0; - redBadgeCenterFrame.size.height = 53.0; - redBadgeLeftFrame.size.height = 53.0; + /* Red Badge Size */ + redBadgeRightFrame.size.height = 53.0; + redBadgeCenterFrame.size.height = 53.0; + redBadgeLeftFrame.size.height = 53.0; - redBadgeLeftFrame.size.width = 27.0; - redBadgeCenterFrame.size.width = [self badgeCenterTileWidthForYosemite:messageCount]; - redBadgeRightFrame.size.width = 26.0; + redBadgeLeftFrame.size.width = 27.0; + redBadgeCenterFrame.size.width = [self badgeCenterTileWidth:messageCount]; + redBadgeRightFrame.size.width = 26.0; - /* Green Badge Size */ - greenBadgeRightFrame.size.height = 53.0; - greenBadgeCenterFrame.size.height = 53.0; - greenBadgeLeftFrame.size.height = 53.0; + /* Green Badge Size */ + greenBadgeRightFrame.size.height = 53.0; + greenBadgeCenterFrame.size.height = 53.0; + greenBadgeLeftFrame.size.height = 53.0; - greenBadgeLeftFrame.size.width = 27.0; - greenBadgeCenterFrame.size.width = [self badgeCenterTileWidthForYosemite:highlightCount]; - greenBadgeRightFrame.size.width = 26.0; - } - else - { - /* Red Badge Size */ - redBadgeRightFrame.size.height = 44.0; - redBadgeCenterFrame.size.height = 44.0; - redBadgeLeftFrame.size.height = 44.0; - - redBadgeLeftFrame.size.width = 21.0; - redBadgeCenterFrame.size.width = [self badgeCenterTileWidthForMavericks:messageCount]; - redBadgeRightFrame.size.width = 20.0; - - /* Green Badge Size */ - greenBadgeRightFrame.size.height = 44.0; - greenBadgeCenterFrame.size.height = 44.0; - greenBadgeLeftFrame.size.height = 44.0; - - greenBadgeLeftFrame.size.width = 21.0; - greenBadgeCenterFrame.size.width = [self badgeCenterTileWidthForMavericks:highlightCount]; - greenBadgeRightFrame.size.width = 20.0; - } + greenBadgeLeftFrame.size.width = 27.0; + greenBadgeCenterFrame.size.width = [self badgeCenterTileWidth:highlightCount]; + greenBadgeRightFrame.size.width = 26.0; /* ////////////////////////////////////////////////////////// */ @@ -314,9 +255,9 @@ static NSInteger _cachedMessageCount = (-1); /* Red Badge */ if (showRedBadge) { - [redBadgeLeft drawInRect:redBadgeLeftFrame fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1.0]; - [redBadgeCenter drawInRect:redBadgeCenterFrame fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1.0]; - [redBadgeRight drawInRect:redBadgeRightFrame fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1.0]; + [redBadgeLeft drawInRect:redBadgeLeftFrame fromRect:NSZeroRect operation:NSCompositingOperationSourceOver fraction:1.0]; + [redBadgeCenter drawInRect:redBadgeCenterFrame fromRect:NSZeroRect operation:NSCompositingOperationSourceOver fraction:1.0]; + [redBadgeRight drawInRect:redBadgeRightFrame fromRect:NSZeroRect operation:NSCompositingOperationSourceOver fraction:1.0]; /* Red Badge Text */ badgeText = [badgeText initWithString:[NSString stringWithInteger:messageCount] attributes:badgeTextAttributes]; @@ -341,9 +282,9 @@ static NSInteger _cachedMessageCount = (-1); if (showGreenBadge) { /* Green Badge */ - [greenBadgeLeft drawInRect:greenBadgeLeftFrame fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1.0]; - [greenBadgeCenter drawInRect:greenBadgeCenterFrame fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1.0]; - [greenBadgeRight drawInRect:greenBadgeRightFrame fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1.0]; + [greenBadgeLeft drawInRect:greenBadgeLeftFrame fromRect:NSZeroRect operation:NSCompositingOperationSourceOver fraction:1.0]; + [greenBadgeCenter drawInRect:greenBadgeCenterFrame fromRect:NSZeroRect operation:NSCompositingOperationSourceOver fraction:1.0]; + [greenBadgeRight drawInRect:greenBadgeRightFrame fromRect:NSZeroRect operation:NSCompositingOperationSourceOver fraction:1.0]; /* Green Badge Text */ badgeText = [badgeText initWithString:[NSString stringWithInteger:highlightCount] attributes:badgeTextAttributes]; @@ -379,31 +320,7 @@ static NSInteger _cachedMessageCount = (-1); [NSApp setApplicationIconImage:appIcon]; } -+ (CGFloat)badgeCenterTileWidthForMavericks:(NSUInteger)badgeCount -{ - switch (badgeCount) { - case 1 ... 9: - { - return 5.0; - } - case 10 ... 99: - { - return 16.0; - } - case 100 ... 999: - { - return 28.0; - } - case 1000 ... 9999: - { - return 38.0; - } - } - - return 1.0; -} - -+ (CGFloat)badgeCenterTileWidthForYosemite:(NSUInteger)badgeCount ++ (CGFloat)badgeCenterTileWidth:(NSUInteger)badgeCount { switch (badgeCount) { case 1 ... 9: diff --git a/Sources/App/Classes/Views/User List/TVCMemberList.m b/Sources/App/Classes/Views/User List/TVCMemberList.m index 911f9446d..8cbf5077e 100755 --- a/Sources/App/Classes/Views/User List/TVCMemberList.m +++ b/Sources/App/Classes/Views/User List/TVCMemberList.m @@ -59,7 +59,6 @@ NSString * const TVCMemberListDragType = @"TVCMemberListDragType"; @property (nonatomic, assign) NSInteger lastRowShownUserInfoPopover; @property (nonatomic, strong, readwrite) TVCMemberListAppearance *userInterfaceObjects; @property (nonatomic, weak, readwrite) IBOutlet NSVisualEffectView *visualEffectView; -@property (nonatomic, weak, readwrite) IBOutlet TVCMemberListMavericksBackgroundBox *backgroundView; @property (nonatomic, strong, readwrite) IBOutlet TVCMemberListUserInfoPopover *memberListUserInfoPopover; @end @@ -514,22 +513,16 @@ NSString * const TVCMemberListDragType = @"TVCMemberListDragType"; { NSParameterAssert(appearance != nil); - BOOL onYosemite = TEXTUAL_RUNNING_ON_YOSEMITE; - /* We assign a strong reference to these instead of returning the original value every time so that there are no race conditions for when it changes. */ self.userInterfaceObjects = appearance; - if (onYosemite) { - [self updateVibrancyWithAppearance:appearance]; - } + [self updateVibrancyWithAppearance:appearance]; - if (onYosemite == NO) { - if (appearance.isDarkAppearance) { - self.enclosingScrollView.scrollerKnobStyle = NSScrollerKnobStyleLight; - } else { - self.enclosingScrollView.scrollerKnobStyle = NSScrollerKnobStyleDark; - } + if (appearance.isDarkAppearance) { + self.enclosingScrollView.scrollerKnobStyle = NSScrollerKnobStyleLight; + } else { + self.enclosingScrollView.scrollerKnobStyle = NSScrollerKnobStyleDark; } self.needsDisplay = YES; @@ -559,10 +552,6 @@ NSString * const TVCMemberListDragType = @"TVCMemberListDragType"; - (void)respondToRequiresRedraw { - if (self.backgroundView) { - self.backgroundView.needsDisplay = YES; - } - [self refreshAllDrawings:YES]; } diff --git a/Sources/App/Classes/Views/User List/TVCMemberListAppearance.m b/Sources/App/Classes/Views/User List/TVCMemberListAppearance.m index e26da7390..d97980c95 100644 --- a/Sources/App/Classes/Views/User List/TVCMemberListAppearance.m +++ b/Sources/App/Classes/Views/User List/TVCMemberListAppearance.m @@ -46,10 +46,6 @@ NS_ASSUME_NONNULL_BEGIN -@interface TVCMemberListMavericksBackgroundBox () -@property (nonatomic, weak) IBOutlet TVCMemberList *memberList; -@end - @interface TVCMemberListAppearance () @property (nonatomic, weak, readwrite) TVCMemberList *memberList; @@ -57,8 +53,6 @@ NS_ASSUME_NONNULL_BEGIN @property (nonatomic, assign, readwrite) CGFloat minimumWidth; @property (nonatomic, assign, readwrite) CGFloat maximumWidth; -@property (nonatomic, copy, nullable, readwrite) NSColor *backgroundColorActiveWindow; -@property (nonatomic, copy, nullable, readwrite) NSColor *backgroundColorInactiveWindow; @property (nonatomic, copy, nullable, readwrite) NSColor *rowSelectionColorActiveWindow; @property (nonatomic, copy, nullable, readwrite) NSColor *rowSelectionColorInactiveWindow; @@ -66,24 +60,14 @@ NS_ASSUME_NONNULL_BEGIN #pragma mark Member Cell @property (nonatomic, assign, readwrite) BOOL cellRowEmphasized; -@property (nonatomic, assign, readwrite) CGFloat cellRowHeight; -@property (nonatomic, copy, nullable, readwrite) NSImage *cellSelectionImageActiveWindow; -@property (nonatomic, copy, nullable, readwrite) NSImage *cellSelectionImageInactiveWindow; @property (nonatomic, copy, nullable, readwrite) NSColor *cellTextColorActiveWindow; @property (nonatomic, copy, nullable, readwrite) NSColor *cellTextColorInactiveWindow; -@property (nonatomic, copy, nullable, readwrite) NSColor *cellTextShadowColorActiveWindow; -@property (nonatomic, copy, nullable, readwrite) NSColor *cellTextShadowColorInactiveWindow; @property (nonatomic, copy, nullable, readwrite) NSColor *cellAwayTextColorActiveWindow; @property (nonatomic, copy, nullable, readwrite) NSColor *cellAwayTextColorInactiveWindow; -@property (nonatomic, copy, nullable, readwrite) NSColor *cellAwayTextShadowColorActiveWindow; -@property (nonatomic, copy, nullable, readwrite) NSColor *cellAwayTextShadowColorInactiveWindow; @property (nonatomic, copy, nullable, readwrite) NSColor *cellSelectedTextColorActiveWindow; @property (nonatomic, copy, nullable, readwrite) NSColor *cellSelectedTextColorInactiveWindow; -@property (nonatomic, copy, nullable, readwrite) NSColor *cellSelectedTextShadowColorActiveWindow; -@property (nonatomic, copy, nullable, readwrite) NSColor *cellSelectedTextShadowColorInactiveWindow; @property (nonatomic, copy, nullable, readwrite) NSFont *cellFont; @property (nonatomic, copy, nullable, readwrite) NSFont *cellFontSelected; -@property (nonatomic, assign, readwrite) CGFloat cellTopOffset; #pragma mark - #pragma mark Mark Badge @@ -96,13 +80,8 @@ NS_ASSUME_NONNULL_BEGIN @property (nonatomic, copy, nullable, readwrite) NSColor *markBadgeTextColorInactiveWindow; @property (nonatomic, copy, nullable, readwrite) NSColor *markBadgeSelectedTextColorActiveWindow; @property (nonatomic, copy, nullable, readwrite) NSColor *markBadgeSelectedTextColorInactiveWindow; -@property (nonatomic, copy, nullable, readwrite) NSColor *markBadgeShadowColorActiveWindow; -@property (nonatomic, copy, nullable, readwrite) NSColor *markBadgeShadowColorInactiveWindow; @property (nonatomic, copy, nullable, readwrite) NSFont *markBadgeFont; @property (nonatomic, copy, nullable, readwrite) NSFont *markBadgeFontSelected; -@property (nonatomic, assign, readwrite) CGFloat markBadgeWidth; -@property (nonatomic, assign, readwrite) CGFloat markBadgeHeight; -@property (nonatomic, assign, readwrite) CGFloat markBadgeTopOffset; @property (nonatomic, strong, nullable) NSCache *cachedUserMarkBadges; @end @@ -149,30 +128,18 @@ NS_ASSUME_NONNULL_BEGIN self.rowSelectionColorActiveWindow = [self colorForKey:@"selectionColor" forActiveWindow:YES]; self.rowSelectionColorInactiveWindow = [self colorForKey:@"selectionColor" forActiveWindow:NO]; - self.backgroundColorActiveWindow = [self colorForKey:@"backgroundColor" forActiveWindow:YES]; - self.backgroundColorInactiveWindow = [self colorForKey:@"backgroundColor" forActiveWindow:NO]; NSDictionary *memberCell = properties[@"Member Cell"]; self.cellRowEmphasized = [memberCell boolForKey:@"rowEmphasized"]; - self.cellRowHeight = [self measurementInGroup:memberCell withKey:@"rowHeight"]; - self.cellSelectionImageActiveWindow = [self imageInGroup:memberCell withKey:@"selectionImage" forActiveWindow:YES]; - self.cellSelectionImageInactiveWindow = [self imageInGroup:memberCell withKey:@"selectionImage" forActiveWindow:NO]; self.cellTextColorActiveWindow = [self colorInGroup:memberCell withKey:@"normalTextColor" forActiveWindow:YES]; self.cellTextColorInactiveWindow = [self colorInGroup:memberCell withKey:@"normalTextColor" forActiveWindow:NO]; - self.cellTextShadowColorActiveWindow = [self colorInGroup:memberCell withKey:@"normalTextShadowColor" forActiveWindow:YES]; - self.cellTextShadowColorInactiveWindow = [self colorInGroup:memberCell withKey:@"normalTextShadowColor" forActiveWindow:NO]; self.cellAwayTextColorActiveWindow = [self colorInGroup:memberCell withKey:@"awayTextColor" forActiveWindow:YES]; self.cellAwayTextColorInactiveWindow = [self colorInGroup:memberCell withKey:@"awayTextColor" forActiveWindow:NO]; - self.cellAwayTextShadowColorActiveWindow = [self colorInGroup:memberCell withKey:@"awayTextShadowColor" forActiveWindow:YES]; - self.cellAwayTextShadowColorInactiveWindow = [self colorInGroup:memberCell withKey:@"awayTextShadowColor" forActiveWindow:NO]; self.cellSelectedTextColorActiveWindow = [self colorInGroup:memberCell withKey:@"selectedTextColor" forActiveWindow:YES]; self.cellSelectedTextColorInactiveWindow = [self colorInGroup:memberCell withKey:@"selectedTextColor" forActiveWindow:NO]; - self.cellSelectedTextShadowColorActiveWindow = [self colorInGroup:memberCell withKey:@"selectedTextShadowColor" forActiveWindow:YES]; - self.cellSelectedTextShadowColorInactiveWindow = [self colorInGroup:memberCell withKey:@"selectedTextShadowColor" forActiveWindow:NO]; self.cellFont = [self fontInGroup:memberCell withKey:@"font"]; self.cellFontSelected = [self fontInGroup:memberCell withKey:@"fontSelected"]; - self.cellTopOffset = [self measurementInGroup:memberCell withKey:@"topOffset"]; NSDictionary *markBadge = properties[@"Mark Badge"]; @@ -184,13 +151,8 @@ NS_ASSUME_NONNULL_BEGIN self.markBadgeTextColorInactiveWindow = [self colorInGroup:markBadge withKey:@"normalTextColor" forActiveWindow:NO]; self.markBadgeSelectedTextColorActiveWindow = [self colorInGroup:markBadge withKey:@"selectedTextColor" forActiveWindow:YES]; self.markBadgeSelectedTextColorInactiveWindow = [self colorInGroup:markBadge withKey:@"selectedTextColor" forActiveWindow:NO]; - self.markBadgeShadowColorActiveWindow = [self colorInGroup:markBadge withKey:@"shadowColor" forActiveWindow:YES]; - self.markBadgeShadowColorInactiveWindow = [self colorInGroup:markBadge withKey:@"shadowColor" forActiveWindow:NO]; self.markBadgeFont = [self fontInGroup:markBadge withKey:@"font"]; self.markBadgeFontSelected = [self fontInGroup:markBadge withKey:@"fontSelected"]; - self.markBadgeWidth = [self measurementInGroup:markBadge withKey:@"width"]; - self.markBadgeHeight = [self measurementInGroup:markBadge withKey:@"height"]; - self.markBadgeTopOffset = [self measurementInGroup:markBadge withKey:@"topOffset"]; [self flushAppearanceProperties]; } @@ -274,11 +236,7 @@ NS_ASSUME_NONNULL_BEGIN return nil; } - if (self.isModernAppearance) { - return [defaultColor colorWithAlphaComponent:0.7]; - } else { - return defaultColor; - } + return [defaultColor colorWithAlphaComponent:0.7]; } - (NSColor *)markBadgeBackgroundColor_Y // InspIRCd-2.0 @@ -318,44 +276,4 @@ NS_ASSUME_NONNULL_BEGIN @end -#pragma mark - - -@implementation TVCMemberListMavericksBackgroundBox - -- (void)drawRect:(NSRect)dirtyRect -{ - /* The following is specialized drawing for the normal source list - background when inside a backed layer view. */ - TVCMemberListAppearance *appearance = self.memberList.userInterfaceObjects; - - if (appearance == nil) { - return; - } - - NSColor *backgroundColor = nil; - - if (self.mainWindow.isActiveForDrawing) { - backgroundColor = appearance.backgroundColorActiveWindow; - } else { - backgroundColor = appearance.backgroundColorInactiveWindow; - } - - if ( backgroundColor) { - [backgroundColor set]; - - NSRectFill(self.bounds); - } else { - NSGradient *backgroundGradient = [NSGradient sourceListBackgroundGradientColor]; - - [backgroundGradient drawInRect:self.bounds angle:270.0]; - } -} - -- (BOOL)isOpaque -{ - return YES; -} - -@end - NS_ASSUME_NONNULL_END diff --git a/Sources/App/Classes/Views/User List/TVCMemberListCell.m b/Sources/App/Classes/Views/User List/TVCMemberListCell.m index db554854a..a415f392c 100755 --- a/Sources/App/Classes/Views/User List/TVCMemberListCell.m +++ b/Sources/App/Classes/Views/User List/TVCMemberListCell.m @@ -61,9 +61,6 @@ NS_ASSUME_NONNULL_BEGIN @interface TVCMemberListCell () @property (nonatomic, weak) IBOutlet NSTextField *cellTextField; -@property (nonatomic, weak) IBOutlet NSLayoutConstraint *textFieldTopConstraint; -@property (nonatomic, weak) IBOutlet NSLayoutConstraint *userMarkBadgeTopConstraint; -@property (nonatomic, weak) IBOutlet NSLayoutConstraint *userMarkBadgeWidthConstraint; @property (readonly, copy) TVCMemberListCellDrawingContext *drawingContext; @property (readonly) TVCMemberList *memberList; @property (readonly) TVCMemberListRowCell *rowCell; @@ -83,33 +80,6 @@ NS_ASSUME_NONNULL_BEGIN #pragma mark - #pragma mark Drawing -- (void)viewDidMoveToWindow -{ - [super viewDidMoveToWindow]; - - [self tx_updateConstraints]; -} - -- (void)tx_updateConstraints -{ - TVCMemberListAppearance *appearance = self.userInterfaceObjects; - - if (appearance.isModernAppearance) { - [self updateConstraintsForYosemiteWithAppearance:appearance]; - } -} - -- (void)updateConstraintsForYosemiteWithAppearance:(TVCMemberListAppearance *)appearance -{ - NSParameterAssert(appearance != nil); - - self.textFieldTopConstraint.constant = appearance.cellTopOffset; - - self.userMarkBadgeTopConstraint.constant = appearance.markBadgeTopOffset; - - self.userMarkBadgeWidthConstraint.constant = appearance.markBadgeWidth; -} - - (BOOL)wantsUpdateLayer { return YES; @@ -133,11 +103,7 @@ NS_ASSUME_NONNULL_BEGIN TVCMemberListAppearance *appearance = self.userInterfaceObjects; - if (appearance.isModernAppearance) { - [self updateDrawingForYosemiteWithAppearance:appearance inContext:drawingContext]; - } else { - [self updateDrawingForMavericksWithAppearance:appearance inContext:drawingContext]; - } + [self updateDrawingWithAppearance:appearance inContext:drawingContext]; [self updateMarkBadgeWithAppearance:appearance inContext:drawingContext]; } @@ -164,121 +130,20 @@ NS_ASSUME_NONNULL_BEGIN /* Update accessibility */ NSTextFieldCell *textFieldCell = textField.cell; - [XRAccessibility setAccessibilityValueDescription:TXTLS(@"Accessibility[alq-6s]", stringValueNew) forObject:textFieldCell]; + [textFieldCell setAccessibilityValueDescription:TXTLS(@"Accessibility[alq-6s]", stringValueNew)]; } -- (void)updateDrawingForYosemiteWithAppearance:(TVCMemberListAppearance *)appearance inContext:(TVCMemberListCellDrawingContext *)drawingContext +- (void)updateDrawingWithAppearance:(TVCMemberListAppearance *)appearance inContext:(TVCMemberListCellDrawingContext *)drawingContext { NSParameterAssert(appearance != nil); NSParameterAssert(drawingContext != nil); - NSAttributedString *newValue = [self attributedTextFieldValueForYosemiteWithAppearance:appearance inContext:drawingContext]; + NSAttributedString *newValue = [self attributedTextFieldValueWithAppearance:appearance inContext:drawingContext]; self.cellTextField.attributedStringValue = newValue; } -- (void)updateDrawingForMavericksWithAppearance:(TVCMemberListAppearance *)appearance inContext:(TVCMemberListCellDrawingContext *)drawingContext -{ - NSParameterAssert(appearance != nil); - NSParameterAssert(drawingContext != nil); - - NSAttributedString *newValue = [self attributedTextFieldValueForMavericksWithAppearance:appearance inContext:drawingContext]; - - self.cellTextField.attributedStringValue = newValue; -} - -- (NSAttributedString *)attributedTextFieldValueForMavericksWithAppearance:(TVCMemberListAppearance *)appearance inContext:(TVCMemberListCellDrawingContext *)drawingContext -{ - NSParameterAssert(appearance != nil); - NSParameterAssert(drawingContext != nil); - - BOOL isInverted = drawingContext.isInverted; - BOOL isSelected = drawingContext.isSelected; - BOOL isWindowActive = drawingContext.isWindowActive; - - IRCChannelUser *cellItem = self.cellItem; - - NSTextField *textField = self.cellTextField; - - NSAttributedString *stringValue = textField.attributedStringValue; - - NSMutableAttributedString *mutableStringValue = [stringValue mutableCopy]; - - [mutableStringValue beginEditing]; - - NSFont *controlFont = nil; - - if (isSelected) { - controlFont = appearance.cellFontSelected; - } else { - controlFont = appearance.cellFont; - } // isSelected - - NSColor *controlColor = nil; - NSColor *shadowColor = nil; - - if (isSelected) { - if (isWindowActive) { - controlColor = appearance.cellSelectedTextColorActiveWindow; - shadowColor = appearance.cellSelectedTextShadowColorActiveWindow; - } else { - controlColor = appearance.cellSelectedTextColorInactiveWindow; - shadowColor = appearance.cellSelectedTextShadowColorInactiveWindow; - } // isWindowActive - } else if (cellItem.user.isAway) { - if (isWindowActive) { - controlColor = appearance.cellAwayTextColorActiveWindow; - shadowColor = appearance.cellAwayTextShadowColorActiveWindow; - } else { - controlColor = appearance.cellAwayTextColorInactiveWindow; - shadowColor = appearance.cellAwayTextShadowColorInactiveWindow; - } // isWindowActive - } else { - if (isWindowActive) { - controlColor = appearance.cellTextColorActiveWindow; - shadowColor = appearance.cellTextShadowColorActiveWindow; - } else { - controlColor = appearance.cellTextColorInactiveWindow; - shadowColor = appearance.cellTextShadowColorInactiveWindow; - } // isWindowActive - } // isActive - - NSShadow *itemShadow = nil; - - if (shadowColor) { - itemShadow = [NSShadow new]; - - itemShadow.shadowBlurRadius = 1.0; - - itemShadow.shadowOffset = NSMakeSize(0.0, (-1.0)); - - if (isSelected && isInverted == NO) { - itemShadow.shadowBlurRadius = 2.0; - } - - itemShadow.shadowColor = shadowColor; - } // shadowColor - - NSRange stringValueRange = stringValue.range; - - if (controlFont) { - [mutableStringValue addAttribute:NSFontAttributeName value:controlFont range:stringValueRange]; - } - - if (controlColor) { - [mutableStringValue addAttribute:NSForegroundColorAttributeName value:controlColor range:stringValueRange]; - } - - if (itemShadow) { - [mutableStringValue addAttribute:NSShadowAttributeName value:itemShadow range:stringValueRange]; - } - - [mutableStringValue endEditing]; - - return mutableStringValue; -} - -- (NSAttributedString *)attributedTextFieldValueForYosemiteWithAppearance:(TVCMemberListAppearance *)appearance inContext:(TVCMemberListCellDrawingContext *)drawingContext +- (NSAttributedString *)attributedTextFieldValueWithAppearance:(TVCMemberListAppearance *)appearance inContext:(TVCMemberListCellDrawingContext *)drawingContext { NSParameterAssert(appearance != nil); NSParameterAssert(drawingContext != nil); @@ -429,23 +294,12 @@ NS_ASSUME_NONNULL_BEGIN BOOL isWindowActive = drawingContext.isWindowActive; - BOOL isDrawingOnMavericks = (appearance.isModernAppearance == NO); + /* Create image that we will draw into. */ + NSRect imageViewFrame = self.imageView.frame; - /* Create image that we will draw into. If we are drawing for Mavericks, - then the frame of our image is one pixel greater because we draw a shadow. */ - NSImage *badgeImage = nil; + NSRect badgeFrame = NSMakeRect(0.0, 0.0, imageViewFrame.size.width, imageViewFrame.size.height); - NSRect badgeFrame = NSZeroRect; - - if (isDrawingOnMavericks) { - badgeFrame = NSMakeRect(0.0, 1.0, appearance.markBadgeWidth, appearance.markBadgeHeight); - - badgeImage = [NSImage newImageWithSize:NSMakeSize(NSWidth(badgeFrame), (NSHeight(badgeFrame) + 1.0))]; - } else { - badgeFrame = NSMakeRect(0.0, 0.0, appearance.markBadgeWidth, appearance.markBadgeHeight); - - badgeImage = [NSImage newImageWithSize:NSMakeSize(NSWidth(badgeFrame), NSHeight(badgeFrame))]; - } + NSImage *badgeImage = [NSImage newImageWithSize:NSMakeSize(NSWidth(badgeFrame), NSHeight(badgeFrame))]; [badgeImage lockFocus]; @@ -493,29 +347,6 @@ NS_ASSUME_NONNULL_BEGIN } } - /* Frame is dropped by 1 to make room for shadow */ - if (isDrawingOnMavericks) { - if (isSelected == NO) { - NSRect shadowFrame = badgeFrame; - - shadowFrame.origin.y -= 1; - - NSBezierPath *shadowPath = [NSBezierPath bezierPathWithRoundedRect:shadowFrame xRadius:4.0 yRadius:4.0]; - - NSColor *shadowColor = nil; - - if (isWindowActive) { - shadowColor = appearance.markBadgeShadowColorActiveWindow; - } else { - shadowColor = appearance.markBadgeShadowColorInactiveWindow; - } // isWindowActive - - [shadowColor set]; - - [shadowPath fill]; - } // isSelected - } // isDrawingOnMavericks - /* Draw the background of the badge */ NSBezierPath *badgePath = [NSBezierPath bezierPathWithRoundedRect:badgeFrame xRadius:4.0 yRadius:4.0]; @@ -837,49 +668,23 @@ NS_ASSUME_NONNULL_BEGIN TVCMemberListAppearance *appearance = self.userInterfaceObjects; - if (appearance.isModernAppearance) - { - NSColor *selectionColor = nil; + NSColor *selectionColor = nil; - if (isWindowActive) { - selectionColor = appearance.rowSelectionColorActiveWindow; - } else { - selectionColor = appearance.rowSelectionColorInactiveWindow; - } // isWindowActive + if (isWindowActive) { + selectionColor = appearance.rowSelectionColorActiveWindow; + } else { + selectionColor = appearance.rowSelectionColorInactiveWindow; + } // isWindowActive - if (selectionColor) { - [selectionColor set]; + if (selectionColor) { + [selectionColor set]; - NSRect selectionRect = self.bounds; + NSRect selectionRect = self.bounds; - NSRectFill(selectionRect); - } else { - [super drawSelectionInRect:dirtyRect]; - } // selectionColor - } - else - { - NSImage *selectionImage = nil; - - if (isWindowActive) { - selectionImage = appearance.cellSelectionImageActiveWindow; - } else { - selectionImage = appearance.cellSelectionImageInactiveWindow; - } // isWindowActive - - if (selectionImage) { - NSRect selectionRect = self.bounds; - - [selectionImage drawInRect:selectionRect - fromRect:NSZeroRect - operation:NSCompositeSourceOver - fraction:1.0 - respectFlipped:YES - hints:nil]; - } else { - [super drawSelectionInRect:dirtyRect]; - } // selectionImage - } // Yosemite or later + NSRectFill(selectionRect); + } else { + [super drawSelectionInRect:dirtyRect]; + } // selectionColor } #pragma mark - diff --git a/Sources/App/Resources/Images/Buddy List/BuddyListDropArea.png b/Sources/App/Resources/Images/Buddy List/BuddyListDropArea.png deleted file mode 100644 index 1f0478bb2..000000000 Binary files a/Sources/App/Resources/Images/Buddy List/BuddyListDropArea.png and /dev/null differ diff --git a/Sources/App/Resources/Images/Buddy List/BuddyListDropArea@2x.png b/Sources/App/Resources/Images/Buddy List/BuddyListDropArea@2x.png deleted file mode 100644 index 5b80443d0..000000000 Binary files a/Sources/App/Resources/Images/Buddy List/BuddyListDropArea@2x.png and /dev/null differ diff --git a/Sources/App/Resources/Images/Buddy List/BuddyListDropAreaOriginal.zip b/Sources/App/Resources/Images/Buddy List/BuddyListDropAreaOriginal.zip deleted file mode 100644 index b646c4ed5..000000000 Binary files a/Sources/App/Resources/Images/Buddy List/BuddyListDropAreaOriginal.zip and /dev/null differ diff --git a/Sources/App/Resources/Images/Dock Icon Badges/Green/Yosemite/DIGreenBadgeCenterYosemite.png b/Sources/App/Resources/Images/Dock Icon Badges/Green/DIGreenBadgeCenter.png similarity index 100% rename from Sources/App/Resources/Images/Dock Icon Badges/Green/Yosemite/DIGreenBadgeCenterYosemite.png rename to Sources/App/Resources/Images/Dock Icon Badges/Green/DIGreenBadgeCenter.png diff --git a/Sources/App/Resources/Images/Dock Icon Badges/Green/Yosemite/DIGreenBadgeLeftYosemite.png b/Sources/App/Resources/Images/Dock Icon Badges/Green/DIGreenBadgeLeft.png similarity index 100% rename from Sources/App/Resources/Images/Dock Icon Badges/Green/Yosemite/DIGreenBadgeLeftYosemite.png rename to Sources/App/Resources/Images/Dock Icon Badges/Green/DIGreenBadgeLeft.png diff --git a/Sources/App/Resources/Images/Dock Icon Badges/Green/Yosemite/DIGreenBadgeRightYosemite.png b/Sources/App/Resources/Images/Dock Icon Badges/Green/DIGreenBadgeRight.png similarity index 100% rename from Sources/App/Resources/Images/Dock Icon Badges/Green/Yosemite/DIGreenBadgeRightYosemite.png rename to Sources/App/Resources/Images/Dock Icon Badges/Green/DIGreenBadgeRight.png diff --git a/Sources/App/Resources/Images/Dock Icon Badges/Green/Mavericks/DIGreenBadgeCenterMavericks.png b/Sources/App/Resources/Images/Dock Icon Badges/Green/Mavericks/DIGreenBadgeCenterMavericks.png deleted file mode 100644 index 2ff87b056..000000000 Binary files a/Sources/App/Resources/Images/Dock Icon Badges/Green/Mavericks/DIGreenBadgeCenterMavericks.png and /dev/null differ diff --git a/Sources/App/Resources/Images/Dock Icon Badges/Green/Mavericks/DIGreenBadgeLeftMavericks.png b/Sources/App/Resources/Images/Dock Icon Badges/Green/Mavericks/DIGreenBadgeLeftMavericks.png deleted file mode 100644 index 8a7af4a90..000000000 Binary files a/Sources/App/Resources/Images/Dock Icon Badges/Green/Mavericks/DIGreenBadgeLeftMavericks.png and /dev/null differ diff --git a/Sources/App/Resources/Images/Dock Icon Badges/Green/Mavericks/DIGreenBadgeRightMavericks.png b/Sources/App/Resources/Images/Dock Icon Badges/Green/Mavericks/DIGreenBadgeRightMavericks.png deleted file mode 100644 index b82efb696..000000000 Binary files a/Sources/App/Resources/Images/Dock Icon Badges/Green/Mavericks/DIGreenBadgeRightMavericks.png and /dev/null differ diff --git a/Sources/App/Resources/Images/Dock Icon Badges/Red/Yosemite/DIRedBadgeCenterYosemite.png b/Sources/App/Resources/Images/Dock Icon Badges/Red/DIRedBadgeCenter.png similarity index 100% rename from Sources/App/Resources/Images/Dock Icon Badges/Red/Yosemite/DIRedBadgeCenterYosemite.png rename to Sources/App/Resources/Images/Dock Icon Badges/Red/DIRedBadgeCenter.png diff --git a/Sources/App/Resources/Images/Dock Icon Badges/Red/Yosemite/DIRedBadgeLeftYosemite.png b/Sources/App/Resources/Images/Dock Icon Badges/Red/DIRedBadgeLeft.png similarity index 100% rename from Sources/App/Resources/Images/Dock Icon Badges/Red/Yosemite/DIRedBadgeLeftYosemite.png rename to Sources/App/Resources/Images/Dock Icon Badges/Red/DIRedBadgeLeft.png diff --git a/Sources/App/Resources/Images/Dock Icon Badges/Red/Yosemite/DIRedBadgeRightYosemite.png b/Sources/App/Resources/Images/Dock Icon Badges/Red/DIRedBadgeRight.png similarity index 100% rename from Sources/App/Resources/Images/Dock Icon Badges/Red/Yosemite/DIRedBadgeRightYosemite.png rename to Sources/App/Resources/Images/Dock Icon Badges/Red/DIRedBadgeRight.png diff --git a/Sources/App/Resources/Images/Dock Icon Badges/Red/Mavericks/DIRedBadgeCenterMavericks.png b/Sources/App/Resources/Images/Dock Icon Badges/Red/Mavericks/DIRedBadgeCenterMavericks.png deleted file mode 100755 index 6e8c9178e..000000000 Binary files a/Sources/App/Resources/Images/Dock Icon Badges/Red/Mavericks/DIRedBadgeCenterMavericks.png and /dev/null differ diff --git a/Sources/App/Resources/Images/Dock Icon Badges/Red/Mavericks/DIRedBadgeLeftMavericks.png b/Sources/App/Resources/Images/Dock Icon Badges/Red/Mavericks/DIRedBadgeLeftMavericks.png deleted file mode 100644 index c659d79f8..000000000 Binary files a/Sources/App/Resources/Images/Dock Icon Badges/Red/Mavericks/DIRedBadgeLeftMavericks.png and /dev/null differ diff --git a/Sources/App/Resources/Images/Dock Icon Badges/Red/Mavericks/DIRedBadgeRightMavericks.png b/Sources/App/Resources/Images/Dock Icon Badges/Red/Mavericks/DIRedBadgeRightMavericks.png deleted file mode 100644 index 1191555c0..000000000 Binary files a/Sources/App/Resources/Images/Dock Icon Badges/Red/Mavericks/DIRedBadgeRightMavericks.png and /dev/null differ diff --git a/Sources/App/Resources/Images/Status Badges/channelRoomStatusIconYosemiteDarkActive.tif b/Sources/App/Resources/Images/Status Badges/channelRoomStatusIconDarkActive.tif similarity index 100% rename from Sources/App/Resources/Images/Status Badges/channelRoomStatusIconYosemiteDarkActive.tif rename to Sources/App/Resources/Images/Status Badges/channelRoomStatusIconDarkActive.tif diff --git a/Sources/App/Resources/Images/Status Badges/channelRoomStatusIconYosemiteDarkActive@2x.tif b/Sources/App/Resources/Images/Status Badges/channelRoomStatusIconDarkActive@2x.tif similarity index 100% rename from Sources/App/Resources/Images/Status Badges/channelRoomStatusIconYosemiteDarkActive@2x.tif rename to Sources/App/Resources/Images/Status Badges/channelRoomStatusIconDarkActive@2x.tif diff --git a/Sources/App/Resources/Images/Status Badges/channelRoomStatusIconYosemiteDarkInactive.tif b/Sources/App/Resources/Images/Status Badges/channelRoomStatusIconDarkInactive.tif similarity index 100% rename from Sources/App/Resources/Images/Status Badges/channelRoomStatusIconYosemiteDarkInactive.tif rename to Sources/App/Resources/Images/Status Badges/channelRoomStatusIconDarkInactive.tif diff --git a/Sources/App/Resources/Images/Status Badges/channelRoomStatusIconYosemiteDarkInactive@2x.tif b/Sources/App/Resources/Images/Status Badges/channelRoomStatusIconDarkInactive@2x.tif similarity index 100% rename from Sources/App/Resources/Images/Status Badges/channelRoomStatusIconYosemiteDarkInactive@2x.tif rename to Sources/App/Resources/Images/Status Badges/channelRoomStatusIconDarkInactive@2x.tif diff --git a/Sources/App/Resources/Images/Status Badges/channelRoomStatusIconYosemiteLightActive.tif b/Sources/App/Resources/Images/Status Badges/channelRoomStatusIconLightActive.tif similarity index 100% rename from Sources/App/Resources/Images/Status Badges/channelRoomStatusIconYosemiteLightActive.tif rename to Sources/App/Resources/Images/Status Badges/channelRoomStatusIconLightActive.tif diff --git a/Sources/App/Resources/Images/Status Badges/channelRoomStatusIconYosemiteLightActive@2x.tif b/Sources/App/Resources/Images/Status Badges/channelRoomStatusIconLightActive@2x.tif similarity index 100% rename from Sources/App/Resources/Images/Status Badges/channelRoomStatusIconYosemiteLightActive@2x.tif rename to Sources/App/Resources/Images/Status Badges/channelRoomStatusIconLightActive@2x.tif diff --git a/Sources/App/Resources/Images/Status Badges/channelRoomStatusIconYosemiteLightInactive.tif b/Sources/App/Resources/Images/Status Badges/channelRoomStatusIconLightInactive.tif similarity index 100% rename from Sources/App/Resources/Images/Status Badges/channelRoomStatusIconYosemiteLightInactive.tif rename to Sources/App/Resources/Images/Status Badges/channelRoomStatusIconLightInactive.tif diff --git a/Sources/App/Resources/Images/Status Badges/channelRoomStatusIconYosemiteLightInactive@2x.tif b/Sources/App/Resources/Images/Status Badges/channelRoomStatusIconLightInactive@2x.tif similarity index 100% rename from Sources/App/Resources/Images/Status Badges/channelRoomStatusIconYosemiteLightInactive@2x.tif rename to Sources/App/Resources/Images/Status Badges/channelRoomStatusIconLightInactive@2x.tif diff --git a/Sources/App/Resources/Images/Status Badges/channelRoomStatusIconMavericksDarkActive.tif b/Sources/App/Resources/Images/Status Badges/channelRoomStatusIconMavericksDarkActive.tif deleted file mode 100644 index 96f7b1c91..000000000 Binary files a/Sources/App/Resources/Images/Status Badges/channelRoomStatusIconMavericksDarkActive.tif and /dev/null differ diff --git a/Sources/App/Resources/Images/Status Badges/channelRoomStatusIconMavericksDarkActive@2x.tif b/Sources/App/Resources/Images/Status Badges/channelRoomStatusIconMavericksDarkActive@2x.tif deleted file mode 100644 index 967794f9c..000000000 Binary files a/Sources/App/Resources/Images/Status Badges/channelRoomStatusIconMavericksDarkActive@2x.tif and /dev/null differ diff --git a/Sources/App/Resources/Images/Status Badges/channelRoomStatusIconMavericksDarkInactive.tif b/Sources/App/Resources/Images/Status Badges/channelRoomStatusIconMavericksDarkInactive.tif deleted file mode 100644 index a7493542b..000000000 Binary files a/Sources/App/Resources/Images/Status Badges/channelRoomStatusIconMavericksDarkInactive.tif and /dev/null differ diff --git a/Sources/App/Resources/Images/Status Badges/channelRoomStatusIconMavericksDarkInactive@2x.tif b/Sources/App/Resources/Images/Status Badges/channelRoomStatusIconMavericksDarkInactive@2x.tif deleted file mode 100644 index f1eefab2f..000000000 Binary files a/Sources/App/Resources/Images/Status Badges/channelRoomStatusIconMavericksDarkInactive@2x.tif and /dev/null differ diff --git a/Sources/App/Resources/Images/Status Badges/channelRoomStatusIconMavericksLightActive.tif b/Sources/App/Resources/Images/Status Badges/channelRoomStatusIconMavericksLightActive.tif deleted file mode 100644 index e71f0ad99..000000000 Binary files a/Sources/App/Resources/Images/Status Badges/channelRoomStatusIconMavericksLightActive.tif and /dev/null differ diff --git a/Sources/App/Resources/Images/Status Badges/channelRoomStatusIconMavericksLightActive@2x.tif b/Sources/App/Resources/Images/Status Badges/channelRoomStatusIconMavericksLightActive@2x.tif deleted file mode 100644 index 284747609..000000000 Binary files a/Sources/App/Resources/Images/Status Badges/channelRoomStatusIconMavericksLightActive@2x.tif and /dev/null differ diff --git a/Sources/App/Resources/Images/Status Badges/channelRoomStatusIconMavericksLightInactive.tif b/Sources/App/Resources/Images/Status Badges/channelRoomStatusIconMavericksLightInactive.tif deleted file mode 100644 index 78b4c6328..000000000 Binary files a/Sources/App/Resources/Images/Status Badges/channelRoomStatusIconMavericksLightInactive.tif and /dev/null differ diff --git a/Sources/App/Resources/Images/Status Badges/channelRoomStatusIconMavericksLightInactive@2x.tif b/Sources/App/Resources/Images/Status Badges/channelRoomStatusIconMavericksLightInactive@2x.tif deleted file mode 100644 index aee50f042..000000000 Binary files a/Sources/App/Resources/Images/Status Badges/channelRoomStatusIconMavericksLightInactive@2x.tif and /dev/null differ diff --git a/Sources/App/Resources/Images/User Interface/Server List/Black/MavericksDarkChannelCellSelection.tif b/Sources/App/Resources/Images/User Interface/Server List/Black/MavericksDarkChannelCellSelection.tif deleted file mode 100755 index 52e08af2d..000000000 Binary files a/Sources/App/Resources/Images/User Interface/Server List/Black/MavericksDarkChannelCellSelection.tif and /dev/null differ diff --git a/Sources/App/Resources/Images/User Interface/Server List/Black/MavericksDarkChannelCellSelection@2x.tif b/Sources/App/Resources/Images/User Interface/Server List/Black/MavericksDarkChannelCellSelection@2x.tif deleted file mode 100644 index e2339f2a7..000000000 Binary files a/Sources/App/Resources/Images/User Interface/Server List/Black/MavericksDarkChannelCellSelection@2x.tif and /dev/null differ diff --git a/Sources/App/Resources/Images/User Interface/Server List/Black/MavericksDarkServerCellSelection.tif b/Sources/App/Resources/Images/User Interface/Server List/Black/MavericksDarkServerCellSelection.tif deleted file mode 100755 index a73a07d0b..000000000 Binary files a/Sources/App/Resources/Images/User Interface/Server List/Black/MavericksDarkServerCellSelection.tif and /dev/null differ diff --git a/Sources/App/Resources/Images/User Interface/Server List/Black/MavericksDarkServerCellSelection@2x.tif b/Sources/App/Resources/Images/User Interface/Server List/Black/MavericksDarkServerCellSelection@2x.tif deleted file mode 100644 index 9f2e08e84..000000000 Binary files a/Sources/App/Resources/Images/User Interface/Server List/Black/MavericksDarkServerCellSelection@2x.tif and /dev/null differ diff --git a/Sources/App/Resources/Images/User Interface/Server List/Black/MavericksDarkServerListViewDisclosureDown.tif b/Sources/App/Resources/Images/User Interface/Server List/Black/MavericksDarkServerListViewDisclosureDown.tif deleted file mode 100644 index 52ae18c94..000000000 Binary files a/Sources/App/Resources/Images/User Interface/Server List/Black/MavericksDarkServerListViewDisclosureDown.tif and /dev/null differ diff --git a/Sources/App/Resources/Images/User Interface/Server List/Black/MavericksDarkServerListViewDisclosureDown@2x.tif b/Sources/App/Resources/Images/User Interface/Server List/Black/MavericksDarkServerListViewDisclosureDown@2x.tif deleted file mode 100644 index 12149b241..000000000 Binary files a/Sources/App/Resources/Images/User Interface/Server List/Black/MavericksDarkServerListViewDisclosureDown@2x.tif and /dev/null differ diff --git a/Sources/App/Resources/Images/User Interface/Server List/Black/MavericksDarkServerListViewDisclosureDownSelected.tif b/Sources/App/Resources/Images/User Interface/Server List/Black/MavericksDarkServerListViewDisclosureDownSelected.tif deleted file mode 100644 index 41e9e688e..000000000 Binary files a/Sources/App/Resources/Images/User Interface/Server List/Black/MavericksDarkServerListViewDisclosureDownSelected.tif and /dev/null differ diff --git a/Sources/App/Resources/Images/User Interface/Server List/Black/MavericksDarkServerListViewDisclosureDownSelected@2x.tif b/Sources/App/Resources/Images/User Interface/Server List/Black/MavericksDarkServerListViewDisclosureDownSelected@2x.tif deleted file mode 100644 index 65f240a7d..000000000 Binary files a/Sources/App/Resources/Images/User Interface/Server List/Black/MavericksDarkServerListViewDisclosureDownSelected@2x.tif and /dev/null differ diff --git a/Sources/App/Resources/Images/User Interface/Server List/Black/MavericksDarkServerListViewDisclosureUp.tif b/Sources/App/Resources/Images/User Interface/Server List/Black/MavericksDarkServerListViewDisclosureUp.tif deleted file mode 100644 index 5ca0f45ff..000000000 Binary files a/Sources/App/Resources/Images/User Interface/Server List/Black/MavericksDarkServerListViewDisclosureUp.tif and /dev/null differ diff --git a/Sources/App/Resources/Images/User Interface/Server List/Black/MavericksDarkServerListViewDisclosureUp@2x.tif b/Sources/App/Resources/Images/User Interface/Server List/Black/MavericksDarkServerListViewDisclosureUp@2x.tif deleted file mode 100644 index 42c89725e..000000000 Binary files a/Sources/App/Resources/Images/User Interface/Server List/Black/MavericksDarkServerListViewDisclosureUp@2x.tif and /dev/null differ diff --git a/Sources/App/Resources/Images/User Interface/Server List/Black/MavericksDarkServerListViewDisclosureUpSelected.tif b/Sources/App/Resources/Images/User Interface/Server List/Black/MavericksDarkServerListViewDisclosureUpSelected.tif deleted file mode 100644 index 7ba0da97f..000000000 Binary files a/Sources/App/Resources/Images/User Interface/Server List/Black/MavericksDarkServerListViewDisclosureUpSelected.tif and /dev/null differ diff --git a/Sources/App/Resources/Images/User Interface/Server List/Black/MavericksDarkServerListViewDisclosureUpSelected@2x.tif b/Sources/App/Resources/Images/User Interface/Server List/Black/MavericksDarkServerListViewDisclosureUpSelected@2x.tif deleted file mode 100644 index eb152f22c..000000000 Binary files a/Sources/App/Resources/Images/User Interface/Server List/Black/MavericksDarkServerListViewDisclosureUpSelected@2x.tif and /dev/null differ diff --git a/Sources/App/Resources/Images/User Interface/Server List/Black/MavericksDarkServerListViewSelectedPrivateMessageUserActive.tif b/Sources/App/Resources/Images/User Interface/Server List/Black/MavericksDarkServerListViewSelectedPrivateMessageUserActive.tif deleted file mode 100644 index ed0b5acf9..000000000 Binary files a/Sources/App/Resources/Images/User Interface/Server List/Black/MavericksDarkServerListViewSelectedPrivateMessageUserActive.tif and /dev/null differ diff --git a/Sources/App/Resources/Images/User Interface/Server List/Black/MavericksDarkServerListViewSelectedPrivateMessageUserInactive.tif b/Sources/App/Resources/Images/User Interface/Server List/Black/MavericksDarkServerListViewSelectedPrivateMessageUserInactive.tif deleted file mode 100644 index 077bfab0e..000000000 Binary files a/Sources/App/Resources/Images/User Interface/Server List/Black/MavericksDarkServerListViewSelectedPrivateMessageUserInactive.tif and /dev/null differ diff --git a/Sources/App/Resources/Images/User Interface/Server List/Glass/YosemiteDarkServerListViewDisclosureDown.tif b/Sources/App/Resources/Images/User Interface/Server List/Glass/YosemiteDarkServerListViewDisclosureDown.tif deleted file mode 100644 index 35200b4c7..000000000 Binary files a/Sources/App/Resources/Images/User Interface/Server List/Glass/YosemiteDarkServerListViewDisclosureDown.tif and /dev/null differ diff --git a/Sources/App/Resources/Images/User Interface/Server List/Glass/YosemiteDarkServerListViewDisclosureUp.tif b/Sources/App/Resources/Images/User Interface/Server List/Glass/YosemiteDarkServerListViewDisclosureUp.tif deleted file mode 100644 index 3c159f7a2..000000000 Binary files a/Sources/App/Resources/Images/User Interface/Server List/Glass/YosemiteDarkServerListViewDisclosureUp.tif and /dev/null differ diff --git a/Sources/App/Resources/Language Files/en.lproj/TDCPreferencesController.strings b/Sources/App/Resources/Language Files/en.lproj/TDCPreferencesController.strings index 81103ebe4..905537215 100644 --- a/Sources/App/Resources/Language Files/en.lproj/TDCPreferencesController.strings +++ b/Sources/App/Resources/Language Files/en.lproj/TDCPreferencesController.strings @@ -35,7 +35,7 @@ * *********************************************************************** */ -"r62-4k" = "Are you sure you want to delete everything uploaded to iCloud thats related to Textual?"; +"r62-4k" = "Are you sure you want to delete everything uploaded to iCloud by Textual?"; "t8v-w8" = "This action will not effect the configuration of this device or others."; "70s-c6" = "No Log Location Selected"; diff --git a/Sources/App/Resources/Property Lists/Application Properties/Info.plist b/Sources/App/Resources/Property Lists/Application Properties/Info.plist index fc753ac9a..4e93a359f 100755 --- a/Sources/App/Resources/Property Lists/Application Properties/Info.plist +++ b/Sources/App/Resources/Property Lists/Application Properties/Info.plist @@ -29,7 +29,7 @@ NSMainNibFile TXCMainMenu LSMinimumSystemVersion - 10.9.5 + 10.12 NSPrincipalClass TXApplication NSContactsUsageDescription diff --git a/Sources/App/Resources/Property Lists/Application Properties/InfoAppStore.plist b/Sources/App/Resources/Property Lists/Application Properties/InfoAppStore.plist index 033a3a40b..421b409c3 100755 --- a/Sources/App/Resources/Property Lists/Application Properties/InfoAppStore.plist +++ b/Sources/App/Resources/Property Lists/Application Properties/InfoAppStore.plist @@ -29,7 +29,7 @@ NSMainNibFile TXCMainMenu LSMinimumSystemVersion - 10.9.5 + 10.12 NSPrincipalClass TXApplication NSContactsUsageDescription diff --git a/Sources/App/Resources/Property Lists/StaticStore.plist b/Sources/App/Resources/Property Lists/StaticStore.plist index a08def7eb..c43418617 100644 --- a/Sources/App/Resources/Property Lists/StaticStore.plist +++ b/Sources/App/Resources/Property Lists/StaticStore.plist @@ -220,11 +220,11 @@ THOPluginManager Extras Installer Latest Extension Versions com.codeux.app-extensions.textual-BlowfishEncryption - 1.0.16 + 1.0.17 com.codeux.app-extensions.textual-Caffeine - 1.0.7 + 1.0.8 com.codeux.app-extensions.textual-WikiStyleLinkParser - 1.0.7 + 1.0.8 Spelling Ignores diff --git a/Sources/App/Resources/Scripting/Script Files/Textual Extras Installer/Installer Resources/en.lproj/Welcome.rtf b/Sources/App/Resources/Scripting/Script Files/Textual Extras Installer/Installer Resources/en.lproj/Welcome.rtf index 31d14fc54..b276fe50e 100644 --- a/Sources/App/Resources/Scripting/Script Files/Textual Extras Installer/Installer Resources/en.lproj/Welcome.rtf +++ b/Sources/App/Resources/Scripting/Script Files/Textual Extras Installer/Installer Resources/en.lproj/Welcome.rtf @@ -1,4 +1,4 @@ -{\rtf1\ansi\ansicpg1252\cocoartf2511 +{\rtf1\ansi\ansicpg1252\cocoartf2571 \cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fnil\fcharset0 HelveticaNeue;\f1\fnil\fcharset0 HelveticaNeue-Bold;} {\colortbl;\red255\green255\blue255;\red252\green41\blue19;} {\*\expandedcolortbl;;\cssrgb\c100000\c25745\c7993;} @@ -11,7 +11,7 @@ When the next screen appears, expand the various categories,\ then click each item to view its description. \ \ Enable the checkbox next to the items that you are interested in \ -then click \'93Install\'94 to finish installation.\ +then click \'93Install\'94 to complete installation.\ \ \'97\'97\'97\'97\'97\'97\'97\'97\'97\'97\'97\'97\'97\'97\'97\'97\'97\'97\'97\'97\'97\'97\'97\'97\'97\'97\'97\'97\ \ diff --git a/Sources/App/Resources/Scripting/Script Files/Textual Extras Installer/Packages/Textual-Extras-MAS.pkg b/Sources/App/Resources/Scripting/Script Files/Textual Extras Installer/Packages/Textual-Extras-MAS.pkg index 9b076333a..62aafc25c 100644 Binary files a/Sources/App/Resources/Scripting/Script Files/Textual Extras Installer/Packages/Textual-Extras-MAS.pkg and b/Sources/App/Resources/Scripting/Script Files/Textual Extras Installer/Packages/Textual-Extras-MAS.pkg differ diff --git a/Sources/App/Resources/Scripting/Script Files/Textual Extras Installer/Packages/Textual-Extras.pkg b/Sources/App/Resources/Scripting/Script Files/Textual Extras Installer/Packages/Textual-Extras.pkg index d26995050..6c90891d7 100644 Binary files a/Sources/App/Resources/Scripting/Script Files/Textual Extras Installer/Packages/Textual-Extras.pkg and b/Sources/App/Resources/Scripting/Script Files/Textual Extras Installer/Packages/Textual-Extras.pkg differ diff --git a/Sources/App/Resources/Scripting/Script Files/Textual Extras Installer/distribution.plist b/Sources/App/Resources/Scripting/Script Files/Textual Extras Installer/distribution.plist index 475d8a380..5b6b5b795 100644 --- a/Sources/App/Resources/Scripting/Script Files/Textual Extras Installer/distribution.plist +++ b/Sources/App/Resources/Scripting/Script Files/Textual Extras Installer/distribution.plist @@ -10,7 +10,7 @@ - + @@ -88,9 +88,9 @@ #Scripts-AudioVideo-np-Music.pkg #Scripts-Fun.pkg #Scripts-Utilities.pkg - #Extension-BlowfishEncryption.pkg - #Extension-Caffeine.pkg - #Extension-WikiStyleLinkParser.pkg + #Extension-BlowfishEncryption.pkg + #Extension-Caffeine.pkg + #Extension-WikiStyleLinkParser.pkg diff --git a/Sources/App/Resources/Styling/Bundled Styles/Astria/design.css b/Sources/App/Resources/Styling/Bundled Styles/Astria/design.css index 10386e0b6..c39bd6b91 100755 --- a/Sources/App/Resources/Styling/Bundled Styles/Astria/design.css +++ b/Sources/App/Resources/Styling/Bundled Styles/Astria/design.css @@ -33,11 +33,6 @@ body { bottom: 0; width: 100%; max-height: 100%; - /* overflow: none is added here, even though it is already - declared by body {} because on OS X Mavericks, there is a - weird quirk that causes the horizontal slider to appear - even though we only ask for the vertical one. */ - overflow: none; overflow-y: auto; z-index: 100; position: absolute; diff --git a/Sources/App/Resources/Styling/Bundled Styles/Astria/inlineMedia.css b/Sources/App/Resources/Styling/Bundled Styles/Astria/inlineMedia.css index 8f58af81a..1d3b6f59d 100644 --- a/Sources/App/Resources/Styling/Bundled Styles/Astria/inlineMedia.css +++ b/Sources/App/Resources/Styling/Bundled Styles/Astria/inlineMedia.css @@ -32,10 +32,3 @@ padding-right: 7px; padding-left: 0px; } - -body[data-system-version=^"10.9"] .inlineImage .closeButton, -body[data-system-version=^"10.9"] .inlineVideo .closeButton, -body[data-system-version=^"10.9"] .inlineVideoService .closeButton, -body[data-system-version=^"10.9"] .inlineHTML .closeButton { - line-height: 13px; -} diff --git a/Sources/App/Resources/Styling/Bundled Styles/Sapientia/design.css b/Sources/App/Resources/Styling/Bundled Styles/Sapientia/design.css index c6802d72a..e88267b68 100755 --- a/Sources/App/Resources/Styling/Bundled Styles/Sapientia/design.css +++ b/Sources/App/Resources/Styling/Bundled Styles/Sapientia/design.css @@ -33,11 +33,6 @@ body { bottom: 0; width: 100%; max-height: 100%; - /* overflow: none is added here, even though it is already - declared by body {} because on OS X Mavericks, there is a - weird quirk that causes the horizontal slider to appear - even though we only ask for the vertical one. */ - overflow: none; overflow-y: auto; z-index: 100; position: absolute; diff --git a/Sources/App/Resources/Styling/Bundled Styles/Sapientia/inlineMedia.css b/Sources/App/Resources/Styling/Bundled Styles/Sapientia/inlineMedia.css index 8f58af81a..1d3b6f59d 100644 --- a/Sources/App/Resources/Styling/Bundled Styles/Sapientia/inlineMedia.css +++ b/Sources/App/Resources/Styling/Bundled Styles/Sapientia/inlineMedia.css @@ -32,10 +32,3 @@ padding-right: 7px; padding-left: 0px; } - -body[data-system-version=^"10.9"] .inlineImage .closeButton, -body[data-system-version=^"10.9"] .inlineVideo .closeButton, -body[data-system-version=^"10.9"] .inlineVideoService .closeButton, -body[data-system-version=^"10.9"] .inlineHTML .closeButton { - line-height: 13px; -} diff --git a/Sources/App/Resources/Styling/Bundled Styles/Simplified Dark/design.css b/Sources/App/Resources/Styling/Bundled Styles/Simplified Dark/design.css index 53b3e3bee..6d24f2cb6 100755 --- a/Sources/App/Resources/Styling/Bundled Styles/Simplified Dark/design.css +++ b/Sources/App/Resources/Styling/Bundled Styles/Simplified Dark/design.css @@ -33,11 +33,6 @@ body { bottom: 0; width: 100%; max-height: 100%; - /* overflow: none is added here, even though it is already - declared by body {} because on OS X Mavericks, there is a - weird quirk that causes the horizontal slider to appear - even though we only ask for the vertical one. */ - overflow: none; overflow-y: auto; z-index: 100; position: absolute; diff --git a/Sources/App/Resources/Styling/Bundled Styles/Simplified Dark/inlineMedia.css b/Sources/App/Resources/Styling/Bundled Styles/Simplified Dark/inlineMedia.css index 8f58af81a..1d3b6f59d 100644 --- a/Sources/App/Resources/Styling/Bundled Styles/Simplified Dark/inlineMedia.css +++ b/Sources/App/Resources/Styling/Bundled Styles/Simplified Dark/inlineMedia.css @@ -32,10 +32,3 @@ padding-right: 7px; padding-left: 0px; } - -body[data-system-version=^"10.9"] .inlineImage .closeButton, -body[data-system-version=^"10.9"] .inlineVideo .closeButton, -body[data-system-version=^"10.9"] .inlineVideoService .closeButton, -body[data-system-version=^"10.9"] .inlineHTML .closeButton { - line-height: 13px; -} diff --git a/Sources/App/Resources/Styling/Bundled Styles/Simplified Light/design.css b/Sources/App/Resources/Styling/Bundled Styles/Simplified Light/design.css index 12c468021..058b99dd8 100755 --- a/Sources/App/Resources/Styling/Bundled Styles/Simplified Light/design.css +++ b/Sources/App/Resources/Styling/Bundled Styles/Simplified Light/design.css @@ -33,11 +33,6 @@ body { bottom: 0; width: 100%; max-height: 100%; - /* overflow: none is added here, even though it is already - declared by body {} because on OS X Mavericks, there is a - weird quirk that causes the horizontal slider to appear - even though we only ask for the vertical one. */ - overflow: none; overflow-y: auto; z-index: 100; position: absolute; diff --git a/Sources/App/Resources/Styling/Bundled Styles/Simplified Light/inlineMedia.css b/Sources/App/Resources/Styling/Bundled Styles/Simplified Light/inlineMedia.css index 0244f3cd4..ffb5f5a5e 100644 --- a/Sources/App/Resources/Styling/Bundled Styles/Simplified Light/inlineMedia.css +++ b/Sources/App/Resources/Styling/Bundled Styles/Simplified Light/inlineMedia.css @@ -31,10 +31,3 @@ padding-right: 7px; padding-left: 0px; } - -body[data-system-version=^"10.9"] .inlineImage .closeButton, -body[data-system-version=^"10.9"] .inlineVideo .closeButton, -body[data-system-version=^"10.9"] .inlineVideoService .closeButton, -body[data-system-version=^"10.9"] .inlineHTML .closeButton { - line-height: 13px; -} diff --git a/Sources/App/Resources/Styling/Bundled Styles/Sulaco/design.css b/Sources/App/Resources/Styling/Bundled Styles/Sulaco/design.css index 72e5d04c6..62dee26d3 100644 --- a/Sources/App/Resources/Styling/Bundled Styles/Sulaco/design.css +++ b/Sources/App/Resources/Styling/Bundled Styles/Sulaco/design.css @@ -38,11 +38,6 @@ a:hover { bottom: 0; width: 100%; max-height: 100%; - /* overflow: none is added here, even though it is already - declared by body {} because on OS X Mavericks, there is a - weird quirk that causes the horizontal slider to appear - even though we only ask for the vertical one. */ - overflow: none; overflow-y: auto; z-index: 100; position: absolute; diff --git a/Sources/App/Resources/Styling/Bundled Styles/Sulaco/inlineMedia.css b/Sources/App/Resources/Styling/Bundled Styles/Sulaco/inlineMedia.css index 32bd793f2..973f48394 100644 --- a/Sources/App/Resources/Styling/Bundled Styles/Sulaco/inlineMedia.css +++ b/Sources/App/Resources/Styling/Bundled Styles/Sulaco/inlineMedia.css @@ -39,10 +39,3 @@ padding-right: 7px; padding-left: 0px; } - -body[data-system-version=^"10.9"] .inlineImage .closeButton, -body[data-system-version=^"10.9"] .inlineVideo .closeButton, -body[data-system-version=^"10.9"] .inlineVideoService .closeButton, -body[data-system-version=^"10.9"] .inlineHTML .closeButton { - line-height: 13px; -} diff --git a/Sources/App/Resources/Styling/Bundled Styles/Tomorrow Night (Eighties)/design.css b/Sources/App/Resources/Styling/Bundled Styles/Tomorrow Night (Eighties)/design.css index c702d4dab..79a979875 100755 --- a/Sources/App/Resources/Styling/Bundled Styles/Tomorrow Night (Eighties)/design.css +++ b/Sources/App/Resources/Styling/Bundled Styles/Tomorrow Night (Eighties)/design.css @@ -39,11 +39,6 @@ body { bottom: 0; width: 100%; max-height: 100%; - /* overflow: none is added here, even though it is already - declared by body {} because on OS X Mavericks, there is a - weird quirk that causes the horizontal slider to appear - even though we only ask for the vertical one. */ - overflow: none; overflow-y: auto; z-index: 100; position: absolute; diff --git a/Sources/App/Resources/Styling/Bundled Styles/Tomorrow Night (Eighties)/inlineMedia.css b/Sources/App/Resources/Styling/Bundled Styles/Tomorrow Night (Eighties)/inlineMedia.css index 1c8f5c961..c7f15ef55 100644 --- a/Sources/App/Resources/Styling/Bundled Styles/Tomorrow Night (Eighties)/inlineMedia.css +++ b/Sources/App/Resources/Styling/Bundled Styles/Tomorrow Night (Eighties)/inlineMedia.css @@ -40,11 +40,4 @@ padding-left: 0px; } -body[data-system-version=^"10.9"] .inlineImage .closeButton, -body[data-system-version=^"10.9"] .inlineVideo .closeButton, -body[data-system-version=^"10.9"] .inlineVideoService .closeButton, -body[data-system-version=^"10.9"] .inlineHTML .closeButton { - line-height: 13px; -} - /* @end */ diff --git a/Sources/App/Resources/Styling/Bundled Styles/Tomorrow/design.css b/Sources/App/Resources/Styling/Bundled Styles/Tomorrow/design.css index dd60c0c7d..9490a509e 100755 --- a/Sources/App/Resources/Styling/Bundled Styles/Tomorrow/design.css +++ b/Sources/App/Resources/Styling/Bundled Styles/Tomorrow/design.css @@ -39,11 +39,6 @@ body { bottom: 0; width: 100%; max-height: 100%; - /* overflow: none is added here, even though it is already - declared by body {} because on OS X Mavericks, there is a - weird quirk that causes the horizontal slider to appear - even though we only ask for the vertical one. */ - overflow: none; overflow-y: auto; z-index: 100; position: absolute; diff --git a/Sources/App/Resources/Styling/Bundled Styles/Tomorrow/inlineMedia.css b/Sources/App/Resources/Styling/Bundled Styles/Tomorrow/inlineMedia.css index 1c8f5c961..c7f15ef55 100644 --- a/Sources/App/Resources/Styling/Bundled Styles/Tomorrow/inlineMedia.css +++ b/Sources/App/Resources/Styling/Bundled Styles/Tomorrow/inlineMedia.css @@ -40,11 +40,4 @@ padding-left: 0px; } -body[data-system-version=^"10.9"] .inlineImage .closeButton, -body[data-system-version=^"10.9"] .inlineVideo .closeButton, -body[data-system-version=^"10.9"] .inlineVideoService .closeButton, -body[data-system-version=^"10.9"] .inlineHTML .closeButton { - line-height: 13px; -} - /* @end */ diff --git a/Sources/App/Resources/Styling/Bundled Styles/Total Sublime/design.css b/Sources/App/Resources/Styling/Bundled Styles/Total Sublime/design.css index 641120182..47d419aeb 100755 --- a/Sources/App/Resources/Styling/Bundled Styles/Total Sublime/design.css +++ b/Sources/App/Resources/Styling/Bundled Styles/Total Sublime/design.css @@ -35,11 +35,6 @@ body { opacity: 0; width: 100%; max-height: 100%; - /* overflow: none is added here, even though it is already - declared by body {} because on OS X Mavericks, there is a - weird quirk that causes the horizontal slider to appear - even though we only ask for the vertical one. */ - overflow: none; overflow-y: auto; z-index: 100; position: absolute; diff --git a/Sources/App/Resources/Styling/Bundled Styles/Total Sublime/inlineMedia.css b/Sources/App/Resources/Styling/Bundled Styles/Total Sublime/inlineMedia.css index 8f58af81a..1d3b6f59d 100644 --- a/Sources/App/Resources/Styling/Bundled Styles/Total Sublime/inlineMedia.css +++ b/Sources/App/Resources/Styling/Bundled Styles/Total Sublime/inlineMedia.css @@ -32,10 +32,3 @@ padding-right: 7px; padding-left: 0px; } - -body[data-system-version=^"10.9"] .inlineImage .closeButton, -body[data-system-version=^"10.9"] .inlineVideo .closeButton, -body[data-system-version=^"10.9"] .inlineVideoService .closeButton, -body[data-system-version=^"10.9"] .inlineHTML .closeButton { - line-height: 13px; -} diff --git a/Sources/App/Resources/Styling/JavaScript/API/private/core/clickMenuSelection.js b/Sources/App/Resources/Styling/JavaScript/API/private/core/clickMenuSelection.js index d6ee1706a..1d7e0b322 100755 --- a/Sources/App/Resources/Styling/JavaScript/API/private/core/clickMenuSelection.js +++ b/Sources/App/Resources/Styling/JavaScript/API/private/core/clickMenuSelection.js @@ -88,81 +88,29 @@ _Textual.copySelectionOnMouseUpEvent = function() /* PRIVATE */ ); }; -/* Contextual menu management */ -_Textual.usesCustomMenuConstructor = function() /* PRIVATE */ -{ - if (app.isWebKit2() === false) { - return false; - } - - /* macOS Sierra has an Objective-C API to modify the menus in - WebKit2 which isn't too difficult to use which means we only - need a custom menu constructor on WebKit2 + OS X El Capitan. */ - if (typeof window.webkit.messageHandlers.displayContextMenu === "object") { - return true; - } else { - return false; - } -}; - _Textual._openGenericContextualMenu = function() /* PRIVATE */ { - /* Do not block if target element already has a callback. */ - if (event.target.oncontextmenu !== null) { - return; - } - if (_Textual.usesCustomMenuConstructor()) { - event.preventDefault(); - - _Textual.recordSelection(); - - appPrivate.displayContextMenu(); - } }; Textual.openChannelNameContextualMenu = function() /* PUBLIC */ { _Textual.setPolicyChannelName(); - - if (_Textual.usesCustomMenuConstructor()) { - _Textual.clearSelectionAndPreventDefault(); - - appPrivate.displayContextMenu(); - } }; Textual.openURLManagementContextualMenu = function() /* PUBLIC */ { _Textual.setPolicyURLAddress(); - - if (_Textual.usesCustomMenuConstructor()) { - _Textual.clearSelectionAndPreventDefault(); - - appPrivate.displayContextMenu(); - } }; Textual.openStandardNicknameContextualMenu = function() /* PUBLIC */ { _Textual.setPolicyStandardNickname(); - - if (_Textual.usesCustomMenuConstructor()) { - _Textual.clearSelectionAndPreventDefault(); - - appPrivate.displayContextMenu(); - } }; Textual.openInlineNicknameContextualMenu = function() /* PUBLIC */ { _Textual.setPolicyInlineNickname(); - - if (_Textual.usesCustomMenuConstructor()) { - _Textual.clearSelectionAndPreventDefault(); - - appPrivate.displayContextMenu(); - } }; _Textual.setPolicyStandardNickname = function() /* PRIVATE */ diff --git a/Sources/App/Resources/Styling/Style Default Templates/Version 4/baseLayout.mustache b/Sources/App/Resources/Styling/Style Default Templates/Version 4/baseLayout.mustache index ea7f53f28..d1675ce63 100644 --- a/Sources/App/Resources/Styling/Style Default Templates/Version 4/baseLayout.mustache +++ b/Sources/App/Resources/Styling/Style Default Templates/Version 4/baseLayout.mustache @@ -27,7 +27,7 @@ text-indent: -{{predefinedTimestampWidth}}px; } - dive.line .time { + div.line .time { width: {{predefinedTimestampWidth}}px; } {{/nicknameIndentationAvailable}} diff --git a/Sources/App/Resources/User Interface/Appearance/TDCChannelSpotlightAppearance.plist b/Sources/App/Resources/User Interface/Appearance/TDCChannelSpotlightAppearance.plist index 3cc9c47ce..ebf4db548 100644 --- a/Sources/App/Resources/User Interface/Appearance/TDCChannelSpotlightAppearance.plist +++ b/Sources/App/Resources/User Interface/Appearance/TDCChannelSpotlightAppearance.plist @@ -18,10 +18,10 @@ rowEmphasized - keyboardShortcutDeselectedTopOffset - 11 - keyboardShortcutSelectedTextOffset - 14 + keyboardShortcutDeselectedOffset + 0 + keyboardShortcutSelectedOffset + 3 Mojave diff --git a/Sources/App/Resources/User Interface/Appearance/TDCChannelSpotlightAppearanceTemplate.plist b/Sources/App/Resources/User Interface/Appearance/TDCChannelSpotlightAppearanceTemplate.plist index d91c0e94a..bc2b5a57a 100644 --- a/Sources/App/Resources/User Interface/Appearance/TDCChannelSpotlightAppearanceTemplate.plist +++ b/Sources/App/Resources/User Interface/Appearance/TDCChannelSpotlightAppearanceTemplate.plist @@ -70,9 +70,9 @@ value 0.0 0.0 0.0 - keyboardShortcutDeselectedTopOffset + keyboardShortcutDeselectedOffset 0 - keyboardShortcutSelectedTextOffset + keyboardShortcutSelectedOffset 0 selectedTextColor diff --git a/Sources/App/Resources/User Interface/Appearance/TVCMainWindowAppearance.plist b/Sources/App/Resources/User Interface/Appearance/TVCMainWindowAppearance.plist index 7fa70803b..a2b2b6c71 100644 --- a/Sources/App/Resources/User Interface/Appearance/TVCMainWindowAppearance.plist +++ b/Sources/App/Resources/User Interface/Appearance/TVCMainWindowAppearance.plist @@ -107,37 +107,5 @@ inheritFrom Yosemite - Mavericks - - inheritFrom - Common - loadingScreenBackgroundColor - - type - 1 - value - 1.0 - - - MavericksDarkAqua - - inheritFrom - Mavericks - - MavericksLightAqua - - inheritFrom - Mavericks - - MavericksDarkGraphite - - inheritFrom - MavericksDarkAqua - - MavericksLightGraphite - - inheritFrom - MavericksLightAqua - diff --git a/Sources/App/Resources/User Interface/Appearance/TVCMainWindowTextViewAppearance.plist b/Sources/App/Resources/User Interface/Appearance/TVCMainWindowTextViewAppearance.plist index d89f645a1..050df6603 100644 --- a/Sources/App/Resources/User Interface/Appearance/TVCMainWindowTextViewAppearance.plist +++ b/Sources/App/Resources/User Interface/Appearance/TVCMainWindowTextViewAppearance.plist @@ -586,143 +586,5 @@ - Mavericks - - inheritFrom - Common - Text View - - normalTextColor - - type - 1 - value - 0.15 - - placeholderTextColor - - type - 1 - value - 0.50 - - backgroundColor - - activeWindow - - type - 1 - value - 1.0 - - inactiveWindow - - type - 1 - value - 1.0 - - - outlineColor - - activeWindow - - type - 1 - value - 0.0 0.42 - - inactiveWindow - - type - 1 - value - 0.0 0.23 - - - insideShadowColor - - activeWindow - - type - 1 - value - 0.88 - - inactiveWindow - - type - 1 - value - 0.0 0.0 - - - outsidePrimaryShadowColor - - activeWindow - - type - 1 - value - 1.0 0.70 - - inactiveWindow - - type - 1 - value - 1.0 0.70 - - - font - - name - Helvetica - size - 12 - - fontLarge - - name - Helvetica - size - 14 - - fontExtraLarge - - name - Helvetica - size - 16 - - fontHumongous - - name - Helvetica - size - 24 - - - - MavericksDarkAqua - - inheritFrom - Mavericks - - MavericksLightAqua - - inheritFrom - Mavericks - - MavericksDarkGraphite - - inheritFrom - MavericksDarkAqua - - MavericksLightGraphite - - inheritFrom - MavericksLightAqua - diff --git a/Sources/App/Resources/User Interface/Appearance/TVCMemberListAppearance.plist b/Sources/App/Resources/User Interface/Appearance/TVCMemberListAppearance.plist index d2ca88b4c..c73a2c985 100644 --- a/Sources/App/Resources/User Interface/Appearance/TVCMemberListAppearance.plist +++ b/Sources/App/Resources/User Interface/Appearance/TVCMemberListAppearance.plist @@ -22,8 +22,6 @@ Common Member Cell - rowHeight - 20 font name @@ -38,10 +36,6 @@ size 12 - topOffset - 2 - topOffset@2x - 1.5 Mark Badge @@ -63,12 +57,6 @@ weight 15 - width - 16 - height - 16 - topOffset - 1 MojaveDark @@ -339,8 +327,6 @@ Common Member Cell - rowHeight - 20 font name @@ -355,10 +341,6 @@ size 12 - topOffset - 3 - topOffset@2x - 2.5 Mark Badge @@ -380,12 +362,6 @@ weight 15 - width - 16 - height - 16 - topOffset - 1 YosemiteDark @@ -665,544 +641,5 @@ - Mavericks - - inheritFrom - Common - Member Cell - - rowHeight - 20 - font - - name - Lucida Grande - size - 12 - - fontSelected - - name - Lucida Grande - size - 12 - weight - 15 - - - Mark Badge - - font - - name - Helvetica - size - 12.5 - weight - 15 - - font@2x - - name - Helvetica - size - 12 - weight - 15 - - fontSelected - - name - Helvetica - size - 12.5 - weight - 15 - - fontSelected@2x - - name - Helvetica - size - 12 - weight - 15 - - width - 20 - height - 16 - - - MavericksDarkAqua - - inheritFrom - Mavericks - backgroundColor - - activeWindow - - type - 2 - value - 0.148 0.148 0.148 - - inactiveWindow - - type - 2 - value - 0.148 0.148 0.148 - - - Member Cell - - selectionImage - - activeWindow - - type - 1 - value - MavericksDarkChannelCellSelection - - inactiveWindow - - type - 1 - value - MavericksDarkChannelCellSelection - - - normalTextColor - - activeWindow - - type - 1 - value - 1.0 - - inactiveWindow - - type - 1 - value - 1.0 - - - normalTextShadowColor - - activeWindow - - type - 1 - value - 0.0 0.9 - - inactiveWindow - - type - 1 - value - 0.0 0.9 - - - awayTextColor - - activeWindow - - type - 1 - value - 1.0 0.6 - - inactiveWindow - - type - 1 - value - 1.0 0.6 - - - awayTextShadowColor - - activeWindow - - type - 1 - value - 0.0 0.9 - - inactiveWindow - - type - 1 - value - 0.0 0.9 - - - selectedTextColor - - activeWindow - - type - 2 - value - 0.14 0.14 0.14 - - inactiveWindow - - type - 2 - value - 0.14 0.14 0.14 - - - selectedTextShadowColor - - activeWindow - - type - 1 - value - 1.0 0.3 - - inactiveWindow - - type - 1 - value - 1.0 0.3 - - - - Mark Badge - - normalBackgroundColor - - activeWindow - - type - 2 - value - 0.187 0.187 0.187 - - inactiveWindow - - type - 2 - value - 0.187 0.187 0.187 - - - selectedBackgroundColor - - activeWindow - - type - 3 - value - darkGrayColor - - inactiveWindow - - type - 3 - value - darkGrayColor - - - normalTextColor - - activeWindow - - type - 1 - value - 1.0 - - inactiveWindow - - type - 1 - value - 1.0 - - - selectedTextColor - - activeWindow - - type - 1 - value - 1.0 - - inactiveWindow - - type - 1 - value - 1.0 - - - shadowColor - - activeWindow - - type - 2 - value - 0.234 0.234 0.234 - - inactiveWindow - - type - 2 - value - 0.234 0.234 0.234 - - - - - MavericksLightAqua - - inheritFrom - Mavericks - backgroundColor - - inactiveWindow - - type - 2 - value - 0.901 0.901 0.901 - - - Member Cell - - normalTextColor - - activeWindow - - type - 1 - value - 0.0 0.8 - - inactiveWindow - - type - 1 - value - 0.0 0.8 - - - normalTextShadowColor - - activeWindow - - type - 1 - value - 1.0 0.6 - - inactiveWindow - - type - 1 - value - 1.0 0.6 - - - awayTextColor - - activeWindow - - type - 1 - value - 0.0 0.35 - - inactiveWindow - - type - 1 - value - 0.0 0.35 - - - awayTextShadowColor - - activeWindow - - type - 1 - value - 1.0 0.6 - - inactiveWindow - - type - 1 - value - 1.0 0.6 - - - selectedTextColor - - activeWindow - - type - 1 - value - 1.0 - - inactiveWindow - - type - 1 - value - 1.0 - - - selectedTextShadowColor - - activeWindow - - type - 1 - value - 0.0 0.48 - - inactiveWindow - - type - 1 - value - 0.0 0.3 - - - - Mark Badge - - normalBackgroundColor - - activeWindow - - type - 2 - value - 0.593 0.656 0.789 - - inactiveWindow - - type - 2 - value - 0.593 0.656 0.789 - - - selectedBackgroundColor - - activeWindow - - type - 1 - value - 1.0 - - inactiveWindow - - type - 1 - value - 1.0 - - - normalTextColor - - activeWindow - - type - 1 - value - 1.0 - - inactiveWindow - - type - 1 - value - 1.0 - - - selectedTextColor - - activeWindow - - type - 2 - value - 0.617 0.66 0.769 - - inactiveWindow - - type - 2 - value - 0.617 0.66 0.769 - - - shadowColor - - activeWindow - - type - 1 - value - 1.0 0.6 - - inactiveWindow - - type - 1 - value - 1.0 0.6 - - - - - MavericksDarkGraphite - - inheritFrom - MavericksDarkAqua - - MavericksLightGraphite - - inheritFrom - MavericksLightAqua - Mark Badge - - normalBackgroundColor - - activeWindow - - type - 2 - value - 0.512 0.574 0.636 - - inactiveWindow - - type - 2 - value - 0.512 0.574 0.636 - - - - diff --git a/Sources/App/Resources/User Interface/Appearance/TVCMemberListAppearanceTemplate.plist b/Sources/App/Resources/User Interface/Appearance/TVCMemberListAppearanceTemplate.plist index 4eb68b4d9..f35d0c66e 100644 --- a/Sources/App/Resources/User Interface/Appearance/TVCMemberListAppearanceTemplate.plist +++ b/Sources/App/Resources/User Interface/Appearance/TVCMemberListAppearanceTemplate.plist @@ -10,23 +10,6 @@ 0 maximumWidth 0 - backgroundColor - - activeWindow - - type - 2 - value - 0.0 0.0 0.0 - - inactiveWindow - - type - 2 - value - 0.0 0.0 0.0 - - selectionColor activeWindow @@ -48,25 +31,6 @@ rowEmphasized - rowHeight - 0 - selectionImage - - activeWindow - - type - 1 - value - - - inactiveWindow - - type - 1 - value - - - normalTextColor activeWindow @@ -84,23 +48,6 @@ 0.0 0.0 0.0 - normalTextShadowColor - - activeWindow - - type - 2 - value - 0.0 0.0 0.0 - - inactiveWindow - - type - 2 - value - 0.0 0.0 0.0 - - awayTextColor activeWindow @@ -118,23 +65,6 @@ 0.0 0.0 0.0 - awayTextShadowColor - - activeWindow - - type - 2 - value - 0.0 0.0 0.0 - - inactiveWindow - - type - 2 - value - 0.0 0.0 0.0 - - selectedTextColor activeWindow @@ -152,23 +82,6 @@ 0.0 0.0 0.0 - selectedTextShadowColor - - activeWindow - - type - 2 - value - 0.0 0.0 0.0 - - inactiveWindow - - type - 2 - value - 0.0 0.0 0.0 - - font activeWindow @@ -203,8 +116,6 @@ 10 - topOffset - 0 Mark Badge @@ -276,23 +187,6 @@ 0.0 0.0 0.0 - shadowColor - - activeWindow - - type - 2 - value - 0.0 0.0 0.0 - - inactiveWindow - - type - 2 - value - 0.0 0.0 0.0 - - font activeWindow @@ -327,12 +221,6 @@ 10 - width - 0 - height - 0 - topOffset - 0 diff --git a/Sources/App/Resources/User Interface/Appearance/TVCServerListAppearance.plist b/Sources/App/Resources/User Interface/Appearance/TVCServerListAppearance.plist index 3edf7ccc6..378954ae9 100644 --- a/Sources/App/Resources/User Interface/Appearance/TVCServerListAppearance.plist +++ b/Sources/App/Resources/User Interface/Appearance/TVCServerListAppearance.plist @@ -27,24 +27,20 @@ Common Server Cell - rowHeight - 22 font name SystemBold size - 13 + 14 fontSelected name - SystemBold + System size - 13 + 14 - topOffset - 2 Channel Cell @@ -64,10 +60,6 @@ size 12 - topOffset - 2 - topOffset@2x - 1.5 Unread Badge @@ -91,10 +83,6 @@ 14 padding 6 - topOffset - 1 - rightMargin - 3 MojaveDark @@ -618,17 +606,15 @@ name SystemBold size - 13 + 14 fontSelected name - SystemBold + System size - 13 + 14 - topOffset - 3 Channel Cell @@ -648,10 +634,6 @@ size 12 - topOffset - 3 - topOffset@2x - 2.5 Unread Badge @@ -675,10 +657,6 @@ 14 padding 6 - topOffset - 1 - rightMargin - 3 YosemiteDark @@ -1202,848 +1180,5 @@ - Mavericks - - inheritFrom - Common - Server Cell - - rowHeight - 21 - font - - name - Lucida Grande - size - 12 - weight - 15 - - fontSelected - - name - Lucida Grande - size - 12 - weight - 15 - - - Channel Cell - - rowHeight - 20 - font - - name - Lucida Grande - size - 12 - - fontSelected - - name - Lucida Grande - size - 12 - weight - 15 - - - Unread Badge - - font - - name - Helvetica - size - 10.5 - weight - 9 - - fontSelected - - name - Helvetica - size - 10.5 - weight - 9 - - minimumWidth - 22 - height - 14 - padding - 6 - rightMargin - 3 - - - MavericksDarkAqua - - inheritFrom - Mavericks - backgroundColor - - activeWindow - - type - 2 - value - 0.148 0.148 0.148 - - inactiveWindow - - type - 2 - value - 0.148 0.148 0.148 - - - Server Cell - - selectionImage - - activeWindow - - type - 1 - value - MavericksDarkServerCellSelection - - inactiveWindow - - type - 1 - value - MavericksDarkServerCellSelection - - - normalTextColor - - activeWindow - - type - 1 - value - 1.0 - - inactiveWindow - - type - 1 - value - 1.0 - - - normalTextShadowColor - - activeWindow - - type - 1 - value - 0.0 0.9 - - inactiveWindow - - type - 1 - value - 0.0 0.9 - - - disabledTextColor - - activeWindow - - type - 2 - value - 0.66 0.66 0.66 - - inactiveWindow - - type - 2 - value - 0.66 0.66 0.66 - - - disabledTextShadowColor - - activeWindow - - type - 1 - value - 0.0 0.9 - - inactiveWindow - - type - 1 - value - 0.0 0.9 - - - selectedTextColor - - activeWindow - - type - 2 - value - 0.14 0.14 0.14 - - inactiveWindow - - type - 2 - value - 0.14 0.14 0.14 - - - selectedTextShadowColor - - activeWindow - - type - 1 - value - 1.0 0.3 - - inactiveWindow - - type - 1 - value - 1.0 0.3 - - - - Channel Cell - - selectionImage - - activeWindow - - type - 1 - value - MavericksDarkChannelCellSelection - - inactiveWindow - - type - 1 - value - MavericksDarkChannelCellSelection - - - normalTextColor - - activeWindow - - type - 1 - value - 1.0 - - inactiveWindow - - type - 1 - value - 1.0 - - - normalTextShadowColor - - activeWindow - - type - 1 - value - 0.0 0.9 - - inactiveWindow - - type - 1 - value - 0.0 0.9 - - - disabledTextColor - - activeWindow - - type - 1 - value - 1.0 0.6 - - inactiveWindow - - type - 1 - value - 1.0 0.6 - - - disabledTextShadowColor - - activeWindow - - type - 1 - value - 0.0 0.9 - - inactiveWindow - - type - 1 - value - 0.0 0.9 - - - selectedTextColor - - activeWindow - - type - 2 - value - 0.14 0.14 0.14 - - inactiveWindow - - type - 2 - value - 0.14 0.14 0.14 - - - selectedTextShadowColor - - activeWindow - - type - 1 - value - 1.0 0.3 - - inactiveWindow - - type - 1 - value - 1.0 0.3 - - - - Unread Badge - - normalBackgroundColor - - activeWindow - - type - 2 - value - 0.187 0.187 0.187 - - inactiveWindow - - type - 2 - value - 0.187 0.187 0.187 - - - selectedBackgroundColor - - activeWindow - - type - 3 - value - darkGrayColor - - inactiveWindow - - type - 3 - value - darkGrayColor - - - highlightBackgroundColor - - activeWindow - - type - 2 - value - 0.0 0.414 0.117 - - inactiveWindow - - type - 2 - value - 0.0 0.414 0.117 - - - normalTextColor - - activeWindow - - type - 1 - value - 1.0 - - inactiveWindow - - type - 1 - value - 1.0 - - - selectedTextColor - - activeWindow - - type - 1 - value - 1.0 - - inactiveWindow - - type - 1 - value - 1.0 - - - highlightTextColor - - activeWindow - - type - 1 - value - 1.0 - - inactiveWindow - - type - 1 - value - 1.0 - - - shadowColor - - activeWindow - - type - 2 - value - 0.234 0.234 0.234 - - inactiveWindow - - type - 2 - value - 0.234 0.234 0.234 - - - - - MavericksLightAqua - - inheritFrom - Mavericks - backgroundColor - - inactiveWindow - - type - 2 - value - 0.901 0.901 0.901 - - - Server Cell - - normalTextColor - - activeWindow - - type - 3 - value - outlineViewHeaderTextColor - - inactiveWindow - - type - 3 - value - outlineViewHeaderTextColor - - - normalTextShadowColor - - activeWindow - - type - 1 - value - 1.0 - - inactiveWindow - - type - 1 - value - 1.0 - - - disabledTextColor - - activeWindow - - type - 3 - value - outlineViewHeaderDisabledTextColor - - inactiveWindow - - type - 3 - value - outlineViewHeaderDisabledTextColor - - - disabledTextShadowColor - - activeWindow - - type - 1 - value - 1.0 - - inactiveWindow - - type - 1 - value - 1.0 - - - selectedTextColor - - activeWindow - - type - 1 - value - 1.0 - - inactiveWindow - - type - 1 - value - 1.0 - - - selectedTextShadowColor - - activeWindow - - type - 1 - value - 0.0 0.3 - - inactiveWindow - - type - 1 - value - 0.0 0.3 - - - - Channel Cell - - normalTextColor - - activeWindow - - type - 1 - value - 0.0 0.8 - - inactiveWindow - - type - 1 - value - 0.0 0.8 - - - normalTextShadowColor - - activeWindow - - type - 1 - value - 1.0 0.6 - - inactiveWindow - - type - 1 - value - 1.0 0.6 - - - disabledTextColor - - activeWindow - - type - 1 - value - 0.0 0.35 - - inactiveWindow - - type - 1 - value - 0.0 0.35 - - - disabledTextShadowColor - - activeWindow - - type - 1 - value - 1.0 0.6 - - inactiveWindow - - type - 1 - value - 1.0 0.6 - - - selectedTextColor - - activeWindow - - type - 1 - value - 1.0 - - inactiveWindow - - type - 1 - value - 1.0 - - - selectedTextShadowColor - - activeWindow - - type - 1 - value - 0.0 0.48 - - inactiveWindow - - type - 1 - value - 0.0 0.3 - - - - Unread Badge - - normalBackgroundColor - - activeWindow - - type - 2 - value - 0.593 0.656 0.789 - - inactiveWindow - - type - 2 - value - 0.593 0.656 0.789 - - - selectedBackgroundColor - - activeWindow - - type - 1 - value - 1.0 - - inactiveWindow - - type - 1 - value - 1.0 - - - highlightBackgroundColor - - activeWindow - - type - 2 - value - 0.0 0.414 0.117 - - inactiveWindow - - type - 2 - value - 0.0 0.414 0.117 - - - normalTextColor - - activeWindow - - type - 1 - value - 1.0 - - inactiveWindow - - type - 1 - value - 1.0 - - - selectedTextColor - - activeWindow - - type - 2 - value - 0.617 0.66 0.769 - - inactiveWindow - - type - 2 - value - 0.617 0.66 0.769 - - - highlightTextColor - - activeWindow - - type - 1 - value - 1.0 - - inactiveWindow - - type - 1 - value - 1.0 - - - shadowColor - - activeWindow - - type - 1 - value - 1.0 0.6 - - inactiveWindow - - type - 1 - value - 1.0 0.6 - - - - - MavericksDarkGraphite - - inheritFrom - MavericksDarkAqua - - MavericksLightGraphite - - Unread Badge - - normalBackgroundColor - - activeWindow - - type - 2 - value - 0.512 0.574 0.636 - - inactiveWindow - - type - 2 - value - 0.512 0.574 0.636 - - - - inheritFrom - MavericksLightAqua - diff --git a/Sources/App/Resources/User Interface/Appearance/TVCServerListAppearanceTemplate.plist b/Sources/App/Resources/User Interface/Appearance/TVCServerListAppearanceTemplate.plist index b591287c6..c9d5b5059 100644 --- a/Sources/App/Resources/User Interface/Appearance/TVCServerListAppearanceTemplate.plist +++ b/Sources/App/Resources/User Interface/Appearance/TVCServerListAppearanceTemplate.plist @@ -10,23 +10,6 @@ 0 maximumWidth 0 - backgroundColor - - activeWindow - - type - 2 - value - 0.0 0.0 0.0 - - inactiveWindow - - type - 2 - value - 0.0 0.0 0.0 - - selectionColor activeWindow @@ -48,8 +31,6 @@ rowEmphasized - rowHeight - 0 selectionImage activeWindow @@ -84,23 +65,6 @@ 0.0 0.0 0.0 - normalTextShadowColor - - activeWindow - - type - 2 - value - 0.0 0.0 0.0 - - inactiveWindow - - type - 2 - value - 0.0 0.0 0.0 - - disabledTextColor activeWindow @@ -118,23 +82,6 @@ 0.0 0.0 0.0 - disabledTextShadowColor - - activeWindow - - type - 2 - value - 0.0 0.0 0.0 - - inactiveWindow - - type - 2 - value - 0.0 0.0 0.0 - - selectedTextColor activeWindow @@ -152,23 +99,6 @@ 0.0 0.0 0.0 - selectedTextShadowColor - - activeWindow - - type - 2 - value - 0.0 0.0 0.0 - - inactiveWindow - - type - 2 - value - 0.0 0.0 0.0 - - font name @@ -183,15 +113,11 @@ size 10 - topOffset - 0 Channel Cell rowEmphasized - rowHeight - 0 selectionImage activeWindow @@ -226,23 +152,6 @@ 0.0 0.0 0.0 - normalTextShadowColor - - activeWindow - - type - 2 - value - 0.0 0.0 0.0 - - inactiveWindow - - type - 2 - value - 0.0 0.0 0.0 - - disabledTextColor activeWindow @@ -260,23 +169,6 @@ 0.0 0.0 0.0 - disabledTextShadowColor - - activeWindow - - type - 2 - value - 0.0 0.0 0.0 - - inactiveWindow - - type - 2 - value - 0.0 0.0 0.0 - - selectedTextColor activeWindow @@ -294,23 +186,6 @@ 0.0 0.0 0.0 - selectedTextShadowColor - - activeWindow - - type - 2 - value - 0.0 0.0 0.0 - - inactiveWindow - - type - 2 - value - 0.0 0.0 0.0 - - erroneousTextColor activeWindow @@ -359,8 +234,6 @@ size 10 - topOffset - 0 Unread Badge @@ -466,23 +339,6 @@ 0.0 0.0 0.0 - shadowColor - - activeWindow - - type - 2 - value - 0.0 0.0 0.0 - - inactiveWindow - - type - 2 - value - 0.0 0.0 0.0 - - font name @@ -503,12 +359,6 @@ 0 padding 0 - textCenterYOffset - 0 - topOffset - 0 - rightMargin - 0 diff --git a/Sources/App/Resources/User Interface/en.lproj/TDCAboutDialog.xib b/Sources/App/Resources/User Interface/en.lproj/TDCAboutDialog.xib index 37471cf08..ebfbd51e3 100755 --- a/Sources/App/Resources/User Interface/en.lproj/TDCAboutDialog.xib +++ b/Sources/App/Resources/User Interface/en.lproj/TDCAboutDialog.xib @@ -1,7 +1,8 @@ - + - + + @@ -16,22 +17,22 @@ - + - + - + - + - + @@ -39,7 +40,7 @@ - + @@ -48,7 +49,7 @@ - + + - - - - + @@ -96,6 +99,6 @@ Gw - + diff --git a/Sources/App/Resources/User Interface/en.lproj/TDCAddressBookSheet.xib b/Sources/App/Resources/User Interface/en.lproj/TDCAddressBookSheet.xib index b80fcc27f..a6c66b26a 100644 --- a/Sources/App/Resources/User Interface/en.lproj/TDCAddressBookSheet.xib +++ b/Sources/App/Resources/User Interface/en.lproj/TDCAddressBookSheet.xib @@ -1,24 +1,24 @@ - + - + - + - - - - - - - + + + + + + + @@ -30,23 +30,20 @@ - - + + - + - - - - + - + - + - + - + - + - + @@ -151,8 +148,8 @@ DQ - - + + @@ -160,7 +157,7 @@ DQ - + @@ -175,31 +172,30 @@ DQ - - + + + - - + - @@ -207,21 +203,21 @@ DQ - + - - + + - + - + - + @@ -232,86 +228,22 @@ DQ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - + + - - + + @@ -319,7 +251,7 @@ DQ - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - + diff --git a/Sources/App/Resources/User Interface/en.lproj/TDCBuddyListDialog.xib b/Sources/App/Resources/User Interface/en.lproj/TDCBuddyListDialog.xib deleted file mode 100644 index 944c352e3..000000000 --- a/Sources/App/Resources/User Interface/en.lproj/TDCBuddyListDialog.xib +++ /dev/null @@ -1,237 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - nickname - networkName - availabilityImage - - - - - - - - diff --git a/Sources/App/Resources/User Interface/en.lproj/TDCChannelBanListSheet.xib b/Sources/App/Resources/User Interface/en.lproj/TDCChannelBanListSheet.xib index b2dd0c149..1f20be343 100755 --- a/Sources/App/Resources/User Interface/en.lproj/TDCChannelBanListSheet.xib +++ b/Sources/App/Resources/User Interface/en.lproj/TDCChannelBanListSheet.xib @@ -1,8 +1,8 @@ - + - + @@ -30,29 +30,28 @@ - + - + - + - + - - - + + + - + - @@ -65,12 +64,11 @@ - - - + + - + @@ -84,6 +82,7 @@ + @@ -92,9 +91,8 @@ - + - @@ -107,12 +105,11 @@ - - - + + - + @@ -126,6 +123,7 @@ + @@ -134,9 +132,8 @@ - + - @@ -149,12 +146,11 @@ - - - + + - + @@ -168,6 +164,7 @@ + @@ -186,21 +183,21 @@ - - + + - + @@ -247,7 +244,7 @@ Gw - + @@ -279,15 +276,15 @@ Gw - + - + - + diff --git a/Sources/App/Resources/User Interface/en.lproj/TDCChannelInviteSheet.xib b/Sources/App/Resources/User Interface/en.lproj/TDCChannelInviteSheet.xib index ea4eba10a..11ef50af4 100755 --- a/Sources/App/Resources/User Interface/en.lproj/TDCChannelInviteSheet.xib +++ b/Sources/App/Resources/User Interface/en.lproj/TDCChannelInviteSheet.xib @@ -1,8 +1,8 @@ - + - + @@ -23,11 +23,11 @@ - + - + @@ -67,7 +67,7 @@ Gw - + @@ -80,15 +80,13 @@ Gw - - - + @@ -96,7 +94,7 @@ Gw - + diff --git a/Sources/App/Resources/User Interface/en.lproj/TDCChannelModifyModesSheet.xib b/Sources/App/Resources/User Interface/en.lproj/TDCChannelModifyModesSheet.xib index 7197e0734..8e783bc34 100755 --- a/Sources/App/Resources/User Interface/en.lproj/TDCChannelModifyModesSheet.xib +++ b/Sources/App/Resources/User Interface/en.lproj/TDCChannelModifyModesSheet.xib @@ -1,8 +1,8 @@ - + - + @@ -25,23 +25,23 @@ - + - - + + - - + + - + - + ti_ER @@ -296,14 +296,142 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + NSAllRomanInputSourcesLocaleIdentifier @@ -318,153 +446,30 @@ - - - - - - - - - - - - - - - - - - - + - - - - + - + - - - - - - - - + + - - - + - + - + + + - - diff --git a/Sources/App/Resources/User Interface/en.lproj/TDCChannelModifyTopicSheet.xib b/Sources/App/Resources/User Interface/en.lproj/TDCChannelModifyTopicSheet.xib index 7c8b599f5..1e596cc2b 100644 --- a/Sources/App/Resources/User Interface/en.lproj/TDCChannelModifyTopicSheet.xib +++ b/Sources/App/Resources/User Interface/en.lproj/TDCChannelModifyTopicSheet.xib @@ -1,8 +1,8 @@ - + - + @@ -20,14 +20,14 @@ - + - + - + @@ -35,18 +35,18 @@ - + - + - + - - + + @@ -62,7 +62,7 @@ - + @@ -70,7 +70,7 @@ - + - + - + - + @@ -104,12 +102,12 @@ DQ - + - + - - + + @@ -117,47 +115,20 @@ DQ - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + - - - - + + - - - + - + - - + - - + + - - - - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Sources/App/Resources/User Interface/en.lproj/TDCChannelSpotlightController.xib b/Sources/App/Resources/User Interface/en.lproj/TDCChannelSpotlightController.xib index 1312d7f2d..987893d5b 100644 --- a/Sources/App/Resources/User Interface/en.lproj/TDCChannelSpotlightController.xib +++ b/Sources/App/Resources/User Interface/en.lproj/TDCChannelSpotlightController.xib @@ -1,8 +1,8 @@ - + - - + + @@ -33,15 +33,15 @@ - + - + - + @@ -55,7 +55,7 @@ - + @@ -72,15 +72,14 @@ - + - + - + - @@ -107,7 +106,7 @@ - + @@ -118,10 +117,7 @@ - - - - + @@ -133,10 +129,10 @@ - + @@ -145,7 +141,7 @@ - + @@ -164,7 +160,7 @@ - - + + @@ -223,7 +219,7 @@ - + diff --git a/Sources/App/Resources/User Interface/en.lproj/TDCFileTransferDialog.xib b/Sources/App/Resources/User Interface/en.lproj/TDCFileTransferDialog.xib index 6911a912d..04fa3d30f 100644 --- a/Sources/App/Resources/User Interface/en.lproj/TDCFileTransferDialog.xib +++ b/Sources/App/Resources/User Interface/en.lproj/TDCFileTransferDialog.xib @@ -1,8 +1,8 @@ - + - + @@ -17,10 +17,10 @@ - + - + @@ -28,21 +28,20 @@ - + - + - - - + + + - + - @@ -58,10 +57,10 @@ - + - + @@ -69,7 +68,7 @@ - + @@ -77,15 +76,15 @@ - + - + - + @@ -97,7 +96,7 @@ - + @@ -145,7 +144,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + + - - - + - + diff --git a/Sources/App/Resources/User Interface/en.lproj/TDCLicenseManagerDialog.xib b/Sources/App/Resources/User Interface/en.lproj/TDCLicenseManagerDialog.xib index c9f5cf625..5e4086729 100644 --- a/Sources/App/Resources/User Interface/en.lproj/TDCLicenseManagerDialog.xib +++ b/Sources/App/Resources/User Interface/en.lproj/TDCLicenseManagerDialog.xib @@ -1,26 +1,24 @@ - + - + + - - - - + - + @@ -29,62 +27,47 @@ - - + + - + - - - - - - - - - - - - - - - - + - + - + - + - - - + + + - - + + - - + + @@ -92,7 +75,7 @@ - + @@ -107,58 +90,30 @@ - - + - - + - + - + @@ -166,7 +121,7 @@ Gw - - + - + - + - - + + - + - - - + + + - - - + + - - - + + + - + + + + - - - - + + + - + - + - + - + - + + + + - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - - - - - - + - - - - - + - + - + diff --git a/Sources/App/Resources/User Interface/en.lproj/TDCLicenseManagerMigrateAppStoreSheet.xib b/Sources/App/Resources/User Interface/en.lproj/TDCLicenseManagerMigrateAppStoreSheet.xib index dee21d34b..1bc7d2392 100644 --- a/Sources/App/Resources/User Interface/en.lproj/TDCLicenseManagerMigrateAppStoreSheet.xib +++ b/Sources/App/Resources/User Interface/en.lproj/TDCLicenseManagerMigrateAppStoreSheet.xib @@ -1,8 +1,8 @@ - + - + @@ -20,42 +20,22 @@ - + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + - - - - + - - - - - - - + - + diff --git a/Sources/App/Resources/User Interface/en.lproj/TDCLicenseManagerRecoverLostLicenseSheet.xib b/Sources/App/Resources/User Interface/en.lproj/TDCLicenseManagerRecoverLostLicenseSheet.xib index e06eaceeb..d5e007776 100644 --- a/Sources/App/Resources/User Interface/en.lproj/TDCLicenseManagerRecoverLostLicenseSheet.xib +++ b/Sources/App/Resources/User Interface/en.lproj/TDCLicenseManagerRecoverLostLicenseSheet.xib @@ -1,8 +1,8 @@ - + - + @@ -19,14 +19,14 @@ - + - + - - + + @@ -34,7 +34,7 @@ - + @@ -48,8 +48,8 @@ - - + + @@ -57,7 +57,7 @@ - - + - + - - - - + + + + + @@ -221,6 +220,6 @@ DQ - + diff --git a/Sources/App/Resources/User Interface/en.lproj/TDCLicenseUpgradeDialog.xib b/Sources/App/Resources/User Interface/en.lproj/TDCLicenseUpgradeDialog.xib index 2e5d90af8..06bcebfe7 100644 --- a/Sources/App/Resources/User Interface/en.lproj/TDCLicenseUpgradeDialog.xib +++ b/Sources/App/Resources/User Interface/en.lproj/TDCLicenseUpgradeDialog.xib @@ -1,7 +1,8 @@ - + - + + @@ -16,23 +17,23 @@ - - - + + + - + - - + + - - + + @@ -40,71 +41,88 @@ - + - + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + Textual 7, the next generation of the app, is now available as a paid upgrade. @@ -117,7 +135,7 @@ Click “Check Eligibility" to find out which you are eligible for. - + @@ -129,34 +147,26 @@ Click “Check Eligibility" to find out which you are eligible for. - - - - - - - + + - - - - + - + - + diff --git a/Sources/App/Resources/User Interface/en.lproj/TDCLicenseUpgradeEligibilitySheet.xib b/Sources/App/Resources/User Interface/en.lproj/TDCLicenseUpgradeEligibilitySheet.xib index 630024721..fe5b4479e 100644 --- a/Sources/App/Resources/User Interface/en.lproj/TDCLicenseUpgradeEligibilitySheet.xib +++ b/Sources/App/Resources/User Interface/en.lproj/TDCLicenseUpgradeEligibilitySheet.xib @@ -1,8 +1,8 @@ - + - + @@ -17,22 +17,22 @@ - + - + - - + + - - + + @@ -40,7 +40,7 @@ - - - - - + + + - + - - + + + @@ -106,22 +106,22 @@ Gw - + - - + + - - + + - Congratulations, you are eligible for a discount. + Congratulations, you are eligible for a discount! Click the “Purchase Upgrade” button to view the price of the upgrade and to purchase it. @@ -131,7 +131,7 @@ When your order is finished being processed, click the “Activate Textual“ bu - + + - - + + + - - - @@ -191,29 +190,29 @@ Gw - + - + - + - - + + - - + + - Congratulations, you are eligible for a free upgrade. + Congratulations, you are eligible for a free upgrade! Click the “Activate Textual“ button to continue. @@ -221,7 +220,7 @@ Click the “Activate Textual“ button to continue. + - - - + + - - + - + + - + diff --git a/Sources/App/Resources/User Interface/en.lproj/TDCNicknameColorSheet.xib b/Sources/App/Resources/User Interface/en.lproj/TDCNicknameColorSheet.xib index 985430964..00be2807a 100644 --- a/Sources/App/Resources/User Interface/en.lproj/TDCNicknameColorSheet.xib +++ b/Sources/App/Resources/User Interface/en.lproj/TDCNicknameColorSheet.xib @@ -1,8 +1,8 @@ - + - + @@ -20,13 +20,13 @@ - + - + - - + + @@ -42,7 +42,7 @@ - + - + - - + + + diff --git a/Sources/App/Resources/User Interface/en.lproj/TDCPreferences.xib b/Sources/App/Resources/User Interface/en.lproj/TDCPreferences.xib index be2c9bc8a..60282d63e 100755 --- a/Sources/App/Resources/User Interface/en.lproj/TDCPreferences.xib +++ b/Sources/App/Resources/User Interface/en.lproj/TDCPreferences.xib @@ -1,17 +1,15 @@ - + - + - - @@ -22,7 +20,9 @@ - + + + @@ -34,10 +34,9 @@ - - + @@ -48,71 +47,70 @@ - - - + - - + + + - + - - - - - - - - - - - - - - + + + + + + + + + + + + + + @@ -257,15 +255,15 @@ - + - + - + @@ -273,281 +271,319 @@ - + - + - - - - + - - + + - - + + - + + + + + + + - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + - - - - - + + + + - - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - - - - - + + - + - + - - + + + + + + - + - + - - + + - + - - + + + + + + + + + + + + + + + - - - - + + + + - - - - - + - + - - + + + + + + + + + + + + + + + - - - - + - - - + + - - - - - - + + + + @@ -848,205 +899,239 @@ - + - + - - - + + + + + + + + + + + + + + + + + + - + - - + - - - + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - + + + + + + + - - + + + + - + - + - - + + - - + + + - + - - + + + + + + + + + + + + + + + + + + + + + - - + - - - - - - - - - - - - + - - + + - + @@ -1054,394 +1139,441 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - + + - - - + - - - - - - - - - - + + + + - - + + - + - - - - - + + - + - - - - + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + JohnDoe%{value1}@… + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - "JohnDoe%{value1}@…" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - + - - - - - - - - - - - + + - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + @@ -1454,106 +1586,82 @@ - + - + - - + + - - + + + - + - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - + @@ -1593,157 +1806,115 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - - + - - - - - - - - - + + + + + + + - - - + + - - - - - + - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + - - - - - - - - + - - - - - - - + + - + - + - + - - - - + - + - - - - - - - - - - - - NSUnarchiveFromData - - - - - - - - - - - - - - - - - - - - - - - - NSUnarchiveFromData - - - - - - - - - - - - - - - - - - - - - - - - NSUnarchiveFromData - - - - - - - - - - - - - - - - - - - - - - - - NSUnarchiveFromData - - - - - - - - - - - - - - - - - - - - - - - - NSUnarchiveFromData - - - - - - - - - - - - - - - - - - - - - - - - NSUnarchiveFromData - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NSUnarchiveFromData + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NSUnarchiveFromData + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NSUnarchiveFromData + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NSUnarchiveFromData + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NSUnarchiveFromData + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NSUnarchiveFromData + + + + + + + - - - - - - - - - - - - - - - + - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + @@ -1961,101 +2142,202 @@ - + - + - - + + - + + - + - - - - - - - - - - - - - - - - - - - - - - - %{value1}@ %{value2}@pt - - - - - %{value1}@ %{value2}@pt - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + %{value1}@ %{value2}@pt + + + + + %{value1}@ %{value2}@pt + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NSNegateBoolean + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + @@ -2063,203 +2345,38 @@ - - - - - - - - - - - - - - - - NSNegateBoolean - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - + + + - - - - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + - - + + + + + - + - - - + - + - - - - - - - - - - - - - - - - - - - 1000 - 2000 - 3000 - 4000 - 5000 - 10000 - 20000 - 30000 - 40000 - 50000 - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + 1000 + 2000 + 3000 + 4000 + 5000 + 10000 + 20000 + 30000 + 40000 + 50000 + + + + + + + + + + + + + + + + + + + + + + - - - + + + The maximum number of messages, per-channel, that are accessible through the scrollback. Messages are not saved between app launches unless “Restore scrollback from previous session” in the Behavior section of Preferences is enabled. @@ -2341,30 +2490,26 @@ Messages are not saved between app launches unless “Restore scrollback from pr - - - - - - - - + + + + + - + + + + - - - - - - - + + + @@ -2395,38 +2540,39 @@ Messages are not saved between app launches unless “Restore scrollback from pr - - - + + + - + - - + + - + - + - + - + + - + - + @@ -2436,7 +2582,7 @@ Messages are not saved between app launches unless “Restore scrollback from pr - + - - - + + + - + - - + + - + - + - + - + @@ -2491,8 +2637,8 @@ Messages are not saved between app launches unless “Restore scrollback from pr - + - - - - - - - + + + @@ -2542,80 +2684,83 @@ Messages are not saved between app launches unless “Restore scrollback from pr - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - + - - - - - - + + + - - - + + + + - - - - + + + + @@ -2629,31 +2774,26 @@ Messages are not saved between app launches unless “Restore scrollback from pr - + - - - - + - + - - + + - - + + - - + - @@ -2667,11 +2807,11 @@ Messages are not saved between app launches unless “Restore scrollback from pr - + - + @@ -2706,7 +2846,7 @@ Messages are not saved between app launches unless “Restore scrollback from pr - - + + - + - - + + - + The commands listed above are performed like any other: write a forward slash (/) followed by the name of the command plus any required arguments. Textual will perform the command and output the results accordingly. - - + + - - + + - + - - - - - - - - - + + + + + + + + + - - - + - - + + + - + - + - - - + + - + - - - - + + + + - - - - - + + - + @@ -2827,20 +2962,20 @@ Messages are not saved between app launches unless “Restore scrollback from pr - - - + + + - + - + - + @@ -2855,33 +2990,33 @@ Messages are not saved between app launches unless “Restore scrollback from pr - - + - + + + - - + - - + + + - - + - + - + - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + - + - + @@ -3246,21 +3075,21 @@ Messages are not saved between app launches unless “Restore scrollback from pr - + - + - + @@ -3269,138 +3098,120 @@ Messages are not saved between app launches unless “Restore scrollback from pr + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - + + - - - - - - + - - - - + + + - + + - - + - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Current Value: %{value1}@ seconds - - - - - - - - - - - - - - - - - Textual must periodically poll the channels that you are in to find out when the away status of each user changes. This preference defines the maximum number of users a channel can contain before the channel is skipped over. - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + @@ -3412,159 +3223,314 @@ Messages are not saved between app launches unless “Restore scrollback from pr - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Textual must periodically poll the channels that you are in to find out when the away status of each user changes. This preference defines the maximum number of users a channel can contain before the channel is skipped over. + +A lower value is always better especially when in a large number of channels. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Current Value: %{value1}@ seconds + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Current Value: %{value1}@ seconds + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - + Joining too many channels at once may be detected as an attack by some IRC networks. You could be disconnected or banned as a result. It is recommended to use a moderate delay (~2.5 seconds) for both timers when joining a large number of channels. - - - - - - - - - - - - - - - - - - - - - - - - - - - Current Value: %{value1}@ seconds - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - + - + @@ -3573,19 +3539,19 @@ Messages are not saved between app launches unless “Restore scrollback from pr - + - + @@ -3594,55 +3560,69 @@ Messages are not saved between app launches unless “Restore scrollback from pr - + - - + + - + - - + + - + - - + + - + - + + + + + + + + + + + + + + + - + @@ -3650,7 +3630,7 @@ Messages are not saved between app launches unless “Restore scrollback from pr - + @@ -3660,8 +3640,8 @@ Messages are not saved between app launches unless “Restore scrollback from pr - - + + - - + + - + + - - + @@ -3692,24 +3672,224 @@ Messages are not saved between app launches unless “Restore scrollback from pr - + - + + - + - - - - + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NSIsNotNil + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3723,261 +3903,108 @@ Messages are not saved between app launches unless “Restore scrollback from pr - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - NSIsNotNil - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - + + - + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + This preference works by disabling certain services. It doesn't know whether a specific image or video is safe. You should therefore not rely solely on this preference. @@ -4335,19 +4310,19 @@ You should therefore not rely solely on this preference. - - - + + + @@ -4362,16 +4337,16 @@ You should therefore not rely solely on this preference. - - - - - - - + + + + + + + @@ -4384,280 +4359,301 @@ You should therefore not rely solely on this preference. - + - + - + - + iCloud Drive is not allowed as a logging location because there is no way to avoid collisions from another copy of Textual that may be logging at the same time. - - - - - - - - - - - - - - - - - - - - - NSIsNotNil - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + NSIsNotNil + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + - + - - - - - - + + - + - + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + - + - + - - - + + - + - - + + - + - + - + - + @@ -4667,12 +4663,12 @@ You should therefore not rely solely on this preference. - + - + - + @@ -4681,13 +4677,37 @@ You should therefore not rely solely on this preference. + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + @@ -4696,98 +4716,48 @@ You should therefore not rely solely on this preference. - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + + - - - + + + - - + - + + - - - - - + + + + - + - + - - - - - - - - - - - - - - - - - + - + - + @@ -4818,28 +4788,78 @@ You should therefore not rely solely on this preference. + + + + + + Off-the-Record Messaging (OTR) increases the privacy of private messages by encrypting their contents so that only you and your chat partner can see what is written. It also provides a means to verify, with certainty, that the person you are communicating with are who they claim to be. + + + + + + + + + - - + + + - + + + + - + + + + - + - + @@ -4866,43 +4886,20 @@ You should therefore not rely solely on this preference. - + - - - - - + - + - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - + - + - - - - + + + + + - + @@ -4974,256 +4992,278 @@ You should therefore not rely solely on this preference. - - - - + - - - - - - - + + + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 100 + 500 + 1000 + 1500 + 2000 + 2500 + 3000 + 3500 + 4000 + 4500 + 5000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 100 - 500 - 1000 - 1500 - 2000 - 2500 - 3000 - 3500 - 4000 - 4500 - 5000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + - - - - - - - - - - - - + + + + + + - + - - + + diff --git a/Sources/App/Resources/User Interface/en.lproj/TDCPreferencesUserStyleSheet.xib b/Sources/App/Resources/User Interface/en.lproj/TDCPreferencesUserStyleSheet.xib index 2afcdbf63..8d6d767ad 100644 --- a/Sources/App/Resources/User Interface/en.lproj/TDCPreferencesUserStyleSheet.xib +++ b/Sources/App/Resources/User Interface/en.lproj/TDCPreferencesUserStyleSheet.xib @@ -1,8 +1,8 @@ - + - + @@ -20,13 +20,13 @@ - + - + - + - + - + @@ -80,12 +80,12 @@ Gw - + - + @@ -94,11 +94,11 @@ Gw - - + + diff --git a/Sources/App/Resources/User Interface/en.lproj/TDCProgressIndicatorSheet.xib b/Sources/App/Resources/User Interface/en.lproj/TDCProgressIndicatorSheet.xib index 87dde7ad7..fd6fe18fa 100644 --- a/Sources/App/Resources/User Interface/en.lproj/TDCProgressIndicatorSheet.xib +++ b/Sources/App/Resources/User Interface/en.lproj/TDCProgressIndicatorSheet.xib @@ -1,8 +1,8 @@ - + - + @@ -17,33 +17,46 @@ - - + + - + - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - + diff --git a/Sources/App/Resources/User Interface/en.lproj/TDCServerChangeNicknameSheet.xib b/Sources/App/Resources/User Interface/en.lproj/TDCServerChangeNicknameSheet.xib index ceb33a02c..024b91551 100755 --- a/Sources/App/Resources/User Interface/en.lproj/TDCServerChangeNicknameSheet.xib +++ b/Sources/App/Resources/User Interface/en.lproj/TDCServerChangeNicknameSheet.xib @@ -1,8 +1,8 @@ - + - + @@ -20,57 +20,77 @@ - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -226,7 +226,7 @@ Gw - + @@ -259,28 +259,28 @@ Gw - + + - - - - - + + + + + - + - - + - + diff --git a/Sources/App/Resources/User Interface/en.lproj/TDCServerEndpointListSheet.xib b/Sources/App/Resources/User Interface/en.lproj/TDCServerEndpointListSheet.xib index 921f7bbad..ec63b77ff 100644 --- a/Sources/App/Resources/User Interface/en.lproj/TDCServerEndpointListSheet.xib +++ b/Sources/App/Resources/User Interface/en.lproj/TDCServerEndpointListSheet.xib @@ -1,8 +1,8 @@ - + - + @@ -12,7 +12,7 @@ - + @@ -22,16 +22,14 @@ - + - - - + - + @@ -45,29 +43,29 @@ - - + + + The order of this table, from top to bottom, determines the order in which Textual connects to each server.

Drag and drop servers to change the order. The top-most server is always the primary. - - + + - + - + - + - + - @@ -78,12 +76,11 @@ - - - + + - + @@ -102,6 +99,7 @@ + @@ -112,7 +110,6 @@ - @@ -123,12 +120,11 @@ - - - + + - + @@ -147,6 +143,7 @@ + @@ -157,7 +154,6 @@ - @@ -169,12 +165,11 @@ Attempt to secure the connection by performing a Transport Layer Security (TLS) negotiation. TLS is the modern equivalent of SSL (Secure Sockets Layer) - - - + + + - + + - - + - - - - - - + + + + + + - + - - + + diff --git a/Sources/App/Resources/User Interface/en.lproj/TDCServerHighlightListSheet.xib b/Sources/App/Resources/User Interface/en.lproj/TDCServerHighlightListSheet.xib index c88b74080..b1dc470b1 100755 --- a/Sources/App/Resources/User Interface/en.lproj/TDCServerHighlightListSheet.xib +++ b/Sources/App/Resources/User Interface/en.lproj/TDCServerHighlightListSheet.xib @@ -1,8 +1,8 @@ - + - + @@ -19,31 +19,30 @@ - + - + - + - - + + - + - - - + + + - + - @@ -55,12 +54,11 @@ - - - + + - - + + @@ -75,6 +73,7 @@ + @@ -83,9 +82,8 @@ - + - @@ -96,12 +94,11 @@ - - - + + - - + + @@ -116,6 +113,7 @@ + @@ -124,9 +122,8 @@ - + - @@ -138,12 +135,11 @@ - - - + + - - + + @@ -156,6 +152,7 @@ + @@ -177,22 +174,26 @@ - - + + + + + - - + + - + @@ -225,8 +226,8 @@ Gw - - + + @@ -238,22 +239,22 @@ Gw - + + - - + diff --git a/Sources/App/Resources/User Interface/en.lproj/TDCServerPropertiesSheet.xib b/Sources/App/Resources/User Interface/en.lproj/TDCServerPropertiesSheet.xib index e24d9b2b8..09146a824 100644 --- a/Sources/App/Resources/User Interface/en.lproj/TDCServerPropertiesSheet.xib +++ b/Sources/App/Resources/User Interface/en.lproj/TDCServerPropertiesSheet.xib @@ -1,8 +1,8 @@ - + - + @@ -80,7 +80,7 @@ - + @@ -104,26 +104,26 @@ - - + + - + - - + + - + - - + + - + @@ -135,14 +135,13 @@ - - - + + - + - + @@ -152,9 +151,10 @@ - - - + + + + @@ -164,14 +164,15 @@ - - - + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + @@ -255,363 +252,329 @@ Gw - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - NSAllRomanInputSourcesLocaleIdentifier - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NSAllRomanInputSourcesLocaleIdentifier + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + @@ -622,27 +585,19 @@ Gw - - + + - - - - - - - - - + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - + + - - + + @@ -755,11 +745,11 @@ Gw - + - + @@ -769,11 +759,11 @@ Gw - + - + @@ -790,53 +780,79 @@ Gw + - - - + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + - + - - - - - + - + - + @@ -891,38 +888,30 @@ Gw - - - - - - - - - - - + + + @@ -931,17 +920,17 @@ Gw - + - + - + - + @@ -959,11 +948,21 @@ Gw + + + + + + + + + + + + + + + + + + - - + + - + - + + @@ -997,13 +1005,10 @@ Gw - + - - - - + - + - + - + - + @@ -1042,7 +1047,7 @@ Gw - + @@ -1055,7 +1060,7 @@ Gw - + @@ -1077,7 +1082,7 @@ Gw - + @@ -1106,7 +1111,7 @@ Gw - + - + - + - + @@ -1194,7 +1198,7 @@ Gw - + @@ -1230,7 +1234,7 @@ Gw - + - + - + - + @@ -1340,7 +1343,7 @@ Gw - + @@ -1371,13 +1374,13 @@ Gw - + - - - - + + + + @@ -1435,39 +1437,36 @@ Gw - + - - + + - + - + - - - - + - - + + @@ -1478,177 +1477,201 @@ Gw + - - + - + - - - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - NSAllRomanInputSourcesLocaleIdentifier - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NSAllRomanInputSourcesLocaleIdentifier + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + Textual will attempt to connect to the Tor anonymity network using the SOCKS5 proxy on port 9150 that is available when the “Tor Browser” application is open. + + + + + + + + + + - + - - + + When enabled, the SOCKS proxy that can be configured in the Network section of System Preferences will be used with the “Automatic” proxy type selected. @@ -1657,7 +1680,7 @@ Gw + - - - + + + - - + + - - - + + + - Textual will attempt to connect to the Tor anonymity network using the SOCKS5 proxy on port 9150 that is available when the “Tor Browser” application is running. - + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - + - + - - + + - + - - + + @@ -1764,7 +1782,7 @@ Gw - + @@ -1779,7 +1797,7 @@ Gw - + @@ -1796,6 +1814,9 @@ Gw + + + - - - - - - - - - - - - + + + + + + + + + + - - - - + + + - - - - + + + + + + - + - + + + + + + + + + + + + + + + + + - - - + + + @@ -1851,9 +1887,9 @@ Gw - - - + + + @@ -1865,159 +1901,178 @@ Gw - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + - + - - - - + - - - + + + + + + + + + + + + + + + + + + - + @@ -2025,10 +2080,7 @@ Gw - - - - + @@ -2046,7 +2098,7 @@ Gw - + @@ -2064,7 +2116,7 @@ Gw - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + - - - - - - - - + - + @@ -2337,19 +2407,20 @@ Gw - + - - - + + + + Textual is capable of connecting to one or more alternate servers if the primary server fails to connect. Click the button presented below to modify the alternate servers for this connection. - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - + - + - - + + - - Additional options including NickServ password, username, real name, etc. can be edited later by control clicking the connection and opening “Server Properties” + + Additional options including NickServ password, username, real name, etc. can be edited later by control clicking the connection and opening “Server Properties”. - - - - + - - + + - + To get started, select a network to connect to using the the control labeled “Destination”, or manually enter the desired server address. - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + - - - - - - + + - - - + - + - - + - + - - - - - + - - - + + - + - - + + diff --git a/Sources/App/Resources/User Interface/en.lproj/TVCAlert.xib b/Sources/App/Resources/User Interface/en.lproj/TVCAlert.xib index 60ce15975..60817f1e6 100755 --- a/Sources/App/Resources/User Interface/en.lproj/TVCAlert.xib +++ b/Sources/App/Resources/User Interface/en.lproj/TVCAlert.xib @@ -1,7 +1,8 @@ - + - + + @@ -21,23 +22,23 @@ - - + + - + - + - + - + @@ -45,7 +46,7 @@ - + @@ -53,7 +54,7 @@ - + - - + + - + + + - - - - + + + @@ -132,6 +135,6 @@ Gw - + diff --git a/Sources/App/Resources/User Interface/en.lproj/TVCChannelSelectionView.xib b/Sources/App/Resources/User Interface/en.lproj/TVCChannelSelectionView.xib index 5e3bc50be..ecb245a97 100644 --- a/Sources/App/Resources/User Interface/en.lproj/TVCChannelSelectionView.xib +++ b/Sources/App/Resources/User Interface/en.lproj/TVCChannelSelectionView.xib @@ -1,8 +1,8 @@ - + - + @@ -20,15 +20,14 @@ - + - + - + - @@ -44,10 +43,7 @@ - + @@ -67,7 +63,7 @@ - + @@ -83,10 +79,7 @@ - + @@ -106,8 +99,8 @@ - - + + @@ -128,7 +121,7 @@ - - + - - - - - + + + + + - + + @@ -526,174 +398,182 @@ - + - + - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - + @@ -772,8 +652,8 @@ - - + + @@ -1158,7 +1038,7 @@ - + @@ -1205,7 +1085,7 @@ - + @@ -1252,7 +1132,7 @@ - + @@ -1299,7 +1179,7 @@ - + @@ -1346,7 +1226,7 @@ - + @@ -1393,7 +1273,7 @@ - + @@ -1440,7 +1320,7 @@ - + @@ -1979,10 +1859,10 @@ @@ -2007,10 +1887,10 @@ - + - - + + @@ -2018,54 +1898,64 @@ - + - - + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + - + - + - + - + - - + + @@ -2073,16 +1963,16 @@ - + - Textual is a powerful, yet lightweight, IRC client built exclusively for the Mac. To get started, Textual will walk you through adding your first server. Click the button below to continue. + Textual is a powerful, yet lightweight, IRC client built exclusively for the Mac. To get started, Textual will walk you through adding your first server. Click the button below to get started. - - + - + - + - + - - - + + - + - - + + @@ -2121,7 +2009,7 @@ - + Thank you for trying Textual 7 for the past 30 days. @@ -2132,7 +2020,7 @@ To continue using Textual 7, you will need to purchase it. - + - + - + - - + - + @@ -2166,7 +2053,7 @@ To continue using Textual 7, you will need to purchase it. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Textual is a powerful, yet lightweight, IRC client built exclusively for the Mac. To get started, Textual will walk you through adding your first server. Click the button below to continue. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Thank you for trying Textual 7 for the past 30 days. - -To continue using Textual 7, you will need to purchase it. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Sources/App/Resources/User Interface/en.lproj/TVCNotificationConfigurationView.xib b/Sources/App/Resources/User Interface/en.lproj/TVCNotificationConfigurationView.xib index 1e96df264..b285ba47d 100644 --- a/Sources/App/Resources/User Interface/en.lproj/TVCNotificationConfigurationView.xib +++ b/Sources/App/Resources/User Interface/en.lproj/TVCNotificationConfigurationView.xib @@ -1,8 +1,8 @@ - + - + @@ -22,43 +22,32 @@ - + - - - - - - - - - - - - + - + @@ -67,130 +56,156 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + diff --git a/Sources/App/Resources/User Interface/en.lproj/TXCMainMenu.xib b/Sources/App/Resources/User Interface/en.lproj/TXCMainMenu.xib index c47c69581..b14696829 100644 --- a/Sources/App/Resources/User Interface/en.lproj/TXCMainMenu.xib +++ b/Sources/App/Resources/User Interface/en.lproj/TXCMainMenu.xib @@ -1,8 +1,8 @@ - + - + @@ -52,6 +52,7 @@ + @@ -104,7 +105,7 @@ - + @@ -123,6 +124,7 @@ + @@ -169,7 +171,7 @@ - + @@ -183,6 +185,7 @@ + @@ -956,16 +959,10 @@ CQ - - - - - - - + - + @@ -1183,7 +1180,7 @@ CQ - + @@ -1327,6 +1324,7 @@ CA + @@ -1351,6 +1349,7 @@ CA + @@ -1363,6 +1362,7 @@ CA + @@ -1382,6 +1382,7 @@ CA + @@ -1587,7 +1588,7 @@ CA - + diff --git a/Sources/App/Textual App.xcodeproj/project.pbxproj b/Sources/App/Textual App.xcodeproj/project.pbxproj index 6cd2cda2c..806070a38 100755 --- a/Sources/App/Textual App.xcodeproj/project.pbxproj +++ b/Sources/App/Textual App.xcodeproj/project.pbxproj @@ -64,157 +64,69 @@ 4C06DFB020EC49FA0055D09A /* ErroneousTextFieldValueIndicator.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31537B20EB676400448776 /* ErroneousTextFieldValueIndicator.tif */; }; 4C06DFB120EC49FA0055D09A /* VibrantDarkServerListViewPrivateMessageUserIconInactive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31537E20EB676400448776 /* VibrantDarkServerListViewPrivateMessageUserIconInactive@2x.tif */; }; 4C06DFB220EC49FA0055D09A /* VibrantDarkServerListViewPrivateMessageUserIconActive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31537F20EB676400448776 /* VibrantDarkServerListViewPrivateMessageUserIconActive@2x.tif */; }; - 4C06DFB320EC49FA0055D09A /* YosemiteDarkServerListViewDisclosureDown.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538020EB676400448776 /* YosemiteDarkServerListViewDisclosureDown.tif */; }; - 4C06DFB420EC49FA0055D09A /* YosemiteDarkServerListViewDisclosureUp.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538120EB676400448776 /* YosemiteDarkServerListViewDisclosureUp.tif */; }; 4C06DFB520EC49FA0055D09A /* VibrantDarkServerListViewPrivateMessageUserIconActive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538220EB676400448776 /* VibrantDarkServerListViewPrivateMessageUserIconActive.tif */; }; 4C06DFB620EC49FA0055D09A /* VibrantLightServerListViewPrivateMessageUserIconActive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538320EB676400448776 /* VibrantLightServerListViewPrivateMessageUserIconActive.tif */; }; 4C06DFB720EC49FA0055D09A /* VibrantLightServerListViewPrivateMessageUserIconInactive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538420EB676400448776 /* VibrantLightServerListViewPrivateMessageUserIconInactive.tif */; }; 4C06DFB820EC49FA0055D09A /* VibrantLightServerListViewPrivateMessageUserIconActive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538520EB676400448776 /* VibrantLightServerListViewPrivateMessageUserIconActive@2x.tif */; }; 4C06DFB920EC49FA0055D09A /* VibrantDarkServerListViewPrivateMessageUserIconInactive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538620EB676400448776 /* VibrantDarkServerListViewPrivateMessageUserIconInactive.tif */; }; 4C06DFBA20EC49FA0055D09A /* VibrantLightServerListViewPrivateMessageUserIconInactive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538720EB676400448776 /* VibrantLightServerListViewPrivateMessageUserIconInactive@2x.tif */; }; - 4C06DFBB20EC49FA0055D09A /* MavericksDarkServerListViewDisclosureDown@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538920EB676400448776 /* MavericksDarkServerListViewDisclosureDown@2x.tif */; }; - 4C06DFBC20EC49FA0055D09A /* MavericksDarkServerListViewDisclosureUpSelected.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538A20EB676400448776 /* MavericksDarkServerListViewDisclosureUpSelected.tif */; }; - 4C06DFBD20EC49FA0055D09A /* MavericksDarkServerListViewDisclosureUpSelected@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538B20EB676400448776 /* MavericksDarkServerListViewDisclosureUpSelected@2x.tif */; }; - 4C06DFBE20EC49FA0055D09A /* MavericksDarkServerListViewDisclosureDownSelected.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538C20EB676400448776 /* MavericksDarkServerListViewDisclosureDownSelected.tif */; }; - 4C06DFBF20EC49FA0055D09A /* MavericksDarkServerListViewDisclosureUp@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538D20EB676400448776 /* MavericksDarkServerListViewDisclosureUp@2x.tif */; }; - 4C06DFC020EC49FA0055D09A /* MavericksDarkChannelCellSelection@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538E20EB676400448776 /* MavericksDarkChannelCellSelection@2x.tif */; }; - 4C06DFC120EC49FA0055D09A /* MavericksDarkServerListViewDisclosureDown.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538F20EB676400448776 /* MavericksDarkServerListViewDisclosureDown.tif */; }; - 4C06DFC220EC49FA0055D09A /* MavericksDarkServerCellSelection@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31539020EB676400448776 /* MavericksDarkServerCellSelection@2x.tif */; }; - 4C06DFC320EC49FA0055D09A /* MavericksDarkServerListViewDisclosureDownSelected@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31539120EB676400448776 /* MavericksDarkServerListViewDisclosureDownSelected@2x.tif */; }; - 4C06DFC420EC49FA0055D09A /* MavericksDarkServerListViewDisclosureUp.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31539220EB676400448776 /* MavericksDarkServerListViewDisclosureUp.tif */; }; - 4C06DFC520EC49FA0055D09A /* MavericksDarkServerCellSelection.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31539320EB676400448776 /* MavericksDarkServerCellSelection.tif */; }; - 4C06DFC620EC49FA0055D09A /* MavericksDarkServerListViewSelectedPrivateMessageUserInactive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31539420EB676400448776 /* MavericksDarkServerListViewSelectedPrivateMessageUserInactive.tif */; }; - 4C06DFC720EC49FA0055D09A /* MavericksDarkChannelCellSelection.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31539520EB676400448776 /* MavericksDarkChannelCellSelection.tif */; }; - 4C06DFC820EC49FA0055D09A /* MavericksDarkServerListViewSelectedPrivateMessageUserActive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31539620EB676400448776 /* MavericksDarkServerListViewSelectedPrivateMessageUserActive.tif */; }; 4C06DFC920EC49FA0055D09A /* MainWindowSegmentedControlUserTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4C31537820EB676400448776 /* MainWindowSegmentedControlUserTemplate.pdf */; }; 4C06DFCA20EC49FA0055D09A /* MainWindowSpotlightIconTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4C31537920EB676400448776 /* MainWindowSpotlightIconTemplate.pdf */; }; 4C06DFCB20EC49FA0055D09A /* ErroneousTextFieldValueIndicator.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31537B20EB676400448776 /* ErroneousTextFieldValueIndicator.tif */; }; 4C06DFCC20EC49FA0055D09A /* VibrantDarkServerListViewPrivateMessageUserIconInactive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31537E20EB676400448776 /* VibrantDarkServerListViewPrivateMessageUserIconInactive@2x.tif */; }; 4C06DFCD20EC49FA0055D09A /* VibrantDarkServerListViewPrivateMessageUserIconActive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31537F20EB676400448776 /* VibrantDarkServerListViewPrivateMessageUserIconActive@2x.tif */; }; - 4C06DFCE20EC49FA0055D09A /* YosemiteDarkServerListViewDisclosureDown.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538020EB676400448776 /* YosemiteDarkServerListViewDisclosureDown.tif */; }; - 4C06DFCF20EC49FA0055D09A /* YosemiteDarkServerListViewDisclosureUp.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538120EB676400448776 /* YosemiteDarkServerListViewDisclosureUp.tif */; }; 4C06DFD020EC49FA0055D09A /* VibrantDarkServerListViewPrivateMessageUserIconActive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538220EB676400448776 /* VibrantDarkServerListViewPrivateMessageUserIconActive.tif */; }; 4C06DFD120EC49FA0055D09A /* VibrantLightServerListViewPrivateMessageUserIconActive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538320EB676400448776 /* VibrantLightServerListViewPrivateMessageUserIconActive.tif */; }; 4C06DFD220EC49FA0055D09A /* VibrantLightServerListViewPrivateMessageUserIconInactive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538420EB676400448776 /* VibrantLightServerListViewPrivateMessageUserIconInactive.tif */; }; 4C06DFD320EC49FA0055D09A /* VibrantLightServerListViewPrivateMessageUserIconActive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538520EB676400448776 /* VibrantLightServerListViewPrivateMessageUserIconActive@2x.tif */; }; 4C06DFD420EC49FA0055D09A /* VibrantDarkServerListViewPrivateMessageUserIconInactive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538620EB676400448776 /* VibrantDarkServerListViewPrivateMessageUserIconInactive.tif */; }; 4C06DFD520EC49FA0055D09A /* VibrantLightServerListViewPrivateMessageUserIconInactive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538720EB676400448776 /* VibrantLightServerListViewPrivateMessageUserIconInactive@2x.tif */; }; - 4C06DFD620EC49FA0055D09A /* MavericksDarkServerListViewDisclosureDown@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538920EB676400448776 /* MavericksDarkServerListViewDisclosureDown@2x.tif */; }; - 4C06DFD720EC49FA0055D09A /* MavericksDarkServerListViewDisclosureUpSelected.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538A20EB676400448776 /* MavericksDarkServerListViewDisclosureUpSelected.tif */; }; - 4C06DFD820EC49FA0055D09A /* MavericksDarkServerListViewDisclosureUpSelected@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538B20EB676400448776 /* MavericksDarkServerListViewDisclosureUpSelected@2x.tif */; }; - 4C06DFD920EC49FA0055D09A /* MavericksDarkServerListViewDisclosureDownSelected.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538C20EB676400448776 /* MavericksDarkServerListViewDisclosureDownSelected.tif */; }; - 4C06DFDA20EC49FA0055D09A /* MavericksDarkServerListViewDisclosureUp@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538D20EB676400448776 /* MavericksDarkServerListViewDisclosureUp@2x.tif */; }; - 4C06DFDB20EC49FA0055D09A /* MavericksDarkChannelCellSelection@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538E20EB676400448776 /* MavericksDarkChannelCellSelection@2x.tif */; }; - 4C06DFDC20EC49FA0055D09A /* MavericksDarkServerListViewDisclosureDown.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538F20EB676400448776 /* MavericksDarkServerListViewDisclosureDown.tif */; }; - 4C06DFDD20EC49FA0055D09A /* MavericksDarkServerCellSelection@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31539020EB676400448776 /* MavericksDarkServerCellSelection@2x.tif */; }; - 4C06DFDE20EC49FA0055D09A /* MavericksDarkServerListViewDisclosureDownSelected@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31539120EB676400448776 /* MavericksDarkServerListViewDisclosureDownSelected@2x.tif */; }; - 4C06DFDF20EC49FA0055D09A /* MavericksDarkServerListViewDisclosureUp.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31539220EB676400448776 /* MavericksDarkServerListViewDisclosureUp.tif */; }; - 4C06DFE020EC49FA0055D09A /* MavericksDarkServerCellSelection.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31539320EB676400448776 /* MavericksDarkServerCellSelection.tif */; }; - 4C06DFE120EC49FA0055D09A /* MavericksDarkServerListViewSelectedPrivateMessageUserInactive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31539420EB676400448776 /* MavericksDarkServerListViewSelectedPrivateMessageUserInactive.tif */; }; - 4C06DFE220EC49FA0055D09A /* MavericksDarkChannelCellSelection.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31539520EB676400448776 /* MavericksDarkChannelCellSelection.tif */; }; - 4C06DFE320EC49FA0055D09A /* MavericksDarkServerListViewSelectedPrivateMessageUserActive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31539620EB676400448776 /* MavericksDarkServerListViewSelectedPrivateMessageUserActive.tif */; }; 4C06DFE420EC49FB0055D09A /* MainWindowSegmentedControlUserTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4C31537820EB676400448776 /* MainWindowSegmentedControlUserTemplate.pdf */; }; 4C06DFE520EC49FB0055D09A /* MainWindowSpotlightIconTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4C31537920EB676400448776 /* MainWindowSpotlightIconTemplate.pdf */; }; 4C06DFE620EC49FB0055D09A /* ErroneousTextFieldValueIndicator.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31537B20EB676400448776 /* ErroneousTextFieldValueIndicator.tif */; }; 4C06DFE720EC49FB0055D09A /* VibrantDarkServerListViewPrivateMessageUserIconInactive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31537E20EB676400448776 /* VibrantDarkServerListViewPrivateMessageUserIconInactive@2x.tif */; }; 4C06DFE820EC49FB0055D09A /* VibrantDarkServerListViewPrivateMessageUserIconActive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31537F20EB676400448776 /* VibrantDarkServerListViewPrivateMessageUserIconActive@2x.tif */; }; - 4C06DFE920EC49FB0055D09A /* YosemiteDarkServerListViewDisclosureDown.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538020EB676400448776 /* YosemiteDarkServerListViewDisclosureDown.tif */; }; - 4C06DFEA20EC49FB0055D09A /* YosemiteDarkServerListViewDisclosureUp.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538120EB676400448776 /* YosemiteDarkServerListViewDisclosureUp.tif */; }; 4C06DFEB20EC49FB0055D09A /* VibrantDarkServerListViewPrivateMessageUserIconActive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538220EB676400448776 /* VibrantDarkServerListViewPrivateMessageUserIconActive.tif */; }; 4C06DFEC20EC49FB0055D09A /* VibrantLightServerListViewPrivateMessageUserIconActive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538320EB676400448776 /* VibrantLightServerListViewPrivateMessageUserIconActive.tif */; }; 4C06DFED20EC49FB0055D09A /* VibrantLightServerListViewPrivateMessageUserIconInactive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538420EB676400448776 /* VibrantLightServerListViewPrivateMessageUserIconInactive.tif */; }; 4C06DFEE20EC49FB0055D09A /* VibrantLightServerListViewPrivateMessageUserIconActive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538520EB676400448776 /* VibrantLightServerListViewPrivateMessageUserIconActive@2x.tif */; }; 4C06DFEF20EC49FB0055D09A /* VibrantDarkServerListViewPrivateMessageUserIconInactive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538620EB676400448776 /* VibrantDarkServerListViewPrivateMessageUserIconInactive.tif */; }; 4C06DFF020EC49FB0055D09A /* VibrantLightServerListViewPrivateMessageUserIconInactive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538720EB676400448776 /* VibrantLightServerListViewPrivateMessageUserIconInactive@2x.tif */; }; - 4C06DFF120EC49FB0055D09A /* MavericksDarkServerListViewDisclosureDown@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538920EB676400448776 /* MavericksDarkServerListViewDisclosureDown@2x.tif */; }; - 4C06DFF220EC49FB0055D09A /* MavericksDarkServerListViewDisclosureUpSelected.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538A20EB676400448776 /* MavericksDarkServerListViewDisclosureUpSelected.tif */; }; - 4C06DFF320EC49FB0055D09A /* MavericksDarkServerListViewDisclosureUpSelected@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538B20EB676400448776 /* MavericksDarkServerListViewDisclosureUpSelected@2x.tif */; }; - 4C06DFF420EC49FB0055D09A /* MavericksDarkServerListViewDisclosureDownSelected.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538C20EB676400448776 /* MavericksDarkServerListViewDisclosureDownSelected.tif */; }; - 4C06DFF520EC49FB0055D09A /* MavericksDarkServerListViewDisclosureUp@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538D20EB676400448776 /* MavericksDarkServerListViewDisclosureUp@2x.tif */; }; - 4C06DFF620EC49FB0055D09A /* MavericksDarkChannelCellSelection@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538E20EB676400448776 /* MavericksDarkChannelCellSelection@2x.tif */; }; - 4C06DFF720EC49FB0055D09A /* MavericksDarkServerListViewDisclosureDown.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538F20EB676400448776 /* MavericksDarkServerListViewDisclosureDown.tif */; }; - 4C06DFF820EC49FB0055D09A /* MavericksDarkServerCellSelection@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31539020EB676400448776 /* MavericksDarkServerCellSelection@2x.tif */; }; - 4C06DFF920EC49FB0055D09A /* MavericksDarkServerListViewDisclosureDownSelected@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31539120EB676400448776 /* MavericksDarkServerListViewDisclosureDownSelected@2x.tif */; }; - 4C06DFFA20EC49FB0055D09A /* MavericksDarkServerListViewDisclosureUp.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31539220EB676400448776 /* MavericksDarkServerListViewDisclosureUp.tif */; }; - 4C06DFFB20EC49FB0055D09A /* MavericksDarkServerCellSelection.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31539320EB676400448776 /* MavericksDarkServerCellSelection.tif */; }; - 4C06DFFC20EC49FB0055D09A /* MavericksDarkServerListViewSelectedPrivateMessageUserInactive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31539420EB676400448776 /* MavericksDarkServerListViewSelectedPrivateMessageUserInactive.tif */; }; - 4C06DFFD20EC49FB0055D09A /* MavericksDarkChannelCellSelection.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31539520EB676400448776 /* MavericksDarkChannelCellSelection.tif */; }; - 4C06DFFE20EC49FB0055D09A /* MavericksDarkServerListViewSelectedPrivateMessageUserActive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31539620EB676400448776 /* MavericksDarkServerListViewSelectedPrivateMessageUserActive.tif */; }; 4C06DFFF20EC49FB0055D09A /* MainWindowSegmentedControlUserTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4C31537820EB676400448776 /* MainWindowSegmentedControlUserTemplate.pdf */; }; 4C06E00020EC49FB0055D09A /* MainWindowSpotlightIconTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 4C31537920EB676400448776 /* MainWindowSpotlightIconTemplate.pdf */; }; 4C06E00120EC49FB0055D09A /* ErroneousTextFieldValueIndicator.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31537B20EB676400448776 /* ErroneousTextFieldValueIndicator.tif */; }; 4C06E00220EC49FB0055D09A /* VibrantDarkServerListViewPrivateMessageUserIconInactive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31537E20EB676400448776 /* VibrantDarkServerListViewPrivateMessageUserIconInactive@2x.tif */; }; 4C06E00320EC49FB0055D09A /* VibrantDarkServerListViewPrivateMessageUserIconActive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31537F20EB676400448776 /* VibrantDarkServerListViewPrivateMessageUserIconActive@2x.tif */; }; - 4C06E00420EC49FB0055D09A /* YosemiteDarkServerListViewDisclosureDown.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538020EB676400448776 /* YosemiteDarkServerListViewDisclosureDown.tif */; }; - 4C06E00520EC49FB0055D09A /* YosemiteDarkServerListViewDisclosureUp.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538120EB676400448776 /* YosemiteDarkServerListViewDisclosureUp.tif */; }; 4C06E00620EC49FB0055D09A /* VibrantDarkServerListViewPrivateMessageUserIconActive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538220EB676400448776 /* VibrantDarkServerListViewPrivateMessageUserIconActive.tif */; }; 4C06E00720EC49FB0055D09A /* VibrantLightServerListViewPrivateMessageUserIconActive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538320EB676400448776 /* VibrantLightServerListViewPrivateMessageUserIconActive.tif */; }; 4C06E00820EC49FB0055D09A /* VibrantLightServerListViewPrivateMessageUserIconInactive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538420EB676400448776 /* VibrantLightServerListViewPrivateMessageUserIconInactive.tif */; }; 4C06E00920EC49FB0055D09A /* VibrantLightServerListViewPrivateMessageUserIconActive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538520EB676400448776 /* VibrantLightServerListViewPrivateMessageUserIconActive@2x.tif */; }; 4C06E00A20EC49FB0055D09A /* VibrantDarkServerListViewPrivateMessageUserIconInactive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538620EB676400448776 /* VibrantDarkServerListViewPrivateMessageUserIconInactive.tif */; }; 4C06E00B20EC49FB0055D09A /* VibrantLightServerListViewPrivateMessageUserIconInactive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538720EB676400448776 /* VibrantLightServerListViewPrivateMessageUserIconInactive@2x.tif */; }; - 4C06E00C20EC49FB0055D09A /* MavericksDarkServerListViewDisclosureDown@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538920EB676400448776 /* MavericksDarkServerListViewDisclosureDown@2x.tif */; }; - 4C06E00D20EC49FB0055D09A /* MavericksDarkServerListViewDisclosureUpSelected.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538A20EB676400448776 /* MavericksDarkServerListViewDisclosureUpSelected.tif */; }; - 4C06E00E20EC49FB0055D09A /* MavericksDarkServerListViewDisclosureUpSelected@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538B20EB676400448776 /* MavericksDarkServerListViewDisclosureUpSelected@2x.tif */; }; - 4C06E00F20EC49FB0055D09A /* MavericksDarkServerListViewDisclosureDownSelected.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538C20EB676400448776 /* MavericksDarkServerListViewDisclosureDownSelected.tif */; }; - 4C06E01020EC49FB0055D09A /* MavericksDarkServerListViewDisclosureUp@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538D20EB676400448776 /* MavericksDarkServerListViewDisclosureUp@2x.tif */; }; - 4C06E01120EC49FB0055D09A /* MavericksDarkChannelCellSelection@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538E20EB676400448776 /* MavericksDarkChannelCellSelection@2x.tif */; }; - 4C06E01220EC49FB0055D09A /* MavericksDarkServerListViewDisclosureDown.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31538F20EB676400448776 /* MavericksDarkServerListViewDisclosureDown.tif */; }; - 4C06E01320EC49FB0055D09A /* MavericksDarkServerCellSelection@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31539020EB676400448776 /* MavericksDarkServerCellSelection@2x.tif */; }; - 4C06E01420EC49FB0055D09A /* MavericksDarkServerListViewDisclosureDownSelected@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31539120EB676400448776 /* MavericksDarkServerListViewDisclosureDownSelected@2x.tif */; }; - 4C06E01520EC49FB0055D09A /* MavericksDarkServerListViewDisclosureUp.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31539220EB676400448776 /* MavericksDarkServerListViewDisclosureUp.tif */; }; - 4C06E01620EC49FB0055D09A /* MavericksDarkServerCellSelection.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31539320EB676400448776 /* MavericksDarkServerCellSelection.tif */; }; - 4C06E01720EC49FB0055D09A /* MavericksDarkServerListViewSelectedPrivateMessageUserInactive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31539420EB676400448776 /* MavericksDarkServerListViewSelectedPrivateMessageUserInactive.tif */; }; - 4C06E01820EC49FB0055D09A /* MavericksDarkChannelCellSelection.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31539520EB676400448776 /* MavericksDarkChannelCellSelection.tif */; }; - 4C06E01920EC49FB0055D09A /* MavericksDarkServerListViewSelectedPrivateMessageUserActive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31539620EB676400448776 /* MavericksDarkServerListViewSelectedPrivateMessageUserActive.tif */; }; - 4C06E01A20EC4A050055D09A /* DIRedBadgeRightYosemite.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31537020EB676400448776 /* DIRedBadgeRightYosemite.png */; }; - 4C06E01B20EC4A050055D09A /* DIRedBadgeLeftYosemite.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31537120EB676400448776 /* DIRedBadgeLeftYosemite.png */; }; - 4C06E01C20EC4A050055D09A /* DIRedBadgeCenterYosemite.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31537220EB676400448776 /* DIRedBadgeCenterYosemite.png */; }; - 4C06E01D20EC4A050055D09A /* DIRedBadgeRightMavericks.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31537420EB676400448776 /* DIRedBadgeRightMavericks.png */; }; - 4C06E01E20EC4A050055D09A /* DIRedBadgeLeftMavericks.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31537520EB676400448776 /* DIRedBadgeLeftMavericks.png */; }; - 4C06E01F20EC4A050055D09A /* DIRedBadgeCenterMavericks.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31537620EB676400448776 /* DIRedBadgeCenterMavericks.png */; }; - 4C06E02020EC4A060055D09A /* DIRedBadgeRightYosemite.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31537020EB676400448776 /* DIRedBadgeRightYosemite.png */; }; - 4C06E02120EC4A060055D09A /* DIRedBadgeLeftYosemite.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31537120EB676400448776 /* DIRedBadgeLeftYosemite.png */; }; - 4C06E02220EC4A060055D09A /* DIRedBadgeCenterYosemite.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31537220EB676400448776 /* DIRedBadgeCenterYosemite.png */; }; - 4C06E02320EC4A060055D09A /* DIRedBadgeRightMavericks.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31537420EB676400448776 /* DIRedBadgeRightMavericks.png */; }; - 4C06E02420EC4A060055D09A /* DIRedBadgeLeftMavericks.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31537520EB676400448776 /* DIRedBadgeLeftMavericks.png */; }; - 4C06E02520EC4A060055D09A /* DIRedBadgeCenterMavericks.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31537620EB676400448776 /* DIRedBadgeCenterMavericks.png */; }; - 4C06E02620EC4A060055D09A /* DIRedBadgeRightYosemite.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31537020EB676400448776 /* DIRedBadgeRightYosemite.png */; }; - 4C06E02720EC4A060055D09A /* DIRedBadgeLeftYosemite.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31537120EB676400448776 /* DIRedBadgeLeftYosemite.png */; }; - 4C06E02820EC4A060055D09A /* DIRedBadgeCenterYosemite.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31537220EB676400448776 /* DIRedBadgeCenterYosemite.png */; }; - 4C06E02920EC4A060055D09A /* DIRedBadgeRightMavericks.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31537420EB676400448776 /* DIRedBadgeRightMavericks.png */; }; - 4C06E02A20EC4A060055D09A /* DIRedBadgeLeftMavericks.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31537520EB676400448776 /* DIRedBadgeLeftMavericks.png */; }; - 4C06E02B20EC4A060055D09A /* DIRedBadgeCenterMavericks.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31537620EB676400448776 /* DIRedBadgeCenterMavericks.png */; }; - 4C06E02C20EC4A060055D09A /* DIRedBadgeRightYosemite.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31537020EB676400448776 /* DIRedBadgeRightYosemite.png */; }; - 4C06E02D20EC4A060055D09A /* DIRedBadgeLeftYosemite.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31537120EB676400448776 /* DIRedBadgeLeftYosemite.png */; }; - 4C06E02E20EC4A060055D09A /* DIRedBadgeCenterYosemite.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31537220EB676400448776 /* DIRedBadgeCenterYosemite.png */; }; - 4C06E02F20EC4A060055D09A /* DIRedBadgeRightMavericks.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31537420EB676400448776 /* DIRedBadgeRightMavericks.png */; }; - 4C06E03020EC4A060055D09A /* DIRedBadgeLeftMavericks.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31537520EB676400448776 /* DIRedBadgeLeftMavericks.png */; }; - 4C06E03120EC4A060055D09A /* DIRedBadgeCenterMavericks.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31537620EB676400448776 /* DIRedBadgeCenterMavericks.png */; }; - 4C06E03220EC4A0F0055D09A /* DIGreenBadgeLeftYosemite.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31535F20EB676400448776 /* DIGreenBadgeLeftYosemite.png */; }; - 4C06E03320EC4A0F0055D09A /* DIGreenBadgeRightYosemite.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31536020EB676400448776 /* DIGreenBadgeRightYosemite.png */; }; - 4C06E03420EC4A0F0055D09A /* DIGreenBadgeCenterYosemite.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31536120EB676400448776 /* DIGreenBadgeCenterYosemite.png */; }; - 4C06E03520EC4A0F0055D09A /* DIGreenBadgeRightMavericks.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31536320EB676400448776 /* DIGreenBadgeRightMavericks.png */; }; - 4C06E03620EC4A0F0055D09A /* DIGreenBadgeLeftMavericks.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31536420EB676400448776 /* DIGreenBadgeLeftMavericks.png */; }; - 4C06E03720EC4A0F0055D09A /* DIGreenBadgeCenterMavericks.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31536520EB676400448776 /* DIGreenBadgeCenterMavericks.png */; }; - 4C06E03820EC4A0F0055D09A /* DIGreenBadgeLeftYosemite.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31535F20EB676400448776 /* DIGreenBadgeLeftYosemite.png */; }; - 4C06E03920EC4A0F0055D09A /* DIGreenBadgeRightYosemite.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31536020EB676400448776 /* DIGreenBadgeRightYosemite.png */; }; - 4C06E03A20EC4A0F0055D09A /* DIGreenBadgeCenterYosemite.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31536120EB676400448776 /* DIGreenBadgeCenterYosemite.png */; }; - 4C06E03B20EC4A0F0055D09A /* DIGreenBadgeRightMavericks.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31536320EB676400448776 /* DIGreenBadgeRightMavericks.png */; }; - 4C06E03C20EC4A0F0055D09A /* DIGreenBadgeLeftMavericks.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31536420EB676400448776 /* DIGreenBadgeLeftMavericks.png */; }; - 4C06E03D20EC4A0F0055D09A /* DIGreenBadgeCenterMavericks.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31536520EB676400448776 /* DIGreenBadgeCenterMavericks.png */; }; - 4C06E03E20EC4A100055D09A /* DIGreenBadgeLeftYosemite.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31535F20EB676400448776 /* DIGreenBadgeLeftYosemite.png */; }; - 4C06E03F20EC4A100055D09A /* DIGreenBadgeRightYosemite.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31536020EB676400448776 /* DIGreenBadgeRightYosemite.png */; }; - 4C06E04020EC4A100055D09A /* DIGreenBadgeCenterYosemite.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31536120EB676400448776 /* DIGreenBadgeCenterYosemite.png */; }; - 4C06E04120EC4A100055D09A /* DIGreenBadgeRightMavericks.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31536320EB676400448776 /* DIGreenBadgeRightMavericks.png */; }; - 4C06E04220EC4A100055D09A /* DIGreenBadgeLeftMavericks.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31536420EB676400448776 /* DIGreenBadgeLeftMavericks.png */; }; - 4C06E04320EC4A100055D09A /* DIGreenBadgeCenterMavericks.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31536520EB676400448776 /* DIGreenBadgeCenterMavericks.png */; }; - 4C06E04420EC4A100055D09A /* DIGreenBadgeLeftYosemite.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31535F20EB676400448776 /* DIGreenBadgeLeftYosemite.png */; }; - 4C06E04520EC4A100055D09A /* DIGreenBadgeRightYosemite.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31536020EB676400448776 /* DIGreenBadgeRightYosemite.png */; }; - 4C06E04620EC4A100055D09A /* DIGreenBadgeCenterYosemite.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31536120EB676400448776 /* DIGreenBadgeCenterYosemite.png */; }; - 4C06E04720EC4A100055D09A /* DIGreenBadgeRightMavericks.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31536320EB676400448776 /* DIGreenBadgeRightMavericks.png */; }; - 4C06E04820EC4A100055D09A /* DIGreenBadgeLeftMavericks.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31536420EB676400448776 /* DIGreenBadgeLeftMavericks.png */; }; - 4C06E04920EC4A100055D09A /* DIGreenBadgeCenterMavericks.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31536520EB676400448776 /* DIGreenBadgeCenterMavericks.png */; }; + 4C06E01A20EC4A050055D09A /* DIRedBadgeRight.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31537020EB676400448776 /* DIRedBadgeRight.png */; }; + 4C06E01B20EC4A050055D09A /* DIRedBadgeLeft.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31537120EB676400448776 /* DIRedBadgeLeft.png */; }; + 4C06E01C20EC4A050055D09A /* DIRedBadgeCenter.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31537220EB676400448776 /* DIRedBadgeCenter.png */; }; + 4C06E02020EC4A060055D09A /* DIRedBadgeRight.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31537020EB676400448776 /* DIRedBadgeRight.png */; }; + 4C06E02120EC4A060055D09A /* DIRedBadgeLeft.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31537120EB676400448776 /* DIRedBadgeLeft.png */; }; + 4C06E02220EC4A060055D09A /* DIRedBadgeCenter.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31537220EB676400448776 /* DIRedBadgeCenter.png */; }; + 4C06E02620EC4A060055D09A /* DIRedBadgeRight.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31537020EB676400448776 /* DIRedBadgeRight.png */; }; + 4C06E02720EC4A060055D09A /* DIRedBadgeLeft.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31537120EB676400448776 /* DIRedBadgeLeft.png */; }; + 4C06E02820EC4A060055D09A /* DIRedBadgeCenter.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31537220EB676400448776 /* DIRedBadgeCenter.png */; }; + 4C06E02C20EC4A060055D09A /* DIRedBadgeRight.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31537020EB676400448776 /* DIRedBadgeRight.png */; }; + 4C06E02D20EC4A060055D09A /* DIRedBadgeLeft.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31537120EB676400448776 /* DIRedBadgeLeft.png */; }; + 4C06E02E20EC4A060055D09A /* DIRedBadgeCenter.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31537220EB676400448776 /* DIRedBadgeCenter.png */; }; + 4C06E03220EC4A0F0055D09A /* DIGreenBadgeLeft.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31535F20EB676400448776 /* DIGreenBadgeLeft.png */; }; + 4C06E03320EC4A0F0055D09A /* DIGreenBadgeRight.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31536020EB676400448776 /* DIGreenBadgeRight.png */; }; + 4C06E03420EC4A0F0055D09A /* DIGreenBadgeCenter.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31536120EB676400448776 /* DIGreenBadgeCenter.png */; }; + 4C06E03820EC4A0F0055D09A /* DIGreenBadgeLeft.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31535F20EB676400448776 /* DIGreenBadgeLeft.png */; }; + 4C06E03920EC4A0F0055D09A /* DIGreenBadgeRight.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31536020EB676400448776 /* DIGreenBadgeRight.png */; }; + 4C06E03A20EC4A0F0055D09A /* DIGreenBadgeCenter.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31536120EB676400448776 /* DIGreenBadgeCenter.png */; }; + 4C06E03E20EC4A100055D09A /* DIGreenBadgeLeft.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31535F20EB676400448776 /* DIGreenBadgeLeft.png */; }; + 4C06E03F20EC4A100055D09A /* DIGreenBadgeRight.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31536020EB676400448776 /* DIGreenBadgeRight.png */; }; + 4C06E04020EC4A100055D09A /* DIGreenBadgeCenter.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31536120EB676400448776 /* DIGreenBadgeCenter.png */; }; + 4C06E04420EC4A100055D09A /* DIGreenBadgeLeft.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31535F20EB676400448776 /* DIGreenBadgeLeft.png */; }; + 4C06E04520EC4A100055D09A /* DIGreenBadgeRight.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31536020EB676400448776 /* DIGreenBadgeRight.png */; }; + 4C06E04620EC4A100055D09A /* DIGreenBadgeCenter.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31536120EB676400448776 /* DIGreenBadgeCenter.png */; }; 4C06E04A20EC4A2E0055D09A /* applicationIcon.iconset in Resources */ = {isa = PBXBuildFile; fileRef = 4C31535920EB676400448776 /* applicationIcon.iconset */; }; 4C06E04B20EC4A2E0055D09A /* applicationIconBirthday.icns in Resources */ = {isa = PBXBuildFile; fileRef = 4C31535A20EB676400448776 /* applicationIconBirthday.icns */; }; 4C06E04C20EC4A2E0055D09A /* applicationIcon.iconset in Resources */ = {isa = PBXBuildFile; fileRef = 4C31535920EB676400448776 /* applicationIcon.iconset */; }; @@ -315,70 +227,38 @@ 4C06E0AB20EC4A540055D09A /* FormattingColor_0.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31534C20EB676400448776 /* FormattingColor_0.png */; }; 4C06E0AC20EC4A540055D09A /* FormattingColor_2.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31534D20EB676400448776 /* FormattingColor_2.png */; }; 4C06E0AD20EC4A540055D09A /* FormattingColor_3.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31534E20EB676400448776 /* FormattingColor_3.png */; }; - 4C06E0AE20EC4A5A0055D09A /* channelRoomStatusIconMavericksLightInactive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31532A20EB676400448776 /* channelRoomStatusIconMavericksLightInactive.tif */; }; - 4C06E0AF20EC4A5A0055D09A /* channelRoomStatusIconMavericksDarkInactive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31532B20EB676400448776 /* channelRoomStatusIconMavericksDarkInactive@2x.tif */; }; - 4C06E0B120EC4A5A0055D09A /* channelRoomStatusIconMavericksLightActive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31532D20EB676400448776 /* channelRoomStatusIconMavericksLightActive@2x.tif */; }; - 4C06E0B220EC4A5A0055D09A /* channelRoomStatusIconMavericksDarkActive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31532E20EB676400448776 /* channelRoomStatusIconMavericksDarkActive@2x.tif */; }; - 4C06E0B420EC4A5A0055D09A /* channelRoomStatusIconMavericksDarkInactive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533020EB676400448776 /* channelRoomStatusIconMavericksDarkInactive.tif */; }; - 4C06E0B520EC4A5A0055D09A /* channelRoomStatusIconYosemiteLightActive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533120EB676400448776 /* channelRoomStatusIconYosemiteLightActive@2x.tif */; }; - 4C06E0B620EC4A5A0055D09A /* channelRoomStatusIconYosemiteDarkActive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533220EB676400448776 /* channelRoomStatusIconYosemiteDarkActive@2x.tif */; }; - 4C06E0B720EC4A5A0055D09A /* channelRoomStatusIconYosemiteLightInactive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533320EB676400448776 /* channelRoomStatusIconYosemiteLightInactive.tif */; }; - 4C06E0B820EC4A5A0055D09A /* channelRoomStatusIconYosemiteDarkInactive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533420EB676400448776 /* channelRoomStatusIconYosemiteDarkInactive@2x.tif */; }; - 4C06E0B920EC4A5A0055D09A /* channelRoomStatusIconMavericksDarkActive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533520EB676400448776 /* channelRoomStatusIconMavericksDarkActive.tif */; }; - 4C06E0BA20EC4A5A0055D09A /* channelRoomStatusIconYosemiteDarkActive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533620EB676400448776 /* channelRoomStatusIconYosemiteDarkActive.tif */; }; - 4C06E0BB20EC4A5A0055D09A /* channelRoomStatusIconYosemiteLightActive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533720EB676400448776 /* channelRoomStatusIconYosemiteLightActive.tif */; }; - 4C06E0BC20EC4A5A0055D09A /* channelRoomStatusIconMavericksLightActive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533820EB676400448776 /* channelRoomStatusIconMavericksLightActive.tif */; }; - 4C06E0BD20EC4A5A0055D09A /* channelRoomStatusIconYosemiteDarkInactive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533920EB676400448776 /* channelRoomStatusIconYosemiteDarkInactive.tif */; }; - 4C06E0BE20EC4A5A0055D09A /* channelRoomStatusIconMavericksLightInactive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533A20EB676400448776 /* channelRoomStatusIconMavericksLightInactive@2x.tif */; }; - 4C06E0BF20EC4A5A0055D09A /* channelRoomStatusIconYosemiteLightInactive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533B20EB676400448776 /* channelRoomStatusIconYosemiteLightInactive@2x.tif */; }; - 4C06E0C020EC4A5B0055D09A /* channelRoomStatusIconMavericksLightInactive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31532A20EB676400448776 /* channelRoomStatusIconMavericksLightInactive.tif */; }; - 4C06E0C120EC4A5B0055D09A /* channelRoomStatusIconMavericksDarkInactive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31532B20EB676400448776 /* channelRoomStatusIconMavericksDarkInactive@2x.tif */; }; - 4C06E0C320EC4A5B0055D09A /* channelRoomStatusIconMavericksLightActive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31532D20EB676400448776 /* channelRoomStatusIconMavericksLightActive@2x.tif */; }; - 4C06E0C420EC4A5B0055D09A /* channelRoomStatusIconMavericksDarkActive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31532E20EB676400448776 /* channelRoomStatusIconMavericksDarkActive@2x.tif */; }; - 4C06E0C620EC4A5B0055D09A /* channelRoomStatusIconMavericksDarkInactive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533020EB676400448776 /* channelRoomStatusIconMavericksDarkInactive.tif */; }; - 4C06E0C720EC4A5B0055D09A /* channelRoomStatusIconYosemiteLightActive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533120EB676400448776 /* channelRoomStatusIconYosemiteLightActive@2x.tif */; }; - 4C06E0C820EC4A5B0055D09A /* channelRoomStatusIconYosemiteDarkActive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533220EB676400448776 /* channelRoomStatusIconYosemiteDarkActive@2x.tif */; }; - 4C06E0C920EC4A5B0055D09A /* channelRoomStatusIconYosemiteLightInactive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533320EB676400448776 /* channelRoomStatusIconYosemiteLightInactive.tif */; }; - 4C06E0CA20EC4A5B0055D09A /* channelRoomStatusIconYosemiteDarkInactive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533420EB676400448776 /* channelRoomStatusIconYosemiteDarkInactive@2x.tif */; }; - 4C06E0CB20EC4A5B0055D09A /* channelRoomStatusIconMavericksDarkActive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533520EB676400448776 /* channelRoomStatusIconMavericksDarkActive.tif */; }; - 4C06E0CC20EC4A5B0055D09A /* channelRoomStatusIconYosemiteDarkActive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533620EB676400448776 /* channelRoomStatusIconYosemiteDarkActive.tif */; }; - 4C06E0CD20EC4A5B0055D09A /* channelRoomStatusIconYosemiteLightActive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533720EB676400448776 /* channelRoomStatusIconYosemiteLightActive.tif */; }; - 4C06E0CE20EC4A5B0055D09A /* channelRoomStatusIconMavericksLightActive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533820EB676400448776 /* channelRoomStatusIconMavericksLightActive.tif */; }; - 4C06E0CF20EC4A5B0055D09A /* channelRoomStatusIconYosemiteDarkInactive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533920EB676400448776 /* channelRoomStatusIconYosemiteDarkInactive.tif */; }; - 4C06E0D020EC4A5B0055D09A /* channelRoomStatusIconMavericksLightInactive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533A20EB676400448776 /* channelRoomStatusIconMavericksLightInactive@2x.tif */; }; - 4C06E0D120EC4A5B0055D09A /* channelRoomStatusIconYosemiteLightInactive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533B20EB676400448776 /* channelRoomStatusIconYosemiteLightInactive@2x.tif */; }; - 4C06E0D220EC4A5B0055D09A /* channelRoomStatusIconMavericksLightInactive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31532A20EB676400448776 /* channelRoomStatusIconMavericksLightInactive.tif */; }; - 4C06E0D320EC4A5B0055D09A /* channelRoomStatusIconMavericksDarkInactive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31532B20EB676400448776 /* channelRoomStatusIconMavericksDarkInactive@2x.tif */; }; - 4C06E0D520EC4A5B0055D09A /* channelRoomStatusIconMavericksLightActive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31532D20EB676400448776 /* channelRoomStatusIconMavericksLightActive@2x.tif */; }; - 4C06E0D620EC4A5B0055D09A /* channelRoomStatusIconMavericksDarkActive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31532E20EB676400448776 /* channelRoomStatusIconMavericksDarkActive@2x.tif */; }; - 4C06E0D820EC4A5B0055D09A /* channelRoomStatusIconMavericksDarkInactive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533020EB676400448776 /* channelRoomStatusIconMavericksDarkInactive.tif */; }; - 4C06E0D920EC4A5B0055D09A /* channelRoomStatusIconYosemiteLightActive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533120EB676400448776 /* channelRoomStatusIconYosemiteLightActive@2x.tif */; }; - 4C06E0DA20EC4A5B0055D09A /* channelRoomStatusIconYosemiteDarkActive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533220EB676400448776 /* channelRoomStatusIconYosemiteDarkActive@2x.tif */; }; - 4C06E0DB20EC4A5B0055D09A /* channelRoomStatusIconYosemiteLightInactive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533320EB676400448776 /* channelRoomStatusIconYosemiteLightInactive.tif */; }; - 4C06E0DC20EC4A5B0055D09A /* channelRoomStatusIconYosemiteDarkInactive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533420EB676400448776 /* channelRoomStatusIconYosemiteDarkInactive@2x.tif */; }; - 4C06E0DD20EC4A5B0055D09A /* channelRoomStatusIconMavericksDarkActive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533520EB676400448776 /* channelRoomStatusIconMavericksDarkActive.tif */; }; - 4C06E0DE20EC4A5B0055D09A /* channelRoomStatusIconYosemiteDarkActive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533620EB676400448776 /* channelRoomStatusIconYosemiteDarkActive.tif */; }; - 4C06E0DF20EC4A5B0055D09A /* channelRoomStatusIconYosemiteLightActive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533720EB676400448776 /* channelRoomStatusIconYosemiteLightActive.tif */; }; - 4C06E0E020EC4A5B0055D09A /* channelRoomStatusIconMavericksLightActive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533820EB676400448776 /* channelRoomStatusIconMavericksLightActive.tif */; }; - 4C06E0E120EC4A5B0055D09A /* channelRoomStatusIconYosemiteDarkInactive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533920EB676400448776 /* channelRoomStatusIconYosemiteDarkInactive.tif */; }; - 4C06E0E220EC4A5B0055D09A /* channelRoomStatusIconMavericksLightInactive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533A20EB676400448776 /* channelRoomStatusIconMavericksLightInactive@2x.tif */; }; - 4C06E0E320EC4A5B0055D09A /* channelRoomStatusIconYosemiteLightInactive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533B20EB676400448776 /* channelRoomStatusIconYosemiteLightInactive@2x.tif */; }; - 4C06E0E420EC4A5C0055D09A /* channelRoomStatusIconMavericksLightInactive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31532A20EB676400448776 /* channelRoomStatusIconMavericksLightInactive.tif */; }; - 4C06E0E520EC4A5C0055D09A /* channelRoomStatusIconMavericksDarkInactive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31532B20EB676400448776 /* channelRoomStatusIconMavericksDarkInactive@2x.tif */; }; - 4C06E0E720EC4A5C0055D09A /* channelRoomStatusIconMavericksLightActive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31532D20EB676400448776 /* channelRoomStatusIconMavericksLightActive@2x.tif */; }; - 4C06E0E820EC4A5C0055D09A /* channelRoomStatusIconMavericksDarkActive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31532E20EB676400448776 /* channelRoomStatusIconMavericksDarkActive@2x.tif */; }; - 4C06E0EA20EC4A5C0055D09A /* channelRoomStatusIconMavericksDarkInactive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533020EB676400448776 /* channelRoomStatusIconMavericksDarkInactive.tif */; }; - 4C06E0EB20EC4A5C0055D09A /* channelRoomStatusIconYosemiteLightActive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533120EB676400448776 /* channelRoomStatusIconYosemiteLightActive@2x.tif */; }; - 4C06E0EC20EC4A5C0055D09A /* channelRoomStatusIconYosemiteDarkActive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533220EB676400448776 /* channelRoomStatusIconYosemiteDarkActive@2x.tif */; }; - 4C06E0ED20EC4A5C0055D09A /* channelRoomStatusIconYosemiteLightInactive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533320EB676400448776 /* channelRoomStatusIconYosemiteLightInactive.tif */; }; - 4C06E0EE20EC4A5C0055D09A /* channelRoomStatusIconYosemiteDarkInactive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533420EB676400448776 /* channelRoomStatusIconYosemiteDarkInactive@2x.tif */; }; - 4C06E0EF20EC4A5C0055D09A /* channelRoomStatusIconMavericksDarkActive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533520EB676400448776 /* channelRoomStatusIconMavericksDarkActive.tif */; }; - 4C06E0F020EC4A5C0055D09A /* channelRoomStatusIconYosemiteDarkActive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533620EB676400448776 /* channelRoomStatusIconYosemiteDarkActive.tif */; }; - 4C06E0F120EC4A5C0055D09A /* channelRoomStatusIconYosemiteLightActive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533720EB676400448776 /* channelRoomStatusIconYosemiteLightActive.tif */; }; - 4C06E0F220EC4A5C0055D09A /* channelRoomStatusIconMavericksLightActive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533820EB676400448776 /* channelRoomStatusIconMavericksLightActive.tif */; }; - 4C06E0F320EC4A5C0055D09A /* channelRoomStatusIconYosemiteDarkInactive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533920EB676400448776 /* channelRoomStatusIconYosemiteDarkInactive.tif */; }; - 4C06E0F420EC4A5C0055D09A /* channelRoomStatusIconMavericksLightInactive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533A20EB676400448776 /* channelRoomStatusIconMavericksLightInactive@2x.tif */; }; - 4C06E0F520EC4A5C0055D09A /* channelRoomStatusIconYosemiteLightInactive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533B20EB676400448776 /* channelRoomStatusIconYosemiteLightInactive@2x.tif */; }; + 4C06E0B520EC4A5A0055D09A /* channelRoomStatusIconLightActive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533120EB676400448776 /* channelRoomStatusIconLightActive@2x.tif */; }; + 4C06E0B620EC4A5A0055D09A /* channelRoomStatusIconDarkActive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533220EB676400448776 /* channelRoomStatusIconDarkActive@2x.tif */; }; + 4C06E0B720EC4A5A0055D09A /* channelRoomStatusIconLightInactive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533320EB676400448776 /* channelRoomStatusIconLightInactive.tif */; }; + 4C06E0B820EC4A5A0055D09A /* channelRoomStatusIconDarkInactive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533420EB676400448776 /* channelRoomStatusIconDarkInactive@2x.tif */; }; + 4C06E0BA20EC4A5A0055D09A /* channelRoomStatusIconDarkActive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533620EB676400448776 /* channelRoomStatusIconDarkActive.tif */; }; + 4C06E0BB20EC4A5A0055D09A /* channelRoomStatusIconLightActive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533720EB676400448776 /* channelRoomStatusIconLightActive.tif */; }; + 4C06E0BD20EC4A5A0055D09A /* channelRoomStatusIconDarkInactive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533920EB676400448776 /* channelRoomStatusIconDarkInactive.tif */; }; + 4C06E0BF20EC4A5A0055D09A /* channelRoomStatusIconLightInactive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533B20EB676400448776 /* channelRoomStatusIconLightInactive@2x.tif */; }; + 4C06E0C720EC4A5B0055D09A /* channelRoomStatusIconLightActive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533120EB676400448776 /* channelRoomStatusIconLightActive@2x.tif */; }; + 4C06E0C820EC4A5B0055D09A /* channelRoomStatusIconDarkActive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533220EB676400448776 /* channelRoomStatusIconDarkActive@2x.tif */; }; + 4C06E0C920EC4A5B0055D09A /* channelRoomStatusIconLightInactive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533320EB676400448776 /* channelRoomStatusIconLightInactive.tif */; }; + 4C06E0CA20EC4A5B0055D09A /* channelRoomStatusIconDarkInactive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533420EB676400448776 /* channelRoomStatusIconDarkInactive@2x.tif */; }; + 4C06E0CC20EC4A5B0055D09A /* channelRoomStatusIconDarkActive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533620EB676400448776 /* channelRoomStatusIconDarkActive.tif */; }; + 4C06E0CD20EC4A5B0055D09A /* channelRoomStatusIconLightActive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533720EB676400448776 /* channelRoomStatusIconLightActive.tif */; }; + 4C06E0CF20EC4A5B0055D09A /* channelRoomStatusIconDarkInactive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533920EB676400448776 /* channelRoomStatusIconDarkInactive.tif */; }; + 4C06E0D120EC4A5B0055D09A /* channelRoomStatusIconLightInactive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533B20EB676400448776 /* channelRoomStatusIconLightInactive@2x.tif */; }; + 4C06E0D920EC4A5B0055D09A /* channelRoomStatusIconLightActive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533120EB676400448776 /* channelRoomStatusIconLightActive@2x.tif */; }; + 4C06E0DA20EC4A5B0055D09A /* channelRoomStatusIconDarkActive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533220EB676400448776 /* channelRoomStatusIconDarkActive@2x.tif */; }; + 4C06E0DB20EC4A5B0055D09A /* channelRoomStatusIconLightInactive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533320EB676400448776 /* channelRoomStatusIconLightInactive.tif */; }; + 4C06E0DC20EC4A5B0055D09A /* channelRoomStatusIconDarkInactive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533420EB676400448776 /* channelRoomStatusIconDarkInactive@2x.tif */; }; + 4C06E0DE20EC4A5B0055D09A /* channelRoomStatusIconDarkActive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533620EB676400448776 /* channelRoomStatusIconDarkActive.tif */; }; + 4C06E0DF20EC4A5B0055D09A /* channelRoomStatusIconLightActive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533720EB676400448776 /* channelRoomStatusIconLightActive.tif */; }; + 4C06E0E120EC4A5B0055D09A /* channelRoomStatusIconDarkInactive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533920EB676400448776 /* channelRoomStatusIconDarkInactive.tif */; }; + 4C06E0E320EC4A5B0055D09A /* channelRoomStatusIconLightInactive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533B20EB676400448776 /* channelRoomStatusIconLightInactive@2x.tif */; }; + 4C06E0EB20EC4A5C0055D09A /* channelRoomStatusIconLightActive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533120EB676400448776 /* channelRoomStatusIconLightActive@2x.tif */; }; + 4C06E0EC20EC4A5C0055D09A /* channelRoomStatusIconDarkActive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533220EB676400448776 /* channelRoomStatusIconDarkActive@2x.tif */; }; + 4C06E0ED20EC4A5C0055D09A /* channelRoomStatusIconLightInactive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533320EB676400448776 /* channelRoomStatusIconLightInactive.tif */; }; + 4C06E0EE20EC4A5C0055D09A /* channelRoomStatusIconDarkInactive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533420EB676400448776 /* channelRoomStatusIconDarkInactive@2x.tif */; }; + 4C06E0F020EC4A5C0055D09A /* channelRoomStatusIconDarkActive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533620EB676400448776 /* channelRoomStatusIconDarkActive.tif */; }; + 4C06E0F120EC4A5C0055D09A /* channelRoomStatusIconLightActive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533720EB676400448776 /* channelRoomStatusIconLightActive.tif */; }; + 4C06E0F320EC4A5C0055D09A /* channelRoomStatusIconDarkInactive.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533920EB676400448776 /* channelRoomStatusIconDarkInactive.tif */; }; + 4C06E0F520EC4A5C0055D09A /* channelRoomStatusIconLightInactive@2x.tif in Resources */ = {isa = PBXBuildFile; fileRef = 4C31533B20EB676400448776 /* channelRoomStatusIconLightInactive@2x.tif */; }; 4C06E0F620EC4A620055D09A /* TPWTB_Advanced@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31531920EB676400448776 /* TPWTB_Advanced@2x.png */; }; 4C06E0F720EC4A620055D09A /* TPWTB_Highlights.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31531A20EB676400448776 /* TPWTB_Highlights.png */; }; 4C06E0F820EC4A620055D09A /* TPWTB_Highlights@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31531B20EB676400448776 /* TPWTB_Highlights@2x.png */; }; @@ -443,10 +323,6 @@ 4C06E13320EC4A640055D09A /* TPWTB_Notifications.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31532620EB676400448776 /* TPWTB_Notifications.png */; }; 4C06E13420EC4A640055D09A /* TPWTB_Style.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31532720EB676400448776 /* TPWTB_Style.png */; }; 4C06E13520EC4A640055D09A /* TPWTB_General.png in Resources */ = {isa = PBXBuildFile; fileRef = 4C31532820EB676400448776 /* TPWTB_General.png */; }; - 4C06E18620EC4AC40055D09A /* TVCMainWindowMavericks.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C06E13720EC4AC40055D09A /* TVCMainWindowMavericks.xib */; }; - 4C06E18720EC4AC40055D09A /* TVCMainWindowMavericks.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C06E13720EC4AC40055D09A /* TVCMainWindowMavericks.xib */; }; - 4C06E18820EC4AC40055D09A /* TVCMainWindowMavericks.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C06E13720EC4AC40055D09A /* TVCMainWindowMavericks.xib */; }; - 4C06E18920EC4AC40055D09A /* TVCMainWindowMavericks.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C06E13720EC4AC40055D09A /* TVCMainWindowMavericks.xib */; }; 4C06E18A20EC4AC40055D09A /* TDCServerPropertiesSheet.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C06E13920EC4AC40055D09A /* TDCServerPropertiesSheet.xib */; }; 4C06E18B20EC4AC40055D09A /* TDCServerPropertiesSheet.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C06E13920EC4AC40055D09A /* TDCServerPropertiesSheet.xib */; }; 4C06E18C20EC4AC40055D09A /* TDCServerPropertiesSheet.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C06E13920EC4AC40055D09A /* TDCServerPropertiesSheet.xib */; }; @@ -551,10 +427,10 @@ 4C06E1FF20EC4AC50055D09A /* TDCHighlightEntrySheet.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C06E17320EC4AC40055D09A /* TDCHighlightEntrySheet.xib */; }; 4C06E20020EC4AC50055D09A /* TDCHighlightEntrySheet.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C06E17320EC4AC40055D09A /* TDCHighlightEntrySheet.xib */; }; 4C06E20120EC4AC50055D09A /* TDCHighlightEntrySheet.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C06E17320EC4AC40055D09A /* TDCHighlightEntrySheet.xib */; }; - 4C06E20220EC4AC50055D09A /* TVCMainWindowYosemite.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C06E17520EC4AC40055D09A /* TVCMainWindowYosemite.xib */; }; - 4C06E20320EC4AC50055D09A /* TVCMainWindowYosemite.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C06E17520EC4AC40055D09A /* TVCMainWindowYosemite.xib */; }; - 4C06E20420EC4AC50055D09A /* TVCMainWindowYosemite.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C06E17520EC4AC40055D09A /* TVCMainWindowYosemite.xib */; }; - 4C06E20520EC4AC50055D09A /* TVCMainWindowYosemite.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C06E17520EC4AC40055D09A /* TVCMainWindowYosemite.xib */; }; + 4C06E20220EC4AC50055D09A /* TVCMainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C06E17520EC4AC40055D09A /* TVCMainWindow.xib */; }; + 4C06E20320EC4AC50055D09A /* TVCMainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C06E17520EC4AC40055D09A /* TVCMainWindow.xib */; }; + 4C06E20420EC4AC50055D09A /* TVCMainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C06E17520EC4AC40055D09A /* TVCMainWindow.xib */; }; + 4C06E20520EC4AC50055D09A /* TVCMainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C06E17520EC4AC40055D09A /* TVCMainWindow.xib */; }; 4C06E20720EC4AC50055D09A /* TDCLicenseManagerDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C06E17720EC4AC40055D09A /* TDCLicenseManagerDialog.xib */; }; 4C06E20820EC4AC50055D09A /* TDCLicenseManagerDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C06E17720EC4AC40055D09A /* TDCLicenseManagerDialog.xib */; }; 4C06E20920EC4AC50055D09A /* TDCLicenseManagerDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4C06E17720EC4AC40055D09A /* TDCLicenseManagerDialog.xib */; }; @@ -2825,7 +2701,6 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 4C06E13820EC4AC40055D09A /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/TVCMainWindowMavericks.xib; sourceTree = ""; }; 4C06E13A20EC4AC40055D09A /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/TDCServerPropertiesSheet.xib; sourceTree = ""; }; 4C06E13E20EC4AC40055D09A /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/TDCServerHighlightListSheet.xib; sourceTree = ""; }; 4C06E14020EC4AC40055D09A /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/TDCServerEndpointListSheet.xib; sourceTree = ""; }; @@ -2836,7 +2711,6 @@ 4C06E14A20EC4AC40055D09A /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/TDCChannelBanListSheet.xib; sourceTree = ""; }; 4C06E14C20EC4AC40055D09A /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/TDCChannelPropertiesSheet.xib; sourceTree = ""; }; 4C06E14E20EC4AC40055D09A /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/TDCLicenseManagerMigrateAppStoreSheet.xib; sourceTree = ""; }; - 4C06E15020EC4AC40055D09A /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/TDCBuddyListDialog.xib; sourceTree = ""; }; 4C06E15220EC4AC40055D09A /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/TDCLicenseUpgradeEligibilitySheet.xib; sourceTree = ""; }; 4C06E15620EC4AC40055D09A /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/TVCChannelSelectionView.xib; sourceTree = ""; }; 4C06E15820EC4AC40055D09A /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/TXCMainMenu.xib; sourceTree = ""; }; @@ -2854,7 +2728,7 @@ 4C06E17020EC4AC40055D09A /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/TDCChannelModifyTopicSheet.xib; sourceTree = ""; }; 4C06E17220EC4AC40055D09A /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/TDCAboutDialog.xib; sourceTree = ""; }; 4C06E17420EC4AC40055D09A /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/TDCHighlightEntrySheet.xib; sourceTree = ""; }; - 4C06E17620EC4AC40055D09A /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/TVCMainWindowYosemite.xib; sourceTree = ""; }; + 4C06E17620EC4AC40055D09A /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/TVCMainWindow.xib; sourceTree = ""; }; 4C06E17820EC4AC40055D09A /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/TDCLicenseManagerDialog.xib; sourceTree = ""; }; 4C06E17A20EC4AC40055D09A /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/TDCLicenseManagerRecoverLostLicenseSheet.xib; sourceTree = ""; }; 4C06E17C20EC4AC40055D09A /* TVCMemberListAppearance.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = TVCMemberListAppearance.plist; sourceTree = ""; }; @@ -3036,7 +2910,6 @@ 4C31518720EB673E00448776 /* IRCAddressBookInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IRCAddressBookInternal.h; sourceTree = ""; }; 4C31518820EB673E00448776 /* TDCChannelPropertiesSheetInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TDCChannelPropertiesSheetInternal.h; sourceTree = ""; }; 4C31518920EB673E00448776 /* TDCChannelSpotlightAppearanceInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TDCChannelSpotlightAppearanceInternal.h; sourceTree = ""; }; - 4C31518A20EB673E00448776 /* TDCBuddyListDialogInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TDCBuddyListDialogInternal.h; sourceTree = ""; }; 4C31518B20EB673E00448776 /* IRCPrefixInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IRCPrefixInternal.h; sourceTree = ""; }; 4C31518C20EB673E00448776 /* IRCChannelConfigInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IRCChannelConfigInternal.h; sourceTree = ""; }; 4C31518D20EB673E00448776 /* IRCClientConfigInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IRCClientConfigInternal.h; sourceTree = ""; }; @@ -3098,7 +2971,6 @@ 4C3151C820EB673E00448776 /* TVCMainWindowChannelViewPrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TVCMainWindowChannelViewPrivate.h; sourceTree = ""; }; 4C3151C920EB673E00448776 /* TVCLogControllerOperationQueuePrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TVCLogControllerOperationQueuePrivate.h; sourceTree = ""; }; 4C3151CA20EB673E00448776 /* TVCServerListPrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TVCServerListPrivate.h; sourceTree = ""; }; - 4C3151CB20EB673E00448776 /* TDCBuddyListDialogDropViewPrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TDCBuddyListDialogDropViewPrivate.h; sourceTree = ""; }; 4C3151CC20EB673E00448776 /* TDCLicenseUpgradeDialogPrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TDCLicenseUpgradeDialogPrivate.h; sourceTree = ""; }; 4C3151CD20EB673E00448776 /* TVCWK1AutoScrollerPrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TVCWK1AutoScrollerPrivate.h; sourceTree = ""; }; 4C3151CE20EB673E00448776 /* TVCMainWindowSplitViewPrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TVCMainWindowSplitViewPrivate.h; sourceTree = ""; }; @@ -3146,7 +3018,6 @@ 4C3151FB20EB673E00448776 /* TDCSharedProtocolDefinitionsPrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TDCSharedProtocolDefinitionsPrivate.h; sourceTree = ""; }; 4C3151FC20EB673E00448776 /* TDCLicenseUpgradeEligibilitySheetPrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TDCLicenseUpgradeEligibilitySheetPrivate.h; sourceTree = ""; }; 4C3151FD20EB673E00448776 /* TDCLicenseManagerMigrateAppStoreSheetPrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TDCLicenseManagerMigrateAppStoreSheetPrivate.h; sourceTree = ""; }; - 4C3151FE20EB673E00448776 /* TDCBuddyListDialogPrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TDCBuddyListDialogPrivate.h; sourceTree = ""; }; 4C3151FF20EB673E00448776 /* IRCUserNicknameColorStyleGeneratorPrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IRCUserNicknameColorStyleGeneratorPrivate.h; sourceTree = ""; }; 4C31520020EB673E00448776 /* TVCMainWindowAppearancePrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TVCMainWindowAppearancePrivate.h; sourceTree = ""; }; 4C31520120EB673E00448776 /* TLOEncryptionManagerPrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TLOEncryptionManagerPrivate.h; sourceTree = ""; }; @@ -3166,7 +3037,6 @@ 4C31521020EB673E00448776 /* TPCThemeControllerPrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TPCThemeControllerPrivate.h; sourceTree = ""; }; 4C31521120EB673E00448776 /* IRCChannelUserPrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IRCChannelUserPrivate.h; sourceTree = ""; }; 4C31521220EB673E00448776 /* TDCFileTransferDialogPrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TDCFileTransferDialogPrivate.h; sourceTree = ""; }; - 4C31521320EB673E00448776 /* TDCBuddyListDialogTablePrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TDCBuddyListDialogTablePrivate.h; sourceTree = ""; }; 4C31521420EB673E00448776 /* NSViewHelperPrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSViewHelperPrivate.h; sourceTree = ""; }; 4C31521520EB673E00448776 /* TVCLogControllerPrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TVCLogControllerPrivate.h; sourceTree = ""; }; 4C31521620EB673E00448776 /* THOPluginDispatcherPrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = THOPluginDispatcherPrivate.h; sourceTree = ""; }; @@ -3192,7 +3062,6 @@ 4C31522B20EB673E00448776 /* TDCChannelSpotlightControllerPrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TDCChannelSpotlightControllerPrivate.h; sourceTree = ""; }; 4C31522C20EB673E00448776 /* TDCChannelSpotlightSearchResultsTablePrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TDCChannelSpotlightSearchResultsTablePrivate.h; sourceTree = ""; }; 4C31522D20EB673E00448776 /* TVCMainWindowSegmentedControlPrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TVCMainWindowSegmentedControlPrivate.h; sourceTree = ""; }; - 4C31522E20EB673E00448776 /* TDCBuddyListDialogEntryPrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TDCBuddyListDialogEntryPrivate.h; sourceTree = ""; }; 4C31522F20EB673E00448776 /* TDCServerEndpointListSheetPrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TDCServerEndpointListSheetPrivate.h; sourceTree = ""; }; 4C31523020EB673E00448776 /* TVCLogLinePrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TVCLogLinePrivate.h; sourceTree = ""; }; 4C31523120EB673E00448776 /* WKWebViewPrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WKWebViewPrivate.h; sourceTree = ""; }; @@ -3283,10 +3152,6 @@ 4C31529220EB673E00448776 /* TDCFileTransferDialogTransferController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TDCFileTransferDialogTransferController.m; sourceTree = ""; }; 4C31529320EB673E00448776 /* TDCFileTransferDialogTableCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TDCFileTransferDialogTableCell.m; sourceTree = ""; }; 4C31529420EB673E00448776 /* TDCNicknameColorSheet.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TDCNicknameColorSheet.m; sourceTree = ""; }; - 4C31529620EB673E00448776 /* TDCBuddyListDialogDropView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TDCBuddyListDialogDropView.m; sourceTree = ""; }; - 4C31529720EB673E00448776 /* TDCBuddyListDialogTable.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TDCBuddyListDialogTable.m; sourceTree = ""; }; - 4C31529820EB673E00448776 /* TDCBuddyListDialog.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TDCBuddyListDialog.m; sourceTree = ""; }; - 4C31529920EB673E00448776 /* TDCBuddyListDialogEntry.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TDCBuddyListDialogEntry.m; sourceTree = ""; }; 4C31529B20EB673E00448776 /* TXGlobalModels.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TXGlobalModels.m; sourceTree = ""; }; 4C31529C20EB673E00448776 /* TXApplication.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TXApplication.m; sourceTree = ""; }; 4C31529D20EB673E00448776 /* TXSharedApplication.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TXSharedApplication.m; sourceTree = ""; }; @@ -3367,22 +3232,14 @@ 4C31532620EB676400448776 /* TPWTB_Notifications.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = TPWTB_Notifications.png; sourceTree = ""; }; 4C31532720EB676400448776 /* TPWTB_Style.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = TPWTB_Style.png; sourceTree = ""; }; 4C31532820EB676400448776 /* TPWTB_General.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = TPWTB_General.png; sourceTree = ""; }; - 4C31532A20EB676400448776 /* channelRoomStatusIconMavericksLightInactive.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = channelRoomStatusIconMavericksLightInactive.tif; sourceTree = ""; }; - 4C31532B20EB676400448776 /* channelRoomStatusIconMavericksDarkInactive@2x.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "channelRoomStatusIconMavericksDarkInactive@2x.tif"; sourceTree = ""; }; - 4C31532D20EB676400448776 /* channelRoomStatusIconMavericksLightActive@2x.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "channelRoomStatusIconMavericksLightActive@2x.tif"; sourceTree = ""; }; - 4C31532E20EB676400448776 /* channelRoomStatusIconMavericksDarkActive@2x.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "channelRoomStatusIconMavericksDarkActive@2x.tif"; sourceTree = ""; }; - 4C31533020EB676400448776 /* channelRoomStatusIconMavericksDarkInactive.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = channelRoomStatusIconMavericksDarkInactive.tif; sourceTree = ""; }; - 4C31533120EB676400448776 /* channelRoomStatusIconYosemiteLightActive@2x.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "channelRoomStatusIconYosemiteLightActive@2x.tif"; sourceTree = ""; }; - 4C31533220EB676400448776 /* channelRoomStatusIconYosemiteDarkActive@2x.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "channelRoomStatusIconYosemiteDarkActive@2x.tif"; sourceTree = ""; }; - 4C31533320EB676400448776 /* channelRoomStatusIconYosemiteLightInactive.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = channelRoomStatusIconYosemiteLightInactive.tif; sourceTree = ""; }; - 4C31533420EB676400448776 /* channelRoomStatusIconYosemiteDarkInactive@2x.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "channelRoomStatusIconYosemiteDarkInactive@2x.tif"; sourceTree = ""; }; - 4C31533520EB676400448776 /* channelRoomStatusIconMavericksDarkActive.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = channelRoomStatusIconMavericksDarkActive.tif; sourceTree = ""; }; - 4C31533620EB676400448776 /* channelRoomStatusIconYosemiteDarkActive.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = channelRoomStatusIconYosemiteDarkActive.tif; sourceTree = ""; }; - 4C31533720EB676400448776 /* channelRoomStatusIconYosemiteLightActive.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = channelRoomStatusIconYosemiteLightActive.tif; sourceTree = ""; }; - 4C31533820EB676400448776 /* channelRoomStatusIconMavericksLightActive.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = channelRoomStatusIconMavericksLightActive.tif; sourceTree = ""; }; - 4C31533920EB676400448776 /* channelRoomStatusIconYosemiteDarkInactive.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = channelRoomStatusIconYosemiteDarkInactive.tif; sourceTree = ""; }; - 4C31533A20EB676400448776 /* channelRoomStatusIconMavericksLightInactive@2x.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "channelRoomStatusIconMavericksLightInactive@2x.tif"; sourceTree = ""; }; - 4C31533B20EB676400448776 /* channelRoomStatusIconYosemiteLightInactive@2x.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "channelRoomStatusIconYosemiteLightInactive@2x.tif"; sourceTree = ""; }; + 4C31533120EB676400448776 /* channelRoomStatusIconLightActive@2x.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "channelRoomStatusIconLightActive@2x.tif"; sourceTree = ""; }; + 4C31533220EB676400448776 /* channelRoomStatusIconDarkActive@2x.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "channelRoomStatusIconDarkActive@2x.tif"; sourceTree = ""; }; + 4C31533320EB676400448776 /* channelRoomStatusIconLightInactive.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = channelRoomStatusIconLightInactive.tif; sourceTree = ""; }; + 4C31533420EB676400448776 /* channelRoomStatusIconDarkInactive@2x.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "channelRoomStatusIconDarkInactive@2x.tif"; sourceTree = ""; }; + 4C31533620EB676400448776 /* channelRoomStatusIconDarkActive.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = channelRoomStatusIconDarkActive.tif; sourceTree = ""; }; + 4C31533720EB676400448776 /* channelRoomStatusIconLightActive.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = channelRoomStatusIconLightActive.tif; sourceTree = ""; }; + 4C31533920EB676400448776 /* channelRoomStatusIconDarkInactive.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = channelRoomStatusIconDarkInactive.tif; sourceTree = ""; }; + 4C31533B20EB676400448776 /* channelRoomStatusIconLightInactive@2x.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "channelRoomStatusIconLightInactive@2x.tif"; sourceTree = ""; }; 4C31533D20EB676400448776 /* FormattingColor_8.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = FormattingColor_8.png; sourceTree = ""; }; 4C31533E20EB676400448776 /* FormattingColor_9.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = FormattingColor_9.png; sourceTree = ""; }; 4C31533F20EB676400448776 /* FormattingColor_11.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = FormattingColor_11.png; sourceTree = ""; }; @@ -3409,48 +3266,23 @@ 4C31535820EB676400448776 /* applicationIcon.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = applicationIcon.icns; sourceTree = ""; }; 4C31535920EB676400448776 /* applicationIcon.iconset */ = {isa = PBXFileReference; lastKnownFileType = folder.iconset; path = applicationIcon.iconset; sourceTree = ""; }; 4C31535A20EB676400448776 /* applicationIconBirthday.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = applicationIconBirthday.icns; sourceTree = ""; }; - 4C31535F20EB676400448776 /* DIGreenBadgeLeftYosemite.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = DIGreenBadgeLeftYosemite.png; sourceTree = ""; }; - 4C31536020EB676400448776 /* DIGreenBadgeRightYosemite.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = DIGreenBadgeRightYosemite.png; sourceTree = ""; }; - 4C31536120EB676400448776 /* DIGreenBadgeCenterYosemite.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = DIGreenBadgeCenterYosemite.png; sourceTree = ""; }; - 4C31536320EB676400448776 /* DIGreenBadgeRightMavericks.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = DIGreenBadgeRightMavericks.png; sourceTree = ""; }; - 4C31536420EB676400448776 /* DIGreenBadgeLeftMavericks.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = DIGreenBadgeLeftMavericks.png; sourceTree = ""; }; - 4C31536520EB676400448776 /* DIGreenBadgeCenterMavericks.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = DIGreenBadgeCenterMavericks.png; sourceTree = ""; }; - 4C31537020EB676400448776 /* DIRedBadgeRightYosemite.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = DIRedBadgeRightYosemite.png; sourceTree = ""; }; - 4C31537120EB676400448776 /* DIRedBadgeLeftYosemite.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = DIRedBadgeLeftYosemite.png; sourceTree = ""; }; - 4C31537220EB676400448776 /* DIRedBadgeCenterYosemite.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = DIRedBadgeCenterYosemite.png; sourceTree = ""; }; - 4C31537420EB676400448776 /* DIRedBadgeRightMavericks.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = DIRedBadgeRightMavericks.png; sourceTree = ""; }; - 4C31537520EB676400448776 /* DIRedBadgeLeftMavericks.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = DIRedBadgeLeftMavericks.png; sourceTree = ""; }; - 4C31537620EB676400448776 /* DIRedBadgeCenterMavericks.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = DIRedBadgeCenterMavericks.png; sourceTree = ""; }; + 4C31535F20EB676400448776 /* DIGreenBadgeLeft.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = DIGreenBadgeLeft.png; sourceTree = ""; }; + 4C31536020EB676400448776 /* DIGreenBadgeRight.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = DIGreenBadgeRight.png; sourceTree = ""; }; + 4C31536120EB676400448776 /* DIGreenBadgeCenter.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = DIGreenBadgeCenter.png; sourceTree = ""; }; + 4C31537020EB676400448776 /* DIRedBadgeRight.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = DIRedBadgeRight.png; sourceTree = ""; }; + 4C31537120EB676400448776 /* DIRedBadgeLeft.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = DIRedBadgeLeft.png; sourceTree = ""; }; + 4C31537220EB676400448776 /* DIRedBadgeCenter.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = DIRedBadgeCenter.png; sourceTree = ""; }; 4C31537820EB676400448776 /* MainWindowSegmentedControlUserTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = MainWindowSegmentedControlUserTemplate.pdf; sourceTree = ""; }; 4C31537920EB676400448776 /* MainWindowSpotlightIconTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = MainWindowSpotlightIconTemplate.pdf; sourceTree = ""; }; 4C31537B20EB676400448776 /* ErroneousTextFieldValueIndicator.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = ErroneousTextFieldValueIndicator.tif; sourceTree = ""; }; 4C31537E20EB676400448776 /* VibrantDarkServerListViewPrivateMessageUserIconInactive@2x.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "VibrantDarkServerListViewPrivateMessageUserIconInactive@2x.tif"; sourceTree = ""; }; 4C31537F20EB676400448776 /* VibrantDarkServerListViewPrivateMessageUserIconActive@2x.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "VibrantDarkServerListViewPrivateMessageUserIconActive@2x.tif"; sourceTree = ""; }; - 4C31538020EB676400448776 /* YosemiteDarkServerListViewDisclosureDown.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = YosemiteDarkServerListViewDisclosureDown.tif; sourceTree = ""; }; - 4C31538120EB676400448776 /* YosemiteDarkServerListViewDisclosureUp.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = YosemiteDarkServerListViewDisclosureUp.tif; sourceTree = ""; }; 4C31538220EB676400448776 /* VibrantDarkServerListViewPrivateMessageUserIconActive.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = VibrantDarkServerListViewPrivateMessageUserIconActive.tif; sourceTree = ""; }; 4C31538320EB676400448776 /* VibrantLightServerListViewPrivateMessageUserIconActive.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = VibrantLightServerListViewPrivateMessageUserIconActive.tif; sourceTree = ""; }; 4C31538420EB676400448776 /* VibrantLightServerListViewPrivateMessageUserIconInactive.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = VibrantLightServerListViewPrivateMessageUserIconInactive.tif; sourceTree = ""; }; 4C31538520EB676400448776 /* VibrantLightServerListViewPrivateMessageUserIconActive@2x.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "VibrantLightServerListViewPrivateMessageUserIconActive@2x.tif"; sourceTree = ""; }; 4C31538620EB676400448776 /* VibrantDarkServerListViewPrivateMessageUserIconInactive.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = VibrantDarkServerListViewPrivateMessageUserIconInactive.tif; sourceTree = ""; }; 4C31538720EB676400448776 /* VibrantLightServerListViewPrivateMessageUserIconInactive@2x.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "VibrantLightServerListViewPrivateMessageUserIconInactive@2x.tif"; sourceTree = ""; }; - 4C31538920EB676400448776 /* MavericksDarkServerListViewDisclosureDown@2x.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "MavericksDarkServerListViewDisclosureDown@2x.tif"; sourceTree = ""; }; - 4C31538A20EB676400448776 /* MavericksDarkServerListViewDisclosureUpSelected.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = MavericksDarkServerListViewDisclosureUpSelected.tif; sourceTree = ""; }; - 4C31538B20EB676400448776 /* MavericksDarkServerListViewDisclosureUpSelected@2x.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "MavericksDarkServerListViewDisclosureUpSelected@2x.tif"; sourceTree = ""; }; - 4C31538C20EB676400448776 /* MavericksDarkServerListViewDisclosureDownSelected.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = MavericksDarkServerListViewDisclosureDownSelected.tif; sourceTree = ""; }; - 4C31538D20EB676400448776 /* MavericksDarkServerListViewDisclosureUp@2x.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "MavericksDarkServerListViewDisclosureUp@2x.tif"; sourceTree = ""; }; - 4C31538E20EB676400448776 /* MavericksDarkChannelCellSelection@2x.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "MavericksDarkChannelCellSelection@2x.tif"; sourceTree = ""; }; - 4C31538F20EB676400448776 /* MavericksDarkServerListViewDisclosureDown.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = MavericksDarkServerListViewDisclosureDown.tif; sourceTree = ""; }; - 4C31539020EB676400448776 /* MavericksDarkServerCellSelection@2x.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "MavericksDarkServerCellSelection@2x.tif"; sourceTree = ""; }; - 4C31539120EB676400448776 /* MavericksDarkServerListViewDisclosureDownSelected@2x.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = "MavericksDarkServerListViewDisclosureDownSelected@2x.tif"; sourceTree = ""; }; - 4C31539220EB676400448776 /* MavericksDarkServerListViewDisclosureUp.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = MavericksDarkServerListViewDisclosureUp.tif; sourceTree = ""; }; - 4C31539320EB676400448776 /* MavericksDarkServerCellSelection.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = MavericksDarkServerCellSelection.tif; sourceTree = ""; }; - 4C31539420EB676400448776 /* MavericksDarkServerListViewSelectedPrivateMessageUserInactive.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = MavericksDarkServerListViewSelectedPrivateMessageUserInactive.tif; sourceTree = ""; }; - 4C31539520EB676400448776 /* MavericksDarkChannelCellSelection.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = MavericksDarkChannelCellSelection.tif; sourceTree = ""; }; - 4C31539620EB676400448776 /* MavericksDarkServerListViewSelectedPrivateMessageUserActive.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = MavericksDarkServerListViewSelectedPrivateMessageUserActive.tif; sourceTree = ""; }; - 4C31539820EB676400448776 /* BuddyListDropAreaOriginal.zip */ = {isa = PBXFileReference; lastKnownFileType = archive.zip; path = BuddyListDropAreaOriginal.zip; sourceTree = ""; }; - 4C31539920EB676400448776 /* BuddyListDropArea@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "BuddyListDropArea@2x.png"; sourceTree = ""; }; - 4C31539A20EB676400448776 /* BuddyListDropArea.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = BuddyListDropArea.png; sourceTree = ""; }; 4C31539F20EB676400448776 /* IRCCommandIndexRemoteData.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = IRCCommandIndexRemoteData.plist; sourceTree = ""; }; 4C3153A020EB676400448776 /* IRCCommandIndexLocalData.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = IRCCommandIndexLocalData.plist; sourceTree = ""; }; 4C3153A120EB676400448776 /* TemplateLineTypes.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = TemplateLineTypes.plist; sourceTree = ""; }; @@ -3656,7 +3488,6 @@ 4C06E17B20EC4AC40055D09A /* Appearance */, 4C06E17120EC4AC40055D09A /* TDCAboutDialog.xib */, 4C06E16720EC4AC40055D09A /* TDCAddressBookSheet.xib */, - 4C06E14F20EC4AC40055D09A /* TDCBuddyListDialog.xib */, 4C06E14920EC4AC40055D09A /* TDCChannelBanListSheet.xib */, 4C06E15F20EC4AC40055D09A /* TDCChannelInviteSheet.xib */, 4C06E14120EC4AC40055D09A /* TDCChannelModifyModesSheet.xib */, @@ -3683,8 +3514,7 @@ 4C06E16320EC4AC40055D09A /* TDCWelcomeSheet.xib */, 4C06E16920EC4AC40055D09A /* TVCAlert.xib */, 4C06E15520EC4AC40055D09A /* TVCChannelSelectionView.xib */, - 4C06E13720EC4AC40055D09A /* TVCMainWindowMavericks.xib */, - 4C06E17520EC4AC40055D09A /* TVCMainWindowYosemite.xib */, + 4C06E17520EC4AC40055D09A /* TVCMainWindow.xib */, 4C06E15920EC4AC40055D09A /* TVCNotificationConfigurationView.xib */, 4C06E15720EC4AC40055D09A /* TXCMainMenu.xib */, ); @@ -4225,7 +4055,6 @@ 4C31518B20EB673E00448776 /* IRCPrefixInternal.h */, 4C31518520EB673E00448776 /* IRCServerInternal.h */, 4C31518620EB673E00448776 /* IRCUserInternal.h */, - 4C31518A20EB673E00448776 /* TDCBuddyListDialogInternal.h */, 4C31518820EB673E00448776 /* TDCChannelPropertiesSheetInternal.h */, 4C31518920EB673E00448776 /* TDCChannelSpotlightAppearanceInternal.h */, 4C31519320EB673E00448776 /* TDCChannelSpotlightControllerInternal.h */, @@ -4271,10 +4100,6 @@ 4C31520A20EB673E00448776 /* SwiftBridgingHeaderPrivate.h */, 4C31522820EB673E00448776 /* TDCAboutDialogPrivate.h */, 4C3151BA20EB673E00448776 /* TDCAddressBookSheetPrivate.h */, - 4C3151CB20EB673E00448776 /* TDCBuddyListDialogDropViewPrivate.h */, - 4C31522E20EB673E00448776 /* TDCBuddyListDialogEntryPrivate.h */, - 4C3151FE20EB673E00448776 /* TDCBuddyListDialogPrivate.h */, - 4C31521320EB673E00448776 /* TDCBuddyListDialogTablePrivate.h */, 4C3151B920EB673E00448776 /* TDCChannelBanListSheetPrivate.h */, 4C31523E20EB673E00448776 /* TDCChannelInviteSheetPrivate.h */, 4C31523D20EB673E00448776 /* TDCChannelModifyModesSheetPrivate.h */, @@ -4393,7 +4218,6 @@ 4C31526220EB673E00448776 /* Dialogs */ = { isa = PBXGroup; children = ( - 4C31529520EB673E00448776 /* Buddy List */, 4C31526A20EB673E00448776 /* Channel Spotlight */, 4C31529020EB673E00448776 /* File Transfers */, 4C31527220EB673E00448776 /* License Manager */, @@ -4448,7 +4272,6 @@ 4C31527220EB673E00448776 /* License Manager */ = { isa = PBXGroup; children = ( - 4C31527B20EB673E00448776 /* App Store */, 4C31527320EB673E00448776 /* Standalone */, ); path = "License Manager"; @@ -4468,13 +4291,6 @@ path = Standalone; sourceTree = ""; }; - 4C31527B20EB673E00448776 /* App Store */ = { - isa = PBXGroup; - children = ( - ); - path = "App Store"; - sourceTree = ""; - }; 4C31528D20EB673E00448776 /* Server Endpoint */ = { isa = PBXGroup; children = ( @@ -4494,17 +4310,6 @@ path = "File Transfers"; sourceTree = ""; }; - 4C31529520EB673E00448776 /* Buddy List */ = { - isa = PBXGroup; - children = ( - 4C31529820EB673E00448776 /* TDCBuddyListDialog.m */, - 4C31529620EB673E00448776 /* TDCBuddyListDialogDropView.m */, - 4C31529920EB673E00448776 /* TDCBuddyListDialogEntry.m */, - 4C31529720EB673E00448776 /* TDCBuddyListDialogTable.m */, - ); - path = "Buddy List"; - sourceTree = ""; - }; 4C31529A20EB673E00448776 /* Controllers */ = { isa = PBXGroup; children = ( @@ -4747,7 +4552,6 @@ isa = PBXGroup; children = ( 4C31535720EB676400448776 /* Application */, - 4C31539720EB676400448776 /* Buddy List */, 4C31535620EB676400448776 /* Copyright Information for Images.txt */, 4C31535C20EB676400448776 /* Dock Icon Badges */, 4C31534F20EB676400448776 /* Encryption Badges */, @@ -4785,22 +4589,14 @@ 4C31532920EB676400448776 /* Status Badges */ = { isa = PBXGroup; children = ( - 4C31533520EB676400448776 /* channelRoomStatusIconMavericksDarkActive.tif */, - 4C31532E20EB676400448776 /* channelRoomStatusIconMavericksDarkActive@2x.tif */, - 4C31533020EB676400448776 /* channelRoomStatusIconMavericksDarkInactive.tif */, - 4C31532B20EB676400448776 /* channelRoomStatusIconMavericksDarkInactive@2x.tif */, - 4C31533820EB676400448776 /* channelRoomStatusIconMavericksLightActive.tif */, - 4C31532D20EB676400448776 /* channelRoomStatusIconMavericksLightActive@2x.tif */, - 4C31532A20EB676400448776 /* channelRoomStatusIconMavericksLightInactive.tif */, - 4C31533A20EB676400448776 /* channelRoomStatusIconMavericksLightInactive@2x.tif */, - 4C31533620EB676400448776 /* channelRoomStatusIconYosemiteDarkActive.tif */, - 4C31533220EB676400448776 /* channelRoomStatusIconYosemiteDarkActive@2x.tif */, - 4C31533920EB676400448776 /* channelRoomStatusIconYosemiteDarkInactive.tif */, - 4C31533420EB676400448776 /* channelRoomStatusIconYosemiteDarkInactive@2x.tif */, - 4C31533720EB676400448776 /* channelRoomStatusIconYosemiteLightActive.tif */, - 4C31533120EB676400448776 /* channelRoomStatusIconYosemiteLightActive@2x.tif */, - 4C31533320EB676400448776 /* channelRoomStatusIconYosemiteLightInactive.tif */, - 4C31533B20EB676400448776 /* channelRoomStatusIconYosemiteLightInactive@2x.tif */, + 4C31533620EB676400448776 /* channelRoomStatusIconDarkActive.tif */, + 4C31533220EB676400448776 /* channelRoomStatusIconDarkActive@2x.tif */, + 4C31533920EB676400448776 /* channelRoomStatusIconDarkInactive.tif */, + 4C31533420EB676400448776 /* channelRoomStatusIconDarkInactive@2x.tif */, + 4C31533720EB676400448776 /* channelRoomStatusIconLightActive.tif */, + 4C31533120EB676400448776 /* channelRoomStatusIconLightActive@2x.tif */, + 4C31533320EB676400448776 /* channelRoomStatusIconLightInactive.tif */, + 4C31533B20EB676400448776 /* channelRoomStatusIconLightInactive@2x.tif */, ); path = "Status Badges"; sourceTree = ""; @@ -4863,61 +4659,23 @@ 4C31535D20EB676400448776 /* Green */ = { isa = PBXGroup; children = ( - 4C31536220EB676400448776 /* Mavericks */, - 4C31535E20EB676400448776 /* Yosemite */, + 4C31536120EB676400448776 /* DIGreenBadgeCenter.png */, + 4C31535F20EB676400448776 /* DIGreenBadgeLeft.png */, + 4C31536020EB676400448776 /* DIGreenBadgeRight.png */, ); path = Green; sourceTree = ""; }; - 4C31535E20EB676400448776 /* Yosemite */ = { - isa = PBXGroup; - children = ( - 4C31536120EB676400448776 /* DIGreenBadgeCenterYosemite.png */, - 4C31535F20EB676400448776 /* DIGreenBadgeLeftYosemite.png */, - 4C31536020EB676400448776 /* DIGreenBadgeRightYosemite.png */, - ); - path = Yosemite; - sourceTree = ""; - }; - 4C31536220EB676400448776 /* Mavericks */ = { - isa = PBXGroup; - children = ( - 4C31536520EB676400448776 /* DIGreenBadgeCenterMavericks.png */, - 4C31536420EB676400448776 /* DIGreenBadgeLeftMavericks.png */, - 4C31536320EB676400448776 /* DIGreenBadgeRightMavericks.png */, - ); - path = Mavericks; - sourceTree = ""; - }; 4C31536E20EB676400448776 /* Red */ = { isa = PBXGroup; children = ( - 4C31537320EB676400448776 /* Mavericks */, - 4C31536F20EB676400448776 /* Yosemite */, + 4C31537220EB676400448776 /* DIRedBadgeCenter.png */, + 4C31537120EB676400448776 /* DIRedBadgeLeft.png */, + 4C31537020EB676400448776 /* DIRedBadgeRight.png */, ); path = Red; sourceTree = ""; }; - 4C31536F20EB676400448776 /* Yosemite */ = { - isa = PBXGroup; - children = ( - 4C31537220EB676400448776 /* DIRedBadgeCenterYosemite.png */, - 4C31537120EB676400448776 /* DIRedBadgeLeftYosemite.png */, - 4C31537020EB676400448776 /* DIRedBadgeRightYosemite.png */, - ); - path = Yosemite; - sourceTree = ""; - }; - 4C31537320EB676400448776 /* Mavericks */ = { - isa = PBXGroup; - children = ( - 4C31537620EB676400448776 /* DIRedBadgeCenterMavericks.png */, - 4C31537520EB676400448776 /* DIRedBadgeLeftMavericks.png */, - 4C31537420EB676400448776 /* DIRedBadgeRightMavericks.png */, - ); - path = Mavericks; - sourceTree = ""; - }; 4C31537720EB676400448776 /* User Interface */ = { isa = PBXGroup; children = ( @@ -4940,7 +4698,6 @@ 4C31537C20EB676400448776 /* Server List */ = { isa = PBXGroup; children = ( - 4C31538820EB676400448776 /* Black */, 4C31537D20EB676400448776 /* Glass */, ); path = "Server List"; @@ -4957,43 +4714,10 @@ 4C31538520EB676400448776 /* VibrantLightServerListViewPrivateMessageUserIconActive@2x.tif */, 4C31538420EB676400448776 /* VibrantLightServerListViewPrivateMessageUserIconInactive.tif */, 4C31538720EB676400448776 /* VibrantLightServerListViewPrivateMessageUserIconInactive@2x.tif */, - 4C31538020EB676400448776 /* YosemiteDarkServerListViewDisclosureDown.tif */, - 4C31538120EB676400448776 /* YosemiteDarkServerListViewDisclosureUp.tif */, ); path = Glass; sourceTree = ""; }; - 4C31538820EB676400448776 /* Black */ = { - isa = PBXGroup; - children = ( - 4C31539520EB676400448776 /* MavericksDarkChannelCellSelection.tif */, - 4C31538E20EB676400448776 /* MavericksDarkChannelCellSelection@2x.tif */, - 4C31539320EB676400448776 /* MavericksDarkServerCellSelection.tif */, - 4C31539020EB676400448776 /* MavericksDarkServerCellSelection@2x.tif */, - 4C31538F20EB676400448776 /* MavericksDarkServerListViewDisclosureDown.tif */, - 4C31538920EB676400448776 /* MavericksDarkServerListViewDisclosureDown@2x.tif */, - 4C31538C20EB676400448776 /* MavericksDarkServerListViewDisclosureDownSelected.tif */, - 4C31539120EB676400448776 /* MavericksDarkServerListViewDisclosureDownSelected@2x.tif */, - 4C31539220EB676400448776 /* MavericksDarkServerListViewDisclosureUp.tif */, - 4C31538D20EB676400448776 /* MavericksDarkServerListViewDisclosureUp@2x.tif */, - 4C31538A20EB676400448776 /* MavericksDarkServerListViewDisclosureUpSelected.tif */, - 4C31538B20EB676400448776 /* MavericksDarkServerListViewDisclosureUpSelected@2x.tif */, - 4C31539620EB676400448776 /* MavericksDarkServerListViewSelectedPrivateMessageUserActive.tif */, - 4C31539420EB676400448776 /* MavericksDarkServerListViewSelectedPrivateMessageUserInactive.tif */, - ); - path = Black; - sourceTree = ""; - }; - 4C31539720EB676400448776 /* Buddy List */ = { - isa = PBXGroup; - children = ( - 4C31539A20EB676400448776 /* BuddyListDropArea.png */, - 4C31539920EB676400448776 /* BuddyListDropArea@2x.png */, - 4C31539820EB676400448776 /* BuddyListDropAreaOriginal.zip */, - ); - path = "Buddy List"; - sourceTree = ""; - }; 4C31539B20EB676400448776 /* Property Lists */ = { isa = PBXGroup; children = ( @@ -6450,7 +6174,7 @@ 4C1DC5491580420500A47BC9 /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 1200; + LastUpgradeCheck = 1220; ORGANIZATIONNAME = "Codeux Software, LLC"; TargetAttributes = { 4C0BA4F81990798800857343 = { @@ -6528,10 +6252,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 4C06DFBF20EC49FA0055D09A /* MavericksDarkServerListViewDisclosureUp@2x.tif in Resources */, - 4C06DFBC20EC49FA0055D09A /* MavericksDarkServerListViewDisclosureUpSelected.tif in Resources */, - 4C06E02E20EC4A060055D09A /* DIRedBadgeCenterYosemite.png in Resources */, - 4C06DFBD20EC49FA0055D09A /* MavericksDarkServerListViewDisclosureUpSelected@2x.tif in Resources */, + 4C06E02E20EC4A060055D09A /* DIRedBadgeCenter.png in Resources */, 4CEFEDB022B4B6E8002CEE19 /* TDCPreferencesUserStyleSheet.strings in Resources */, 4C06DFB120EC49FA0055D09A /* VibrantDarkServerListViewPrivateMessageUserIconInactive@2x.tif in Resources */, 4C33342120CC475300ACB9AD /* Bundled Styles in Resources */, @@ -6539,25 +6260,20 @@ 4C06E22620EC4AC50055D09A /* TVCMainWindowAppearance.plist in Resources */, 4C06E2E420EC4FF00055D09A /* CommonErrors.strings in Resources */, 4C06E09C20EC4A540055D09A /* FormattingColor_8.png in Resources */, - 4C06E0E720EC4A5C0055D09A /* channelRoomStatusIconMavericksLightActive@2x.tif in Resources */, 4C06E1C620EC4AC40055D09A /* TXCMainMenu.xib in Resources */, 4C06E30820EC4FF00055D09A /* TDCAboutDialog.strings in Resources */, 4C06E1F220EC4AC50055D09A /* TDCServerChangeNicknameSheet.xib in Resources */, 4C06DF2620EC49A50055D09A /* StaticStore.plist in Resources */, - 4C06E04820EC4A100055D09A /* DIGreenBadgeLeftMavericks.png in Resources */, 4C06E1AE20EC4AC40055D09A /* TDCChannelPropertiesSheet.xib in Resources */, 4C06E18A20EC4AC40055D09A /* TDCServerPropertiesSheet.xib in Resources */, - 4C06E18620EC4AC40055D09A /* TVCMainWindowMavericks.xib in Resources */, - 4C06E04720EC4A100055D09A /* DIGreenBadgeRightMavericks.png in Resources */, 4C06E2E020EC4FF00055D09A /* OffTheRecord.strings in Resources */, 4C06E1C220EC4AC40055D09A /* TVCChannelSelectionView.xib in Resources */, - 4C06E0F020EC4A5C0055D09A /* channelRoomStatusIconYosemiteDarkActive.tif in Resources */, + 4C06E0F020EC4A5C0055D09A /* channelRoomStatusIconDarkActive.tif in Resources */, 4C06E22E20EC4AC50055D09A /* TVCServerListAppearance.plist in Resources */, - 4C06E02D20EC4A060055D09A /* DIRedBadgeLeftYosemite.png in Resources */, + 4C06E02D20EC4A060055D09A /* DIRedBadgeLeft.png in Resources */, 4C06E33420EC4FF00055D09A /* TDCChannelSpotlightController.strings in Resources */, 4C06E09F20EC4A540055D09A /* FormattingColor_10.png in Resources */, 4C06E30C20EC4FF00055D09A /* TDCServerPropertiesSheet.strings in Resources */, - 4C06DFBE20EC49FA0055D09A /* MavericksDarkServerListViewDisclosureDownSelected.tif in Resources */, 4C06E0AD20EC4A540055D09A /* FormattingColor_3.png in Resources */, 4C06E0F620EC4A620055D09A /* TPWTB_Advanced@2x.png in Resources */, 4C06E32020EC4FF00055D09A /* Notifications.strings in Resources */, @@ -6570,47 +6286,38 @@ 4C06E1FE20EC4AC50055D09A /* TDCHighlightEntrySheet.xib in Resources */, 4C06E0A320EC4A540055D09A /* FormattingColor_14.png in Resources */, 4C06E0A920EC4A540055D09A /* FormattingColor_1.png in Resources */, - 4C06DFC720EC49FA0055D09A /* MavericksDarkChannelCellSelection.tif in Resources */, - 4C06E0E820EC4A5C0055D09A /* channelRoomStatusIconMavericksDarkActive@2x.tif in Resources */, 4C06E0A620EC4A540055D09A /* FormattingColor_6.png in Resources */, 4C06E06220EC4A4D0055D09A /* encryptionLockIconLight@2x.tif in Resources */, 4C06E0A820EC4A540055D09A /* FormattingColor_5.png in Resources */, 4C06DFB820EC49FA0055D09A /* VibrantLightServerListViewPrivateMessageUserIconActive@2x.tif in Resources */, 4C06E0A120EC4A540055D09A /* FormattingColor_Rainbow.tif in Resources */, 4C06E30420EC4FF00055D09A /* TDCChannelInviteSheet.strings in Resources */, - 4C06E03020EC4A060055D09A /* DIRedBadgeLeftMavericks.png in Resources */, 4CAC9D841F2B076800AD5F12 /* Textual-Extras-MAS.pkg in Resources */, - 4C06DFC420EC49FA0055D09A /* MavericksDarkServerListViewDisclosureUp.tif in Resources */, - 4C06DFB420EC49FA0055D09A /* YosemiteDarkServerListViewDisclosureUp.tif in Resources */, - 4C06DFC620EC49FA0055D09A /* MavericksDarkServerListViewSelectedPrivateMessageUserInactive.tif in Resources */, 4C06E22220EC4AC50055D09A /* TDCChannelSpotlightAppearance.plist in Resources */, 4C06DFB020EC49FA0055D09A /* ErroneousTextFieldValueIndicator.tif in Resources */, - 4C06E04420EC4A100055D09A /* DIGreenBadgeLeftYosemite.png in Resources */, + 4C06E04420EC4A100055D09A /* DIGreenBadgeLeft.png in Resources */, 4C06E31C20EC4FF00055D09A /* TVCMainWindow.strings in Resources */, 4C06DFB220EC49FA0055D09A /* VibrantDarkServerListViewPrivateMessageUserIconActive@2x.tif in Resources */, - 4C06E0EC20EC4A5C0055D09A /* channelRoomStatusIconYosemiteDarkActive@2x.tif in Resources */, + 4C06E0EC20EC4A5C0055D09A /* channelRoomStatusIconDarkActive@2x.tif in Resources */, 4C06E0A720EC4A540055D09A /* FormattingColor_4.png in Resources */, 4C06E33820EC4FF00055D09A /* TDCAddressBookSheet.strings in Resources */, 4C06DF2320EC49A50055D09A /* IRCNetworks.plist in Resources */, 4C06E0F920EC4A620055D09A /* TPWTB_Addons.png in Resources */, 4C33341C20CC471A00ACB9AD /* Bundled Scripts in Resources */, 4C06E2FC20EC4FF00055D09A /* TDCPreferencesController.strings in Resources */, - 4C06E0EE20EC4A5C0055D09A /* channelRoomStatusIconYosemiteDarkInactive@2x.tif in Resources */, + 4C06E0EE20EC4A5C0055D09A /* channelRoomStatusIconDarkInactive@2x.tif in Resources */, 4C06DFAE20EC49FA0055D09A /* MainWindowSegmentedControlUserTemplate.pdf in Resources */, 4C06E04A20EC4A2E0055D09A /* applicationIcon.iconset in Resources */, 4C06E31820EC4FF00055D09A /* TDCChannelModifyModesSheet.strings in Resources */, - 4C06DFC020EC49FA0055D09A /* MavericksDarkChannelCellSelection@2x.tif in Resources */, 4C06E10420EC4A620055D09A /* TPWTB_Style.png in Resources */, 4C06E06320EC4A4D0055D09A /* encryptionLockIconDark.tif in Resources */, - 4C06E0EB20EC4A5C0055D09A /* channelRoomStatusIconYosemiteLightActive@2x.tif in Resources */, + 4C06E0EB20EC4A5C0055D09A /* channelRoomStatusIconLightActive@2x.tif in Resources */, 4C06E0F720EC4A620055D09A /* TPWTB_Highlights.png in Resources */, 4C06E1EA20EC4AC50055D09A /* TVCAlert.xib in Resources */, - 4C06E02F20EC4A060055D09A /* DIRedBadgeRightMavericks.png in Resources */, - 4C06E0F120EC4A5C0055D09A /* channelRoomStatusIconYosemiteLightActive.tif in Resources */, + 4C06E0F120EC4A5C0055D09A /* channelRoomStatusIconLightActive.tif in Resources */, 4C06E10520EC4A620055D09A /* TPWTB_General.png in Resources */, 4C06E2F420EC4FF00055D09A /* TDCChannelPropertiesSheet.strings in Resources */, 4C06DF2720EC49A50055D09A /* TemplateLineTypes.plist in Resources */, - 4C06DFC820EC49FA0055D09A /* MavericksDarkServerListViewSelectedPrivateMessageUserActive.tif in Resources */, 4C06E1DA20EC4AC40055D09A /* TDCNicknameColorSheet.xib in Resources */, 4C06E31020EC4FF00055D09A /* IRC.strings in Resources */, 4C06E10020EC4A620055D09A /* TPWTB_Controls@2x.png in Resources */, @@ -6618,35 +6325,30 @@ 4C06E1E620EC4AC50055D09A /* TDCAddressBookSheet.xib in Resources */, 4C06DFBA20EC49FA0055D09A /* VibrantLightServerListViewPrivateMessageUserIconInactive@2x.tif in Resources */, 4C06E10320EC4A620055D09A /* TPWTB_Notifications.png in Resources */, - 4C06E0F520EC4A5C0055D09A /* channelRoomStatusIconYosemiteLightInactive@2x.tif in Resources */, - 4C06E0E420EC4A5C0055D09A /* channelRoomStatusIconMavericksLightInactive.tif in Resources */, + 4C06E0F520EC4A5C0055D09A /* channelRoomStatusIconLightInactive@2x.tif in Resources */, 4C06E22A20EC4AC50055D09A /* TVCMainWindowTextViewAppearance.plist in Resources */, 4C06E10120EC4A620055D09A /* TPWTB_Interface.png in Resources */, 4C06E0FD20EC4A620055D09A /* TPWTB_General@2x.png in Resources */, 4C06E32820EC4FF00055D09A /* TVCNotificationConfigurationView.strings in Resources */, 4C06E0FA20EC4A620055D09A /* TPWTB_Advanced.png in Resources */, 4CCD93FD1CA7291300335381 /* JavaScript in Resources */, - 4C06DFBB20EC49FA0055D09A /* MavericksDarkServerListViewDisclosureDown@2x.tif in Resources */, 4C06DFB720EC49FA0055D09A /* VibrantLightServerListViewPrivateMessageUserIconInactive.tif in Resources */, 4C17305422B4A94000DC5836 /* TDCPreferencesUserStyleSheet.xib in Resources */, - 4C06E02C20EC4A060055D09A /* DIRedBadgeRightYosemite.png in Resources */, + 4C06E02C20EC4A060055D09A /* DIRedBadgeRight.png in Resources */, 4C06DF2120EC49A50055D09A /* IRCCommandIndexLocalData.plist in Resources */, 4C06E0FC20EC4A620055D09A /* TPWTB_Style@2x.png in Resources */, 4C06E32C20EC4FF00055D09A /* TDCServerEndpointListSheet.strings in Resources */, - 4C06E03120EC4A060055D09A /* DIRedBadgeCenterMavericks.png in Resources */, 4C06E06420EC4A4D0055D09A /* encryptionLockIconDark@2x.tif in Resources */, - 4C06DFC220EC49FA0055D09A /* MavericksDarkServerCellSelection@2x.tif in Resources */, - 4C06E0E520EC4A5C0055D09A /* channelRoomStatusIconMavericksDarkInactive@2x.tif in Resources */, 4C06E0A220EC4A540055D09A /* FormattingColor_13.png in Resources */, 4C0BA5681990798800857343 /* Style Default Templates in Resources */, 4C06E0AB20EC4A540055D09A /* FormattingColor_0.png in Resources */, - 4C06E0F320EC4A5C0055D09A /* channelRoomStatusIconYosemiteDarkInactive.tif in Resources */, + 4C06E0F320EC4A5C0055D09A /* channelRoomStatusIconDarkInactive.tif in Resources */, 4C06DF2220EC49A50055D09A /* IRCCommandIndexRemoteData.plist in Resources */, 4C06E0AC20EC4A540055D09A /* FormattingColor_2.png in Resources */, 4C06E1A220EC4AC40055D09A /* TDCFileTransferDialog.xib in Resources */, 4C06E2F820EC4FF00055D09A /* TDCChannelBanListSheet.strings in Resources */, 4C06DF1F20EC49A50055D09A /* 3rdPartyStaticStoreAppCenterFramework.plist in Resources */, - 4C06E04620EC4A100055D09A /* DIGreenBadgeCenterYosemite.png in Resources */, + 4C06E04620EC4A100055D09A /* DIGreenBadgeCenter.png in Resources */, 4C06E34020EC4FF00055D09A /* TDCChannelModifyTopicSheet.strings in Resources */, 4C06E19620EC4AC40055D09A /* TDCServerEndpointListSheet.xib in Resources */, 4C06E06520EC4A4D0055D09A /* encryptionLockIconLight.tif in Resources */, @@ -6658,28 +6360,20 @@ 4C06DF2420EC49A50055D09A /* RegisteredUserDefaults.plist in Resources */, 4C06E19A20EC4AC40055D09A /* TDCChannelModifyModesSheet.xib in Resources */, 4C06E19220EC4AC40055D09A /* TDCServerHighlightListSheet.xib in Resources */, - 4C06DFC320EC49FA0055D09A /* MavericksDarkServerListViewDisclosureDownSelected@2x.tif in Resources */, - 4C06E04520EC4A100055D09A /* DIGreenBadgeRightYosemite.png in Resources */, + 4C06E04520EC4A100055D09A /* DIGreenBadgeRight.png in Resources */, 4C06E1D620EC4AC40055D09A /* TDCChannelInviteSheet.xib in Resources */, - 4C06E20220EC4AC50055D09A /* TVCMainWindowYosemite.xib in Resources */, + 4C06E20220EC4AC50055D09A /* TVCMainWindow.xib in Resources */, 4C06E19E20EC4AC40055D09A /* TDCChannelSpotlightController.xib in Resources */, 4C06E1D220EC4AC40055D09A /* TDCPreferences.xib in Resources */, 4C06E20E20EC4AC50055D09A /* TVCMemberListAppearance.plist in Resources */, 4C06E0FE20EC4A620055D09A /* TPWTB_Addons@2x.png in Resources */, 4C06E1DE20EC4AC40055D09A /* TDCWelcomeSheet.xib in Resources */, 4C06E1AA20EC4AC40055D09A /* TDCChannelBanListSheet.xib in Resources */, - 4C06E04920EC4A100055D09A /* DIGreenBadgeCenterMavericks.png in Resources */, - 4C06E0EA20EC4A5C0055D09A /* channelRoomStatusIconMavericksDarkInactive.tif in Resources */, - 4C06DFC520EC49FA0055D09A /* MavericksDarkServerCellSelection.tif in Resources */, - 4C06E0EF20EC4A5C0055D09A /* channelRoomStatusIconMavericksDarkActive.tif in Resources */, - 4C06E0F220EC4A5C0055D09A /* channelRoomStatusIconMavericksLightActive.tif in Resources */, 4C06E0A520EC4A540055D09A /* FormattingColor_7.png in Resources */, 4C06E0A420EC4A540055D09A /* FormattingColor_15.png in Resources */, - 4C06DFC120EC49FA0055D09A /* MavericksDarkServerListViewDisclosureDown.tif in Resources */, 4C06E1F620EC4AC50055D09A /* TDCChannelModifyTopicSheet.xib in Resources */, 4C06DFB920EC49FA0055D09A /* VibrantDarkServerListViewPrivateMessageUserIconInactive.tif in Resources */, 4C06DFB520EC49FA0055D09A /* VibrantDarkServerListViewPrivateMessageUserIconActive.tif in Resources */, - 4C06DFB320EC49FA0055D09A /* YosemiteDarkServerListViewDisclosureDown.tif in Resources */, 4C06DF2520EC49A50055D09A /* RegisteredUserDefaultsInContainer.plist in Resources */, 4C06E0FB20EC4A620055D09A /* TPWTB_Controls.png in Resources */, 4C06E0FF20EC4A620055D09A /* TPWTB_Notifications@2x.png in Resources */, @@ -6687,9 +6381,8 @@ 4C06E05520EC4A3E0055D09A /* Copyright Information for Images.txt in Resources */, 4C06E30020EC4FF00055D09A /* TDCFileTransferDialog.strings in Resources */, 4C06E1FA20EC4AC50055D09A /* TDCAboutDialog.xib in Resources */, - 4C06E0ED20EC4A5C0055D09A /* channelRoomStatusIconYosemiteLightInactive.tif in Resources */, + 4C06E0ED20EC4A5C0055D09A /* channelRoomStatusIconLightInactive.tif in Resources */, 4C06E0A020EC4A540055D09A /* FormattingColor_12.png in Resources */, - 4C06E0F420EC4A5C0055D09A /* channelRoomStatusIconMavericksLightInactive@2x.tif in Resources */, 4C06E2F020EC4FF00055D09A /* Accessibility.strings in Resources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -6699,7 +6392,6 @@ buildActionMask = 2147483647; files = ( 4C06E07820EC4A540055D09A /* FormattingColor_8.png in Resources */, - 4C06E0C020EC4A5B0055D09A /* channelRoomStatusIconMavericksLightInactive.tif in Resources */, 4C06E1DC20EC4AC40055D09A /* TDCNicknameColorSheet.xib in Resources */, 4C06E20820EC4AC50055D09A /* TDCLicenseManagerDialog.xib in Resources */, 4C06E11C20EC4A630055D09A /* TPWTB_Style@2x.png in Resources */, @@ -6707,90 +6399,72 @@ 4CEFEDB222B4B6E8002CEE19 /* TDCPreferencesUserStyleSheet.strings in Resources */, 4C06E2EE20EC4FF00055D09A /* BasicLanguage.strings in Resources */, 4C06E08320EC4A540055D09A /* FormattingColor_4.png in Resources */, - 4C06DFEA20EC49FB0055D09A /* YosemiteDarkServerListViewDisclosureUp.tif in Resources */, 4CAC9D7B1F2B076100AD5F12 /* Textual-Extras.pkg in Resources */, - 4C06E0CE20EC4A5B0055D09A /* channelRoomStatusIconMavericksLightActive.tif in Resources */, - 4C06E0C320EC4A5B0055D09A /* channelRoomStatusIconMavericksLightActive@2x.tif in Resources */, - 4C06E0D120EC4A5B0055D09A /* channelRoomStatusIconYosemiteLightInactive@2x.tif in Resources */, + 4C06E0D120EC4A5B0055D09A /* channelRoomStatusIconLightInactive@2x.tif in Resources */, 4C06E21020EC4AC50055D09A /* TVCMemberListAppearance.plist in Resources */, 4C06E07B20EC4A540055D09A /* FormattingColor_10.png in Resources */, 4C06E08020EC4A540055D09A /* FormattingColor_15.png in Resources */, 4C06E11D20EC4A630055D09A /* TPWTB_General@2x.png in Resources */, 4C06E32A20EC4FF00055D09A /* TVCNotificationConfigurationView.strings in Resources */, 4C06E08520EC4A540055D09A /* FormattingColor_1.png in Resources */, - 4C06E02020EC4A060055D09A /* DIRedBadgeRightYosemite.png in Resources */, + 4C06E02020EC4A060055D09A /* DIRedBadgeRight.png in Resources */, 4C06E1C420EC4AC40055D09A /* TVCChannelSelectionView.xib in Resources */, - 4C06E03920EC4A0F0055D09A /* DIGreenBadgeRightYosemite.png in Resources */, + 4C06E03920EC4A0F0055D09A /* DIGreenBadgeRight.png in Resources */, 4C06E04E20EC4A2F0055D09A /* applicationIcon.iconset in Resources */, 4C06E1FC20EC4AC50055D09A /* TDCAboutDialog.xib in Resources */, 4C06E05320EC4A3D0055D09A /* Copyright Information for Images.txt in Resources */, - 4C06DFF620EC49FB0055D09A /* MavericksDarkChannelCellSelection@2x.tif in Resources */, 4C06E07A20EC4A540055D09A /* FormattingColor_11.png in Resources */, 4C06E1CC20EC4AC40055D09A /* TVCNotificationConfigurationView.xib in Resources */, 4C06DF3520EC49A60055D09A /* IRCNetworks.plist in Resources */, 4C06E1EC20EC4AC50055D09A /* TVCAlert.xib in Resources */, - 4C06E0D020EC4A5B0055D09A /* channelRoomStatusIconMavericksLightInactive@2x.tif in Resources */, 4C06E32220EC4FF00055D09A /* Notifications.strings in Resources */, 4C06E2F620EC4FF00055D09A /* TDCChannelPropertiesSheet.strings in Resources */, 4C06E32E20EC4FF00055D09A /* TDCServerEndpointListSheet.strings in Resources */, - 4C06E18820EC4AC40055D09A /* TVCMainWindowMavericks.xib in Resources */, 4C06E31220EC4FF00055D09A /* IRC.strings in Resources */, 4C06E1E420EC4AC40055D09A /* TDCProgressIndicatorSheet.xib in Resources */, 4C06E34220EC4FF00055D09A /* TDCChannelModifyTopicSheet.strings in Resources */, 4C06DFE620EC49FB0055D09A /* ErroneousTextFieldValueIndicator.tif in Resources */, - 4C06E03820EC4A0F0055D09A /* DIGreenBadgeLeftYosemite.png in Resources */, + 4C06E03820EC4A0F0055D09A /* DIGreenBadgeLeft.png in Resources */, 4C06DF4420EC49B90055D09A /* RemoteLicenseSystemPublicKey.pub in Resources */, 4C06E19C20EC4AC40055D09A /* TDCChannelModifyModesSheet.xib in Resources */, - 4C06DFFE20EC49FB0055D09A /* MavericksDarkServerListViewSelectedPrivateMessageUserActive.tif in Resources */, - 4C06E0CD20EC4A5B0055D09A /* channelRoomStatusIconYosemiteLightActive.tif in Resources */, - 4C06DFFD20EC49FB0055D09A /* MavericksDarkChannelCellSelection.tif in Resources */, - 4C06E0C120EC4A5B0055D09A /* channelRoomStatusIconMavericksDarkInactive@2x.tif in Resources */, - 4C06E0CC20EC4A5B0055D09A /* channelRoomStatusIconYosemiteDarkActive.tif in Resources */, + 4C06E0CD20EC4A5B0055D09A /* channelRoomStatusIconLightActive.tif in Resources */, + 4C06E0CC20EC4A5B0055D09A /* channelRoomStatusIconDarkActive.tif in Resources */, 4C06E11820EC4A630055D09A /* TPWTB_Highlights@2x.png in Resources */, - 4C06E02520EC4A060055D09A /* DIRedBadgeCenterMavericks.png in Resources */, 4C06E08120EC4A540055D09A /* FormattingColor_7.png in Resources */, 4C17305622B4A94000DC5836 /* TDCPreferencesUserStyleSheet.xib in Resources */, - 4C06DFF920EC49FB0055D09A /* MavericksDarkServerListViewDisclosureDownSelected@2x.tif in Resources */, 4C06E1D820EC4AC40055D09A /* TDCChannelInviteSheet.xib in Resources */, - 4C06DFFB20EC49FB0055D09A /* MavericksDarkServerCellSelection.tif in Resources */, - 4C06E03A20EC4A0F0055D09A /* DIGreenBadgeCenterYosemite.png in Resources */, + 4C06E03A20EC4A0F0055D09A /* DIGreenBadgeCenter.png in Resources */, 4C06E19820EC4AC40055D09A /* TDCServerEndpointListSheet.xib in Resources */, 4C06DF3920EC49A60055D09A /* TemplateLineTypes.plist in Resources */, 4C06E11920EC4A630055D09A /* TPWTB_Addons.png in Resources */, 4C06E2F220EC4FF00055D09A /* Accessibility.strings in Resources */, - 4C06E03D20EC4A0F0055D09A /* DIGreenBadgeCenterMavericks.png in Resources */, 4C06E11B20EC4A630055D09A /* TPWTB_Controls.png in Resources */, - 4C06DFF420EC49FB0055D09A /* MavericksDarkServerListViewDisclosureDownSelected.tif in Resources */, 4C33341E20CC471A00ACB9AD /* Bundled Scripts in Resources */, 4C06DF3420EC49A60055D09A /* IRCCommandIndexRemoteData.plist in Resources */, 4C33342320CC475300ACB9AD /* Bundled Styles in Resources */, 4C06E07C20EC4A540055D09A /* FormattingColor_12.png in Resources */, 4C06E1D020EC4AC40055D09A /* TDCLicenseUpgradeActivateSheet.xib in Resources */, 4C06E12020EC4A630055D09A /* TPWTB_Controls@2x.png in Resources */, - 4C06DFF720EC49FB0055D09A /* MavericksDarkServerListViewDisclosureDown.tif in Resources */, 4C06E20C20EC4AC50055D09A /* TDCLicenseManagerRecoverLostLicenseSheet.xib in Resources */, 4C06E1AC20EC4AC40055D09A /* TDCChannelBanListSheet.xib in Resources */, 4C06E12220EC4A630055D09A /* TPWTB_Interface@2x.png in Resources */, 4C06E2FE20EC4FF00055D09A /* TDCPreferencesController.strings in Resources */, 4C06E1A820EC4AC40055D09A /* TDCServerChannelListDialog.xib in Resources */, - 4C06E0C820EC4A5B0055D09A /* channelRoomStatusIconYosemiteDarkActive@2x.tif in Resources */, + 4C06E0C820EC4A5B0055D09A /* channelRoomStatusIconDarkActive@2x.tif in Resources */, 4C06E30620EC4FF00055D09A /* TDCChannelInviteSheet.strings in Resources */, 4C06DF3120EC49A60055D09A /* 3rdPartyStaticStoreAppCenterFramework.plist in Resources */, 4C06E22820EC4AC50055D09A /* TVCMainWindowAppearance.plist in Resources */, 4C06E05D20EC4A4C0055D09A /* encryptionLockIconLight.tif in Resources */, - 4C06DFF820EC49FB0055D09A /* MavericksDarkServerCellSelection@2x.tif in Resources */, 4C06E11A20EC4A630055D09A /* TPWTB_Advanced.png in Resources */, 4C06E08620EC4A540055D09A /* FormattingColor_Rainbow@2x.tif in Resources */, 4C06E19420EC4AC40055D09A /* TDCServerHighlightListSheet.xib in Resources */, - 4C06DFF120EC49FB0055D09A /* MavericksDarkServerListViewDisclosureDown@2x.tif in Resources */, - 4C06E0CA20EC4A5B0055D09A /* channelRoomStatusIconYosemiteDarkInactive@2x.tif in Resources */, - 4C06E0C720EC4A5B0055D09A /* channelRoomStatusIconYosemiteLightActive@2x.tif in Resources */, + 4C06E0CA20EC4A5B0055D09A /* channelRoomStatusIconDarkInactive@2x.tif in Resources */, + 4C06E0C720EC4A5B0055D09A /* channelRoomStatusIconLightActive@2x.tif in Resources */, 4C06E1C820EC4AC40055D09A /* TXCMainMenu.xib in Resources */, 4C06E23020EC4AC50055D09A /* TVCServerListAppearance.plist in Resources */, 4C06E30A20EC4FF00055D09A /* TDCAboutDialog.strings in Resources */, - 4C06E0C920EC4A5B0055D09A /* channelRoomStatusIconYosemiteLightInactive.tif in Resources */, + 4C06E0C920EC4A5B0055D09A /* channelRoomStatusIconLightInactive.tif in Resources */, 4C06E2E220EC4FF00055D09A /* OffTheRecord.strings in Resources */, - 4C06E03C20EC4A0F0055D09A /* DIGreenBadgeLeftMavericks.png in Resources */, 4C06DFEB20EC49FB0055D09A /* VibrantDarkServerListViewPrivateMessageUserIconActive.tif in Resources */, 4C06E2E620EC4FF00055D09A /* CommonErrors.strings in Resources */, 4C06E30E20EC4FF00055D09A /* TDCServerPropertiesSheet.strings in Resources */, @@ -6800,10 +6474,9 @@ 4C06E08720EC4A540055D09A /* FormattingColor_0.png in Resources */, 4C06DFED20EC49FB0055D09A /* VibrantLightServerListViewPrivateMessageUserIconInactive.tif in Resources */, 4C06E1D420EC4AC40055D09A /* TDCPreferences.xib in Resources */, - 4C06DFFC20EC49FB0055D09A /* MavericksDarkServerListViewSelectedPrivateMessageUserInactive.tif in Resources */, 4C06E04F20EC4A2F0055D09A /* applicationIconBirthday.icns in Resources */, - 4C06E02120EC4A060055D09A /* DIRedBadgeLeftYosemite.png in Resources */, - 4C06E02220EC4A060055D09A /* DIRedBadgeCenterYosemite.png in Resources */, + 4C06E02120EC4A060055D09A /* DIRedBadgeLeft.png in Resources */, + 4C06E02220EC4A060055D09A /* DIRedBadgeCenter.png in Resources */, 4C06E18C20EC4AC40055D09A /* TDCServerPropertiesSheet.xib in Resources */, 4C06E20020EC4AC50055D09A /* TDCHighlightEntrySheet.xib in Resources */, 4C06DF3820EC49A60055D09A /* StaticStore.plist in Resources */, @@ -6824,15 +6497,11 @@ 4C06E07E20EC4A540055D09A /* FormattingColor_13.png in Resources */, 4C06E08220EC4A540055D09A /* FormattingColor_6.png in Resources */, 4C06E12420EC4A630055D09A /* TPWTB_Style.png in Resources */, - 4C06E0C420EC4A5B0055D09A /* channelRoomStatusIconMavericksDarkActive@2x.tif in Resources */, - 4C06E03B20EC4A0F0055D09A /* DIGreenBadgeRightMavericks.png in Resources */, 4C06E1E820EC4AC50055D09A /* TDCAddressBookSheet.xib in Resources */, 4C06E1A020EC4AC40055D09A /* TDCChannelSpotlightController.xib in Resources */, - 4C06E0CF20EC4A5B0055D09A /* channelRoomStatusIconYosemiteDarkInactive.tif in Resources */, + 4C06E0CF20EC4A5B0055D09A /* channelRoomStatusIconDarkInactive.tif in Resources */, 4C06E05A20EC4A4C0055D09A /* encryptionLockIconLight@2x.tif in Resources */, - 4C06DFF220EC49FB0055D09A /* MavericksDarkServerListViewDisclosureUpSelected.tif in Resources */, 4C06E05B20EC4A4C0055D09A /* encryptionLockIconDark.tif in Resources */, - 4C06E02320EC4A060055D09A /* DIRedBadgeRightMavericks.png in Resources */, 4C06E31E20EC4FF00055D09A /* TVCMainWindow.strings in Resources */, 4C06E08920EC4A540055D09A /* FormattingColor_3.png in Resources */, 4C06DFE820EC49FB0055D09A /* VibrantDarkServerListViewPrivateMessageUserIconActive@2x.tif in Resources */, @@ -6843,7 +6512,6 @@ 4C06E07920EC4A540055D09A /* FormattingColor_9.png in Resources */, 4C52379415C18F6700414852 /* Style Default Templates in Resources */, 4C06E30220EC4FF00055D09A /* TDCFileTransferDialog.strings in Resources */, - 4C06E02420EC4A060055D09A /* DIRedBadgeLeftMavericks.png in Resources */, 4C06DFEE20EC49FB0055D09A /* VibrantLightServerListViewPrivateMessageUserIconActive@2x.tif in Resources */, 4C06E31620EC4FF00055D09A /* TLOLicenseManager.strings in Resources */, 4C06E12320EC4A630055D09A /* TPWTB_Notifications.png in Resources */, @@ -6852,24 +6520,18 @@ 4C06E33220EC4FF00055D09A /* TDCServerChannelListDialog.strings in Resources */, 4C06E33620EC4FF00055D09A /* TDCChannelSpotlightController.strings in Resources */, 4C06E1A420EC4AC40055D09A /* TDCFileTransferDialog.xib in Resources */, - 4C06E0C620EC4A5B0055D09A /* channelRoomStatusIconMavericksDarkInactive.tif in Resources */, 4C06DF3620EC49A60055D09A /* RegisteredUserDefaults.plist in Resources */, 4C06DFEC20EC49FB0055D09A /* VibrantLightServerListViewPrivateMessageUserIconActive.tif in Resources */, 4C06DFE720EC49FB0055D09A /* VibrantDarkServerListViewPrivateMessageUserIconInactive@2x.tif in Resources */, - 4C06E0CB20EC4A5B0055D09A /* channelRoomStatusIconMavericksDarkActive.tif in Resources */, 4C06E08420EC4A540055D09A /* FormattingColor_5.png in Resources */, 4C06E11620EC4A630055D09A /* TPWTB_Advanced@2x.png in Resources */, 4C06DF3720EC49A60055D09A /* RegisteredUserDefaultsInContainer.plist in Resources */, 4C06E1F020EC4AC50055D09A /* TDCLicenseUpgradeDialog.xib in Resources */, - 4C06DFF520EC49FB0055D09A /* MavericksDarkServerListViewDisclosureUp@2x.tif in Resources */, - 4C06DFF320EC49FB0055D09A /* MavericksDarkServerListViewDisclosureUpSelected@2x.tif in Resources */, 4C06DF3320EC49A60055D09A /* IRCCommandIndexLocalData.plist in Resources */, - 4C06DFFA20EC49FB0055D09A /* MavericksDarkServerListViewDisclosureUp.tif in Resources */, 4C06E22420EC4AC50055D09A /* TDCChannelSpotlightAppearance.plist in Resources */, 4C06E1BC20EC4AC40055D09A /* TDCLicenseUpgradeEligibilitySheet.xib in Resources */, - 4C06E20420EC4AC50055D09A /* TVCMainWindowYosemite.xib in Resources */, + 4C06E20420EC4AC50055D09A /* TVCMainWindow.xib in Resources */, 4C06DFEF20EC49FB0055D09A /* VibrantDarkServerListViewPrivateMessageUserIconInactive.tif in Resources */, - 4C06DFE920EC49FB0055D09A /* YosemiteDarkServerListViewDisclosureDown.tif in Resources */, 4C06DFF020EC49FB0055D09A /* VibrantLightServerListViewPrivateMessageUserIconInactive@2x.tif in Resources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -6879,7 +6541,6 @@ buildActionMask = 2147483647; files = ( 4C06E06620EC4A530055D09A /* FormattingColor_8.png in Resources */, - 4C06E0D220EC4A5B0055D09A /* channelRoomStatusIconMavericksLightInactive.tif in Resources */, 4C06E1DD20EC4AC40055D09A /* TDCNicknameColorSheet.xib in Resources */, 4C06E20920EC4AC50055D09A /* TDCLicenseManagerDialog.xib in Resources */, 4C06E12C20EC4A640055D09A /* TPWTB_Style@2x.png in Resources */, @@ -6887,90 +6548,72 @@ 4CEFEDB322B4B6E8002CEE19 /* TDCPreferencesUserStyleSheet.strings in Resources */, 4C06E2EF20EC4FF00055D09A /* BasicLanguage.strings in Resources */, 4C06E07120EC4A530055D09A /* FormattingColor_4.png in Resources */, - 4C06E00520EC49FB0055D09A /* YosemiteDarkServerListViewDisclosureUp.tif in Resources */, 4C47314D20C7599800713C91 /* Textual-Extras.pkg in Resources */, - 4C06E0E020EC4A5B0055D09A /* channelRoomStatusIconMavericksLightActive.tif in Resources */, - 4C06E0D520EC4A5B0055D09A /* channelRoomStatusIconMavericksLightActive@2x.tif in Resources */, - 4C06E0E320EC4A5B0055D09A /* channelRoomStatusIconYosemiteLightInactive@2x.tif in Resources */, + 4C06E0E320EC4A5B0055D09A /* channelRoomStatusIconLightInactive@2x.tif in Resources */, 4C06E21120EC4AC50055D09A /* TVCMemberListAppearance.plist in Resources */, 4C06E06920EC4A530055D09A /* FormattingColor_10.png in Resources */, 4C06E06E20EC4A530055D09A /* FormattingColor_15.png in Resources */, 4C06E12D20EC4A640055D09A /* TPWTB_General@2x.png in Resources */, 4C06E32B20EC4FF00055D09A /* TVCNotificationConfigurationView.strings in Resources */, 4C06E07320EC4A530055D09A /* FormattingColor_1.png in Resources */, - 4C06E01A20EC4A050055D09A /* DIRedBadgeRightYosemite.png in Resources */, + 4C06E01A20EC4A050055D09A /* DIRedBadgeRight.png in Resources */, 4C06E1C520EC4AC40055D09A /* TVCChannelSelectionView.xib in Resources */, - 4C06E03320EC4A0F0055D09A /* DIGreenBadgeRightYosemite.png in Resources */, + 4C06E03320EC4A0F0055D09A /* DIGreenBadgeRight.png in Resources */, 4C06E05020EC4A2F0055D09A /* applicationIcon.iconset in Resources */, 4C06E1FD20EC4AC50055D09A /* TDCAboutDialog.xib in Resources */, 4C06E05220EC4A3D0055D09A /* Copyright Information for Images.txt in Resources */, - 4C06E01120EC49FB0055D09A /* MavericksDarkChannelCellSelection@2x.tif in Resources */, 4C06E06820EC4A530055D09A /* FormattingColor_11.png in Resources */, 4C06E1CD20EC4AC40055D09A /* TVCNotificationConfigurationView.xib in Resources */, 4C06DF3E20EC49A70055D09A /* IRCNetworks.plist in Resources */, 4C06E1ED20EC4AC50055D09A /* TVCAlert.xib in Resources */, - 4C06E0E220EC4A5B0055D09A /* channelRoomStatusIconMavericksLightInactive@2x.tif in Resources */, 4C06E32320EC4FF00055D09A /* Notifications.strings in Resources */, 4C06E2F720EC4FF00055D09A /* TDCChannelPropertiesSheet.strings in Resources */, 4C06E32F20EC4FF00055D09A /* TDCServerEndpointListSheet.strings in Resources */, - 4C06E18920EC4AC40055D09A /* TVCMainWindowMavericks.xib in Resources */, 4C06E31320EC4FF00055D09A /* IRC.strings in Resources */, 4C06E1E520EC4AC50055D09A /* TDCProgressIndicatorSheet.xib in Resources */, 4C06E34320EC4FF00055D09A /* TDCChannelModifyTopicSheet.strings in Resources */, 4C06E00120EC49FB0055D09A /* ErroneousTextFieldValueIndicator.tif in Resources */, - 4C06E03220EC4A0F0055D09A /* DIGreenBadgeLeftYosemite.png in Resources */, + 4C06E03220EC4A0F0055D09A /* DIGreenBadgeLeft.png in Resources */, 4C06DF4520EC49B90055D09A /* RemoteLicenseSystemPublicKey.pub in Resources */, 4C06E19D20EC4AC40055D09A /* TDCChannelModifyModesSheet.xib in Resources */, - 4C06E01920EC49FB0055D09A /* MavericksDarkServerListViewSelectedPrivateMessageUserActive.tif in Resources */, - 4C06E0DF20EC4A5B0055D09A /* channelRoomStatusIconYosemiteLightActive.tif in Resources */, - 4C06E01820EC49FB0055D09A /* MavericksDarkChannelCellSelection.tif in Resources */, - 4C06E0D320EC4A5B0055D09A /* channelRoomStatusIconMavericksDarkInactive@2x.tif in Resources */, - 4C06E0DE20EC4A5B0055D09A /* channelRoomStatusIconYosemiteDarkActive.tif in Resources */, + 4C06E0DF20EC4A5B0055D09A /* channelRoomStatusIconLightActive.tif in Resources */, + 4C06E0DE20EC4A5B0055D09A /* channelRoomStatusIconDarkActive.tif in Resources */, 4C06E12820EC4A640055D09A /* TPWTB_Highlights@2x.png in Resources */, - 4C06E01F20EC4A050055D09A /* DIRedBadgeCenterMavericks.png in Resources */, 4C06E06F20EC4A530055D09A /* FormattingColor_7.png in Resources */, 4C17305722B4A94000DC5836 /* TDCPreferencesUserStyleSheet.xib in Resources */, - 4C06E01420EC49FB0055D09A /* MavericksDarkServerListViewDisclosureDownSelected@2x.tif in Resources */, 4C06E1D920EC4AC40055D09A /* TDCChannelInviteSheet.xib in Resources */, - 4C06E01620EC49FB0055D09A /* MavericksDarkServerCellSelection.tif in Resources */, - 4C06E03420EC4A0F0055D09A /* DIGreenBadgeCenterYosemite.png in Resources */, + 4C06E03420EC4A0F0055D09A /* DIGreenBadgeCenter.png in Resources */, 4C06E19920EC4AC40055D09A /* TDCServerEndpointListSheet.xib in Resources */, 4C06DF4220EC49A70055D09A /* TemplateLineTypes.plist in Resources */, 4C06E12920EC4A640055D09A /* TPWTB_Addons.png in Resources */, 4C06E2F320EC4FF00055D09A /* Accessibility.strings in Resources */, - 4C06E03720EC4A0F0055D09A /* DIGreenBadgeCenterMavericks.png in Resources */, 4C06E12B20EC4A640055D09A /* TPWTB_Controls.png in Resources */, - 4C06E00F20EC49FB0055D09A /* MavericksDarkServerListViewDisclosureDownSelected.tif in Resources */, 4C33341F20CC471A00ACB9AD /* Bundled Scripts in Resources */, 4C06DF3D20EC49A70055D09A /* IRCCommandIndexRemoteData.plist in Resources */, 4C33342420CC475300ACB9AD /* Bundled Styles in Resources */, 4C06E06A20EC4A530055D09A /* FormattingColor_12.png in Resources */, 4C06E1D120EC4AC40055D09A /* TDCLicenseUpgradeActivateSheet.xib in Resources */, 4C06E13020EC4A640055D09A /* TPWTB_Controls@2x.png in Resources */, - 4C06E01220EC49FB0055D09A /* MavericksDarkServerListViewDisclosureDown.tif in Resources */, 4C06E20D20EC4AC50055D09A /* TDCLicenseManagerRecoverLostLicenseSheet.xib in Resources */, 4C06E1AD20EC4AC40055D09A /* TDCChannelBanListSheet.xib in Resources */, 4C06E13220EC4A640055D09A /* TPWTB_Interface@2x.png in Resources */, 4C06E2FF20EC4FF00055D09A /* TDCPreferencesController.strings in Resources */, 4C06E1A920EC4AC40055D09A /* TDCServerChannelListDialog.xib in Resources */, - 4C06E0DA20EC4A5B0055D09A /* channelRoomStatusIconYosemiteDarkActive@2x.tif in Resources */, + 4C06E0DA20EC4A5B0055D09A /* channelRoomStatusIconDarkActive@2x.tif in Resources */, 4C06E30720EC4FF00055D09A /* TDCChannelInviteSheet.strings in Resources */, 4C06DF3A20EC49A70055D09A /* 3rdPartyStaticStoreAppCenterFramework.plist in Resources */, 4C06E22920EC4AC50055D09A /* TVCMainWindowAppearance.plist in Resources */, 4C06E05920EC4A4C0055D09A /* encryptionLockIconLight.tif in Resources */, - 4C06E01320EC49FB0055D09A /* MavericksDarkServerCellSelection@2x.tif in Resources */, 4C06E12A20EC4A640055D09A /* TPWTB_Advanced.png in Resources */, 4C06E07420EC4A530055D09A /* FormattingColor_Rainbow@2x.tif in Resources */, 4C06E19520EC4AC40055D09A /* TDCServerHighlightListSheet.xib in Resources */, - 4C06E00C20EC49FB0055D09A /* MavericksDarkServerListViewDisclosureDown@2x.tif in Resources */, - 4C06E0DC20EC4A5B0055D09A /* channelRoomStatusIconYosemiteDarkInactive@2x.tif in Resources */, - 4C06E0D920EC4A5B0055D09A /* channelRoomStatusIconYosemiteLightActive@2x.tif in Resources */, + 4C06E0DC20EC4A5B0055D09A /* channelRoomStatusIconDarkInactive@2x.tif in Resources */, + 4C06E0D920EC4A5B0055D09A /* channelRoomStatusIconLightActive@2x.tif in Resources */, 4C06E1C920EC4AC40055D09A /* TXCMainMenu.xib in Resources */, 4C06E23120EC4AC50055D09A /* TVCServerListAppearance.plist in Resources */, 4C06E30B20EC4FF00055D09A /* TDCAboutDialog.strings in Resources */, - 4C06E0DB20EC4A5B0055D09A /* channelRoomStatusIconYosemiteLightInactive.tif in Resources */, + 4C06E0DB20EC4A5B0055D09A /* channelRoomStatusIconLightInactive.tif in Resources */, 4C06E2E320EC4FF00055D09A /* OffTheRecord.strings in Resources */, - 4C06E03620EC4A0F0055D09A /* DIGreenBadgeLeftMavericks.png in Resources */, 4C06E00620EC49FB0055D09A /* VibrantDarkServerListViewPrivateMessageUserIconActive.tif in Resources */, 4C06E2E720EC4FF00055D09A /* CommonErrors.strings in Resources */, 4C06E30F20EC4FF00055D09A /* TDCServerPropertiesSheet.strings in Resources */, @@ -6980,10 +6623,9 @@ 4C06E07520EC4A530055D09A /* FormattingColor_0.png in Resources */, 4C06E00820EC49FB0055D09A /* VibrantLightServerListViewPrivateMessageUserIconInactive.tif in Resources */, 4C06E1D520EC4AC40055D09A /* TDCPreferences.xib in Resources */, - 4C06E01720EC49FB0055D09A /* MavericksDarkServerListViewSelectedPrivateMessageUserInactive.tif in Resources */, 4C06E05120EC4A2F0055D09A /* applicationIconBirthday.icns in Resources */, - 4C06E01B20EC4A050055D09A /* DIRedBadgeLeftYosemite.png in Resources */, - 4C06E01C20EC4A050055D09A /* DIRedBadgeCenterYosemite.png in Resources */, + 4C06E01B20EC4A050055D09A /* DIRedBadgeLeft.png in Resources */, + 4C06E01C20EC4A050055D09A /* DIRedBadgeCenter.png in Resources */, 4C06E18D20EC4AC40055D09A /* TDCServerPropertiesSheet.xib in Resources */, 4C06E20120EC4AC50055D09A /* TDCHighlightEntrySheet.xib in Resources */, 4C06DF4120EC49A70055D09A /* StaticStore.plist in Resources */, @@ -7004,15 +6646,11 @@ 4C06E06C20EC4A530055D09A /* FormattingColor_13.png in Resources */, 4C06E07020EC4A530055D09A /* FormattingColor_6.png in Resources */, 4C06E13420EC4A640055D09A /* TPWTB_Style.png in Resources */, - 4C06E0D620EC4A5B0055D09A /* channelRoomStatusIconMavericksDarkActive@2x.tif in Resources */, - 4C06E03520EC4A0F0055D09A /* DIGreenBadgeRightMavericks.png in Resources */, 4C06E1E920EC4AC50055D09A /* TDCAddressBookSheet.xib in Resources */, 4C06E1A120EC4AC40055D09A /* TDCChannelSpotlightController.xib in Resources */, - 4C06E0E120EC4A5B0055D09A /* channelRoomStatusIconYosemiteDarkInactive.tif in Resources */, + 4C06E0E120EC4A5B0055D09A /* channelRoomStatusIconDarkInactive.tif in Resources */, 4C06E05620EC4A4C0055D09A /* encryptionLockIconLight@2x.tif in Resources */, - 4C06E00D20EC49FB0055D09A /* MavericksDarkServerListViewDisclosureUpSelected.tif in Resources */, 4C06E05720EC4A4C0055D09A /* encryptionLockIconDark.tif in Resources */, - 4C06E01D20EC4A050055D09A /* DIRedBadgeRightMavericks.png in Resources */, 4C06E31F20EC4FF00055D09A /* TVCMainWindow.strings in Resources */, 4C06E07720EC4A530055D09A /* FormattingColor_3.png in Resources */, 4C06E00320EC49FB0055D09A /* VibrantDarkServerListViewPrivateMessageUserIconActive@2x.tif in Resources */, @@ -7023,7 +6661,6 @@ 4C06E06720EC4A530055D09A /* FormattingColor_9.png in Resources */, 4C4731E020C7599800713C91 /* Style Default Templates in Resources */, 4C06E30320EC4FF00055D09A /* TDCFileTransferDialog.strings in Resources */, - 4C06E01E20EC4A050055D09A /* DIRedBadgeLeftMavericks.png in Resources */, 4C06E00920EC49FB0055D09A /* VibrantLightServerListViewPrivateMessageUserIconActive@2x.tif in Resources */, 4C06E31720EC4FF00055D09A /* TLOLicenseManager.strings in Resources */, 4C06E13320EC4A640055D09A /* TPWTB_Notifications.png in Resources */, @@ -7032,24 +6669,18 @@ 4C06E33320EC4FF00055D09A /* TDCServerChannelListDialog.strings in Resources */, 4C06E33720EC4FF00055D09A /* TDCChannelSpotlightController.strings in Resources */, 4C06E1A520EC4AC40055D09A /* TDCFileTransferDialog.xib in Resources */, - 4C06E0D820EC4A5B0055D09A /* channelRoomStatusIconMavericksDarkInactive.tif in Resources */, 4C06DF3F20EC49A70055D09A /* RegisteredUserDefaults.plist in Resources */, 4C06E00720EC49FB0055D09A /* VibrantLightServerListViewPrivateMessageUserIconActive.tif in Resources */, 4C06E00220EC49FB0055D09A /* VibrantDarkServerListViewPrivateMessageUserIconInactive@2x.tif in Resources */, - 4C06E0DD20EC4A5B0055D09A /* channelRoomStatusIconMavericksDarkActive.tif in Resources */, 4C06E07220EC4A530055D09A /* FormattingColor_5.png in Resources */, 4C06E12620EC4A640055D09A /* TPWTB_Advanced@2x.png in Resources */, 4C06DF4020EC49A70055D09A /* RegisteredUserDefaultsInContainer.plist in Resources */, 4C06E1F120EC4AC50055D09A /* TDCLicenseUpgradeDialog.xib in Resources */, - 4C06E01020EC49FB0055D09A /* MavericksDarkServerListViewDisclosureUp@2x.tif in Resources */, - 4C06E00E20EC49FB0055D09A /* MavericksDarkServerListViewDisclosureUpSelected@2x.tif in Resources */, 4C06DF3C20EC49A70055D09A /* IRCCommandIndexLocalData.plist in Resources */, - 4C06E01520EC49FB0055D09A /* MavericksDarkServerListViewDisclosureUp.tif in Resources */, 4C06E22520EC4AC50055D09A /* TDCChannelSpotlightAppearance.plist in Resources */, 4C06E1BD20EC4AC40055D09A /* TDCLicenseUpgradeEligibilitySheet.xib in Resources */, - 4C06E20520EC4AC50055D09A /* TVCMainWindowYosemite.xib in Resources */, + 4C06E20520EC4AC50055D09A /* TVCMainWindow.xib in Resources */, 4C06E00A20EC49FB0055D09A /* VibrantDarkServerListViewPrivateMessageUserIconInactive.tif in Resources */, - 4C06E00420EC49FB0055D09A /* YosemiteDarkServerListViewDisclosureDown.tif in Resources */, 4C06E00B20EC49FB0055D09A /* VibrantLightServerListViewPrivateMessageUserIconInactive@2x.tif in Resources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -7059,7 +6690,6 @@ buildActionMask = 2147483647; files = ( 4C06E08A20EC4A540055D09A /* FormattingColor_8.png in Resources */, - 4C06E0AE20EC4A5A0055D09A /* channelRoomStatusIconMavericksLightInactive.tif in Resources */, 4C06E1DB20EC4AC40055D09A /* TDCNicknameColorSheet.xib in Resources */, 4C06E20720EC4AC50055D09A /* TDCLicenseManagerDialog.xib in Resources */, 4C06E10C20EC4A630055D09A /* TPWTB_Style@2x.png in Resources */, @@ -7067,90 +6697,72 @@ 4CEFEDB122B4B6E8002CEE19 /* TDCPreferencesUserStyleSheet.strings in Resources */, 4C06E2ED20EC4FF00055D09A /* BasicLanguage.strings in Resources */, 4C06E09520EC4A540055D09A /* FormattingColor_4.png in Resources */, - 4C06DFCF20EC49FA0055D09A /* YosemiteDarkServerListViewDisclosureUp.tif in Resources */, 4CAC9D831F2B076400AD5F12 /* Textual-Extras.pkg in Resources */, - 4C06E0BC20EC4A5A0055D09A /* channelRoomStatusIconMavericksLightActive.tif in Resources */, - 4C06E0B120EC4A5A0055D09A /* channelRoomStatusIconMavericksLightActive@2x.tif in Resources */, - 4C06E0BF20EC4A5A0055D09A /* channelRoomStatusIconYosemiteLightInactive@2x.tif in Resources */, + 4C06E0BF20EC4A5A0055D09A /* channelRoomStatusIconLightInactive@2x.tif in Resources */, 4C06E20F20EC4AC50055D09A /* TVCMemberListAppearance.plist in Resources */, 4C06E08D20EC4A540055D09A /* FormattingColor_10.png in Resources */, 4C06E09220EC4A540055D09A /* FormattingColor_15.png in Resources */, 4C06E10D20EC4A630055D09A /* TPWTB_General@2x.png in Resources */, 4C06E32920EC4FF00055D09A /* TVCNotificationConfigurationView.strings in Resources */, 4C06E09720EC4A540055D09A /* FormattingColor_1.png in Resources */, - 4C06E02620EC4A060055D09A /* DIRedBadgeRightYosemite.png in Resources */, + 4C06E02620EC4A060055D09A /* DIRedBadgeRight.png in Resources */, 4C06E1C320EC4AC40055D09A /* TVCChannelSelectionView.xib in Resources */, - 4C06E03F20EC4A100055D09A /* DIGreenBadgeRightYosemite.png in Resources */, + 4C06E03F20EC4A100055D09A /* DIGreenBadgeRight.png in Resources */, 4C06E04C20EC4A2E0055D09A /* applicationIcon.iconset in Resources */, 4C06E1FB20EC4AC50055D09A /* TDCAboutDialog.xib in Resources */, 4C06E05420EC4A3E0055D09A /* Copyright Information for Images.txt in Resources */, - 4C06DFDB20EC49FA0055D09A /* MavericksDarkChannelCellSelection@2x.tif in Resources */, 4C06E08C20EC4A540055D09A /* FormattingColor_11.png in Resources */, 4C06E1CB20EC4AC40055D09A /* TVCNotificationConfigurationView.xib in Resources */, 4C06DF2C20EC49A60055D09A /* IRCNetworks.plist in Resources */, 4C06E1EB20EC4AC50055D09A /* TVCAlert.xib in Resources */, - 4C06E0BE20EC4A5A0055D09A /* channelRoomStatusIconMavericksLightInactive@2x.tif in Resources */, 4C06E32120EC4FF00055D09A /* Notifications.strings in Resources */, 4C06E2F520EC4FF00055D09A /* TDCChannelPropertiesSheet.strings in Resources */, 4C06E32D20EC4FF00055D09A /* TDCServerEndpointListSheet.strings in Resources */, - 4C06E18720EC4AC40055D09A /* TVCMainWindowMavericks.xib in Resources */, 4C06E31120EC4FF00055D09A /* IRC.strings in Resources */, 4C06E1E320EC4AC40055D09A /* TDCProgressIndicatorSheet.xib in Resources */, 4C06E34120EC4FF00055D09A /* TDCChannelModifyTopicSheet.strings in Resources */, 4C06DFCB20EC49FA0055D09A /* ErroneousTextFieldValueIndicator.tif in Resources */, - 4C06E03E20EC4A100055D09A /* DIGreenBadgeLeftYosemite.png in Resources */, + 4C06E03E20EC4A100055D09A /* DIGreenBadgeLeft.png in Resources */, 4C06DF4320EC49B80055D09A /* RemoteLicenseSystemPublicKey.pub in Resources */, 4C06E19B20EC4AC40055D09A /* TDCChannelModifyModesSheet.xib in Resources */, - 4C06DFE320EC49FA0055D09A /* MavericksDarkServerListViewSelectedPrivateMessageUserActive.tif in Resources */, - 4C06E0BB20EC4A5A0055D09A /* channelRoomStatusIconYosemiteLightActive.tif in Resources */, - 4C06DFE220EC49FA0055D09A /* MavericksDarkChannelCellSelection.tif in Resources */, - 4C06E0AF20EC4A5A0055D09A /* channelRoomStatusIconMavericksDarkInactive@2x.tif in Resources */, - 4C06E0BA20EC4A5A0055D09A /* channelRoomStatusIconYosemiteDarkActive.tif in Resources */, + 4C06E0BB20EC4A5A0055D09A /* channelRoomStatusIconLightActive.tif in Resources */, + 4C06E0BA20EC4A5A0055D09A /* channelRoomStatusIconDarkActive.tif in Resources */, 4C06E10820EC4A630055D09A /* TPWTB_Highlights@2x.png in Resources */, - 4C06E02B20EC4A060055D09A /* DIRedBadgeCenterMavericks.png in Resources */, 4C06E09320EC4A540055D09A /* FormattingColor_7.png in Resources */, 4C17305522B4A94000DC5836 /* TDCPreferencesUserStyleSheet.xib in Resources */, - 4C06DFDE20EC49FA0055D09A /* MavericksDarkServerListViewDisclosureDownSelected@2x.tif in Resources */, 4C06E1D720EC4AC40055D09A /* TDCChannelInviteSheet.xib in Resources */, - 4C06DFE020EC49FA0055D09A /* MavericksDarkServerCellSelection.tif in Resources */, - 4C06E04020EC4A100055D09A /* DIGreenBadgeCenterYosemite.png in Resources */, + 4C06E04020EC4A100055D09A /* DIGreenBadgeCenter.png in Resources */, 4C06E19720EC4AC40055D09A /* TDCServerEndpointListSheet.xib in Resources */, 4C06DF3020EC49A60055D09A /* TemplateLineTypes.plist in Resources */, 4C06E10920EC4A630055D09A /* TPWTB_Addons.png in Resources */, 4C06E2F120EC4FF00055D09A /* Accessibility.strings in Resources */, - 4C06E04320EC4A100055D09A /* DIGreenBadgeCenterMavericks.png in Resources */, 4C06E10B20EC4A630055D09A /* TPWTB_Controls.png in Resources */, - 4C06DFD920EC49FA0055D09A /* MavericksDarkServerListViewDisclosureDownSelected.tif in Resources */, 4CCD93FE1CA7291300335381 /* JavaScript in Resources */, 4C06DF2B20EC49A60055D09A /* IRCCommandIndexRemoteData.plist in Resources */, 4C33341D20CC471A00ACB9AD /* Bundled Scripts in Resources */, 4C06E08E20EC4A540055D09A /* FormattingColor_12.png in Resources */, 4C06E1CF20EC4AC40055D09A /* TDCLicenseUpgradeActivateSheet.xib in Resources */, 4C06E11020EC4A630055D09A /* TPWTB_Controls@2x.png in Resources */, - 4C06DFDC20EC49FA0055D09A /* MavericksDarkServerListViewDisclosureDown.tif in Resources */, 4C06E20B20EC4AC50055D09A /* TDCLicenseManagerRecoverLostLicenseSheet.xib in Resources */, 4C06E1AB20EC4AC40055D09A /* TDCChannelBanListSheet.xib in Resources */, 4C06E11220EC4A630055D09A /* TPWTB_Interface@2x.png in Resources */, 4C06E2FD20EC4FF00055D09A /* TDCPreferencesController.strings in Resources */, 4C06E1A720EC4AC40055D09A /* TDCServerChannelListDialog.xib in Resources */, - 4C06E0B620EC4A5A0055D09A /* channelRoomStatusIconYosemiteDarkActive@2x.tif in Resources */, + 4C06E0B620EC4A5A0055D09A /* channelRoomStatusIconDarkActive@2x.tif in Resources */, 4C06E30520EC4FF00055D09A /* TDCChannelInviteSheet.strings in Resources */, 4C06DF2820EC49A60055D09A /* 3rdPartyStaticStoreAppCenterFramework.plist in Resources */, 4C06E22720EC4AC50055D09A /* TVCMainWindowAppearance.plist in Resources */, 4C06E06120EC4A4C0055D09A /* encryptionLockIconLight.tif in Resources */, - 4C06DFDD20EC49FA0055D09A /* MavericksDarkServerCellSelection@2x.tif in Resources */, 4C06E10A20EC4A630055D09A /* TPWTB_Advanced.png in Resources */, 4C06E09820EC4A540055D09A /* FormattingColor_Rainbow@2x.tif in Resources */, 4C06E19320EC4AC40055D09A /* TDCServerHighlightListSheet.xib in Resources */, - 4C06DFD620EC49FA0055D09A /* MavericksDarkServerListViewDisclosureDown@2x.tif in Resources */, - 4C06E0B820EC4A5A0055D09A /* channelRoomStatusIconYosemiteDarkInactive@2x.tif in Resources */, - 4C06E0B520EC4A5A0055D09A /* channelRoomStatusIconYosemiteLightActive@2x.tif in Resources */, + 4C06E0B820EC4A5A0055D09A /* channelRoomStatusIconDarkInactive@2x.tif in Resources */, + 4C06E0B520EC4A5A0055D09A /* channelRoomStatusIconLightActive@2x.tif in Resources */, 4C06E1C720EC4AC40055D09A /* TXCMainMenu.xib in Resources */, 4C06E22F20EC4AC50055D09A /* TVCServerListAppearance.plist in Resources */, 4C06E30920EC4FF00055D09A /* TDCAboutDialog.strings in Resources */, - 4C06E0B720EC4A5A0055D09A /* channelRoomStatusIconYosemiteLightInactive.tif in Resources */, + 4C06E0B720EC4A5A0055D09A /* channelRoomStatusIconLightInactive.tif in Resources */, 4C06E2E120EC4FF00055D09A /* OffTheRecord.strings in Resources */, - 4C06E04220EC4A100055D09A /* DIGreenBadgeLeftMavericks.png in Resources */, 4C06DFD020EC49FA0055D09A /* VibrantDarkServerListViewPrivateMessageUserIconActive.tif in Resources */, 4C06E2E520EC4FF00055D09A /* CommonErrors.strings in Resources */, 4C06E30D20EC4FF00055D09A /* TDCServerPropertiesSheet.strings in Resources */, @@ -7160,10 +6772,9 @@ 4C06E09920EC4A540055D09A /* FormattingColor_0.png in Resources */, 4C06DFD220EC49FA0055D09A /* VibrantLightServerListViewPrivateMessageUserIconInactive.tif in Resources */, 4C06E1D320EC4AC40055D09A /* TDCPreferences.xib in Resources */, - 4C06DFE120EC49FA0055D09A /* MavericksDarkServerListViewSelectedPrivateMessageUserInactive.tif in Resources */, 4C06E04D20EC4A2E0055D09A /* applicationIconBirthday.icns in Resources */, - 4C06E02720EC4A060055D09A /* DIRedBadgeLeftYosemite.png in Resources */, - 4C06E02820EC4A060055D09A /* DIRedBadgeCenterYosemite.png in Resources */, + 4C06E02720EC4A060055D09A /* DIRedBadgeLeft.png in Resources */, + 4C06E02820EC4A060055D09A /* DIRedBadgeCenter.png in Resources */, 4C06E18B20EC4AC40055D09A /* TDCServerPropertiesSheet.xib in Resources */, 4C06E1FF20EC4AC50055D09A /* TDCHighlightEntrySheet.xib in Resources */, 4C06DF2F20EC49A60055D09A /* StaticStore.plist in Resources */, @@ -7184,15 +6795,11 @@ 4C06E09020EC4A540055D09A /* FormattingColor_13.png in Resources */, 4C06E09420EC4A540055D09A /* FormattingColor_6.png in Resources */, 4C06E11420EC4A630055D09A /* TPWTB_Style.png in Resources */, - 4C06E0B220EC4A5A0055D09A /* channelRoomStatusIconMavericksDarkActive@2x.tif in Resources */, - 4C06E04120EC4A100055D09A /* DIGreenBadgeRightMavericks.png in Resources */, 4C06E1E720EC4AC50055D09A /* TDCAddressBookSheet.xib in Resources */, 4C06E19F20EC4AC40055D09A /* TDCChannelSpotlightController.xib in Resources */, - 4C06E0BD20EC4A5A0055D09A /* channelRoomStatusIconYosemiteDarkInactive.tif in Resources */, + 4C06E0BD20EC4A5A0055D09A /* channelRoomStatusIconDarkInactive.tif in Resources */, 4C06E05E20EC4A4C0055D09A /* encryptionLockIconLight@2x.tif in Resources */, - 4C06DFD720EC49FA0055D09A /* MavericksDarkServerListViewDisclosureUpSelected.tif in Resources */, 4C06E05F20EC4A4C0055D09A /* encryptionLockIconDark.tif in Resources */, - 4C06E02920EC4A060055D09A /* DIRedBadgeRightMavericks.png in Resources */, 4C06E31D20EC4FF00055D09A /* TVCMainWindow.strings in Resources */, 4C06E09B20EC4A540055D09A /* FormattingColor_3.png in Resources */, 4C06DFCD20EC49FA0055D09A /* VibrantDarkServerListViewPrivateMessageUserIconActive@2x.tif in Resources */, @@ -7203,7 +6810,6 @@ 4C06E08B20EC4A540055D09A /* FormattingColor_9.png in Resources */, 4C5BA3CB16F1302F00A96CA2 /* Style Default Templates in Resources */, 4C06E30120EC4FF00055D09A /* TDCFileTransferDialog.strings in Resources */, - 4C06E02A20EC4A060055D09A /* DIRedBadgeLeftMavericks.png in Resources */, 4C06DFD320EC49FA0055D09A /* VibrantLightServerListViewPrivateMessageUserIconActive@2x.tif in Resources */, 4C06E31520EC4FF00055D09A /* TLOLicenseManager.strings in Resources */, 4C06E11320EC4A630055D09A /* TPWTB_Notifications.png in Resources */, @@ -7212,24 +6818,18 @@ 4C06E33120EC4FF00055D09A /* TDCServerChannelListDialog.strings in Resources */, 4C06E33520EC4FF00055D09A /* TDCChannelSpotlightController.strings in Resources */, 4C06E1A320EC4AC40055D09A /* TDCFileTransferDialog.xib in Resources */, - 4C06E0B420EC4A5A0055D09A /* channelRoomStatusIconMavericksDarkInactive.tif in Resources */, 4C06DF2D20EC49A60055D09A /* RegisteredUserDefaults.plist in Resources */, 4C06DFD120EC49FA0055D09A /* VibrantLightServerListViewPrivateMessageUserIconActive.tif in Resources */, 4C06DFCC20EC49FA0055D09A /* VibrantDarkServerListViewPrivateMessageUserIconInactive@2x.tif in Resources */, - 4C06E0B920EC4A5A0055D09A /* channelRoomStatusIconMavericksDarkActive.tif in Resources */, 4C06E09620EC4A540055D09A /* FormattingColor_5.png in Resources */, 4C06E10620EC4A630055D09A /* TPWTB_Advanced@2x.png in Resources */, 4C06DF2E20EC49A60055D09A /* RegisteredUserDefaultsInContainer.plist in Resources */, 4C06E1EF20EC4AC50055D09A /* TDCLicenseUpgradeDialog.xib in Resources */, - 4C06DFDA20EC49FA0055D09A /* MavericksDarkServerListViewDisclosureUp@2x.tif in Resources */, - 4C06DFD820EC49FA0055D09A /* MavericksDarkServerListViewDisclosureUpSelected@2x.tif in Resources */, 4C06DF2A20EC49A60055D09A /* IRCCommandIndexLocalData.plist in Resources */, - 4C06DFDF20EC49FA0055D09A /* MavericksDarkServerListViewDisclosureUp.tif in Resources */, 4C06E22320EC4AC50055D09A /* TDCChannelSpotlightAppearance.plist in Resources */, 4C06E1BB20EC4AC40055D09A /* TDCLicenseUpgradeEligibilitySheet.xib in Resources */, - 4C06E20320EC4AC50055D09A /* TVCMainWindowYosemite.xib in Resources */, + 4C06E20320EC4AC50055D09A /* TVCMainWindow.xib in Resources */, 4C06DFD420EC49FA0055D09A /* VibrantDarkServerListViewPrivateMessageUserIconInactive.tif in Resources */, - 4C06DFCE20EC49FA0055D09A /* YosemiteDarkServerListViewDisclosureDown.tif in Resources */, 4C06DFD520EC49FA0055D09A /* VibrantLightServerListViewPrivateMessageUserIconInactive@2x.tif in Resources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -8188,14 +7788,6 @@ /* End PBXTargetDependency section */ /* Begin PBXVariantGroup section */ - 4C06E13720EC4AC40055D09A /* TVCMainWindowMavericks.xib */ = { - isa = PBXVariantGroup; - children = ( - 4C06E13820EC4AC40055D09A /* en */, - ); - name = TVCMainWindowMavericks.xib; - sourceTree = ""; - }; 4C06E13920EC4AC40055D09A /* TDCServerPropertiesSheet.xib */ = { isa = PBXVariantGroup; children = ( @@ -8276,14 +7868,6 @@ name = TDCLicenseManagerMigrateAppStoreSheet.xib; sourceTree = ""; }; - 4C06E14F20EC4AC40055D09A /* TDCBuddyListDialog.xib */ = { - isa = PBXVariantGroup; - children = ( - 4C06E15020EC4AC40055D09A /* en */, - ); - name = TDCBuddyListDialog.xib; - sourceTree = ""; - }; 4C06E15120EC4AC40055D09A /* TDCLicenseUpgradeEligibilitySheet.xib */ = { isa = PBXVariantGroup; children = ( @@ -8420,12 +8004,12 @@ name = TDCHighlightEntrySheet.xib; sourceTree = ""; }; - 4C06E17520EC4AC40055D09A /* TVCMainWindowYosemite.xib */ = { + 4C06E17520EC4AC40055D09A /* TVCMainWindow.xib */ = { isa = PBXVariantGroup; children = ( 4C06E17620EC4AC40055D09A /* en */, ); - name = TVCMainWindowYosemite.xib; + name = TVCMainWindow.xib; sourceTree = ""; }; 4C06E17720EC4AC40055D09A /* TDCLicenseManagerDialog.xib */ = { diff --git a/Sources/App/Textual App.xcodeproj/xcshareddata/xcschemes/Textual (App Store).xcscheme b/Sources/App/Textual App.xcodeproj/xcshareddata/xcschemes/Textual (App Store).xcscheme index e2db06d33..4e2fadf6f 100644 --- a/Sources/App/Textual App.xcodeproj/xcshareddata/xcschemes/Textual (App Store).xcscheme +++ b/Sources/App/Textual App.xcodeproj/xcshareddata/xcschemes/Textual (App Store).xcscheme @@ -1,6 +1,6 @@ CFBundlePackageType BNDL CFBundleVersion - 1.0.16 + 1.0.17 NSHumanReadableCopyright Copyright © 2015 - 2018 Codeux Software, LLC. All rights reserved. MinimumTextualVersion diff --git a/Sources/Plugins/Blowfish Encryption/Resources/User Interface/en.lproj/TPIBlowfishEncryption.xib b/Sources/Plugins/Blowfish Encryption/Resources/User Interface/en.lproj/TPIBlowfishEncryption.xib index 91c97f279..62d4372a5 100644 --- a/Sources/Plugins/Blowfish Encryption/Resources/User Interface/en.lproj/TPIBlowfishEncryption.xib +++ b/Sources/Plugins/Blowfish Encryption/Resources/User Interface/en.lproj/TPIBlowfishEncryption.xib @@ -1,7 +1,8 @@ - + - + + @@ -12,83 +13,26 @@ - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + @@ -96,7 +40,7 @@ - + “FiSH” refers to a dated implementation of the Blowfish block cipher which is popular for encrypting the contents of chatrooms. @@ -104,22 +48,28 @@ + + + + + + + + - - - - - - - - - - + + + + + + + + - + - + diff --git a/Sources/Plugins/Caffeine/Resources/Property Lists/Info.plist b/Sources/Plugins/Caffeine/Resources/Property Lists/Info.plist index 5c53a7434..9041bf4fb 100755 --- a/Sources/Plugins/Caffeine/Resources/Property Lists/Info.plist +++ b/Sources/Plugins/Caffeine/Resources/Property Lists/Info.plist @@ -11,7 +11,7 @@ CFBundlePackageType BNDL CFBundleVersion - 1.0.7 + 1.0.8 NSHumanReadableCopyright Copyright © 2015 - 2018 Codeux Software, LLC. All rights reserved. MinimumTextualVersion diff --git a/Sources/Plugins/Caffeine/Resources/User Interface/en.lproj/TPI_Caffeine.xib b/Sources/Plugins/Caffeine/Resources/User Interface/en.lproj/TPI_Caffeine.xib index 846c762d4..2a22f143f 100644 --- a/Sources/Plugins/Caffeine/Resources/User Interface/en.lproj/TPI_Caffeine.xib +++ b/Sources/Plugins/Caffeine/Resources/User Interface/en.lproj/TPI_Caffeine.xib @@ -1,8 +1,8 @@ - + - + @@ -14,16 +14,16 @@ - + - + - + @@ -41,11 +41,11 @@ - + - + diff --git a/Sources/Plugins/Chat Filter/Resources/User Interface/en.lproj/TPI_ChatFilterEditFilterSheet.xib b/Sources/Plugins/Chat Filter/Resources/User Interface/en.lproj/TPI_ChatFilterEditFilterSheet.xib index 93341c574..d095b8ed2 100755 --- a/Sources/Plugins/Chat Filter/Resources/User Interface/en.lproj/TPI_ChatFilterEditFilterSheet.xib +++ b/Sources/Plugins/Chat Filter/Resources/User Interface/en.lproj/TPI_ChatFilterEditFilterSheet.xib @@ -1,8 +1,8 @@ - + - + @@ -21,15 +21,12 @@ - - - @@ -56,14 +53,14 @@ - + - + - + - + - - + + - - + + @@ -117,8 +114,8 @@ Gw - - + + @@ -126,7 +123,7 @@ Gw - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - + + + - - + + + + + @@ -298,8 +312,8 @@ Gw - - + + @@ -315,55 +329,55 @@ Gw - - + - - - + + + - - + + - - - - + + + + + - - - + + + - + - + - - - + + + - + - + - - + + @@ -371,26 +385,26 @@ Gw - + - + + + + - - - - - - + + + - + - + @@ -438,24 +452,24 @@ Gw - - - - + + + + - + - + - + Select the event(s) that this filter will respond to. Some events are matched based on sender information and do not contain text. See documentation for examples. @@ -463,22 +477,169 @@ Gw - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + - - + + @@ -493,228 +654,100 @@ Gw - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - + + + - - + - + + - + - - - - + + + + + + + + + + + + + + + + + + - - + + - - + + + + + @@ -726,23 +759,10 @@ Gw - - - - + - + + + + + Not all events can be narrowed to only you. Filters only act on incoming data, so you wont be able to use this option to self-bot. The most common event this option is used for is Channel Join. + + + + - - + + - + + + + + - - + + - - - - - + - + - - + + - Enter a brief description of this filter or other type of information. This information is optional and will not effect the behavior of the filter itself. + Use the box presented below to keep notes specific to this filter such as examples of messages it will trigger for. + +This information is for your records and does not alter the behavior of the filter. - - + + - + @@ -807,67 +838,77 @@ Gw - - - - - - + + + + + + - + - - + + + + + + + + + + + + + + + - - - - + - - + + - + - - + + - - + + @@ -878,7 +919,7 @@ Gw - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + - - - - + - - - - - - - - - + + - - + + - - - - + + + + + + + @@ -974,7 +1023,7 @@ Gw - + @@ -987,7 +1036,7 @@ Gw - + diff --git a/Sources/Plugins/Chat Filter/Resources/User Interface/en.lproj/TPI_ChatFilterExtension.xib b/Sources/Plugins/Chat Filter/Resources/User Interface/en.lproj/TPI_ChatFilterExtension.xib index 9cf2ae19b..978a10f4e 100644 --- a/Sources/Plugins/Chat Filter/Resources/User Interface/en.lproj/TPI_ChatFilterExtension.xib +++ b/Sources/Plugins/Chat Filter/Resources/User Interface/en.lproj/TPI_ChatFilterExtension.xib @@ -1,8 +1,8 @@ - + - + @@ -19,25 +19,80 @@ - - + + - - - - + + + + + A “filter” is a powerful, customizable rule that allows you to hide content or perform commands (including external scripts). They are triggered by specific text appearing in a message or events occurring such as join, part, quit, etc. + +Click the + button in the bottom left corner to add your first filter. + +Drag and drop filters to change their priority. The table is ranked highest priority to lowest. Only one filter can match a specific message or event. + + + + + + + + + + + - - - - + + + + - + - @@ -48,12 +103,11 @@ - - - + + - + @@ -68,6 +122,7 @@ + @@ -89,95 +144,42 @@ - + + - - + + - - - - - The “Chat Filter” addon is a very powerful tool which can be used to ignore specific content or automatically perform one or more commands (including external scripts) based on the contents of a message. - -Click the + button in the bottom left corner to add your first filter. - - - - - - - - - - - + + + + + + - - - + + - - + @@ -226,7 +228,7 @@ Click the + button in the bottom left corner to add your first filter. - - + + diff --git a/Sources/Plugins/Sample Code/Preference Pane/Resources/User Interface/PreferencePane.xib b/Sources/Plugins/Sample Code/Preference Pane/Resources/User Interface/PreferencePane.xib index b4d57966c..8b80f94dc 100755 --- a/Sources/Plugins/Sample Code/Preference Pane/Resources/User Interface/PreferencePane.xib +++ b/Sources/Plugins/Sample Code/Preference Pane/Resources/User Interface/PreferencePane.xib @@ -1,7 +1,7 @@ - + - + @@ -13,13 +13,10 @@ - + - - - - + @@ -27,7 +24,7 @@ - + + + + + + + + + + + + + + + - + - - - - - - - + + + diff --git a/Sources/Plugins/System Profiler/Classes/TPISystemProfiler.m b/Sources/Plugins/System Profiler/Classes/TPISystemProfiler.m index 74cf4cd3b..17bffde10 100755 --- a/Sources/Plugins/System Profiler/Classes/TPISystemProfiler.m +++ b/Sources/Plugins/System Profiler/Classes/TPISystemProfiler.m @@ -35,7 +35,7 @@ * *********************************************************************** */ -#import "TPISystemProfilerModelIDRequestController.h" +#import "TPISystemProfilerModelRequest.h" #import "TPISystemProfiler.h" #import "TPI_SP_SysInfo.h" @@ -106,7 +106,7 @@ NS_ASSUME_NONNULL_BEGIN if (_performedRequest == NO) { _performedRequest = YES; - [[TPISystemProfilerModelIDRequestController sharedController] requestIdentifier]; + [[TPISystemProfilerModelRequest sharedController] requestIdentifier]; } } diff --git a/Sources/Plugins/System Profiler/Classes/TPISystemProfilerModelIDRequestController.m b/Sources/Plugins/System Profiler/Classes/TPISystemProfilerModelIDRequestController.m deleted file mode 100644 index c4267b9c0..000000000 --- a/Sources/Plugins/System Profiler/Classes/TPISystemProfilerModelIDRequestController.m +++ /dev/null @@ -1,318 +0,0 @@ -/* ********************************************************************* - * _____ _ _ - * |_ _|____ _| |_ _ _ __ _| | - * | |/ _ \ \/ / __| | | |/ _` | | - * | | __/> <| |_| |_| | (_| | | - * |_|\___/_/\_\\__|\__,_|\__,_|_| - * - * Copyright (c) 2012 - 2018 Codeux Software, LLC & respective contributors. - * Please see Acknowledgements.pdf for additional information. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of Textual, "Codeux Software, LLC", nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - *********************************************************************** */ - -#import "TPISystemProfilerModelIDRequestController.h" - -NS_ASSUME_NONNULL_BEGIN - -#pragma mark - -#pragma mark Private Declarations - -#define _requestTimeoutInterval 30.0 - -NSString * const _userDefaultsModelCacheKey = @"Private Extension Store -> System Profiler Extension -> Cached Model Identifier Value"; -NSString * const _userDefaultsSerialCacheKey = @"Private Extension Store -> System Profiler Extension -> Cached Serial Number Value"; - -@interface TPISystemProfilerModelIDRequestController () -@property (nonatomic, strong, nullable) id internalObject; - -- (void)tearDownInternalObject; -@end - -@interface TPISystemProfilerModelIDRequestControllerInternal : NSObject -@property (nonatomic, assign) BOOL xmlParserIsOnTargetElement; /* We are only targetting a single value so a BOOL is enough. */ -@property (nonatomic, strong) NSXMLParser *xmlParserObject; -@property (nonatomic, strong) NSMutableString *modelInformation; -@property (nonatomic, strong) NSURLConnection *requestConnection; -@property (nonatomic, strong) NSHTTPURLResponse *requestResponse; -@property (nonatomic, strong) NSMutableData *requestResponseData; -@property (nonatomic, copy) NSString *serialNumber; - -- (void)setupConnectionRequest; -@end - -#pragma mark - -#pragma mark Public Interface - -@implementation TPISystemProfilerModelIDRequestController - -+ (TPISystemProfilerModelIDRequestController *)sharedController -{ - static id sharedSelf = nil; - - static dispatch_once_t onceToken; - - dispatch_once(&onceToken, ^{ - sharedSelf = [TPISystemProfilerModelIDRequestController new]; - }); - - return sharedSelf; -} - -- (void)requestIdentifier -{ - NSString *serialNumber = [self serialNumberCharacters]; - - id cachedModel = [RZUserDefaults() objectForKey:_userDefaultsModelCacheKey]; - - id cachedSerialNumber = [RZUserDefaults() objectForKey:_userDefaultsSerialCacheKey]; - - if (cachedModel != nil && cachedSerialNumber != nil) { - if ([cachedSerialNumber isEqual:serialNumber]) { - return; - } else { - [RZUserDefaults() removeObjectForKey:_userDefaultsModelCacheKey]; - - [RZUserDefaults() removeObjectForKey:_userDefaultsSerialCacheKey]; - } - } - - /* Cached failed, check with Apple */ - self.internalObject = [TPISystemProfilerModelIDRequestControllerInternal new]; - - [self.internalObject setSerialNumber:serialNumber]; - - [self.internalObject setupConnectionRequest]; -} - -- (nullable NSString *)cachedIdentifier -{ - return [RZUserDefaults() objectForKey:_userDefaultsModelCacheKey]; -} - -- (void)tearDownInternalObject -{ - self.internalObject = nil; -} - -- (nullable NSString *)serialNumberCharacters -{ - /* For those concerned about security, take note of the following: - This method reads your Mac's serial number, but only uses the last - few characters in it are used. Those last few characters are what - is sent to Apple. The characters are the same for every Mac of the - same model and does not uniquely identify you. */ - /* This is the same request that the About My Mac dialog performs. */ - /* The reason that a dictionary of these values is not maintained is - because this approach allows the model to be obtained without - updating the dictionary every time there is a new model. */ - - /* Retrieve serial number of this Mac */ - NSString *serial = nil; - - io_service_t platformExpert = IOServiceGetMatchingService(kIOMasterPortDefault, IOServiceMatching("IOPlatformExpertDevice")); - - if (platformExpert) { - CFTypeRef serialNumberAsCFString = - IORegistryEntryCreateCFProperty(platformExpert, CFSTR(kIOPlatformSerialNumberKey), kCFAllocatorDefault, 0); - - if (serialNumberAsCFString) { - serial = CFBridgingRelease(serialNumberAsCFString); - } - - IOObjectRelease(platformExpert); - } - - /* The format of serial numbers changed a few years back so we - check length to know how many characters to give Apple. */ - if (serial.length == 11) { - serial = [serial substringFromIndex:(serial.length - 3)]; - } else if (serial.length == 12) { - serial = [serial substringFromIndex:(serial.length - 4)]; - } else { - /* If the serial number length is unexpected, then do not - return it at all incase it may identify the sender. */ - - serial = nil; - } - - return serial; -} - -@end - -#pragma mark - - -@implementation TPISystemProfilerModelIDRequestControllerInternal - -#pragma mark - -#pragma mark Private Interface - -- (void)tearDownInternalObject -{ - XRPerformBlockAsynchronouslyOnMainQueue(^{ - [[TPISystemProfilerModelIDRequestController sharedController] tearDownInternalObject]; - }); -} - -#pragma mark - -#pragma mark Connection Delegate - -- (NSString *)addressSourceURL -{ - NSString *serialCode = [[TPISystemProfilerModelIDRequestController sharedController] serialNumberCharacters]; - - return [NSString stringWithFormat:@"http://support-sp.apple.com/sp/product?cc=%@&lang=en_US", serialCode]; -} - -- (void)destroyConnectionRequest -{ - if ( self.requestConnection) { - [self.requestConnection cancel]; - } - - self.requestConnection = nil; - self.requestResponse = nil; - self.requestResponseData = nil; -} - -- (void)setupConnectionRequest -{ - self.requestResponseData = [NSMutableData data]; - - NSURL *requestURL = [NSURL URLWithString:[self addressSourceURL]]; - - NSMutableURLRequest *baseRequest = - [NSMutableURLRequest requestWithURL:requestURL - cachePolicy:NSURLRequestReloadIgnoringCacheData - timeoutInterval:_requestTimeoutInterval]; - - baseRequest.HTTPMethod = @"GET"; - - NSURLConnection *reqeust = [[NSURLConnection alloc] initWithRequest:baseRequest delegate:self]; - - self.requestConnection = reqeust; - - [self.requestConnection start]; -} - -- (void)connectionDidFinishLoading:(NSURLConnection *)connection -{ - BOOL isValidResponse = (self.requestResponse.statusCode == 200); - - if (isValidResponse) { - [self didReceiveXMLData:self.requestResponseData]; - } else { - [self tearDownInternalObject]; - } - - [self destroyConnectionRequest]; -} - -- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error -{ - [self destroyConnectionRequest]; - - [self tearDownInternalObject]; -} - -- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data -{ - [self.requestResponseData appendData:data]; -} - -- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response -{ - self.requestResponse = (id)response; // Save a reference to our response. -} - -- (nullable NSCachedURLResponse *)connection:(NSURLConnection *)connection willCacheResponse:(NSCachedURLResponse *)cachedResponse -{ - return nil; /* Do not return any cache */ -} - -#pragma mark - -#pragma mark XML Parser Delegate - -- (void)didReceiveXMLData:(NSData *)incomingData -{ - self.modelInformation = [NSMutableString string]; - - NSXMLParser *parser = [[NSXMLParser alloc] initWithData:incomingData]; - - parser.delegate = self; - - [parser parse]; - - self.xmlParserObject = parser; -} - -- (void)parserDidEndDocument:(NSXMLParser *)parser -{ - self.xmlParserIsOnTargetElement = NO; - - self.xmlParserObject = nil; - - self.modelInformation = nil; - - [self tearDownInternalObject]; -} - -- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(nullable NSString *)namespaceURI qualifiedName:(nullable NSString *)qName attributes:(NSDictionary *)attributeDict -{ - if ([elementName isEqualToString:@"configCode"] == NO) { - return; - } - - self.xmlParserIsOnTargetElement = YES; -} - -- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string -{ - if (self.xmlParserIsOnTargetElement == NO) { - return; - } - - [self.modelInformation appendString:string]; -} - -- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(nullable NSString *)namespaceURI qualifiedName:(nullable NSString *)qName -{ - if ([elementName isEqualToString:@"configCode"] == NO) { - return; - } - - [RZUserDefaults() setObject:self.modelInformation forKey:_userDefaultsModelCacheKey]; - - [RZUserDefaults() setObject:self.serialNumber forKey:_userDefaultsSerialCacheKey]; - - self.xmlParserIsOnTargetElement = NO; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/Sources/Plugins/System Profiler/Classes/TPISystemProfilerModelIDRequestController.h b/Sources/Plugins/System Profiler/Classes/TPISystemProfilerModelRequest.h similarity index 94% rename from Sources/Plugins/System Profiler/Classes/TPISystemProfilerModelIDRequestController.h rename to Sources/Plugins/System Profiler/Classes/TPISystemProfilerModelRequest.h index 05014dd3a..62a0444fa 100644 --- a/Sources/Plugins/System Profiler/Classes/TPISystemProfilerModelIDRequestController.h +++ b/Sources/Plugins/System Profiler/Classes/TPISystemProfilerModelRequest.h @@ -39,8 +39,8 @@ NS_ASSUME_NONNULL_BEGIN -@interface TPISystemProfilerModelIDRequestController : NSObject -+ (TPISystemProfilerModelIDRequestController *)sharedController; +@interface TPISystemProfilerModelRequest : NSObject ++ (TPISystemProfilerModelRequest *)sharedController; - (void)requestIdentifier; diff --git a/Sources/Plugins/System Profiler/Classes/TPISystemProfilerModelRequest.m b/Sources/Plugins/System Profiler/Classes/TPISystemProfilerModelRequest.m new file mode 100644 index 000000000..651ce90bf --- /dev/null +++ b/Sources/Plugins/System Profiler/Classes/TPISystemProfilerModelRequest.m @@ -0,0 +1,243 @@ +/* ********************************************************************* + * _____ _ _ + * |_ _|____ _| |_ _ _ __ _| | + * | |/ _ \ \/ / __| | | |/ _` | | + * | | __/> <| |_| |_| | (_| | | + * |_|\___/_/\_\\__|\__,_|\__,_|_| + * + * Copyright (c) 2012 - 2018 Codeux Software, LLC & respective contributors. + * Please see Acknowledgements.pdf for additional information. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Textual, "Codeux Software, LLC", nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + *********************************************************************** */ + +#import "TPISystemProfilerModelRequest.h" + +NS_ASSUME_NONNULL_BEGIN + +#pragma mark - +#pragma mark Private Declarations + +NSString * const _userDefaultsModelCacheKey = @"Private Extension Store -> System Profiler Extension -> Cached Model Identifier Value"; +NSString * const _userDefaultsSerialCacheKey = @"Private Extension Store -> System Profiler Extension -> Cached Serial Number Value"; + +@interface TPISystemProfilerModelRequest () +@property (nonatomic, strong, nullable) NSURLSessionTask *sessionTask; +@end + +#pragma mark - +#pragma mark Public Interface + +@implementation TPISystemProfilerModelRequest + ++ (TPISystemProfilerModelRequest *)sharedController +{ + static id sharedSelf = nil; + + static dispatch_once_t onceToken; + + dispatch_once(&onceToken, ^{ + sharedSelf = [TPISystemProfilerModelRequest new]; + }); + + return sharedSelf; +} + ++ (nullable NSString *)serialNumberCharacters +{ + /* For those concerned about security, take note of the following: + This method reads your Mac's serial number, but only uses the last + few characters in it. Those last few characters are what is sent + to Apple. The characters are the same for every Mac of the same + model and does not uniquely identify you. */ + /* This is the same request that the About My Mac dialog performs. */ + /* The reason that a dictionary of these values is not maintained + is because this approach allows the model to be obtained without + updating the dictionary every time there is a new model. */ + + /* Retrieve serial number of this Mac */ + NSString *serial = nil; + + io_service_t platformExpert = IOServiceGetMatchingService(kIOMasterPortDefault, IOServiceMatching("IOPlatformExpertDevice")); + + if (platformExpert) { + CFTypeRef serialNumberAsCFString = + IORegistryEntryCreateCFProperty(platformExpert, CFSTR(kIOPlatformSerialNumberKey), kCFAllocatorDefault, 0); + + if (serialNumberAsCFString) { + serial = CFBridgingRelease(serialNumberAsCFString); + } + + IOObjectRelease(platformExpert); + } + + /* The format of serial numbers changed a few years back so we + check length to know how many characters to give Apple. */ + if (serial.length == 11) { + serial = [serial substringFromIndex:(serial.length - 3)]; + } else if (serial.length == 12) { + serial = [serial substringFromIndex:(serial.length - 4)]; + } else { + /* If the serial number length is unexpected, then do not + return it at all incase it may identify the sender. */ + + serial = nil; + } + + return serial; +} + +- (void)requestIdentifier +{ + if (self.sessionTask != nil) { + LogToConsoleError("A request is already active."); + + return; + } + + NSString *serialNumber = [self.class serialNumberCharacters]; + + if (serialNumber == nil) { + LogToConsoleError("Unexpected nil serial number."); + + return; + } + + id cachedSerialNumber = [RZUserDefaults() objectForKey:_userDefaultsSerialCacheKey]; + + id cachedModel = [RZUserDefaults() objectForKey:_userDefaultsModelCacheKey]; + + if (cachedSerialNumber != nil && cachedModel != nil) { + if ([cachedSerialNumber isEqual:serialNumber]) { + LogToConsoleDebug("Cache hit."); + + return; + } + + LogToConsoleDebug("Cache poisoned."); + + [RZUserDefaults() removeObjectForKey:_userDefaultsSerialCacheKey]; + + [RZUserDefaults() removeObjectForKey:_userDefaultsModelCacheKey]; + } + + /* Cached failed, check with Apple */ + LogToConsoleDebug("Performing request."); + + [self performRequestForSerialNumber:serialNumber]; +} + +- (nullable NSString *)cachedIdentifier +{ + return [RZUserDefaults() objectForKey:_userDefaultsModelCacheKey]; +} + +- (void)performRequestForSerialNumber:(NSString *)serialNumber +{ + NSParameterAssert(serialNumber != nil); + + NSString *requestAddress = [NSString stringWithFormat:@"http://support-sp.apple.com/sp/product?cc=%@&lang=en_US", serialNumber]; + + NSURL *requestURL = [NSURL URLWithString:requestAddress]; + + __weak TPISystemProfilerModelRequest *weakSelf = self; + + NSURLSession *session = [NSURLSession sharedSession]; + + NSURLSessionTask *task = [session dataTaskWithURL:requestURL completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) + { + if (data == nil || ((NSHTTPURLResponse *)response).statusCode != 200) { + if (error) { + LogToConsoleError("Request failed with error: %@", + error.localizedDescription); + } + + return; + } + + [weakSelf processResponse:data forSerialNumber:serialNumber]; + + weakSelf.sessionTask = nil; + }]; + + [task resume]; + + self.sessionTask = task; +} + +- (void)processResponse:(NSData *)data forSerialNumber:(NSString *)serialNumber +{ + if (data.length > 512) { + LogToConsoleError("Length of data exceeds maximum."); + + return; + } + + NSString *string = [NSString stringWithData:data encoding:NSASCIIStringEncoding]; + + if (string == nil) { + LogToConsoleError("Failed to convert data into string."); + + return; + } + + /* The first version of this class used an XML parser to obtain the + value of a single element. I no longer wanted to maintain that. + The response is simple enough that we can use a regular expression. */ + /* This will produce two matches: + 1) "iMac Pro (2017)", + 2) "iMac Pro (2017)" + */ + NSArray *matches = [XRRegularExpression matchesInString:string + withRegex:@"([^\n]+)<\\/configCode>" + withoutCase:NO /* Case sensitive */ + substringGroups:YES]; /* Substring group */ + + if (matches.count != 2) { + LogToConsoleError("Wrong number of matches."); + + return; + } + + [self saveModelInformation:matches[1] forSerialNumber:serialNumber]; +} + +- (void)saveModelInformation:(NSString *)modelInformation forSerialNumber:(NSString *)serialNumber +{ + NSParameterAssert(modelInformation != nil); + NSParameterAssert(serialNumber != nil); + + LogToConsoleInfo("Saving model '%@'", modelInformation); + + [RZUserDefaults() setObject:modelInformation forKey:_userDefaultsModelCacheKey]; + + [RZUserDefaults() setObject:serialNumber forKey:_userDefaultsSerialCacheKey]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/Sources/Plugins/System Profiler/Classes/TPI_SP_SysInfo.m b/Sources/Plugins/System Profiler/Classes/TPI_SP_SysInfo.m index d91a89fe0..742b82473 100755 --- a/Sources/Plugins/System Profiler/Classes/TPI_SP_SysInfo.m +++ b/Sources/Plugins/System Profiler/Classes/TPI_SP_SysInfo.m @@ -39,7 +39,7 @@ #import "TPI_SP_SysInfo.h" -#import "TPISystemProfilerModelIDRequestController.h" +#import "TPISystemProfilerModelRequest.h" NS_ASSUME_NONNULL_BEGIN @@ -294,7 +294,7 @@ NS_ASSUME_NONNULL_BEGIN if (modelIdentifier.length > 0) { NSString *modelTitle = nil; - NSString *modelTitleApple = [TPISystemProfilerModelIDRequestController sharedController].cachedIdentifier; + NSString *modelTitleApple = [TPISystemProfilerModelRequest sharedController].cachedIdentifier; if (modelTitleApple) { modelTitle = modelTitleApple; diff --git a/Sources/Plugins/System Profiler/Resources/User Interface/en.lproj/TPISystemProfiler.xib b/Sources/Plugins/System Profiler/Resources/User Interface/en.lproj/TPISystemProfiler.xib index 9507878c0..726761708 100644 --- a/Sources/Plugins/System Profiler/Resources/User Interface/en.lproj/TPISystemProfiler.xib +++ b/Sources/Plugins/System Profiler/Resources/User Interface/en.lproj/TPISystemProfiler.xib @@ -1,8 +1,8 @@ - + - + @@ -13,176 +13,22 @@ - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - + + + + The last four characters of your Mac's serial number, which do not identify you in any way, will be sent to apple.com to retrieve model information. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - + + - - - - + - - - - - - - - - + + + + - - - + - + diff --git a/Sources/Plugins/System Profiler/System Profiler Extension.xcodeproj/project.pbxproj b/Sources/Plugins/System Profiler/System Profiler Extension.xcodeproj/project.pbxproj index 9c7ab7014..95e4c6b64 100755 --- a/Sources/Plugins/System Profiler/System Profiler Extension.xcodeproj/project.pbxproj +++ b/Sources/Plugins/System Profiler/System Profiler Extension.xcodeproj/project.pbxproj @@ -12,7 +12,7 @@ 4C36AAD920F27CC5007CA939 /* BasicLanguage.strings in Resources */ = {isa = PBXBuildFile; fileRef = 4C36AAD720F27CC5007CA939 /* BasicLanguage.strings */; }; 4C46A08920EC6ABD00094EA4 /* MacintoshModels.plist in Resources */ = {isa = PBXBuildFile; fileRef = 4C46A08220EC6ABD00094EA4 /* MacintoshModels.plist */; }; 4C46A09520EC6AD700094EA4 /* TPI_SP_SysInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C46A08F20EC6AD700094EA4 /* TPI_SP_SysInfo.m */; }; - 4C46A09620EC6AD700094EA4 /* TPISystemProfilerModelIDRequestController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C46A09020EC6AD700094EA4 /* TPISystemProfilerModelIDRequestController.m */; }; + 4C46A09620EC6AD700094EA4 /* TPISystemProfilerModelRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C46A09020EC6AD700094EA4 /* TPISystemProfilerModelRequest.m */; }; 4C46A09720EC6AD700094EA4 /* TPISystemProfiler.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C46A09120EC6AD700094EA4 /* TPISystemProfiler.m */; }; /* End PBXBuildFile section */ @@ -24,10 +24,10 @@ 4C46A08320EC6ABD00094EA4 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 4C46A08E20EC6AD700094EA4 /* TPISystemProfiler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TPISystemProfiler.h; sourceTree = ""; }; 4C46A08F20EC6AD700094EA4 /* TPI_SP_SysInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TPI_SP_SysInfo.m; sourceTree = ""; }; - 4C46A09020EC6AD700094EA4 /* TPISystemProfilerModelIDRequestController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TPISystemProfilerModelIDRequestController.m; sourceTree = ""; }; + 4C46A09020EC6AD700094EA4 /* TPISystemProfilerModelRequest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TPISystemProfilerModelRequest.m; sourceTree = ""; }; 4C46A09120EC6AD700094EA4 /* TPISystemProfiler.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TPISystemProfiler.m; sourceTree = ""; }; 4C46A09220EC6AD700094EA4 /* SystemProfiler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SystemProfiler.h; sourceTree = ""; }; - 4C46A09320EC6AD700094EA4 /* TPISystemProfilerModelIDRequestController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TPISystemProfilerModelIDRequestController.h; sourceTree = ""; }; + 4C46A09320EC6AD700094EA4 /* TPISystemProfilerModelRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TPISystemProfilerModelRequest.h; sourceTree = ""; }; 4C46A09420EC6AD700094EA4 /* TPI_SP_SysInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TPI_SP_SysInfo.h; sourceTree = ""; }; 4CE1439920EBF551000E01C9 /* Textual.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Textual.xcconfig; sourceTree = ""; }; 4CE1439A20EBF551000E01C9 /* Textual Extensions.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "Textual Extensions.xcconfig"; sourceTree = ""; }; @@ -132,8 +132,8 @@ 4C46A08F20EC6AD700094EA4 /* TPI_SP_SysInfo.m */, 4C46A08E20EC6AD700094EA4 /* TPISystemProfiler.h */, 4C46A09120EC6AD700094EA4 /* TPISystemProfiler.m */, - 4C46A09320EC6AD700094EA4 /* TPISystemProfilerModelIDRequestController.h */, - 4C46A09020EC6AD700094EA4 /* TPISystemProfilerModelIDRequestController.m */, + 4C46A09320EC6AD700094EA4 /* TPISystemProfilerModelRequest.h */, + 4C46A09020EC6AD700094EA4 /* TPISystemProfilerModelRequest.m */, ); path = Classes; sourceTree = ""; @@ -281,7 +281,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 4C46A09620EC6AD700094EA4 /* TPISystemProfilerModelIDRequestController.m in Sources */, + 4C46A09620EC6AD700094EA4 /* TPISystemProfilerModelRequest.m in Sources */, 4C46A09520EC6AD700094EA4 /* TPI_SP_SysInfo.m in Sources */, 4C46A09720EC6AD700094EA4 /* TPISystemProfiler.m in Sources */, ); diff --git a/Sources/Plugins/Wiki Link Parser/Resources/Property Lists/Info.plist b/Sources/Plugins/Wiki Link Parser/Resources/Property Lists/Info.plist index b2d2c00ab..2405bc33e 100755 --- a/Sources/Plugins/Wiki Link Parser/Resources/Property Lists/Info.plist +++ b/Sources/Plugins/Wiki Link Parser/Resources/Property Lists/Info.plist @@ -11,7 +11,7 @@ CFBundlePackageType BNDL CFBundleVersion - 1.0.7 + 1.0.8 NSHumanReadableCopyright Copyright © 2015 - 2018 Codeux Software, LLC. All rights reserved. MinimumTextualVersion diff --git a/Sources/Plugins/Wiki Link Parser/Resources/User Interface/en.lproj/TPIWikiStyleLinkParser.xib b/Sources/Plugins/Wiki Link Parser/Resources/User Interface/en.lproj/TPIWikiStyleLinkParser.xib index 78f86c8be..8d7622aa1 100644 --- a/Sources/Plugins/Wiki Link Parser/Resources/User Interface/en.lproj/TPIWikiStyleLinkParser.xib +++ b/Sources/Plugins/Wiki Link Parser/Resources/User Interface/en.lproj/TPIWikiStyleLinkParser.xib @@ -1,7 +1,8 @@ - + - + + @@ -21,76 +22,10 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - , with a link to the article they represent. - -Each channel is assigned a “Link Prefix” which is the URL prepended to the title of the article that will be linked to. - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -108,21 +43,20 @@ Each channel is assigned a “Link Prefix” which is the URL prepended to the t - + - + - - + + - + - @@ -133,9 +67,8 @@ Each channel is assigned a “Link Prefix” which is the URL prepended to the t - + - @@ -159,22 +92,22 @@ Each channel is assigned a “Link Prefix” which is the URL prepended to the t - + + + + + + This addon replaces Wiki-markup title blocks, similar to [[<title>]], with a link to the article they represent. + +Each channel is assigned a “Link Prefix” which is the URL prepended to the title of the article that will be linked to. + +Replaced title blocks are only visible to you. + + + + - + - + - - - - - + + - + + + + + - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + - - + + - - - - - + - + @@ -318,7 +297,7 @@ Gw - - + + diff --git a/XPC Services/Historic Log File Manager/Historic Log File Manager.xcodeproj/project.pbxproj b/XPC Services/Historic Log File Manager/Historic Log File Manager.xcodeproj/project.pbxproj index 40ba5e098..262a0fc74 100644 --- a/XPC Services/Historic Log File Manager/Historic Log File Manager.xcodeproj/project.pbxproj +++ b/XPC Services/Historic Log File Manager/Historic Log File Manager.xcodeproj/project.pbxproj @@ -347,7 +347,7 @@ 4C442C801E13B3D200B187F4 /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 1200; + LastUpgradeCheck = 1220; ORGANIZATIONNAME = "Codeux Software, LLC"; TargetAttributes = { 4C442C871E13B3D200B187F4 = { diff --git a/XPC Services/IRC Remote Connection Manager/Classes/IRC/IRCConnection.swift b/XPC Services/IRC Remote Connection Manager/Classes/IRC/IRCConnection.swift index 13975f12a..204f5fcc8 100644 --- a/XPC Services/IRC Remote Connection Manager/Classes/IRC/IRCConnection.swift +++ b/XPC Services/IRC Remote Connection Manager/Classes/IRC/IRCConnection.swift @@ -50,7 +50,7 @@ final class Connection: NSObject, ConnectionSocketDelegate { return TLOTimer(actionBlock: { [weak self] _ in self?.onFloodControlTimer() - }, on: DispatchQueue.global(priority: .default)) + }, on: DispatchQueue.global(qos: .default)) }() fileprivate var floodControlCurrentMessageCount = 0 diff --git a/XPC Services/IRC Remote Connection Manager/IRC Remote Connection Manager.xcodeproj/project.pbxproj b/XPC Services/IRC Remote Connection Manager/IRC Remote Connection Manager.xcodeproj/project.pbxproj index dc782ff3e..b14d6312b 100644 --- a/XPC Services/IRC Remote Connection Manager/IRC Remote Connection Manager.xcodeproj/project.pbxproj +++ b/XPC Services/IRC Remote Connection Manager/IRC Remote Connection Manager.xcodeproj/project.pbxproj @@ -481,7 +481,7 @@ 4C14063A1F11942B00C73D53 /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 1200; + LastUpgradeCheck = 1220; ORGANIZATIONNAME = "Codeux Software, LLC"; TargetAttributes = { 4C1406411F11942B00C73D53 = { diff --git a/XPC Services/Inline Content Loader/Inline Content Loader.xcodeproj/project.pbxproj b/XPC Services/Inline Content Loader/Inline Content Loader.xcodeproj/project.pbxproj index 86e898a5a..1d98429f6 100644 --- a/XPC Services/Inline Content Loader/Inline Content Loader.xcodeproj/project.pbxproj +++ b/XPC Services/Inline Content Loader/Inline Content Loader.xcodeproj/project.pbxproj @@ -594,7 +594,7 @@ 4C14063A1F11942B00C73D53 /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 1200; + LastUpgradeCheck = 1220; ORGANIZATIONNAME = "Codeux Software, LLC"; TargetAttributes = { 4C1406411F11942B00C73D53 = {