Multilabel support & Label refactoring (#17)
All checks were successful
Build ptprnt / build (push) Successful in 3m47s

Reviewed-on: moritz/ptouch-prnt#17
This commit was merged in pull request #17.
This commit is contained in:
2025-10-16 18:36:42 +00:00
parent d12fc3acb5
commit 4c94cae088
29 changed files with 1131 additions and 122 deletions

View File

@@ -65,16 +65,24 @@ class ILabel {
public:
virtual ~ILabel() = default;
virtual bool create(PrintableText printableText) = 0;
virtual bool create(const std::string& labelText) = 0;
virtual std::vector<uint8_t> getRaw() = 0;
virtual int getWidth() = 0;
virtual int getHeight() = 0;
virtual bool create(PrintableText printableText) = 0;
virtual bool create(const std::string& labelText) = 0;
virtual std::vector<uint8_t> getRaw() const = 0;
virtual int getWidth() const = 0;
virtual int getHeight() const = 0;
virtual void setText(const std::string& text) = 0;
virtual void setFontSize(const double fontSize) = 0;
virtual void setFontFamily(const std::string& fontFamily) = 0;
virtual void setHAlign(HAlignPosition hpos) = 0;
virtual void setVAlign(VAlignPosition vpos) = 0;
/**
* @brief Append another label horizontally with spacing
* @param other The label to append
* @param spacingPx Spacing between labels in pixels (default: 60px ~5mm at 300dpi)
* @return true on success, false if heights don't match
*/
virtual bool append(const ILabel& other, uint32_t spacingPx = 60) = 0;
};
} // namespace ptprnt::graphics