1
0

cmCursesCacheEntryComposite.h 1.3 KB

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