[Interest] How to get active button color in macOS?
Patrick Stinson
patrickkidd at gmail.com
Wed Jan 30 13:18:08 CET 2019
That was also my estimation. I decided to go with native code:
#ifdef Q_OS_MACOS
QColor qt_mac_toQColor(const NSColor *color) const
{
QColor qtColor;
NSString *colorSpace = [color colorSpaceName];
if (colorSpace == NSDeviceCMYKColorSpace) {
CGFloat cyan, magenta, yellow, black, alpha;
[color getCyan:&cyan magenta:&magenta yellow:&yellow black:&black alpha:&alpha];
qtColor.setCmykF(cyan, magenta, yellow, black, alpha);
} else {
NSColor *tmpColor;
tmpColor = [color colorUsingColorSpaceName:NSDeviceRGBColorSpace];
CGFloat red, green, blue, alpha;
[tmpColor getRed:&red green:&green blue:&blue alpha:&alpha];
qtColor.setRgbF(red, green, blue, alpha);
}
return qtColor;
}
#endif
QColor appleControlAccentColor() const {
if (@available(macOS 10.14, *)) {
// macOS 10.14 or later code path
return qt_mac_toQColor([NSColor controlAccentColor]);
} else {
return QApplication::palette().color(QPalette::Active, QPalette::ButtonText);
}
}
> On Jan 30, 2019, at 2:53 AM, Nils Jeisecke <nils.jeisecke at saltation.com> wrote:
>
> Hi,
>
> Am 30.01.2019 um 02:27 hat Patrick Stinson geschrieben:
>> Hello!
>>
>> I am trying to figure out how to get the following color for macOS
>> (see screenshot) which is called “Accent Color" in the General section
>> of System Preferences.
>
> I'm afraid there's only the "highlight" color available (which is derived
> from the accent color by default but can be changed). You can use native
> API to get the accent color.
>
> Qt palette is kind of stuck at representing Windows 95 like UIs, it has
> even color values for drawing fancy grayish 3D buttons ;-)
>
> Given that Windows 10 also has some kind of accent color I would welcome
> an additional palette entry. This could be the same value as highlight
> on platforms that don't support accent colors.
>
> On systems with accent color support usually the "accent color" is
> used for list selection, toggles, checkboxes and control indicator
> styling (like the open button of a combobox). "highlight" is meant for
> user selection in input fields etc.
>
> I'm not sure if adding another color entry is possible in Qt5 though.
>
> Nils
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20190130/e09b7617/attachment.html>
More information about the Interest
mailing list