/* This file is part of Telegram Desktop, the official desktop version of * Telegram messaging app, see https://desktop.telegram.org * * This code is in Public Domain, see license terms in .github/CONTRIBUTING.md * Copyright (C) 2017, Nicholas Guriev */ #include "boxes/mute_settings_box.h" #include "lang/lang_keys.h" #include "mainwidget.h" #include "styles/style_boxes.h" #include "ui/special_buttons.h" #include "ui/widgets/checkbox.h" #include "ui/widgets/labels.h" void MuteSettingsBox::prepare() { setTitle(langFactory(lng_disable_notifications_from_tray)); int y = 0; object_ptr info(this, st::boxLabel); info->setText(lang(lng_mute_box_tip)); info->moveToLeft(st::boxPadding.left(), y); y += info->height() + st::boxLittleSkip; auto icon = object_ptr( this, controller(), _peer, Ui::UserpicButton::Role::Custom, st::mutePhotoButton); icon->setPointerCursor(false); icon->moveToLeft(st::boxPadding.left(), y); object_ptr title(this, st::muteChatTitle); title->setText(App::peerName(_peer, true)); title->moveToLeft( st::boxPadding.left() + st::muteChatTitleLeft, y + (icon->height() / 2) - (title->height() / 2)); // the icon is always higher than this chat title y += icon->height() + st::boxMediumSkip; const int FOREVER = 8760; // in fact, this is mute only for 1 year auto group = std::make_shared(FOREVER); y += st::boxOptionListPadding.top(); for (int value : { 1, 4, 18, 72, FOREVER }) { // periods in hours QString text; if (value < 24) { text = lng_mute_duration_hours(lt_count, value); } else if (value < FOREVER) { text = lng_rights_chat_banned_day(lt_count, value / 24); } else { text = lang(lng_rights_chat_banned_forever); } object_ptr option(this, group, value, text); option->moveToLeft(st::boxPadding.left(), y); y += option->heightNoMargins() + st::boxOptionListSkip; } y += st::boxOptionListPadding.bottom() - st::boxOptionListSkip + st::defaultCheckbox.margin.bottom(); addButton(langFactory(lng_box_ok), [this, group] { App::main()->updateNotifySetting(_peer, NotifySettingSetMuted, SilentNotifiesDontChange, group->value() * 3600); closeBox(); }); addButton(langFactory(lng_cancel), [this] { closeBox(); }); setDimensions(st::boxWidth, y); } // vi: ts=4 tw=80