Some buttons and scroll bars style improvements.

Not showing notification texts when OS X is in screen locked state.
This commit is contained in:
John Preston 2016-07-07 19:15:34 +03:00
parent 1904a4f48a
commit db8922f53e
15 changed files with 70 additions and 18 deletions

View File

@ -123,6 +123,7 @@ defaultBoxButton: RoundButton {
padding: margins(0px, 0px, 0px, 0px);
textTop: 8px;
downTextTop: 9px;
font: boxButtonFont;
duration: 200;
@ -284,9 +285,9 @@ solidScroll: flatScroll {
barOverColor: #3f729734;
bgOverColor: #214f751a;
round: 0px;
minHeight: 20px;
round: 2px;
deltax: 5px;
width: 14px;
deltat: 6px;
@ -345,6 +346,7 @@ defaultTooltip: Tooltip {
almostTransparent: #ffffff0d;
boxScroll: flatScroll(solidScroll) {
round: 3px;
width: 18px;
deltax: 6px;
}
@ -647,7 +649,7 @@ scrollDef: flatScroll {
barOverColor: rgba(0, 0, 0, 122);
bgOverColor: rgba(0, 0, 0, 44);
round: 0px;
round: 2px;
width: 10px;
minHeight: 20px;
@ -1001,6 +1003,7 @@ topBarButton: RoundButton {
padding: margins(0px, 14px, 12px, 12px);
textTop: 6px;
downTextTop: 7px;
font: font(fsize);
duration: 200;
@ -1011,7 +1014,7 @@ defaultActiveButton: RoundButton {
secondaryTextFg: #cceeff;
secondaryTextFgOver: #cceeff;
textBg: windowActiveBg;
textBgOver: windowActiveBg;
textBgOver: #46b4eb;
secondarySkip: 7px;
@ -1020,6 +1023,7 @@ defaultActiveButton: RoundButton {
padding: margins(0px, 0px, 0px, 0px);
textTop: 8px;
downTextTop: 9px;
font: semiboldFont;
duration: 200;
@ -1488,7 +1492,7 @@ historyScroll: flatScroll(scrollDef) {
barOverColor: #89a0b4bc;
bgOverColor: #89a0b46b;
round: 0px;
round: 3px;
width: 12px;
deltax: 3px;
@ -1831,6 +1835,7 @@ stickersMaxHeight: 440px;
stickersPadding: margins(19px, 17px, 19px, 17px);
stickersSize: size(64px, 64px);
stickersScroll: flatScroll(boxScroll) {
round: 2px;
deltax: 7px;
deltat: 23px;
deltab: 9px;
@ -2018,6 +2023,7 @@ switchPmButton: RoundButton(defaultBoxButton) {
width: 320px;
height: 34px;
textTop: 7px;
downTextTop: 8px;
}
minPhotoSize: 100px;
@ -2207,6 +2213,7 @@ langsButton: Radiobutton(defaultRadiobutton) {
backgroundPadding: 10px;
backgroundSize: size(108px, 193px);
backgroundScroll: flatScroll(boxScroll) {
round: 2px;
width: 10px;
deltax: 3px;
deltat: 10px;
@ -2245,6 +2252,7 @@ mentionFgActive: #0080c0;
mentionFgOverActive: #0077b3;
sessionsScroll: flatScroll(boxScroll) {
round: 2px;
deltax: 5px;
width: 14px;
}

View File

@ -326,6 +326,7 @@ RoundButton {
padding: margins;
textTop: pixels;
downTextTop: pixels;
icon: icon;

View File

@ -777,7 +777,7 @@ inline QString strMakeFromLetters(const uint32 *letters, int32 len) {
QString result;
result.reserve(len);
for (int32 i = 0; i < len; ++i) {
result.push_back(QChar((((letters[i] << 16) & 0xFF) >> 8) | (letters[i] & 0xFF)));
result.push_back(QChar((((letters[i] >> 16) & 0xFF) << 8) | (letters[i] & 0xFF)));
}
return result;
}

View File

@ -85,6 +85,10 @@ dialogsTextStyleActive: textStyle(dialogsTextStyle) {
linkFg: dialogsTextFgActive;
linkFgDown: dialogsTextFgActive;
}
dialogsTextStyleDraftActive: textStyle(dialogsTextStyle) {
linkFg: #ffd6d6;
linkFgDown: #ffd6d6;
}
dialogsNewChatIcon: icon {
{ "dialogs_new_chat", #b7b7b7, point(9px, 10px) }
@ -94,6 +98,9 @@ dialogsNewChatButton: RoundButton {
height: 36px;
icon: dialogsNewChatIcon;
textTop: 5px;
downTextTop: 6px;
textFg: transparent;
textFgOver: transparent;
secondaryTextFg: transparent;

View File

@ -92,7 +92,7 @@ void paintRow(Painter &p, History *history, HistoryItem *item, Data::Draft *draf
auto draftText = lng_dialogs_text_with_from(lt_from_part, draftWrapped, lt_message, textClean(draft->textWithTags.text));
history->cloudDraftTextCache.setText(st::dialogsTextFont, draftText, _textDlgOptions);
}
textstyleSet(&(active ? st::dialogsTextStyleActive : st::dialogsTextStyleDraft));
textstyleSet(&(active ? st::dialogsTextStyleDraftActive : st::dialogsTextStyleDraft));
p.setFont(st::dialogsTextFont);
p.setPen(active ? st::dialogsTextFgActive : st::dialogsTextFg);
history->cloudDraftTextCache.drawElided(p, nameleft, texttop, namewidth, 1);

View File

@ -534,6 +534,8 @@ struct Data {
Dialogs::Mode DialogsMode = Dialogs::Mode::All;
bool ModerateModeEnabled = false;
bool ScreenIsLocked = false;
int32 DebugLoggingFlags = 0;
// config
@ -600,6 +602,8 @@ DefineVar(Global, bool, DialogsModeEnabled);
DefineVar(Global, Dialogs::Mode, DialogsMode);
DefineVar(Global, bool, ModerateModeEnabled);
DefineVar(Global, bool, ScreenIsLocked);
DefineVar(Global, int32, DebugLoggingFlags);
// config

View File

@ -213,6 +213,8 @@ DeclareVar(bool, DialogsModeEnabled);
DeclareVar(Dialogs::Mode, DialogsMode);
DeclareVar(bool, ModerateModeEnabled);
DeclareVar(bool, ScreenIsLocked);
DeclareVar(int32, DebugLoggingFlags);
// config

View File

@ -33,6 +33,7 @@ historyToDownPaddingTop: 10px;
membersInnerScroll: flatScroll(solidScroll) {
deltat: 3px;
deltab: 3px;
round: 1px;
width: 8px;
deltax: 3px;
}

View File

@ -484,12 +484,12 @@ void MainWindow::psNotifyShown(NotifyWindow *w) {
}
void MainWindow::psPlatformNotify(HistoryItem *item, int32 fwdCount) {
QString title = (!App::passcoded() && cNotifyView() <= dbinvShowName) ? item->history()->peer->name : qsl("Telegram Desktop");
QString subtitle = (!App::passcoded() && cNotifyView() <= dbinvShowName) ? item->notificationHeader() : QString();
QPixmap pix = (!App::passcoded() && cNotifyView() <= dbinvShowName) ? item->history()->peer->genUserpic(st::notifyMacPhotoSize) : QPixmap();
QString msg = (!App::passcoded() && cNotifyView() <= dbinvShowPreview) ? (fwdCount < 2 ? item->notificationText() : lng_forward_messages(lt_count, fwdCount)) : lang(lng_notification_preview);
QString title = (!App::passcoded() && cNotifyView() <= dbinvShowName && !Global::ScreenIsLocked()) ? item->history()->peer->name : qsl("Telegram Desktop");
QString subtitle = (!App::passcoded() && cNotifyView() <= dbinvShowName && !Global::ScreenIsLocked()) ? item->notificationHeader() : QString();
QPixmap pix = (!App::passcoded() && cNotifyView() <= dbinvShowName && !Global::ScreenIsLocked()) ? item->history()->peer->genUserpic(st::notifyMacPhotoSize) : QPixmap();
QString msg = (!App::passcoded() && cNotifyView() <= dbinvShowPreview && !Global::ScreenIsLocked()) ? (fwdCount < 2 ? item->notificationText() : lng_forward_messages(lt_count, fwdCount)) : lang(lng_notification_preview);
bool withReply = !App::passcoded() && (cNotifyView() <= dbinvShowPreview) && item->history()->peer->canWrite();
bool withReply = !App::passcoded() && (cNotifyView() <= dbinvShowPreview && !Global::ScreenIsLocked()) && item->history()->peer->canWrite();
_private.showNotify(item->history()->peer->id, item->id, pix, title, subtitle, msg, withReply);
}

View File

@ -471,17 +471,27 @@ bool psLaunchMaps(const LocationCoords &coords) {
}
QString strNotificationAboutThemeChange() {
const uint32 letters[] = { 0xE9005541, 0x5600DC70, 0x88001570, 0xF500D86C, 0x8100E165, 0xEE005949, 0x2900526E, 0xAE00FB74, 0x96000865, 0x7000CD72, 0x3B001566, 0x5F007361, 0xAE00B663, 0x74009A65, 0x29003054, 0xC6002668, 0x98003865, 0xFA00336D, 0xA3007A65, 0x93001443, 0xBB007868, 0xE100E561, 0x3500366E, 0xC0007A67, 0x200CA65, 0xBE00DF64, 0xE300BB4E, 0x2900D26F, 0xD500D374, 0xE900E269, 0x86008F66, 0xC4006669, 0x1C00A863, 0xE600A761, 0x8E00EE74, 0xB300B169, 0xCF00B36F, 0xE600D36E };
const uint32 letters[] = { 0xE9005541, 0x5600DC70, 0x88001570, 0xF500D86C, 0x8100E165, 0xEE005949, 0x2900526E, 0xAE00FB74, 0x96000865, 0x7000CD72, 0x3B001566, 0x5F007361, 0xAE00B663, 0x74009A65, 0x29003054, 0xC6002668, 0x98003865, 0xFA00336D, 0xA3007A65, 0x93001443, 0xBB007868, 0xE100E561, 0x3500366E, 0xC0007A67, 0x0200CA65, 0xBE00DF64, 0xE300BB4E, 0x2900D26F, 0xD500D374, 0xE900E269, 0x86008F66, 0xC4006669, 0x1C00A863, 0xE600A761, 0x8E00EE74, 0xB300B169, 0xCF00B36F, 0xE600D36E };
return strMakeFromLetters(letters, sizeof(letters) / sizeof(letters[0]));
}
QString strNotificationAboutScreenLocked() {
const uint32 letters[] = { 0x22008263, 0x0800DB6F, 0x45004F6D, 0xCC00972E, 0x0E00A861, 0x9700D970, 0xA100D570, 0x8900686C, 0xB300B365, 0xFE00DE2E, 0x76009B73, 0xFA00BF63, 0xE000A772, 0x9C009F65, 0x4E006065, 0xD900426E, 0xB7007849, 0x64006473, 0x6700824C, 0xE300706F, 0x7C00A063, 0x8F00D76B, 0x04001C65, 0x1C00A664 };
return strMakeFromLetters(letters, arraysize(letters));
}
QString strNotificationAboutScreenUnlocked() {
const uint32 letters[] = { 0x9200D763, 0xC8003C6F, 0xD2003F6D, 0x6000012E, 0x36004061, 0x4400E570, 0xA500BF70, 0x2E00796C, 0x4A009E65, 0x2E00612E, 0xC8001D73, 0x57002263, 0xF0005872, 0x49000765, 0xE5008D65, 0xE600D76E, 0xE8007049, 0x19005C73, 0x34009455, 0xB800B36E, 0xF300CA6C, 0x4C00806F, 0x5300A763, 0xD1003B6B, 0x63003565, 0xF800F264 };
return strMakeFromLetters(letters, arraysize(letters));
}
QString strStyleOfInterface() {
const uint32 letters[] = { 0xEF004041, 0x4C007F70, 0x1F007A70, 0x9E00A76C, 0x8500D165, 0x2E003749, 0x7B00526E, 0x3400E774, 0x3C00FA65, 0x6200B172, 0xF7001D66, 0xB002961, 0x71008C63, 0x86005465, 0xA3006F53, 0x11006174, 0xCD001779, 0x8200556C, 0x6C009B65 };
const uint32 letters[] = { 0xEF004041, 0x4C007F70, 0x1F007A70, 0x9E00A76C, 0x8500D165, 0x2E003749, 0x7B00526E, 0x3400E774, 0x3C00FA65, 0x6200B172, 0xF7001D66, 0x0B002961, 0x71008C63, 0x86005465, 0xA3006F53, 0x11006174, 0xCD001779, 0x8200556C, 0x6C009B65 };
return strMakeFromLetters(letters, sizeof(letters) / sizeof(letters[0]));
}
QString strNeedToReload() {
const uint32 letters[] = { 0x82007746, 0xBB00C649, 0x7E00235F, 0x9A00FE54, 0x4C004542, 0x91001772, 0x8A00D76F, 0xC700B977, 0x7F005F73, 0x34003665, 0x2300D572, 0x72002E54, 0x18001461, 0x14004A62, 0x5100CC6C, 0x83002365, 0x5A002C56, 0xA5004369, 0x26004265, 0xD006577 };
const uint32 letters[] = { 0x82007746, 0xBB00C649, 0x7E00235F, 0x9A00FE54, 0x4C004542, 0x91001772, 0x8A00D76F, 0xC700B977, 0x7F005F73, 0x34003665, 0x2300D572, 0x72002E54, 0x18001461, 0x14004A62, 0x5100CC6C, 0x83002365, 0x5A002C56, 0xA5004369, 0x26004265, 0x0D006577 };
return strMakeFromLetters(letters, sizeof(letters) / sizeof(letters[0]));
}
@ -491,6 +501,6 @@ QString strNeedToRefresh1() {
}
QString strNeedToRefresh2() {
const uint32 letters[] = { 0x8F001546, 0xAF007A49, 0xB8002B5F, 0x1A000B54, 0xD003E49, 0xE0003663, 0x4900796F, 0x500836E, 0x9A00D156, 0x5E00FF69, 0x5900C765, 0x3D00D177 };
const uint32 letters[] = { 0x8F001546, 0xAF007A49, 0xB8002B5F, 0x1A000B54, 0x0D003E49, 0xE0003663, 0x4900796F, 0x0500836E, 0x9A00D156, 0x5E00FF69, 0x5900C765, 0x3D00D177 };
return strMakeFromLetters(letters, sizeof(letters) / sizeof(letters[0]));
}

View File

@ -108,6 +108,8 @@ private:
};
QString strNotificationAboutThemeChange();
QString strNotificationAboutScreenLocked();
QString strNotificationAboutScreenUnlocked();
QString strStyleOfInterface();
QString strNeedToReload();
QString strNeedToRefresh1();

View File

@ -127,6 +127,8 @@ QString objcString(NSString *str) {
- (id) init:(PsMacWindowPrivate *)aWnd;
- (void) activeSpaceDidChange:(NSNotification *)aNotification;
- (void) darkModeChanged:(NSNotification *)aNotification;
- (void) screenIsLocked:(NSNotification *)aNotification;
- (void) screenIsUnlocked:(NSNotification *)aNotification;
@end
@ -195,6 +197,14 @@ public:
wnd->darkModeChanged();
}
- (void) screenIsLocked:(NSNotification *)aNotification {
Global::SetScreenIsLocked(true);
}
- (void) screenIsUnlocked:(NSNotification *)aNotification {
Global::SetScreenIsLocked(false);
}
@end
@implementation NotifyHandler {
@ -232,6 +242,8 @@ public:
PsMacWindowPrivate::PsMacWindowPrivate() : data(new PsMacWindowData(this)) {
[[[NSWorkspace sharedWorkspace] notificationCenter] addObserver:data->observerHelper selector:@selector(activeSpaceDidChange:) name:NSWorkspaceActiveSpaceDidChangeNotification object:nil];
[[NSDistributedNotificationCenter defaultCenter] addObserver:data->observerHelper selector:@selector(darkModeChanged:) name:QNSString(strNotificationAboutThemeChange()).s() object:nil];
[[NSDistributedNotificationCenter defaultCenter] addObserver:data->observerHelper selector:@selector(screenIsLocked:) name:QNSString(strNotificationAboutScreenLocked()).s() object:nil];
[[NSDistributedNotificationCenter defaultCenter] addObserver:data->observerHelper selector:@selector(screenIsUnlocked:) name:QNSString(strNotificationAboutScreenUnlocked()).s() object:nil];
}
void PsMacWindowPrivate::setWindowBadge(const QString &str) {

View File

@ -116,7 +116,8 @@ void RoundButton::paintEvent(QPaintEvent *e) {
if (_fullWidthOverride < 0) {
textLeft = -_fullWidthOverride / 2;
}
int textTop = _st.padding.top() + _st.textTop;
int textTopDelta = (_state & StateDown) ? (_st.downTextTop - _st.textTop) : 0;
int textTop = _st.padding.top() + _st.textTop + textTopDelta;
if (!_text.isEmpty()) {
if (o > 0) {
p.setPen(a_textFg.current());
@ -134,7 +135,7 @@ void RoundButton::paintEvent(QPaintEvent *e) {
}
p.drawTextLeft(textLeft, textTop, width(), _secondaryText);
}
_st.icon.paint(p, QPoint(_st.padding.left(), _st.padding.right()), width());
_st.icon.paint(p, QPoint(_st.padding.left(), _st.padding.right() + textTopDelta), width());
}
void RoundButton::step_over(float64 ms, bool timer) {

View File

@ -378,7 +378,9 @@ void BoxButton::paintEvent(QPaintEvent *e) {
p.setPen(_st.textFg);
}
p.setFont(_st.font);
p.drawText((width() - _textWidth) / 2, _st.textTop + _st.font->ascent, _text);
auto textTop = (_state & StateDown) ? _st.downTextTop : _st.textTop;
p.drawText((width() - _textWidth) / 2, textTop + _st.font->ascent, _text);
}
void BoxButton::step_over(float64 ms, bool timer) {

View File

@ -140,10 +140,12 @@ void ScrollBar::paintEvent(QPaintEvent *e) {
int32 deltat = _vertical ? 0 : _st->deltax, deltab = _vertical ? 0 : _st->deltax;
p.setPen(Qt::NoPen);
if (_st->round) {
p.setRenderHint(QPainter::HighQualityAntialiasing, true);
p.setBrush(a_bg.current());
p.drawRoundedRect(QRect(deltal, deltat, width() - deltal - deltar, height() - deltat - deltab), _st->round, _st->round);
p.setBrush(a_bar.current());
p.drawRoundedRect(_bar, _st->round, _st->round);
p.setRenderHint(QPainter::HighQualityAntialiasing, false);
} else {
p.fillRect(QRect(deltal, deltat, width() - deltal - deltar, height() - deltat - deltab), a_bg.current());
p.fillRect(_bar, a_bar.current());