2019-04-29 13:41:51 +00:00
|
|
|
/*
|
|
|
|
This file is part of Telegram Desktop,
|
|
|
|
the official desktop application for the Telegram messaging service.
|
2019-05-27 12:39:19 +00:00
|
|
|
|
2019-04-29 13:41:51 +00:00
|
|
|
For license and copyright information please follow this link:
|
|
|
|
https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include "platform/platform_specific.h"
|
|
|
|
#include "media/audio/media_audio.h"
|
|
|
|
#include "media/player/media_player_instance.h"
|
|
|
|
#import <Cocoa/Cocoa.h>
|
|
|
|
|
2019-05-27 12:39:19 +00:00
|
|
|
namespace Platform {
|
2019-04-29 16:55:11 +00:00
|
|
|
enum class TouchBarType {
|
2019-04-30 18:31:42 +00:00
|
|
|
None,
|
2019-04-29 16:55:11 +00:00
|
|
|
Main,
|
|
|
|
AudioPlayer,
|
2019-05-04 09:43:22 +00:00
|
|
|
AudioPlayerForce,
|
2019-04-29 16:55:11 +00:00
|
|
|
};
|
|
|
|
} // namespace
|
|
|
|
|
2019-05-10 09:50:47 +00:00
|
|
|
@interface TouchBar : NSTouchBar {
|
2019-05-27 12:39:19 +00:00
|
|
|
@private
|
|
|
|
NSView *_parentView;
|
|
|
|
NSMutableArray *_mainPinnedButtons;
|
|
|
|
|
|
|
|
NSTouchBar *_touchBarMain;
|
|
|
|
NSTouchBar *_touchBarAudioPlayer;
|
2019-04-29 13:41:51 +00:00
|
|
|
|
2019-05-27 12:39:19 +00:00
|
|
|
Platform::TouchBarType _touchBarType;
|
|
|
|
Platform::TouchBarType _touchBarTypeBeforeLock;
|
|
|
|
|
|
|
|
double _duration;
|
|
|
|
double _position;
|
|
|
|
|
|
|
|
rpl::lifetime _lifetime;
|
|
|
|
}
|
2019-04-29 13:41:51 +00:00
|
|
|
|
2019-05-27 12:39:19 +00:00
|
|
|
@property(retain) NSDictionary * _Nullable touchBarItems;
|
2019-05-07 17:08:00 +00:00
|
|
|
|
2019-04-30 18:31:42 +00:00
|
|
|
- (id _Nonnull) init:(NSView * _Nonnull)view;
|
2019-05-27 12:39:19 +00:00
|
|
|
- (void) handleTrackStateChange:(Media::Player::TrackState)state;
|
|
|
|
- (void) setTouchBar:(Platform::TouchBarType)type;
|
2019-04-29 13:41:51 +00:00
|
|
|
|
|
|
|
@end
|