From ba1691bf7e64ffa66ac7c22a212b138bc9c8abb5 Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Sat, 4 May 2019 11:54:38 +0300 Subject: [PATCH] Added custom close icon to touchbar - Slightly refactored. --- .../SourceFiles/media/player/media_player.style | 3 +++ Telegram/SourceFiles/platform/mac/touchbar.mm | 14 +++++++++++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/Telegram/SourceFiles/media/player/media_player.style b/Telegram/SourceFiles/media/player/media_player.style index f6bc35d9a9..d13c9e2bd7 100644 --- a/Telegram/SourceFiles/media/player/media_player.style +++ b/Telegram/SourceFiles/media/player/media_player.style @@ -152,6 +152,9 @@ mediaPlayerPreviousButton: IconButton(mediaPlayerNextButton) { mediaPlayerPreviousDisabledIcon: icon { { "player_next-flip_horizontal", mediaPlayerInactiveFg, mediaPlayerSkipIconPosition }, }; + +iconPlayerClose: icon {{ "player_close", windowFg }}; + mediaPlayerClose: IconButton(mediaPlayerRepeatButton) { width: 37px; icon: icon {{ "player_close", menuIconFg, point(10px, 12px) }}; diff --git a/Telegram/SourceFiles/platform/mac/touchbar.mm b/Telegram/SourceFiles/platform/mac/touchbar.mm index ca89e934bb..86ae8dc93e 100644 --- a/Telegram/SourceFiles/platform/mac/touchbar.mm +++ b/Telegram/SourceFiles/platform/mac/touchbar.mm @@ -30,6 +30,7 @@ #include "ui/empty_userpic.h" #include "observer_peer.h" #include "styles/style_dialogs.h" +#include "styles/style_media_player.h" #include "data/data_folder.h" namespace { @@ -205,7 +206,7 @@ auto lifetime = rpl::lifetime(); Ui::EmptyUserpic::PaintSavedMessages(paint, 0, 0, s, s); } pix->setDevicePixelRatio(cRetinaFactor()); - return static_cast(qt_mac_create_nsimage(*pix)); + return [qt_mac_create_nsimage(*pix) autorelease]; } if (!self.peer) { // Random picture. @@ -214,7 +215,7 @@ auto lifetime = rpl::lifetime(); self.waiting = !self.peer->userpicLoaded(); auto pixmap = self.peer->genUserpic(kIdealIconSize); pixmap.setDevicePixelRatio(cRetinaFactor()); - return static_cast(qt_mac_create_nsimage(pixmap)); + return [qt_mac_create_nsimage(pixmap) autorelease]; } @@ -264,7 +265,7 @@ auto lifetime = rpl::lifetime(); @"type": @"button", @"name": @"Close Player", @"cmd": [NSNumber numberWithInt:kClosePlayer], - @"image": [NSImage imageNamed:NSImageNameTouchBarExitFullScreenTemplate] + @"image": createImageFromStyleIcon(st::iconPlayerClose, NSMakeSize(kIdealIconSize / 3, kIdealIconSize / 3)) }], currentPosition: [NSMutableDictionary dictionaryWithDictionary:@{ @"type": @"text", @@ -297,6 +298,13 @@ auto lifetime = rpl::lifetime(); return self; } +NSImage *createImageFromStyleIcon(const style::icon &icon, NSSize size) { + const auto pixmap = icon.instance(QColor(255, 255, 255, 255), 100); + NSImage *image = [qt_mac_create_nsimage(QPixmap::fromImage(pixmap)) autorelease]; + [image setSize:size]; + return image; +} + - (void) createTouchBar { _touchBarMain = [[NSTouchBar alloc] init]; _touchBarMain.delegate = self;