1435 lines
		
	
	
	
		
			41 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			1435 lines
		
	
	
	
		
			41 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| /*
 | |
| This file is part of Telegram Desktop,
 | |
| the official desktop application for the Telegram messaging service.
 | |
| 
 | |
| For license and copyright information please follow this link:
 | |
| https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
 | |
| */
 | |
| using "ui/basic.style";
 | |
| 
 | |
| using "ui/widgets/widgets.style";
 | |
| using "ui/layers/layers.style";
 | |
| using "ui/chat/chat.style"; // GroupCallUserpics
 | |
| using "info/info.style"; // ShortInfoCover
 | |
| using "window/window.style";
 | |
| using "settings/settings.style"; // defaultSubsectionTitle
 | |
| 
 | |
| CallSignalBars {
 | |
| 	width: pixels;
 | |
| 	radius: pixels;
 | |
| 	skip: pixels;
 | |
| 	min: pixels;
 | |
| 	max: pixels;
 | |
| 	color: color;
 | |
| 	inactiveOpacity: double;
 | |
| }
 | |
| 
 | |
| callWidthMin: 300px;
 | |
| callHeightMin: 440px;
 | |
| callWidth: 720px;
 | |
| callHeight: 540px;
 | |
| 
 | |
| callBottomControlsHeight: 87px;
 | |
| 
 | |
| CallBodyLayout {
 | |
| 	height: pixels;
 | |
| 	photoTop: pixels;
 | |
| 	photoSize: pixels;
 | |
| 	nameTop: pixels;
 | |
| 	statusTop: pixels;
 | |
| 	muteStroke: pixels;
 | |
| 	muteSize: pixels;
 | |
| 	mutePosition: point;
 | |
| }
 | |
| 
 | |
| callBodyLayout: CallBodyLayout {
 | |
| 	height: 284px;
 | |
| 	photoTop: 21px;
 | |
| 	photoSize: 160px;
 | |
| 	nameTop: 221px;
 | |
| 	statusTop: 254px;
 | |
| 	muteStroke: 3px;
 | |
| 	muteSize: 36px;
 | |
| 	mutePosition: point(142px, 135px);
 | |
| }
 | |
| callBodyWithPreview: CallBodyLayout {
 | |
| 	height: 185px;
 | |
| 	photoTop: 21px;
 | |
| 	photoSize: 100px;
 | |
| 	nameTop: 132px;
 | |
| 	statusTop: 163px;
 | |
| 	muteStroke: 3px;
 | |
| 	muteSize: 0px;
 | |
| 	mutePosition: point(90px, 84px);
 | |
| }
 | |
| callMutedPeerIcon: icon {{ "calls/calls_mute_userpic", callIconFg }};
 | |
| 
 | |
| callOutgoingPreviewMin: size(360px, 120px);
 | |
| callOutgoingPreview: size(540px, 180px); // default, for height == callHeight.
 | |
| callOutgoingPreviewMax: size(1620px, 540px);
 | |
| callOutgoingDefaultSize: size(160px, 110px);
 | |
| 
 | |
| callInnerPadding: 12px;
 | |
| 
 | |
| callFingerprintPadding: margins(10px, 4px, 8px, 5px);
 | |
| callFingerprintSkip: 4px;
 | |
| callFingerprintSignalBarsSkip: 2px;
 | |
| callSignalBarsPadding: margins(8px, 9px, 11px, 5px);
 | |
| 
 | |
| callFingerprintTop: 8px;
 | |
| callFingerprintBottom: -16px;
 | |
| 
 | |
| callTooltipMutedIcon: icon{{ "calls/calls_mute_tooltip", videoPlayIconFg }};
 | |
| callTooltipMutedIconPosition: point(10px, 5px);
 | |
| callTooltipPadding: margins(41px, 7px, 15px, 8px);
 | |
| 
 | |
| callButton: IconButton {
 | |
| 	width: 68px;
 | |
| 	height: 79px;
 | |
| 
 | |
| 	iconPosition: point(-1px, 16px);
 | |
| 
 | |
| 	rippleAreaPosition: point(12px, 12px);
 | |
| 	rippleAreaSize: 44px;
 | |
| 	ripple: defaultRippleAnimation;
 | |
| }
 | |
| callButtonLabel: FlatLabel(defaultFlatLabel) {
 | |
| 	textFg: callNameFg;
 | |
| 	style: TextStyle(defaultTextStyle) {
 | |
| 		font: font(11px);
 | |
| 	}
 | |
| }
 | |
| 
 | |
| callAnswer: CallButton {
 | |
| 	button: IconButton(callButton) {
 | |
| 		icon: icon {{ "calls/call_answer", callIconFg }};
 | |
| 		ripple: RippleAnimation(defaultRippleAnimation) {
 | |
| 			color: callAnswerRipple;
 | |
| 		}
 | |
| 	}
 | |
| 	bg: callAnswerBg;
 | |
| 	bgSize: 44px;
 | |
| 	bgPosition: point(12px, 12px);
 | |
| 	angle: 135.;
 | |
| 	outerRadius: 12px;
 | |
| 	outerBg: callAnswerBgOuter;
 | |
| 	label: callButtonLabel;
 | |
| }
 | |
| callStartVideo: CallButton(callAnswer) {
 | |
| 	button: IconButton(callButton) {
 | |
| 		icon: icon {{ "calls/call_camera_active", callIconFg }};
 | |
| 		ripple: RippleAnimation(defaultRippleAnimation) {
 | |
| 			color: callAnswerRipple;
 | |
| 		}
 | |
| 	}
 | |
| }
 | |
| callHangup: CallButton(callAnswer) {
 | |
| 	button: IconButton(callButton) {
 | |
| 		icon: icon {{ "calls/call_discard", callIconFg }};
 | |
| 		ripple: RippleAnimation(defaultRippleAnimation) {
 | |
| 			color: callHangupRipple;
 | |
| 		}
 | |
| 	}
 | |
| 	bg: callHangupBg;
 | |
| 	outerBg: callHangupBg;
 | |
| 	label: callButtonLabel;
 | |
| }
 | |
| callCancel: CallButton(callAnswer) {
 | |
| 	button: IconButton(callButton) {
 | |
| 		icon: icon {{ "calls/call_cancel", callIconFgActive }};
 | |
| 		ripple: RippleAnimation(defaultRippleAnimation) {
 | |
| 			color: callIconActiveRipple;
 | |
| 		}
 | |
| 	}
 | |
| 	bg: callIconBgActive;
 | |
| 	outerBg: callIconBgActive;
 | |
| 	label: callButtonLabel;
 | |
| }
 | |
| callMicrophoneMute: CallButton(callAnswer) {
 | |
| 	button: IconButton(callButton) {
 | |
| 		icon: icon {{ "calls/call_record_active", callIconFg }};
 | |
| 		ripple: RippleAnimation(defaultRippleAnimation) {
 | |
| 			color: callMuteRipple;
 | |
| 		}
 | |
| 	}
 | |
| 	bg: callIconBg;
 | |
| 	outerBg: callMuteRipple;
 | |
| 	label: callButtonLabel;
 | |
| }
 | |
| callMicrophoneUnmute: CallButton(callMicrophoneMute) {
 | |
| 	button: IconButton(callButton) {
 | |
| 		icon: icon {{ "calls/call_record_muted", callIconFgActive }};
 | |
| 		ripple: RippleAnimation(defaultRippleAnimation) {
 | |
| 			color: callIconActiveRipple;
 | |
| 		}
 | |
| 	}
 | |
| 	bg: callIconBgActive;
 | |
| }
 | |
| callCameraMute: CallButton(callMicrophoneMute) {
 | |
| 	button: IconButton(callButton) {
 | |
| 		icon: icon {{ "calls/call_camera_active", callIconFg }};
 | |
| 		ripple: RippleAnimation(defaultRippleAnimation) {
 | |
| 			color: callMuteRipple;
 | |
| 		}
 | |
| 	}
 | |
| }
 | |
| callCameraUnmute: CallButton(callMicrophoneUnmute) {
 | |
| 	button: IconButton(callButton) {
 | |
| 		icon: icon {{ "calls/call_camera_muted", callIconFgActive }};
 | |
| 		ripple: RippleAnimation(defaultRippleAnimation) {
 | |
| 			color: callIconActiveRipple;
 | |
| 		}
 | |
| 	}
 | |
| }
 | |
| callScreencastOn: CallButton(callMicrophoneMute) {
 | |
| 	button: IconButton(callButton) {
 | |
| 		icon: icon {{ "calls/calls_present", callIconFg }};
 | |
| 		iconPosition: point(-1px, 22px);
 | |
| 		ripple: RippleAnimation(defaultRippleAnimation) {
 | |
| 			color: callMuteRipple;
 | |
| 		}
 | |
| 	}
 | |
| }
 | |
| callScreencastOff: CallButton(callMicrophoneUnmute) {
 | |
| 	button: IconButton(callButton) {
 | |
| 		icon: icon {{ "calls/calls_present", callIconFgActive }};
 | |
| 		iconPosition: point(-1px, 22px);
 | |
| 		ripple: RippleAnimation(defaultRippleAnimation) {
 | |
| 			color: callIconActiveRipple;
 | |
| 		}
 | |
| 	}
 | |
| }
 | |
| callBottomShadowSize: 124px;
 | |
| 
 | |
| CallMuteButton {
 | |
| 	active: CallButton;
 | |
| 	muted: CallButton;
 | |
| 	labelAdditional: pixels;
 | |
| 	sublabel: FlatLabel;
 | |
| 	labelsSkip: pixels;
 | |
| 	sublabelSkip: pixels;
 | |
| 	lottieSize: size;
 | |
| 	lottieTop: pixels;
 | |
| }
 | |
| 
 | |
| callMuteButtonLabel: FlatLabel(defaultFlatLabel) {
 | |
| 	textFg: groupCallMembersFg;
 | |
| 	style: TextStyle(defaultTextStyle) {
 | |
| 		font: font(14px);
 | |
| 	}
 | |
| }
 | |
| callMuteButtonActiveInner: IconButton {
 | |
| 	width: 112px;
 | |
| 	height: 138px;
 | |
| }
 | |
| callMuteButtonSmallActiveInner: IconButton {
 | |
| 	width: 68px;
 | |
| 	height: 68px;
 | |
| }
 | |
| callMuteButtonActive: CallButton {
 | |
| 	button: callMuteButtonActiveInner;
 | |
| 	bg: groupCallLive1;
 | |
| 	bgSize: 77px;
 | |
| 	bgPosition: point(18px, 18px);
 | |
| 	outerRadius: 18px;
 | |
| 	outerBg: callAnswerBgOuter;
 | |
| 	label: callMuteButtonLabel;
 | |
| }
 | |
| callMuteButton: CallMuteButton {
 | |
| 	active: callMuteButtonActive;
 | |
| 	muted: CallButton(callMuteButtonActive) {
 | |
| 		bg: groupCallMuted1;
 | |
| 		label: callMuteButtonLabel;
 | |
| 	}
 | |
| 	labelAdditional: 5px;
 | |
| 	sublabel: FlatLabel(defaultFlatLabel) {
 | |
| 		textFg: groupCallMemberNotJoinedStatus;
 | |
| 	}
 | |
| 	labelsSkip: 8px;
 | |
| 	sublabelSkip: 14px;
 | |
| 	lottieSize: size(54px, 54px);
 | |
| 	lottieTop: 31px;
 | |
| }
 | |
| callMuteButtonSmallActive: CallButton(callMuteButtonActive) {
 | |
| 	button: callMuteButtonSmallActiveInner;
 | |
| 	bgSize: 42px;
 | |
| 	bgPosition: point(13px, 13px);
 | |
| 	outerRadius: 13px;
 | |
| 	label: callButtonLabel;
 | |
| }
 | |
| callMuteButtonSmall: CallMuteButton(callMuteButton) {
 | |
| 	active: callMuteButtonSmallActive;
 | |
| 	muted: CallButton(callMuteButtonSmallActive) {
 | |
| 		bg: groupCallMuted1;
 | |
| 		label: callButtonLabel;
 | |
| 	}
 | |
| 	labelsSkip: 0px;
 | |
| 	sublabelSkip: 0px;
 | |
| 	lottieSize: size(36px, 36px);
 | |
| 	lottieTop: 17px;
 | |
| }
 | |
| 
 | |
| callMuteMinorBlobMinRadius: 64px;
 | |
| callMuteMinorBlobMaxRadius: 74px;
 | |
| callMuteMajorBlobMinRadius: 67px;
 | |
| callMuteMajorBlobMaxRadius: 77px;
 | |
| callMuteBlobRadiusForDiameter: 100px;
 | |
| 
 | |
| callMuteToFullScreen: icon {{ "player/player_fullscreen", groupCallIconFg }};
 | |
| callMuteFromFullScreen: icon {{ "player/player_minimize", groupCallIconFg }};
 | |
| 
 | |
| callConnectingRadial: InfiniteRadialAnimation(defaultInfiniteRadialAnimation) {
 | |
| 	color: lightButtonFg;
 | |
| 	thickness: 4px;
 | |
| }
 | |
| 
 | |
| callName: FlatLabel(defaultFlatLabel) {
 | |
| 	minWidth: 260px;
 | |
| 	maxHeight: 30px;
 | |
| 	textFg: callNameFg;
 | |
| 	align: align(top);
 | |
| 	style: TextStyle(defaultTextStyle) {
 | |
| 		font: font(21px semibold);
 | |
| 	}
 | |
| }
 | |
| callStatus: FlatLabel(defaultFlatLabel) {
 | |
| 	minWidth: 260px;
 | |
| 	maxHeight: 60px;
 | |
| 	textFg: callStatusFg;
 | |
| 	align: align(top);
 | |
| 	style: TextStyle(defaultTextStyle) {
 | |
| 		font: font(14px);
 | |
| 	}
 | |
| }
 | |
| callRemoteAudioMute: FlatLabel(callStatus) {
 | |
| 	minWidth: 0px;
 | |
| 	textFg: videoPlayIconFg;
 | |
| 	style: TextStyle(defaultTextStyle) {
 | |
| 		font: font(12px);
 | |
| 	}
 | |
| }
 | |
| callRemoteAudioMuteSkip: 12px;
 | |
| 
 | |
| callBarHeight: 38px;
 | |
| callBarMuteToggle: IconButton {
 | |
| 	width: 41px;
 | |
| 	height: 38px;
 | |
| 
 | |
| 	icon: icon {{ "calls/call_record_active", callBarFg }};
 | |
| 	iconPosition: point(3px, 2px);
 | |
| 
 | |
| 	ripple: RippleAnimation(defaultRippleAnimation) {
 | |
| 		color: callBarMuteRipple;
 | |
| 	}
 | |
| 	rippleAreaPosition: point(5px, 3px);
 | |
| 	rippleAreaSize: 32px;
 | |
| }
 | |
| callBarRightSkip: 12px;
 | |
| callBarSkip: 10px;
 | |
| callBarHangup: IconButton(callBarMuteToggle) {
 | |
| 	icon: icon {{ "calls/call_discard", callBarFg }};
 | |
| 	iconPosition: point(3px, 1px);
 | |
| }
 | |
| callBarLabel: LabelSimple(defaultLabelSimple) {
 | |
| 	font: semiboldFont;
 | |
| 	textFg: callBarFg;
 | |
| }
 | |
| callBarInfoLabel: FlatLabel(defaultFlatLabel) {
 | |
| 	maxHeight: 28px;
 | |
| 	align: align(top);
 | |
| 	textFg: callBarFg;
 | |
| 	style: TextStyle(defaultTextStyle) {
 | |
| 		font: semiboldFont;
 | |
| 	}
 | |
| }
 | |
| callBarLabelTop: 10px;
 | |
| 
 | |
| callArrowPosition: point(-2px, 1px);
 | |
| callArrowIn: icon {{ "calls/call_arrow_in", callArrowFg }};
 | |
| callArrowOut: icon {{ "calls/call_arrow_out", callArrowFg }};
 | |
| callArrowMissed: icon {{ "calls/call_arrow_in", callArrowMissedFg }};
 | |
| callArrowSkip: 4px;
 | |
| callReDial: IconButton {
 | |
| 	width: 40px;
 | |
| 	height: 56px;
 | |
| 
 | |
| 	icon: icon {{ "calls/call_answer", menuIconFg }};
 | |
| 	iconOver: icon {{ "calls/call_answer", menuIconFgOver }};
 | |
| 	iconPosition: point(-1px, -1px);
 | |
| 
 | |
| 	ripple: defaultRippleAnimation;
 | |
| 	rippleAreaPosition: point(0px, 8px);
 | |
| 	rippleAreaSize: 40px;
 | |
| }
 | |
| 
 | |
| callCameraReDial: IconButton(callReDial) {
 | |
| 	icon: icon {{ "calls/call_camera_active", menuIconFg }};
 | |
| 	iconOver: icon {{ "calls/call_camera_active", menuIconFgOver }};
 | |
| }
 | |
| callGroupCall: IconButton(callCameraReDial) {
 | |
| 	icon: icon {{ "top_bar_group_call", menuIconFg }};
 | |
| 	iconOver: icon {{ "top_bar_group_call", menuIconFgOver }};
 | |
| }
 | |
| 
 | |
| callRatingPadding: margins(24px, 12px, 24px, 0px);
 | |
| callRatingStar: IconButton {
 | |
| 	width: 36px;
 | |
| 	height: 36px;
 | |
| 
 | |
| 	icon: icon {{ "calls/call_rating", windowSubTextFg }};
 | |
| 	iconPosition: point(-1px, -1px);
 | |
| 
 | |
| 	ripple: RippleAnimation(defaultRippleAnimation) {
 | |
| 		color: windowBgOver;
 | |
| 	}
 | |
| 	rippleAreaPosition: point(0px, 0px);
 | |
| 	rippleAreaSize: 36px;
 | |
| }
 | |
| callRatingStarFilled: icon {{ "calls/call_rating_filled", lightButtonFg }};
 | |
| callRatingStarTop: 4px;
 | |
| callRatingComment: InputField(defaultInputField) {
 | |
| 	textMargins: margins(1px, 26px, 1px, 4px);
 | |
| 	heightMax: 135px;
 | |
| }
 | |
| callRatingCommentTop: 8px;
 | |
| 
 | |
| callDebugPadding: margins(24px, 0px, 24px, 0px);
 | |
| callDebugLabel: FlatLabel(defaultFlatLabel) {
 | |
| 	margin: callDebugPadding;
 | |
| }
 | |
| callPanelDuration: 150;
 | |
| 
 | |
| callPanelSignalBars: CallSignalBars {
 | |
| 	width: 2px;
 | |
| 	radius: 1px;
 | |
| 	skip: 2px;
 | |
| 	min: 4px;
 | |
| 	max: 10px;
 | |
| 	color: callNameFg;
 | |
| 	inactiveOpacity: 0.5;
 | |
| }
 | |
| callBarSignalBars: CallSignalBars(callPanelSignalBars) {
 | |
| 	width: 3px;
 | |
| 	skip: 1px;
 | |
| 	min: 3px;
 | |
| 	max: 12px;
 | |
| 	color: callBarFg;
 | |
| }
 | |
| 
 | |
| callTitleButton: windowTitleButton;
 | |
| callTitleMinimizeIcon: icon {
 | |
| 	{ "title_shadow_minimize", windowShadowFg },
 | |
| 	{ "title_button_minimize", callNameFg },
 | |
| };
 | |
| callTitleMinimizeIconOver: icon {
 | |
| 	{ windowTitleButtonSize, callBgButton },
 | |
| 	{ windowTitleButtonSize, callMuteRipple },
 | |
| 	{ "title_shadow_minimize", windowShadowFg },
 | |
| 	{ "title_button_minimize", callNameFg },
 | |
| };
 | |
| callTitleMaximizeIcon: icon {
 | |
| 	{ "title_shadow_maximize", windowShadowFg },
 | |
| 	{ "title_button_maximize", callNameFg },
 | |
| };
 | |
| callTitleMaximizeIconOver: icon {
 | |
| 	{ windowTitleButtonSize, callBgButton },
 | |
| 	{ windowTitleButtonSize, callMuteRipple },
 | |
| 	{ "title_shadow_maximize", windowShadowFg },
 | |
| 	{ "title_button_maximize", callNameFg },
 | |
| };
 | |
| callTitleRestoreIcon: icon {
 | |
| 	{ "title_shadow_restore", windowShadowFg },
 | |
| 	{ "title_button_restore", callNameFg },
 | |
| };
 | |
| callTitleRestoreIconOver: icon {
 | |
| 	{ windowTitleButtonSize, callBgButton },
 | |
| 	{ windowTitleButtonSize, callMuteRipple },
 | |
| 	{ "title_shadow_restore", windowShadowFg },
 | |
| 	{ "title_button_restore", callNameFg },
 | |
| };
 | |
| callTitleCloseIcon: icon {
 | |
| 	{ "title_shadow_close", windowShadowFg },
 | |
| 	{ "title_button_close", callNameFg },
 | |
| };
 | |
| callTitleCloseIconOver: icon {
 | |
| 	{ windowTitleButtonSize, titleButtonCloseBgOver },
 | |
| 	{ "title_shadow_close", windowShadowFg },
 | |
| 	{ "title_button_close", titleButtonCloseFgOver },
 | |
| };
 | |
| callTitle: WindowTitle(defaultWindowTitle) {
 | |
| 	height: 0px;
 | |
| 	bg: callBgOpaque;
 | |
| 	bgActive: callBgOpaque;
 | |
| 	fg: transparent;
 | |
| 	fgActive: transparent;
 | |
| 	minimize: IconButton(callTitleButton) {
 | |
| 		icon: callTitleMinimizeIcon;
 | |
| 		iconOver: callTitleMinimizeIconOver;
 | |
| 	}
 | |
| 	minimizeIconActive: callTitleMinimizeIcon;
 | |
| 	minimizeIconActiveOver: callTitleMinimizeIconOver;
 | |
| 	maximize: IconButton(callTitleButton) {
 | |
| 		icon: callTitleMaximizeIcon;
 | |
| 		iconOver: callTitleMaximizeIconOver;
 | |
| 	}
 | |
| 	maximizeIconActive: callTitleMaximizeIcon;
 | |
| 	maximizeIconActiveOver: callTitleMaximizeIconOver;
 | |
| 	restoreIcon: callTitleRestoreIcon;
 | |
| 	restoreIconOver: callTitleRestoreIconOver;
 | |
| 	restoreIconActive: callTitleRestoreIcon;
 | |
| 	restoreIconActiveOver: callTitleRestoreIconOver;
 | |
| 	close: IconButton(callTitleButton) {
 | |
| 		icon: callTitleCloseIcon;
 | |
| 		iconOver: callTitleCloseIconOver;
 | |
| 	}
 | |
| 	closeIconActive: callTitleCloseIcon;
 | |
| 	closeIconActiveOver: callTitleCloseIconOver;
 | |
| }
 | |
| callTitleShadowRight: icon {{ "calls/calls_shadow_controls", windowShadowFg }};
 | |
| callTitleShadowLeft: icon {{ "calls/calls_shadow_controls-flip_horizontal", windowShadowFg }};
 | |
| 
 | |
| callErrorToast: Toast(defaultToast) {
 | |
| 	minWidth: 240px;
 | |
| }
 | |
| 
 | |
| groupCallWidth: 380px;
 | |
| groupCallHeight: 580px;
 | |
| groupCallWidthRtmp: 720px;
 | |
| groupCallWidthRtmpMin: 240px;
 | |
| groupCallHeightRtmp: 580px;
 | |
| groupCallHeightRtmpMin: 160px;
 | |
| 
 | |
| groupCallRipple: RippleAnimation(defaultRippleAnimation) {
 | |
| 	color: groupCallMembersBgRipple;
 | |
| }
 | |
| 
 | |
| groupCallMenu: Menu(defaultMenu) {
 | |
| 	itemBg: groupCallMenuBg;
 | |
| 	itemBgOver: groupCallMenuBgOver;
 | |
| 	itemFg: groupCallMembersFg;
 | |
| 	itemFgOver: groupCallMembersFg;
 | |
| 	itemFgDisabled: groupCallMemberNotJoinedStatus;
 | |
| 	itemFgShortcut: groupCallMemberNotJoinedStatus;
 | |
| 	itemFgShortcutOver: groupCallMemberNotJoinedStatus;
 | |
| 	itemFgShortcutDisabled: groupCallMemberNotJoinedStatus;
 | |
| 
 | |
| 	separator: MenuSeparator(defaultMenuSeparator) {
 | |
| 		padding: margins(0px, 4px, 0px, 4px);
 | |
| 		fg: groupCallMenuBgOver;
 | |
| 	}
 | |
| 	arrow: icon {{ "menu/submenu_arrow", groupCallMemberNotJoinedStatus }};
 | |
| 
 | |
| 	ripple: RippleAnimation(defaultRippleAnimation) {
 | |
| 		color: groupCallMenuBgRipple;
 | |
| 	}
 | |
| }
 | |
| groupCallFinishMenu: Menu(groupCallMenu) {
 | |
| 	itemFg: groupCallMemberMutedIcon;
 | |
| 	itemFgOver: groupCallMemberMutedIcon;
 | |
| }
 | |
| groupCallMenuShadow: Shadow(defaultEmptyShadow) {
 | |
| 	fallback: groupCallMenuBg;
 | |
| }
 | |
| groupCallPanelAnimation: PanelAnimation(defaultPanelAnimation) {
 | |
| 	fadeBg: groupCallMenuBg;
 | |
| 	shadow: groupCallMenuShadow;
 | |
| }
 | |
| groupCallPopupMenu: PopupMenu(defaultPopupMenu) {
 | |
| 	shadow: groupCallMenuShadow;
 | |
| 	menu: groupCallMenu;
 | |
| 	animation: groupCallPanelAnimation;
 | |
| }
 | |
| groupCallPopupMenuWithVolume: PopupMenu(groupCallPopupMenu) {
 | |
| 	scrollPadding: margins(0px, 3px, 0px, 8px);
 | |
| 	menu: Menu(groupCallMenu) {
 | |
| 		widthMin: 210px;
 | |
| 	}
 | |
| }
 | |
| groupCallPopupVolumeMenu: Menu(groupCallMenu) {
 | |
| 	widthMin: 210px;
 | |
| 	itemBgOver: groupCallMenuBg;
 | |
| }
 | |
| groupCallMenuCoverSize: 240px;
 | |
| groupCallPopupCoverMenu: Menu(groupCallMenu) {
 | |
| 	widthMin: groupCallMenuCoverSize;
 | |
| 	widthMax: groupCallMenuCoverSize;
 | |
| 	itemBgOver: groupCallMenuBg;
 | |
| }
 | |
| groupCallPopupMenuWithCover: PopupMenu(groupCallPopupMenu) {
 | |
| 	scrollPadding: margins(0px, 0px, 0px, 8px);
 | |
| 	menu: Menu(groupCallMenu) {
 | |
| 		widthMin: groupCallMenuCoverSize;
 | |
| 		widthMax: groupCallMenuCoverSize;
 | |
| 	}
 | |
| }
 | |
| groupCallMenuCover: ShortInfoCover(shortInfoCover) {
 | |
| 	radius: roundRadiusSmall;
 | |
| 	size: groupCallMenuCoverSize;
 | |
| 	namePosition: point(17px, 28px);
 | |
| 	statusPosition: point(17px, 8px);
 | |
| }
 | |
| groupCallMenuAbout: FlatLabel(defaultFlatLabel) {
 | |
| 	textFg: groupCallMemberNotJoinedStatus;
 | |
| 	palette: TextPalette(defaultTextPalette) {
 | |
| 		linkFg: groupCallActiveFg;
 | |
| 	}
 | |
| 	minWidth: 200px;
 | |
| 	maxHeight: 92px;
 | |
| }
 | |
| 
 | |
| groupCallRecordingTimerPadding: margins(0px, 4px, 0px, 4px);
 | |
| groupCallRecordingTimerFont: font(12px);
 | |
| 
 | |
| groupCallInnerDropdown: InnerDropdown(defaultInnerDropdown) {
 | |
| 	shadow: groupCallMenuShadow;
 | |
| 	animation: groupCallPanelAnimation;
 | |
| 	bg: groupCallMenuBg;
 | |
| 	scroll: defaultSolidScroll;
 | |
| 	scrollPadding: margins(0px, 4px, 0px, 4px);
 | |
| }
 | |
| groupCallDropdownMenu: DropdownMenu(defaultDropdownMenu) {
 | |
| 	wrap: groupCallInnerDropdown;
 | |
| 	menu: groupCallMenu;
 | |
| }
 | |
| groupCallMembersListCheck: RoundCheckbox(defaultPeerListCheck) {
 | |
| 	border: groupCallMembersBg;
 | |
| 	bgActive: groupCallActiveFg;
 | |
| 	check: icon {{ "default_checkbox_check", groupCallMembersFg, point(3px, 6px) }};
 | |
| }
 | |
| groupCallMembersListCheckbox: RoundImageCheckbox(defaultPeerListCheckbox) {
 | |
| 	selectFg: groupCallActiveFg;
 | |
| 	check: groupCallMembersListCheck;
 | |
| }
 | |
| groupCallMembersListItem: PeerListItem(defaultPeerListItem) {
 | |
| 	button: OutlineButton(defaultPeerListButton) {
 | |
| 		textBg: groupCallMembersBg;
 | |
| 		textBgOver: groupCallMembersBgOver;
 | |
| 
 | |
| 		textFg: groupCallMemberInactiveStatus;
 | |
| 		textFgOver: groupCallMemberInactiveStatus;
 | |
| 
 | |
| 		font: normalFont;
 | |
| 		padding: margins(11px, 5px, 11px, 5px);
 | |
| 
 | |
| 		ripple: groupCallRipple;
 | |
| 	}
 | |
| 	disabledCheckFg: groupCallMemberNotJoinedStatus;
 | |
| 	checkbox: groupCallMembersListCheckbox;
 | |
| 	height: 52px;
 | |
| 	photoPosition: point(12px, 6px);
 | |
| 	namePosition: point(63px, 7px);
 | |
| 	statusPosition: point(63px, 26px);
 | |
| 	photoSize: 40px;
 | |
| 	nameFg: groupCallMembersFg;
 | |
| 	nameFgChecked: groupCallMembersFg;
 | |
| 	statusFg: groupCallMemberInactiveStatus;
 | |
| 	statusFgOver: groupCallMemberInactiveStatus;
 | |
| 	statusFgActive: groupCallMemberActiveStatus;
 | |
| }
 | |
| groupCallNarrowMembersListItem: PeerListItem(groupCallMembersListItem) {
 | |
| 	statusFg: groupCallMemberNotJoinedStatus;
 | |
| 	statusFgOver: groupCallMemberNotJoinedStatus;
 | |
| 	statusFgActive: groupCallMemberActiveStatus;
 | |
| }
 | |
| groupCallMembersList: PeerList(defaultPeerList) {
 | |
| 	bg: groupCallMembersBg;
 | |
| 	about: FlatLabel(defaultPeerListAbout) {
 | |
| 		textFg: groupCallMemberNotJoinedStatus;
 | |
| 	}
 | |
| 	item: groupCallMembersListItem;
 | |
| }
 | |
| groupCallInviteDividerPadding: margins(17px, 7px, 17px, 7px);
 | |
| groupCallInviteMembersListItem: PeerListItem(groupCallMembersListItem) {
 | |
| 	statusFg: groupCallMemberNotJoinedStatus;
 | |
| 	statusFgOver: groupCallMemberNotJoinedStatus;
 | |
| 	statusFgActive: groupCallMemberInactiveStatus;
 | |
| }
 | |
| groupCallInviteMembersList: PeerList(groupCallMembersList) {
 | |
| 	padding: margins(0px, 10px, 0px, 10px);
 | |
| 	item: groupCallInviteMembersListItem;
 | |
| }
 | |
| groupCallJoinAsList: PeerList(groupCallInviteMembersList) {
 | |
| 	item: PeerListItem(groupCallInviteMembersListItem) {
 | |
| 		height: 56px;
 | |
| 		checkbox: RoundImageCheckbox(groupCallMembersListCheckbox) {
 | |
| 			check: RoundCheckbox(groupCallMembersListCheck) {
 | |
| 				size: 0px;
 | |
| 			}
 | |
| 			imageRadius: 19px;
 | |
| 			imageSmallRadius: 15px;
 | |
| 			selectFg: groupCallMemberInactiveStatus;
 | |
| 		}
 | |
| 		photoSize: 38px;
 | |
| 		photoPosition: point(24px, 9px);
 | |
| 		namePosition: point(73px, 9px);
 | |
| 		statusPosition: point(73px, 28px);
 | |
| 	}
 | |
| }
 | |
| peerListJoinAsList: PeerList(peerListBox) {
 | |
| 	item: PeerListItem(peerListBoxItem) {
 | |
| 		height: 56px;
 | |
| 		checkbox: RoundImageCheckbox(defaultPeerListCheckbox) {
 | |
| 			check: RoundCheckbox(defaultRoundCheckbox) {
 | |
| 				size: 0px;
 | |
| 			}
 | |
| 			imageRadius: 19px;
 | |
| 			imageSmallRadius: 15px;
 | |
| 		}
 | |
| 		photoSize: 38px;
 | |
| 		photoPosition: point(24px, 9px);
 | |
| 		namePosition: point(73px, 9px);
 | |
| 		statusPosition: point(73px, 28px);
 | |
| 	}
 | |
| }
 | |
| groupCallMultiSelect: MultiSelect(defaultMultiSelect) {
 | |
| 	bg: groupCallMembersBg;
 | |
| 	item: MultiSelectItem(defaultMultiSelectItem) {
 | |
| 		textBg: groupCallMembersBgRipple;
 | |
| 		textFg: groupCallMembersFg;
 | |
| 		textActiveBg: groupCallActiveFg;
 | |
| 		textActiveFg: groupCallMembersFg;
 | |
| 		deleteFg: groupCallMembersFg;
 | |
| 	}
 | |
| 	field: InputField(defaultMultiSelectSearchField) {
 | |
| 		textFg: groupCallMembersFg;
 | |
| 		placeholderFg: groupCallMemberNotJoinedStatus;
 | |
| 		placeholderFgActive: groupCallMemberNotJoinedStatus;
 | |
| 		placeholderFgError: groupCallMemberNotJoinedStatus;
 | |
| 		menu: groupCallPopupMenu;
 | |
| 	}
 | |
| 	fieldIcon: icon {{ "box_search", groupCallMemberNotJoinedStatus, point(10px, 9px) }};
 | |
| 	fieldCancel: CrossButton(defaultMultiSelectSearchCancel) {
 | |
| 		crossFg: groupCallMemberNotJoinedStatus;
 | |
| 		crossFgOver: groupCallMemberNotJoinedStatus;
 | |
| 		ripple: groupCallRipple;
 | |
| 	}
 | |
| }
 | |
| groupCallField: InputField(defaultInputField) {
 | |
| 	textMargins: margins(2px, 7px, 2px, 0px);
 | |
| 
 | |
| 	textBg: transparent;
 | |
| 	textFg: groupCallMembersFg;
 | |
| 
 | |
| 	placeholderFg: groupCallMemberNotJoinedStatus;
 | |
| 	placeholderFgActive: groupCallMemberNotJoinedStatus;
 | |
| 	placeholderFgError: groupCallMemberNotJoinedStatus;
 | |
| 	placeholderMargins: margins(0px, 0px, 0px, 0px);
 | |
| 	placeholderScale: 0.;
 | |
| 	placeholderFont: normalFont;
 | |
| 	heightMin: 32px;
 | |
| 
 | |
| 	borderFg: inputBorderFg;
 | |
| 	borderFgActive: groupCallMemberInactiveStatus;
 | |
| 	borderFgError: activeLineFgError;
 | |
| 
 | |
| 	menu: groupCallPopupMenu;
 | |
| }
 | |
| groupCallShareBoxComment: InputField(groupCallField) {
 | |
| 	textMargins: margins(8px, 8px, 8px, 6px);
 | |
| 	heightMin: 36px;
 | |
| 	heightMax: 72px;
 | |
| 	placeholderMargins: margins(2px, 0px, 2px, 0px);
 | |
| 	border: 0px;
 | |
| 	borderActive: 0px;
 | |
| }
 | |
| groupCallShareBoxList: PeerList(groupCallMembersList) {
 | |
| 	item: PeerListItem(groupCallMembersListItem) {
 | |
| 		nameStyle: TextStyle(defaultTextStyle) {
 | |
| 			font: font(11px);
 | |
| 		}
 | |
| 		checkbox: RoundImageCheckbox(groupCallMembersListCheckbox) {
 | |
| 			imageRadius: 28px;
 | |
| 			imageSmallRadius: 24px;
 | |
| 		}
 | |
| 	}
 | |
| }
 | |
| 
 | |
| groupCallMembersTop: 51px;
 | |
| groupCallTitleTop: 8px;
 | |
| groupCallSubtitleTop: 26px;
 | |
| groupCallWideVideoTop: 24px;
 | |
| 
 | |
| groupCallAddMember: SettingsButton(defaultSettingsButton) {
 | |
| 	textFg: groupCallMemberNotJoinedStatus;
 | |
| 	textFgOver: groupCallMemberNotJoinedStatus;
 | |
| 	textBg: groupCallMembersBg;
 | |
| 	textBgOver: groupCallMembersBgOver;
 | |
| 
 | |
| 	style: semiboldTextStyle;
 | |
| 
 | |
| 	height: 22px;
 | |
| 	padding: margins(63px, 17px, 22px, 11px);
 | |
| 	iconLeft: 16px;
 | |
| 
 | |
| 	ripple: groupCallRipple;
 | |
| }
 | |
| groupCallAddMemberIcon: icon {{ "info/info_add_member", groupCallMemberInactiveIcon, point(0px, 3px) }};
 | |
| groupCallSubtitleLabel: FlatLabel(defaultFlatLabel) {
 | |
| 	maxHeight: 18px;
 | |
| 	textFg: groupCallMemberNotJoinedStatus;
 | |
| }
 | |
| groupCallTitleLabel: FlatLabel(groupCallSubtitleLabel) {
 | |
| 	textFg: groupCallMembersFg;
 | |
| 	style: TextStyle(defaultTextStyle) {
 | |
| 		font: font(semibold 14px);
 | |
| 	}
 | |
| }
 | |
| groupCallTitleSeparator: 4px;
 | |
| groupCallVideoLimitLabel: FlatLabel(defaultFlatLabel) {
 | |
| 	align: align(top);
 | |
| 	textFg: groupCallMemberNotJoinedStatus;
 | |
| 	style: semiboldTextStyle;
 | |
| 	minWidth: 96px;
 | |
| }
 | |
| groupCallMembersWidthMax: 480px;
 | |
| groupCallRecordingMark: 6px;
 | |
| groupCallRecordingMarkSkip: 4px;
 | |
| groupCallRecordingMarkTop: 8px;
 | |
| 
 | |
| groupCallMenuTogglePosition: point(13px, 8px);
 | |
| groupCallMenuToggle: IconButton {
 | |
| 	width: 36px;
 | |
| 	height: 36px;
 | |
| 
 | |
| 	icon: icon {{ "info/edit/dotsmini", groupCallMemberInactiveIcon }};
 | |
| 	iconOver: icon {{ "info/edit/dotsmini", groupCallMemberInactiveIcon }};
 | |
| 	iconPosition: point(2px, 2px);
 | |
| 
 | |
| 	rippleAreaPosition: point(3px, 3px);
 | |
| 	rippleAreaSize: 30px;
 | |
| 	ripple: RippleAnimation(defaultRippleAnimation) {
 | |
| 		color: groupCallMembersBg;
 | |
| 	}
 | |
| }
 | |
| groupCallJoinAsToggle: UserpicButton(defaultUserpicButton) {
 | |
| 	size: size(36px, 36px);
 | |
| 	photoSize: 30px;
 | |
| 	photoPosition: point(3px, 3px);
 | |
| }
 | |
| groupCallMenuPosition: point(-1px, 29px);
 | |
| groupCallWideMenuPosition: point(-2px, 28px);
 | |
| 
 | |
| groupCallActiveButton: IconButton {
 | |
| 	width: 36px;
 | |
| 	height: 52px;
 | |
| 
 | |
| 	icon: icon {{ "calls/group_calls_unmuted", groupCallMemberInactiveIcon }};
 | |
| 	iconOver: icon {{ "calls/group_calls_unmuted", groupCallMemberInactiveIcon }};
 | |
| 	iconPosition: point(-1px, -1px);
 | |
| 
 | |
| 	ripple: groupCallRipple;
 | |
| 	rippleAreaPosition: point(0px, 8px);
 | |
| 	rippleAreaSize: 36px;
 | |
| }
 | |
| groupCallMemberButtonSkip: 10px;
 | |
| 
 | |
| groupCallMemberInactiveCrossLine: CrossLineAnimation {
 | |
| 	fg: groupCallMemberInactiveIcon;
 | |
| 	icon: icon {{ "calls/group_calls_unmuted", groupCallMemberInactiveIcon }};
 | |
| 	startPosition: point(5px, 2px);
 | |
| 	endPosition: point(20px, 17px);
 | |
| 	stroke: 2px;
 | |
| }
 | |
| groupCallMemberColoredCrossLine: CrossLineAnimation(groupCallMemberInactiveCrossLine) {
 | |
| 	fg: groupCallMemberMutedIcon;
 | |
| 	icon: icon {{ "calls/group_calls_unmuted", groupCallMemberActiveIcon }};
 | |
| }
 | |
| groupCallMemberInvited: icon {{ "calls/group_calls_invited", groupCallMemberInactiveIcon }};
 | |
| groupCallMemberInvitedPosition: point(2px, 12px);
 | |
| groupCallMemberRaisedHand: icon {{ "calls/group_calls_raised_hand", groupCallMemberInactiveStatus }};
 | |
| 
 | |
| groupCallSettingsInner: IconButton(callButton) {
 | |
| 	iconPosition: point(-1px, 22px);
 | |
| 	icon: icon {{ "calls/calls_settings", groupCallIconFg }};
 | |
| 	ripple: RippleAnimation(defaultRippleAnimation) {
 | |
| 		color: callMuteRipple;
 | |
| 	}
 | |
| }
 | |
| groupCallShareInner: IconButton(groupCallSettingsInner) {
 | |
| 	icon: icon {{ "calls/group_calls_share", groupCallIconFg }};
 | |
| }
 | |
| groupCallVideoInner: IconButton(groupCallSettingsInner) {
 | |
| 	icon: icon {{ "calls/call_camera_muted", groupCallIconFg }};
 | |
| 	iconPosition: point(-1px, 16px);
 | |
| }
 | |
| groupCallHangupInner: IconButton(callButton) {
 | |
| 	icon: icon {{ "calls/call_discard", groupCallIconFg }};
 | |
| 	ripple: RippleAnimation(defaultRippleAnimation) {
 | |
| 		color: groupCallLeaveBgRipple;
 | |
| 	}
 | |
| }
 | |
| groupCallSettings: CallButton(callMicrophoneMute) {
 | |
| 	button: groupCallSettingsInner;
 | |
| }
 | |
| groupCallShare: CallButton(groupCallSettings) {
 | |
| 	button: groupCallShareInner;
 | |
| }
 | |
| groupCallVideo: CallButton(groupCallSettings) {
 | |
| 	button: groupCallVideoInner;
 | |
| }
 | |
| groupCallVideoInnerActive: IconButton(groupCallVideoInner) {
 | |
| 	icon: icon {{ "calls/call_camera_active", groupCallIconFg }};
 | |
| }
 | |
| groupCallVideoActive: CallButton(groupCallVideo) {
 | |
| 	button: groupCallVideoInnerActive;
 | |
| }
 | |
| groupCallHangup: CallButton(callHangup) {
 | |
| 	button: groupCallHangupInner;
 | |
| 	bg: groupCallLeaveBg;
 | |
| 	outerBg: groupCallLeaveBg;
 | |
| 	label: callButtonLabel;
 | |
| }
 | |
| groupCallSettingsSmall: CallButton(groupCallSettings) {
 | |
| 	button: IconButton(groupCallSettingsInner) {
 | |
| 		width: 60px;
 | |
| 		height: 68px;
 | |
| 		rippleAreaPosition: point(8px, 12px);
 | |
| 	}
 | |
| 	bgPosition: point(8px, 12px);
 | |
| }
 | |
| groupCallHangupSmall: CallButton(groupCallHangup) {
 | |
| 	button: IconButton(groupCallHangupInner) {
 | |
| 		width: 60px;
 | |
| 		height: 68px;
 | |
| 		rippleAreaPosition: point(8px, 12px);
 | |
| 	}
 | |
| 	bgPosition: point(8px, 12px);
 | |
| }
 | |
| groupCallVideoSmall: CallButton(groupCallSettingsSmall) {
 | |
| 	button: IconButton(groupCallVideoInner) {
 | |
| 		width: 60px;
 | |
| 		height: 68px;
 | |
| 		rippleAreaPosition: point(8px, 12px);
 | |
| 	}
 | |
| }
 | |
| groupCallVideoActiveSmall: CallButton(groupCallVideoSmall) {
 | |
| 	button: IconButton(groupCallVideoInnerActive) {
 | |
| 		width: 60px;
 | |
| 		height: 68px;
 | |
| 		rippleAreaPosition: point(8px, 12px);
 | |
| 	}
 | |
| }
 | |
| groupCallScreenShareSmall: CallButton(groupCallSettingsSmall) {
 | |
| 	button: IconButton(groupCallSettingsInner) {
 | |
| 		icon: icon {{ "calls/calls_present", groupCallIconFg }};
 | |
| 		width: 60px;
 | |
| 		height: 68px;
 | |
| 		rippleAreaPosition: point(8px, 12px);
 | |
| 	}
 | |
| }
 | |
| groupCallMenuToggleSmall: CallButton(groupCallSettingsSmall) {
 | |
| 	button: IconButton(groupCallSettingsInner) {
 | |
| 		icon: icon {{ "calls/calls_more", groupCallIconFg }};
 | |
| 		width: 60px;
 | |
| 		height: 68px;
 | |
| 		rippleAreaPosition: point(8px, 12px);
 | |
| 	}
 | |
| }
 | |
| groupCallButtonSkip: 40px;
 | |
| groupCallButtonSkipSmall: 5px;
 | |
| groupCallButtonBottomSkip: 113px;
 | |
| groupCallButtonBottomSkipWide: 108px;
 | |
| groupCallControlsBackMargin: margins(10px, 0px, 10px, 0px);
 | |
| groupCallControlsBackRadius: 12px;
 | |
| groupCallMuteBottomSkip: 116px;
 | |
| 
 | |
| groupCallMembersMargin: margins(16px, 16px, 16px, 60px);
 | |
| groupCallMembersTopSkip: 6px;
 | |
| groupCallMembersBottomSkip: 80px;
 | |
| groupCallMembersShadowHeight: 160px;
 | |
| groupCallMembersFadeSkip: 10px;
 | |
| groupCallMembersFadeHeight: 100px;
 | |
| 
 | |
| groupCallTopBarUserpics: GroupCallUserpics {
 | |
| 	size: 28px;
 | |
| 	shift: 8px;
 | |
| 	stroke: 2px;
 | |
| 	align: align(left);
 | |
| }
 | |
| groupCallTopBarJoin: RoundButton(defaultActiveButton) {
 | |
| 	width: -26px;
 | |
| 	height: 26px;
 | |
| 	textTop: 4px;
 | |
| }
 | |
| groupCallTopBarOpen: RoundButton(groupCallTopBarJoin) {
 | |
| 	ripple: universalRippleAnimation;
 | |
| }
 | |
| groupCallBoxButton: RoundButton(defaultBoxButton) {
 | |
| 	textFg: groupCallActiveFg;
 | |
| 	textFgOver: groupCallActiveFg;
 | |
| 	numbersTextFg: groupCallActiveFg;
 | |
| 	numbersTextFgOver: groupCallActiveFg;
 | |
| 	textBg: groupCallMembersBg;
 | |
| 	textBgOver: groupCallMembersBgOver;
 | |
| 
 | |
| 	ripple: groupCallRipple;
 | |
| }
 | |
| groupCallBox: Box(defaultBox) {
 | |
| 	button: groupCallBoxButton;
 | |
| 	margin: margins(0px, 56px, 0px, 10px);
 | |
| 	bg: groupCallMembersBg;
 | |
| 	title: FlatLabel(boxTitle) {
 | |
| 		textFg: groupCallMembersFg;
 | |
| 	}
 | |
| 	titleAdditionalFg: groupCallMemberNotJoinedStatus;
 | |
| }
 | |
| groupCallLayerBox: Box(groupCallBox) {
 | |
| 	buttonPadding: margins(8px, 8px, 8px, 8px);
 | |
| }
 | |
| groupCallLevelMeter: LevelMeter(defaultLevelMeter) {
 | |
| 	height: 18px;
 | |
| 	lineWidth: 3px;
 | |
| 	lineSpacing: 5px;
 | |
| 	lineCount: 44;
 | |
| 	activeFg: groupCallActiveFg;
 | |
| 	inactiveFg: groupCallMembersBgRipple;
 | |
| }
 | |
| groupCallCheckboxIcon: icon {{ "default_checkbox_check", groupCallMembersFg, point(4px, 7px) }};
 | |
| groupCallCheck: Check(defaultCheck) {
 | |
| 	untoggledFg: groupCallMemberNotJoinedStatus;
 | |
| 	toggledFg: groupCallActiveFg;
 | |
| 	icon: groupCallCheckboxIcon;
 | |
| }
 | |
| groupCallRadio: Radio(defaultRadio) {
 | |
| 	untoggledFg: groupCallMemberNotJoinedStatus;
 | |
| 	toggledFg: groupCallActiveFg;
 | |
| }
 | |
| groupCallCheckbox: Checkbox(defaultBoxCheckbox) {
 | |
| 	textFg: groupCallMembersFg;
 | |
| 	textFgActive: groupCallMembersFg;
 | |
| 	rippleBg: groupCallMembersBgRipple;
 | |
| 	rippleBgActive: groupCallMembersBgRipple;
 | |
| }
 | |
| 
 | |
| groupCallSettingsToggle: Toggle(defaultToggle) {
 | |
| 	toggledBg: groupCallMembersBg;
 | |
| 	toggledFg: groupCallActiveFg;
 | |
| 	untoggledBg: groupCallMembersBg;
 | |
| 	untoggledFg: groupCallMemberNotJoinedStatus;
 | |
| }
 | |
| groupCallSettingsButton: SettingsButton(defaultSettingsButton) {
 | |
| 	padding: margins(24px, 10px, 24px, 8px);
 | |
| 	textFg: groupCallMembersFg;
 | |
| 	textFgOver: groupCallMembersFg;
 | |
| 	textBg: groupCallMembersBg;
 | |
| 	textBgOver: groupCallMembersBgOver;
 | |
| 	rightLabel: FlatLabel(defaultSettingsRightLabel) {
 | |
| 		textFg: groupCallActiveFg;
 | |
| 	}
 | |
| 	toggle: groupCallSettingsToggle;
 | |
| 	toggleOver: groupCallSettingsToggle;
 | |
| 	ripple: groupCallRipple;
 | |
| }
 | |
| groupCallSettingsAttentionButton: SettingsButton(groupCallSettingsButton) {
 | |
| 	textFg: attentionButtonFg;
 | |
| 	textFgOver: attentionButtonFgOver;
 | |
| }
 | |
| groupCallBoxLabel: FlatLabel(boxLabel) {
 | |
| 	minWidth: 200px;
 | |
| 	textFg: groupCallMembersFg;
 | |
| }
 | |
| groupCallJoinAsLabel: FlatLabel(defaultFlatLabel) {
 | |
| 	minWidth: 272px;
 | |
| 	textFg: groupCallMembersFg;
 | |
| }
 | |
| groupCallJoinAsWidth: 330px;
 | |
| groupCallJoinAsTextTop: 4px;
 | |
| groupCallJoinAsNameTop: 23px;
 | |
| groupCallJoinAsPadding: margins(12px, 8px, 12px, 7px);
 | |
| groupCallJoinAsPhotoSize: 30px;
 | |
| 
 | |
| groupCallRowBlobMinRadius: 27px;
 | |
| groupCallRowBlobMaxRadius: 29px;
 | |
| 
 | |
| groupCallDelayLabel: LabelSimple(defaultLabelSimple) {
 | |
| 	textFg: groupCallMembersFg;
 | |
| 	font: boxTextFont;
 | |
| }
 | |
| groupCallDelayLabelMargin: margins(22px, 10px, 20px, 5px);
 | |
| groupCallDelaySlider: MediaSlider(defaultContinuousSlider) {
 | |
| 	seekSize: size(15px, 15px);
 | |
| 	activeFg: groupCallActiveFg;
 | |
| 	inactiveFg: groupCallMemberNotJoinedStatus;
 | |
| 	activeFgOver: groupCallActiveFg;
 | |
| 	inactiveFgOver: groupCallMemberNotJoinedStatus;
 | |
| 	activeFgDisabled: groupCallActiveFg;
 | |
| 	inactiveFgDisabled: groupCallMemberNotJoinedStatus;
 | |
| 	receivedTillFg: groupCallMemberNotJoinedStatus;
 | |
| }
 | |
| groupCallDelayMargin: margins(22px, 5px, 20px, 10px);
 | |
| 
 | |
| groupCallTitleButton: IconButton {
 | |
| 	width: windowTitleButtonWidth;
 | |
| 	height: windowTitleHeight;
 | |
| 	iconPosition: point(0px, 0px);
 | |
| }
 | |
| groupCallTitleMinimizeIcon: icon {
 | |
| 	{ "title_button_minimize", groupCallMemberNotJoinedStatus },
 | |
| };
 | |
| groupCallTitleMinimizeIconOver: icon {
 | |
| 	{ windowTitleButtonSize, groupCallMembersBgOver },
 | |
| 	{ "title_button_minimize", groupCallMembersFg },
 | |
| };
 | |
| groupCallTitleMaximizeIcon: icon {
 | |
| 	{ "title_button_maximize", groupCallMemberNotJoinedStatus },
 | |
| };
 | |
| groupCallTitleMaximizeIconOver: icon {
 | |
| 	{ windowTitleButtonSize, groupCallMembersBgOver },
 | |
| 	{ "title_button_maximize", groupCallMembersFg },
 | |
| };
 | |
| groupCallTitleRestoreIcon: icon {
 | |
| 	{ "title_button_restore", groupCallMemberNotJoinedStatus },
 | |
| };
 | |
| groupCallTitleRestoreIconOver: icon {
 | |
| 	{ windowTitleButtonSize, groupCallMembersBgOver },
 | |
| 	{ "title_button_restore", groupCallMembersFg },
 | |
| };
 | |
| groupCallTitleCloseIcon: icon {
 | |
| 	{ "title_button_close", groupCallMemberNotJoinedStatus },
 | |
| };
 | |
| groupCallTitleCloseIconOver: icon {
 | |
| 	{ windowTitleButtonSize, titleButtonCloseBgOver },
 | |
| 	{ "title_button_close", titleButtonCloseFgOver },
 | |
| };
 | |
| groupCallTitle: WindowTitle(defaultWindowTitle) {
 | |
| 	height: 0px;
 | |
| 	bg: groupCallBg;
 | |
| 	bgActive: groupCallBg;
 | |
| 	fg: transparent;
 | |
| 	fgActive: transparent;
 | |
| 	minimize: IconButton(groupCallTitleButton) {
 | |
| 		icon: groupCallTitleMinimizeIcon;
 | |
| 		iconOver: groupCallTitleMinimizeIconOver;
 | |
| 	}
 | |
| 	minimizeIconActive: groupCallTitleMinimizeIcon;
 | |
| 	minimizeIconActiveOver: groupCallTitleMinimizeIconOver;
 | |
| 	maximize: IconButton(groupCallTitleButton) {
 | |
| 		icon: groupCallTitleMaximizeIcon;
 | |
| 		iconOver: groupCallTitleMaximizeIconOver;
 | |
| 	}
 | |
| 	maximizeIconActive: groupCallTitleMaximizeIcon;
 | |
| 	maximizeIconActiveOver: groupCallTitleMaximizeIconOver;
 | |
| 	restoreIcon: groupCallTitleRestoreIcon;
 | |
| 	restoreIconOver: groupCallTitleRestoreIconOver;
 | |
| 	restoreIconActive: groupCallTitleRestoreIcon;
 | |
| 	restoreIconActiveOver: groupCallTitleRestoreIconOver;
 | |
| 	close: IconButton(groupCallTitleButton) {
 | |
| 		icon: groupCallTitleCloseIcon;
 | |
| 		iconOver: groupCallTitleCloseIconOver;
 | |
| 	}
 | |
| 	closeIconActive: groupCallTitleCloseIcon;
 | |
| 	closeIconActiveOver: groupCallTitleCloseIconOver;
 | |
| }
 | |
| groupCallPinOnTop: IconButton(groupCallTitleButton) {
 | |
| 	icon: icon{{ "calls/navbar_pin", groupCallMemberNotJoinedStatus }};
 | |
| 	iconOver: icon{{ "calls/navbar_pin", groupCallMembersFg }};
 | |
| 	iconPosition: point(0px, 2px);
 | |
| }
 | |
| groupCallPinnedOnTop: icon{{ "calls/navbar_pin_filled", groupCallMembersFg }};
 | |
| 
 | |
| groupCallMajorBlobMaxRadius: 4px;
 | |
| 
 | |
| groupCallMinorBlobIdleRadius: 3px;
 | |
| groupCallMinorBlobMaxRadius: 12px;
 | |
| 
 | |
| groupCallMuteCrossLine: CrossLineAnimation {
 | |
| 	fg: groupCallIconFg;
 | |
| 	icon: icon {{ "calls/volume/speaker", groupCallIconFg }};
 | |
| 	startPosition: point(2px, 5px);
 | |
| 	endPosition: point(16px, 19px);
 | |
| 	stroke: 2px;
 | |
| }
 | |
| 
 | |
| groupCallMenuSpeakerArcsSkip: 1px;
 | |
| groupCallMenuVolumePadding: margins(17px, 6px, 17px, 5px);
 | |
| groupCallMenuVolumeMargin: margins(55px, 0px, 15px, 0px);
 | |
| groupCallMenuVolumeSlider: MediaSlider(defaultContinuousSlider) {
 | |
| 	activeFg: groupCallMembersFg;
 | |
| 	inactiveFg: groupCallMembersBgOver;
 | |
| 	activeFgOver: groupCallMembersFg;
 | |
| 	inactiveFgOver: groupCallMembersBgOver;
 | |
| 	activeFgDisabled: groupCallMembersBgOver;
 | |
| 	receivedTillFg: groupCallMembersBgOver;
 | |
| 	width: 7px;
 | |
| 	seekSize: size(7px, 7px);
 | |
| }
 | |
| 
 | |
| groupCallSpeakerArcsAnimation: ArcsAnimation {
 | |
| 	fg: groupCallIconFg;
 | |
| 	stroke: 2px;
 | |
| 	space: 4px;
 | |
| 	duration: 200;
 | |
| 	deltaAngle: 60;
 | |
| 	deltaHeight: 6px;
 | |
| 	deltaWidth: 7px;
 | |
| 	startHeight: 3px;
 | |
| 	startWidth: 0px;
 | |
| }
 | |
| 
 | |
| groupCallStatusSpeakerIcon: icon {{ "calls/volume/speaker_small", groupCallIconFg }};
 | |
| groupCallStatusSpeakerArcsSkip: 3px;
 | |
| groupCallStatusSpeakerArcsAnimation: ArcsAnimation(groupCallSpeakerArcsAnimation) {
 | |
| 	deltaAngle: 68;
 | |
| 	space: 3px;
 | |
| 	deltaHeight: 5px;
 | |
| 	deltaWidth: 4px;
 | |
| 	startHeight: 1px;
 | |
| }
 | |
| 
 | |
| groupCallShareMutedMargin: margins(16px, 16px, 16px, 8px);
 | |
| 
 | |
| callTopBarMuteCrossLine: CrossLineAnimation {
 | |
| 	fg: callBarFg;
 | |
| 	icon: icon {{ "calls/call_record_active", callBarFg }};
 | |
| 	startPosition: point(11px, 8px);
 | |
| 	endPosition: point(26px, 23px);
 | |
| 	stroke: 2px;
 | |
| }
 | |
| 
 | |
| groupCallStartsIn: FlatLabel(defaultFlatLabel) {
 | |
| 	style: TextStyle(defaultTextStyle) {
 | |
| 		font: font(20px semibold);
 | |
| 	}
 | |
| 	textFg: groupCallMembersFg;
 | |
| }
 | |
| groupCallScheduledBodyHeight: 200px;
 | |
| groupCallStartsWhen: groupCallStartsIn;
 | |
| groupCallStartsInTop: 10px;
 | |
| groupCallStartsWhenTop: 160px;
 | |
| groupCallCountdownFont: font(64px semibold);
 | |
| groupCallCountdownTop: 52px;
 | |
| 
 | |
| desktopCaptureMargins: margins(12px, 8px, 12px, 6px);
 | |
| desktopCaptureSourceSize: size(235px, 165px);
 | |
| desktopCaptureSourceSkips: size(2px, 10px);
 | |
| desktopCaptureSourceTitle: WindowTitle(groupCallTitle) {
 | |
| 	bg: groupCallMembersBgOver;
 | |
| 	bgActive: groupCallMembersBgOver;
 | |
| 	height: windowTitleHeight;
 | |
| }
 | |
| desktopCapturePadding: margins(7px, 7px, 7px, 33px);
 | |
| desktopCaptureLabelBottom: 7px;
 | |
| desktopCaptureLabel: FlatLabel(defaultFlatLabel) {
 | |
| 	minWidth: 200px;
 | |
| 	maxHeight: 20px;
 | |
| 	textFg: groupCallMembersFg;
 | |
| 	style: semiboldTextStyle;
 | |
| }
 | |
| desktopCaptureCancel: RoundButton(defaultBoxButton) {
 | |
| 	textFg: groupCallActiveFg;
 | |
| 	textFgOver: groupCallActiveFg;
 | |
| 	numbersTextFg: groupCallActiveFg;
 | |
| 	numbersTextFgOver: groupCallActiveFg;
 | |
| 	textBg: groupCallMembersBg;
 | |
| 	textBgOver: groupCallMembersBgOver;
 | |
| 
 | |
| 	ripple: groupCallRipple;
 | |
| }
 | |
| desktopCaptureFinish: RoundButton(desktopCaptureCancel) {
 | |
| 	textFg: groupCallMemberMutedIcon;
 | |
| 	textFgOver: groupCallMemberMutedIcon;
 | |
| }
 | |
| desktopCaptureSubmit: RoundButton(desktopCaptureCancel) {
 | |
| 	textFg: groupCallIconFg;
 | |
| 	textFgOver: groupCallIconFg;
 | |
| 	numbersTextFg: groupCallIconFg;
 | |
| 	numbersTextFgOver: groupCallIconFg;
 | |
| 	textBg: groupCallMuted1;
 | |
| 	textBgOver: groupCallMuted1;
 | |
| 
 | |
| 	ripple: universalRippleAnimation;
 | |
| }
 | |
| desktopCaptureWithAudio: Checkbox(defaultCheckbox) {
 | |
| 	textFg: groupCallMembersFg;
 | |
| 	textFgActive: groupCallMembersFg;
 | |
| 	rippleBg: groupCallMembersBgRipple;
 | |
| 	rippleBgActive: groupCallMembersBgRipple;
 | |
| 	style: semiboldTextStyle;
 | |
| }
 | |
| 
 | |
| groupCallNarrowSkip: 9px;
 | |
| groupCallNarrowMembersWidth: 204px;
 | |
| groupCallNarrowVideoHeight: 120px;
 | |
| groupCallWideModeWidthMin: 600px;
 | |
| groupCallWideModeSize: size(960px, 580px);
 | |
| groupCallNarrowInactiveCrossLine: CrossLineAnimation {
 | |
| 	fg: groupCallMemberNotJoinedStatus;
 | |
| 	icon: icon {{ "calls/video_mini_mute", groupCallMemberNotJoinedStatus }};
 | |
| 	startPosition: point(3px, 0px);
 | |
| 	endPosition: point(13px, 12px);
 | |
| 	stroke: 3px;
 | |
| 	strokeDenominator: 2;
 | |
| }
 | |
| groupCallNarrowColoredCrossLine: CrossLineAnimation(groupCallNarrowInactiveCrossLine) {
 | |
| 	fg: groupCallMemberNotJoinedStatus;
 | |
| 	icon: icon {{ "calls/video_mini_mute", groupCallMemberActiveStatus }};
 | |
| }
 | |
| groupCallNarrowRaisedHand: icon {{ "calls/video_mini_speak", groupCallMemberInactiveStatus }};
 | |
| groupCallNarrowCameraIcon: icon {{ "calls/video_mini_video", groupCallMemberNotJoinedStatus }};
 | |
| groupCallNarrowScreenIcon: icon {{ "calls/video_mini_screencast", groupCallMemberNotJoinedStatus }};
 | |
| groupCallNarrowInvitedIcon: icon {{ "calls/video_mini_invited", groupCallMemberNotJoinedStatus }};
 | |
| groupCallNarrowIconPosition: point(-4px, 2px);
 | |
| groupCallNarrowIconSkip: 15px;
 | |
| groupCallOutline: 2px;
 | |
| groupCallVideoCrossLine: CrossLineAnimation(groupCallMemberColoredCrossLine) {
 | |
| 	fg: groupCallVideoTextFg;
 | |
| 	icon: icon {{ "calls/video_over_mute", groupCallVideoTextFg }};
 | |
| }
 | |
| 
 | |
| GroupCallVideoTile {
 | |
| 	shadowHeight: pixels;
 | |
| 	namePosition: point;
 | |
| 	pin: CrossLineAnimation;
 | |
| 	pinPosition: point;
 | |
| 	pinPadding: margins;
 | |
| 	pinTextPosition: point;
 | |
| 	back: icon;
 | |
| 	iconPosition: point;
 | |
| }
 | |
| 
 | |
| groupCallVideoTile: GroupCallVideoTile {
 | |
| 	shadowHeight: 40px;
 | |
| 	namePosition: point(15px, 8px);
 | |
| 	pin: CrossLineAnimation {
 | |
| 		fg: groupCallVideoTextFg;
 | |
| 		icon: icon {{ "calls/video_over_pin", groupCallVideoTextFg }};
 | |
| 		startPosition: point(7px, 4px);
 | |
| 		endPosition: point(17px, 14px);
 | |
| 		stroke: 3px;
 | |
| 		strokeDenominator: 2;
 | |
| 	}
 | |
| 	pinPosition: point(18px, 18px);
 | |
| 	pinPadding: margins(6px, 2px, 12px, 1px);
 | |
| 	pinTextPosition: point(1px, 3px);
 | |
| 	back: icon {{ "calls/video_back", groupCallVideoTextFg }};
 | |
| 	iconPosition: point(10px, 5px);
 | |
| }
 | |
| 
 | |
| groupCallVideoSmallSkip: 4px;
 | |
| groupCallVideoLargeSkip: 6px;
 | |
| groupCallVideoPlaceholderHeight: 212px;
 | |
| groupCallVideoPlaceholderIconTop: 50px;
 | |
| groupCallVideoPlaceholderTextTop: 120px;
 | |
| 
 | |
| groupCallTooltip: Tooltip(defaultTooltip) {
 | |
| 	textBg: groupCallMembersBg;
 | |
| 	textFg: groupCallMembersFg;
 | |
| 	textBorder: groupCallMembersBgOver;
 | |
| }
 | |
| groupCallNiceTooltip: ImportantTooltip(defaultImportantTooltip) {
 | |
| 	bg: importantTooltipBg;
 | |
| 	padding: margins(10px, 3px, 10px, 5px);
 | |
| 	radius: 4px;
 | |
| 	arrow: 4px;
 | |
| }
 | |
| groupCallNiceTooltipLabel: defaultImportantTooltipLabel;
 | |
| groupCallStickedTooltip: ImportantTooltip(groupCallNiceTooltip) {
 | |
| 	padding: margins(10px, 1px, 6px, 3px);
 | |
| }
 | |
| groupCallStickedTooltipClose: IconButton(defaultIconButton) {
 | |
| 	width: 20px;
 | |
| 	height: 20px;
 | |
| 	iconPosition: point(4px, 3px);
 | |
| 	icon: icon {{ "calls/video_tooltip", importantTooltipFg }};
 | |
| 	iconOver: icon {{ "calls/video_tooltip", importantTooltipFg }};
 | |
| 	ripple: emptyRippleAnimation;
 | |
| }
 | |
| groupCallNiceTooltipTop: 4px;
 | |
| groupCallPaused: icon {{ "calls/video_large_paused", groupCallVideoTextFg }};
 | |
| 
 | |
| groupCallRecordingSubLabel: FlatLabel(boxDividerLabel) {
 | |
| 	margin: margins(0px, 0px, 0px, 0px);
 | |
| 	textFg: groupCallMemberNotJoinedStatus;
 | |
| 	align: align(top);
 | |
| }
 | |
| groupCallRecordingInfoMargins: margins(0px, 22px, 0px, 22px);
 | |
| groupCallRecordingSubLabelMargins: margins(8px, 22px, 8px, 22px);
 | |
| groupCallRecordingAudioSkip: 23px;
 | |
| groupCallRecordingSelectWidth: 2px;
 | |
| groupCallRecordingInfoHeight: 204px;
 | |
| 
 | |
| groupCallRtmpCopyButton: RoundButton(defaultActiveButton) {
 | |
| 	height: 32px;
 | |
| 	width: -26px;
 | |
| 
 | |
| 	textTop: 7px;
 | |
| }
 | |
| groupCallRtmpCopyButtonTopSkip: 12px;
 | |
| groupCallRtmpCopyButtonBottomSkip: 15px;
 | |
| 
 | |
| groupCallRtmpShowButton: IconButton(defaultIconButton) {
 | |
| 	width: 32px;
 | |
| 	height: 32px;
 | |
| 
 | |
| 	icon: icon {{ "menu/show_in_chat", menuIconFg }};
 | |
| 	iconOver: icon {{ "menu/show_in_chat", menuIconFgOver }};
 | |
| 	iconPosition: point(4px, 4px);
 | |
| 
 | |
| 	rippleAreaPosition: point(0px, 0px);
 | |
| 	rippleAreaSize: 32px;
 | |
| 	ripple: RippleAnimation(defaultRippleAnimation) {
 | |
| 		color: windowBgOver;
 | |
| 	}
 | |
| }
 | |
| groupCallSettingsRtmpShowButton: IconButton(groupCallRtmpShowButton) {
 | |
| 	ripple: groupCallRipple;
 | |
| }
 | |
| groupCallSubsectionTitle: FlatLabel(defaultSubsectionTitle) {
 | |
| 	textFg: groupCallActiveFg;
 | |
| }
 | |
| groupCallAttentionBoxButton: RoundButton(groupCallBoxButton) {
 | |
| 	textFg: attentionButtonFg;
 | |
| 	textFgOver: attentionButtonFgOver;
 | |
| }
 | |
| 
 | |
| groupCallRtmpUrlSkip: 1px;
 | |
| groupCallRtmpKeySubsectionTitleSkip: 8px;
 | |
| groupCallRtmpSubsectionTitleAddPadding: margins(0px, -1px, 0px, -4px);
 | |
| groupCallRtmpShowButtonPosition: point(21px, -5px);
 | |
| groupCallDividerBg: groupCallMembersBgRipple;
 | |
| 
 | |
| groupCallScheduleDateField: InputField(groupCallField) {
 | |
| 	textMargins: margins(2px, 0px, 2px, 0px);
 | |
| 	placeholderScale: 0.;
 | |
| 	heightMin: 30px;
 | |
| 	textAlign: align(top);
 | |
| 	font: font(14px);
 | |
| }
 | |
| groupCallScheduleTimeField: InputField(groupCallScheduleDateField) {
 | |
| 	textBg: groupCallMembersBg;
 | |
| 	border: 0px;
 | |
| 	borderActive: 0px;
 | |
| 	heightMin: 28px;
 | |
| 	placeholderFont: font(14px);
 | |
| }
 | |
| 
 | |
| //
 | |
| groupCallCalendarPreviousDisabled: icon {{ "calendar_down-flip_vertical", groupCallMemberNotJoinedStatus }};
 | |
| groupCallCalendarNextDisabled: icon {{ "calendar_down", groupCallMemberNotJoinedStatus }};
 | |
| groupCallCalendarPrevious: IconButton(calendarPrevious) {
 | |
| 	icon: icon {{ "calendar_down-flip_vertical", groupCallMembersFg }};
 | |
| 	ripple: RippleAnimation(defaultRippleAnimation) {
 | |
| 		color: groupCallMembersBgRipple;
 | |
| 	}
 | |
| }
 | |
| groupCallCalendarNext: IconButton(groupCallCalendarPrevious) {
 | |
| 	icon: icon {{ "calendar_down", groupCallMembersFg }};
 | |
| }
 | |
| groupCallCalendarColors: CalendarColors {
 | |
| 	dayTextColor: groupCallMembersFg;
 | |
| 	dayTextGrayedOutColor: groupCallMemberNotJoinedStatus;
 | |
| 
 | |
| 	iconButtonNext: groupCallCalendarNext;
 | |
| 	iconButtonNextDisabled: groupCallCalendarNextDisabled;
 | |
| 	iconButtonPrevious: groupCallCalendarPrevious;
 | |
| 	iconButtonPreviousDisabled: groupCallCalendarPreviousDisabled;
 | |
| 
 | |
| 	iconButtonRippleColorDisabled: groupCallMembersBgRipple;
 | |
| 
 | |
| 	rippleColor: groupCallMembersBgRipple;
 | |
| 	rippleColorHighlighted: groupCallMembersBgRipple;
 | |
| 	rippleGrayedOutColor: groupCallMembersBgRipple;
 | |
| 
 | |
| 	titleTextColor: groupCallMembersFg;
 | |
| }
 | |
| //
 | 
