/* This file is part of Telegram Desktop, the official desktop application for the Telegram messaging service. For license and copyright information please follow this link: https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL */ #pragma once #include "ui/layers/generic_box.h" namespace Data { struct CloudTheme; } // namespace Data namespace Window { class Controller; namespace Theme { struct Object; struct ParsedTheme; void StartEditor( not_null window, const Data::CloudTheme &cloud); void CreateBox( not_null box, not_null window); void CreateForExistingBox( not_null box, not_null window, const Data::CloudTheme &cloud); void SaveTheme( not_null window, const Data::CloudTheme &cloud, const QByteArray &palette, Fn unlock); void SaveThemeBox( not_null box, not_null window, const Data::CloudTheme &cloud, const QByteArray &palette); [[nodiscard]] bool PaletteChanged( const QByteArray &editorPalette, const Data::CloudTheme &cloud); [[nodiscard]] QByteArray CollectForExport(const QByteArray &palette); [[nodiscard]] ParsedTheme ParseTheme( const Object &theme, bool onlyPalette = false, bool parseCurrent = true); } // namespace Theme } // namespace Window