Some colors split for the palette. Theme preview applying improved.

Also attempting to fix travis build.
This commit is contained in:
John Preston 2017-01-11 12:16:44 +04:00
parent 30c9bcb985
commit 2d185cf66e
13 changed files with 121 additions and 70 deletions

View File

@ -596,6 +596,7 @@ buildTelegram() {
-Dtravis_defines=${GYP_DEFINES:1} \
-Dlinux_path_xkbcommon=$XKB_PATH \
-Dlinux_path_va=$VA_PATH \
-Dlinux_path_vdpau=$VDPAU_PATH \
-Dlinux_path_ffmpeg=$FFMPEG_PATH \
-Dlinux_path_openal=$OPENAL_PATH \
-Dlinux_path_qt=$QT_PATH \

View File

@ -93,6 +93,7 @@ placeholderFg: windowSubTextFg;
placeholderFgActive: #aaaaaa;
inputBorderFg: #e0e0e0;
filterInputBorderFg: #54c3f3;
filterInputInactiveBg: windowBgOver;
checkboxFg: #b3b3b3;
sliderBgInactive: #e1eaef;
@ -275,10 +276,10 @@ historyPeer8NameFg: #ce671b; // orange
historyPeer8UserpicBg: #faa774;
historyPeerUserpicFg: windowFgActive;
historyScrollBarBg: #556e837a;
historyScrollBarBgOver: #556e83bc;
historyScrollBg: #556e834c;
historyScrollBgOver: #556e836b;
historyScrollBarBg: #517c417a;
historyScrollBarBgOver: #517c41bc;
historyScrollBg: #517c414c;
historyScrollBgOver: #517c416b;
msgInBg: windowBg;
msgInBgSelected: #c2dcf2; // #358cd4 with 30% opacity
@ -299,8 +300,8 @@ msgInDateFgSelected: #6a9cc5;
msgOutDateFg: #6cc264;
msgOutDateFgSelected: #50a79c;
msgServiceFg: windowFgActive;
msgServiceBg: #556e837f;
msgServiceBgSelected: #8ca0b3a2;
msgServiceBg: #517c417f;
msgServiceBgSelected: #96b38ba2;
msgInReplyBarColor: activeLineFg;
msgInReplyBarSelColor: activeLineFg;
msgOutReplyBarColor: historyOutIconFg;
@ -341,6 +342,19 @@ 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;

View File

@ -82,6 +82,7 @@ placeholderFg: windowSubTextFg;
placeholderFgActive: #aaaaaa;
inputBorderFg: #e0e0e0;
filterInputBorderFg: #54c3f3;
filterInputInactiveBg: windowBgOver;
checkboxFg: #b3b3b3;
sliderBgInactive: #e1eaef;
sliderBgActive: windowBgActive;
@ -230,10 +231,10 @@ historyPeer7UserpicBg: #6ec9cb;
historyPeer8NameFg: #ce671b;
historyPeer8UserpicBg: #faa774;
historyPeerUserpicFg: windowFgActive;
historyScrollBarBg: #556e837a;
historyScrollBarBgOver: #556e83bc;
historyScrollBg: #556e834c;
historyScrollBgOver: #556e836b;
historyScrollBarBg: #517c417a;
historyScrollBarBgOver: #517c41bc;
historyScrollBg: #517c414c;
historyScrollBgOver: #517c416b;
msgInBg: windowBg;
msgInBgSelected: #c2dcf2;
msgOutBg: #effdde;
@ -253,8 +254,8 @@ msgInDateFgSelected: #6a9cc5;
msgOutDateFg: #6cc264;
msgOutDateFgSelected: #50a79c;
msgServiceFg: windowFgActive;
msgServiceBg: #556e837f;
msgServiceBgSelected: #8ca0b3a2;
msgServiceBg: #517c417f;
msgServiceBgSelected: #96b38ba2;
msgInReplyBarColor: activeLineFg;
msgInReplyBarSelColor: activeLineFg;
msgOutReplyBarColor: historyOutIconFg;
@ -292,6 +293,18 @@ 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;

View File

@ -102,30 +102,37 @@ membersInnerItem: ProfilePeerListItem {
statusFgActive: windowActiveTextFg;
}
historyFileOutImage: icon {{ "history_file_image", msgOutBg }};
historyFileOutImageSelected: icon {{ "history_file_image", msgOutBgSelected }};
historyFileInImage: icon {{ "history_file_image", msgInBg }};
historyFileInImageSelected: icon {{ "history_file_image", msgInBgSelected }};
historyFileOutDocument: icon {{ "history_file_document", msgOutBg }};
historyFileOutDocumentSelected: icon {{ "history_file_document", msgOutBgSelected }};
historyFileInDocument: icon {{ "history_file_document", msgInBg }};
historyFileInDocumentSelected: icon {{ "history_file_document", msgInBgSelected }};
historyFileOutDownload: icon {{ "history_file_download", msgOutBg }};
historyFileOutDownloadSelected: icon {{ "history_file_download", msgOutBgSelected }};
historyFileInDownload: icon {{ "history_file_download", msgInBg }};
historyFileInDownloadSelected: icon {{ "history_file_download", msgInBgSelected }};
historyFileOutCancel: icon {{ "history_file_cancel", msgOutBg }};
historyFileOutCancelSelected: icon {{ "history_file_cancel", msgOutBgSelected }};
historyFileInCancel: icon {{ "history_file_cancel", msgInBg }};
historyFileInCancelSelected: icon {{ "history_file_cancel", msgInBgSelected }};
historyFileOutPause: icon {{ "history_file_pause", msgOutBg }};
historyFileOutPauseSelected: icon {{ "history_file_pause", msgOutBgSelected }};
historyFileInPause: icon {{ "history_file_pause", msgInBg }};
historyFileInPauseSelected: icon {{ "history_file_pause", msgInBgSelected }};
historyFileOutPlay: icon {{ "history_file_play", msgOutBg }};
historyFileOutPlaySelected: icon {{ "history_file_play", msgOutBgSelected }};
historyFileInPlay: icon {{ "history_file_play", msgInBg }};
historyFileInPlaySelected: icon {{ "history_file_play", msgInBgSelected }};
historyFileOutImage: icon {{ "history_file_image", historyFileOutIconFg }};
historyFileOutImageSelected: icon {{ "history_file_image", historyFileOutIconFgSelected }};
historyFileInImage: icon {{ "history_file_image", historyFileInIconFg }};
historyFileInImageSelected: icon {{ "history_file_image", historyFileInIconFgSelected }};
historyFileOutDocument: icon {{ "history_file_document", historyFileOutIconFg }};
historyFileOutDocumentSelected: icon {{ "history_file_document", historyFileOutIconFgSelected }};
historyFileInDocument: icon {{ "history_file_document", historyFileInIconFg }};
historyFileInDocumentSelected: icon {{ "history_file_document", historyFileInIconFgSelected }};
historyFileOutDownload: icon {{ "history_file_download", historyFileOutIconFg }};
historyFileOutDownloadSelected: icon {{ "history_file_download", historyFileOutIconFgSelected }};
historyFileInDownload: icon {{ "history_file_download", historyFileInIconFg }};
historyFileInDownloadSelected: icon {{ "history_file_download", historyFileInIconFgSelected }};
historyFileOutCancel: icon {{ "history_file_cancel", historyFileOutIconFg }};
historyFileOutCancelSelected: icon {{ "history_file_cancel", historyFileOutIconFgSelected }};
historyFileInCancel: icon {{ "history_file_cancel", historyFileInIconFg }};
historyFileInCancelSelected: icon {{ "history_file_cancel", historyFileInIconFgSelected }};
historyFileOutPause: icon {{ "history_file_pause", historyFileOutIconFg }};
historyFileOutPauseSelected: icon {{ "history_file_pause", historyFileOutIconFgSelected }};
historyFileInPause: icon {{ "history_file_pause", historyFileInIconFg }};
historyFileInPauseSelected: icon {{ "history_file_pause", historyFileInIconFgSelected }};
historyFileOutPlay: icon {{ "history_file_play", historyFileOutIconFg }};
historyFileOutPlaySelected: icon {{ "history_file_play", historyFileOutIconFgSelected }};
historyFileInPlay: icon {{ "history_file_play", historyFileInIconFg }};
historyFileInPlaySelected: icon {{ "history_file_play", historyFileInIconFgSelected }};
historyFileThumbDownload: icon {{ "history_file_download", historyFileThumbIconFg }};
historyFileThumbDownloadSelected: icon {{ "history_file_download", historyFileThumbIconFgSelected }};
historyFileThumbCancel: icon {{ "history_file_cancel", historyFileThumbIconFg }};
historyFileThumbCancelSelected: icon {{ "history_file_cancel", historyFileThumbIconFgSelected }};
historyFileThumbPlay: icon {{ "history_file_play", historyFileThumbIconFg }};
historyFileThumbPlaySelected: icon {{ "history_file_play", historyFileThumbIconFgSelected }};
historySendStateSpace: 24px;
historySendStatePosition: point(-17px, -19px);

View File

@ -422,26 +422,24 @@ void HistoryPhoto::draw(Painter &p, const QRect &r, TextSelection selection, Tim
p.drawEllipse(inner);
}
p.setOpacity(radial ? _animation->radial.opacity() : 1);
p.setOpacity(radialOpacity);
auto icon = ([radial, this, selected]() -> const style::icon* {
if (radial || _data->loading()) {
auto delayed = _data->full->toDelayedStorageImage();
if (!delayed || !delayed->location().isNull()) {
return &(selected ? st::historyFileInCancelSelected : st::historyFileInCancel);
return &(selected ? st::historyFileThumbCancelSelected : st::historyFileThumbCancel);
}
return nullptr;
}
return &(selected ? st::historyFileInDownloadSelected : st::historyFileInDownload);
return &(selected ? st::historyFileThumbDownloadSelected : st::historyFileThumbDownload);
})();
if (icon) {
icon->paintInCenter(p, inner);
}
p.setOpacity(1);
if (radial) {
p.setOpacity(1);
QRect rinner(inner.marginsRemoved(QMargins(st::msgFileRadialLine, st::msgFileRadialLine, st::msgFileRadialLine, st::msgFileRadialLine)));
_animation->radial.draw(p, rinner, st::msgFileRadialLine, selected ? st::msgInBgSelected : st::msgInBg);
_animation->radial.draw(p, rinner, st::msgFileRadialLine, selected ? st::historyFileThumbRadialFgSelected : st::historyFileThumbRadialFg);
}
}
@ -766,16 +764,16 @@ void HistoryVideo::draw(Painter &p, const QRect &r, TextSelection selection, Tim
auto icon = ([loaded, radial, this, selected] {
if (loaded) {
return &(selected ? st::historyFileInPlaySelected : st::historyFileInPlay);
return &(selected ? st::historyFileThumbPlaySelected : st::historyFileThumbPlay);
} else if (radial || _data->loading()) {
return &(selected ? st::historyFileInCancelSelected : st::historyFileInCancel);
return &(selected ? st::historyFileThumbCancelSelected : st::historyFileThumbCancel);
}
return &(selected ? st::historyFileInDownloadSelected : st::historyFileInDownload);
return &(selected ? st::historyFileThumbDownloadSelected : st::historyFileThumbDownload);
})();
icon->paintInCenter(p, inner);
if (radial) {
QRect rinner(inner.marginsRemoved(QMargins(st::msgFileRadialLine, st::msgFileRadialLine, st::msgFileRadialLine, st::msgFileRadialLine)));
_animation->radial.draw(p, rinner, st::msgFileRadialLine, selected ? st::msgInBgSelected : st::msgInBg);
_animation->radial.draw(p, rinner, st::msgFileRadialLine, selected ? st::historyFileThumbRadialFgSelected : st::historyFileThumbRadialFg);
}
int32 statusX = skipx + st::msgDateImgDelta + st::msgDateImgPadding.x(), statusY = skipy + st::msgDateImgDelta + st::msgDateImgPadding.y();
@ -1135,9 +1133,9 @@ void HistoryDocument::draw(Painter &p, const QRect &r, TextSelection selection,
p.setOpacity(radialOpacity);
auto icon = ([radial, this, selected] {
if (radial || _data->loading()) {
return &(selected ? st::historyFileInCancelSelected : st::historyFileInCancel);
return &(selected ? st::historyFileThumbCancelSelected : st::historyFileThumbCancel);
}
return &(selected ? st::historyFileInDownloadSelected : st::historyFileInDownload);
return &(selected ? st::historyFileThumbDownloadSelected : st::historyFileThumbDownload);
})();
p.setOpacity((radial && loaded) ? _animation->radial.opacity() : 1);
icon->paintInCenter(p, inner);
@ -1145,7 +1143,7 @@ void HistoryDocument::draw(Painter &p, const QRect &r, TextSelection selection,
p.setOpacity(1);
QRect rinner(inner.marginsRemoved(QMargins(st::msgFileRadialLine, st::msgFileRadialLine, st::msgFileRadialLine, st::msgFileRadialLine)));
_animation->radial.draw(p, rinner, st::msgFileRadialLine, selected ? st::msgInBgSelected : st::msgInBg);
_animation->radial.draw(p, rinner, st::msgFileRadialLine, selected ? st::historyFileThumbRadialFgSelected : st::historyFileThumbRadialFg);
}
}
@ -1182,8 +1180,8 @@ void HistoryDocument::draw(Painter &p, const QRect &r, TextSelection selection,
if (radial) {
QRect rinner(inner.marginsRemoved(QMargins(st::msgFileRadialLine, st::msgFileRadialLine, st::msgFileRadialLine, st::msgFileRadialLine)));
auto &bg = outbg ? (selected ? st::msgOutBgSelected : st::msgOutBg) : (selected ? st::msgInBgSelected : st::msgInBg);
_animation->radial.draw(p, rinner, st::msgFileRadialLine, bg);
auto fg = outbg ? (selected ? st::historyFileOutRadialFgSelected : st::historyFileOutRadialFg) : (selected ? st::historyFileInRadialFgSelected : st::historyFileInRadialFg);
_animation->radial.draw(p, rinner, st::msgFileRadialLine, fg);
}
auto icon = ([showPause, radial, this, loaded, outbg, selected] {
@ -1769,14 +1767,14 @@ void HistoryGif::draw(Painter &p, const QRect &r, TextSelection selection, TimeM
p.setOpacity(radialOpacity);
auto icon = ([this, radial, selected]() -> const style::icon * {
if (_data->loaded() && !radial) {
return &(selected ? st::historyFileInPlaySelected : st::historyFileInPlay);
return &(selected ? st::historyFileThumbPlaySelected : st::historyFileThumbPlay);
} else if (radial || _data->loading()) {
if (_parent->id > 0 || _data->uploading()) {
return &(selected ? st::historyFileInCancelSelected : st::historyFileInCancel);
return &(selected ? st::historyFileThumbCancelSelected : st::historyFileThumbCancel);
}
return nullptr;
}
return &(selected ? st::historyFileInDownloadSelected : st::historyFileInDownload);
return &(selected ? st::historyFileThumbDownloadSelected : st::historyFileThumbDownload);
})();
if (icon) {
icon->paintInCenter(p, inner);
@ -1784,7 +1782,7 @@ void HistoryGif::draw(Painter &p, const QRect &r, TextSelection selection, TimeM
if (radial) {
p.setOpacity(1);
QRect rinner(inner.marginsRemoved(QMargins(st::msgFileRadialLine, st::msgFileRadialLine, st::msgFileRadialLine, st::msgFileRadialLine)));
_animation->radial.draw(p, rinner, st::msgFileRadialLine, selected ? st::msgInBgSelected : st::msgInBg);
_animation->radial.draw(p, rinner, st::msgFileRadialLine, selected ? st::historyFileThumbRadialFgSelected : st::historyFileThumbRadialFg);
}
if (!animating || _parent->id < 0) {

View File

@ -399,17 +399,17 @@ void Video::paint(Painter &p, const QRect &clip, TextSelection selection, const
p.setOpacity((radial && loaded) ? _radial->opacity() : 1);
auto icon = ([radial, loaded, selected] {
if (radial) {
return &(selected ? st::historyFileInCancelSelected : st::historyFileInCancel);
return &(selected ? st::historyFileThumbCancelSelected : st::historyFileThumbCancel);
} else if (loaded) {
return &(selected ? st::historyFileInPlaySelected : st::historyFileInPlay);
return &(selected ? st::historyFileThumbPlaySelected : st::historyFileThumbPlay);
}
return &(selected ? st::historyFileInDownloadSelected : st::historyFileInDownload);
return &(selected ? st::historyFileThumbDownloadSelected : st::historyFileThumbDownload);
})();
icon->paintInCenter(p, inner);
if (radial) {
p.setOpacity(1);
QRect rinner(inner.marginsRemoved(QMargins(st::msgFileRadialLine, st::msgFileRadialLine, st::msgFileRadialLine, st::msgFileRadialLine)));
_radial->draw(p, rinner, st::msgFileRadialLine, selected ? st::msgInBgSelected : st::msgInBg);
_radial->draw(p, rinner, st::msgFileRadialLine, selected ? st::historyFileThumbRadialFgSelected : st::historyFileThumbRadialFg);
}
}
@ -830,16 +830,16 @@ void Document::paint(Painter &p, const QRect &clip, TextSelection selection, con
p.setOpacity(radialOpacity);
auto icon = ([loaded, this, selected] {
if (loaded || _data->loading()) {
return &(selected ? st::historyFileInCancelSelected : st::historyFileInCancel);
return &(selected ? st::historyFileThumbCancelSelected : st::historyFileThumbCancel);
}
return &(selected ? st::historyFileInDownloadSelected : st::historyFileInDownload);
return &(selected ? st::historyFileThumbDownloadSelected : st::historyFileThumbDownload);
})();
icon->paintInCenter(p, inner);
if (radial) {
p.setOpacity(1);
QRect rinner(inner.marginsRemoved(QMargins(st::msgFileRadialLine, st::msgFileRadialLine, st::msgFileRadialLine, st::msgFileRadialLine)));
_radial->draw(p, rinner, st::msgFileRadialLine, selected ? st::msgInBgSelected : st::msgInBg);
_radial->draw(p, rinner, st::msgFileRadialLine, selected ? st::historyFileThumbRadialFgSelected : st::historyFileThumbRadialFg);
}
}
}

View File

@ -80,7 +80,7 @@ void BackgroundRow::paintEvent(QPaintEvent *e) {
p.drawPixmap(0, 0, _background);
} else {
const QPixmap &pix = App::main()->newBackgroundThumb()->pixBlurred(st::settingsBackgroundSize);
p.drawPixmap(0, 0, st::settingsBackgroundSize, st::settingsBackgroundSize, pix, 0, (pix.height() - st::settingsBackgroundSize) / 2, st::settingsBackgroundSize, st::settingsBackgroundSize);
p.drawPixmap(0, 0, st::settingsBackgroundSize, st::settingsBackgroundSize, pix, 0, (pix.height() - st::settingsBackgroundSize * cIntRetinaFactor()) / 2, st::settingsBackgroundSize * cIntRetinaFactor(), st::settingsBackgroundSize * cIntRetinaFactor());
}
auto outer = radialRect();

View File

@ -97,7 +97,7 @@ extern transition easeOutBack;
extern transition easeInCirc;
extern transition easeOutCirc;
extern transition easeInCubic;
extern transition easeOutCirc;
extern transition easeOutCubic;
extern transition easeInQuint;
extern transition easeOutQuint;

View File

@ -72,7 +72,7 @@ RippleAnimation::Ripple::Ripple(const style::RippleAnimation &st, QPoint origin,
}
_radiusTo = qRound(sqrt(_radiusTo));
_show.start(UpdateCallback(_update), 0., 1., _st.showDuration, anim::easeOutCirc);
_show.start(UpdateCallback(_update), 0., 1., _st.showDuration, anim::easeOutQuint);
}
RippleAnimation::Ripple::Ripple(const style::RippleAnimation &st, const QPixmap &mask, const UpdateCallback &update)

View File

@ -461,7 +461,7 @@ defaultLinkButton: LinkButton {
defaultRippleAnimation: RippleAnimation {
color: windowBgRipple;
showDuration: 450;
showDuration: 650;
hideDuration: 200;
}
@ -542,7 +542,7 @@ defaultSolidScroll: ScrollArea(defaultScrollArea) {
defaultInputFont: font(17px);
defaultFlatInput: FlatInput {
textColor: windowFg;
bgColor: windowBgOver;
bgColor: filterInputInactiveBg;
bgActive: windowBg;
width: 210px;
height: 40px;
@ -551,7 +551,7 @@ defaultFlatInput: FlatInput {
font: defaultInputFont;
borderWidth: 2px;
borderColor: windowBgOver;
borderColor: filterInputInactiveBg;
borderActive: filterInputBorderFg;
phColor: placeholderFg;

View File

@ -421,7 +421,13 @@ void ChatBackground::setPreparedImage(QImage &&image) {
image = std_::move(image).convertToFormat(QImage::Format_ARGB32_Premultiplied);
image.setDevicePixelRatio(cRetinaFactor());
if (_id != kThemeBackground && _id != internal::kTestingThemeBackground) {
initColorsFromBackground(image);
auto colorsFromSomeTheme = Local::hasTheme();
if (instance && !instance->applying.paletteForRevert.isEmpty()) {
colorsFromSomeTheme = !instance->applying.path.isEmpty();
}
if (colorsFromSomeTheme || (_id != kDefaultBackground && _id != internal::kTestingDefaultBackground)) {
initColorsFromBackground(image);
}
}
auto width = image.width();
@ -520,16 +526,22 @@ void ChatBackground::setTestingTheme(Instance &&theme) {
saveForRevert();
setImage(internal::kTestingThemeBackground, std_::move(theme.background));
setTile(theme.tiled);
} else {
// Apply current background image so that service bg colors are recounted.
setImage(_id, std_::move(_pixmap).toImage());
}
notify(BackgroundUpdate(BackgroundUpdate::Type::TestingTheme, _tile), true);
}
void ChatBackground::setTestingDefaultTheme() {
style::main_palette::reset();
if (_id != kDefaultBackground) {
if (_id == kThemeBackground) {
saveForRevert();
setImage(internal::kTestingDefaultBackground);
setTile(false);
} else {
// Apply current background image so that service bg colors are recounted.
setImage(_id, std_::move(_pixmap).toImage());
}
notify(BackgroundUpdate(BackgroundUpdate::Type::TestingTheme, _tile), true);
}
@ -560,6 +572,9 @@ void ChatBackground::revert() {
if (_id == internal::kTestingThemeBackground || _id == internal::kTestingDefaultBackground) {
setTile(_tileForRevert);
setImage(_idForRevert, std_::move(_imageForRevert));
} else {
// Apply current background image so that service bg colors are recounted.
setImage(_id, std_::move(_pixmap).toImage());
}
notify(BackgroundUpdate(BackgroundUpdate::Type::RevertingTheme, _tile), true);
}

View File

@ -829,6 +829,7 @@ void Generator::paintService(QString text) {
auto bubbleLeft = _history.x() + (_history.width() - bubbleWidth) / 2;
_p->drawRoundedRect(bubbleLeft, bubbleTop, bubbleWidth, bubbleHeight, radius, radius);
_p->setPen(st::msgServiceFg[_palette]);
_p->setFont(st::msgServiceFont);
_p->drawText(bubbleLeft + st::msgServicePadding.left(), bubbleTop + st::msgServicePadding.top() + st::msgServiceFont->ascent, text);
_historyBottom = bubbleTop - st::msgServiceMargin.top();
}

View File

@ -31,6 +31,7 @@
'linux_path_openal%': '/usr/local',
'linux_path_libexif_lib%': '<(libs_loc)/libexif-0.6.20/libexif/.libs',
'linux_path_va%': '/usr/local',
'linux_path_vdpau%': '/usr/local',
'linux_path_breakpad%': '<(libs_loc)/breakpad',
},
'include_dirs': [
@ -45,6 +46,7 @@
'<(linux_path_openal)/lib',
'<(linux_path_libexif_lib)',
'<(linux_path_va)/lib',
'<(linux_path_vdpau)/lib',
'<(linux_path_breakpad)/lib',
],
'libraries': [