Merge branch 'dev'
|
@ -50,6 +50,7 @@ addons:
|
||||||
- libssl-dev
|
- libssl-dev
|
||||||
- libunity-dev
|
- libunity-dev
|
||||||
- libva-dev
|
- libva-dev
|
||||||
|
- libvdpau-dev
|
||||||
- libxcb-xkb-dev
|
- libxcb-xkb-dev
|
||||||
- libxkbcommon-dev
|
- libxkbcommon-dev
|
||||||
- lintian
|
- lintian
|
||||||
|
|
|
@ -28,6 +28,9 @@ GYP_PATCH="$UPSTREAM/Telegram/Patches/gyp.diff"
|
||||||
VA_PATH="$BUILD/libva"
|
VA_PATH="$BUILD/libva"
|
||||||
VA_CACHE_VERSION="2"
|
VA_CACHE_VERSION="2"
|
||||||
|
|
||||||
|
VDPAU_PATH="$BUILD/libvdpau"
|
||||||
|
VDPAU_CACHE_VERSION="1"
|
||||||
|
|
||||||
FFMPEG_PATH="$BUILD/ffmpeg"
|
FFMPEG_PATH="$BUILD/ffmpeg"
|
||||||
FFMPEG_CACHE_VERSION="2"
|
FFMPEG_CACHE_VERSION="2"
|
||||||
|
|
||||||
|
@ -60,6 +63,9 @@ build() {
|
||||||
# libva
|
# libva
|
||||||
getVa
|
getVa
|
||||||
|
|
||||||
|
# libvdpau
|
||||||
|
getVdpau
|
||||||
|
|
||||||
# ffmpeg
|
# ffmpeg
|
||||||
getFFmpeg
|
getFFmpeg
|
||||||
|
|
||||||
|
@ -205,6 +211,55 @@ buildVa() {
|
||||||
sudo ldconfig
|
sudo ldconfig
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getVdpau() {
|
||||||
|
travisStartFold "Getting libvdpau"
|
||||||
|
|
||||||
|
local VDPAU_CACHE="$CACHE/libvdpau"
|
||||||
|
local VDPAU_CACHE_FILE="$VDPAU_CACHE/.cache.txt"
|
||||||
|
local VDPAU_CACHE_KEY="${VDPAU_CACHE_VERSION}"
|
||||||
|
local VDPAU_CACHE_OUTDATED="1"
|
||||||
|
|
||||||
|
if [ ! -d "$VDPAU_CACHE" ]; then
|
||||||
|
mkdir -p "$VDPAU_CACHE"
|
||||||
|
fi
|
||||||
|
|
||||||
|
ln -sf "$VDPAU_CACHE" "$VDPAU_PATH"
|
||||||
|
|
||||||
|
if [ -f "$VDPAU_CACHE_FILE" ]; then
|
||||||
|
local VDPAU_CACHE_KEY_FOUND=`tail -n 1 $VDPAU_CACHE_FILE`
|
||||||
|
if [ "$VDPAU_CACHE_KEY" == "$VDPAU_CACHE_KEY_FOUND" ]; then
|
||||||
|
VDPAU_CACHE_OUTDATED="0"
|
||||||
|
else
|
||||||
|
info_msg "Cache key '$VDPAU_CACHE_KEY_FOUND' does not match '$VDPAU_CACHE_KEY', rebuilding libvdpau"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [ "$VDPAU_CACHE_OUTDATED" == "1" ]; then
|
||||||
|
buildVdpau
|
||||||
|
sudo echo $VDPAU_CACHE_KEY > "$VDPAU_CACHE_FILE"
|
||||||
|
else
|
||||||
|
info_msg "Using cached libvdpau"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
buildVdpau() {
|
||||||
|
info_msg "Downloading and building libvdpau"
|
||||||
|
|
||||||
|
if [ -d "$EXTERNAL/libvdpau" ]; then
|
||||||
|
rm -rf "$EXTERNAL/libvdpau"
|
||||||
|
fi
|
||||||
|
cd $VDPAU_PATH
|
||||||
|
rm -rf *
|
||||||
|
|
||||||
|
cd "$EXTERNAL"
|
||||||
|
git clone git://anongit.freedesktop.org/vdpau/libvdpau
|
||||||
|
|
||||||
|
cd "$EXTERNAL/libvdpau"
|
||||||
|
./autogen.sh --prefix=$VDPAU_PATH --enable-static
|
||||||
|
make $MAKE_ARGS
|
||||||
|
sudo make install
|
||||||
|
sudo ldconfig
|
||||||
|
}
|
||||||
|
|
||||||
getFFmpeg() {
|
getFFmpeg() {
|
||||||
travisStartFold "Getting ffmpeg"
|
travisStartFold "Getting ffmpeg"
|
||||||
|
|
||||||
|
@ -541,6 +596,7 @@ buildTelegram() {
|
||||||
-Dtravis_defines=${GYP_DEFINES:1} \
|
-Dtravis_defines=${GYP_DEFINES:1} \
|
||||||
-Dlinux_path_xkbcommon=$XKB_PATH \
|
-Dlinux_path_xkbcommon=$XKB_PATH \
|
||||||
-Dlinux_path_va=$VA_PATH \
|
-Dlinux_path_va=$VA_PATH \
|
||||||
|
-Dlinux_path_vdpau=$VDPAU_PATH \
|
||||||
-Dlinux_path_ffmpeg=$FFMPEG_PATH \
|
-Dlinux_path_ffmpeg=$FFMPEG_PATH \
|
||||||
-Dlinux_path_openal=$OPENAL_PATH \
|
-Dlinux_path_openal=$OPENAL_PATH \
|
||||||
-Dlinux_path_qt=$QT_PATH \
|
-Dlinux_path_qt=$QT_PATH \
|
||||||
|
|
|
@ -1,22 +1,22 @@
|
||||||
diff --git a/Alc/backends/winmm.c b/Alc/backends/winmm.c
|
diff --git a/Alc/backends/winmm.c b/Alc/backends/winmm.c
|
||||||
index bf97ef2..1cd5774 100644
|
index 9d8f8e9..8c8e44a 100644
|
||||||
--- a/Alc/backends/winmm.c
|
--- a/Alc/backends/winmm.c
|
||||||
+++ b/Alc/backends/winmm.c
|
+++ b/Alc/backends/winmm.c
|
||||||
@@ -221,7 +221,7 @@ FORCE_ALIGN static int ALCwinmmPlayback_mixerProc(void *arg)
|
@@ -219,7 +219,7 @@ FORCE_ALIGN static int ALCwinmmPlayback_mixerProc(void *arg)
|
||||||
SetRTPriority();
|
SetRTPriority();
|
||||||
althrd_setname(althrd_current(), MIXER_THREAD_NAME);
|
althrd_setname(althrd_current(), MIXER_THREAD_NAME);
|
||||||
|
|
||||||
- while(GetMessage(&msg, NULL, 0, 0))
|
- while(GetMessage(&msg, NULL, 0, 0))
|
||||||
+ if (!self->killNow) while(GetMessage(&msg, NULL, 0, 0))
|
+ if (!self->killNow) while(GetMessage(&msg, NULL, 0, 0))
|
||||||
{
|
{
|
||||||
if(msg.message != WOM_DONE)
|
if(msg.message != WOM_DONE)
|
||||||
continue;
|
continue;
|
||||||
@@ -506,7 +506,7 @@ static int ALCwinmmCapture_captureProc(void *arg)
|
@@ -504,7 +504,7 @@ static int ALCwinmmCapture_captureProc(void *arg)
|
||||||
|
|
||||||
althrd_setname(althrd_current(), RECORD_THREAD_NAME);
|
althrd_setname(althrd_current(), RECORD_THREAD_NAME);
|
||||||
|
|
||||||
- while(GetMessage(&msg, NULL, 0, 0))
|
- while(GetMessage(&msg, NULL, 0, 0))
|
||||||
+ if (!self->killNow) while(GetMessage(&msg, NULL, 0, 0))
|
+ if (!self->killNow) while(GetMessage(&msg, NULL, 0, 0))
|
||||||
{
|
{
|
||||||
if(msg.message != WIM_DATA)
|
if(msg.message != WIM_DATA)
|
||||||
continue;
|
continue;
|
||||||
|
|
|
@ -615,10 +615,49 @@ index c680764..e2a7aaf 100644
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp
|
diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp
|
||||||
index 7396808..87b4978 100644
|
index 7396808..7178aec 100644
|
||||||
--- a/src/widgets/kernel/qwidget.cpp
|
--- a/src/widgets/kernel/qwidget.cpp
|
||||||
+++ b/src/widgets/kernel/qwidget.cpp
|
+++ b/src/widgets/kernel/qwidget.cpp
|
||||||
@@ -7983,7 +7983,8 @@ bool QWidget::event(QEvent *event)
|
@@ -4722,6 +4722,17 @@ void QWidget::render(QPainter *painter, const QPoint &targetOffset,
|
||||||
|
return; // Fully transparent.
|
||||||
|
|
||||||
|
Q_D(QWidget);
|
||||||
|
+
|
||||||
|
+ // Patch: save and restore dirtyOpaqueChildren field.
|
||||||
|
+ //
|
||||||
|
+ // Just like in QWidget::grab() this field should be restored
|
||||||
|
+ // after the d->render() call, because it will be set to 1 and
|
||||||
|
+ // opaqueChildren field will be filled with empty region in
|
||||||
|
+ // case the widget is hidden (because all the opaque children
|
||||||
|
+ // will be skipped in isVisible() check).
|
||||||
|
+ //
|
||||||
|
+ const bool oldDirtyOpaqueChildren = d->dirtyOpaqueChildren;
|
||||||
|
+
|
||||||
|
const bool inRenderWithPainter = d->extra && d->extra->inRenderWithPainter;
|
||||||
|
const QRegion toBePainted = !inRenderWithPainter ? d->prepareToRender(sourceRegion, renderFlags)
|
||||||
|
: sourceRegion;
|
||||||
|
@@ -4743,6 +4754,10 @@ void QWidget::render(QPainter *painter, const QPoint &targetOffset,
|
||||||
|
if (!inRenderWithPainter && (opacity < 1.0 || (target->devType() == QInternal::Printer))) {
|
||||||
|
d->render_helper(painter, targetOffset, toBePainted, renderFlags);
|
||||||
|
d->extra->inRenderWithPainter = inRenderWithPainter;
|
||||||
|
+
|
||||||
|
+ // Patch: save and restore dirtyOpaqueChildren field.
|
||||||
|
+ d->dirtyOpaqueChildren = oldDirtyOpaqueChildren;
|
||||||
|
+
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -4774,6 +4789,9 @@ void QWidget::render(QPainter *painter, const QPoint &targetOffset,
|
||||||
|
d->setSharedPainter(oldPainter);
|
||||||
|
|
||||||
|
d->extra->inRenderWithPainter = inRenderWithPainter;
|
||||||
|
+
|
||||||
|
+ // Patch: save and restore dirtyOpaqueChildren field.
|
||||||
|
+ d->dirtyOpaqueChildren = oldDirtyOpaqueChildren;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void sendResizeEvents(QWidget *target)
|
||||||
|
@@ -7983,7 +8001,8 @@ bool QWidget::event(QEvent *event)
|
||||||
case QEvent::KeyPress: {
|
case QEvent::KeyPress: {
|
||||||
QKeyEvent *k = (QKeyEvent *)event;
|
QKeyEvent *k = (QKeyEvent *)event;
|
||||||
bool res = false;
|
bool res = false;
|
||||||
|
|
|
@ -11896,6 +11896,52 @@ index 6fffa1e..cb1c9c1 100644
|
||||||
void destroyWindow();
|
void destroyWindow();
|
||||||
inline bool isDropSiteEnabled() const { return m_dropTarget != 0; }
|
inline bool isDropSiteEnabled() const { return m_dropTarget != 0; }
|
||||||
void setDropSiteEnabled(bool enabled);
|
void setDropSiteEnabled(bool enabled);
|
||||||
|
diff --git a/src/plugins/platforms/xcb/qxcbnativeinterface.cpp b/src/plugins/platforms/xcb/qxcbnativeinterface.cpp
|
||||||
|
index 09e7ecf..c0f15a4 100644
|
||||||
|
--- a/src/plugins/platforms/xcb/qxcbnativeinterface.cpp
|
||||||
|
+++ b/src/plugins/platforms/xcb/qxcbnativeinterface.cpp
|
||||||
|
@@ -79,7 +79,10 @@ static int resourceType(const QByteArray &key)
|
||||||
|
QByteArrayLiteral("rootwindow"),
|
||||||
|
QByteArrayLiteral("subpixeltype"), QByteArrayLiteral("antialiasingenabled"),
|
||||||
|
QByteArrayLiteral("nofonthinting"),
|
||||||
|
- QByteArrayLiteral("atspibus")
|
||||||
|
+ QByteArrayLiteral("atspibus"),
|
||||||
|
+
|
||||||
|
+ // Patch: Backport compositing manager check from Qt 5.7
|
||||||
|
+ QByteArrayLiteral("compositingenabled")
|
||||||
|
};
|
||||||
|
const QByteArray *end = names + sizeof(names) / sizeof(names[0]);
|
||||||
|
const QByteArray *result = std::find(names, end, key);
|
||||||
|
@@ -252,6 +255,13 @@ void *QXcbNativeInterface::nativeResourceForScreen(const QByteArray &resourceStr
|
||||||
|
case RootWindow:
|
||||||
|
result = reinterpret_cast<void *>(xcbScreen->root());
|
||||||
|
break;
|
||||||
|
+
|
||||||
|
+ // Patch: Backport compositing manager check from Qt 5.7
|
||||||
|
+ case CompositingEnabled:
|
||||||
|
+ if (QXcbVirtualDesktop *vd = xcbScreen->virtualDesktop())
|
||||||
|
+ result = vd->compositingActive() ? this : Q_NULLPTR;
|
||||||
|
+ break;
|
||||||
|
+
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
diff --git a/src/plugins/platforms/xcb/qxcbnativeinterface.h b/src/plugins/platforms/xcb/qxcbnativeinterface.h
|
||||||
|
index f88b710..6f818a5 100644
|
||||||
|
--- a/src/plugins/platforms/xcb/qxcbnativeinterface.h
|
||||||
|
+++ b/src/plugins/platforms/xcb/qxcbnativeinterface.h
|
||||||
|
@@ -68,7 +68,10 @@ public:
|
||||||
|
ScreenSubpixelType,
|
||||||
|
ScreenAntialiasingEnabled,
|
||||||
|
NoFontHinting,
|
||||||
|
- AtspiBus
|
||||||
|
+ AtspiBus,
|
||||||
|
+
|
||||||
|
+ // Patch: Backport compositing manager check from Qt 5.7
|
||||||
|
+ CompositingEnabled
|
||||||
|
};
|
||||||
|
|
||||||
|
QXcbNativeInterface();
|
||||||
diff --git a/src/widgets/dialogs/qfiledialog.cpp b/src/widgets/dialogs/qfiledialog.cpp
|
diff --git a/src/widgets/dialogs/qfiledialog.cpp b/src/widgets/dialogs/qfiledialog.cpp
|
||||||
index bc2de89..aa8f8df 100644
|
index bc2de89..aa8f8df 100644
|
||||||
--- a/src/widgets/dialogs/qfiledialog.cpp
|
--- a/src/widgets/dialogs/qfiledialog.cpp
|
||||||
|
@ -11987,10 +12033,49 @@ index f610e46..547a646 100644
|
||||||
{
|
{
|
||||||
if (QPlatformFileDialogHelper *helper = platformFileDialogHelper())
|
if (QPlatformFileDialogHelper *helper = platformFileDialogHelper())
|
||||||
diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp
|
diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp
|
||||||
index b1d80d7..4133ed3 100644
|
index b1d80d7..42e32fd 100644
|
||||||
--- a/src/widgets/kernel/qwidget.cpp
|
--- a/src/widgets/kernel/qwidget.cpp
|
||||||
+++ b/src/widgets/kernel/qwidget.cpp
|
+++ b/src/widgets/kernel/qwidget.cpp
|
||||||
@@ -8769,7 +8769,8 @@ bool QWidget::event(QEvent *event)
|
@@ -5138,6 +5138,17 @@ void QWidget::render(QPainter *painter, const QPoint &targetOffset,
|
||||||
|
return; // Fully transparent.
|
||||||
|
|
||||||
|
Q_D(QWidget);
|
||||||
|
+
|
||||||
|
+ // Patch: save and restore dirtyOpaqueChildren field.
|
||||||
|
+ //
|
||||||
|
+ // Just like in QWidget::grab() this field should be restored
|
||||||
|
+ // after the d->render() call, because it will be set to 1 and
|
||||||
|
+ // opaqueChildren field will be filled with empty region in
|
||||||
|
+ // case the widget is hidden (because all the opaque children
|
||||||
|
+ // will be skipped in isVisible() check).
|
||||||
|
+ //
|
||||||
|
+ const bool oldDirtyOpaqueChildren = d->dirtyOpaqueChildren;
|
||||||
|
+
|
||||||
|
const bool inRenderWithPainter = d->extra && d->extra->inRenderWithPainter;
|
||||||
|
const QRegion toBePainted = !inRenderWithPainter ? d->prepareToRender(sourceRegion, renderFlags)
|
||||||
|
: sourceRegion;
|
||||||
|
@@ -5159,6 +5170,10 @@ void QWidget::render(QPainter *painter, const QPoint &targetOffset,
|
||||||
|
if (!inRenderWithPainter && (opacity < 1.0 || (target->devType() == QInternal::Printer))) {
|
||||||
|
d->render_helper(painter, targetOffset, toBePainted, renderFlags);
|
||||||
|
d->extra->inRenderWithPainter = inRenderWithPainter;
|
||||||
|
+
|
||||||
|
+ // Patch: save and restore dirtyOpaqueChildren field.
|
||||||
|
+ d->dirtyOpaqueChildren = oldDirtyOpaqueChildren;
|
||||||
|
+
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -5190,6 +5205,9 @@ void QWidget::render(QPainter *painter, const QPoint &targetOffset,
|
||||||
|
d->setSharedPainter(oldPainter);
|
||||||
|
|
||||||
|
d->extra->inRenderWithPainter = inRenderWithPainter;
|
||||||
|
+
|
||||||
|
+ // Patch: save and restore dirtyOpaqueChildren field.
|
||||||
|
+ d->dirtyOpaqueChildren = oldDirtyOpaqueChildren;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void sendResizeEvents(QWidget *target)
|
||||||
|
@@ -8769,7 +8787,8 @@ bool QWidget::event(QEvent *event)
|
||||||
case QEvent::KeyPress: {
|
case QEvent::KeyPress: {
|
||||||
QKeyEvent *k = (QKeyEvent *)event;
|
QKeyEvent *k = (QKeyEvent *)event;
|
||||||
bool res = false;
|
bool res = false;
|
||||||
|
|
Before Width: | Height: | Size: 260 KiB After Width: | Height: | Size: 105 KiB |
Before Width: | Height: | Size: 197 KiB After Width: | Height: | Size: 197 KiB |
Before Width: | Height: | Size: 49 B |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 5.3 KiB |
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 9.1 KiB |
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 35 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 826 B |
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 361 KiB After Width: | Height: | Size: 361 KiB |
Before Width: | Height: | Size: 8.3 KiB After Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 60 KiB |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 3.0 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 46 KiB |
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 95 KiB |
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 4.1 KiB |
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 9.1 KiB |
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 84 KiB |
Before Width: | Height: | Size: 8.7 KiB After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 27 KiB |
Before Width: | Height: | Size: 59 KiB |
After Width: | Height: | Size: 117 KiB |
|
@ -1,455 +0,0 @@
|
||||||
/*
|
|
||||||
This file is part of Telegram Desktop,
|
|
||||||
the official desktop version of Telegram messaging app, see https://telegram.org
|
|
||||||
|
|
||||||
Telegram Desktop is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
It is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
In addition, as a special exception, the copyright holders give permission
|
|
||||||
to link the code of portions of this program with the OpenSSL library.
|
|
||||||
|
|
||||||
Full license: https://github.com/telegramdesktop/tdesktop/blob/master/LICENSE
|
|
||||||
Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
|
|
||||||
*/
|
|
||||||
|
|
||||||
textStyle {
|
|
||||||
linkFlags: font;
|
|
||||||
linkFlagsOver: font;
|
|
||||||
linkFg: color;
|
|
||||||
linkFgDown: color;
|
|
||||||
monoFg: color;
|
|
||||||
selectBg: color;
|
|
||||||
selectOverlay: color;
|
|
||||||
lineHeight: pixels;
|
|
||||||
}
|
|
||||||
|
|
||||||
linkButton {
|
|
||||||
color: color;
|
|
||||||
overColor: color;
|
|
||||||
downColor: color;
|
|
||||||
font: font;
|
|
||||||
overFont: font;
|
|
||||||
}
|
|
||||||
|
|
||||||
sysButton {
|
|
||||||
size: size;
|
|
||||||
icon: icon;
|
|
||||||
color: color;
|
|
||||||
overColor: color;
|
|
||||||
duration: int;
|
|
||||||
}
|
|
||||||
|
|
||||||
flatButton {
|
|
||||||
color: color;
|
|
||||||
overColor: color;
|
|
||||||
downColor: color;
|
|
||||||
|
|
||||||
bgColor: color;
|
|
||||||
overBgColor: color;
|
|
||||||
downBgColor: color;
|
|
||||||
|
|
||||||
width: pixels;
|
|
||||||
height: pixels;
|
|
||||||
|
|
||||||
textTop: pixels;
|
|
||||||
overTextTop: pixels;
|
|
||||||
downTextTop: pixels;
|
|
||||||
|
|
||||||
font: font;
|
|
||||||
overFont: font;
|
|
||||||
duration: int;
|
|
||||||
cursor: cursor;
|
|
||||||
|
|
||||||
radius: pixels;
|
|
||||||
}
|
|
||||||
|
|
||||||
iconedButton {
|
|
||||||
icon: sprite;
|
|
||||||
iconPos: point;
|
|
||||||
downIcon: sprite;
|
|
||||||
downIconPos: point;
|
|
||||||
|
|
||||||
color: color;
|
|
||||||
bgColor: color;
|
|
||||||
overBgColor: color;
|
|
||||||
width: pixels;
|
|
||||||
height: pixels;
|
|
||||||
font: font;
|
|
||||||
|
|
||||||
opacity: double;
|
|
||||||
overOpacity: double;
|
|
||||||
|
|
||||||
textPos: point;
|
|
||||||
downTextPos: point;
|
|
||||||
|
|
||||||
duration: int;
|
|
||||||
cursor: cursor;
|
|
||||||
}
|
|
||||||
|
|
||||||
flatCheckbox {
|
|
||||||
textColor: color;
|
|
||||||
bgColor: color;
|
|
||||||
disColor: color;
|
|
||||||
|
|
||||||
width: pixels;
|
|
||||||
height: pixels;
|
|
||||||
textTop: pixels;
|
|
||||||
textLeft: pixels;
|
|
||||||
font: font;
|
|
||||||
duration: int;
|
|
||||||
bgFunc: transition;
|
|
||||||
cursor: cursor;
|
|
||||||
|
|
||||||
disabledCursor: cursor;
|
|
||||||
|
|
||||||
imageRect: sprite;
|
|
||||||
chkImageRect: sprite;
|
|
||||||
overImageRect: sprite;
|
|
||||||
chkOverImageRect: sprite;
|
|
||||||
disImageRect: sprite;
|
|
||||||
chkDisImageRect: sprite;
|
|
||||||
|
|
||||||
imagePos: point;
|
|
||||||
}
|
|
||||||
|
|
||||||
flatInput {
|
|
||||||
textColor: color;
|
|
||||||
bgColor: color;
|
|
||||||
bgActive: color;
|
|
||||||
width: pixels;
|
|
||||||
height: pixels;
|
|
||||||
textMrg: margins;
|
|
||||||
align: align;
|
|
||||||
font: font;
|
|
||||||
cursor: cursor;
|
|
||||||
|
|
||||||
icon: icon;
|
|
||||||
|
|
||||||
borderWidth: pixels;
|
|
||||||
borderColor: color;
|
|
||||||
borderActive: color;
|
|
||||||
borderError: color;
|
|
||||||
|
|
||||||
phColor: color;
|
|
||||||
phFocusColor: color;
|
|
||||||
phPos: point;
|
|
||||||
phAlign: align;
|
|
||||||
phShift: pixels;
|
|
||||||
phDuration: int;
|
|
||||||
phLeftFunc: transition;
|
|
||||||
phAlphaFunc: transition;
|
|
||||||
phColorFunc: transition;
|
|
||||||
}
|
|
||||||
|
|
||||||
flatTextarea {
|
|
||||||
textColor: color;
|
|
||||||
bgColor: color;
|
|
||||||
width: pixels;
|
|
||||||
textMrg: margins;
|
|
||||||
align: align;
|
|
||||||
font: font;
|
|
||||||
cursor: cursor;
|
|
||||||
|
|
||||||
phColor: color;
|
|
||||||
phFocusColor: color;
|
|
||||||
phPos: point;
|
|
||||||
phAlign: align;
|
|
||||||
phShift: pixels;
|
|
||||||
phDuration: int;
|
|
||||||
phLeftFunc: transition;
|
|
||||||
phAlphaFunc: transition;
|
|
||||||
phColorFunc: transition;
|
|
||||||
}
|
|
||||||
|
|
||||||
flatScroll {
|
|
||||||
barColor: color;
|
|
||||||
bgColor: color;
|
|
||||||
barOverColor: color;
|
|
||||||
bgOverColor: color;
|
|
||||||
|
|
||||||
round: pixels;
|
|
||||||
|
|
||||||
width: pixels;
|
|
||||||
minHeight: pixels;
|
|
||||||
deltax: pixels;
|
|
||||||
deltat: pixels;
|
|
||||||
deltab: pixels;
|
|
||||||
|
|
||||||
topsh: pixels;
|
|
||||||
bottomsh: pixels;
|
|
||||||
shColor: color;
|
|
||||||
|
|
||||||
duration: int;
|
|
||||||
hiding: int;
|
|
||||||
}
|
|
||||||
|
|
||||||
countryInput {
|
|
||||||
width: pixels;
|
|
||||||
height: pixels;
|
|
||||||
top: pixels;
|
|
||||||
bgColor: color;
|
|
||||||
ptrSize: size;
|
|
||||||
textMrg: margins;
|
|
||||||
font: font;
|
|
||||||
align: align;
|
|
||||||
}
|
|
||||||
|
|
||||||
flatLabel {
|
|
||||||
font: font;
|
|
||||||
margin: margins;
|
|
||||||
width: pixels;
|
|
||||||
align: align;
|
|
||||||
textFg: color;
|
|
||||||
maxHeight: pixels;
|
|
||||||
}
|
|
||||||
|
|
||||||
switcher {
|
|
||||||
border: pixels;
|
|
||||||
borderColor: color;
|
|
||||||
|
|
||||||
bgColor: color;
|
|
||||||
bgHovered: color;
|
|
||||||
bgActive: color;
|
|
||||||
|
|
||||||
height: pixels;
|
|
||||||
|
|
||||||
font: font;
|
|
||||||
textColor: color;
|
|
||||||
activeColor: color;
|
|
||||||
|
|
||||||
duration: int;
|
|
||||||
}
|
|
||||||
|
|
||||||
dropdown {
|
|
||||||
border: pixels;
|
|
||||||
borderColor: color;
|
|
||||||
|
|
||||||
padding: margins;
|
|
||||||
shadow: icon;
|
|
||||||
shadowShift: pixels;
|
|
||||||
|
|
||||||
duration: int;
|
|
||||||
width: pixels;
|
|
||||||
}
|
|
||||||
|
|
||||||
InnerDropdown {
|
|
||||||
padding: margins;
|
|
||||||
shadow: icon;
|
|
||||||
shadowShift: pixels;
|
|
||||||
|
|
||||||
duration: int;
|
|
||||||
width: pixels;
|
|
||||||
|
|
||||||
scrollMargin: margins;
|
|
||||||
scrollPadding: margins;
|
|
||||||
}
|
|
||||||
|
|
||||||
PopupMenu {
|
|
||||||
skip: pixels;
|
|
||||||
|
|
||||||
shadow: icon;
|
|
||||||
shadowShift: pixels;
|
|
||||||
|
|
||||||
itemBg: color;
|
|
||||||
itemBgOver: color;
|
|
||||||
itemFg: color;
|
|
||||||
itemFgOver: color;
|
|
||||||
itemFgDisabled: color;
|
|
||||||
itemFgShortcut: color;
|
|
||||||
itemFgShortcutOver: color;
|
|
||||||
itemFgShortcutDisabled: color;
|
|
||||||
itemPadding: margins;
|
|
||||||
itemFont: font;
|
|
||||||
|
|
||||||
separatorPadding: margins;
|
|
||||||
separatorWidth: pixels;
|
|
||||||
separatorFg: color;
|
|
||||||
|
|
||||||
arrow: icon;
|
|
||||||
|
|
||||||
duration: int;
|
|
||||||
|
|
||||||
widthMin: pixels;
|
|
||||||
widthMax: pixels;
|
|
||||||
}
|
|
||||||
|
|
||||||
Tooltip {
|
|
||||||
textBg: color;
|
|
||||||
textFg: color;
|
|
||||||
textFont: font;
|
|
||||||
textBorder: color;
|
|
||||||
textPadding: margins;
|
|
||||||
|
|
||||||
shift: point;
|
|
||||||
skip: pixels;
|
|
||||||
|
|
||||||
widthMax: pixels;
|
|
||||||
linesMax: int;
|
|
||||||
}
|
|
||||||
|
|
||||||
botKeyboardButton {
|
|
||||||
margin: pixels;
|
|
||||||
padding: pixels;
|
|
||||||
height: pixels;
|
|
||||||
textTop: pixels;
|
|
||||||
downTextTop: pixels;
|
|
||||||
}
|
|
||||||
|
|
||||||
RoundButton {
|
|
||||||
textFg: color;
|
|
||||||
textFgOver: color;
|
|
||||||
textBg: color; // rect of textBg with rounded rect of textBgOver upon it
|
|
||||||
textBgOver: color;
|
|
||||||
|
|
||||||
secondaryTextFg: color;
|
|
||||||
secondaryTextFgOver: color;
|
|
||||||
secondarySkip: pixels;
|
|
||||||
|
|
||||||
width: pixels;
|
|
||||||
height: pixels;
|
|
||||||
padding: margins;
|
|
||||||
|
|
||||||
textTop: pixels;
|
|
||||||
downTextTop: pixels;
|
|
||||||
|
|
||||||
icon: icon;
|
|
||||||
|
|
||||||
font: font;
|
|
||||||
duration: int;
|
|
||||||
}
|
|
||||||
|
|
||||||
Checkbox {
|
|
||||||
textFg: color;
|
|
||||||
textBg: color;
|
|
||||||
|
|
||||||
checkFg: color;
|
|
||||||
checkFgOver: color;
|
|
||||||
checkFgActive: color;
|
|
||||||
|
|
||||||
width: pixels;
|
|
||||||
height: pixels;
|
|
||||||
|
|
||||||
textPosition: point;
|
|
||||||
diameter: pixels;
|
|
||||||
thickness: pixels;
|
|
||||||
checkIcon: icon;
|
|
||||||
|
|
||||||
font: font;
|
|
||||||
duration: int;
|
|
||||||
}
|
|
||||||
|
|
||||||
Radiobutton {
|
|
||||||
textFg: color;
|
|
||||||
textBg: color;
|
|
||||||
|
|
||||||
checkFg: color;
|
|
||||||
checkFgOver: color;
|
|
||||||
checkFgActive: color;
|
|
||||||
|
|
||||||
width: pixels;
|
|
||||||
height: pixels;
|
|
||||||
|
|
||||||
textPosition: point;
|
|
||||||
diameter: pixels;
|
|
||||||
thickness: pixels;
|
|
||||||
checkSkip: pixels;
|
|
||||||
|
|
||||||
font: font;
|
|
||||||
duration: int;
|
|
||||||
}
|
|
||||||
|
|
||||||
InputArea {
|
|
||||||
textFg: color;
|
|
||||||
textMargins: margins;
|
|
||||||
|
|
||||||
placeholderFg: color;
|
|
||||||
placeholderFgActive: color;
|
|
||||||
placeholderMargins: margins;
|
|
||||||
placeholderAlign: align;
|
|
||||||
placeholderShift: pixels;
|
|
||||||
|
|
||||||
duration: int;
|
|
||||||
|
|
||||||
borderFg: color;
|
|
||||||
borderFgActive: color;
|
|
||||||
borderFgError: color;
|
|
||||||
|
|
||||||
border: pixels;
|
|
||||||
borderActive: pixels;
|
|
||||||
borderError: pixels;
|
|
||||||
|
|
||||||
font: font;
|
|
||||||
|
|
||||||
width: pixels;
|
|
||||||
heightMin: pixels;
|
|
||||||
heightMax: pixels;
|
|
||||||
}
|
|
||||||
|
|
||||||
InputField {
|
|
||||||
textBg: color;
|
|
||||||
textFg: color;
|
|
||||||
textMargins: margins;
|
|
||||||
textAlign: align;
|
|
||||||
|
|
||||||
placeholderFg: color;
|
|
||||||
placeholderFgActive: color;
|
|
||||||
placeholderMargins: margins;
|
|
||||||
placeholderAlign: align;
|
|
||||||
placeholderShift: pixels;
|
|
||||||
|
|
||||||
duration: int;
|
|
||||||
|
|
||||||
borderFg: color;
|
|
||||||
borderFgActive: color;
|
|
||||||
borderFgError: color;
|
|
||||||
|
|
||||||
border: pixels;
|
|
||||||
borderActive: pixels;
|
|
||||||
borderError: pixels;
|
|
||||||
|
|
||||||
font: font;
|
|
||||||
|
|
||||||
width: pixels;
|
|
||||||
height: pixels;
|
|
||||||
}
|
|
||||||
|
|
||||||
PeerAvatarButton {
|
|
||||||
size: pixels;
|
|
||||||
photoSize: pixels;
|
|
||||||
}
|
|
||||||
|
|
||||||
OutlineButton {
|
|
||||||
outlineWidth: pixels;
|
|
||||||
outlineFg: color;
|
|
||||||
outlineFgOver: color;
|
|
||||||
|
|
||||||
textBg: color;
|
|
||||||
textBgOver: color;
|
|
||||||
|
|
||||||
textFg: color;
|
|
||||||
textFgOver: color;
|
|
||||||
|
|
||||||
font: font;
|
|
||||||
padding: margins;
|
|
||||||
}
|
|
||||||
|
|
||||||
IconButton {
|
|
||||||
width: pixels;
|
|
||||||
height: pixels;
|
|
||||||
|
|
||||||
opacity: double;
|
|
||||||
overOpacity: double;
|
|
||||||
|
|
||||||
icon: icon;
|
|
||||||
iconPosition: point;
|
|
||||||
downIconPosition: point;
|
|
||||||
|
|
||||||
duration: int;
|
|
||||||
}
|
|
|
@ -0,0 +1,469 @@
|
||||||
|
/*
|
||||||
|
This file is part of Telegram Desktop,
|
||||||
|
the official desktop version of Telegram messaging app, see https://telegram.org
|
||||||
|
|
||||||
|
Telegram Desktop is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
It is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
In addition, as a special exception, the copyright holders give permission
|
||||||
|
to link the code of portions of this program with the OpenSSL library.
|
||||||
|
|
||||||
|
Full license: https://github.com/telegramdesktop/tdesktop/blob/master/LICENSE
|
||||||
|
Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
|
||||||
|
*/
|
||||||
|
|
||||||
|
// basic
|
||||||
|
windowBg: #ffffff; // white: fallback for background
|
||||||
|
windowFg: #000000; // black: fallback for text color
|
||||||
|
windowBgOver: #f1f1f1; // light gray: fallback for over background
|
||||||
|
windowBgRipple: #e5e5e5; // darker gray: fallback for ripple effect
|
||||||
|
windowFgOver: windowFg; // black: fallback for over text color
|
||||||
|
windowSubTextFg: #999999; // gray: fallback for subtext color
|
||||||
|
windowSubTextFgOver: #919191; // gray over light blue: fallback for subtext over color
|
||||||
|
windowBoldFg: #222222; // dark gray: fallback for bold text color
|
||||||
|
windowBoldFgOver: #222222; // dark gray: fallback for over bold text color
|
||||||
|
windowBgActive: #40a7e3; // bright blue: fallback for blue filled active areas
|
||||||
|
windowFgActive: #ffffff; // text on bright blue: fallback for text on active areas
|
||||||
|
windowActiveTextFg: #168acd; // online blue: fallback for active color
|
||||||
|
windowShadowFg: #000000; // black: fallback for shadow color
|
||||||
|
windowShadowFgFallback: #f1f1f1; // gray: fallback for shadow without opacity
|
||||||
|
|
||||||
|
shadowFg: #00000018;
|
||||||
|
slideFadeOutBg: #0000003c;
|
||||||
|
slideFadeOutShadowFg: windowShadowFg;
|
||||||
|
|
||||||
|
imageBg: #000000;
|
||||||
|
imageBgTransparent: #ffffff;
|
||||||
|
|
||||||
|
// widgets
|
||||||
|
activeButtonBg: windowBgActive;
|
||||||
|
activeButtonBgOver: #39a5db;
|
||||||
|
activeButtonBgRipple: #2095d0;
|
||||||
|
activeButtonFg: windowFgActive;
|
||||||
|
activeButtonFgOver: activeButtonFg;
|
||||||
|
activeButtonSecondaryFg: #cceeff;
|
||||||
|
activeButtonSecondaryFgOver: activeButtonSecondaryFg;
|
||||||
|
activeLineFg: #37a1de;
|
||||||
|
activeLineFgError: #e48383;
|
||||||
|
|
||||||
|
lightButtonBg: windowBg;
|
||||||
|
lightButtonBgOver: #e3f1fa;
|
||||||
|
lightButtonBgRipple: #c9e4f6;
|
||||||
|
lightButtonFg: windowActiveTextFg;
|
||||||
|
lightButtonFgOver: lightButtonFg;
|
||||||
|
|
||||||
|
attentionButtonFg: #d14e4e;
|
||||||
|
attentionButtonFgOver: #d14e4e;
|
||||||
|
attentionButtonBgOver: #fcdfde;
|
||||||
|
attentionButtonBgRipple: #f4c3c2;
|
||||||
|
|
||||||
|
outlineButtonBg: windowBg;
|
||||||
|
outlineButtonBgOver: lightButtonBgOver;
|
||||||
|
outlineButtonOutlineFg: windowBgActive;
|
||||||
|
outlineButtonBgRipple: lightButtonBgRipple;
|
||||||
|
|
||||||
|
menuBg: windowBg;
|
||||||
|
menuBgOver: windowBgOver;
|
||||||
|
menuBgRipple: windowBgRipple;
|
||||||
|
menuIconFg: #a8a8a8;
|
||||||
|
menuIconFgOver: #999999;
|
||||||
|
menuSubmenuArrowFg: #373737;
|
||||||
|
menuFgDisabled: #cccccc;
|
||||||
|
menuSeparatorFg: #f1f1f1;
|
||||||
|
|
||||||
|
scrollBarBg: #00000053;
|
||||||
|
scrollBarBgOver: #0000007a;
|
||||||
|
scrollBg: #0000001a;
|
||||||
|
scrollBgOver: #0000002c;
|
||||||
|
|
||||||
|
smallCloseIconFg: #c7c7c7;
|
||||||
|
smallCloseIconFgOver: #a3a3a3;
|
||||||
|
|
||||||
|
radialFg: windowFgActive;
|
||||||
|
radialBg: #00000056;
|
||||||
|
|
||||||
|
placeholderFg: windowSubTextFg;
|
||||||
|
placeholderFgActive: #aaaaaa;
|
||||||
|
inputBorderFg: #e0e0e0;
|
||||||
|
filterInputBorderFg: #54c3f3;
|
||||||
|
filterInputInactiveBg: windowBgOver;
|
||||||
|
checkboxFg: #b3b3b3;
|
||||||
|
|
||||||
|
sliderBgInactive: #e1eaef;
|
||||||
|
sliderBgActive: windowBgActive;
|
||||||
|
|
||||||
|
tooltipBg: #eef2f5;
|
||||||
|
tooltipFg: #5d6c80;
|
||||||
|
tooltipBorderFg: #c9d1db;
|
||||||
|
|
||||||
|
// custom title bar for Windows and macOS
|
||||||
|
titleBg: windowBgOver;
|
||||||
|
titleShadow: #00000003;
|
||||||
|
titleButtonFg: #ababab;
|
||||||
|
titleButtonBgOver: #e5e5e5;
|
||||||
|
titleButtonFgOver: #9a9a9a;
|
||||||
|
titleButtonCloseBgOver: #e81123;
|
||||||
|
titleButtonCloseFgOver: windowFgActive;
|
||||||
|
titleFgActive: #3e3c3e;
|
||||||
|
titleFg: #acacac;
|
||||||
|
|
||||||
|
// tray icon
|
||||||
|
trayCounterBg: #f23c34;
|
||||||
|
trayCounterBgMute: #888888;
|
||||||
|
trayCounterFg: #ffffff;
|
||||||
|
trayCounterBgMacInvert: #ffffff;
|
||||||
|
trayCounterFgMacInvert: #ffffff01;
|
||||||
|
|
||||||
|
// layers
|
||||||
|
layerBg: #0000007f;
|
||||||
|
|
||||||
|
cancelIconFg: menuIconFg;
|
||||||
|
cancelIconFgOver: menuIconFgOver;
|
||||||
|
|
||||||
|
// boxes
|
||||||
|
boxBg: windowBg;
|
||||||
|
boxTextFg: windowFg;
|
||||||
|
boxTextFgGood: #4ab44a;
|
||||||
|
boxTextFgError: #d84d4d;
|
||||||
|
boxTitleFg: #404040;
|
||||||
|
boxSearchBg: boxBg;
|
||||||
|
boxSearchCancelIconFg: cancelIconFg;
|
||||||
|
boxSearchCancelIconFgOver: cancelIconFgOver;
|
||||||
|
|
||||||
|
boxTitleAdditionalFg: #808080;
|
||||||
|
boxTitleCloseFg: cancelIconFg;
|
||||||
|
boxTitleCloseFgOver: cancelIconFgOver;
|
||||||
|
|
||||||
|
membersAboutLimitFg: windowSubTextFgOver;
|
||||||
|
|
||||||
|
contactsBg: windowBg;
|
||||||
|
contactsBgOver: windowBgOver;
|
||||||
|
contactsNameFg: boxTextFg;
|
||||||
|
contactsStatusFg: windowSubTextFg;
|
||||||
|
contactsStatusFgOver: windowSubTextFgOver;
|
||||||
|
contactsStatusFgOnline: windowActiveTextFg;
|
||||||
|
|
||||||
|
photoCropFadeBg: layerBg;
|
||||||
|
photoCropPointFg: #ffffff7f;
|
||||||
|
|
||||||
|
// intro
|
||||||
|
introBg: windowBg;
|
||||||
|
introTitleFg: windowBoldFg;
|
||||||
|
introDescriptionFg: windowSubTextFg;
|
||||||
|
introErrorFg: windowSubTextFg;
|
||||||
|
|
||||||
|
introCoverTopBg: #0f89d0;
|
||||||
|
introCoverBottomBg: #39b0f0;
|
||||||
|
introCoverIconsFg: #5ec6ff;
|
||||||
|
introCoverPlaneTrace: #5ec6ff69;
|
||||||
|
introCoverPlaneInner: #c6d8e8;
|
||||||
|
introCoverPlaneOuter: #a1bed4;
|
||||||
|
introCoverPlaneTop: #ffffff;
|
||||||
|
|
||||||
|
// dialogs
|
||||||
|
dialogsMenuIconFg: menuIconFg;
|
||||||
|
dialogsMenuIconFgOver: menuIconFgOver;
|
||||||
|
|
||||||
|
dialogsBg: windowBg;
|
||||||
|
dialogsNameFg: windowBoldFg;
|
||||||
|
dialogsChatIconFg: dialogsNameFg;
|
||||||
|
dialogsDateFg: windowSubTextFg;
|
||||||
|
dialogsTextFg: windowSubTextFg;
|
||||||
|
dialogsTextFgService: windowActiveTextFg;
|
||||||
|
dialogsDraftFg: #dd4b39;
|
||||||
|
dialogsVerifiedIconBg: windowBgActive;
|
||||||
|
dialogsVerifiedIconFg: windowFgActive;
|
||||||
|
dialogsSendingIconFg: #c1c1c1;
|
||||||
|
dialogsSentIconFg: #5dc452;
|
||||||
|
dialogsUnreadBg: windowBgActive;
|
||||||
|
dialogsUnreadBgMuted: #bbbbbb;
|
||||||
|
dialogsUnreadFg: windowFgActive;
|
||||||
|
|
||||||
|
dialogsBgOver: windowBgOver;
|
||||||
|
dialogsNameFgOver: windowBoldFgOver;
|
||||||
|
dialogsChatIconFgOver: dialogsNameFgOver;
|
||||||
|
dialogsDateFgOver: windowSubTextFgOver;
|
||||||
|
dialogsTextFgOver: windowSubTextFgOver;
|
||||||
|
dialogsTextFgServiceOver: dialogsTextFgService;
|
||||||
|
dialogsDraftFgOver: dialogsDraftFg;
|
||||||
|
dialogsVerifiedIconBgOver: dialogsVerifiedIconBg;
|
||||||
|
dialogsVerifiedIconFgOver: dialogsVerifiedIconFg;
|
||||||
|
dialogsSendingIconFgOver: dialogsSendingIconFg;
|
||||||
|
dialogsSentIconFgOver: dialogsSentIconFg;
|
||||||
|
dialogsUnreadBgOver: dialogsUnreadBg;
|
||||||
|
dialogsUnreadBgMutedOver: dialogsUnreadBgMuted;
|
||||||
|
dialogsUnreadFgOver: dialogsUnreadFg;
|
||||||
|
|
||||||
|
dialogsBgActive: #419fd9;
|
||||||
|
dialogsNameFgActive: windowFgActive;
|
||||||
|
dialogsChatIconFgActive: dialogsNameFgActive;
|
||||||
|
dialogsDateFgActive: windowFgActive;
|
||||||
|
dialogsTextFgActive: windowFgActive;
|
||||||
|
dialogsTextFgServiceActive: dialogsTextFgActive;
|
||||||
|
dialogsDraftFgActive: #c6e1f7;
|
||||||
|
dialogsVerifiedIconBgActive: dialogsTextFgActive;
|
||||||
|
dialogsVerifiedIconFgActive: dialogsBgActive;
|
||||||
|
dialogsSendingIconFgActive: #ffffff99;
|
||||||
|
dialogsSentIconFgActive: dialogsTextFgActive;
|
||||||
|
dialogsUnreadBgActive: dialogsTextFgActive;
|
||||||
|
dialogsUnreadBgMutedActive: dialogsDraftFgActive;
|
||||||
|
dialogsUnreadFgActive: dialogsBgActive;
|
||||||
|
|
||||||
|
dialogsForwardBg: dialogsBgActive;
|
||||||
|
dialogsForwardFg: dialogsNameFgActive;
|
||||||
|
|
||||||
|
searchedBarBg: windowBgOver;
|
||||||
|
searchedBarBorder: shadowFg;
|
||||||
|
searchedBarFg: windowSubTextFgOver;
|
||||||
|
|
||||||
|
// history
|
||||||
|
topBarBg: windowBg;
|
||||||
|
|
||||||
|
emojiPanBg: windowBg;
|
||||||
|
emojiPanCategories: #f7f7f7 | windowBg;
|
||||||
|
emojiPanHeaderFg: windowSubTextFg;
|
||||||
|
emojiPanHeaderBg: #fffffff2 | emojiPanBg;
|
||||||
|
stickerPanDeleteBg: #000000cc;
|
||||||
|
stickerPanDeleteFg: windowFgActive;
|
||||||
|
stickerPreviewBg: #ffffffb0;
|
||||||
|
|
||||||
|
historyTextInFg: windowFg;
|
||||||
|
historyTextOutFg: windowFg;
|
||||||
|
historyCaptionInFg: historyTextInFg;
|
||||||
|
historyCaptionOutFg: historyTextOutFg;
|
||||||
|
historyFileNameInFg: historyTextInFg;
|
||||||
|
historyFileNameOutFg: historyTextOutFg;
|
||||||
|
historyOutIconFg: dialogsSentIconFg;
|
||||||
|
historyOutIconFgSelected: #4da79f;
|
||||||
|
historyIconFgInverted: windowFgActive;
|
||||||
|
historySendingOutIconFg: #98d292;
|
||||||
|
historySendingInIconFg: #a0adb5;
|
||||||
|
historySendingInvertedIconFg: #ffffffc8;
|
||||||
|
|
||||||
|
historySystemBg: #89a0b47f;
|
||||||
|
historySystemBgSelected: #bbc8d4a2;
|
||||||
|
historySystemFg: windowFgActive;
|
||||||
|
|
||||||
|
historyUnreadBarBg: #fcfbfa;
|
||||||
|
historyUnreadBarBorder: shadowFg;
|
||||||
|
historyUnreadBarFg: #538bb4;
|
||||||
|
|
||||||
|
historyForwardChooseBg: #0000004c;
|
||||||
|
historyForwardChooseFg: windowFgActive;
|
||||||
|
|
||||||
|
historyPeer1NameFg: #c03d33; // red
|
||||||
|
historyPeer1UserpicBg: #e17076;
|
||||||
|
historyPeer2NameFg: #4fad2d; // green
|
||||||
|
historyPeer2UserpicBg: #7bc862;
|
||||||
|
historyPeer3NameFg: #d09306; // yellow
|
||||||
|
historyPeer3UserpicBg: #e5ca77;
|
||||||
|
historyPeer4NameFg: windowActiveTextFg; // blue
|
||||||
|
historyPeer4UserpicBg: #65aadd;
|
||||||
|
historyPeer5NameFg: #8544d6; // purple
|
||||||
|
historyPeer5UserpicBg: #a695e7;
|
||||||
|
historyPeer6NameFg: #cd4073; // pink
|
||||||
|
historyPeer6UserpicBg: #ee7aae;
|
||||||
|
historyPeer7NameFg: #2996ad; // sea
|
||||||
|
historyPeer7UserpicBg: #6ec9cb;
|
||||||
|
historyPeer8NameFg: #ce671b; // orange
|
||||||
|
historyPeer8UserpicBg: #faa774;
|
||||||
|
historyPeerUserpicFg: windowFgActive;
|
||||||
|
|
||||||
|
historyScrollBarBg: #517c417a;
|
||||||
|
historyScrollBarBgOver: #517c41bc;
|
||||||
|
historyScrollBg: #517c414c;
|
||||||
|
historyScrollBgOver: #517c416b;
|
||||||
|
|
||||||
|
msgInBg: windowBg;
|
||||||
|
msgInBgSelected: #c2dcf2; // #358cd4 with 30% opacity
|
||||||
|
msgOutBg: #effdde;
|
||||||
|
msgOutBgSelected: #b7dbdb;
|
||||||
|
msgSelectOverlay: #358cd44c;
|
||||||
|
msgStickerOverlay: #358cd47f;
|
||||||
|
msgInServiceFg: windowActiveTextFg;
|
||||||
|
msgInServiceFgSelected: windowActiveTextFg;
|
||||||
|
msgOutServiceFg: #3a8e26;
|
||||||
|
msgOutServiceFgSelected: #367570;
|
||||||
|
msgInShadow: #748ea229;
|
||||||
|
msgInShadowSelected: #548dbb29;
|
||||||
|
msgOutShadow: #3ac34740;
|
||||||
|
msgOutShadowSelected: #37a78e40;
|
||||||
|
msgInDateFg: #a0acb6;
|
||||||
|
msgInDateFgSelected: #6a9cc5;
|
||||||
|
msgOutDateFg: #6cc264;
|
||||||
|
msgOutDateFgSelected: #50a79c;
|
||||||
|
msgServiceFg: windowFgActive;
|
||||||
|
msgServiceBg: #517c417f;
|
||||||
|
msgServiceBgSelected: #96b38ba2;
|
||||||
|
msgInReplyBarColor: activeLineFg;
|
||||||
|
msgInReplyBarSelColor: activeLineFg;
|
||||||
|
msgOutReplyBarColor: historyOutIconFg;
|
||||||
|
msgOutReplyBarSelColor: historyOutIconFgSelected;
|
||||||
|
msgImgReplyBarColor: msgServiceFg;
|
||||||
|
msgInMonoFg: #4e7391;
|
||||||
|
msgOutMonoFg: #469165;
|
||||||
|
msgDateImgFg: msgServiceFg;
|
||||||
|
msgDateImgBg: #00000054;
|
||||||
|
msgDateImgBgOver: #00000074;
|
||||||
|
msgDateImgBgSelected: #1c4a7187;
|
||||||
|
|
||||||
|
msgFileThumbLinkInFg: lightButtonFg;
|
||||||
|
msgFileThumbLinkInFgSelected: lightButtonFgOver;
|
||||||
|
msgFileThumbLinkOutFg: #5eba5b;
|
||||||
|
msgFileThumbLinkOutFgSelected: #31a298;
|
||||||
|
msgFileInBg: windowBgActive;
|
||||||
|
msgFileInBgOver: #4eade3;
|
||||||
|
msgFileInBgSelected: #51a3d3;
|
||||||
|
msgFileOutBg: #78c67f;
|
||||||
|
msgFileOutBgOver: #6bc272;
|
||||||
|
msgFileOutBgSelected: #5fb389;
|
||||||
|
|
||||||
|
msgFile1Bg: #72b1df; // blue
|
||||||
|
msgFile1BgDark: #5c9ece;
|
||||||
|
msgFile1BgOver: #5294c4;
|
||||||
|
msgFile1BgSelected: #5099d0;
|
||||||
|
msgFile2Bg: #61b96e; // green
|
||||||
|
msgFile2BgDark: #4da859;
|
||||||
|
msgFile2BgOver: #44a050;
|
||||||
|
msgFile2BgSelected: #46a07e;
|
||||||
|
msgFile3Bg: #e47272; // red
|
||||||
|
msgFile3BgDark: #cd5b5e;
|
||||||
|
msgFile3BgOver: #c35154;
|
||||||
|
msgFile3BgSelected: #9f6a82;
|
||||||
|
msgFile4Bg: #efc274; // yellow
|
||||||
|
msgFile4BgDark: #e6a561;
|
||||||
|
msgFile4BgOver: #dc9c5a;
|
||||||
|
msgFile4BgSelected: #b19d84;
|
||||||
|
|
||||||
|
historyFileInIconFg: msgInBg;
|
||||||
|
historyFileInIconFgSelected: msgInBgSelected;
|
||||||
|
historyFileInRadialFg: historyFileInIconFg;
|
||||||
|
historyFileInRadialFgSelected: historyFileInIconFgSelected;
|
||||||
|
historyFileOutIconFg: msgOutBg;
|
||||||
|
historyFileOutIconFgSelected: msgOutBgSelected;
|
||||||
|
historyFileOutRadialFg: historyFileOutIconFg;
|
||||||
|
historyFileOutRadialFgSelected: historyFileOutIconFgSelected;
|
||||||
|
historyFileThumbIconFg: msgInBg;
|
||||||
|
historyFileThumbIconFgSelected: msgInBgSelected;
|
||||||
|
historyFileThumbRadialFg: historyFileThumbIconFg;
|
||||||
|
historyFileThumbRadialFgSelected: historyFileThumbIconFgSelected;
|
||||||
|
|
||||||
|
msgWaveformInActive: windowBgActive;
|
||||||
|
msgWaveformInActiveSelected: #51a3d3;
|
||||||
|
msgWaveformInInactive: #d4dee6;
|
||||||
|
msgWaveformInInactiveSelected: #9cc1e1;
|
||||||
|
msgWaveformOutActive: #78c67f;
|
||||||
|
msgWaveformOutActiveSelected: #6badad;
|
||||||
|
msgWaveformOutInactive: #b3e2b4;
|
||||||
|
msgWaveformOutInactiveSelected: #91c3c3;
|
||||||
|
|
||||||
|
msgBotKbOverBgAdd: #ffffff20;
|
||||||
|
msgBotKbIconFg: msgServiceFg;
|
||||||
|
msgBotKbRippleBg: #00000020;
|
||||||
|
|
||||||
|
mediaInFg: msgInDateFg;
|
||||||
|
mediaInFgSelected: msgInDateFgSelected;
|
||||||
|
mediaOutFg: msgOutDateFg;
|
||||||
|
mediaOutFgSelected: msgOutDateFgSelected;
|
||||||
|
|
||||||
|
youtubePlayIconBg: #e83131c8;
|
||||||
|
youtubePlayIconFg: windowFgActive;
|
||||||
|
videoPlayIconBg: #0000007f;
|
||||||
|
videoPlayIconFg: #ffffff;
|
||||||
|
toastBg: #000000b2;
|
||||||
|
toastFg: windowFgActive;
|
||||||
|
|
||||||
|
reportSpamBg: emojiPanHeaderBg;
|
||||||
|
reportSpamFg: windowFg;
|
||||||
|
|
||||||
|
historyToDownShadow: #00000040;
|
||||||
|
historyComposeAreaBg: msgInBg;
|
||||||
|
historyComposeAreaFg: historyTextInFg;
|
||||||
|
historyComposeAreaFgService: msgInDateFg;
|
||||||
|
historyComposeIconFg: menuIconFg;
|
||||||
|
historyComposeIconFgOver: menuIconFgOver;
|
||||||
|
historySendIconFg: windowBgActive;
|
||||||
|
historySendIconFgOver: windowBgActive;
|
||||||
|
historyPinnedBg: historyComposeAreaBg;
|
||||||
|
historyReplyBg: historyComposeAreaBg;
|
||||||
|
historyReplyIconFg: windowBgActive;
|
||||||
|
historyReplyCancelFg: cancelIconFg;
|
||||||
|
historyReplyCancelFgOver: cancelIconFgOver;
|
||||||
|
|
||||||
|
historyComposeButtonBg: historyComposeAreaBg;
|
||||||
|
historyComposeButtonBgOver: windowBgOver;
|
||||||
|
historyComposeButtonBgRipple: windowBgRipple;
|
||||||
|
|
||||||
|
// overview
|
||||||
|
overviewCheckBg: #00000040;
|
||||||
|
overviewCheckFg: windowBg;
|
||||||
|
overviewCheckFgActive: windowBg;
|
||||||
|
overviewPhotoSelectOverlay: #40ace333;
|
||||||
|
|
||||||
|
// profile
|
||||||
|
profileStatusFgOver: #7c99b2;
|
||||||
|
profileVerifiedCheckBg: windowBgActive;
|
||||||
|
profileVerifiedCheckFg: windowFgActive;
|
||||||
|
|
||||||
|
// settings
|
||||||
|
notificationsBoxMonitorFg: windowFg;
|
||||||
|
notificationsBoxScreenBg: dialogsBgActive; // #6389a8;
|
||||||
|
|
||||||
|
notificationSampleUserpicFg: windowBgActive;
|
||||||
|
notificationSampleCloseFg: #d7d7d7 | windowSubTextFg;
|
||||||
|
notificationSampleTextFg: #d7d7d7 | windowSubTextFg;
|
||||||
|
notificationSampleNameFg: #939393 | windowSubTextFg;
|
||||||
|
|
||||||
|
mainMenuBg: windowBg;
|
||||||
|
mainMenuCoverBg: dialogsBgActive;
|
||||||
|
mainMenuCoverFg: windowFgActive;
|
||||||
|
|
||||||
|
mediaPlayerBg: windowBg;
|
||||||
|
mediaPlayerActiveFg: windowBgActive;
|
||||||
|
mediaPlayerInactiveFg: sliderBgInactive;
|
||||||
|
mediaPlayerDisabledFg: #9dd1ef;
|
||||||
|
|
||||||
|
// mediaview
|
||||||
|
mediaviewFileBg: windowBg;
|
||||||
|
mediaviewFileNameFg: windowFg;
|
||||||
|
mediaviewFileSizeFg: windowSubTextFg;
|
||||||
|
mediaviewFileRedCornerFg: #d55959;
|
||||||
|
mediaviewFileYellowCornerFg: #e8a659;
|
||||||
|
mediaviewFileGreenCornerFg: #49a957;
|
||||||
|
mediaviewFileBlueCornerFg: #599dcf;
|
||||||
|
mediaviewFileExtFg: activeButtonFg;
|
||||||
|
|
||||||
|
mediaviewMenuBg: #383838;
|
||||||
|
mediaviewMenuBgOver: #505050;
|
||||||
|
mediaviewMenuBgRipple: #676767;
|
||||||
|
mediaviewMenuFg: windowFgActive;
|
||||||
|
|
||||||
|
mediaviewBg: #222222eb;
|
||||||
|
mediaviewVideoBg: imageBg;
|
||||||
|
mediaviewControlBg: #0000003c;
|
||||||
|
mediaviewControlFg: windowFgActive;
|
||||||
|
mediaviewCaptionBg: #11111180;
|
||||||
|
mediaviewCaptionFg: mediaviewControlFg;
|
||||||
|
mediaviewTextLinkFg: #91d9ff;
|
||||||
|
mediaviewSaveMsgBg: toastBg;
|
||||||
|
mediaviewSaveMsgFg: toastFg;
|
||||||
|
|
||||||
|
mediaviewPlaybackActive: #c7c7c7;
|
||||||
|
mediaviewPlaybackInactive: #252525;
|
||||||
|
mediaviewPlaybackActiveOver: #ffffff;
|
||||||
|
mediaviewPlaybackInactiveOver: #474747;
|
||||||
|
mediaviewPlaybackProgressFg: #ffffffc7;
|
||||||
|
mediaviewPlaybackIconFg: mediaviewPlaybackActive;
|
||||||
|
mediaviewPlaybackIconFgOver: mediaviewPlaybackActiveOver;
|
||||||
|
mediaviewTransparentBg: #ffffff;
|
||||||
|
mediaviewTransparentFg: #cccccc;
|
||||||
|
|
||||||
|
// notification
|
||||||
|
notificationBg: windowBg;
|
|
@ -0,0 +1,397 @@
|
||||||
|
//
|
||||||
|
// This is a sample Telegram Desktop theme file.
|
||||||
|
// It was generated from the 'colors.palette' style file.
|
||||||
|
//
|
||||||
|
// To create a theme with a background image included you should
|
||||||
|
// put two files in a .zip archive:
|
||||||
|
//
|
||||||
|
// First one is the color scheme like the one you're viewing
|
||||||
|
// right now, this file should be named 'colors.tdesktop-theme'.
|
||||||
|
//
|
||||||
|
// Second one should be the background image and it can be named
|
||||||
|
// 'background.jpg', 'background.png', 'tiled.jpg' or 'tiled.png'.
|
||||||
|
// You should name it 'background' (if you'd like it not to be tiled),
|
||||||
|
// or it can be named 'tiled' (if you'd like it to be tiled).
|
||||||
|
//
|
||||||
|
// After that you need to change the extension of your .zip archive
|
||||||
|
// to 'tdesktop-theme', so you'll have:
|
||||||
|
//
|
||||||
|
// mytheme.tdesktop-theme
|
||||||
|
// |-colors.tdesktop-theme
|
||||||
|
// |-background.jpg (or tiled.jpg, background.png, tiled.png)
|
||||||
|
//
|
||||||
|
|
||||||
|
windowBg: #ffffff;
|
||||||
|
windowFg: #000000;
|
||||||
|
windowBgOver: #f1f1f1;
|
||||||
|
windowBgRipple: #e5e5e5;
|
||||||
|
windowFgOver: windowFg;
|
||||||
|
windowSubTextFg: #999999;
|
||||||
|
windowSubTextFgOver: #919191;
|
||||||
|
windowBoldFg: #222222;
|
||||||
|
windowBoldFgOver: #222222;
|
||||||
|
windowBgActive: #40a7e3;
|
||||||
|
windowFgActive: #ffffff;
|
||||||
|
windowActiveTextFg: #168acd;
|
||||||
|
windowShadowFg: #000000;
|
||||||
|
windowShadowFgFallback: #f1f1f1;
|
||||||
|
shadowFg: #00000018;
|
||||||
|
slideFadeOutBg: #0000003c;
|
||||||
|
slideFadeOutShadowFg: windowShadowFg;
|
||||||
|
imageBg: #000000;
|
||||||
|
imageBgTransparent: #ffffff;
|
||||||
|
activeButtonBg: windowBgActive;
|
||||||
|
activeButtonBgOver: #39a5db;
|
||||||
|
activeButtonBgRipple: #2095d0;
|
||||||
|
activeButtonFg: windowFgActive;
|
||||||
|
activeButtonFgOver: activeButtonFg;
|
||||||
|
activeButtonSecondaryFg: #cceeff;
|
||||||
|
activeButtonSecondaryFgOver: activeButtonSecondaryFg;
|
||||||
|
activeLineFg: #37a1de;
|
||||||
|
activeLineFgError: #e48383;
|
||||||
|
lightButtonBg: windowBg;
|
||||||
|
lightButtonBgOver: #e3f1fa;
|
||||||
|
lightButtonBgRipple: #c9e4f6;
|
||||||
|
lightButtonFg: windowActiveTextFg;
|
||||||
|
lightButtonFgOver: lightButtonFg;
|
||||||
|
attentionButtonFg: #d14e4e;
|
||||||
|
attentionButtonFgOver: #d14e4e;
|
||||||
|
attentionButtonBgOver: #fcdfde;
|
||||||
|
attentionButtonBgRipple: #f4c3c2;
|
||||||
|
outlineButtonBg: windowBg;
|
||||||
|
outlineButtonBgOver: lightButtonBgOver;
|
||||||
|
outlineButtonOutlineFg: windowBgActive;
|
||||||
|
outlineButtonBgRipple: lightButtonBgRipple;
|
||||||
|
menuBg: windowBg;
|
||||||
|
menuBgOver: windowBgOver;
|
||||||
|
menuBgRipple: windowBgRipple;
|
||||||
|
menuIconFg: #a8a8a8;
|
||||||
|
menuIconFgOver: #999999;
|
||||||
|
menuSubmenuArrowFg: #373737;
|
||||||
|
menuFgDisabled: #cccccc;
|
||||||
|
menuSeparatorFg: #f1f1f1;
|
||||||
|
scrollBarBg: #00000053;
|
||||||
|
scrollBarBgOver: #0000007a;
|
||||||
|
scrollBg: #0000001a;
|
||||||
|
scrollBgOver: #0000002c;
|
||||||
|
smallCloseIconFg: #c7c7c7;
|
||||||
|
smallCloseIconFgOver: #a3a3a3;
|
||||||
|
radialFg: windowFgActive;
|
||||||
|
radialBg: #00000056;
|
||||||
|
placeholderFg: windowSubTextFg;
|
||||||
|
placeholderFgActive: #aaaaaa;
|
||||||
|
inputBorderFg: #e0e0e0;
|
||||||
|
filterInputBorderFg: #54c3f3;
|
||||||
|
filterInputInactiveBg: windowBgOver;
|
||||||
|
checkboxFg: #b3b3b3;
|
||||||
|
sliderBgInactive: #e1eaef;
|
||||||
|
sliderBgActive: windowBgActive;
|
||||||
|
tooltipBg: #eef2f5;
|
||||||
|
tooltipFg: #5d6c80;
|
||||||
|
tooltipBorderFg: #c9d1db;
|
||||||
|
titleBg: windowBgOver;
|
||||||
|
titleShadow: #00000003;
|
||||||
|
titleButtonFg: #ababab;
|
||||||
|
titleButtonBgOver: #e5e5e5;
|
||||||
|
titleButtonFgOver: #9a9a9a;
|
||||||
|
titleButtonCloseBgOver: #e81123;
|
||||||
|
titleButtonCloseFgOver: windowFgActive;
|
||||||
|
titleFgActive: #3e3c3e;
|
||||||
|
titleFg: #acacac;
|
||||||
|
trayCounterBg: #f23c34;
|
||||||
|
trayCounterBgMute: #888888;
|
||||||
|
trayCounterFg: #ffffff;
|
||||||
|
trayCounterBgMacInvert: #ffffff;
|
||||||
|
trayCounterFgMacInvert: #ffffff01;
|
||||||
|
layerBg: #0000007f;
|
||||||
|
cancelIconFg: menuIconFg;
|
||||||
|
cancelIconFgOver: menuIconFgOver;
|
||||||
|
boxBg: windowBg;
|
||||||
|
boxTextFg: windowFg;
|
||||||
|
boxTextFgGood: #4ab44a;
|
||||||
|
boxTextFgError: #d84d4d;
|
||||||
|
boxTitleFg: #404040;
|
||||||
|
boxSearchBg: boxBg;
|
||||||
|
boxSearchCancelIconFg: cancelIconFg;
|
||||||
|
boxSearchCancelIconFgOver: cancelIconFgOver;
|
||||||
|
boxTitleAdditionalFg: #808080;
|
||||||
|
boxTitleCloseFg: cancelIconFg;
|
||||||
|
boxTitleCloseFgOver: cancelIconFgOver;
|
||||||
|
membersAboutLimitFg: windowSubTextFgOver;
|
||||||
|
contactsBg: windowBg;
|
||||||
|
contactsBgOver: windowBgOver;
|
||||||
|
contactsNameFg: boxTextFg;
|
||||||
|
contactsStatusFg: windowSubTextFg;
|
||||||
|
contactsStatusFgOver: windowSubTextFgOver;
|
||||||
|
contactsStatusFgOnline: windowActiveTextFg;
|
||||||
|
photoCropFadeBg: layerBg;
|
||||||
|
photoCropPointFg: #ffffff7f;
|
||||||
|
introBg: windowBg;
|
||||||
|
introTitleFg: windowBoldFg;
|
||||||
|
introDescriptionFg: windowSubTextFg;
|
||||||
|
introErrorFg: windowSubTextFg;
|
||||||
|
introCoverTopBg: #0f89d0;
|
||||||
|
introCoverBottomBg: #39b0f0;
|
||||||
|
introCoverIconsFg: #5ec6ff;
|
||||||
|
introCoverPlaneTrace: #5ec6ff69;
|
||||||
|
introCoverPlaneInner: #c6d8e8;
|
||||||
|
introCoverPlaneOuter: #a1bed4;
|
||||||
|
introCoverPlaneTop: #ffffff;
|
||||||
|
dialogsMenuIconFg: menuIconFg;
|
||||||
|
dialogsMenuIconFgOver: menuIconFgOver;
|
||||||
|
dialogsBg: windowBg;
|
||||||
|
dialogsNameFg: windowBoldFg;
|
||||||
|
dialogsChatIconFg: dialogsNameFg;
|
||||||
|
dialogsDateFg: windowSubTextFg;
|
||||||
|
dialogsTextFg: windowSubTextFg;
|
||||||
|
dialogsTextFgService: windowActiveTextFg;
|
||||||
|
dialogsDraftFg: #dd4b39;
|
||||||
|
dialogsVerifiedIconBg: windowBgActive;
|
||||||
|
dialogsVerifiedIconFg: windowFgActive;
|
||||||
|
dialogsSendingIconFg: #c1c1c1;
|
||||||
|
dialogsSentIconFg: #5dc452;
|
||||||
|
dialogsUnreadBg: windowBgActive;
|
||||||
|
dialogsUnreadBgMuted: #bbbbbb;
|
||||||
|
dialogsUnreadFg: windowFgActive;
|
||||||
|
dialogsBgOver: windowBgOver;
|
||||||
|
dialogsNameFgOver: windowBoldFgOver;
|
||||||
|
dialogsChatIconFgOver: dialogsNameFgOver;
|
||||||
|
dialogsDateFgOver: windowSubTextFgOver;
|
||||||
|
dialogsTextFgOver: windowSubTextFgOver;
|
||||||
|
dialogsTextFgServiceOver: dialogsTextFgService;
|
||||||
|
dialogsDraftFgOver: dialogsDraftFg;
|
||||||
|
dialogsVerifiedIconBgOver: dialogsVerifiedIconBg;
|
||||||
|
dialogsVerifiedIconFgOver: dialogsVerifiedIconFg;
|
||||||
|
dialogsSendingIconFgOver: dialogsSendingIconFg;
|
||||||
|
dialogsSentIconFgOver: dialogsSentIconFg;
|
||||||
|
dialogsUnreadBgOver: dialogsUnreadBg;
|
||||||
|
dialogsUnreadBgMutedOver: dialogsUnreadBgMuted;
|
||||||
|
dialogsUnreadFgOver: dialogsUnreadFg;
|
||||||
|
dialogsBgActive: #419fd9;
|
||||||
|
dialogsNameFgActive: windowFgActive;
|
||||||
|
dialogsChatIconFgActive: dialogsNameFgActive;
|
||||||
|
dialogsDateFgActive: windowFgActive;
|
||||||
|
dialogsTextFgActive: windowFgActive;
|
||||||
|
dialogsTextFgServiceActive: dialogsTextFgActive;
|
||||||
|
dialogsDraftFgActive: #c6e1f7;
|
||||||
|
dialogsVerifiedIconBgActive: dialogsTextFgActive;
|
||||||
|
dialogsVerifiedIconFgActive: dialogsBgActive;
|
||||||
|
dialogsSendingIconFgActive: #ffffff99;
|
||||||
|
dialogsSentIconFgActive: dialogsTextFgActive;
|
||||||
|
dialogsUnreadBgActive: dialogsTextFgActive;
|
||||||
|
dialogsUnreadBgMutedActive: dialogsDraftFgActive;
|
||||||
|
dialogsUnreadFgActive: dialogsBgActive;
|
||||||
|
dialogsForwardBg: dialogsBgActive;
|
||||||
|
dialogsForwardFg: dialogsNameFgActive;
|
||||||
|
searchedBarBg: windowBgOver;
|
||||||
|
searchedBarBorder: shadowFg;
|
||||||
|
searchedBarFg: windowSubTextFgOver;
|
||||||
|
topBarBg: windowBg;
|
||||||
|
emojiPanBg: windowBg;
|
||||||
|
emojiPanCategories: #f7f7f7; // windowBg;
|
||||||
|
emojiPanHeaderFg: windowSubTextFg;
|
||||||
|
emojiPanHeaderBg: #fffffff2; // emojiPanBg;
|
||||||
|
stickerPanDeleteBg: #000000cc;
|
||||||
|
stickerPanDeleteFg: windowFgActive;
|
||||||
|
stickerPreviewBg: #ffffffb0;
|
||||||
|
historyTextInFg: windowFg;
|
||||||
|
historyTextOutFg: windowFg;
|
||||||
|
historyCaptionInFg: historyTextInFg;
|
||||||
|
historyCaptionOutFg: historyTextOutFg;
|
||||||
|
historyFileNameInFg: historyTextInFg;
|
||||||
|
historyFileNameOutFg: historyTextOutFg;
|
||||||
|
historyOutIconFg: dialogsSentIconFg;
|
||||||
|
historyOutIconFgSelected: #4da79f;
|
||||||
|
historyIconFgInverted: windowFgActive;
|
||||||
|
historySendingOutIconFg: #98d292;
|
||||||
|
historySendingInIconFg: #a0adb5;
|
||||||
|
historySendingInvertedIconFg: #ffffffc8;
|
||||||
|
historySystemBg: #89a0b47f;
|
||||||
|
historySystemBgSelected: #bbc8d4a2;
|
||||||
|
historySystemFg: windowFgActive;
|
||||||
|
historyUnreadBarBg: #fcfbfa;
|
||||||
|
historyUnreadBarBorder: shadowFg;
|
||||||
|
historyUnreadBarFg: #538bb4;
|
||||||
|
historyForwardChooseBg: #0000004c;
|
||||||
|
historyForwardChooseFg: windowFgActive;
|
||||||
|
historyPeer1NameFg: #c03d33;
|
||||||
|
historyPeer1UserpicBg: #e17076;
|
||||||
|
historyPeer2NameFg: #4fad2d;
|
||||||
|
historyPeer2UserpicBg: #7bc862;
|
||||||
|
historyPeer3NameFg: #d09306;
|
||||||
|
historyPeer3UserpicBg: #e5ca77;
|
||||||
|
historyPeer4NameFg: windowActiveTextFg;
|
||||||
|
historyPeer4UserpicBg: #65aadd;
|
||||||
|
historyPeer5NameFg: #8544d6;
|
||||||
|
historyPeer5UserpicBg: #a695e7;
|
||||||
|
historyPeer6NameFg: #cd4073;
|
||||||
|
historyPeer6UserpicBg: #ee7aae;
|
||||||
|
historyPeer7NameFg: #2996ad;
|
||||||
|
historyPeer7UserpicBg: #6ec9cb;
|
||||||
|
historyPeer8NameFg: #ce671b;
|
||||||
|
historyPeer8UserpicBg: #faa774;
|
||||||
|
historyPeerUserpicFg: windowFgActive;
|
||||||
|
historyScrollBarBg: #517c417a;
|
||||||
|
historyScrollBarBgOver: #517c41bc;
|
||||||
|
historyScrollBg: #517c414c;
|
||||||
|
historyScrollBgOver: #517c416b;
|
||||||
|
msgInBg: windowBg;
|
||||||
|
msgInBgSelected: #c2dcf2;
|
||||||
|
msgOutBg: #effdde;
|
||||||
|
msgOutBgSelected: #b7dbdb;
|
||||||
|
msgSelectOverlay: #358cd44c;
|
||||||
|
msgStickerOverlay: #358cd47f;
|
||||||
|
msgInServiceFg: windowActiveTextFg;
|
||||||
|
msgInServiceFgSelected: windowActiveTextFg;
|
||||||
|
msgOutServiceFg: #3a8e26;
|
||||||
|
msgOutServiceFgSelected: #367570;
|
||||||
|
msgInShadow: #748ea229;
|
||||||
|
msgInShadowSelected: #548dbb29;
|
||||||
|
msgOutShadow: #3ac34740;
|
||||||
|
msgOutShadowSelected: #37a78e40;
|
||||||
|
msgInDateFg: #a0acb6;
|
||||||
|
msgInDateFgSelected: #6a9cc5;
|
||||||
|
msgOutDateFg: #6cc264;
|
||||||
|
msgOutDateFgSelected: #50a79c;
|
||||||
|
msgServiceFg: windowFgActive;
|
||||||
|
msgServiceBg: #517c417f;
|
||||||
|
msgServiceBgSelected: #96b38ba2;
|
||||||
|
msgInReplyBarColor: activeLineFg;
|
||||||
|
msgInReplyBarSelColor: activeLineFg;
|
||||||
|
msgOutReplyBarColor: historyOutIconFg;
|
||||||
|
msgOutReplyBarSelColor: historyOutIconFgSelected;
|
||||||
|
msgImgReplyBarColor: msgServiceFg;
|
||||||
|
msgInMonoFg: #4e7391;
|
||||||
|
msgOutMonoFg: #469165;
|
||||||
|
msgDateImgFg: msgServiceFg;
|
||||||
|
msgDateImgBg: #00000054;
|
||||||
|
msgDateImgBgOver: #00000074;
|
||||||
|
msgDateImgBgSelected: #1c4a7187;
|
||||||
|
msgFileThumbLinkInFg: lightButtonFg;
|
||||||
|
msgFileThumbLinkInFgSelected: lightButtonFgOver;
|
||||||
|
msgFileThumbLinkOutFg: #5eba5b;
|
||||||
|
msgFileThumbLinkOutFgSelected: #31a298;
|
||||||
|
msgFileInBg: windowBgActive;
|
||||||
|
msgFileInBgOver: #4eade3;
|
||||||
|
msgFileInBgSelected: #51a3d3;
|
||||||
|
msgFileOutBg: #78c67f;
|
||||||
|
msgFileOutBgOver: #6bc272;
|
||||||
|
msgFileOutBgSelected: #5fb389;
|
||||||
|
msgFile1Bg: #72b1df;
|
||||||
|
msgFile1BgDark: #5c9ece;
|
||||||
|
msgFile1BgOver: #5294c4;
|
||||||
|
msgFile1BgSelected: #5099d0;
|
||||||
|
msgFile2Bg: #61b96e;
|
||||||
|
msgFile2BgDark: #4da859;
|
||||||
|
msgFile2BgOver: #44a050;
|
||||||
|
msgFile2BgSelected: #46a07e;
|
||||||
|
msgFile3Bg: #e47272;
|
||||||
|
msgFile3BgDark: #cd5b5e;
|
||||||
|
msgFile3BgOver: #c35154;
|
||||||
|
msgFile3BgSelected: #9f6a82;
|
||||||
|
msgFile4Bg: #efc274;
|
||||||
|
msgFile4BgDark: #e6a561;
|
||||||
|
msgFile4BgOver: #dc9c5a;
|
||||||
|
msgFile4BgSelected: #b19d84;
|
||||||
|
historyFileInIconFg: msgInBg;
|
||||||
|
historyFileInIconFgSelected: msgInBgSelected;
|
||||||
|
historyFileInRadialFg: historyFileInIconFg;
|
||||||
|
historyFileInRadialFgSelected: historyFileInIconFgSelected;
|
||||||
|
historyFileOutIconFg: msgOutBg;
|
||||||
|
historyFileOutIconFgSelected: msgOutBgSelected;
|
||||||
|
historyFileOutRadialFg: historyFileOutIconFg;
|
||||||
|
historyFileOutRadialFgSelected: historyFileOutIconFgSelected;
|
||||||
|
historyFileThumbIconFg: msgInBg;
|
||||||
|
historyFileThumbIconFgSelected: msgInBgSelected;
|
||||||
|
historyFileThumbRadialFg: historyFileThumbIconFg;
|
||||||
|
historyFileThumbRadialFgSelected: historyFileThumbIconFgSelected;
|
||||||
|
msgWaveformInActive: windowBgActive;
|
||||||
|
msgWaveformInActiveSelected: #51a3d3;
|
||||||
|
msgWaveformInInactive: #d4dee6;
|
||||||
|
msgWaveformInInactiveSelected: #9cc1e1;
|
||||||
|
msgWaveformOutActive: #78c67f;
|
||||||
|
msgWaveformOutActiveSelected: #6badad;
|
||||||
|
msgWaveformOutInactive: #b3e2b4;
|
||||||
|
msgWaveformOutInactiveSelected: #91c3c3;
|
||||||
|
msgBotKbOverBgAdd: #ffffff20;
|
||||||
|
msgBotKbIconFg: msgServiceFg;
|
||||||
|
msgBotKbRippleBg: #00000020;
|
||||||
|
mediaInFg: msgInDateFg;
|
||||||
|
mediaInFgSelected: msgInDateFgSelected;
|
||||||
|
mediaOutFg: msgOutDateFg;
|
||||||
|
mediaOutFgSelected: msgOutDateFgSelected;
|
||||||
|
youtubePlayIconBg: #e83131c8;
|
||||||
|
youtubePlayIconFg: windowFgActive;
|
||||||
|
videoPlayIconBg: #0000007f;
|
||||||
|
videoPlayIconFg: #ffffff;
|
||||||
|
toastBg: #000000b2;
|
||||||
|
toastFg: windowFgActive;
|
||||||
|
reportSpamBg: emojiPanHeaderBg;
|
||||||
|
reportSpamFg: windowFg;
|
||||||
|
historyToDownShadow: #00000040;
|
||||||
|
historyComposeAreaBg: msgInBg;
|
||||||
|
historyComposeAreaFg: historyTextInFg;
|
||||||
|
historyComposeAreaFgService: msgInDateFg;
|
||||||
|
historyComposeIconFg: menuIconFg;
|
||||||
|
historyComposeIconFgOver: menuIconFgOver;
|
||||||
|
historySendIconFg: windowBgActive;
|
||||||
|
historySendIconFgOver: windowBgActive;
|
||||||
|
historyPinnedBg: historyComposeAreaBg;
|
||||||
|
historyReplyBg: historyComposeAreaBg;
|
||||||
|
historyReplyIconFg: windowBgActive;
|
||||||
|
historyReplyCancelFg: cancelIconFg;
|
||||||
|
historyReplyCancelFgOver: cancelIconFgOver;
|
||||||
|
historyComposeButtonBg: historyComposeAreaBg;
|
||||||
|
historyComposeButtonBgOver: windowBgOver;
|
||||||
|
historyComposeButtonBgRipple: windowBgRipple;
|
||||||
|
overviewCheckBg: #00000040;
|
||||||
|
overviewCheckFg: windowBg;
|
||||||
|
overviewCheckFgActive: windowBg;
|
||||||
|
overviewPhotoSelectOverlay: #40ace333;
|
||||||
|
profileStatusFgOver: #7c99b2;
|
||||||
|
profileVerifiedCheckBg: windowBgActive;
|
||||||
|
profileVerifiedCheckFg: windowFgActive;
|
||||||
|
notificationsBoxMonitorFg: windowFg;
|
||||||
|
notificationsBoxScreenBg: dialogsBgActive;
|
||||||
|
notificationSampleUserpicFg: windowBgActive;
|
||||||
|
notificationSampleCloseFg: #d7d7d7; // windowSubTextFg;
|
||||||
|
notificationSampleTextFg: #d7d7d7; // windowSubTextFg;
|
||||||
|
notificationSampleNameFg: #939393; // windowSubTextFg;
|
||||||
|
mainMenuBg: windowBg;
|
||||||
|
mainMenuCoverBg: dialogsBgActive;
|
||||||
|
mainMenuCoverFg: windowFgActive;
|
||||||
|
mediaPlayerBg: windowBg;
|
||||||
|
mediaPlayerActiveFg: windowBgActive;
|
||||||
|
mediaPlayerInactiveFg: sliderBgInactive;
|
||||||
|
mediaPlayerDisabledFg: #9dd1ef;
|
||||||
|
mediaviewFileBg: windowBg;
|
||||||
|
mediaviewFileNameFg: windowFg;
|
||||||
|
mediaviewFileSizeFg: windowSubTextFg;
|
||||||
|
mediaviewFileRedCornerFg: #d55959;
|
||||||
|
mediaviewFileYellowCornerFg: #e8a659;
|
||||||
|
mediaviewFileGreenCornerFg: #49a957;
|
||||||
|
mediaviewFileBlueCornerFg: #599dcf;
|
||||||
|
mediaviewFileExtFg: activeButtonFg;
|
||||||
|
mediaviewMenuBg: #383838;
|
||||||
|
mediaviewMenuBgOver: #505050;
|
||||||
|
mediaviewMenuBgRipple: #676767;
|
||||||
|
mediaviewMenuFg: windowFgActive;
|
||||||
|
mediaviewBg: #222222eb;
|
||||||
|
mediaviewVideoBg: imageBg;
|
||||||
|
mediaviewControlBg: #0000003c;
|
||||||
|
mediaviewControlFg: windowFgActive;
|
||||||
|
mediaviewCaptionBg: #11111180;
|
||||||
|
mediaviewCaptionFg: mediaviewControlFg;
|
||||||
|
mediaviewTextLinkFg: #91d9ff;
|
||||||
|
mediaviewSaveMsgBg: toastBg;
|
||||||
|
mediaviewSaveMsgFg: toastFg;
|
||||||
|
mediaviewPlaybackActive: #c7c7c7;
|
||||||
|
mediaviewPlaybackInactive: #252525;
|
||||||
|
mediaviewPlaybackActiveOver: #ffffff;
|
||||||
|
mediaviewPlaybackInactiveOver: #474747;
|
||||||
|
mediaviewPlaybackProgressFg: #ffffffc7;
|
||||||
|
mediaviewPlaybackIconFg: mediaviewPlaybackActive;
|
||||||
|
mediaviewPlaybackIconFgOver: mediaviewPlaybackActiveOver;
|
||||||
|
mediaviewTransparentBg: #ffffff;
|
||||||
|
mediaviewTransparentFg: #cccccc;
|
||||||
|
notificationBg: windowBg;
|
After Width: | Height: | Size: 218 B |
After Width: | Height: | Size: 282 B |
Before Width: | Height: | Size: 151 B After Width: | Height: | Size: 148 B |
Before Width: | Height: | Size: 283 B After Width: | Height: | Size: 269 B |
Before Width: | Height: | Size: 187 B |
Before Width: | Height: | Size: 296 B |
Before Width: | Height: | Size: 190 B |
Before Width: | Height: | Size: 294 B |
Before Width: | Height: | Size: 85 B |
Before Width: | Height: | Size: 105 B |
After Width: | Height: | Size: 156 B |
After Width: | Height: | Size: 247 B |
Before Width: | Height: | Size: 316 B After Width: | Height: | Size: 107 B |
Before Width: | Height: | Size: 590 B After Width: | Height: | Size: 126 B |
After Width: | Height: | Size: 197 B |
After Width: | Height: | Size: 273 B |
Before Width: | Height: | Size: 335 B After Width: | Height: | Size: 265 B |
Before Width: | Height: | Size: 602 B After Width: | Height: | Size: 490 B |
After Width: | Height: | Size: 285 B |
After Width: | Height: | Size: 444 B |
After Width: | Height: | Size: 110 B |
After Width: | Height: | Size: 148 B |
After Width: | Height: | Size: 307 B |
After Width: | Height: | Size: 541 B |
After Width: | Height: | Size: 287 B |
After Width: | Height: | Size: 450 B |
Before Width: | Height: | Size: 128 B |
Before Width: | Height: | Size: 146 B |
After Width: | Height: | Size: 639 B |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 131 B |
After Width: | Height: | Size: 182 B |
After Width: | Height: | Size: 137 B |
After Width: | Height: | Size: 243 B |
After Width: | Height: | Size: 501 B |
After Width: | Height: | Size: 777 B |
After Width: | Height: | Size: 518 B |
After Width: | Height: | Size: 1.0 KiB |
After Width: | Height: | Size: 554 B |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 360 B |
After Width: | Height: | Size: 628 B |
After Width: | Height: | Size: 668 B |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 546 B |
After Width: | Height: | Size: 968 B |
After Width: | Height: | Size: 606 B |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 145 B |
After Width: | Height: | Size: 213 B |
After Width: | Height: | Size: 432 B |
After Width: | Height: | Size: 859 B |
After Width: | Height: | Size: 465 B |
After Width: | Height: | Size: 817 B |
After Width: | Height: | Size: 546 B |
After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 142 B After Width: | Height: | Size: 142 B |
Before Width: | Height: | Size: 190 B After Width: | Height: | Size: 190 B |
Before Width: | Height: | Size: 139 B |
Before Width: | Height: | Size: 192 B |
After Width: | Height: | Size: 445 B |