cmCursesCacheEntryComposite.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
  2. file Copyright.txt or https://cmake.org/licensing for details. */
  3. #pragma once
  4. #include "cmConfigure.h" // IWYU pragma: keep
  5. #include <memory>
  6. #include <string>
  7. class cmCursesLabelWidget;
  8. class cmCursesWidget;
  9. class cmState;
  10. class cmCursesCacheEntryComposite
  11. {
  12. public:
  13. cmCursesCacheEntryComposite(const std::string& key, int labelwidth,
  14. int entrywidth);
  15. cmCursesCacheEntryComposite(const std::string& key, cmState* state,
  16. bool isNew, int labelwidth, int entrywidth);
  17. ~cmCursesCacheEntryComposite();
  18. cmCursesCacheEntryComposite(cmCursesCacheEntryComposite const&) = delete;
  19. cmCursesCacheEntryComposite& operator=(cmCursesCacheEntryComposite const&) =
  20. delete;
  21. cmCursesCacheEntryComposite(cmCursesCacheEntryComposite&&) = default;
  22. cmCursesCacheEntryComposite& operator=(cmCursesCacheEntryComposite&&) =
  23. default;
  24. const char* GetValue();
  25. friend class cmCursesMainForm;
  26. protected:
  27. std::unique_ptr<cmCursesLabelWidget> Label;
  28. std::unique_ptr<cmCursesLabelWidget> IsNewLabel;
  29. std::unique_ptr<cmCursesWidget> Entry;
  30. std::string Key;
  31. int LabelWidth;
  32. int EntryWidth;
  33. };