CardGame.cpp 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. /*
  2. * Copyright (c) 2022, Sam Atkins <atkinssj@serenityos.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #include "CardGame.h"
  7. #include <LibConfig/Client.h>
  8. #include <LibGfx/Palette.h>
  9. namespace Cards {
  10. CardGame::CardGame()
  11. {
  12. auto background_color = Gfx::Color::from_string(Config::read_string("Games"sv, "Cards"sv, "BackgroundColor"sv));
  13. set_background_color(background_color.value_or(Color::from_rgb(0x008000)));
  14. }
  15. void CardGame::config_string_did_change(String const& domain, String const& group, String const& key, String const& value)
  16. {
  17. if (domain == "Games" && group == "Cards" && key == "BackgroundColor") {
  18. if (auto maybe_color = Gfx::Color::from_string(value); maybe_color.has_value()) {
  19. set_background_color(maybe_color.value());
  20. }
  21. }
  22. }
  23. Gfx::Color CardGame::background_color() const
  24. {
  25. return palette().color(background_role());
  26. }
  27. void CardGame::set_background_color(Gfx::Color const& color)
  28. {
  29. auto new_palette = palette();
  30. new_palette.set_color(Gfx::ColorRole::Background, color);
  31. set_palette(new_palette);
  32. }
  33. }