1/* 2 * Copyright 2023, Andrew Lindesay <apl@lindesay.co.nz>. 3 * All rights reserved. Distributed under the terms of the MIT License. 4 */ 5#ifndef SCREENSHOT_COORDINATE_H 6#define SCREENSHOT_COORDINATE_H 7 8 9#include <Archivable.h> 10#include <String.h> 11 12 13/*! A screenshot coordinate defines a screenshot to obtain. The `code` is 14 recorded against a screenshot in the HDS system and then the width and 15 height define the sizing required for that screenshot. 16*/ 17 18class ScreenshotCoordinate : public BArchivable { 19public: 20 ScreenshotCoordinate(const BMessage* from); 21 ScreenshotCoordinate(BString code, uint16 width, uint16 height); 22 ScreenshotCoordinate(); 23 virtual ~ScreenshotCoordinate(); 24 25 const BString Code() const; 26 uint16 Width() const; 27 uint16 Height() const; 28 29 bool operator==(const ScreenshotCoordinate& other) const; 30 31 bool IsValid() const; 32 const BString Key() const; 33 const BString CacheFilename() const; 34 35 status_t Archive(BMessage* into, bool deep = true) const; 36 37private: 38 BString fCode; 39 uint16 fWidth; 40 uint16 fHeight; 41}; 42 43 44#endif // SCREENSHOT_COORDINATE_H