Dark mode support

This is the first pass. A bit more work is needed.
This commit is contained in:
Mitchell Livingston 2018-12-21 16:39:47 -05:00
parent d5dc5d1a24
commit d2b3010210
13 changed files with 194 additions and 166 deletions

View File

@ -1,153 +1,155 @@
{\rtf1\ansi\ansicpg1252\cocoartf1265
\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
{\colortbl;\red255\green255\blue255;\red127\green127\blue127;}
{\rtf1\ansi\ansicpg1252\cocoartf1659
{\fonttbl\f0\fswiss\fcharset0 Helvetica-Bold;\f1\fswiss\fcharset0 Helvetica;}
{\colortbl;\red255\green255\blue255;\red0\green0\blue0;\red0\green0\blue0;\red0\green0\blue0;
\red0\green0\blue0;\red0\green0\blue0;\red127\green127\blue127;}
{\*\expandedcolortbl;;\cssrgb\c0\c0\c0\c84706\cname headerTextColor;\cssrgb\c0\c0\c0\cname textColor;\cssrgb\c0\c0\c0\c84706\cname labelColor;
\cssrgb\c0\c0\c0\c24706\cname tertiaryLabelColor;\cssrgb\c0\c0\c0\c49804\cname secondaryLabelColor;\csgenericrgb\c49804\c49804\c49804;}
\vieww14160\viewh15100\viewkind0
\pard\tx440\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li100\slleading40\sb40\qc
\pard\tx440\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li100\slleading40\sb40\qc\partightenfactor0
\f0\b\fs28 \cf0 The Transmission Project
\fs24 \
\pard\tx440\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li100\slleading40\sb40\qc
{\field{\*\fldinst{HYPERLINK "https://transmissionbt.com/"}}{\fldrslt
\b0 \cf0 https://transmissionbt.com/}}\
\pard\tx440\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li100\slleading40\sb40
\f0\b\fs28 \cf2 The Transmission Project
\fs24 \cf3 \
\pard\tx440\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li100\slleading40\sb40\qc\partightenfactor0
{\field{\*\fldinst{HYPERLINK "https://transmissionbt.com/"}}{\fldrslt
\f1\b0 \cf3 https://transmissionbt.com/}}\
\pard\tx440\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li100\slleading40\sb40\partightenfactor0
\cf3 \
\cf2 Lead Developers
\f1\b0 \cf3 <{\field{\*\fldinst{HYPERLINK "mailto:dev@transmissionbt.com"}}{\fldrslt dev@transmissionbt.com}}>\cf0 \
\cf4 Jordan Lee, Mnemosyne LLC <{\field{\*\fldinst{HYPERLINK "mailto:jordan@transmissionbt.com"}}{\fldrslt jordan@transmissionbt.com}}>
\fs20 \cf5 \cf6 (Daemon, Backend, GTK+ client)
\fs24 \cf0 \
\cf4 Mitchell Livingston, Digital Ignition LLC <{\field{\*\fldinst{HYPERLINK "mailto:livings124@transmissionbt.com"}}{\fldrslt livings124@transmissionbt.com}}>
\fs20 \cf3 \cf6 (Mac OS X client)
\fs24 \cf0 \
\cf3 \cf4 Mike Gelfand <{\field{\*\fldinst{HYPERLINK "mailto:mike@transmissionbt.com"}}{\fldrslt mike@transmissionbt.com}}>\cf0 \
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0
\cf0 \
Lead Developers
\b0 <{\field{\*\fldinst{HYPERLINK "mailto:dev@transmissionbt.com"}}{\fldrslt dev@transmissionbt.com}}>\
Jordan Lee, Mnemosyne LLC <{\field{\*\fldinst{HYPERLINK "mailto:jordan@transmissionbt.com"}}{\fldrslt jordan@transmissionbt.com}}>
\fs20 \cf2 (Daemon, Backend, GTK+ client)
\pard\tx440\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li100\slleading40\sb40\partightenfactor0
\f0\b \cf2 Project Contributors
\f1\b0 \
\cf0 \cf4 John Clay
\fs20
\fs24 <{\field{\*\fldinst{HYPERLINK "mailto:john@transmissionbt.com"}}{\fldrslt john@transmissionbt.com}}>
\fs20 \cf5 \cf6 (Website maintenance and troubleshooting, Mac OS X help documentation)\cf7 \
\fs24 \cf0 \cf4 Bruno Bierbaumer
\fs20 \cf7 \cf6 (Web client patches)
\fs24 \cf0 \
Mitchell Livingston, Digital Ignition LLC <{\field{\*\fldinst{HYPERLINK "mailto:livings124@transmissionbt.com"}}{\fldrslt livings124@transmissionbt.com}}>
\fs20 \cf2 (Mac OS X client)
\cf4 Juliusz Chroboczek
\fs20 \cf7 \cf6 (DHT, network code, BitTorrent code improvements)\cf7 \
\fs24 \cf0 \cf4 Daniel Lee
\fs20 \cf7 \cf6 (Patches)
\fs24 \cf0 \
Mike Gelfand <{\field{\*\fldinst{HYPERLINK "mailto:mike@transmissionbt.com"}}{\fldrslt mike@transmissionbt.com}}>
\cf4 Tomas Carnecky
\fs20 \cf7 \cf6 (Profiling, patches, and detection of sneaky bugs)\cf7 \
\fs24 \cf0 \cf4 Diego Jim\'e9nez
\fs20 \cf5 \cf6 (Patches)\cf7 \
\fs24 \cf0 \cf4 Kendall Hopkins <{\field{\*\fldinst{HYPERLINK "mailto:SoftwareElves@gmail.com"}}{\fldrslt SoftwareElves@gmail.com}}>
\fs20 \cf7 \cf6 (Web client)\cf7 \
\fs24 \cf0 \cf4 Malcolm Jarvis <{\field{\*\fldinst{HYPERLINK "mailto:mjarvis@transmissionbt.com"}}{\fldrslt mjarvis@transmissionbt.com}}>
\fs20 \cf7 \cf6 (Web client)
\fs24 \cf0 \
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural
\cf4 Kevin Glowacz <{\field{\*\fldinst{HYPERLINK "mailto:kjg@transmissionbt.com"}}{\fldrslt kjg@transmissionbt.com}}>
\fs20 \cf6 (Web client)\cf7 \
\fs24 \cf0 \cf4 Rashid Eissing
\fs20 \cf3 \cf6 (Mac OS X Transfers preferences icon)
\fs24 \cf0 \
\cf4 Hugo van Heuven, madebysofa
\fs20 \cf7 \cf6 (Main icon design)
\fs24 \cf0 \
\cf4 Andreas Nilsson
\fs20 \cf5 \cf6 (GNOME adaptation of main icon)\cf7 \
\fs24 \cf0 \cf4 Dean Ostetto
\fs20 \cf5 \cf6 (Mac OS X Turtle image)\cf7 \
\fs24 \cf0 \cf4 Rick Patrick
\fs20 \cf6 (Mac OS X images)\cf7 \
\fs24 \cf0 \cf4 Jonas Rask
\fs20 \cf7 \cf6 (Mac OS X Globe icon)\cf7 \
\fs24 \cf0 \cf4 Erick Turnquist\cf0
\fs20 \cf6 (IPv6 code, support)\cf7 \
\fs24 \cf0 \cf4 Maarten Van Coile
\fs20 \cf7 \cf6 (Wiki Wrangler, troubleshooting, support)\cf7 \
\fs24 \cf0 \cf4 James "Kibo" Parry
\fs20 \cf3 \cf6 (Updated Mac Retina images)
\fs24 \cf0 \
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0
\cf0 \
\pard\tx440\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li100\slleading40\sb40
\pard\tx440\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li100\slleading40\sb40\partightenfactor0
\b \cf0 Project Contributors
\b0 \
John Clay
\fs20 \cf2
\fs24 \cf0 <{\field{\*\fldinst{HYPERLINK "mailto:john@transmissionbt.com"}}{\fldrslt john@transmissionbt.com}}>
\fs20 \cf2 (Website maintenance and troubleshooting, Mac OS X help documentation)\
\f0\b \cf2 Previous Developers
\f1\b0 \
\cf0 \cf4 Eric Petit <{\field{\*\fldinst{HYPERLINK "mailto:eric@lapsus.org"}}{\fldrslt eric@lapsus.org}}>
\fs20 \cf6 (Project originator)\cf7 \
\fs24 \cf0 Bruno Bierbaumer
\fs20 \cf2 (Web client patches)
\fs24 \cf0 \cf4 Josh Elsasser <{\field{\*\fldinst{HYPERLINK "mailto:josh@elsasser.org"}}{\fldrslt josh@elsasser.org}}>
\fs20 \cf6 (Daemon, Backend, GTK+ client)
\fs24 \cf0 \
Juliusz Chroboczek
\fs20 \cf2 (DHT, network code, BitTorrent code improvements)\
\fs24 \cf0 Daniel Lee
\fs20 \cf2 (Patches)
\cf4 Bryan Varner <{\field{\*\fldinst{HYPERLINK "mailto:bryan@varnernet.com"}}{\fldrslt bryan@varnernet.com}}>
\fs20 \cf7 \cf6 (BeOS client)
\fs24 \cf0 \
Tomas Carnecky
\fs20 \cf2 (Profiling, patches, and detection of sneaky bugs)\
\fs24 \cf0 Diego Jim\'e9nez
\fs20 \cf2 (Patches)\
\fs24 \cf0 Kendall Hopkins <{\field{\*\fldinst{HYPERLINK "mailto:SoftwareElves@gmail.com"}}{\fldrslt SoftwareElves@gmail.com}}>
\fs20 \cf2 (Web client)\
\fs24 \cf0 Malcolm Jarvis <{\field{\*\fldinst{HYPERLINK "mailto:mjarvis@transmissionbt.com"}}{\fldrslt mjarvis@transmissionbt.com}}>
\fs20 \cf2 (Web client)
\fs24 \cf0 \
Kevin Glowacz <{\field{\*\fldinst{HYPERLINK "mailto:kjg@transmissionbt.com"}}{\fldrslt kjg@transmissionbt.com}}>
\fs20 \cf2 (Web client)\
\fs24 \cf0 Rashid Eissing
\fs20 \cf2 (Mac OS X Transfers preferences icon)
\fs24 \cf0 \
Hugo van Heuven, madebysofa
\fs20 \cf2 (Main icon design)
\fs24 \cf0 \
Andreas Nilsson
\fs20 \cf2 (GNOME adaptation of main icon)\
\fs24 \cf0 Dean Ostetto
\fs20 \cf2 (Mac OS X Turtle image)\
\fs24 \cf0 Rick Patrick
\fs20 \cf2 (Mac OS X images)\
\fs24 \cf0 Jonas Rask
\fs20 \cf2 (Mac OS X Globe icon)\
\fs24 \cf0 Erick Turnquist
\fs20 \cf2 (IPv6 code, support)\
\fs24 \cf0 Maarten Van Coile
\fs20 \cf2 (Wiki Wrangler, troubleshooting, support)\
\fs24 \cf0 James "Kibo" Parry
\fs20 \cf2 (Updated Mac Retina images)
\fs24 \cf0 \
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0
\cf0 \
\pard\tx440\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li100\slleading40\sb40
\pard\tx440\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li100\slleading40\sb40\partightenfactor0
\b \cf0 Previous Developers
\b0 \
Eric Petit <{\field{\*\fldinst{HYPERLINK "mailto:eric@lapsus.org"}}{\fldrslt eric@lapsus.org}}>
\fs20 \cf2 (Project originator)\
\f0\b \cf2 Mac OS X Translators
\f1\b0 \
\cf0 \cf4 Jorge Carrasco\cf7
\fs20 \cf6 (Spanish)\cf7 \
\fs24 \cf0 Josh Elsasser <{\field{\*\fldinst{HYPERLINK "mailto:josh@elsasser.org"}}{\fldrslt josh@elsasser.org}}>
\fs20 \cf2 (Daemon, Backend, GTK+ client)
\fs24 \cf0 \
Bryan Varner <{\field{\*\fldinst{HYPERLINK "mailto:bryan@varnernet.com"}}{\fldrslt bryan@varnernet.com}}>
\fs20 \cf2 (BeOS client)
\fs24 \cf0 \
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural
\cf0 \
\pard\tx440\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li100\slleading40\sb40
\fs24 \cf0 \cf4 Etienne Samson
\fs20 \cf7 \cf6 (French)\cf7 \
\b \cf0 Mac OS X Translators
\b0 \
Jorge Carrasco\cf2
\fs20 (Spanish)\
\fs24 \cf0 Etienne Samson
\fs20 \cf2 (French)\
\fs24 \cf0 Marco Cavazzuti
\fs20 \cf2 (Italian)\
\fs24 \cf0 \cf4 Marco Cavazzuti
\fs20 \cf6 (Italian)\cf7 \
\fs24 \cf0 Anton Sotkov
\fs20 \cf2 (Russian)\
\fs24 \cf0 \cf4 Anton Sotkov
\fs20 \cf7 \cf6 (Russian)\cf7 \
\fs24 \cf0 Alexander Bykov
\fs20 \cf2 (Russian)\
\fs24 \cf0 \cf4 Alexander Bykov
\fs20 \cf7 \cf6 (Russian)\cf7 \
\fs24 \cf0 Maarten Van Coile
\fs20 \cf2 (Dutch)\
\fs24 \cf4 Maarten Van Coile
\fs20 \cf6 (Dutch)\cf7 \
\fs24 \cf0 Guilherme Fernandes
\fs20 \cf2 (Brazilian Portuguese)\
\fs24 \cf4 Guilherme Fernandes
\fs20 \cf6 (Brazilian Portuguese)\cf7 \
\fs24 \cf0 Sven-S. Porst
\fs20 \cf2 (German)\
\fs24 \cf4 Sven-S. Porst
\fs20 \cf6 (German)\cf7 \
\fs24 \cf0 Tianhao He
\fs20 \cf2 (Simplified Chinese)\
\fs24 \cf4 Tianhao He
\fs20 \cf6 (Simplified Chinese)\cf7 \
\fs24 \cf0 S\'e9rgio Miranda
\fs20 \cf2 (European Portuguese)\
\fs24 \cf4 S\'e9rgio Miranda
\fs20 \cf7 \cf6 (European Portuguese)\cf7 \
\fs24 \cf0 Daniel \'d8stergaard Nielsen
\fs20 \cf2 (Danish)\
\fs24 \cf4 Daniel \'d8stergaard Nielsen
\fs20 \cf5 \cf6 (Danish)\cf7 \
\fs24 \cf0 Emir SARI
\fs20 \cf2 (Turkish)
\fs24 \cf4 Emir SARI
\fs20 \cf7 \cf6 (Turkish)
\fs24 \cf0 \
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0
\cf0 \
\pard\tx440\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li100\slleading40\sb40
\pard\tx440\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li100\slleading40\sb40\partightenfactor0
\b \cf0 Third-Party Resources
\b0 \
Nick Mathewson and Niels Provos for libevent. <{\field{\*\fldinst{HYPERLINK "http://monkey.org/~provos/libevent/"}}{\fldrslt http://monkey.org/~provos/libevent/}}>\
Greg Hazel of BitTorrent Inc. for libutp. <{\field{\*\fldinst{HYPERLINK "https://github.com/bittorrent/libutp"}}{\fldrslt https://github.com/bittorrent/libutp}}>\
Thomas Bernard for MiniUPnP and libnatpmp. <{\field{\*\fldinst{HYPERLINK "http://miniupnp.tuxfamily.org/"}}{\fldrslt http://miniupnp.tuxfamily.org/}}>\
Andy Matuschak for Sparkle. <{\field{\*\fldinst{HYPERLINK "http://sparkle.andymatuschak.org/"}}{\fldrslt http://sparkle.andymatuschak.org/}}>\
Bryan D K Jones for VDKQueue. <{\field{\*\fldinst{HYPERLINK "https://github.com/bdkjones/VDKQueue"}}{\fldrslt https://github.com/bdkjones/VDKQueue}}>}
\f0\b \cf2 Third-Party Resources
\f1\b0 \
\cf3 \cf4 Nick Mathewson and Niels Provos for libevent. <{\field{\*\fldinst{HYPERLINK "http://monkey.org/~provos/libevent/"}}{\fldrslt http://monkey.org/~provos/libevent/}}>\cf3 \
\cf4 Greg Hazel of BitTorrent Inc. for libutp. <{\field{\*\fldinst{HYPERLINK "https://github.com/bittorrent/libutp"}}{\fldrslt https://github.com/bittorrent/libutp}}>\cf3 \
\cf4 Thomas Bernard for MiniUPnP and libnatpmp. <{\field{\*\fldinst{HYPERLINK "http://miniupnp.tuxfamily.org/"}}{\fldrslt http://miniupnp.tuxfamily.org/}}>\cf3 \
\cf4 Andy Matuschak for Sparkle. <{\field{\*\fldinst{HYPERLINK "http://sparkle.andymatuschak.org/"}}{\fldrslt http://sparkle.andymatuschak.org/}}>\cf3 \
\cf4 Bryan D K Jones for VDKQueue. <{\field{\*\fldinst{HYPERLINK "https://github.com/bdkjones/VDKQueue"}}{\fldrslt https://github.com/bdkjones/VDKQueue}}>}

View File

@ -115,7 +115,7 @@
else
{
titleColor = [NSColor controlTextColor];
statusColor = [NSColor darkGrayColor];
statusColor = [NSColor secondaryLabelColor];
}
fTitleAttributes[NSForegroundColorAttributeName] = titleColor;

View File

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="11762" systemVersion="16D32" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none">
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14460.31" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none">
<dependencies>
<deployment identifier="macosx"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="11762"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14460.31"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
@ -107,7 +107,7 @@
<action selector="setFilter:" target="-2" id="40"/>
</connections>
</button>
<searchField wantsLayer="YES" verticalHuggingPriority="750" id="10">
<searchField wantsLayer="YES" verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="YES" id="10">
<rect key="frame" x="357" y="2" width="95" height="19"/>
<autoresizingMask key="autoresizingMask" flexibleMinX="YES"/>
<searchFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" borderStyle="bezel" bezelStyle="round" id="11">

View File

@ -58,7 +58,7 @@
const NSRect lineBorderRect = NSMakeRect(NSMinX(rect), 0.0, NSWidth(rect), 1.0);
if (NSIntersectsRect(lineBorderRect, rect))
{
[[NSColor lightGrayColor] setFill];
[[NSColor gridColor] setFill];
NSRectFill(lineBorderRect);
}
}

View File

@ -24,7 +24,6 @@
@interface InfoTabButtonBack : NSView
{
NSGradient * fGradient;
}
@end

View File

@ -21,20 +21,10 @@
*****************************************************************************/
#import "InfoTabButtonBack.h"
#import "NSApplicationAdditions.h"
@implementation InfoTabButtonBack
- (id) initWithFrame: (NSRect) rect
{
if ((self = [super initWithFrame: rect]))
{
NSColor * lightColor = [NSColor colorWithCalibratedRed: 245.0/255.0 green: 245.0/255.0 blue: 245.0/255.0 alpha: 1.0];
NSColor * darkColor = [NSColor colorWithCalibratedRed: 215.0/255.0 green: 215.0/255.0 blue: 215.0/255.0 alpha: 1.0];
fGradient = [[NSGradient alloc] initWithStartingColor: lightColor endingColor: darkColor];
}
return self;
}
- (void) drawRect: (NSRect) rect
{
@ -46,7 +36,11 @@
if (NSIntersectsRect(lineBorderRect, rect))
{
gridRects[count] = lineBorderRect;
colorRects[count] = [NSColor grayColor];
if (@available(macOS 10.14, *)) {
colorRects[count] = [NSColor separatorColor];
} else {
colorRects[count] = [NSColor grayColor];
}
++count;
rect.size.height -= 1.0;
@ -56,7 +50,11 @@
if (NSIntersectsRect(lineBorderRect, rect))
{
gridRects[count] = lineBorderRect;
colorRects[count] = [NSColor grayColor];
if (@available(macOS 10.14, *)) {
colorRects[count] = [NSColor separatorColor];
} else {
colorRects[count] = [NSColor grayColor];
}
++count;
rect.origin.y += 1.0;
@ -65,7 +63,18 @@
NSRectFillListWithColors(gridRects, colorRects, count);
[fGradient drawInRect: rect angle: 270.0];
NSGradient *gradient;
if ([NSApp isDarkMode]) {
NSColor * darkColor = [NSColor colorWithCalibratedRed: 60.0/255.0 green: 60.0/255.0 blue: 60.0/255.0 alpha: 1.0];
NSColor * lightColor = [NSColor colorWithCalibratedRed: 90.0/255.0 green: 90.0/255.0 blue: 90.0/255.0 alpha: 1.0];
gradient = [[NSGradient alloc] initWithStartingColor: lightColor endingColor: darkColor];
} else {
NSColor * lightColor = [NSColor colorWithCalibratedRed: 245.0/255.0 green: 245.0/255.0 blue: 245.0/255.0 alpha: 1.0];
NSColor * darkColor = [NSColor colorWithCalibratedRed: 215.0/255.0 green: 215.0/255.0 blue: 215.0/255.0 alpha: 1.0];
gradient = [[NSGradient alloc] initWithStartingColor: lightColor endingColor: darkColor];
}
[gradient drawInRect: rect angle: 270.0];
}
@end

View File

@ -21,6 +21,7 @@
*****************************************************************************/
#import "InfoTabButtonCell.h"
#import "NSApplicationAdditions.h"
@implementation InfoTabButtonCell
@ -80,12 +81,22 @@
}
else
{
NSColor * lightColor = [NSColor colorWithCalibratedRed: 245.0/255.0 green: 245.0/255.0 blue: 245.0/255.0 alpha: 1.0];
NSColor * darkColor = [NSColor colorWithCalibratedRed: 215.0/255.0 green: 215.0/255.0 blue: 215.0/255.0 alpha: 1.0];
gradient = [[NSGradient alloc] initWithStartingColor: lightColor endingColor: darkColor];
if ([NSApp isDarkMode]) {
NSColor * darkColor = [NSColor colorWithCalibratedRed: 60.0/255.0 green: 60.0/255.0 blue: 60.0/255.0 alpha: 1.0];
NSColor * lightColor = [NSColor colorWithCalibratedRed: 90.0/255.0 green: 90.0/255.0 blue: 90.0/255.0 alpha: 1.0];
gradient = [[NSGradient alloc] initWithStartingColor: lightColor endingColor: darkColor];
} else {
NSColor * lightColor = [NSColor colorWithCalibratedRed: 245.0/255.0 green: 245.0/255.0 blue: 245.0/255.0 alpha: 1.0];
NSColor * darkColor = [NSColor colorWithCalibratedRed: 215.0/255.0 green: 215.0/255.0 blue: 215.0/255.0 alpha: 1.0];
gradient = [[NSGradient alloc] initWithStartingColor: lightColor endingColor: darkColor];
}
}
[[NSColor grayColor] set];
if (@available(macOS 10.14, *)) {
[[NSColor separatorColor] set];
} else {
[[NSColor grayColor] set];
}
NSRectFill(NSMakeRect(0.0, 0.0, NSWidth(tabRect), 1.0));
NSRectFill(NSMakeRect(0.0, NSHeight(tabRect) - 1.0, NSWidth(tabRect), 1.0));
NSRectFill(NSMakeRect(NSWidth(tabRect) - 1.0, 1.0, NSWidth(tabRect) - 1.0, NSHeight(tabRect) - 2.0));

View File

@ -25,5 +25,7 @@
@interface NSApplication (NSApplicationAdditions)
- (BOOL) isOnYosemiteOrBetter;
- (BOOL) isOnMojaveOrBetter;
- (BOOL) isDarkMode;
@end

View File

@ -29,4 +29,18 @@
return floor(NSAppKitVersionNumber) > NSAppKitVersionNumber10_9;
}
- (BOOL) isOnMojaveOrBetter
{
return floor(NSAppKitVersionNumber) > NSAppKitVersionNumber10_13;
}
- (BOOL) isDarkMode
{
if (@available(macOS 10.14, *)) {
return [self.effectiveAppearance.name isEqualToString:NSAppearanceNameDarkAqua];
} else {
return NO;
}
}
@end

View File

@ -88,7 +88,7 @@
const NSRect lineBorderRect = NSMakeRect(NSMinX(rect), 0.0, NSWidth(rect), 1.0);
if (NSIntersectsRect(lineBorderRect, rect))
{
[[NSColor lightGrayColor] setFill];
[[NSColor gridColor] setFill];
NSRectFill(lineBorderRect);
}
}

View File

@ -375,8 +375,8 @@
titleColor = statusColor = [NSColor whiteColor];
else
{
titleColor = [NSColor controlTextColor];
statusColor = [NSColor darkGrayColor];
titleColor = [NSColor labelColor];
statusColor = [NSColor secondaryLabelColor];
}
fTitleAttributes[NSForegroundColorAttributeName] = titleColor;
@ -474,7 +474,7 @@
NSMidY(titleRect) - PRIORITY_ICON_HEIGHT * 0.5,
PRIORITY_ICON_WIDTH, PRIORITY_ICON_HEIGHT);
NSColor * priorityColor = [self backgroundStyle] == NSBackgroundStyleDark ? [NSColor whiteColor] : [NSColor darkGrayColor];
NSColor * priorityColor = [self backgroundStyle] == NSBackgroundStyleDark ? [NSColor whiteColor] : [NSColor labelColor];
NSImage * priorityImage = [[NSImage imageNamed: ([torrent priority] == TR_PRI_HIGH ? @"PriorityHighTemplate" : @"PriorityLowTemplate")] imageWithColor: priorityColor];
[priorityImage drawInRect: priorityRect fromRect: NSZeroRect operation: NSCompositeSourceOver fraction: 1.0 respectFlipped: YES hints: nil];
}
@ -527,7 +527,7 @@
cellFrame.origin.x += PADDING_EXPANSION_FRAME;
cellFrame.origin.y += PADDING_EXPANSION_FRAME;
fTitleAttributes[NSForegroundColorAttributeName] = [NSColor controlTextColor];
fTitleAttributes[NSForegroundColorAttributeName] = [NSColor labelColor];
NSAttributedString * titleString = [self attributedTitle];
[titleString drawInRect: cellFrame];
}

View File

@ -156,15 +156,6 @@
[cell setActionHover: row == fMouseActionRow];
}
}
else
{
NSString * ident = [tableColumn identifier];
if ([ident isEqualToString: @"UL Image"] || [ident isEqualToString: @"DL Image"])
{
//ensure arrows are white only when selected
[[cell image] setTemplate: [cell backgroundStyle] == NSBackgroundStyleLowered];
}
}
}
- (NSRect) frameOfCellAtColumn: (NSInteger) column row: (NSInteger) row

View File

@ -107,8 +107,8 @@ NSMutableSet * fTrackerIconLoading;
nameColor = statusColor = [NSColor whiteColor];
else
{
nameColor = [NSColor controlTextColor];
statusColor = [NSColor darkGrayColor];
nameColor = [NSColor labelColor];
statusColor = [NSColor secondaryLabelColor];
}
fNameAttributes[NSForegroundColorAttributeName] = nameColor;